Table of Contents

2022-09-26 Unraid +ZFS

Сегодня небольшая но важная тема - как использовать ZFS вместе с операционной системой UNRAID.

Встроенная в unraid технология защиты от выхода из строя дисков обладает не только преимуществом объединения дисков любой ёмкости но и очень существенным недостатком - это низкая производительность и высокий расход ресурсов сервера.

Среди множества технологий и подходов по-настоящему кроссплатформенной схемой объединения дисков в NAS системах SOHO уровня является ZFS. Пулы собранные в TrueNAS, XigmaNAS, OMV, PVE или просто в Linux везде работают, импортируются и позволяют менять дистрибутив без необходимости миграции данных.

Из коробки Unraid не поддерживает ZFS, но компания ведет разработку в данном направлении. Уровень с которым ZFS будет встроен в Unraid предмет отдельных дискуссий.

На текущий момент пользователь может использовать ZFS пулы в системе, но с помощью стороннего плагина ZFS for unRAID 6. В нем содержатся все необходимые компоненты для поддержки файловой системы на уровне ядра ОС. Все администрирование производится из командной строки, а интеграция со стороны NAS полностью отсутствует.

При работе с ZFS следует иметь ввиду ряд следующих ограничений:

  1. Системный функционал Docker и KVM работает только когда массив запущен.
  2. Массив может состоять минимум из одного диска или ssd накопителя.
  3. Не обязательно хранить на массиве unraid какие либо данные. Расположение docker файлов и виртуальных машин можно изменить в интерфейсе.
  4. Шары не создаются на ZFS.

Как поделиться папкой с ZFS по SMB

Встроенные шары не могут быть созданы на ZFS, а если изменить файл smb.conf он будет возвращен в исходное состояние при перезапуске массива. Для сохранения изменений необходимо внести раздел с требуемой общей папкой в SMB Extras.

Settings > SMB > SMB Extras

Синтаксис обычный для smb.conf файла, пример ниже.

Публичный доступ

[share]
        path = /mnt/tank/share
        comment = 
        browseable = yes
        # Public
        public = yes
        writeable = no
        vfs objects = catia fruit streams_xattr
        case sensitive = auto
        preserve case = yes
        short preserve case = yes

Доступ с авторизацией (private)

[private]
        path = /mnt/tank/private
        comment = 
        browseable = yes
        # Private
        writeable = no
        read list = 
        write list = username,username2
        valid users =  username,username2
        case sensitive = auto
        preserve case = yes
        short preserve case = yes
        vfs objects = catia fruit streams_xattr
        fruit:encoding = native