ProHoster > Блог > ozi ịntanetị > Western Digital ebipụtala sistemu faịlụ Zonefs pụrụ iche maka draịva mpaghara
Western Digital ebipụtala sistemu faịlụ Zonefs pụrụ iche maka draịva mpaghara
Директор по программным разработкам компании Western Digital tụrụ aro в списке рассылки разработчиков ядра Linux новую файловую систему Zonefs, нацеленную на упрощение низкоуровневой работы с зонированными устройствами хранения. Zonefs связывает каждую зону в накопителе с отдельным файлом, который можно использовать для хранения данных в raw-режиме без манипуляции на уровне секторов и блоков.
Zonefs не является POSIX-совместимой ФС и ограничена достаточно узкой областью применения, позволяющей приложениям использовать файловый API вместо прямого обращения к блочному устройству при помощи ioctl. Связанные с зонами файлы требуют выполнения операций последовательной записи, начиная с конца файла (запись в режиме дополнения).
Предоставляемые в Zonefs файлы могут применяться для размещения поверх зонированных накопителей БД, использующие структуры хранения в форме лога LSM (log-structured merge), отталкиваясь от концепции один файл — одна зона хранения. Например, подобные структуры применяются в БД RocksDB и LevelDB. Предложенный подход даёт возможность сократить затраты на портирование кода, изначально рассчитанного на манипуляцию с файлами, а не блочными устройствами, а также организовать низкоуровневую работу с зонированными накопителями из приложений на языках программирования отличных от Си.
Под зонированными накопителями подразумеваются устройства на жёстких магнитных дисках ma ọ bụ NVMe SSD, пространство для хранения в которых разбито на зоны, составляющие группы блоков или секторов, в которые допускается лишь последовательное добавление данных с обновлением целиком всей группы блоков.
Например, зонирование записи применяется в устройствах c черепичной магнитной записью (Ndekọ magnetik Shingled, SMR), в которых ширина дорожки меньше ширины магнитной головки, и запись производится с частичным перекрытием соседней дорожки, т.е. любая перезапись приводит к необходимости перезаписи всей группы дорожек. Что касается SSD-накопителей, то в них изначально имеется привязка к последовательным операциям записи с предварительной очисткой данных, но данные операции скрываются на уровне контроллера и прослойки FTL (Flash Translation Layer). Для повышения эффективности при некоторых видах нагрузки организация NVMe стандартизировала интерфейс ZNS (Zoned Namespaces), позволяющий напрямую обращаться к зонам в обход прослойки FTL.
В Linux для зонированных жёстких дисков начиная с ядра 4.10 nyere блочные устройства ZBC (SCSI) и ZAC (ATA), а начиная с выпуска 4.13 добавлен модуль dm-zoned, представляющий зонированный накопитель как обычное блочное устройство, скрывая применяемые в процессе работы ограничения записи. На уровне файловых систем поддержка зонирования уже интегрирована в ФС F2FS, а в разработке находится набор патчей для ФС Btrfs, адаптацию которой для зонированных накопителей упрощает работа в режиме CoW (copy-on-write).
Работу Ext4 и XFS поверх зонированных накопителей можно организовать при помощи dm-zoned. Для упрощения перевода файловых систем предложен интерфейс ZBD, транслирующий операции случайной записи в файлы в потоки последовательных операций записи.