NFS 버전 3만을 사용하여 NFS 공유를 마운트하려고 합니다. 두 개의 서버 클러스터가 있는데 하나는 작동하고 다른 하나는 작동하지 않습니다. 작동하는 곳이 있어요
10.100.30.81:/var/lib/test /var/lib/test nfs hard,bg,intr,vers=3,noatime 0 0
그리고 그것은 훌륭하게 작동합니다. 내가 사용하면 rpcinfo
이것을 얻습니다.
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100024 1 udp 43989 status
100005 2 tcp 20048 mountd
100024 1 tcp 44845 status
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 56714 nlockmgr
100021 3 udp 56714 nlockmgr
100021 4 udp 56714 nlockmgr
100021 1 tcp 44307 nlockmgr
100021 3 tcp 44307 nlockmgr
100021 4 tcp 44307 nlockmgr
You have new mail in /var/spool/mail/root
[root@test1 ~]#
내가 설정한 시스템이 작동하지 않는 경우
10.200.100.80:/var/lib/test2 /var/lib/test2 nfs soft,bg,intr,vers=3,noatime 0 0
설치하려고 하면
[root@mon2 ~]# mount -avvvvvvvv
/ : ignored
/boot : already mounted
swap : ignored
mount.nfs: trying text-based options 'soft,bg,intr,vers=3,addr=10.200.100.80'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: portmap query retrying: RPC: Program not registered
mount.nfs: prog 100003, trying vers=3, prot=17
mount.nfs: portmap query failed: RPC: Program not registered
mount.nfs: backgrounding "10.200.100.80:/var/lib/test2"
mount.nfs: mount options: "rw,noatime,soft,bg,intr,vers=3"
/var/lib/test2 : successfully mounted
[root@mon2 ~]
달리면 rpcinfo
돌아올 거야
[root@mon2 ~]# rpcinfo -p 10.200.100.80
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
[root@mon2 ~]#
내 문제는 NFS 서버에서 무언가를 재구성했다는 것입니다. 확인해 보니 rpcbind
다른 서비스도 둘 다 동일하게 실행되는 것 같습니다. 또 무엇을 볼 수 있나요?
답변1
[root@mon2 ~]# rpcinfo -p 10.200.100.80
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
서비스에 따르면 10.200.100.80에서 portmapper
실행 중인 nfs
, nfs_acl
, status
또는 mountd
서비스 가 없습니다. nlockmgr
NFSv3 서버는 이들 모두를 실행해야 하며 시스템 portmapper
서비스는 이에 대해 알고 있어야 합니다.
명령이 특정 파일 시스템 유형을 내부적으로 처리할 수 없는 경우 mount
명령은 다른 유틸리티를 호출합니다. NFS의 경우 NFS 마운트를 처리하는 /sbin/mount.<filesystem type>
특정 유틸리티가 있습니다 ./sbin/mount.nfs
NFSv3 공유를 마운트할 때 유틸리티가 가장 먼저 수행하는 작업은 NFS 서버 시스템의 서비스에 사용 가능한 프로토콜과 사용할 포트를 요청하는 mount.nfs
것입니다 .portmapper
mount.nfs: prog 100003, trying vers=3, prot=6
이것은 mount.nfs
NFS 서버 서비스에 " TCP를 통한 서비스 버전 3이 있습니까?"( 각각 및 파일에서 prog 및 prot 번호를 확인할 수 있음)를 묻는 portmapper
유틸리티 입니다.nfs
/etc/rpc
/etc/protocols
mount.nfs: portmap query retrying: RPC: Program not registered
서버는 "죄송합니다. 해당 서비스가 없습니다."라고 응답합니다.
mount.nfs: prog 100003, trying vers=3, prot=17
"그럼 UDP를 통한 NFS 버전 3이 있나요?"
mount.nfs: portmap query failed: RPC: Program not registered
"미안해요, 나도 그랬어요."
mount.nfs: backgrounding "10.200.100.80:/var/lib/test2"
bg
여기서는 마운트 옵션 으로 인해 mount.nfs
나중에 서버가 NFS 서비스를 시작할 경우 NFS 마운트를 지속적으로 재시도하도록 백그라운드 프로세스가 설정됩니다. 계속 재시도하므로 실제로 기본 명령에 실패했음을 mount.nfs
알릴 방법이 없습니다 . 마운트 작업이 나중에 성공하여 기본 명령에 "성공" 결과 코드가 반환될 수 있기 때문입니다.mount
mount.nfs
mount
/var/lib/test2 : successfully mounted
,som mount
명령은 NFS 마운트 프로세스의 세부 사항을 알지 못하므로 "성공" 결과 코드는 파일 시스템이 성공적으로 마운트되었음을 의미한다고 가정합니다. 이 특별한 경우 결과 코드는 단순히 mount.nfs
시도가 중지되지 않았음을 의미합니다.
따라서 문제는 호스트 10.200.100.80에 있는 것입니다. 해당 정보에 따르면 portmapper
NFS 서버 역할을 하는 데 필요한 서비스를 실행하고 있지 않습니다.
안타깝게도 이 호스트에서 사용되는 운영 체제의 이름과 버전을 지정하지 않았습니다. NFS 서버 서비스를 시작하는 단계는 Linux 배포판에 따라 다릅니다.
NFS 서버 서비스가 자동으로 시작되도록 구성되었더라도 일부 배포에서는 다음 사항을 확인합니다 /etc/exports
. NFS 공유가 구성되지 않은 경우 시작 스크립트는 NFS 서버 서비스 시작을 무시할 수 있습니다. 따라서 먼저 /etc/exports
호스트 10.200.100.80의 파일이 /var/lib/test2
NFSv3 공유로 정의되어 있는지 확인한 다음 해당 호스트에서 NFS 서버 서비스를 시작하는 방법(및 향후 부팅 시 자동으로 시작되도록 구성하는 방법)을 파악해야 합니다.
일반적으로 서비스 nfs
및 nfs_acl
는 nlockmgr
커널의 서버에 의해 처리되므로 는 /usr/sbin/rpc.nfsd
커널 구성 요소를 구성하기 위해 한 번만 실행된 다음 종료됩니다. 및 서비스는 status
각각 및 를 실행하는 mountd
사용자 공간 프로세스에 의해 처리됩니다 . 이 모든 것을 시작하는 스크립트, 서비스 또는 대상이 있을 수도 있고 Linux 배포판에 따라 개별적으로 시작해야 할 수도 있습니다./usr/sbin/rpc.statd
/usr/sbin/rpc.mountd
systemd
Debian/Ubuntu에서는 systemctl start nfs-server.service
이것이 당신이 찾고 있는 명령일 수 있습니다. RHEL 7.x에는 두 가지 서비스, nfs-lock
즉 nfs
NFSv3 서버를 지원하려면 둘 다 시작해야 합니다.