Western Digital опубликовал специализированную ФС Zonefs для зонированных накопителей
26 декабря 2019 года
Директор по программным разработкам компании Western Digital предложил в списке рассылки разработчиков ядра Linux новую файловую систему Zonefs, нацеленную на упрощение низкоуровневой работы с зонированными устройствами хранения. Zonefs связывает каждую зону в накопителе с отдельным файлом, который можно использовать для хранения данных в raw-режиме без манипуляции на уровне секторов и блоков.
Zonefs не является POSIX-совместимой ФС и ограничена достаточно узкой областью применения, позволяющей приложениям использовать файловый API вместо прямого обращения к блочному устройству при помощи ioctl. Связанные с зонами файлы требуют выполнения операций последовательной записи, начиная с конца файла (запись в режиме дополнения).
Предоставляемые в Zonefs файлы могут применяться для размещения поверх зонированных накопителей БД, использующие структуры хранения в форме лога LSM (log-structured merge), отталкиваясь от концепции один файл - одна зона хранения. Например, подобные структуры применяются в БД RocksDB и LevelDB. Предложенный подход даёт возможность сократить затраты на портирование кода, изначально рассчитанного на манипуляцию с файлами, а не блочными устройствами, а также организовать низкоуровневую работу с зонированными накопителями из приложений на языках программирования отличных от Си.
Под зонированными накопителями подразумеваются устройства на жёстких магнитных дисках (Архивная копия от 28 сентября 2020 на Wayback Machine) или NVMe SSD (Архивная копия от 28 октября 2020 на Wayback Machine), пространство для хранения в которых разбито на зоны, составляющие группы блоков или секторов, в которые допускается лишь последовательное добавление данных с обновлением целиком всей группы блоков.
Например, зонирование записи применяется в устройствах c черепичной магнитной записью ( Shingled Magnetic Recording, SMR), в которых ширина дорожки меньше ширины магнитной головки, и запись производится с частичным перекрытием соседней дорожки, т.е. любая перезапись приводит к необходимости перезаписи всей группы дорожек. Что касается SSD-накопителей, то в них изначально имеется привязка к последовательным операциям записи с предварительной очисткой данных, но данные операции скрываются на уровне контроллера и прослойки FTL (Flash Translation Layer). Для повышения эффективности при некоторых видах нагрузки организация NVMe стандартизировала интерфейс ZNS (Zoned Namespaces), позволяющий напрямую обращаться к зонам в обход прослойки FTL.
В Linux для зонированных жёстких дисков начиная с ядра 4.10 предлагаются (Архивная копия от 10 августа 2020 на Wayback Machine) блочные устройства ZBC (SCSI) и ZAC (ATA), а начиная с выпуска 4.13 добавлен модуль dm-zoned, представляющий зонированный накопитель как обычное блочное устройство, скрывая применяемые в процессе работы ограничения записи. На уровне файловых систем поддержка зонирования уже интегрирована в ФС F2FS, а в разработке находится набор патчей для ФС Btrfs, адаптацию которой для зонированных накопителей упрощает работа в режиме CoW (copy-on-write). Работу Ext4 и XFS поверх зонированных накопителей можно организовать (Архивная копия от 28 сентября 2020 на Wayback Machine) при помощи dm-zoned. Для упрощения перевода файловых систем предложен интерфейс ZBD, транслирующий операции случайной записи в файлы в потоки последовательных операций записи.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.