Когда умрёт мой SSD — расчёт срока жизни

1anzakfflyipfvrab4f13jnsbue.png

У каждого SSD есть ресурс на количество циклов перезаписи, то есть объём записанной информации в течение всей жизни. Физика и механика SSD очень сложные, но долговечность накопителя в итоге сводится к простому правилу — чем больше на него пишешь, тем меньше он проживёт.

У одних SSD критический сбой происходит через несколько месяцев, другие работают годами. Это зависит от качества комплектующих, условий эксплуатации и везения. В общем, как у людей.
Срок жизни SSD ограничен, потому что ячейки флеш-памяти NAND выдерживают ограниченное количество циклов перезаписи (циклы P/E, «program / erase»). По мере перехода производителей флеш-памяти с технологии Multi Level Cell (MLC/DLC, 2 бита на ячейку) на Triple Level Cell (TLC, 3 бита), Quad-level cell (QLC, 4 бита) и Penta-level cell (PLC, 5 бит, пока находится в разработке) ресурс P/E уменьшается из-за увеличения сложности производства. Причём уменьшается кратно.

Например, древняя однобитная SLC на этапе анонса технологии NAND выдерживала 100 тысяч циклов перезаписи, двухбитная MLC/DLC — уже 10 тысяч. С увеличением плотности записи и ёмкости накопителей снижается цена гигабайта, но увеличивается сложность и уменьшается ресурс ячеек памяти.

4ogurwhsr41kz6-j5uo6hvkh3t4.png
Уменьшение ресурса P/E с увеличением технологической сложности производства флеш-памяти, источник

Производители пытаются увеличить срок жизни SSD разными способами: интеллектуальное распределение нагрузки (прошивка SSD, контроллер), отслеживание и коррекция ошибок, резервный кэш накопителя.

Показатели DWPD и TBW


Обычно производитель указывает два параметра, которые позволяют рассчитать срок эксплуатации накопителя: DWPD и TBW. Например, для NVMe SSD 980 PRO заявлен гарантийный показатель 150 TBW для накопителя на 250 ГБ и 600 TBW для модели 1 ТБ.

  • Terabytes Written (TBW) = количество терабайт, которые можно записать на SSD в течение срока эксплуатации.
  • Drive Writes Per Day (DWPD или DW/D) = расчётная нагрузка на SSD (в день) во время срока эксплуатации, который составляет три-пять лет.


Если указан только DWPD, то можем сами посчитать TBW:

TBW (Х ТБ) = Х * DWPD * 365 дней в году * количество лет гарантии


Если в технических характеристиках 4-терабайтного SSD указано «пять лет, 1 DWPD», то накопитель рассчитан на 4 терабайта записи в день в течение 365×5 = 1825 дней, то есть:

TBW = 4*1825 = 7300 ТБ


Такой объём записи должен выдержать накопитель в течение гарантийного срока.

Для разных накопителей количество TBW кратно отличается при одинаковом DWPD. То есть 1 DWPD для 15-терабайтного диска означает в 15 раз больший объём записи, чем 1 DWPD для терабайтного.

То еcть даже изначально при покупке SSD можно рассчитать, сколько лет отработает SSD с конкретным DWPD, если вы заранее знаете объём записи на диск в своей системе.

Соответственно, в случае интенсивной нагрузки 24/7 типа майнинга Chia можно выбрать более дорогую модель с более высоким показателем DWPD — и всё равно она долго не проживёт. А для нормальной работы нет смысла переплачивать, если расчёт по формуле покажет вам срок эксплуатации более 100 лет. Тут явно накопитель выйдет из строя раньше и по другим причинам.

Оценка своего DWPD


Для предварительной оценки нагрузки на SSD в продакшне на основе рекомендаций производителей можно составить такую небольшую шпаргалку с указанием типичных вариантов использования:
Таким образом, из реального DWPD и P/E для своего SSD можно примерно оценить приблизительный срок его жизни: общий и сколько осталось.

Общий срок жизни (дней) = P/E для своего типа памяти / DWPD (реальный)


Оставшийся срок можно ориентировочно спрогнозировать, если вычесть реальный срок эксплуатации из общего срока жизни SSD.

Или другой вариант — посчитать максимальный TBW для своего SSD исходя из его технических характеристик, а потом отслеживать реальный TBW в процессе эксплуатации.

