Надёжность SSD накопителей и средства мониторинга
На повестке дня, уже не первый год, стоит вопрос о надёжности SSD накопителей. Кто-то отзывается негативно, мотивируя далеко не одним вышедшим из строя накопителем, а кто-то наоборот ратует за то, что накопители прекрасно чувствуют себя даже под нагрузкой и работают не один год. Я, пожалуй, отношусь ко второму лагерю и сейчас расскажу почему.
SSD накопители в ПК или ноутбуках стали уже обычным делом (особенно это касается ультрабуков или нетбуков — в силу их малых размеров), но конечно же нагрузка на них совершенно другая, соответственно и статистика по отказам иная, и что самое прискорбное — она крайне ничтожна, ввиду того, что SSD накопители в серверном сегменте пока ещё остаются экзотикой, несмотря на то, что сами SSD накопители уже не первый год завоёвывают рынок и уже успели «откусить» не малый кусок у обычных HDD. Очень многие делают выводы, основываясь на ранних опытах, когда SSD только стали появляются на рынке. И это вполне обоснованные страхи. SSD накопители крайне стремительно ворвались на рынок и очень быстро развивались с технологической точки зрения, отчего не раз возникали проблемы, связанные с недоработками, что сказывалось как на сроке службы накопителя, так и на его скоростных характеристиках. Эти проблемы были, как аппаратного плана, так и софтового (прошивок), но, к нашей радости, производители накопителей активно работают в сторону улучшения надёжности и качества работы своих продуктов. Отсутствие механически подвижных частей ещё не говорит о полной надёжности устройства. К сожалению, любая техника подвержена выходу строя. В первую очередь слабым местом SSD являются чипы памяти — низкий ресурс MLC-чипов (и даже чуть более надёжных SLC-чипов), с которым можно бороться при помощи коррекции ошибок ECC, резервированием, наблюдением за SMART для прогноза отказа диска. Но так же слабым местом накопителя является и его контроллер. По причине того, что контроллер физически расположен между интерфейсом и микросхемами памяти, вероятность его повреждения в результате сбоя или проблем с питанием очень велика. При этом сами данные на модулях памяти остаются не тронутыми, и в теории их можно спокойно восстановить, но это достаточно трудоёмкий процесс. А что касается прошивок — даже небольшая ошибка в прошивке может привести к полной потере данных и восстановление данных становится практически невозможным, ввиду сложной структуры данных и чередования записи данных на разные модули памяти. Но это ещё не повод полностью отказываться от SSD, ведь никто не без греха, в наше время часто попадаются и бракованные партии HDD или партии с глючной прошивкой (скандал с 1,5Tb дисками от Seagate 4-х летней давности до сих пор у многих в памяти). Но давайте вернёмся к серверам. Собственно сподвигнул меня на написание этой статьи просмотр SMART`а моего SSD, который стоит под системой в моём личном сервере. Конечно это не продакшн сервер под крупный проект, но тем не менее — нагрузка там не так уж и мала. Для начала скажу, что под системой у меня установлен самый простой и дешёвый (на момент покупки — 2,5 года назад) SSD — Intel X25-V Value 40Gb.
Но немного предыстории. Сервер стоит уже более 6 лет, и единственное что там за долгие годы не менялось это корпус 🙂 Предшественниками данного SSD были WD Raptor, который прожил ровно год, после чего скоропостижно скончался и был заменён «старшим братом» — WD VelociRaptor, который так же через год работы приказал долго жить (до сих пор храню в ящике как память вместе с древним Quantum Fireball :)). Выбор в пользу Intel X25-V был очень прост — нужно было в кратчайшие сроки купить что-то на замену умершему харду, при весьма ограниченном бюджете. Естественно читать обзоры и сравнивать времени не было вообще, поэтому был куплен первый попавшийся (а точнее первый попавшийся с переходником на 3,5″) и самый дешёвый на тот момент SSD (хотя в то время SSD я не использовал даже в обычных ПК). Теперь расскажу немного о задачах сервера и чем он занимается. Несмотря на то, что это «домашний» сервер, делает он очень много, в частности:
- Web-сервер, на котором расположено несколько сайтов, довольно посещаемых (порядка 150 уников в сутки на каждом)
- MySQL сервер, естественно без него не будет работать ни один из сайтов, но так же база данных используется для собственной системы статистики и так же туда свои показатели пишет система мониторинга zabbix.
- Deluge (торрент-клиент, да-да на SSD, как считают многие — главный убийца твёрдотельных накопителей :)), который временные файлы пишет на системный диск, а потом уже переносит скачанное на обычный HDD.
- zabbix-agentd — один из самых «прожорливых» сервисов в моей системе, который крайне активно пишет различные показатели в БД.
- airvideoserver — кодировщик видео для мобильных устройств, кодирует видео на лету и складывает кэш на системный диск.
Остальные задачи сами по себе не так интересны, поэтому просто перечислю их: avahi, dhcpd, fail2ban, iptables, netatalk, nginx, openvpn, php-fpm, pure-ftpd, samba, sshd, zabbix-server — эти сервису уже не столь прожорливы, но активно пишут логи.
Всё это работает на базе Gentoo Linux. Почему я так подробно всё это рассказываю — на сервере поднято достаточно много сервисов, которые не только пишут логи (а логи в системе не отключены вообще и ни о какой поддержке TRIM говорить просто не приходится), но и создают в системе временные файлы (например — airvideoserver), а так же крайне сильно нагружают дисковую подсистему именно на запись.
Вот что намерил iotop за 5 минут работы:
Конечно с одной стороны не так уж и много, но накопитель активно используется как на чтение, так и на запись. Особенно активно пишутся логи системы (когда какой-нибудь локальный поиск по ftp пытается проиндексировать сервер и 100500 раз не может авторизоваться под анонимомусом).
Для начала посмотрим — были ли за время жизни диска какие-либо ошибки:
А теперь давайте обратимся к SMART`у диска:
Обратите внимание на параметр Power_On_Hours — 19727 часов, что даёт нам 822 дней аптайма, а ещё более интересный показатель — Host_Writes_32MiB — количество записанных сраниц по 32Мб, т.е. считаем: 473216*32/1024/1024 =~ 14,44Tb. А это порядка 18Гб/сутки, не такой уж и маленький показатель, учитывая что объём накопителя всего 40Гб (соответственно получается, что диск перезаписан полностью порядка 370 раз, а если вспомнить что ресурс записи MLC памяти порядка 10000 раз, запас у нас остаётся вполне приличный. Хотя конечно стоит оговориться что здесь нет равномерной записи на модули памяти, на какие-то всё-таки информация пишется чаще, а на какие то — реже, но это не сильно портит статистику, а если говорить о более дорогих моделях SSD на SLC памяти, то там ресурс записи в каждую ячейку памяти ещё в 10 раз больше). Reallocated Sector Count (количество переназначенных, сбойных блоков) — 6, не такое большое число, что бы уже стоило начать волноваться за накопитель. Так же нас ещё интересует параметр Media_Wearout_Indicator — это своеобразный счётчик состояния накопителя. У нового накопителя эта цифра равна 99-100, а почти умирающего стремится к нулю (хотя есть преценденты, что и при значении Media_Wearout_Indicator — 0, накопитель прекрасно работал). Основываясь на этом можно сделать вывод, что накопитель более чем жив, хотя и используется больше, чем просто SSD для домашней рабочей машинки. И это касается не только моделей производства Intel (а я напомню, что X25-V это одна из самых простых и дешёвых моделей на рынке). К сожалению, пока что нет новых технологических решений относительно новых типов памяти, поэтому компании ведут активную борьбу на фронте контроллеров для SSD накопителей. В частности OCZ в прошлом году начала выпуск своих накопителей на базе нового контроллера Indilinx, который с выходом каждой новой версии прошивки всё больше и больше увеличивает собственную скорость работы, что отмечено многочисленными тестами в интернете (к слову, сам я на своих рабочих машинах уже перешёл на Vertex 4, но это ни в коем случае не реклама). К несчастью обычные SSD крайне редко дают нам какие-либо утилиты для мониторинга их состояния и приходится прибегать к использованию стороннего ПО, которое не всегда оптимизировано для работы с данными конкретного накопителя (ведь параметры SMART`а у разных производителей могут отличаться, так же как и «нормальное» значение этих параметров). Максимум, что предоставляет производитель — средства для обновления прошивки накопителя, чего конечно несомненно мало. А для мониторинга параметров состояния накопиля можно использовать только сторонние решения (как в примере статьи — smartmontools). Но корпоративный сегмент живёт немного по другим правилам, в частности наличие полного набора ПО для работы с накопителем — вполне нормальная вещь, которая порой играет немаловажную роль в выборе накопителя. Компания ADVANSERV активно продвигает на российский корпоративный рынок PCI-E SSD решения от компании Fusion-io, поэтому хотелось бы немного отвлечься от нашего подопытного и поговорить о ПО Fusion ioSphere Management Solution, которое нацелено на мониторинг состояние их SSD накопителей.
Ключевыми особенностями данного ПО являются:
- Возможность мониторинга и управления несколькими устройствами из одной консоли управления
- Интуитивно понятный пользовательский веб-интерфейс (который правда требует наличие Flash)
- Обнаружение и инвентаризация модулей ioMemory
- Разнообразные отчёты о работе систем
- Прогнозирование отказа
- LDAP аутентификация пользователей
Теперь разберём каждый из пунктов немного подробнее.
- Возможность управления несколькими устройствами ioMemory из одной консоли управления позволяет упростить процедуру управления и мониторинга устройств, и увеличить удобство и скорость работы.
- Автоматическое обнаружение устройств ioMemory ускоряет ввод в эксплуатацию и настройку устройств. Возможность скопировать настройки оборудования так же сильно облегчает процесс конфигурирования новых устройств.
- Мониторинг в режиме реального времени позволяет активно контролировать здоровье и производительность всех ioMemory в вашей сети, чтобы предвидеть проблемы прежде, чем они станут критическими. Готовые и настраиваемые профили оповещений, обеспечивают немедленное уведомление администратора об имеющихся проблемах, требующих его внимания, предотвращая простои и потери данных.
- История производительности, представленная в панеле управления, даёт вам общее представление о работе оборудования на протяжение всего его срока службы для более эффективного планирования вашей инфраструктуры.
- Прогнозирование отказа, на базе данных о количестве перезаписаной информации на флэш-память, позволяет предотвратить неожиданный отказ оборудования и простой компании. По сути, эти данные берутся из SMART`а устройства и предоставляются в удобном графическом представлении.
- LDAP аутентификация позволяет разграничить доступ к системе на основе уже имеющихся механизмов, без каких-либо дополнительных затрат, как финансовых, так и временных.
ioSphere является расширением базового набора ПО ioManager 3. Это расширение включает в себя большую наглядность и создание отчетов для нескольких модулей ioMemory (при чём эти модули могут быть разных моделей) на нескольких серверах. В таблице ниже приведены дополнительные функции ioSphere:
Управление и отчеты | ioManager 3 | ioSphere |
Установка | Веб-сервер | Веб-сервер |
Обнаружение и инвентаризация | Один узел | Множество узлов |
Удаленный доступ | Х | Х |
ioMemory конфигуратор | Один узел | Множество узлов |
Показатель эффективности в реальном времени | Х | Х |
История производительности | Х | |
Прогноз отказа | Х | |
Мониторинг | ioManager 3 | ioSphere |
Мониторинг устройств ioMemory | Один узел | Множество узлов |
Индивидуальные критерии оповещения | Х | |
SMS / e-mail оповещения | Х | |
История поиска оповещения | Х | |
Аутентификация пользователя | Х | |
LDAP аутентификация | Х |
В визуальном представлении это выглядит следующим образом:
Данное ПО, ввиду использования web-интерфейса, работает на различных системах, как windows, так и linux/unix, стоит только оговориться, что корректная работа гарантируется только в Internet Explorer и Firefox — работа в других браузерах возможна, но официально не заявлена (в частности известны проблемы в работе Google Chrome на Mac). В ближайшее время мы постараемся рассказать более подробно о различных софтварных решениях от компании Fusion-io.
В конце хочется отметить, что надёжность современных SSD не уступает по надёжности решениям на обычных HDD накопителях. Конечно риск выхода из строя оборудования есть всегда и это касается не только накопителей. Но гарантия производителя и покупка оборудования у проверенного поставщика сведут к минимуму ваши нервные переживания. И главное правило в отношении любых накопителей — делайте бекапы. Даже самое «стойкое» решение на даёт 100% сохранности данных.