Ubuntu環境下NFS伺服器搭建

微微微笑發表於2015-07-17

看到鳥哥私房菜對NFS的介紹,就想試試玩一下。看起來步驟也很簡單。

1.背景名詞。

NFS(Network File System)

作用:讓所有的Unix-like 機器通過網路共享彼此的檔案

侷限:檔案許可權問題。客戶端和伺服器端必須具備相同的賬號才能夠訪問某些目錄或檔案。

RPC(Remote Procedure Call)

作用:指定每個NFS功能所對應的port number,並且通知客戶端,讓客戶端可以連線到正確的埠上去。

當伺服器在啟動NFS時會隨機選取數個埠,並主動向RPC註冊,因此RPC可以知道每個埠對應的NFS功能。

所以啟動NFS之前,要啟動RPC,否則NFS無法向RPC註冊。

2.伺服器端配置

1)下載軟體

#sudo apt-get install rpcbind nfs-kernel-server

2)建立共享目錄

#sudo mkdir /home/user/nfstest

#sudo chmod 777 /home/user/nfstest

3)修改配置檔案

#sudo vim /etc/exports

/home/user/nfstest     localhost(rw,sync,no_root_squash)

localhost表面只允許本機訪問,這個欄位可以為IP地址。也可以用正規表示式來表示。

rw代表具有可讀寫許可權。ro代表只具有可讀許可權。

sync是資料同步寫入記憶體和硬碟。async代表資料會先暫存於記憶體當中,而非直接寫入硬碟。

no_root_squash和root_squash的不同在於客戶端使用者為root時,訪問系統的許可權不同。客戶端使用NFS系統的賬號為root時,root_squash會壓縮使用者為nfsnobody,而no_root_squash會繼續保持其root身份。

all_root_squash會壓縮所有的使用者為nfsnobody。

4)重啟服務

#sudo /etc/init.d/rpcbind restart

#sudo /etc/init.d/nfs-kernel-server restart

* Stopping NFS kernel daemon
...done.
* Unexporting directories for NFS kernel daemon...
...done.
* Exporting directories for NFS kernel daemon...
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "localhost:/home/user/nfstest".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x

...done.
* Starting NFS kernel daemon
...done.

 

可以看到 NFS kernel daemon啟動成功。如果不成功會顯示fail。

5)測試伺服器

#showmount -e
Export list for hostname:
/home/user/nfstest localhost
說明伺服器端搭建OK。

3.客戶端配置

1)下載軟體

#sudo apt-get install rpcbind nfs-common

2)掛載檔案

#mkdir /home/user/mnt

#chmod 777 /home/user/mnt

#mount -t nfs localhost:/home/user/nfstest /home/user/mnt

mount -t nfs 伺服器名/IP地址:伺服器共享目錄  本地掛載目錄

3)客戶端測試

#cd /home/user/mnt

#touch testfile

就會看到 /home/user/nfstest和/home/user/mnt下面都有testfile檔案,說明測試成功。

4.取消掛載

#sudo umount /home/user/mnt

相關文章