Тема пагубности использования не-серверных серий SSD в серверах отнюдь не нова. Об этом многократно говорилось на семинарах Intel и других производителей дисков SSD. Часто это происходит как результат веры в маркетинговые лозунги. На последнем графике наглядно видно, что производительность бытовых SSD в режиме записи под серверной нагрузкой вполне сопоставима с бытовыми же HDD. А потом возникают легенды о том, что «SSD ничего не дает».
Данный материал - это краткий пересказ публикации Dan Lovinger на Microsoft Technet: Don’t do it: consumer-grade solid-state drives (SSD) in Storage Spaces Direct
Логика SSD
SSD – устройство, состоящее из набора микросхем флэш-памяти NAND, подключенных к внутреннему контроллеру FTL (flash translation layer). Производительность и долгий срок службы SSD зависят от реализации контроллера и его набора процедур в буферной памяти (DRAM) с использованием резерва ячеек NAND (overprovisioning, spare): cбора мусора, освобождения страниц памяти под новую запись, выравнивания износа ячеек, фоновых проверок целостности данных.
Для защиты данных есть два механизма FTL: коррекция ошибок (ECC) и замещение ячеек, выработавших свой ресурс, ячейками из резерва. Когда их запас заканчивается, SSD приходит конец.
Буферная память работает во всех операциях SSD, связанных с размещением данных. Она энергозависима. В потребительских SSD защиты DRAM по питанию нет. В серверных SSD корректное завершение транзакций записи при обесточивании обеспечивают суперконденсаторы.
По сути, два определяющих отличия серверных SSD от бытовых:
• Наличие энергонезависимого кэша записи (Power loss protection)
• Большой ресурс перезаписи ячеек (3-10 DWPD против 0.1-0.2 DWPD)
Эксперимент с потребительскими SSD
Спецификация типичного SATA SSD потребительского класса емкостью 1 TB выглядит многообещающе:
• QD32 4K Read: 95,000 IOPS
• QD32 4K Write: 90,000 IOPS
• Endurance: 185TB при пятилетней эксплуатации.
QD (“queue depth”) – количество отдельных запросов ввода-вывода к устройству во время теста. Расхожее значение 32 объясняется ограничением на число команд, обрабатываемых SATA-устройством. У SAS, а тем более NVMe, предел намного выше.
Переводя показатели endurance в более привычную метрику device-writes-per-day (DWPD), получим ресурс перезаписи
185 TB / (365 days x 5 years = 1825 days) = ~ 100 GB в день, что составляет:
100 GB / 1 TB total capacity = 0.10 DWPD
Для начала тестовый файл размером 100 GB был последовательно записан на SSD несколько раз. Использовалась утилита DISKSPD 2.0.18 с установками QD8 70:30 4 KB, смешанной нагрузкой чтения/записи в 8 потоков. Буфер записи активирован:
diskspd.exe -t8 -b4k -r4k -o1 -w30 -Su -D -L -d1800 -Rxml Z:\load.bin
Тест длился 30 минут. Падение производительности на ~ 10K IOPS примерно через две минуты - это нормально: у FTL закончился запас чистых страниц NAND под новые записи. По исчерпанию резерва SSD работает медленнее, в паузах контроллер предпринимает действия для восстановления производительности: убирает мусор, освобождает страницы. В типичных пользовательских сценариях - как загрузка веб-страниц - разницы никто и не заметит.
Тот же тест, но со сквозной записью, write-through (-Suw):
diskspd.exe -t8 -b4k -r4k -o1 -w30 -Suw -D -L -d1800 -Rxml Z:\load.bin
Режим write-through показывает истинные задержки NAND, обычно маскируемые FTL/буфером.
Ой!
Это больше не “SSD”: через пять минут работы производительность записи упала до уровня HDD, около 220 IOPS. FTL, лишенный буфера, записывает данные в ячейки, разруливает потоки чтения и записи, выполняет фоновую активность – но крайне медленно. Про “кэширование” на таких SSD можно забыть. Жить его ячейки будут недолго.
О важности энергонезависимого буфера.
Все серверные SSD имеют энергонезависимый буфер – это один из признаков этих устройств. С ним SSD гарантирует ОС и приложениям корректное завершение операций записи после попадании данных в буфер даже в случае исчезновения энергоснабжения. Как правило, он реализуется за счет установки на SSD блока суперконденсаторов (на картинке ниже маленькие желтенькие).
Наличие энергонезависимого буфера обеспечивает предсказуемо высокую и стабильную производительность (как на первом графике), и ресурс ячеек вырабатывается равномерно. Все это обеспечивается серверным SSD под смешанной интенсивной нагрузкой.
В финале…
Покупатели должны иметь возможность выбрать SSD, соответствующее задачам сервера. Да, они будут дороже, чем устройства потребительского класса. Но, надеюсь, мы убедили вас, почему серверные SSD того стоят.
Будьте в безопасности!