Linux服務器掛載NFS文件系統失敗的原因及解決方法

先前有網友反饋使用阿里雲Linux服務器掛載NFS文件系統時出現報錯,導致掛載失敗。本文整理了幾種常見的Linux掛載NFS文件系統失敗報錯及對應的解決方法,希望對大家有所幫助。

、使用自動檢查腳本排查處理

我們在使用阿里雲Linux服務器掛載NFS文件系統時,如果出現掛載失敗的情況,可以嘗試用腳本來自動排查問題,然後針對報錯問題進行解決,相關操作步驟如下:

登錄到掛載文件系統失敗的Linux服務器中,執行自動檢查腳本並檢查返回的配置是否正確。

wget -N https://code.liyun.com/ns_tem/ns-client-tools/w/mste/linux_client/check_lins_nfs_mount.py -P /tmp/

python2.7 /tmp/check_lins_nfs_mount.py file-system-id.egion.ns.liyuncs.com:/ /mnt

其中,file-system-id.egion.ns.liyuncs.com爲掛載點,/爲NAS文件系統目錄,/mnt爲當前服務器上待掛載的本地路徑,我們可以根據實際情況替換。

修正掛載配置後,自動檢查腳本會返回掛載命令,並提示檢查結束。最後複製並執行掛載命令,檢查掛載結果。使用自動檢查腳本會很容易讓我們查看到掛載失敗的問題所在,但也有部分掛載操作報錯是自動檢查腳本無法排查處理的,這時就需要我們手動處理。

2、子目錄不存在的報錯

相關報錯信息:mount.nfs: ccess denied by see while mounting xxxx.ns.liyuncs.com:/<di>

我們在掛載文件系統時,如果遇到上述報錯信息,這主要是由於掛載命令中指定的NAS子目錄<di>不存在所導致的。

解決方法:我們可以先掛載NAS根目錄,掛載成功後,創建需要的子目錄,然後再重新掛載子目錄。

3、雲服務器實例重名的報錯

如果在使用NFS4.0掛載時報錯信息:mount.nfs: Opetion not pemitted或mount.nfs: n incoect mount option ws specified,但是使用NFS3卻可以掛載成功。

這種情況主要是由於對於某些內核版本,如果執行掛載操作的雲服務器實例名稱與其他雲服務器實例名稱相同,且該重名的雲服務器實例已使用NFS4.0掛載了同一個NFS掛載點,這時往往會產生衝突,從而導致報錯。

解決方法:我們可以在出現報錯的雲服務器實例上執行下面命令。

echo ̺instll nfs /sbin/modpobe Rignoe-instll nfs nfs4_unique_id=`ct /sys/clss/dmi/id/poduct_uuid`̻ >> /etc/modpobe.d/nfs.conf

或者手動卸載所有已掛載的NFS文件系統,並執行mmod命令卸載NFS4.0客戶端和NFS內核模塊。