안녕하세요 여러분, RHEL 7에서 fstab을 사용하여 여러 NFS 공유 디렉터리를 마운트할 수 없습니다. 내 LAB 구성을 참조하세요.
질문하고 싶습니다. nfs를 사용하고 fstab을 통해 마운트하면 nfs 디렉터리 하나만 마운트할 수 있습니다. 여러 디렉터리를 마운트하지 않는 경우 어떻게 마운트합니까?
실혐실
server.example.com 192.168.2.2/24
client.example.com 192.168.2.1/24
서버에서
nfs 공유 폴더는 /테스트1 /테스트2
Firewalld가 비활성화되어 있고 selinux가 서버와 클라이언트에서 허용 모드에 있습니다.
서버에서
[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)
[루트@서버 ~]#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
Export list for 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
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
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 ~]# 마운트 -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에 fire Right 옵션이 있습니다. 누군가 이것이 맞는지 말해 줄 수 있습니까?
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
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
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 공유 디렉터리는 한 번에 마운트되지 않습니다. 클라이언트에서 /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에 설치됩니다.
감사해요 사가르달비
답변1
출력은 mount
신뢰할 수 있어야 합니다. /proc/mounts는 실제 권한이지만, mount는 현재 권한을 사용하고 /etc/mtab은 단지 심볼릭 링크입니다. 원한다면 직접 확인해 볼 수도 있습니다. 하지만 제 생각에는 파일 시스템이예설치하다.
대답은 df가 바인드 마운트와 같은 중복 파일 시스템을 필터링한다는 것입니다. (systemd를 사용할 때 이러한 파일 시스템이 마운트되는 순서는 사실상 무작위입니다.)
df는 어떻게든 이 두 디렉터리가 동일한 물리적 파일 시스템에서 호스팅되는 것으로 올바르게 식별할 수 있습니다. 해당 디렉터리의 공간 정보는 동일합니다. 웹을 검색하면 df 및 NFS 마운트에 대한 동일한 불만 사항이 여러 Linux 배포판에서 버그로 보고된다는 것을 알 수 있습니다.
이러한 오류에 대한 대답은 모든 마운트 지점을 표시하려면 df -a
.