Выпуск ZFS on Linux 0.7.0, реализации ZFS для ядра 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://www.opennet.ru/opennews/art.shtml?num=46932
|
0 | Tweet | Нравится |
|