Новости и события » Hi-Tech » Значительное обновление файловой системы Bcachefs

Значительное обновление файловой системы Bcachefs

Кент Оверстрит (Kent Overstreet) представил в списке рассылки ядра Linux значительное обновление файловой системы Bcachefs, развиваемой с использованием технологий, уже опробованный при разработке блочного устройства для кэширования доступа к медленным жестким дискам на быстрых SSD-накопителях Bcache. В файловой системе используется механизм Copy-on-Write (COW), при котором изменения не приводят к перезаписи данных - новое состояние записывается в новое место, после чего меняется указатель актуального состояния.

Особенностью Bcachefs является поддержка многослойного подключения накопителей, при котором хранилище компонуется из нескольких слоев - к нижнему слою подключаются наиболее быстрые накопители (SSD), которые используются для кэширования часто используемых данных, а верхний слой образуют более емкие и дешевые диски, обеспечивающие хранение менее востребованных данных. Между слоями может применяться кэширование в режиме отложенной записи (writeback).

Кроме типовых возможностей POSIX ФС, например xattrs и ACL, Bcachefs предоставляет доступ к таким расширенным функциям, как возможность подключения к разделу нескольких устройств, репликация (RAID), кэширование, прозрачное сжатие данных и верификация целостности данных и метаданных по контрольным суммам. Из пока не реализованных возможностей отмечается поддержка квот и снапшотов, возможность экспорта через NFS. Среди нерешенных проблем отмечается большое время монтирования, вызванное тем, что во время монтирования осуществляется обход всех inode, dirent-ов и extent-ов.

На данном этапе развития Bcachefs находится на стадии бета-версии, при этом стабильности и надежности уделяется первичное внимание, но дисковый формат еще окончательно не зафиксирован и может меняться в будущем. Большим плюсом Bcachefs является задействование в проекте уже отлаженных и проверенных временем технологий Bcache, что позволяет добиться изначально высокого уровня стабильности. Отмечается, что Bcachefs уже вполне пригоден для использования на ноутбуках и серверах, но так как ФС относительно новая рекомендовано регулярное создание резервных копий. По производительности Bcachefs опережает Btrfs и другие ФС на базе механизма Copy-on-Write, демонстрируя производительность, близкую к Ext4 и Xfs. Bcachefs также хорошо масштабируется и уже протестирована в работе хранилища, размером 50 Тб.

Ключевые улучшения в новой версии Bcachefs:

  • Полноценная поддержка шифрования всей ФС. Для шифрования применяется потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305, разработанные Дэниелом Бернштейном (Daniel J. Bernstein), Таней Ланге (Tanja Lange) и Питером Швабе (Peter Schwabe). ChaCha20 и Poly1305 можно рассматривать, как более быстрые и безопасные аналоги AES-256-CTR и HMAC. В отличие от реализации шифрования в Ext4, в Bcachefs не поддерживается шифрование отдельных частей ФС - зашифрована может быть только все содержимое ФС. По производительности реализация шифрования в Bcachefs близка к dm-crypt, но, при этом, dm-crypt не поддерживает аутентифицированное шифрование;
  • Резервное копирование суперблоков, позволяющее всегда иметь резервную копию на случае повреждения основного суперблока;
  • Новый более компактный и расширяемый формат inode. В среднем в Bcachefs размер inode составляет 50-60 байт, что позволяет кэшировать все метаданны в ОЗУ;
  • Возможность использования нескольких накопителей в одном разделе доведена до состояния, пригодного для использования. Улучшен инструментарий для управления накопителями из пространства пользователя. Обеспечена базовая поддержка репликации (RAID1/10), в том числе с возможностью перевода одного из дисков в offline без остановки работы ФС;
  • Реализация утилиты fsck для проверки и восстановления целостности ФС в пространстве пользователя. Ранее функциональность fsck была реализована на уровне ядра и могла вызываться только в момент монтирования. По сути, утилита fsck стала результатом работы по обеспечению возможности переноса частей Bcache в пространство пользователя, т. е. в утилите fsck представлен тот же код проверки, что ранее применялся на уровне ядра. Более того, почти весь код Bcachefs теперь может быть оформлен в виде библиотеки, работающей в пространстве пользователя. Данный код уже задействован в реализации команд "bcache dump" и "bcache migrate";
  • Новая команда "bcache dump", позволяющая в отладочных целях сохранить дамп всех метаданных в форме образа в формате qcow2. Например, данную возможность можно использовать для создания копии метаданных для последующей отправки разработчикам ФС, в случае если fsck не может решить возникшую проблему;
  • Добавлена команда "bcache migrate", позволяющая на лету перенести содержимое существующей ФС в Bcachefs без потери старых данных. Метод основан на создании в старой ФС одного большого непрерывного файла, после чего на блочном устройстве создается раздел Bcachefs, использующий только блоки, выделенные для этого файла. После этого на новый раздел переносятся все данные из старой ФС. Далее можно примонтировать новый раздел вместо старого (используя опцию offset в команде mount) и убедиться, что все данные перенесены корректно, или одновременно примонтировать старую и новую ФС и сверить идентичность данных ("rsync --itemize-changes").

Maxtang MAX-N100 - мини-ПК со встроенным блоком питания как у Mac...

Maxtang MAX-N100 - мини-ПК со встроенным блоком питания как у Mac mini

В продажу поступил новый компактный компьютер Maxtang MAX-N100 Mini PC. Единственное, чем он примечателен, это встроенный блок питания как у Mac mini (2024). У большинства современных мини-ПК блок питания внешний, но Maxtang MAX-N100 Mini PC - не тот...

сегодня 15:15

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх