Диски Seagate используют встроенное сжатие

01 Июл 2016

Диски Seagate используют встроенное сжатие

Анализируя тенденции развития вычислительных платформ за послед­ние десятилетия можно выделить устойчивый тренд: решения, которые в силу сложной реализуемости сегодня кажутся недостаточно эффек­тивными, завтра становятся реальностью на обновленной технологи­ческой базе. Использование алгоритмов сжатия в устройствах хранения данных, в частности — технология Seagate DuraWrite Data Reduction — неплохо иллюстрирует сказанное.

Логично предположить, что аппаратное сжатие данных, дополненное оптимизацией под топологию запоминающей Flash-матрицы, окажется производительнее программного архиватора. Кроме того, согласно информации Seagate, снижение трафика между запоминающей мат­ри­цей и контроллером, обусловленное уменьшением объема записыва­е­мых данных, позитивно скажется на сроке службы накопителя, ввиду уменьшения количества циклов перезаписи за единицу времени (decreases the number of program/erase (P/E) cycles).

Контроллер SandForce SF2200 используется в SSD-накопителях с интерфейсами SATA: подсистема DuraClass Technology управляет трафиком между хост-интерфейсом и запоминающей матрицей
Рис.1 Контроллер SandForce SF2200 используется в SSD-накопителях с интерфейсами SATA: подсистема DuraClass Technology управляет трафиком между хост-интерфейсом и запоминающей матрицей

Контроллер SandForce SF3700 используется в SSD-накопителях с интерфейсами SATA и NVMe: подсистема DuraWrite также занимает центральное место в обработке потоков данных, наряду с применением цифрового сигнального процессора
Рис.2 Контроллер
SandForce SF3700 используется в SSD-накопителях с интерфейсами SATA и NVMe: подсистема DuraWrite также занимает центральное место в обработке потоков данных, наряду с применением цифрового сигнального процессора (DSP) для интеллектуальной обработки потоков информации и коррекции ошибок

И конечно, полным набором технологических последовательных интерфейсов (RS232, I2C, JTAG) разработчик облегчил выполнение своих задач.

Вместе с тем, чтобы интегрировать такое решение в существующую инфраструктуру подсистем хранения данных, разработчикам аппаратных средств и системного программного обеспечения потребуется основательно потрудиться.

О проблеме

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

Итак, занимаемый файлом на запоминающей Flash-матрице размер будет зависеть от содержимого файла. Вполне реальной становится ситуация, при которой наличие свободного места на носителе, в количестве X байт, не означает гарантию успешного размещения файла, размер которого меньше или равен X. Существующее программное обеспечение не готово к обслуживанию подобных сценариев.

Проблемы не будет, если низкоуровневый драйвер отрапортует только «истинную» физическую емкость накопителя, без прибавки, обусловленной упаковкой данных, но в этом случае, возможности новой технологии останутся нереализованными, в результате мы просто получим «обычный» накопитель.

О решении

Согласно информации Seagate, разрешение описанного противоречия станет еще одной из многочисленных обязанностей технологии SMART, в дополнение к таким параметрам, как уровень износа накопителя, интенсивность ошибок, температура и т. п. Специальный атрибут резервируется для контроля физического уровня заполнения накопительной матрицы и наличия свободного места. В то время, как паспорт диска, формируемый в результате выполнения ATA-команды IDENTIFY DEVICE, «менее откровенен» в ответе на вопрос о емкости Mass Storage устройства и сообщает так называемую виртуальную емкость (virtual capacity), вычисляемую на основании некоторой прогнозируемой средней степени сжимаемости данных. С учетом тенденций развития спецификации ATA, в будущих реализациях весьма вероятно размещение в паспорте диска обоих параметров: физической и виртуальной емкости.


Рис 3. Демонстрационная версия программного обеспечения, предназначенного для мониторинга реальной и виртуальной емкости SSD-накопителя

Пояснения к скриншоту, полученному из программы LSI Nitro Virtual Cache: синяя линия (константа) отражает физическую емкость накопителя, красная — используемая физическая емкость и зеленая — используемая логическая емкость. Сжатие данных делает возможной ситуацию, при которой логическая емкость превышает физическую, на графике это соответствует выходу зеленой линии выше синей. При этом красная линия ниже, что означает, что на SSD используется меньше пространства. Дельта между зеленой и красной — это выигрыш от сжатия.

Резюме

Читая информацию Seagate между строк, можно предположить, что драйверы файловых систем новых ОС, должны будут использовать данные SMART при управлении дисковым пространством. Речь об атрибутах, несущих информацию о физическом (не виртуальном) количестве свободного пространства на носителе. Решение, с одной стороны, эффективное, хотя некоторое «размытие границ» в стеке протоколов, между уровнем файловой системы и уровнем взаимодействия с оборудованием, неизбежно отразится на унификации и совместимости.

Авторам дисковых бенчмарок придется учесть, что производительность подсистем хранения данных может изменяться при различном содержимом записываемых файлов. Зависимость алгоритмов обслуживания чтения и записи от информации, несколько увеличит вероятность трудно выявляемых ошибок, проявляющихся только на определенных наборах данных, передаваемых в определенной последовательности, а возможность повреждения накопителя в результате хранения произведений классиков марксизма-ленинизма уже не кажется нереальной и анекдотичной историей…