Не монтируются несколько каталогов NFS с использованием fstab на RHEL 7

Вопрос или проблема

Здравствуйте, я не могу смонтировать несколько каталогов NFS Share с помощью fstab на RHEL 7. Ознакомьтесь с моей конфигурацией LAB.

Хочу задать вопрос, используя nfs и монтируя через fstab, можно ли монтировать только один каталог nfs? Если нет, то как смонтировать несколько каталогов?

LAB

server.example.com 192.168.2.2/24

client.example.com 192.168.2.1/24

На сервере

папки nfs share
/test1
/test2

Отключите firewalld, selinux находится в режиме permissive на сервере и клиенте.

На сервере

[root@server ~]# yum install nfs-utils
[root@server ~]# systemctl enable rpcbind
[root@server ~]# systemctl start rpcbind
[root@server ~]# systemctl start nfs-server
[root@server ~]# systemctl start nfs-secure


[root@server ~]# mkdir /test1
[root@server ~]# mkdir /test2
[root@server ~]# ls /test*
/test1:

/test2:

[root@server ~]# chmod 777 /test1
[root@server ~]# chmod 777 /test2


[root@server ~]# vim /etc/exports
[root@server ~]# cat /etc/exports
/test1 192.168.2.1(rw,sync,no_root_squash)
/test2 192.168.2.1(rw,sync,no_root_squash)

[root@server ~]# exportfs -r

