내 서버에는 /etc/exports에 동일하게 구성된 두 개의 NFS 내보내기가 있습니다. 내 NFS 클라이언트에서 하나는 항상 NFS-3 자동 마운트를 사용하고 다른 하나는 NFS-4를 사용합니다. 나는 nfs-4를 원합니다. 어떻게 해야 하나요?
서버("nina")에서:
# cat /etc/exports
/home 192.168.0.0/24(rw,no_all_squash,anonuid=1545,anongid=501)
/misc/fedora-backup 192.168.0.0/24(rw,no_all_squash,anonuid=1545,anongid=501)
# exportfs -arv
exporting 192.168.0.0/24:/misc/fedora-backup
exporting 192.168.0.0/24:/home
클라이언트 측에서:
$ ls /net/nina/home /net/nina/misc/fedora-backup
/net/nina/home:
bhepple data guest lost+found nina watched-files
/net/nina/misc/fedora-backup:
backup-copy lost+found media
$ mount |grep nfs
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nina:/home on /net/nina/home type nfs4 (rw,nosuid,nodev,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.104,local_lock=none,addr=192.168.0.19)
nina:/misc/fedora-backup on /net/nina/misc/fedora-backup type nfs (rw,nosuid,nodev,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.19,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=192.168.0.19)
이것은 최신 fedora-37 시스템입니다.
편집하다수동 마운트에도 오류가 표시됩니다.
sudo mount -t nfs4 nina:/misc/fedora-backup ~/tmp/mnt
mount.nfs4: mounting nina:/misc/fedora-backup failed, reason given by server: No such file or directory
생략하면 -t nfs4
잘 설치되는데 nfs-3일 뿐입니다.
답변1
nfs4는 별도의 디렉토리를 내보낼 수 없는 것 같습니다. 모두 함께 중첩되어야 하며, 아마도 바인드 마운트를 사용하여 원하는 위치를 가리킬 수 있습니다.
https://superuser.com/questions/362736/cant-mount-nfs4-share
답변2
클라이언트 옵션을 찾으십시오 vers
. vers=4.2
집에 설치하고 백업 할 수 있습니다 vers=3
.
또한 if 또는 해당 별칭이 지정되지 않았 type nfs4
으며 type nfs
버전을 확인하는 데 사용할 수 있습니다.vers
nfsvers
답변3
저는 Debian을 사용하고 있는데 특히 다음 안정 버전에서 같은 문제가 발생합니다."트릭시"(현재 Debian13/testing) 클라이언트 및 현재 안정 버전"독서광"(Debian12/stable) 서버. 이 문제를 이해하는 것이 fedora에도 도움이 될 것이라고 생각합니다.
내 설치에서는 Kerberos를 사용합니다. 기본적으로 사용되는 NFS 프로토콜은 버전 4.2입니다. Debian12의 NFS 클라이언트는 버전 4와 연결을 설정할 수 없는 경우 자동으로 프로토콜 버전 3으로 대체됩니다. 이는 를 사용하여 테스트할 수 있습니다 mount
. 명령 프롬프트 server12:~$
, client12:~$
또는 를 참고하세요 client13:~$
.
이러한 내보내기는 중첩된 디렉터리만 내보내기 위해 루트 디렉터리를 내보내는 NFS4의 요구 사항을 준수하지 않습니다. 그러나 NFS3으로 마운트할 수 있습니다.
server12:~$ cat /etc/exports
/home 192.168.24.0/24(sec=krb5p,rw,async,no_subtree_check)
/srv/nfs 192.168.24.0/24(sec=krb5p,rw,async,no_subtree_check,fsid=0,crossmnt)
server12:~$ sudo exportfs -rv
exporting 192.168.24.0/24:/home
exporting 192.168.24.0/24:/srv/nfs
client12:~$ sudo showmount --exports server
Export list for server:
/home 192.168.24.0/24
/srv/nfs 192.168.24.0/24
client12:~$ sudo mount -vvv -t nfs4 -o sec=krb5p server:/srv/nfs /mnt/server
mount.nfs4: timeout set for Mon Jan 1 14:38:33 2024
mount.nfs4: trying text-based options 'sec=krb5p,vers=4.2,addr=192.168.24.125,clientaddr=192.168.24.65'
mount.nfs4: mount(2): No such file or directory
mount.nfs4: trying text-based options 'sec=krb5p,addr=192.168.24.125'
mount.nfs4: prog 100003, trying vers=3, prot=6
mount.nfs4: trying 192.168.24.125 prog 100003 vers 3 prot TCP port 2049
mount.nfs4: prog 100005, trying vers=3, prot=17
mount.nfs4: trying 192.168.24.125 prog 100005 vers 3 prot UDP port 51678
그림에서는 mount
연결 시도가 기본 방식으로 시작되고 vers=4.2
성공적으로 반환되는 것을 보여줍니다. vers 3
다음과 연결되어 있는 것을 볼 수 있습니다 vers=3
.
client12:~$ findmnt /mnt/server
/mnt/server server:/srv/nfs nfs rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp, ...
그러나 Debian13에서는 NFS 클라이언트가 더 이상 NFS3으로 대체되지 않습니다. 이로 인해 업그레이드할 때 문제가 발생했습니다."트릭시". 이제 사용할 NFS 버전을 지정해야 합니다.
client13:~$ sudo mount -vvv -t nfs4 -o sec=krb5p server:/srv/nfs /mnt/server
mount.nfs4: timeout set for Mon Jan 1 16:21:13 2024
mount.nfs4: trying text-based options 'sec=krb5p,vers=4.2,addr=192.168.24.125,clientaddr=192.168.24.83'
mount.nfs4: mount(2): No such file or directory
mount.nfs4: mounting server:/srv/nfs failed, reason given by server: No such file or directory
client13:~$ # But specifying vers=3 as additional option then it connects:
client13:~$ sudo mount -vvv -t nfs4 -o sec=krb5p,vers=3 server:/srv/nfs /mnt/server
mount.nfs4: timeout set for Mon Jan 1 16:29:31 2024
mount.nfs4: trying text-based options 'sec=krb5p,vers=3,addr=192.168.24.125'
mount.nfs4: prog 100003, trying vers=3, prot=6
mount.nfs4: trying 192.168.24.125 prog 100003 vers 3 prot TCP port 2049
mount.nfs4: prog 100005, trying vers=3, prot=17
mount.nfs4: trying 192.168.24.125 prog 100005 vers 3 prot UDP port 51678
NFS 서버가 성공적으로 구성되었다고 가정하면 완전성을 위해 유효한 NFS4 구성을 내보내고 마운트합니다.
server12:~$ cat /etc/exports
# Only for testing fallback to NFS3
#/home 192.168.24.0/24(sec=krb5p,rw,async,no_subtree_check)
#/srv/nfs 192.168.24.0/24(sec=krb5p,rw,async,no_subtree_check,fsid=0,crossmnt)
#
# Valid NFS4 configuration
/srv/nfs gss/krb5p(rw,async,no_subtree_check,fsid=0,crossmnt)
/srv/nfs/home gss/krb5p(rw,async,no_subtree_check)
server12:~$ cat /etc/fstab
PARTLABEL=rootfs / ext4 errors=remount-ro 0 1
PARTLABEL=swap none swap sw 0 0
/dev/vdb /media ext4 errors=remount-ro 0 1
/media /srv/nfs/media none bind 0 0
/home/ingo /srv/nfs/home/ingo none bind 0 0
/home/mary /srv/nfs/home/mary none bind 0 0
/home/common /srv/nfs/home/common none bind 0 0
client13:~$ cat /etc/fstab
# Your local mounts ..., then for NFS4 mounts
server:/ /mnt/srv nfs4 sec=krb5p 0 0
server:/home /mnt/home nfs4 sec=krb5p 0 0
client13:~$ ls /mnt/srv
home/ media/
client13:~$ ls /mnt/home
common/ ingo/ mary/