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

1ee4660ce355a33069f9ed867f4de795.png


На случай, когда получаешь что-то давно обещанное и/или ожидаемое, есть поговорка «И полгода не прошло». В случае с 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 прекращена.
1hdqmj1bvguax5hnugdz0ci_jbw.jpeg

© Habrahabr.ru