Выпуск ZFS on Linux 0.7.0, реализации ZFS для ядра Linux
27 июля 2017 года
После почти двух лет разработки состоялся (Архивная копия от 27 декабря 2018 на Wayback Machine) релиз ZFS on Linux 0.7.0, реализации файловой системы ZFS, оформленной в виде модуля для ядра Linux. Работа модуля проверена с ядрами Linux c 2.6.32 по 4.12. Готовые установочные пакеты подготовлены для основных дистрибутивов Linux, включая Debian, Ubuntu, Fedora, RHEL/CentOS. Кроме того, модуль ZFS on Linux уже входит в состав дистрибутивов Debian, Ubuntu, Gentoo, Sabayon Linux и ALT Linux.
В рамках ZFS on Linux подготовлена реализация компонентов ZFS, связанных как с работой файловой системы, так и с функционированием менеджера томов. В частности, реализованы компоненты: SPA (Storage Pool Allocator), DMU (Data Management Unit), ZVOL (ZFS Emulated Volume) и ZPL (ZFS POSIX Layer). Дополнительно проектом обеспечена возможность использования ZFS в качестве бэкенда для кластерной файловой системы Lustre. Наработки проекта основаны на оригинальном коде ZFS, импортированном из проекта OpenSolaris и расширенном улучшениями и исправлениями от сообщества Illumos. Реализованная в ZFS on Linux версия пула и файловой системы совместима с ZFS из состава Illumos и FreeBSD. Проект развивается при участии сотрудников Ливерморской национальной лаборатории по контракту с Министерством энергетики США.
Код распространяется под свободной лицензией CDDL, которая несовместима с GPLv2, что не позволяет добиться интеграции ZFS on Linux в состав основной ветки ядра Linux, так как смешивание кода под лицензиями GPLv2 и CDDL недопустимо. Для обхода данной лицензионной несовместимости было решено распространять продукт целиком под лицензией CDDL в виде отдельно загружаемого модуля, который поставляется отдельно от ядра. Стабильность кодовой базы ZFS on Linux оценивается как сопоставимая с другими ФС для Linux.
Основные изменения:
- Добавлена возможность делегирования непривилегированному пользователю прав на администрирование файловых системам ZFS. Управление правами осуществляется при помощи команд "zfs allow" и "zfs unallow";
- Непривилегированные пользователи теперь могут выполнять команды
"zpool list", "zpool iostat", "zpool status", "zpool get", "zfs list", "zfs get" без необходимости добавления в /etc/sudoers;
- Поддержка аккаунтинга и квот для объектов отдельных пользователей и групп. Для установки лимитов и просмотра состояния предлагается использовать команды "zfs userspace" и "zfs groupspace";
- Поддержка хранения контрольных сумм с использованием более надёжных криптографических хэшей SHA-512, Skein и Edon-R;
- Поддержка прерывания работы команд zfs send/receive (например, из-за сетевого сбоя или проблем на удалённой системе) c последующим возобновлением выполнения операции;
- Возможность переноса сжатых данных из одного пула в другой при помощи команд zfs send/receive (данные напрямую обрабатываются в сжатом виде без промежуточной распаковки). Для включения сжатия представлена опция "-c";
- Обеспечена защита операций импорта пула в отказоусточивых конфигурациях - совместно используемый пул теперь одновременно не может быть импортирован на разные хосты (перед началом операции импорта теперь выполняется проверка, не запущен ли уже импорт на другой хост);
- Возможность настройки параметров, отображаемых в столбцах со статистикой, выводимой командами "zpool iostat" и "zpool status". Например, в вывод теперь можно включить данные мониторинга SMART, параметры датчиков температуры, статус индикаторов и т.п.
- В команду "zpool iostat" добавлены опции "-l", "-w" и "-r", позволяющие наглядно оценить задержки и размер обрабатываемых в данный момент запросов в привязке к отдельным дискам;
- В команду "zpool scrub" добавлена опция "-p", позволяющая приостановить выполнение проверки целостности без её полной отмены (для возмобновления проверки нужно ещё раз запустить "zpool scrub -p");
- Поддержка больших dnode, позволяющих увеличит производительность работы с метаданными за счёт сохранения внутри dnode расширенных атрибутов, ACL и символических ссылок, связанных с длинными именами файлов. Выигрыш особенно ощутим в системах с SELinux и распределёнными ФС, такими как Lustre и Ceph;
- Новые возможности режима JBOD (представление нескольких дисков как одного целого с резервированием): автоматический перевод новых дисков в режим online; автоматическая замена выведенного из пула диска на новый диск; автоматическое подключение дисков для горячей замены в случая сбоя; индикация сбоев при помощи светодиодов; мониторинг проблем и автоматический перевод диска в состояние сбоя при превышении порога несоответствия контрольных сумм; возможность ручной пометки диска сбойным (zpool offline -f); режим multipath;
- Порция оптимизаций:
- Новый метод выделения буферов ARC, минимизирующий фрагментацию структур в оперативной памяти;
- По умолчанию хранение данных в кэше с использование сжатия с распаковкой налету; задействование векторных SIMD-инструкций CPU (sse2, ssse3, avx2, avx512f, avx512bw, neon, neonx2) в реализации RAIDZ и в коде расчёта контрольных сумм;
- Возможность применения аппаратного ускорения GZIP-сжатия (QAT);
- Ускорение работы с метаданными за счёт более активного использования многопоточности, пакетного выполнения операций и упреждающего запроса данных;
- Ускорение процесса восстановления избыточности в RAIDZ - теперь проверяется только целостность секций, подлежащих перестроению;
- Число фоновых обработчиков теперь выбирается динамически в зависимости от нагрузки, рабочие потоки создаются и отключаются по мере возникновения необходимости;
- Добавлено 42 новых параметра для тонкой настройки работы модуля ядра.
Источники
править- Главная ссылка к новости (http://list.zfsonlinux.org/pip...) (Архивная копия от 27 декабря 2018 на Wayback Machine)
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.