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

След повече от година разработка, е публикувана версия 2.3.0 на проекта OpenZFS, който развива реализацията на файловата система 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 се оценява като сравнима с другите файлови системи за 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