Media wearout indicator ssd что это
Перейти к содержимому

Media wearout indicator ssd что это

  • автор:

Media wearout indicator ssd что это

Сообщения: 558
Благодарности: 117

Конфигурация компьютера
Процессор: Intel Core i5-3570К
Материнская плата: Gigabyte GA-Z77X-UD3H
Память: Kingston HyperX Genesis PnP, KHX1600C9D3P1K2/8G; KHX16C9T3K2_16X итого: 24 gb, двухканальный режим.
HDD: WD1002FAEX Caviar Black, WD10EZEX, SSD WDS500G1B0A
Видеокарта: GTX1070 aero MSI
Звук: Sound Blaster Audigy 5/RX
Блок питания: Chieftec 850W Retail APS-850C 2013 год.
CD/DVD: Samsung SH-224BB/BEBE
Монитор: 23,5 Samsung Sync Master BX2340 1920×1080
ОС: Windows10 x64
Прочее: Охлаждение CPU Scuthe Mugen 3 Rev. B, Корпус ZALMAN Z9 PLUS, картридер Ginzzu GR-166UB

Автор: 2503
Дата: 22-07-2021

Полтора месяца назад установил на старый ПК SSD диск WD Blue WDS500G2BOA. ОС перенёс со старого диска сторонним софтом. Проверил S.M.A.R.T., всё было в норме, проверил скорость записи и чтения утилитой Crysta lDisk Mark. Скорость записи и чтения составили 260 Мб\с., заявленная производителем скорость чтения 560 Мб\с, записи 530 мб\с. У ПК интерфейс SATA2 с пропускной способностью 300 Мб\с, решил, что скорость у накопителя режется из-за SATA2. Тут вроде всё норме, ПК стал запускаться быстро, приложения так же быстро запускались. В диспетчере устройств установлен «Стандартный контроллер SATA AHCI». На днях решил глянуть S.M.A.R.T., и атрибут 230 (Media Wearout indicator – Индикатор износа диска) при пороге 0 опустился до 1. На новом диске значение было 100. С чем это связано и насколько это опасно для самого накопителя? Установил фирменную утилиту Dashboard 3.1.2.5., она совсем не определила SSD. Команду TRIM утилита тоже не может выполнить. Запустил утилиту trimcheck-0.5 для проверки выполнения команды TRIM. Утилита показала, что TRIM не выполняется. В самом биосе отсутствует переключение режима контроллера диска. Подключил SSD к современному ПК, фирменная утилита определила и выполнила TRIM на этом SSD. Вероятно на старом ПК все эти непонятности происходят из-за старой мат. Платы. Вопрос, как можно решить проблему с определением SSD диска и выполнением команды TRIM. ПК покупался в готовом виде: HP Compaq 505B microtower pc. Название мат. платы M2N68-LA rev.6.01. В AIDA64 определяется как Asus 2A99h. Версия биоса 5.14. Процессор AMD Phenom II X4 910, оперативки 4 гб. ОС Windows10 x64

Исследование надёжности SSD дисков Intel опытным путём

Тут я расскажу, как я вывел некоторые примерные цифры надёжности SSD Intel принадлежащих к mainstream серии и использующих MLC технологию. Почему Intel? Всё просто, у меня их две штуки. Да и на текущий момент это наиболее адекватные SSD на рынке по всем соотношениям, которые можно применить к SSD дискам, а именно: Скорость/Надёжность/Цена. Вдобавок к этому они достаточно популярны (если не самые популярные) и найти других пользователей данных SSD совсем не трудно. Ну и наконец, у компании Intel есть замечательная программа Intel SSD Toolbox, которая и помогла мне определить возможный уровень надёжности этих дисков. Исследование я провёл по чужим показаниям этой программы. К слову говоря, подошла бы любая программа, которая умеет читать S.M.A.R.T. значения с контроллера диска, но искать данные проще по названию известной программы.

Поскольку некоторые люди утверждают что:

«Thus Intel will guarantee that you can write 100gb of data to one of its MLC SSDs every day, for the next five years, and your data will remain intact.»
«Intel гарантирует что вы можете писать по 100gb данных на их MLC SSDs каждый день, в течении пяти лет, и ваши данные будут целы»

