Издаден е новият релиз на проекта OpenZFS 2.1, който развива реализирането на файловата система ZFS за Linux и FreeBSD. Проектът стана известен като „ZFS on Linux“ и първоначално се е фокусирал върху разработката на модул за ядрото на Linux, но след добавянето на поддръжка за FreeBSD, той беше признат за основна реализация на OpenZFS и вече не носи упоменаване на Linux в името си.
Работата на OpenZFS е проверена с ядра на Linux от версия 3.10 до 5.13 и с всички версии на 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.
Основни промени:
- Добавена поддръжка на технологията dRAID (Distributed Spare RAID), която представлява вариант на RAIDZ с интегрирана разпределена обработка на блокове за горещо възстановяване (hot spare). dRAID наследи всички предимства на RAIDZ, но позволи значително увеличаване на скоростта на реконструкция на хранилището (resilvering) и възстановяване на излишъка в масива. Виртуалното хранилище dRAID се формира от няколко вътрешни групи RAIDZ, всяка от които съдържа устройства за съхранение на данни и устройства за съхранение на блокове за паритет. Изброените групи са разпределени по всички дискове за оптимално използване на наличната пропускателна способност на дисковете. Вместо отделен диск за горещо възстановяване в dRAID се прилага концепцията за логично разпределение на блокове за горещо възстановяване по всички дискове в масива.

- Реализирана е характеристиката „compatibility“ („zpool create -o compatibility=off|legacy|file[,file…] pool vdev“), позволяваща на администратора да избере набор от възможности, които да бъдат активирани в пула, с цел създаване на преносими пулове и поддържане на съвместимост между пулове от различни версии на OpenZFS и различни платформи.
- Предоставена е възможност за запазване на статистика за работата на пула във формат на СУБД InfluxDB, оптимизирана за съхранение, анализ и манипулиране на данни във форма на времеви редове (разрези на стойности на параметри през определени интервали от време). За експортиране във формат InfluxDB е предложена командата „zpool influxdb“.
- Добавена е поддръжка за горещо добавяне на памет и CPU.
- Нови команди и опции:
- „zpool create -u“ — забранява автоматичното монтиране.
- „zpool history -i“ — отразяване в историята на операциите на продължителността на изпълнението на всяка команда.
- „zpool status“ — добавено е извеждане на предупреждение за дискове с неоптимален размер на блока.
- „zfs send —skip-missing|-s“ — игнориране на отсъстващи моментни снимки в процеса на изпращане на потока за репликация.
- „zfs rename -u“ — преименуване на ФС без повторно монтиране.
- В arcstat е добавена поддръжка на статистика L2ARC и добавени опции „-a“ (всички) и „-p“ (по-подходящи за анализ).
- Оптимизации:
- Повишена е производителността на интерактивния вход/изход.
- Ускорена е работата на prefetch за натоварвания, свързани с паралелен достъп до данни.
- Подобрен е мащабируемостта чрез намаляване на конфликта на заключвания.
- Скратено е времето за импортиране на пула.
- Съкратена фрагментация на ZIL блоковете.
- Повишена производителност на рекурсивните операции.
- Подобрено управление на паметта.
- Ускорено зареждане на ядрения модул.
Източник: opennet.ru

