Достъпен е междинен релиз на проекта OpenZFS 2.2.1, който развива реализирането на файловата система ZFS за Linux и FreeBSD. Релизът е забележителен със добавянето на поддръжка за ядрото Linux 6.6 и опити за отстраняване на проблема, който води до повреждане на данни (нулеви стойности на част от блоковете) в файлове след копирането им.
Първоначално се предполагаше, че проблемът се проявява само във версия 2.2.x и е предизвикан от грешка в механизма за клониране на блокове, включен в OpenZFS 2.2.0, който позволява създаването на копие на файл или негова част без дублиране на данни, използвайки втората копия за връзки към вече съществуващите блокове данни на оригиналния файл без тяхното действително копиране. В версия OpenZFS 2.2.1 за блокиране на проблема механизма за клониране на блокове беше деактивиран по подразбиране, а за възстановяването на поддръжката на този режим беше добавена настройка zfs_bclone_enabled.
По-късно разработчиците заявиха, че проблемът е възпроизведен и в конфигурации с версия OpenZFS 2.1.x. Не бяха потвърдени предположенията, че проблемът се проявява на системи със стари версии на пакета coreutils — грешката беше възпроизведена във FreeBSD и в Linux разпространения с нова версия coreutils 9.4.
Повреждането на файлове се проявява при доста рядко съвпадение на обстоятелствата, например, изпълнението на команда „emerge -1 dev-lang/go“ в Gentoo води до инсталиране на инструменти за езика Go с повреждане на файлове в директорията /usr/lib/go/pkg/tool/linux_amd64/compile. Предполага се, че грешката е започнала да се проявява след задаването на параметъра „zfs_dmu_offset_next_sync=1“ по подразбиране в версия openzfs 2.1.4. Източникът на грешката все още не е идентифициран. Като препоръчано решение за блокиране на грешката е предложено задаването на параметъра „/sys/module/zfs/parameters/zfs_dmu_offset_next_sync“ на 0.
Източник: opennet.ru