Сбор статистики с конкретного SSD


Для просмотра показателей SMART существует ряд специализированных утилит. В частности, под Linux это консольные утилиты smartctl, smartd и др. (см. статью про мониторинг SSD под Linux).

Пример выдачи smartctl
sh$ sudo smartctl -a /dev/sdb
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.10.0-32-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x00) Offline data collection activity
was never started.
Auto Offline Data Collection: Disabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 120) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 11) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000a 100 100 000 Old_age Always - 0
2 Throughput_Performance 0x0005 100 100 050 Pre-fail Offline - 0
3 Spin_Up_Time 0x0007 100 100 050 Pre-fail Always - 0
5 Reallocated_Sector_Ct 0x0013 100 100 050 Pre-fail Always - 0
7 Unknown_SSD_Attribute 0x000b 100 100 050 Pre-fail Always - 0
8 Unknown_SSD_Attribute 0x0005 100 100 050 Pre-fail Offline - 0
9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 171
10 Unknown_SSD_Attribute 0x0013 100 100 050 Pre-fail Always - 0
12 Power_Cycle_Count 0x0012 100 100 000 Old_age Always - 105
166 Unknown_Attribute 0x0012 100 100 000 Old_age Always - 0
167 Unknown_Attribute 0x0022 100 100 000 Old_age Always - 0
168 Unknown_Attribute 0x0012 100 100 000 Old_age Always - 0
169 Unknown_Attribute 0x0013 100 100 010 Pre-fail Always - 100
170 Unknown_Attribute 0x0013 100 100 010 Pre-fail Always - 0
173 Unknown_Attribute 0x0012 200 200 000 Old_age Always - 0
175 Program_Fail_Count_Chip 0x0013 100 100 010 Pre-fail Always - 0
192 Power-Off_Retract_Count 0x0012 100 100 000 Old_age Always - 18
194 Temperature_Celsius 0x0023 063 032 020 Pre-fail Always - 37 (Min/Max 11/68)
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
240 Unknown_SSD_Attribute 0x0013 100 100 050 Pre-fail Always - 0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.


Для разных атрибутов SMART утилиты показывают статус типа OLD_AGE, PRE-FAIL или FAILING_NOW. Это значит, что некий атрибут соответствует количеству аномальных ситуаций, и для этих аномалий установлено граничное значение (threshold). Если значение приближается к граничному, это означает PRE-FAIL, а если превышает его — FAILING_NOW. Но это лишь косвенные параметры, которые напрямую не говорят о физическом повреждении ячеек памяти. Некоторые специалисты предпочитают игнорировать показатели типа Wear_Leveling_Count. Один из разработчиков сделал форк стандартной утилиты мониторинга etbe-mon, которая умеет отслеживать данные SMART и подавлять бесполезные уведомления типа FAILING_NOW от Wear_Leveling_Count.

Самый важный их показатель — объективная нагрузка на диск и количество записанной информации, то есть реальные DWPD и TBW, вот их желательно учитывать в первую очередь.

Под Windows есть несколько хороших инструментов для сбора статистики. Например, программа Hard Disk Sentinel отслеживает объём информации, записанной на каждый накопитель за всё время эксплуатации, и рассчитывает прогноз оставшегося срока жизни.

xmfjg-7vcpfpg9kboqhsgozfvkg.png
Hard Disk Sentinel

Есть ещё программа CrystalDiskInfo и др.

go07jwzm5yvsi2swuxswpo69boe.png
CrystalDiskInfo

Многие производители предлагают собственные инструменты для обслуживания своих SSD-накопителей. Например, для накопителей Kingston есть Kingston SSD Manager, для накопителей Samsung — Samsung Magician и так далее.

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

Как продлить срок жизни SSD


Логика подсказывает: если ресурс SSD ограничен количеством циклов перезаписи, то для увеличения срока жизни нужно уменьшить объём записи.

Разумеется, при этом мы не хотим жертвовать производительностью или чем-то другим.

