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

След година разработка, е публикуван релиз на проекта OpenZFS 2.3.0, който развива реализацията на файловата система ZFS за Linux и FreeBSD. Проектът стана известен като «ZFS on Linux» и преди беше ограничен до разработка на модул за ядрото на Linux, но след сливането с кода от FreeBSD, той беше признат за основната реализация на OpenZFS и преименуван.

Работата на OpenZFS е проверена с ядра на Linux от 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 се оценява като comparable с други файлови системи за 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 формат.
  • Допустимият размер на имената на файловете и директориите е увеличен от 255 до 1023 символа (новият размер е избран с оглед на разполагането на 255 4-байтови символа).
  • Направени са оптимизации на производителността, обхващащи различни части от кодовата база.
  • В ядрото на модула са добавени опции:
    • dmu_ddt_copies
    • raidz_expand_max_copy_bytes
    • raidz_expand_max_reflow_bytes
    • raidz_io_aggregate_rows
    • spa_cpus_per_allocator
    • spa_num_allocators
    • zap_shrink_enabled
    • zfetch_max_idistance
    • zfs_active_allocator
    • zfs_arc_shrinker_seeks
    • zfs_dedup_log_flush_entries_min
    • .zfs_dedup_log_flush_flow_rate_txgs
    • zfs_dedup_log_flush_min_time_ms
    • zfs_dedup_log_flush_passes_max
    • zfs_dedup_log_mem_max
    • zfs_dedup_log_mem_max_percent
    • zfs_dedup_log_txg_max
    • zfs_dio_enabled
    • zfs_dio_write_verify_events_per_second
    • zfs_resilver_defer_percent
    • zfs_scrub_after_expand
    • zfs_snapshot_no_setuid
    • zfs_vdev_direct_write_verify
    • zio_taskq_write_tpq

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster