Как определить количество циклов записи или ожидаемый срок службы SSD под Linux?
Некоторое время мы работали с SSD (Intel X25-M) на сервере Linux (RHEL 5), но никогда не пытались выяснить, какова была нагрузка при записи за последний год. Есть ли какой-нибудь инструмент под Linux, который приблизительно сообщает нам, сколько было записано на диск с течением времени или (что еще лучше), сколько накопилось на нем износа? Просто ищу подсказку, чтобы увидеть, близка ли она к смерти или нет...
5 ответов
Твердотельные накопители Intel хранят статистику по общему количеству операций записи и по вероятности его продолжительности жизни.
Следующее от Intel X25-M G2 160 ГБ (SSDSA2M160G2GC)
# smartctl -data -A /dev/sda
smartctl 5.40 2010-10-16 r3189 [x86_64-redhat-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 5
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
3 Spin_Up_Time 0x0020 100 100 000 Old_age Offline - 0
4 Start_Stop_Count 0x0030 100 100 000 Old_age Offline - 0
5 Reallocated_Sector_Ct 0x0032 100 100 000 Old_age Always - 1
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 6855
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 68
192 Unsafe_Shutdown_Count 0x0032 100 100 000 Old_age Always - 30
225 Host_Writes_32MiB 0x0030 200 200 000 Old_age Offline - 148487
226 Workld_Media_Wear_Indic 0x0032 100 100 000 Old_age Always - 3168
227 Workld_Host_Reads_Perc 0x0032 100 100 000 Old_age Always - 1
228 Workload_Minutes 0x0032 100 100 000 Old_age Always - 1950295543
232 Available_Reservd_Space 0x0033 099 099 010 Pre-fail Always - 0
233 Media_Wearout_Indicator 0x0032 098 098 000 Old_age Always - 0
184 End-to-End_Error 0x0033 100 100 099 Pre-fail Always - 0
Исходное значение Host_Writes_32MIB показывает, сколько единиц данных 32 МБ было записано на этот диск.
Значение Media_Wearout_Indicator показывает вам нормированный процент того, насколько далеко проходит полезный срок службы накопителя. Это начинается с 100 (или 099, я забыл, какой) и продолжается до 001, и в этот момент Intel считает, что накопитель превысил срок полезного использования. Intel также использует MWI как часть гарантийных требований - как только MWI достигает значения 001, срок гарантии истекает.
MWI, достигающий 001, не означает, что привод немедленно выйдет из строя! Intel будет иметь встроенный допуск, чтобы справляться с отклонениями в единицах вспышки. Я видел накопители, которые в последний раз проходили этот этап, и я активно тестирую некоторые твердотельные накопители Intel серии 320, чтобы понять, как долго они работают.
Однако, когда истекает срок гарантии, когда MWI достигает значения 001, в этот момент я заменю все диски.
Диски Corsair также экспортируют аналогичный показатель оставшегося срока службы в процентах. В их случае это атрибут 231:
231 SSD_Life_Left 0x0013 100 100 010 Pre-fail Always - 0
(Обратите внимание, что если smartctl отображает это как температуру, вам необходимо обновить базу данных вашего устройства. В моей системе Debian это означает запуск /usr/sbin/update-smart-drivedb
)
Сообщение в блоге Corsair, кажется, показывает, что значение никогда не опускается ниже 10%, поэтому я предполагаю, что его следует заменить на 10%.
У меня также есть диск OCZ с тем же контроллером Sandforce, который также экспортирует то же значение SSD_Life_Left.
Media_Wearout_Indicator - это то, что вы ищете. Если 100 означает, что ваш ssd имеет 100% жизни, то меньшее число означает, что осталось меньше жизни.
# smartctl -a /dev/sda | grep Media_Wearout_Indicator
Вывод с моего ноутбука
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
Если вы хотите увидеть более подробную информацию и полные атрибуты с вашего диска, вы можете запустить
# smartctl -data -A /dev/sda
и выход
# smartctl -data -A /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-49-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0×0032 100 100 000 Old_age Always – 0
9 Power_On_Hours 0×0032 000 000 000 Old_age Always – 232959027031342
12 Power_Cycle_Count 0×0032 100 100 000 Old_age Always – 279
170 Unknown_Attribute 0×0033 100 100 010 Pre-fail Always – 0
171 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
172 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 0
174 Unknown_Attribute 0×0032 100 100 000 Old_age Always – 278
184 End-to-End_Error 0×0033 100 100 090 Pre-fail Always – 0
187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0
192 Power-Off_Retract_Count 0×0032 100 100 000 Old_age Always – 278
225 Load_Cycle_Count 0×0032 100 100 000 Old_age Always – 10752
226 Load-in_Time 0×0032 100 100 000 Old_age Always – 65535
227 Torq-amp_Count 0×0032 100 100 000 Old_age Always – 66
228 Power-off_Retract_Count 0×0032 100 100 000 Old_age Always – 65535
232 Available_Reservd_Space 0×0033 100 100 010 Pre-fail Always – 0
233 Media_Wearout_Indicator 0×0032 100 100 000 Old_age Always – 0
241 Total_LBAs_Written 0×0032 100 100 000 Old_age Always – 10752
242 Total_LBAs_Read 0×0032 100 100 000 Old_age Always – 21803
249 Unknown_Attribute 0×0013 100 100 000 Pre-fail Always – 357
На самом деле, нет. Если диск не хранит статистику, вы не будете знать наверняка. Даже в этом случае накопитель абстрагирует алгоритмы выравнивания записи и тому подобное, чтобы попытаться оптимизировать вещи подальше от системных вызовов и интерфейсов. Другими словами, накопитель может легко соврать вам о том, где данные фактически записаны на "носителе", чтобы вы не знали, какие ячейки становятся активными.
Это все еще не гарантирует, когда / если вы увидите сбои или ошибки. Поездка может выйти из строя завтра, может выйти из строя через три года.
Лучше всего сохранить его в конфигурации RAID и иметь план его замены в случае сбоя (до отказа другого диска) и обеспечения актуальности резервных копий.
Кажется, нельзя использовать стандартный «sudo smartctl -A /dev/sda» на твердотельных накопителях Intel, по крайней мере, на моем твердотельном накопителе Intel 545s 128 ГБ, поскольку для просмотра правильной информации для преобразования в TBW необходимо ввести «sudo smartctl -q noserial -x /dev/sda" и найдите раздел, в котором написано "записаны логические сектора", и используя там это длинное число, вы просто используете следующую формулу для преобразования в TBW... длинное число * 512 / 1024^4 = TBW ( или длинное число * 512/1024/1024/1024/1024 = TBW), вывод которого даст вам TBW.
для справки... похоже, что у большинства приличных твердотельных накопителей официальный номинальный срок службы записи составляет не менее 75 ТБВт, но, скорее всего, они преодолеют этот срок, прежде чем произойдет сбой при записи данных на SSD.
потому что, вообще говоря... если предположить, что SSD умирает только из-за записи данных на диск, а это обычно происходит из-за его износа, то то, что я опубликовал здесь, является хорошим ориентиром.