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

След повече от две години разработка, проектът OpenZFS 2.2 е публикуван, развиващ реализиране на файловата система ZFS за Linux и FreeBSD. Проектът стана известен като „ZFS на Linux“ и преди беше ограничен до разработка на модул за ядрото на Linux, но след прехвърлянето на поддръжка за FreeBSD, той бе признат за основна реализация на OpenZFS и преименуван.

Работата на OpenZFS е проверена с ядра на Linux от 3.10 до 6.5 и всички клонове на FreeBSD, започвайки от 12.2-RELEASE. Кодът се разпространява под свободна лицензия CDDL. OpenZFS вече се използва във FreeBSD и влиза в състава на дистрибутивите Debian, Ubuntu, Gentoo, Sabayon Linux и 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. Разработките на проекта се основават на оригиналния код на ZFS, импортиран от проекта OpenSolaris и разширен с подобрения и корекции от общността Illumos. Проектът напредва с участието на служители от Националната лаборатория Ливърмор по договор с Министерството на енергетиката на САЩ.

Кодът се разпространява под свободната лицензия CDDL, която не е съвместима с GPLv2, което не позволява интеграцията на OpenZFS в основното ядро на Linux, тъй като смесването на кодове под лицензите GPLv2 и CDDL е недопустимо. За да се заобиколи тази лицензионна несъвместимост, беше решено продуктът да се разпространява изцяло под лицензия CDDL под формата на отделно зареждан модул, който се доставя отделно от ядрото. Стабилността на кодовата база на OpenZFS се оценява като съпоставима с другите файлови системи за Linux.

Основни промени:

  • Добавен е механизъм за клониране на блокове, позволяващ създаването на копие на файл или негова част без дублиране на данните, използвайки в второто копие връзки към вече съществуващи блокове данни на оригиналния файл без тяхното действително копиране. При внесени промени в оригиналния файл или в неговите копия, се извършва копиране на блоковете и прилагане на промените в създадените копия (режим copy-on-write на ниво файлове). На база механизма за клониране е реализирана операцияta reflink, която може да се използва за автоматично създаване на клони в различни утилити за копиране, например в новите версии /bin/cp в Linux.
  • Добавена е поддръжка за технологии, използвани за контейнерна изолация в Linux, като системния повик renameat, файловата система overlayfs, мапинг на идентификаторите на потребителите при монтиране и делегиране на пространства на имена за контейнери.
  • Реализиран е лог на грешки, установени при извършване на операции за проверка на контролни суми (scrub). При изпълнение на командата „zpool status“ се извеждат сведения за всички ФС, снапшоти и клони, които засягат повредения блок. За опити за бързо възстановяване на известни повредени блокове може да се използва командата „zpool scrub -e“.
  • Добавена е възможност за използване на криптографска хеш-функция BLAKE3 за контролни суми, известна с много висока производителност на изчисление на хеша (три пъти по-бързо от Edon-R и значително по-бързо от sha256 и sha512) при осигуряване на надеждност на ниво SHA-3.
  • Реализирана е операцията «zfs receive -c», която може да се използва за възстановяване на повредени данни (без метаданни) във файловата система, моментни снимки и клони, в случаите когато има реплицирано резервно копие, предварително запазено с командата «zfs send».
  • Добавена е поддръжка за софтуерно задаване и четене на свойства за отделни виртуални дискове vdev.
  • Добавена е възможност за свързване на произволни потребителски свойства към vdev и zpool, подобно на потребителските свойства за zfs dataset.
  • Подобрена е реализацията на адаптивния кеш ARC (Adaptive Replacement Cache), която повишава производителността на операциите по четене. ARC сега се адаптира по-добре към високи натоварвания и минимизира необходимостта от ръчна оптимизация на настройките.
  • Добавена е поддръжка за механизми за хардуерно ускорение на изчисляването на контролни суми SHA2.
  • Пренаписана и оптимизирана е реализацията на контролни суми Edon-R.
  • При използване на алгоритъма zstd за компресия на данни е ускорено определянето на ситуации, в които компресията е безсмислена (данните не подлежат на компресия).
  • Направени са подобрения в механизма за предварително зареждане (Prefetch), които ускоряват работата при интензивен вход/изход.
  • Внесена е порция общи оптимизации, повишаващи производителността.

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

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