Что можно сделать?

  • поставить больше RAM, чтобы уменьшить использование файла подкачки во время работы операционной системы (некоторые рекомендуют вовсе отключить файл подкачки, но это, по сути, плохой совет, хотя его логика понятна);
  • отключить неиспользуемые функции ОС (см. статью о том, что нужно отключить в Windows 11, по мнению бывшего разработчика Microsoft) и лишние элементы автозагрузки (см. «Ускорение загрузки Windows for fun and profit» на Хабре);
  • отключить ненужную дефрагментацию SSD;
  • использовать утилиты вроде PowerToys для оптимизации ОС;
  • под Linux можно перейти на более продвинутую файловую систему: например, ZFS со встроенным сжатием, которое снижает количество операций записи, при этом увеличивая скорость, вместительность и срок жизни накопителя (см. «Основы ZFS: система хранения и производительность»), или Btrfs, во многом не уступающую ZFS по функциям.


И не следует забывать про резервное копирование для страховки, на случай выхода из строя SSD в любой момент. Можно соорудить простейший RAID-массив из двух-трёх SSD, которые работают одновременно и дублируют друг друга.

SSD+HDD


Один из известных лайфхаков — связка SSD+HDD. Условно говоря, вместо одного большого SSD можно купить NVMe маленького размера, только для операционной системы, рабочих приложений и избранных игр, а все остальные файлы, дистрибутивы и резервные копии хранить на дешёвом медленном SATA HDD. По цене получится примерно одинаковая сумма, а места больше на несколько терабайт.

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

Кроме того, в более свободных SSD больше размер кэша и выше производительность, чем в заполненных.

8nyd7z604zoqxuoy4wgrhc1xz-q.png
Изменение размера кэша SLC в зависимости от объёма свободного места в Intel SSD 665p, источник

Да и игры всё растут. Дистрибутивы по 200 ГБ уже почти норма… Так что полностью переходить на модель «один большой SSD» немного опасно, места может не хватить для всего. С другой стороны, всё больше игр рекомендуют SSD для установки. Тут особо не забалуешь, потому что при использовании HDD страдает производительность.

Надёжность SSD и HDD в первый год работы


Самым известным источником данных по надёжности накопителей в практическом использовании остаётся статистика хостера Backblaze, которая периодически обновляется. У них тысячи серверов и девять лет статистики по разным моделям HDD и SSD (в последние годы загрузочные диски серверов перевели на SSD).

В сентябре 2021 года Backblaze впервые сравнила SSD и HDD по надёжности, получилось любопытно.

В целом оказалось, что в начале работы (в среднем до 14 месяцев в данном случае) SSD выходят из строя немножко реже, чем HDD.

Годовая частота сбоев (AFR)


164a68ce6f743fe2a8c7197f56a9152f.png

Что будет дальше — непонятно. На интервале в несколько лет достоверная статистика пока не собрана. Вполне возможно, что там преимущество SSD будет не таким очевидным, как раз из-за ограниченного ресурса на количество циклов перезаписи.

Что в итоге


Вообще, в последние годы после освоения NVME и PCIe 4.0 рынок потребительских SSD немножко застыл на месте. Бенчмарки топовых моделей вроде 980Pro и SN850 не слишком отличаются от моделей двух-трёхлетней давности. Максимальный объём массовых SSD упёрся в 2–4 ТБ и дальше особо не растёт. Причин много, в том числе дефицит микросхем.

Если нет особого прогресса по техническим характеристикам, то на первый план выходит надёжность как ключевой фактор. И вот здесь прогресс виден. Некоторые SSD уже обогнали отдельные HDD по заявленной надёжности (объём записи 1200–2500 ТБ на 5 лет). Хотя до рекодсменов типа WD Ultrastar DC SN840 им ещё далеко. Там вообще 35 040 ТБ на 5 лет.

Интересно, что «закон Мура» в широком смысле (то есть возрастание некоего технического параметра в геометрической прогрессии) оживает и затихает в разных местах. В конце 20 века он был явно виден у CPU, потом начался бурный прогресс HDD (2000-е), потом SSD (2010-е), а сейчас заметен в области аккумуляторов. Создаётся впечатление, что интенсивное развитие начинается в разных отраслях по очереди, после чего затихает. Но иногда случается неожиданный технологический прорыв, как было с ядром Zen от AMD — и закон Мура снова просыпается… И так продолжается снова и снова: научно-технический прогресс не остановить.

НЛО прилетело и оставило здесь промокод для читателей нашего блога:

— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

© Habrahabr.ru