Хотелось бы их проверить так ли это на самом деле.

image

И так нам понадобятся скриншоты с программы Intel SSD Toolbox. Идём в поиск, набираем Intel SSD Toolbox в поиске картинок. Отсеиваем ненужное и смотрим на скриншоты типа этого:

Также можно искать скриншоты с CrystalDiskInfo, но у них много разных версий и не все показывают нужные нам значения.

Собираем и анализируем данные. Для нас интересны два значения (из документации к Intel SSD Toolbox):

Код E1 – Host Writes
This attribute reports the total number of sectors written by the host system. The raw value is increased by 1 for every 65,536 sectors written by the host. Use the Raw value for this attribute.
«Этот атрибут показывает, сколько всего записано данных на диск»

Код E9 – Media Wearout Indicator
This attribute reports the number of cycles the NAND media has experienced.
The normalized value declines linearly from 100 to 1 as the average erase cycle count increases from 0 to the maximum rated cycles.
Once the normalized value reaches 1, the number will not decrease, although it is likely that significant additional wear can be put on the device. Use the Normalized value for this attribute.

«Этот атрибут показывает, сколько здоровья осталось у диска»

И так получается, что при минимальном значении Media Wearout Indicator, мы найдём близкое к максимальному значение Host Writes на диск. В поиске есть несколько скриншотов со здоровьем 50(49), то есть половина, и примерно 22tb(терабайт) записей на диск. Получается, что здоровье диска Intel X-25M объёмом 80gb, кончится после +50tb записей. Плюс к этому на диске есть дополнительное пространство специально, чтобы подменять вышедшие из строя блоки. По некоторым данным на Intel SSD это 8% от объёма. Так что этот расчётный параметр наверняка с большим запасом. По дискам 160gb данных очень мало, но разницы с 80gb моделью нет никаких кроме объёма и количества каналов доступа (160gb версия немного быстрее).

Так получаем при записи 100gb в день, расчётного здоровья диска хватит на 1,4 года. Разница с данными от Anandtech в три раза как то не радует. Но, это не всё. Теоретический предел перезаписей для NAND ячеек приведённый Intel равен 10000 циклов. С учётом этого можно посчитать, что в идеальных условиях, тот же диск максимально переживёт 21 год при записи 100gb в день. Совсем другие цифры получаются 😉 Конечно, некоторые данные лежат на SSD диске неподвижно, тогда как другие переписываются очень часто, но Intel заявляет, что в прошивке диска используются алгоритмы выравнивания количества записей между блоками. Так что по этому поводу переживать не стоит.

Безусловно, оптимизировать систему под меньшее количество записей будет не лишним, инструкций и мануалов в сети уже огромное количество (я тоже пишу свой). Главное, если вы используете систему не Windows 7. Надо выровнять раздел(partition) диска на величину кратную 128kb(а лучше на 1mb как это делает Windows 7). Потому что по умолчанию раздел выравнивается на цилиндры и начитается с 63 сектора, а это 512*63 = 32256b, что совсем не кратно минимальному размеру блока записи в SSD диске который для Intel SSD 4096b, и минимальному блоку, который может быть стёрт — 128kb. Следующее поколение дисков Intel в два раза увеличит эти значения и поэтому, поставив выравнивание на 1mb, проблем никаких точно не будет и в будущем. Как дела с созданием разделов в *nix я не совсем осведомлён, но судя по Gparted, которым я переносил раздел на 1mb, по умолчанию выравнивание на цилиндры все-таки присутствует. А проблема с выравниванием вот в чём, при записи одного блока на не выровненный раздел, мы получим фактически запись в два блока на SSD, большая часть в один и остаток в другой. Что в худшем случае(на маленьких файлах) даст потерю здоровья диска в два раза быстрее и заодно падение скорости записи. Об этом даже пишет Micrsoft в презентации Windows 7, рекламируя оптимизацию Windows 7 для SSD дисков.

