NFS 버전 3을 마운트할 수 없습니다.

NFS 버전 3을 마운트할 수 없습니다.

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서비스 가 없습니다. nlockmgrNFSv3 서버는 이들 모두를 실행해야 하며 시스템 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.nfsNFS 서버 서비스에 " 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알릴 방법이 없습니다 . 마운트 작업이 나중에 성공하여 기본 명령에 "성공" 결과 코드가 반환될 수 있기 때문입니다.mountmount.nfsmount

/var/lib/test2        : successfully mounted

,som mount명령은 NFS 마운트 프로세스의 세부 사항을 알지 못하므로 "성공" 결과 코드는 파일 시스템이 성공적으로 마운트되었음을 ​​의미한다고 가정합니다. 이 특별한 경우 결과 코드는 단순히 mount.nfs시도가 중지되지 않았음을 의미합니다.


따라서 문제는 호스트 10.200.100.80에 있는 것입니다. 해당 정보에 따르면 portmapperNFS 서버 역할을 하는 데 필요한 서비스를 실행하고 있지 않습니다.

안타깝게도 이 호스트에서 사용되는 운영 체제의 이름과 버전을 지정하지 않았습니다. NFS 서버 서비스를 시작하는 단계는 Linux 배포판에 따라 다릅니다.

NFS 서버 서비스가 자동으로 시작되도록 구성되었더라도 일부 배포에서는 다음 사항을 확인합니다 /etc/exports. NFS 공유가 구성되지 않은 경우 시작 스크립트는 NFS 서버 서비스 시작을 무시할 수 있습니다. 따라서 먼저 /etc/exports호스트 10.200.100.80의 파일이 /var/lib/test2NFSv3 공유로 정의되어 있는지 확인한 다음 해당 호스트에서 NFS 서버 서비스를 시작하는 방법(및 향후 부팅 시 자동으로 시작되도록 구성하는 방법)을 파악해야 합니다.

일반적으로 서비스 nfsnfs_aclnlockmgr커널의 서버에 의해 처리되므로 는 /usr/sbin/rpc.nfsd커널 구성 요소를 구성하기 위해 한 번만 실행된 다음 종료됩니다. 및 서비스는 status각각 및 를 실행하는 mountd사용자 공간 프로세스에 의해 처리됩니다 . 이 모든 것을 시작하는 스크립트, 서비스 또는 대상이 있을 수도 있고 Linux 배포판에 따라 개별적으로 시작해야 할 수도 있습니다./usr/sbin/rpc.statd/usr/sbin/rpc.mountdsystemd

Debian/Ubuntu에서는 systemctl start nfs-server.service이것이 당신이 찾고 있는 명령일 수 있습니다. RHEL 7.x에는 두 가지 서비스, nfs-locknfsNFSv3 서버를 지원하려면 둘 다 시작해야 합니다.

관련 정보