![](https://habrastorage.org/webt/nv/3b/hz/nv3bhzqzmm1n2rhzvh1gqu4brng.jpeg)
Недавно компания Western Digital объявила об инициативе по зональному хранению данных — инициативе, ориентированной на открытую инфраструктуру данных, предназначенную для использования преимуществ зональных устройств хранения данных.
Zoned Storage — это новая парадигма хранения, мотивированная невероятным ростом объема данных. Наше общество все больше зависит от данных в повседневной жизни, и управление данными в экстремальных масштабах становится все более необходимым. Уже сегодня в крупномасштабных инфраструктурах обработки данных используются десятки тысяч жестких дисков и твердотельных накопителей. Но даже при этом из более чем 30 ZB данных, которые создаются в год, остается на хранение меньше 20%. Задача нашей индустрии — сделать так, чтобы потребитель мог позволить себе не выбрасывать данные, которые могут приносить пользу.
В этой статье мы обсудим:
- Что такое зональные устройства хранения, и почему эта технология внедряется
- Жесткие диски SMR и твердотельные накопители ZNS
- Инфраструктура данных — что требуется для внедрения зонального хранения данных
Что такое зональные устройства хранения данных?
В самом простом виде, зональные устройства хранения данных — это блочные устройства хранения, адресное пространство которых разделено на зоны. ZSD налагают нетрадиционные правила записи: запись зон может осуществляться последовательно, только начиная с начала зоны. Кроме того, данные в пределах зоны не могут быть произвольно перезаписаны.
![](https://habrastorage.org/webt/fh/tu/ex/fhtuexqojzwesqou-bh6sy44cim.png)
Единственный способ перезаписать уже записанную зону — сброс указателя записи зоны, который фактически удаляет все данные в зоне, и перезапись с начала зоны. С другой стороны, чтение данных в значительной степени не ограничено, и их можно читать так же, как на традиционных запоминающих устройствах.
Концепция зональных устройств хранения данных стандартизирована:
- Для устройств с интерфейсом SAS работа с зонами прописана в стандарте T10 ZBC
- Для SATA также проведена стандартизация в рамках T13 ZAC
- Для твердотельных накопителей NVMe техническое предложение находится в процессе разработки под названием ZNS
Почему зональное хранение?
Мотивацией для применения технологии зонального хранения является высокая эффективность инфраструктуры хранения. Благодаря этой технологии устройства большей емкости могут быть использованы более экономичным способом. Более подробно о том, как достигается эта экономическая эффективность для каждого типа зональных устройств, будет объяснено далее в статье.
Все началось с SMR
За последние несколько лет технология черепичной магнитной записи (SMR) была внедрена в жестких дисках, что позволило увеличить плотность записи, увеличить емкость и экономическую эффективность жестких дисков. В SMR, в отличие от обычной записи, дорожки записываются с перекрытием, подобно черепице на крыше дома. Это позволяет более плотно упаковывать дорожки и, следовательно, обеспечивает более высокую плотность записи. Фактически, использование SMR дает нам «бесплатные» терабайты емкости: на базе обычного 12 ТБ диска можно сделать 14 или даже 15 ТБ SMR-накопитель, без увеличения стоимости производства.
![](https://habrastorage.org/webt/d2/gp/85/d2gp85zvtb68gyn1ulnnng-nbtc.png)
Основным ограничением данной технологии является невозможность записывать данные на дорожки в произвольном порядке. Как мы не можем заменить произвольную черепицу на крыше дома, так и с данными в SMR — мы не можем произвольно перезаписать несколько блоков, не зацепив соседние дорожки. Для управления записью поверхность диска разделена на зоны с зазором между ними. Это позволяет записывать и стирать каждую зону независимо друг от друга (размер зоны в текущем поколении дисков обычно составляют 256 МБ).
Для управления ограничением записи можно использовать несколько подходов. Традиционный подход (drive-managed — управляемый самим накопителем) предполагает, что устройство обрабатывает внутренние ограничения записи самостоятельно при помощи алгоритмов в микрокоде и буферов, и предоставляет обычный интерфейс хосту. Такой вид SMR обычно используется в клиентских устройствах, типа ноутбучных HDD. Однако для крупномасштабных корпоративных или облачных систем, где производительность и использование пространства должны быть предсказуемы, полагаться на сам диск для контроля последовательной записи не получается — слишком сильно «плавает» производительность в зависимости от структуры и интенсивности нагрузки и заполненности буфера.
Управление сложностью на стороне хоста (host-managed SMR) является почти обязательным требованием для больших систем хранения данных и является предпочтительным вариантом для центров обработки данных.
Управление SMR на хосте стандартизировано в INCITS T10/T13 в рамках стандартов команд зональных блоков (ZBC) и зональных устройств ATA (ZAC) для SAS и SATA соответственно.
NVMe и зональные пространства имен в твердотельных накопителях
Для твердотельных накопителей (SSD) ограничение на наличие регионов, которые могут быть записаны только последовательно (страницы NAND) и должны быть удалены до записи новых данных (блоки NAND), является неотъемлемым свойством работы NAND флэш-памяти.
Когда твердотельные накопители были впервые представлены, в них была внедрена внутренняя система управления, получившая название Flash Translation Layer (FTL), которая позволяла справляться с этим ограничением записи. FTL позволило использовать твердотельные накопители вместо жестких дисков без необходимости немедленного переписывания программного стека. Для конечного пользователя SSD выглядит как жесткий диск с быстрым произвольным доступом к информации — и это заслуга FTL.
Однако локальное управление внутри твердотельного накопителя по эффективности далеко от идеала. В частности, есть такие факторы, как:
- Избыточная запись/усиление записи (Write Amplification): чтобы справиться с ограничениями, связанными с отсутствием перезаписи данных, твердотельный накопитель должен самостоятельно перемещать данные для очистки неиспользуемых областей хранения данных, что называется «сбор мусора» (Garbage Collection — GC). Процесс сбора мусора, когда FTL «играет в пятнашки» с блоками данных, вызывает многократную запись одной и той же информации (отсюда и термин «избыточная запись»), что приводит к увеличенному износу флэш-памяти и сокращению срока службы твердотельного накопителя. Коэффициент WA показывает, какое количество операций записи должно быть сделано внутри накопителя на одну операцию записи, поступившую от хоста.
![](https://habrastorage.org/webt/cj/2o/jt/cj2ojtou6g2sd22zje-vqdd0vra.png)
- Резервирование (overprovisioning — OP): дополнительное пространство (в некоторых случаях до 28% и даже более) должно быть зарезервировано для перемещения данных для сбора мусора и повышения его эффективности.
- Требуется большой объем DRAM памяти: для поддержания FTL логико-физического отображения в устройстве требуется большое количество оперативной памяти DRAM. Обратите внимание, что требуемый объем памяти DRAM растет с увеличением размера устройства. В настоящее время средний объем оперативной памяти — 1 ГБ на каждый терабайт емкости SSD. То есть, в большом корпоративном SSD на 15.36 ТБ — 16 «гигов» оперативки. Это больше, чем в большинстве настольных компьютеров или ноутбуков!
- Изменчивость QoS, связанная с включением сбора мусора в любой момент без явного контроля со стороны ПО хоста. Когда FTL начинает активно работать, это может вызывать увеличение задержек при доступе к данным и, соответственно, уменьшать отзывчивость приложений.
Эти недостатки были приемлемы в первую волну внедрения твердотельных накопителей, поскольку программные стеки и интерфейсы были разработаны для жестких дисков, а время отклика на HDD было гораздо больше. Для конечного пользователя переход с HDD на SSD был все равно заметным ускорением.
Со временем, однако, отрасль перешла к созданию более эффективных интерфейсов и программных стеков, которые могут воспользоваться преимуществами более низкой задержки и более высокой пропускной способностью флэш-памяти. В частности, была создана спецификация интерфейса NVMe (Non-Volatile Memory Express) и разработан соответствующий низкозатратный программный стек.
Современное состояние отрасли таково, что локальные оптимизации, которые произошли в FTL SSD, теперь наносят ущерб развертыванию инфраструктуры данных. В частности, у многих клиентов появилось желание создать управляемую хостом последовательную рабочую нагрузку, соответствующую размерам блоков NAND флеш-памяти. В ответ на это организация NVMe стандартизирует зональные пространства имен (ZNS), что позволит хосту направлять операции ввода-вывода для разделения рабочих нагрузок, а также улучшит задержку, пропускную способность и эффективность затрат за счет переноса основной части управления на хост.
Если говорить об экономической эффективности, то переход к ZNS SSD позволит снизить стоимость накопителя за счет использования меньшего объема NAND (снижение резервирования), возможности использования QLC в серверных накопителях, снижения объема DRAM в контроллерах SSD.
Инфраструктура данных — внедрение зонального хранилища данных
Мы уже выяснили, что зональные блочные устройства повышают эффективность хранения, однако для того, чтобы воспользоваться преимуществами этих новых устройств, требуются определенные усилия, поскольку у них нет обратной совместимости с обычным блочным программным стеком. В то время как традиционные устройства хранения данных не имеют ограничений на запись, зональные блочные устройства имеют ограничения на запись, которая должна быть последовательной в пределах зоны. Главным следствием этого является необходимость обновления программного стека.
Первым компонентом, который нуждается в обновлении, является операционная система. Это нетривиальная задача в современных многозадачных операционных системах, работающих на многоядерных и многосокетных серверах, типичных для ЦОД. Сообщество Linux приложило значительные усилия для поддержки зональных блочных устройств в целом и SMR в частности.
В дополнение к поддержке ядра Linux, существует ряд утилит и приложений, поддерживающих Zone Block Devices, таких как fio, Blktests и util-linux.
Ядро и зональные блочные устройства Linux
Работа над поддержкой зонального хранения в ядре Linux началась еще в 2014 году с самого минимального объема поддержки, встроенной в ядро 3.18. Первым выпуском ядра с функциональной поддержкой команд ZBC/ZAC было ядро 4.10 в начале 2017 года. Поддержка продолжает совершенствоваться, и самые последние ядра имеют поддержку отображения зональных устройств в виде блочных /dev/sd, а также поддержку некоторых файловых систем (f2fs, btrfs).
На рисунке ниже показано высокоуровневое изображение структуры ядра Linux и того, как зональные устройства могут быть интегрированы вместе с традиционными блочными устройствами. Поддержка в ядре Linux была реализована путем модификации некоторых существующих компонентов, внедрения новых интерфейсов, таких как интерфейс ZBD на блочном уровне, а также внедрения новых компонентов, таких как отобразитель устройств (device-mapper) dm-zoned.
![](https://habrastorage.org/webt/ty/k0/j5/tyk0j5jgjxt_-dzgsd480nibdvq.png)
Как показано на рисунке, существует множество путей, по которым развертывание инфраструктуры данных может использовать зональные блочные устройства. Например (i) Использование старой файловой системы поверх LVM-тома dm-zoned, (ii) использование файловой системы с поддержкой ZBC, (iii) использование приложений с поддержкой ZBD, которые напрямую взаимодействуют с блочными устройствами через пользовательские библиотеки, такие как libzbc, и т.д.
Инициатива по зональному хранению данных — содействие более широкой поддержке и внедрению прикладных технологий
Несмотря на успехи, достигнутые сообществом разработчиков программного обеспечения с открытым исходным кодом в поддержке Zone Block Devices, инженеры информационной инфраструктуры и разработчики приложений все еще прилагают определенные усилия для использования этой технологии, например, выясняют, какой уровень поддержки существует в каждом из релизов ядра Linux, какие версии приложений имеют необходимую поддержку и какая версия ядра необходима для их работы.
Инициатива по зональному хранению данных была выдвинута отчасти для решения этой проблемы и содействия более широкой прикладной поддержке технологий зонального хранения данных. Вы можете посетить сайт ZonedStorage.io, чтобы узнать больше о технологиях зонального хранения и использовании твердотельных накопителей ZNS и SMR-накопителей ZBC/ZAC. Там вы найдете информацию по следующим вопросам:
- Зональные блочные устройства
- Путеводители по началу работы
- Поддержка и возможности ядра Linux
- Приложения и библиотеки
- Эмуляция зонального устройства на обычном
- Тестирование производительности
- Испытания на соответствие требованиям системы
Используя эту платформу, инженеры по инфраструктуре и разработчики приложений для хранения данных теперь имеют централизованное местоположение для получения всей информации и ресурсов, необходимых для использования зональных технологий хранения данных.
Готовы ли вы?
Посетите ZonedStorage.io и проверьте, готовы ли ваши серверы к работе с зональными дисками. Попробуйте развернуть программную эмуляцию поверх обычного устройства, и возможно, окажется, что структура нагрузки вашего приложения хорошо ложится на концепцию зонального хранения, и вам целесообразно задуматься о развертывании тестовой среды.