И что в итоге? На данный момент видно, что диск переживёт как минимум 50tb записей. Определить время жизни диска у вас, можно просто посчитав, сколько записей вы генерируете за день, и поделить 50tb / записей в день (в tb) = количество дней. От этих данных можно отталкиваться при покупке SSD конкретно под ваши задачи. Как определить количество записей без SSD я сказать затрудняюсь. Примерно можно понять, что происходит на диске, если посмотреть за диском с помощью утилиты Process Monitor от Sysinternals (раньше это был FileMonitor).

По своей статистике могу сказать следующее, SSD у меня системный диск и кроме системы и большей части программ там никакой деятельности не ведётся. Второй SSD в нетбуке и пока мало использовался, чтобы делать выводы. Я занимаюсь разработкой, основная работа в Visual Studio, все рабочие файлы на HDD. Система Windows XP x86 +8GB RAM, при вынесенных: временных папках, файлах различных кэшей и pagefile на RAM disk, в день на SSD пишется примерно 500mb. Основной источник записей у меня в Windows XP это ntuser.dat.LOG и ntuser.dat. То есть user ветки реестра. После переноса папки Documents and Settings (там и находятся ntuser файлы) на HDD, количество записей уменьшилось в 2-3 раза до 100mb-300mb. Дальше оптимизировать нет никакого смысла, и даже перенос Documents and Settings наверно лишнее. Потому что при 500mb, ну пусть 1gb, диска хватит на ~140лет. При 10gb записей на 14лет и т.д. Так что при моих темпах использвоания SSD, запас получается действительно большой.

Вот таким нехитрым способом получилось узнать примерную надёжность SSD дисков от Intel. Надеюсь, этот пост хоть чем-то поможет вам решить брать SSD или нет. Я для себя решил, что однозначно брать. Это того стоит.

19 Июня 2010:
На сегодня записей на диске 150гб из них 80 — это когда я партишен выравнивал и «умная утилита» скопировала мне весь SSD на себя же. Пора обратно переносить данные, иначе диск меня переживёт…

1 Июля 2011:
На сегодня записей на диске 277гб.

11 Января 2022:
Диск работает до сих пор, в другом компьютере у сына (каждый день фактически). Без каких либо оптимизаций по данным давно.

Как исправить ошибку S.M.A.R.T. 0xE9: Media Wearout Indicator

S.M.A.R.T. ошибка «0xE9 Media Wearout Indicator» появляется на жестком диске или твердотельном накопителе при загрузке компьютера/ноутбука? После этой ошибки производительность вашего компьютера ухудшилась, и вы беспокоитесь о сохранности своих данных? Допустимые значения атрибута «Media Wearout Indicator» могут различаться в зависимости от производителя жесткого диска — WD (Western Digital), Samsung, Seagate, HGST (Hitachi) или Toshiba.

