Назад | Перейти на главную страницу

Общие ресурсы ZFS не экспортируются, пока свойство sharenfs не будет повторно установлено в Ubuntu 16.04

Я настраиваю ZFS и NFS на Ubuntu Server 16.04LTS, и у меня возникла странная проблема, которая сводит меня с ума. Я настроил ZFS и NFS, используя общие ресурсы ZFS, как описано в https://pthree.org/2012/12/31/zfs-administration-part-xv-iscsi-nfs-and-samba/. Как вы можете видеть в моем журнале ниже, хотя я установил zfs-share для запуска zfs share -a во время загрузки акции по-прежнему не экспортируются. Еще более странно, что zfs share -a все еще не работает, когда я запускаю его вручную. Я могу заставить zfs работать, только если сбросил sharenfs собственность одной из акций, а затем повторно запустить zfs share -a. Увидеть ниже

$ showmount -e
Export list for apu:
/mnt localhost
$ sudo zfs share -a
$ showmount -e
Export list for apu:
/mnt localhost
$ sudo zfs share pool1
cannot share 'pool1': filesystem already shared
$ sudo zfs get sharenfs pool1
NAME   PROPERTY  VALUE     SOURCE
pool1  sharenfs  on        local
$ sudo zfs set sharenfs=on pool1
$ showmount -e
Export list for apu:
/s/apu/a/homes *
/s/apu/a       *
/s/apu/a/sys   *
/mnt           localhost
$ sudo zfs share -a
$ showmount -e
Export list for apu:
/s/apu/b       *
/s/apu/a/homes *
/s/apu/a       *
/s/apu/a/sys   *
/s/apu/b/cwc   *
/mnt           localhost

Моя Ubuntu 16.04.05 LTS имеет аналогичную проблему.

Первый вопрос: вы используете systemd или в старом стиле в этом система? 16.04 использует systemd по умолчанию, а компоненты ZFS не очень хорошо отлажены.

В следующий раз, когда вы перезагрузитесь, а ваших общих ресурсов нет, попробуйте:

# systemctl restart zfs-share.service 

а затем посмотрите, есть ли там акции с Showmount. Кстати, в моей системе у меня проблема со службой регистрации RPC, поэтому вам, возможно, придется сделать:

# systemctl start rpcbind.service

если rpcbind не бежит первым.

Если это смягчает вашу проблему, вы можете подумать о добавлении этих команд в ваш системный файл rc, но я просто делаю это вручную каждый раз при перезагрузке.

Я также столкнулся с этой проблемой в Ubuntu 16.04, но, вероятно, это относится и к более новым версиям. Ошибка в том, что systemd unit zfs-share.service не выполняет sharenfs -a на старте https://github.com/zfsonlinux/zfs/issues/1375

В качестве обходного пути вы можете добавить это в /etc/rc.local

sudo zfs unshare -a
sudo zfs share -a

См. Это обсуждение для подробностей: https://github.com/zfsonlinux/zfs/issues/2107#issuecomment-47182970