Zoned storage devices: как повысить эффективность СХД с минимальными затратами
Предложенная Western Digital концепция инфраструктуры хранения, построенной на зонированных устройствах (Zoned Storage Devices, ZSD) с последовательной записью в пределах зоны вплоть до ее заполнения, позволяет решить эту задачу, максимально повысив эффективность использования хранилищ на базе множества накопителей.
Одним из крестных отцов Zoned Storage (ZNS) считается Матиас Бьёрлинг (Matias Bjørling). До присоединения к этой инициативе он разработал первый вариант архитектуры Open Channel для SSD-накопителей, но, имея поддержку тяжеловесов отрасли, все же отказался от дальнейшей работы над этим направлением и присоединился к разработке отраслевого стандарта зональных пространств имен — решения нового поколения с масштабированием для SSD-накопителей. В ZNS Матиас увидел решение насущной проблемы – невозможности эффективно и с оптимальными затратами масштабировать архитектуру хранилища, чтобы идти в ногу со стремительным ростом объема генерируемых данных.
Каково это – оставить наработки, казавшиеся вполне успешными, и начать всё заново? По словам самого Бьёрлинга, он много лет стремился создать быструю и масштабируемую систему, и, когда, окончив вуз, работал над кандидатской диссертацией, загорелся идеей построить работающую в реальном времени программную платформу, на которой можно было бы тестировать преимущества и недостатки SSD-накопителя.
Примерно в это же время Бьёрлинг встретил Йенса Аксбо – ведущего разработчика и ответственного за поддержку слоя блочных устройств в ядре Linux, работавшего в Fusion-IO. Именного его он считает одним из своих главных наставников. В те годы накопители Fusion-IO были одними из самых быстрых твердотельников на рынке, но дальнейшее масштабирование выстроенного на единой очереди стека хранения Linux при их использовании не представлялось возможным. Для решения этой проблемы они создали блочную структуру с несколькими очередями, которая сегодня реализована более чем на миллиарде устройств.
В конечном счете Матиас разработал свою платформу для SSD. Он решил вполне логичным разбить ее на два уровня: SSD-контроллер и носитель разместить в нижней части, а программное обеспечение, взаимодействующее с «железом», – наверху. После окончания аспирантуры он построил программную реализацию обоих уровней, хотя не оставил намерений избавиться от нижнего, переместив его на оборудование.
Узнав, что в Кремниевой долине есть стартап CNex Labs, занимающийся разработкой аппаратного SSD-контроллера, аналогичного нижнему уровню, каким он его представлял, Матиас присоединился к этому коллективу и собрал в Дании команду, которая создала программный стек, открыла его исходный код и начала заниматься продвижением решения. На это ушло немало времени и сил, Бьёрлингу пришлось участвовать во множестве научных конференций и в связи с этим много путешествовать.
И все же именно эти мероприятия сыграли ключевую роль в продвижении данного решения. В их рамках Бьёрлинг познакомился с людьми, которые впоследствии стали его самыми ярыми приверженцами. На первом саммите ‘Linux Storage Filesystem & MM’ он встретил также будущих наставников, которые через какое-то время взяли его на работу и помогли донести идею зональных пространств имен до Western Digital.
Объясняя причину отказа от Open Channel в пользу зональных пространств имён для SSD-накопителей, Матиас отмечает, что иногда, чтобы улучшить нечто хорошее, от него следует оказаться. По его словам, всё произошло около трех лет назад, когда стало ясно, что SSD с Open-Channel оказались прекрасным решением для многопользовательских сред и получили интеграцию со многими приложениями. Однако двигаться в сторону стандартизации не представлялось возможным. И, несмотря на потраченные в процессе создания этого варианта архитектуры усилия, Бьёрлинг решает изменить курс. Он пришел к выводу, что создание нового интерфейса для SSD-накопителей потребует гораздо больше ресурсов, а кроме того, необходима поддержка надежной и стабильной компании, которая, с одной стороны, внедрила бы отраслевой стандарт, а с другой – обеспечила к технологии широкий доступ.
И, хотя недостатка в предложениях от компаний, включая гиперскейлеров, не было, Бьёрлинг понимал, что ZNS нужно место, где были бы обеспечены и стандартизация этой технологии, и ее долгосрочная поддержка за счет создания требуемого стека с открытым кодом, который действительно помог бы ей взлететь. Western Digital тогда уже зарекомендовала себя лидером в обоих аспектах: стандартизировала похожий интерфейс для управляемых хостом HDD-накопителей с черепичной магнитной записью (SMR) и выстроила вокруг него надежную программную инфраструктуру. Поэтому Бьёрлинг присоединился к ее команде, занимавшейся созданием интерфейса для SSD следующего поколения, которое впоследствии получило имя ZNS.
Вместе с коллегами Бьёрлинг занялся процессом стандартизации в рамках NVM Express. Решая задачи на начальном этапе, команда сотрудничала с рядом крупных игроков, после чего была сформирована отдельная рабочая группа внутри NVMe, в рамках которой большинство компаний из отрасли хранения данных плотно взаимодействовали, стремясь выстроить стандарт нового интерфейса SSD-накопителя и продолжая трудиться над расширениями.
В процессе этой работы приходилось сталкиваться с людьми, скептически относящимися к данной технологии. Впрочем, даже внутри команды порой было сложно добиться согласия по поводу вида конечного решения. «Без устали продвигайте свои идеи, с благодарностью принимайте советы и обратную связь, продолжайте улучшать проект и усиленно работать над ним, пока он не взлетит. Это может оказаться непростым делом. Более того, реализация может растянуться на годы», — рецепт успеха от Бьёрлинга.
По мере того как сама концепция зонирования укрепляет позиции, число сторонников ZNS продолжает расти. После получения в прошлом году поддержки ядра Linux 5.10 технологию ожидает адаптация системного и прикладного ПО, так как при ее применении управление записью на накопителе осуществляет хост. Но, как известно, зональные блочные устройства имеют ограничения на запись, и для внедрения новой технологии необходимо обновить программный стек. Будут ли какие-то новшества в этом направлении или разработчики займутся, более насущными проблемами, предугадать сложно, но в любом случае ZNS имеет большие резервы для дальнейшего развития.
Опубликовано 27.07.2021