Что делать с «0xE9 Media Wearout Indicator»?

  • Прекратите использование сбойного HDD
  • Восстановите удаленные данные диска
  • Просканируйте диск на наличие «битых» секторов
  • Снизьте температуру диска
  • Произведите дефрагментацию жесткого диска
  • Ошибка «Media Wearout Indicator» для SSD диска
  • Сбросьте ошибку «0xE9 Media Wearout Indicator»
  • Приобретите новый жесткий диск
    • Целесообразен ли ремонт HDD?
    • Как выбрать новый накопитель?

    Узнайте как исправить «0xE9 Media Wearout Indicator» в Windows 11, Windows 10, Windows 8.1, Windows Server 2012, Windows 8, Windows Home Server 2011, Windows 7 (Seven), Windows Small Business Server, Windows Server 2008, Windows Home Server, Windows Vista, Windows XP, Windows 2000, Windows NT.

    Прекратите использование сбойного HDD

    Получение от системы сообщения о диагностике ошибки не означает, что диск уже вышел из строя. Но в случае наличия S.M.A.R.T. ошибки, нужно понимать, что диск уже в процессе выхода из строя. Полный отказ может наступить как в течении нескольких минут, так и через месяц или год. Но в любом случае, это означает, что вы больше не можете доверить свои данные такому диску.

    Необходимо побеспокоится о сохранности ваших данных, создать резервную копию или перенести файлы на другой носитель информации. Одновременно с сохранностью ваших данных, необходимо предпринять действия по замене жесткого диска. Жесткий диск, на котором были определены S.M.A.R.T. ошибки нельзя использовать – даже если он полностью не выйдет из строя он может частично повредить ваши данные.

    Конечно же, жесткий диск может выйти из строя и без предупреждений S.M.A.R.T. Но данная технология даёт вам преимущество предупреждая о скором выходе диска из строя.

    Восстановите удаленные данные диска

    В случае возникновения SMART ошибки не всегда требуется восстановление данных с диска. В случае ошибки рекомендуется незамедлительно создать копию важных данных, так как диск может выйти из строя в любой момент. Но бывают ошибки при которых скопировать данные уже не представляется возможным. В таком случае можно использовать программу для восстановления данных жесткого диска — Hetman Partition Recovery.

    Как сократить время на диагностику дисков c помощью Telegram-бота

    Рассказываем, как запустили бота для диагностики дисков. Описали проблемы, которые могут возникнуть при ручной сверке показателей S.M.A.R.T., и их решение с помощью бота.

    Эта инструкция — часть курса «Как создавать Telegram-ботов».

    Смотреть весь курс

    Изображение записи

    Меня зовут Дмитрий, я старший системный инженер в дата-центре Selectel, работаю с серверами и клиентским оборудованием.

    Каждый день я обрабатываю десятки клиентских обращений. Часть из них связана с физическим участием, когда нужно ногами пойти к серверу и руками заменить комплектующие. Такие задачи роботу не поручить. Но я нашел способ экономить себе и коллегам несколько часов в месяц с помощью бота, способного быстро диагностировать состояние дисков. Также он снижает влияние «человеческого фактора» на задачи, которые надо решать с высокой скоростью и вниманием к деталям.

    Проблемы инженера при замене дисков

    Выделю три основных проблемы, из-за которых может снизиться эффективность работы системного инженера.

    Ручная сверка атрибутов

    У каждого вида накопителя, будь то HDD, SSD или NVME, есть атрибуты S.M.A.R.T., по которым мы анализируем их состояние. Есть базовые параметры дисков от разных вендоров и параметры конкретных моделей.

    Когда клиент обращается с подозрениями на некорректную работу диска, мы выполняем первичную проверку и сравниваем значения атрибутов с пороговыми значениями. На это уходит довольно много времени, при этом инженеру продолжают поступать параллельные задачи.

    Приведу пример атрибутов:

    • Атрибут Media Wearout Indicator (233) содержит процент износа SSD-диска. При значении VALUE больше 10 диск модели Intel является исправным.
    • На моделях Micron данный атрибут отсутствует. Здесь будет проверяться атрибут Percent_Lifetime_Remain (202) также по значению VALUE.
    • На моделях Kingston выполняется проверка по атрибуту Life Left (SSDs) or Temperature (231).

    В Selectel достаточно много моделей дисков. Трудно удержать в голове уникальные атрибуты для разных моделей, пороговые значения и тип, по которому необходимо сравнить. Ручная сверка неизбежно приводит к ошибкам, которые влияют на качество сервиса и ведут к затратам рабочего времени коллег из смежных отделов.

    Неактуальный источник информации

    Аренда выделенных серверов в Selectel и отказ от них — автоматизированные процессы. Когда клиент сдает ресурсы, платформа переходит в процесс очистки, тестирования и предоставления машины другому клиенту. На этапе очистки выполняются скрипты затирки накопителей с обращением в базу для проверки по показателям S.M.A.R.T.

    Сотрудник клиентского сервиса, который проверяет показатели S.M.A.R.T., сверяет их с информацией в базе знаний в Confluence компании. Она дублирует данные, которые заносятся в GitLab сотрудниками из отдела выделенных серверов. Внутренняя база знаний обновляется не всегда синхронно, после того как вносятся изменения в GitLab. Это приводит к дополнительным затратам времени на диагностику диска.

    Необходимость своевременного выявления гарантийных случаев замены

    При обнаружении неисправности мы обращаемся к производителю для выполнения гарантийных обязательств. Чем раньше и точнее мы зафиксируем неисправность или заводской брак, тем выше вероятность, что успеем заменить комплектующие по гарантии. Поэтому скорость диагностики бывает для нас критически важным показателем.

    Идея создания бота в Telegram

    Все описанные проблема хотелось решить — так появилась идея создать бота на базе API Telegram. Я захотел написать бота, который будет выдавать вердикт по накопителю на основе показателей S.M.A.R.T. и ссылаться на то же место, что и скрипты затирки при автоматизированном процессе.

    Как работает бот

    Итак, сотрудник клиентского сервиса получает обращение от клиента. Например, о падении производительности, ошибках или выходе из строя накопителя. При первичной диагностике специалист запрашивает показатели S.M.A.R.T., копирует полный вывод или модель накопителя (если клиент прислал не текст, а скриншот) и отправляет в Telegram-бот.

    Далее реализуется один из трех сценариев:

    • Если загружен полный вывод S.M.A.R.T., бот выдает отчет в виде параметров, по которым произведена проверка, и вердикт: «Диск исправен!» либо «Неисправен!».
    • Если отправлена только модель, бот сообщает параметры, по которым необходимо проверить диск.
    • Если диска нет в базе, выводится сообщение о том, что запрашиваемая модель не найдена. В таком случае проверка проводится по базовым параметрам накопителей. Так сотрудник может понять, требуется ли замена накопителя в рамках пороговых значений.

    Как пользоваться ботом

    Окно общения с ботом.

    Вот пример вывода S.M.A.R.T. SSD-диска, по которому бот сканирует модель и значения атрибутов.

    === START OF INFORMATION SECTION === Model Family: Intel S4510/S4610/S4500/S4600 Series SSDs Device Model: INTEL SSDSC2KB960G7 Serial Number: PHYXXXXXXXXX960CGN LU WWN Device Id: 5 5cd2e4 14f05fa72 Firmware Version: SCV10150 User Capacity: 960,197,124,096 bytes [960 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: Solid State Device Form Factor: 2.5 inches TRIM Command: Available, deterministic, zeroed Device is: In smartctl database 7.3/5319 ATA Version is: ACS-3 T13/2161-D revision 5 SATA Version is: SATA 3.2, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Sat Jan 28 11:01:34 2023 UTC SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 1 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 5 Reallocated_Sector_Ct 0x0032 099 099 000 Old_age Always - 4 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 38712 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 26 170 Available_Reservd_Space 0x0033 099 099 010 Pre-fail Always - 0 171 Program_Fail_Count 0x0032 100 100 000 Old_age Always - 1 172 Erase_Fail_Count 0x0032 100 100 000 Old_age Always - 0 174 Unsafe_Shutdown_Count 0x0032 100 100 000 Old_age Always - 19 175 Power_Loss_Cap_Test 0x0033 100 100 010 Pre-fail Always - 2790 (253 3591) 183 SATA_Downshift_Count 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error_Count 0x0033 100 100 090 Pre-fail Always - 0 187 Uncorrectable_Error_Cnt 0x0032 100 100 000 Old_age Always - 0 190 Drive_Temperature 0x0022 080 080 000 Old_age Always - 20 (Min/Max 14/20) 192 Unsafe_Shutdown_Count 0x0032 100 100 000 Old_age Always - 19 194 Temperature_Celsius 0x0022 100 100 000 Old_age Always - 20 197 Pending_Sector_Count 0x0012 100 100 000 Old_age Always - 0 199 CRC_Error_Count 0x003e 100 100 000 Old_age Always - 0 225 Host_Writes_32MiB 0x0032 100 100 000 Old_age Always - 6455641 226 Workld_Media_Wear_Indic 0x0032 100 100 000 Old_age Always - 6675 227 Workld_Host_Reads_Perc 0x0032 100 100 000 Old_age Always - 44 228 Workload_Minutes 0x0032 100 100 000 Old_age Always - 2322510 232 Available_Reservd_Space 0x0033 099 099 010 Pre-fail Always - 0 233 Media_Wearout_Indicator 0x0032 094 094 000 Old_age Always - 0 234 Thermal_Throttle_Status 0x0032 100 100 000 Old_age Always - 0/0 241 Host_Writes_32MiB 0x0032 100 100 000 Old_age Always - 6455641 242 Host_Reads_32MiB 0x0032 100 100 000 Old_age Always - 5091949 243 NAND_Writes_32MiB 0x0032 100 100 000 Old_age Always - 12194491

    В ответном сообщении бот отправляет вердикт в виде отчета:

    Слева — отчет с выводом параметров для неисправного SSD-диска. Справа — для исправного накопителя.

    Техническая реализация бота

    Инфраструктура

    Для внутренних проектов мы, как и наши клиенты, используем облачную платформу. Для маленького проекта с ботом я выбрал облачный сервер с 2 ядрами vCPU, 4 ГБ ОЗУ и 10 ГБ сетевого диска SSD. Этого вполне достаточно для развертывания мини-приложения.

    Конфигурация сервера.

    Также я подготовил проброс VLAN для внутренней инфраструктуры. Выделять публичный IP-адрес не потребовалось.

    Серверная часть приложения

    Для развертывания приложения с окружением использовал docker-контейнер. Приложение написал на node.js, а для взаимодействия с Telegram API взял node-telegram-bot-api.

    Логика обработки сообщений

    На основании данных S.M.A.R.T. бот выделяет модель накопителя, id атрибута и значения VALUE, RAW_VALUE. По модели накопителя бот находит в базе и сравнивает пороговые значения атрибутов, а после выносит вердикт диску.

    Облачные серверы с гибкой производительностью ядра vCPU

    Результаты внедрение бота

    Главное в создании бота — не процесс, а то, к каким результатам приводит его реализация. В нашем случае это рост эффективности работы инженера. Telegram-бот – не панацея от всех проблем с обработкой данных S.M.A.R.T., но он позволяет быстро выявлять основные дефекты накопителей.

    Изменилось ли время обработки обращений?

    Да, время ответа значительно сократилось. Коллеги положительно отзываются о боте и рассказывают, как он упростил их жизнь. Раньше им приходилось тратить время на поиск актуальной информации в базе знаний и на сайте производителя. Теперь им гораздо реже приходится самостоятельно обрабатывать S.M.A.R.T.-данные накопителей, а значит, клиент быстрее получает ответ на обращение.

    Как работа с ботом повлияла на выявление неисправных комплектующих в рамках гарантийного обслуживания?

    Теперь при замене комплектующих инженер быстрее и точнее фиксирует параметры неисправности диска. Для гарантийных случаев это позволяет избежать дополнительной работы при выявлении причины неисправности перед отправкой комплектующих производителю.

    На что еще повлиял бот?

    Бот упростил обучение новых коллег, а это — один из главных процессов в Selectel. Новые сотрудники техподдержки могут с первого дня использовать бот в работе. У них появляется единый источник информации пороговых значений атрибутов. Благодаря экономии времени они концентрируют усилия на более внимательной работе с клиентами.

    Что нужно доделать в боте

    Так как я системный инженер, а не разработчик, мой бот несовершенен. Спасибо коллегам, которые пользуются ботом, за быстрые сообщения об ошибках и советы по развитию инструмента. Выделю некоторые из них.

    Сбор фидбэка через бот

    В базе бывает неактуальная информация по пороговым значениям той или иной модели. Так случается, когда поступают новые комплектующие, которые мы не проанализировали на пороговые значения. Анализ таких ситуаций требует дополнительного времени на внесение правок. В будущем хочу добавить команду для баг-репортов в сам бот.

    Расшифровка информации со скриншотов

    Иногда клиенты отправляют параметры S.M.A.R.T. скриншотом, или же они представлены в KVM-консоли без доступа по SSH. В таком случае приходится обрабатывать информацию в ручном режиме. Для скриншотов хочу добавить автоматическое считывание текста и расшифровку сообщений.

    Автоматизированная диагностика как сервис

    Также такое решение по обработке вывода S.M.A.R.T. кажется полезным и для клиентов компании. Рассмотрим возможность его интеграции в виде сервиса в панели управления.

    В рамках этой статьи я не заострял внимание на описании работы кода. В следующем тексте я более подробно раскрою эту тему.

    Как автоматизировать подготовку к собеседованиям с помощью Telegram-бота

    Как генерировать истории с помощью ChatGPT и Telegram

    Зарегистрируйтесь в панели управления

    И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *