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

NFS перестает работать, когда на lvm

У меня есть сервер nfs, который правильно работал с общим ресурсом на / exports / something. Однако, когда я монтирую / экспортирую / что-то на / dev / mapper / something (lvm с большим пространством), nfs не работает.

Сервер nfs - это centos7.

Клиент nfs - это debian8.

/ etc / fstab:

 <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/centos-something  /exports/something   xfs   defaults 0 0

Клиент nfs без проблем связывался с / exports / something до того, как / exports / something стал монтироваться на lvm. Если я отключу lvm, общий ресурс nfs снова начнет работать, если я перемонтирую / export / something на lvm, nfs перестанет работать (но lvm работает).

Как я могу привязать клиента nfs к монтированию lvm на сервере nfs?

Когда это не работает, на сервере работают все демоны, а на стороне клиента только файлы. Нет записи в журнале для nfs.

Я хочу переключить монтирование nfs так, чтобы оно было на lvm.

Версия NFS на клиенте debian8:

nfs-common                        1:1.2.8-9 

Версия NFS на сервере centos7:

libnfsidmap.x86_64   0.25-11.el7                 @base      
nfs-utils.x86_64     1:1.3.0-0.8.el7             @base 

Вероятно, это связано с тем, что вы не перезапустили сервер NFS при монтировании файловой системы. Сервер NFS будет обрабатывать файловую систему, в которой существует экспортированный каталог; если вы измените это, добавив точку монтирования, сервер NFS этого не заметит, и ему понадобится пинок под зад. Это необходимо для протокола, BTW, потому что для некоторых операций NFS кодирует inodes в сетевой протокол. Обратите внимание, что это означает, что если у вас есть клиенты с открытыми файлами или открытыми блокировками (или аналогичными), когда вы пытаетесь это сделать, произойдут Плохие вещи (TM). Так что не делай этого :-)

Подобная проблема также появится, если вы экспортируете файловую систему, в которой есть подкаталог, являющийся точкой монтирования; например, если вы экспортируете /srv/nfs через NFS и смонтировать файловую систему на /srv/nfs/stuff, тогда, если вы явно не добавите /srv/nfs/stuff к /etc/exports, этого тоже не будет. Причина в том, что в протоколе снова появляются inode. Вы можете обойти это, используя nohide экспорт, но с этим методом есть несколько ошибок. Вместо того, чтобы пытаться воспроизвести документацию, я предлагаю вам прочитать справочную страницу (man 5 exports) и ищите nohide там.

Может это проблема с selinux. Попробуйте выпустить setenforce 0 и перезапустить сервер nfs. Затем попробуйте заново смонтировать общий ресурс на стороне клиента.