[root@server ~]# exportfs -v
/test1          192.168.2.1(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
/test2          192.168.2.1(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)


[root@server ~]# systemctl stop firewalld.service
[root@server ~]# systemctl disable firewalld.service
[root@server ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive

На клиенте

[root@client ~]# systemctl enable rpcbind
[root@client ~]# systemctl start rpcbind

[root@client ~]# setenforce 0
[root@client ~]# vim /etc/sysconfig/selinux
[root@client ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
[root@client ~]# systemctl stop firewalld
[root@client ~]# systemctl disble firewalld


[root@client ~]# showmount -e 192.168.2.2
Список экспортируемых ресурсов для 192.168.2.2:
/test2 192.168.2.1tes
/test1 192.168.2.1

[root@client ~]# mkdir /mnt/nfstest1
[root@client ~]# mkdir /mnt/nfstest2
[root@client ~]# chmod 777 /mnt/nfstest1
[root@client ~]# chmod 777 /mnt/nfstest2

Проверьте файл fstab

[root@client ~]# vim /etc/fstab

[root@client ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Apr 26 08:01:03 2017
#
# Доступные файловые системы, по ссылке, поддерживаются в '/dev/disk'
# Смотрите страницы man fstab(5), findfs(8), mount(8) и/или blkid(8) для получения дополнительной информации
#
UUID=8cfced80-d77a-41a6-a7ee-9b41ebea88b2 /                       xfs     defaults        1 1
UUID=ad9e8442-335f-478c-81af-b77e1ac88549 /boot                   xfs     defaults        1 2
UUID=e55cb2d8-4461-4792-944c-1b76225dd13a /home                   xfs     defaults        1 2
UUID=ffbc9edf-42ce-4d82-af5c-b2ff1cff5a68 /usr                    xfs     defaults        1 2
UUID=556f0e53-bfa3-4639-9d47-ba1c70299393 /var                    xfs     defaults        1 2
UUID=a855e109-f05f-4bfe-bfc9-a06f10d294f1 swap                    swap    defaults        0 0
192.168.2.2:/test1 /mnt/nfstest1 nfs rw,sync 0 0
192.168.2.2:/test2 /mnt/nfstest2 nfs rw,sync 0 0

[root@client ~]# mount -a

df -h показывает только один смонтированный каталог nfs /mnt/nfstest1

[root@client ~]# df -h
Filesystem          Size  Used Avail Use% Mounted on
/dev/sda2           9.8G   70M  9.7G   1% /
devtmpfs            354M     0  354M   0% /dev
tmpfs               363M     0  363M   0% /dev/shm
tmpfs               363M  5.2M  357M   2% /run
tmpfs               363M     0  363M   0% /sys/fs/cgroup
/dev/sda5           9.8G  2.8G  7.0G  29% /usr
/dev/sda3           9.8G   33M  9.8G   1% /home
/dev/sda1           2.0G  107M  1.9G   6% /boot
/dev/sda6           9.8G  3.8G  6.1G  39% /var
192.168.2.2:/test1  9.8G   71M  9.7G   1% /mnt/nfstest1

но команда mount показывает оба каталога nfs

[root@client ~]# mount | grep nfstest*
192.168.2.2:/test1 on /mnt/nfstest1 type nfs4 (rw,relatime,sync,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.2.1,local_lock=none,addr=192.168.2.2)

192.168.2.2:/test2 on /mnt/nfstest2 type nfs4 (rw,relatime,sync,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.2.1,local_lock=none,addr=192.168.2.2)

Я перезагрузился

Проверьте мой статус снова, снова смонтирован только один каталог nfs, и это /mnt/nfstest2, а /mnt/nfstest1 исчез. Почему это происходит? У меня правильная опция в /etc/fstab. Может кто-нибудь сказать, правильно ли это.

login as: root
[email protected]'s password:
Last login: Wed May 10 22:37:20 2017 from 192.168.2.100

[root@client ~]# df -h
Filesystem          Size  Used Avail Use% Mounted on
/dev/sda2           9.8G   70M  9.7G   1% /
devtmpfs            354M     0  354M   0% /dev
tmpfs               363M     0  363M   0% /dev/shm
tmpfs               363M  5.2M  357M   2% /run
tmpfs               363M     0  363M   0% /sys/fs/cgroup
/dev/sda5           9.8G  2.8G  7.0G  29% /usr
/dev/sda1           2.0G  107M  1.9G   6% /boot
/dev/sda3           9.8G   33M  9.8G   1% /home
/dev/sda6           9.8G  3.8G  6.1G  39% /var
192.168.2.2:/test2  9.8G   71M  9.7G   1% /mnt/nfstest2

[root@client ~]# mount | grep nfstest*
192.168.2.2:/test2 on /mnt/nfstest2 type nfs4 (rw,relatime,sync,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.2.1,local_lock=none,addr=192.168.2.2)

192.168.2.2:/test1 on /mnt/nfstest1 type nfs4 (rw,relatime,sync,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.2.1,local_lock=none,addr=192.168.2.2)


[root@client ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Apr 26 08:01:03 2017
#
# Доступные файловые системы, по ссылке, поддерживаются в '/dev/disk'
# Смотрите страницы man fstab(5), findfs(8), mount(8) и/или blkid(8) для получения дополнительной информации
#
UUID=8cfced80-d77a-41a6-a7ee-9b41ebea88b2 /                       xfs     defaults        1 1
UUID=ad9e8442-335f-478c-81af-b77e1ac88549 /boot                   xfs     defaults        1 2
UUID=e55cb2d8-4461-4792-944c-1b76225dd13a /home                   xfs     defaults        1 2
UUID=ffbc9edf-42ce-4d82-af5c-b2ff1cff5a68 /usr                    xfs     defaults        1 2
UUID=556f0e53-bfa3-4639-9d47-ba1c70299393 /var                    xfs     defaults        1 2
UUID=a855e109-f05f-4bfe-bfc9-a06f10d294f1 swap                    swap    defaults        0 0
192.168.2.2:/test1 /mnt/nfstest1 nfs rw,sync 0 0
192.168.2.2:/test2 /mnt/nfstest2 nfs rw,sync 0 0

Здесь несколько каталогов nfs share не монтируются одновременно.
На клиенте /etc/fstab

192.168.2.2:/test1 /mnt/nfstest1 nfs rw,sync 0 0
192.168.2.2:/test2 /mnt/nfstest2 nfs rw,sync 0 0

после выполнения команды mount -a

я получаю /mnt/nfstest1

192.168.2.2:/test1  9.8G   71M  9.7G   1% /mnt/nfstest1 

но после перезапуска клиента я получаю наоборот. ПОЧЕМУ

Может ли кто-нибудь помочь мне решить эту проблему

Обратите внимание, каталоги NFS созданы на единственной файловой системе / на сервере.

И смонтированы на /mnt/test1 и /mnt/test2 на клиенте.

Спасибо
Sagar Dalvi

Вывод команды mount должен быть авторитетным. /proc/mounts является настоящим авторитетом, но mount использует его в настоящее время, /etc/mtab всего лишь символьная ссылка. Вы можете проверить их сами, если хотите. Но я думаю, что файловые системы действительно смонтированы.

Ответ заключается в том, что df фильтрует повторяющиеся файловые системы, такие как привязанные монтирования (bind mounts). (Порядок монтирования этих файловых систем фактически случайный, когда используется systemd).

df каким-то образом способен правильно определить, что эти два каталога размещены на одной физической файловой системе – информация о пространстве для них будет идентичной. Если вы поищете в интернете, вы найдете такие же жалобы на df и монтирования NFS, зарегистрированные как ошибки в нескольких дистрибутивах Linux.

Ответ на эти ошибки: если вы хотите показать все точки монтирования, вам нужно использовать df -a.

Ответ или решение

Здравствуйте,

Ваш вопрос о проблемах с монтированием нескольких NFS-директорий через fstab на RHEL 7 может показаться сложным, но его решение вполне возможно. Сначала разберем теоретическую основу процесса монтирования и NFS, потом погрузимся в анализ вашего примера и завершим практическими рекомендациями по исправлению ситуации.

Теория

NFS (Network File System) — это протокол для удаленной работы с файловыми системами, позволяющий клиентам монтировать сетью разделы, расположенные на сервере, и работать с ними так, как если бы они находились локально. Монтирование через fstab — это удобный способ автоматизировать процесс монтирования NFS-разделов при запуске системы.

Файл fstab (File Systems Table) содержит настройки для монтирования файловых систем. Каждая строка в файле задает определенные параметры, такие как источник монтирования, точка монтирования, тип файловой системы и опции.

Пример

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

  1. На сервере:

    • Файлообменные каталоги /test1 и /test2 настроены и экспортированы.
    • NFS настроен с параметрами без ограничения привилегий пользователя и синхронизацией (no_root_squash, sync).
  2. На клиенте:

    • Каталоги /mnt/nfstest1 и /mnt/nfstest2 созданы с разрешением 777.
    • В fstab указаны соответствующие записи для монтирования NFS-директорий.

Проблема, которую вы описываете, связана с непостоянством отображения монтированных директорий в выводе команды df.

Анализ и Применение

Проблема, как вы упомянули, заключается в том, что только одна NFS директория видна через df -h, хотя команда mount показывает, что обе директории смонтированы.

  1. Особенности df: df отображает использование дискового пространства, основываясь на уникальных файловых системах. Это значит, что при выборе одинаковых файловых систем, как в случае с NFS, особенно если эти файловые системы имеют одинаковые идентификаторы (серийные номера), df склонен показывать только одну из них. Это поведение не является ошибкой, а результатом намеренного дизайна.

  2. Проверка через mount и /proc/mounts: Поскольку вывод mount утверждает, что обе директории смонтированы, возможно использование альтернативных методов, как просмотр /proc/mounts, чтобы подтвердить статус монтирования.

  3. Решение с помощью df -a: Параметр -a позволяет df показывать все точки монтирования, что может помочь в вашем случае отобразить все монтированные NFS-директории.

  4. Отладка: Для дальнейшей отладки можете попробовать временно отключить влияющие на монтирование параметры, такие как специфичные опции монтирования NFS или настройки SELinux и firewalld, хоть они и выключены в данный момент, чтобы увидеть, помогут ли они варьировать ситуацию.

Дополнительные рекомендации и best practices

  • Настройка логирования: Включите подробное логирование для NFS как на стороне клиента, так и на стороне сервера, чтобы отслеживать любые сообщения об ошибках или предупреждения.

  • Использование уникальных опций монтирования: Проверка и использование уникальных опций монтирования для разных экземпляров NFS-директорий, таких как различные протоколы (v3 или v4), могут повлиять на идентификацию файловых систем.

  • Версия ядра и обновления: Uбедитесь, что ваша система и используемый NFS имеют все последние обновления, так как это может повлиять на стабильность работы с сетевыми файловыми системами.

  • Консультация документации и комьюнити: Проверка с актуальной документацией от Red Hat и общение с сообществом, включая форумы и вики, может прояснить специфические нюансы, касающиеся вашей конфигурации.

Надеюсь, эта информация поможет вам в решении проблемы с монтированием нескольких NFS-директорий с использованием fstab. Если вы продолжите сталкиваться с этой или другими проблемами, не стесняйтесь искать дальнейшую помощь у экспертов в сообществе Linux или непосредственно в поддержке Red Hat.

Оцените материал
Добавить комментарий

Капча загружается...