Как определить количество циклов записи или ожидаемый срок службы 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

http://namhuy.net/1024/how-to-check-ssd-life-left.html

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

Это все еще не гарантирует, когда / если вы увидите сбои или ошибки. Поездка может выйти из строя завтра, может выйти из строя через три года.

Лучше всего сохранить его в конфигурации 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 умирает только из-за записи данных на диск, а это обычно происходит из-за его износа, то то, что я опубликовал здесь, является хорошим ориентиром.

Другие вопросы по тегам