В спецификацию накопителя обычно лезут с одним вопросом. Сколько он проживёт?
Ответ там есть. Только записан он двумя разными способами - TBW и DWPD, - и производители любят печатать то одну цифру, то другую. Ниже разберём, как перевести их друг в друга, как посчитать срок службы под свою нагрузку и почему расчёт «в лоб» даёт слишком оптимистичный ответ.
Если совсем коротко: TBW = DWPD × объём в ТБ × 365 × лет гарантии. Диск на 2 ТБ с 0,6 DWPD и гарантией 5 лет рассчитан на 2 190 ТБ записи. А чтобы прикинуть срок службы, поделите TBW на то, сколько вы пишете в сутки, - и полученное число уменьшите вдвое-втрое на усиление записи.
TBW (Terabytes Written) - сколько терабайт производитель гарантирует записать за всё время жизни накопителя. Величина абсолютная: 600 ТБ, 2 190 ТБ, 7 000 ТБ.
DWPD (Drive Writes Per Day) - сколько раз в сутки можно перезаписать весь объём диска в течение гарантийного срока. Величина относительная: 0,3, 1, 3, 10.
Одна переводится в другую без потерь:
Отсюда простое наблюдение, которое стоит держать в голове при сравнении моделей: DWPD без указания срока гарантии не значит ничего. Один и тот же диск при гарантии 3 года и 5 лет получит разный DWPD при одинаковом TBW. Когда в двух спецификациях стоит «1 DWPD», а сроки разные - это разные диски.
Потребительские накопители обычно маркируют в TBW, серверные - в DWPD. Логика простая: домашнему пользователю понятнее «600 терабайт», а в датацентре считают нагрузку на объём.
Ресурс упирается в физику ячейки. Каждая запись стирает и заново заряжает её, изоляция от этого понемногу деградирует, и в какой-то момент ячейка перестаёт надёжно держать заряд. Число таких циклов конечно, и оно тем меньше, чем больше бит производитель уложил в одну ячейку.
| Тип ячейки | Бит в ячейке | Ресурс, циклов перезаписи |
|---|---|---|
| SLC | 1 | 50 000-100 000 |
| MLC | 2 | 3 000-10 000 |
| TLC | 3 | 1 000-3 000 |
| QLC | 4 | около 1 000 |
Каждый лишний бит стоит примерно порядка по выносливости. Подробный разбор типов памяти, поколений 3D NAND и того, чем eMLC отличается от обычной, - в статье про типы памяти SSD; здесь нас интересует только следствие для расчёта.
Важная оговорка: по одной аббревиатуре ресурс не предсказать. Современный TLC с большим числом слоёв даёт запас лучше, чем ранняя TLC-память, а контроллер с грамотным выравниванием износа растягивает его дальше. Поэтому в спецификации смотрят не букву, а TBW.
Порядок такой.
Шаг 1. Узнайте, сколько вы пишете в сутки. Не угадывайте - снимите. На работающем сервере это видно по счётчикам самого накопителя (о них ниже), на новом проекте прикидывают по объёму базы, логов и бэкапов.
Шаг 2. Поделите TBW на суточную запись. Получите срок в днях, дальше в годах.
Возьмём диск на 1 ТБ с гарантийным TBW 600 ТБ - типичный потребительский NVMe.
| Сколько пишем в сутки | Что это за нагрузка | Хватит на |
|---|---|---|
| 20 ГБ | обычный офисный компьютер | около 80 лет |
| 100 ГБ | небольшая база 1С, общий файловый ресурс | около 16 лет |
| 500 ГБ | активная база, видеонаблюдение | около 3 лет |
| 2 ТБ | лог-коллектор, промежуточное хранилище бэкапов | меньше года |
Первые две строки объясняют, почему про TBW обычно вспоминают зря: под офисной нагрузкой диск устареет морально задолго до износа. Последние две объясняют, почему в серверах на это всё-таки смотрят.
Расчёт выше - оптимистичный. На флеш-память попадает больше данных, чем отправила операционная система.
Причина в устройстве накопителя: писать он умеет страницами, а стирать - только целыми блоками. Чтобы освободить блок, контроллер переносит из него живые данные в другое место. Это фоновая работа, которую хост не видит, но ресурс она расходует. Соотношение того, что реально записано во флеш, к тому, что прислал хост, называют коэффициентом усиления записи.
Порядки такие: при последовательной записи крупными кусками коэффициент близок к единице, при обычной смешанной нагрузке - от 1,2 до 3, а базы данных и виртуалки, которые правят мелкие блоки вразнобой, разгоняют его сильнее всего. Практический вывод: посчитанный срок службы делите на два-три, если нагрузка не сводится к последовательной записи больших файлов.
Смягчают усиление две вещи. Первая - свободное место: чем плотнее забит диск, тем меньше у контроллера пространства для манёвра, поэтому под запись всегда оставляют запас. Вторая - TRIM, команда, которой система заранее сообщает, какие блоки больше не нужны. В любой Windows начиная с 7 и в современных Linux она работает сама.
Накопитель считает это сам, и цифру можно посмотреть.
У NVMe есть готовый ответ - атрибут Percentage Used: сколько процентов заявленного ресурса потрачено. Ноль на новом, сто на исчерпавшем гарантийный ресурс. Значение может уйти и выше ста - диск при этом обычно продолжает работать, просто гарантия по выносливости кончилась. Рядом полезно смотреть Available Spare - остаток резервных блоков в процентах.
Смотрят так:
nvme smart-log /dev/nvme0 -H
У SATA-накопителей единого атрибута нет: производители заводят свои, и называются они по-разному. Чаще прочих встречается атрибут 202 «Percentage Lifetime Used», но полагаться на его наличие нельзя. Универсальный путь - утилита smartctl из пакета smartmontools или графические CrystalDiskInfo и вендорские менеджеры. Учтите, что фирменные утилиты работают только со своими накопителями: диск другого производителя они не покажут.
Отдельно стоит запомнить счётчик Data Units Written у NVMe - именно он говорит, сколько хост записал за всю жизнь диска. Считается он в единицах по 512 000 байт, так что перевод простой: умножьте значение на 0,512 и получите мегабайты. Разделите на 1 953 125 - получите терабайты. Сравнив это число с гарантийным TBW, вы и увидите, где находитесь.
Этот же счётчик закрывает первый шаг расчёта. Снимите его, подождите сутки, снимите ещё раз - разница и есть ваша суточная запись, без всяких прикидок. На нагруженной системе показательнее взять неделю и поделить на семь: будни и выходные пишут по-разному.
Серверные накопители производители сами раскладывают по классам выносливости. Ориентиры такие:
| Класс | DWPD | Под что берут |
|---|---|---|
| Read Intensive | 0,3-1 | Файловый сервер, веб, архив, образы виртуалок, которые почти не меняются |
| Mixed Use | 1-3 | Базы данных средней активности, терминальные серверы, гипервизор общего назначения |
| Write Intensive | 3-10 | Журналы транзакций, кеш-слой, лог-коллекторы, промежуточное хранилище бэкапов |
Тянуть Write Intensive «на всякий случай» под файловый сервер - переплата в разы. Обратная ошибка обходится дороже: диск из класса Read Intensive под журналом базы данных исчерпает ресурс за пару лет, и менять его придётся вне плана.
Есть нюанс, который стоит знать при чтении спецификаций. Заявленный DWPD серверных дисков меряют по стандартной методике JEDEC на случайной записи - нагрузке заметно более жёсткой, чем у большинства реальных систем. То есть цифра консервативная, и на практике диск обычно живёт дольше заявленного. Это довод не завышать класс без причины.
Если платформа ещё не выбрана, посмотрите в каталоге серверы баз данных - там собраны конфигурации, рассчитанные как раз на интенсивную запись.
Гарантия кончается по первому из двух событий - выработке TBW или истечению срока в годах. Диск, который за два года из пяти выбрал весь ресурс, дальше не гарантирован, хотя календарный срок не вышел.
Питание. Ресурс никак не связан с защитой от внезапного отключения. В серверных накопителях за это отвечают конденсаторы, которые дают контроллеру дописать то, что уже принято. У потребительских моделей их обычно нет, и при пропаже питания теряется последняя запись, а иногда и данные рядом с ней. Для сервера это отдельный пункт при выборе, независимый от TBW.
Простой. Заряд в ячейке утекает и без записи, а на изношенном диске быстрее. Отложить SSD с выработанным ресурсом в ящик как архив - плохая идея: для долгого хранения без питания он не предназначен.
Подбираете накопители под сервер и не уверены в классе выносливости?
Инженеры ITTELO посчитают нагрузку на запись под вашу задачу, подберут диски нужного класса, соберут и протестируют сервер перед отгрузкой, с гарантией и поддержкой после продажи. На рынке серверов 11+ лет.
СХД и серверы для хранения · +7 (800) 551-80-12 · info@ittelo.ru