我的 NFS 設置有什麼問題?
我以前能夠在執行 CentOS 6.6 的電腦上配置 NFS 伺服器,並將文件系統安裝在具有相同作業系統並使用
autofs
.上週我重新安裝了我擁有的所有作業系統,但現在由於某種原因我無法讓它工作。伺服器電腦仍然執行 CentOS 6.6,而虛擬機現在執行 CentOS 7(我也嘗試了另一台執行 Debian Wheezy 的虛擬機,但仍然無法正常工作)。
伺服器(
centosserv
)執行在 192.168.1.89 上,客戶端(centoscli
,CentOS 7 one)執行在 192.168.1.100 上。我要共享的文件系統是
/NFSSHARE
and/NFSSHARE/mydir
,/etc/exports
因此伺服器上的文件包含以下內容:/NFSSHARE 192.168.1.100(fsid=0,rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000) /NFSSHARE/mydir 192.168.1.100(ro,sync,no_subtree_check)
如果我跑步,
showmount -e
我會得到這個:[root@centosserv ~]# showmount -e Export list for centosserv: /NFSSHARE/mydir 192.168.1.100 /NFSSHARE 192.168.1.100
所以到目前為止一切看起來都很好。
在客戶端,我編輯了
/etc/auto.master
包含以下行:/mnt/nfs /etc/auto.nfs-share --timeout=90
然後創建
/etc/auto.nfs-share
具有以下內容的文件:[root@centoscli ~]# cat /etc/auto.nfs-share writeable_share -rw 192.168.1.89:/ non_writeable_share -ro 192.168.1.89:/mydir
鑑於以下輸出,這似乎也有效:
[root@centoscli ~]# mount | grep nfs-share /etc/auto.nfs-share on /mnt/nfs type autofs (rw,relatime,fd=18,pgrp=2401,timeout=90,minproto=5,maxproto=5,indirect)
此時,
/mnt/nfs/writeable_share
並/mnt/nfs/non_writeable_share
沒有安裝,除非我嘗試按照本教程直接訪問它們(這與我上次設置 NFS 伺服器時所遵循的相同*)。所以只有在我嘗試過之後ls -l /mnt/nfs/writeable_share
才能安裝它。但我得到的輸出是:[root@centoscli ~]# ls -l /mnt/nfs/writeable_share ls: cannot access /mnt/nfs/writeable_share: No such file or directory
我
ping
從客戶端編輯伺服器,反之亦然,只是為了檢查它們是否可以相互連接,而且它們似乎可以。我所做的一切都與我第一次做的完全一樣,但由於某種原因,這次我無法讓它工作。我已經嘗試通過
/etc/fstab
在客戶端編輯文件並手動而不是使用來autofs
做到這一點,但它似乎也不是那樣工作的。在伺服器端禁用iptables
使其可以fstab
手動使用,但還不能使用autofs
。我還能檢查什麼,或者我哪裡出錯了?
*除了前三個步驟,因為我既沒有服務
nfs-common
也沒有/etc/default/nfs-common
文件。編輯
我在 FB 的一個 CentOS 小組上查看了本教程,在伺服器端應該已經解決並且我們準備開始配置客戶端之後,它說:
測試是否可以看到 NFS 伺服器:
showmount -e
所以我猜想
showmount -e
在客戶端上使用我應該能夠在伺服器上獲取一些資訊,或者至少可以確認我可以在這個客戶端上從該伺服器掛載文件系統。但是,我嘗試showmount -e 192.168.1.89
在客戶端使用,我得到的唯一消息是:clnt_create: RPC: Port mapper failure - Unable to receive: errno113 (No route to host)
我猜這可能是問題所在,但我不確定這意味著什麼。
編輯 2
在伺服器端禁用後
iptables
,我現在可以showmount -e 192.168.1.89
在客戶端使用時看到導出的文件系統。我認為,這使我的第一次編輯變得毫無意義。但是,我仍然無法使用autofs
.編輯 3
好的,除了
iptables
禁用之外,我/etc/exports
在伺服器和/etc/auto.nfs-share
客戶端上都進行了編輯,如下所示:[root@centosserv ~]# cat /etc/exports /NFSSHARE 192.168.1.100(fsid=0,rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000) /NFSSHARE/mydir 192.168.1.100(rw,sync,no_subtree_check,root_squash,anonuid=1000,anongid=1000) /NFSSHARE/mydir/ro 192.168.1.100(ro,sync,no_subtree_check) [root@centoscli ~]# cat /etc/auto.nfs-share writeable_share -fstype=nfs4,rw 192.168.1.89:/mydir non_writeable_share -fstype=nfs4,ro 192.168.1.89:/mydir/ro
在那裡我似乎能夠掛載文件系統,但不能從客戶端寫入:
[root@centoscli ~]# touch /mnt/nfs/writeable_share/test_from_client.file touch: cannot touch ‘/mnt/nfs/writeable_share/test_from_client.file’: Permission denied
**看起來這裡的問題是在伺服器端導出的文件夾的權限設置。**因此,在伺服器上執行以下操作允許我從客戶端寫入:
[root@centosserv ~]# chmod 777 /NFSSHARE
我在伺服器和客戶端的全新安裝上都這樣做了。再次遇到同樣的問題,甚至沒有嘗試
iptables
在伺服器上禁用並完成我這次編輯到問題中的更改,決定確保/NFSSHARE
正確設置權限。似乎已經成功了。