LINUXTALKS.CO

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

 , , ,

L


0

1

После более года разработки опубликован релиз проекта 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»}

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



Проверено: Aleksandra ()

а что, ты скрипт не используешь? ты же сказал, что он работает? он кат вставляет после первого абзаца, а у тебя новость очень длинная.


а кроме того, сосискин - мамкин пирожок и вахтер

crypt    
★★★☆☆
FreeBSD / Chrome (GB)
Ответ на: комментарий от MrSugoma

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


а кроме того, сосискин - мамкин пирожок и вахтер

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome (GB)
Ответ на: комментарий от MrSugoma

да я уже не помню, но мы это разбирали на форуме и делал как положено. там где-то на опеннете написаны правила перепоста.


а кроме того, сосискин - мамкин пирожок и вахтер

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome (GB)
Ответ на: комментарий от crypt

При перепечатке указание ссылки на opennet.ru обязательно

Так под каждой опеннетовской новостью. Я это выполняю. Тем более, на ЛОРе никто никаких копирайтов Опеннета не ставит, все просто дают ссылку «подробности».

MrSugoma    

Linux / Firefox (BE)
Ответ на: комментарий от MrSugoma

А при чем тут ЛОР? Они каждую новость с опеннета пересказывают своими словами или сокращают. У них там комплексы про уникальный материал и т.д. Нужно не копировать чужое поведение, а подумать.

На опеннете написано CC-BY 3.0, можно пойти по ссылке:

Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
appropriate credit — If supplied, you must provide the name of the creator and attribution parties, a copyright notice, a license notice, a disclaimer notice, and a link to the material. CC licenses prior to Version 4.0 also require you to provide the title of the material if supplied, and may have other slight differences.

Т.е. надо писать имя создателя или владельца. В случае с опеннетом права на новость переходят к опеннету. Нужно указывать лицензию (и даже ссылку на саму лицензию). И ссылку на материал.

Я наконец убедил тебя, что все в моем скрипте было сделано по правилам, как надо?


а кроме того, сосискин - мамкин пирожок и вахтер

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome (GB)
Ответ на: комментарий от crypt

Нужно не копировать чужое поведение, а подумать.

А кому-то вообще хочется думать?

Я наконец убедил тебя, что все в моем скрипте было сделано по правилам, как надо?

Да.

MrSugoma    

Linux / Firefox (DE)
Ответ на: комментарий от MrSugoma

А кому-то вообще хочется думать?

разница поколений, видимо. в мое время это умение ценилось и мне это до сих пор нравится.


а кроме того, сосискин - мамкин пирожок и вахтер

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 1)

FreeBSD / Chrome (GB)
Ответ на: комментарий от MrSugoma

ну, это субъективно твоя необходимость) может быть и другая необходимость думать) я выше свою мотивацию обозначил. правильно соблюсти лицензию - способ сказать «спасибо» людям, которые проделали работу.


а кроме того, сосискин - мамкин пирожок и вахтер

crypt    
★★★☆☆
Последнее исправление: crypt (всего исправлений: 2)

FreeBSD / Chrome (GB)