LINUXTALKS.CO

Новости Не Для Крипта


1

0

Всего сообщений: 3

Релиз OpenZFS 2.3.0, реализации ZFS для Linux и FreeBSD

Группа Open Source

После более года разработки опубликован релиз проекта OpenZFS 2.3.0, развивающего реализацию файловой системы ZFS для Linux и FreeBSD. Проект получил известность как "ZFS on Linux" и ранее ограничивался разработкой модуля для ядра Linux, но после слияния с кодом из FreeBSD был признан основной реализацией OpenZFS и переименован.

Работа OpenZFS проверена с ядрами Linux c 4.18 по 6.12 и всеми ветками FreeBSD, начиная с 13.3. Код распространяется под свободной лицензией CDDL. OpenZFS уже используется во FreeBSD и входит в состав дистрибутивов Debian, Ubuntu, Gentoo, NixOS и ALT Linux. Пакеты с новой версией в ближайшее время будут подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS.

OpenZFS предоставляет реализацию компонентов ZFS, связанных как с работой файловой системы, так и с функционированием менеджера томов. Реализованы компоненты: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) и ZPL (ZFS POSIX Layer). Проект также позволяет использовать ZFS в качестве бэкенда для кластерной файловой системы Lustre. Наработки OpenZFS основаны на оригинальном коде ZFS, импортированном из проекта OpenSolaris и расширенном улучшениями и исправлениями от сообщества Illumos. Проект развивается при участии сотрудников Ливерморской национальной лаборатории по контракту с Министерством энергетики США.

Код распространяется под свободной лицензией CDDL, которая несовместима с GPLv2, что не позволяет добиться интеграции OpenZFS в состав основной ветки ядра Linux, так как смешивание кода под лицензиями GPLv2 и CDDL недопустимо. Для обхода лицензионной несовместимости было решено распространять продукт для Linux целиком под лицензией CDDL в виде отдельно загружаемого модуля, поставляемого отдельно от ядра. Стабильность кодовой базы OpenZFS оценивается как сопоставимая с другими ФС для Linux.

Основные изменения:

  • Реализована возможность добавления на лету новых дисков в существующий массив RAIDZ для увеличения размера хранилища без остановки работы и без необходимости создания новой группы накопителей. Перераспределение избыточных данных с учётом новых дисков осуществляется автоматически. Для добавления диска к существующей группе можно использовать команду "zpool attach POOL raidzP-N NEW_DEVICE", а для отслеживания окончания фонового процесса расширения массива - "zpool status".
  • Значительно ускорено выполнение операций, связанных с дедупликацией блоков данных. Оптимизации среди прочего затронули формат таблиц дедупликации, поэтому для задействования предложенных оптимизаций в уже существующих пулах необходимо включить опцию "fast_dedup", после чего будет созданы новые таблицы дедупликации, которые будут использованы параллельно со старыми таблицами.
  • Добавлен режим прямого ввода/вывода (Direct IO), позволяющий совершать операции чтения и записи в обход кэша ARC (Adaptive Replacement Cache). Режим позволяет повысить эффективность работы в ситуациях, когда кэширование может негативно влиять на производительность из-за дополнительных операций копирования в памяти, например, при использовании устройств NVMe.
  • В большинство команд (zfs list|get|mount|version, zpool status|list|get|version) добавлена опция "-j" для вывода в формате JSON.
  • Допустимый размер имён файлов и каталогов увеличен c 255 до 1023 символов (новый размер выбран с расчётом размещения 255 4-байтовых символов).
  • Внесены оптимизации производительности, охватывающие различные части кодовой базы.
  • В модуль ядра добавлены опции:
  • dmu_ddt_copies
  • raidz_expand_max_copy_bytes
  • raidz_expand_max_reflow_bytes{rel=«nofollow»}
  • raidz_io_aggregate_rows{rel=«nofollow»}
  • spa_cpus_per_allocator{rel=«nofollow»}
  • spa_num_allocators{rel=«nofollow»}
  • zap_shrink_enabled{rel=«nofollow»}
  • zfetch_max_idistance{rel=«nofollow»}
  • zfs_active_allocator{rel=«nofollow»}
  • zfs_arc_shrinker_seeks{rel=«nofollow»}
  • zfs_dedup_log_flush_entries_min{rel=«nofollow»}
  • .zfs_dedup_log_flush_flow_rate_txgs{rel=«nofollow»}
  • zfs_dedup_log_flush_min_time_ms{rel=«nofollow»}
  • zfs_dedup_log_flush_passes_max{rel=«nofollow»}
  • zfs_dedup_log_mem_max{rel=«nofollow»}
  • zfs_dedup_log_mem_max_percent{rel=«nofollow»}
  • zfs_dedup_log_txg_max{rel=«nofollow»}
  • zfs_dio_enabled{rel=«nofollow»}
  • zfs_dio_write_verify_events_per_second{rel=«nofollow»}
  • zfs_resilver_defer_percent{rel=«nofollow»}
  • zfs_scrub_after_expand{rel=«nofollow»}
  • zfs_snapshot_no_setuid{rel=«nofollow»}
  • zfs_vdev_direct_write_verify{rel=«nofollow»}
  • zio_taskq_write_tpq{rel=«nofollow»}

>>> Подробности

 , , ,

MrSugoma ()

Еще новости