Релиз OpenZFS 2.4.0, реализация на ZFS за Linux и FreeBSD

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

Работата на OpenZFS е проверена с ядрото на Linux от версии 4.18 до 6.18 и всички версии на 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.

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

  • Реализирана е възможност за задаване на квоти по подразбиране за потребители, групи и проекти. В предишните версии квотите можеха да се задават само поотделно за всеки идентификатор на потребител. В новата версия се появи възможност за задаване на стойност по подразбиране, която ще се прилага, ако за конкретен потребител не е зададена квота.
  • Добавена е възможността за връщане на режима на директен вход/изход (O_DIRECT, Direct I/O) с използване на лек механизъм за некешируем вход/изход (Uncached I/O) за заявки, които не са подравнени по границата на страницата в паметта и не се поддържат в Direct I/O.
  • Предложен е нов унифициран алгоритъм за ограничаване на скоростта на операции по запис и разполагане на блокове, който намалява фрагментацията на vdev (Virtual Device) чрез агрегирането на няколко операции по запис и използването на по-големи непрекъснати свободни области вместо помещенията на резултатите от единични операции по запис в малки свободни области.
  • Увеличена е производителността на шифриране чрез използването на инструкциите AVX2 в реализацията на алгоритъма AES-GCM. В проведените тестове ускорението достига 80%.
  • Позволено е разполагането на ZIL блокове (ZFS Intent Log) не само на нормални vdev или на отделно устройство SLOG, но и на специални vdev. Ако нормален vdev е свързан с твърд диск, а специален vdev с SSD, промяната позволява изключване на ситуации, в които данни се записват на SSD, а свързаните с тях блокове ZIL на твърд диск, което води до излишни забавяния.
  • Позволено е задаването на свойство special_small_blocks за дялове (ZVOL), а не само за файлови системи, което позволява организирането на разполагането на малки блокове на отделен специален vdev, например на SSD.
  • Добавен е режим на презапис "zfs rewrite -P", който по възможност оставя логическото време на създаване непроменено, което позволява разграничаването на блоковете, които просто са преместени в пула от блоковете, които действително са изменени от потребителя.
  • За командите "zpool trim", "zpool scrub" и "zpool initialize" е реализирана опция "-a" (—all), позволяваща изпълнението на тези команди веднага за всички импортирани пулове.
  • Добавена е команда "zpool scrub -S -E" за извършване на проверка на контролни суми на данни, попадащи в указаните времеви интервали.
  • Добавени са нови оптимизации на процеса на дедупликация.

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

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