Вышел релиз OpenZFS 2.0, реализация ZFS для Linux и (теперь) для FreeBSD


    На случай, когда получаешь что-то давно обещанное и/или ожидаемое, есть поговорка «И полгода не прошло». В случае с OpenZFS 2.0 все чуть дольше: этот релиз мы ждали не полгода, а полтора. О том, что это за проект и в чем его положительные стороны, можно почитать в подробнейшей статье на Хабре.

    Если коротко, то этот проект позиционируется как «ZFS on Linux». Ранее он ограничивался разработкой модуля для ядра Linux. Чуть позже была добавлена поддержка для FreeBSD, так что упоминание Linux убрали из названия. Ну а сегодня разберем, что нового появилось во второй версии.

    OpenZFS входит в состав FreeBSD (HEAD), используется в основной ветке, а также является частью дистрибутивов Debian, Ubuntu, Gentoo, Sabayon Linux и ALT Linux. Новая версия скоро появится в Debian, Ubuntu, Fedora, RHEL/CentOS и других дистрибутивах.

    Что нового?


    • Главное — появилась поддержка FreeBSD. Также разработчики унифицировали кодовую базу для поддержки различных ОС.
    • Что касается изменений для FreeBSD, то разработка ведется в основном репозитории OpenZFS, так что этот проект является основной реализацией ZFS для всех будущих выпусков FreeBSD. Появление поддержки FreeBSD дало возможность решить большое количество проблем, связанных с «состоянием гонки» и блокировками. Кроме того, перенести новые возможности, включая расширенную систему квот, шифрование наборов данных, раздельный выбор классов распределения блоков (allocation classes), использование векторных процессорных инструкций для ускорения реализация RAIDZ и вычисления контрольных сумм, поддержку алгоритма сжатия ZSTD, режим multihost (MMP, Multi Modifier Protection) и улучшенный инструментарий командной строки.
    • Появилась поддержка алгоритма сжатия Zstandart, который в 3-5 раз более быстрый, чем zlib/Deflate. Скорость распаковки выше в два раза, а уровень сжатия — на 10-15%.
    • Добавлен также выборочный режим работы команд zfs send/receive, которые применяются для переноса данных из одного пула в другой. Предложенный режим дает возможность настроить отправку на другую систему лишь подмножества данных, что позволяет убрать неважную информацию вроде логов. Либо можно исключить конфиденциальные данные — ключи доступа или что-то еще. Включается этот режим при помощи команд «zfs redact» или «zfs send --redact».
    • Появился режим последовательного выполнения команды «resilver» (sequential resilver), которая перестраивает распределение данных с учетом изменения конфигурации накопителей. Этот режим дает возможность перестроить отказавшее зеркало vdev гораздо быстрее, чем resilver. Реализовано это благодаря быстрому восстановлению потерянной избыточности в массиве, а затем — запуску операции scrub для проверки всех контрольных сумм данных.
    • Кроме того, реализован постоянный кэш второго уровня L2ARC, в котором данные на подключенном для кэширования устройстве сохраняются между перезагрузками системы. Таким образом, кэш после запуска остается «теплым», и производительность сохраняется стабильно высокой.

    • Добавлены новые команды и возможности:

    — «zfs wait», «zpool wait» — ожидает завершения фоновых работ (resilver, scrub, trim и т.п.).
    — «zfs send --saved» — позволяет сохранить не полностью полученный набор данных.
    — «zfs jail», «zfs unjail» — прикрепляет и открепляет ZFS из jail-окружений FreeBSD.
    — «zfs rename -u» — переименовывает ФС без перемонтирования.
    — «zfs umount -u» — выгружает ключи шифрования в момент размонтирования ФС.
    — «zfs bookmark fs#target fs#newbookmark» — создает копию закладки с новым именем.

    • Реализованы новые варианты оптимизации производительности:

    — Ускорен процесс удаления клонов и фоновой очистки при выполнении команды «zfs destroy».
    — Повышена производительность команд zfs send / zfs receive при обработке записей небольшого размера.
    — Повышена масштабируемость команды zfs share.
    — Повышена эффективность кэша адаптивной замены ARC и управления памятью.
    — Повышена скорость записи в сильно фрагментированных пулах.
    — Оптимизирован режим шифрования AES-GCM.
    — Добавлены оптимизации с использование векторных процессорных инструкций SIMD.

    • Также разработчики объявили устаревшей поддержку дедупликации данных при отправке потоков командой «zfs send -D» и параметр пула dedupditto. Запись новых блоков dedupditto прекращена.


    Selectel
    IT-инфраструктура для бизнеса

    Комментарии 9

      0
      Знаковое событие для этой ФС — направление усилий разработчиков на поддержку разных ОС. Ещё бы полноценную поддержку в Win и MAC и эта система будет лучшим (как минимум домашним) решением для «холодного» хранения данных.
        0
        ещё бы полноценную поддержку в Win и MAC
        зачем настолько распыляться разработчикам? Уж лучше будет хорошая ФС под линукс, чем средненькая — подо всё.
          0
          Никто и не предлагает делать это в ущерб текущему состоянию. Если архитектура изначально продумана и универсальна, то это поможет привлечь дополнительных разработчиков других ОС. А чем выше распространение, тем больше обратной связи, что сильно положительно влияет и на качество, и на безопасность использования.
          0
          Яблокам — обещают (почти та же фря), винда не нужна.
          0

          Ещё бы сделали наконец поддержку клонирования отдельных файлов (reflinks) и было совсем хорошо. Это единственное, что мешает нам использовать ZFS в production. Тикету 9 лет исполнилось уже, в третий класс пошёл.

            0

            вроде как работа начата, я смотрел презентацию — они решили сделать отдельный механизм для reflinks, что-то выглядит сомнительно.


            видео/слайды есть тут:
            https://openzfs.org/wiki/OpenZFS_Developer_Summit_2020


            P.S. заодно уж и ioctl_fideduperange надо реализовывать, конечно.

            0
            Через сколько лет завезут в стабильную убунту?
              0
              В ядре давно есть, установить самостоятельно можно. Когда завезут нормально в установщик — спрашивайте у убунты.
                0
                Погодите, а разве в Ubuntu 20.04 LTS ZFS не из коробки?
                Есть же linuxconfig.org/install-ubuntu-20-04-with-zfs

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое