NFS가 서버에서 실행 중인지 클라이언트에서 확인

NFS가 서버에서 실행 중인지 클라이언트에서 확인

(내 시스템은 centos7을 실행 중입니다)

NFS를 통해 드라이브가 올바르게 마운트되었는지 클라이언트에서 확인하려고 합니다.

명령을 입력하면 nfsstat -m현재 설치라고 생각되는 것이 표시되지만 폴더에 액세스할 수 있다고 보장되는 것은 아닙니다. 이러한 폴더가 탑재되었을 때 NFS 서버가 실행 중이었을 가능성이 있지만 이제 NFS 서버가 다운되었습니다.

예를 들어, NFS 서버가 다운되고 클라이언트 시스템에 명령을 입력하면 df -h명령이 무기한 중단됩니다. 마찬가지로 ls마운트하려는 폴더를 마운트 하려고 하면 역시 무기한 정지됩니다.

내 문제를 보여주는 예는 다음과 같습니다.

# on server
systemctl start nfs-server

# on client
mount node1:/mnt/images /mnt/images
df -h #works fine here

# on server
systemctl stop nfs-server

# on client
nfsstat -m #shows the list of nfs mounts
df -h #this command will hang
ls /mnt/images #this command will hang

테스트 방법에 대한 제안 사항클라이언트에서NFS 서버가 실행 중이거나 NFS 마운트 폴더에 접근이 가능하다면 감사하겠습니다.

showmount -e서버에서 실행 하면 다음과 같은 출력이 표시됩니다. ( 클라이언트 컴퓨터에서 마운트하려고 하는 모든 폴더 는 다음 /mnt/images/mnt/rv_output같습니다 .)/rv

/mnt/rv_output 192.168.81.0/24
/mnt/images    192.168.81.0/24
/rv            192.168.81.0/24

하지만 저는 이 연결을 서버에서 테스트하는 데 관심이 없고 클라이언트 컴퓨터에서 테스트하고 싶습니다. showmount -e클라이언트에서 실행 하면 nfs 서버가 서버 시스템에서 활성화되었는지 여부에 관계없이 동일한 출력을 얻습니다.

clin_create: RPC: Port mapper failure - Unable to receive: errno 111 (connection refused)

답변1

표준 설정이 있는 경우 서버의 NFS 데몬은 TCP/UDP 포트 2049를 수신하므로 , 또는 를 사용하여 연결을 시도 netcatncatnc있습니다 telnet. CentOS를 실행하고 있지 않기 때문에 사용 가능한 것이 무엇인지 정확히 알 수 없지만 내 컴퓨터(OpenBSD)에서는

$ nc -z ip_of_nfs_server 2049

그게 다입니다( -uUDP를 추가하고 -z스위치는 수신 데몬을 확인하고 데이터를 보내지 않도록 지시합니다). man동일한 목적으로 다른 도구를 사용할 수 있도록 페이지를 확인 하여 컴퓨터에 무엇이 있는지 확인하세요. telnet어느 정도 유비쿼터스

$ telnet ip_of_nfs_server 2049

또한 작동해야 합니다(exit 사용 Ctrl+c).

답변2

쇼 산

~에서man showmount

showmount - NFS 서버 마운트 정보를 표시합니다.

실제로 내보낸 내용을 확인하려면 with --exports(또는 ) 옵션을 사용합니다.-e

답변3

df -h수행해야 할 작업을 이미 알고 있지만 중단되므로 timeout중단되지 않도록 명령을 앞에 추가할 수 있습니다.

timeout 5s df -h 1>/dev/null 2>/dev/null && echo OK || echo NOK

관련 정보