Несмотря на победное шествие твердотельных накопителей, механические жёсткие диски всё ещё применяются широко. Для увеличения плотности записи в них нередко применяется технология черепичной или черепичатой (shingled, SMR) записи, при которой дорожки секторов на пластине частично друг друга перекрывают. Если на скорость чтения это влияет слабо, то запись в режиме SMR производится достаточно медленно, поскольку требует перезаписи соседних дорожек, и даже в архивных сценариях такие скорости могут быть неприемлемо низкими. Однако компания Western Digital, похоже, нашла выход из ситуации.
Вкратце напомним: в технологии SMR для чтения и записи используется разная ширина дорожек, причём, в режиме записи, как более сложном, дорожка шире. Как следствие, дорожки «наползают» друг на друга подобно черепицам на крыше дома, отсюда и название технологии. Считать такую структуру нетрудно, однако если на диск поступают новые данные, приходится стирать и перезаписывать соседние дорожки, а это отнюдь не добавляет скорости, зато серьёзно повышает латентность, причём, непредсказуемым образом. Существует даже отдельный термин tail latencies.
Реализация алгоритмов SMR может быть как дисковая (выполняется на уровне контроллера на плате HDD), так и программная — в этом случае за неё отвечает хост-система. Последний подход обычно требует модификации приложений или даже введения отдельной программной прослойки, и это замедляло темпы внедрения SMR. Однако Western Digital полагает, что нашла выход из ситуации.
Компания смогла договориться о партнёрстве с разработчиком ПО Kalista.IO, разработавшей программное обеспечение под названием Olympus, призванное ускорить запись в накопителях с SMR или зонированием. Данная система состоит из двух сервисов: единого блочного, файлового и объектного интерфейса Phalanx и вычислительного Abacus, каждый из них может запускаться и масштабироваться отдельно. Система Olympus доступна в различных вариантах: как аппаратный блок, программное приложение и даже виртуальный образ.
Phalanx способен представить любой накопитель, будь то SSD или HDD, как диск с черепичной записью и не требует никакой рекомпиляции или иного внесения изменений в существующие приложения, не требуется также установка дополнительного модуля ядра в Linux — всё работает в пространстве пользователя. Данные при этом делятся на «строки и столбцы», при записи Phalanx гарантирует отсутствие одномоментной концентрации «горячих записей», что ликвидирует проблему с непредсказуемой латентностью. Масштабируется Phalanx добавлением дисков, для метаданных используется отдельное хранилище.
Как показывают предварительные тесты, использование ПО, разработанного Kalista.IO в накопителе WD Ultrastar HC600 с хост-управлением SMR, позволяет добиться уровня латентности ниже, нежели у Ultrastar HD530, который SMR-записи не использует. Результаты, полученные WD и Kalista.IO в Hadoop и Ceph можно загрузить по ссылке, в целом же, Phalanx продемонстрировала возрастание IOPS на 58%, а стабильность возросла в 10 раз.