天天看點

簡述NFS伺服器搭建

簡單羅列基礎指令,隻分享我的想法!

NFS網絡檔案系統,和FTP檔案傳輸協定不一樣,NFS主要依靠rpcbind程序,通過rpcbind把指令傳遞到NFS伺服器(這一點就與FTP不一樣,FTP的client是發送對具體資源的請求,而NFS是要把某個函數的調用作為請求發送到伺服器端,你可以挂載共享目錄、vim共享檔案等,就好像你在NFS伺服器實機操作一樣),再由NFS伺服器的nfsd程序向NFS伺服器的kernel發起系統調用,在把調用之後的結果通過rpcbind發到client。

client和server端都要啟用rpcbind程序,因為NFS需要臨時開啟某些端口,所有的這些端口都要向portmapper(111端口)服務進行注冊,告知portmapper那些nfs的服務和端口的對應表(如圖1),client也通過rpcbind去獲得server端的那些已經注冊了端口,進而可以通信。

簡述NFS伺服器搭建

圖1

就好像你去發送一個快遞(順豐),你就相當于那個client而快遞哥就是rpcbind,你要郵寄到的目标就是server區下的那個已經在rpcbind登記過的某個端口,你隻要告訴快遞哥我要找server區下的mountd就ok了,肯定也是server所在區域的順豐快遞哥(負責server區的那個快遞哥rpcbind)找到mountd這個端口。意思差不多,向server端的rpcbind程序注冊的服務同樣也隻有client端的rpcbind程序才能知道。

client通路server共享的文檔與兩個權限有關,分别是NFS伺服器有開放可寫入的權限,和實際檔案的權限是否可讀寫。

client是向server端發起的rpc是以,client的那個使用者的id必須在server端有,否則将會以匿名的形式顯示,因為檔案本身就是server的。是以,權限的更改需要仔細斟酌。

配置較為簡單,如下:

1)server端

需要安裝nfs-utils,用來提供rpc.nfsd及rpc.mountd等nfs監控程式與基本指令,可以自己rpm -ql nfs-utils看一下是否提供。

vim /etc/exports      

//格式directory(or file system)   client1(option1,option2)  client2(option1, option2)

/mnt 172.16.49.5(rw)      

通知nfsd重新讀取/etc/exports中的共享目錄或檔案系統

exportfs –arv      

2)client端

ps aux |grep rpc| grep –v grep      

确定是否rpcbind和rpc.statd這兩個程序開啟

檢視NFS server伺服器共享的目錄

showmount –e 172.16.49.1      

挂載到本地

mount –t nfs 172.16.49.1:/mnt /mnt      

3)client可以對共享目錄有寫權限

nfs已經放行rw

在server端

因為在server端client的root使用者被壓縮為nfsnobody(uid為6534)

chmod o+x /mnt      

你也可以使用setfacl這個指令,因為會更加安全一些,本文就直接對其它使用者開放寫權限了。

用戶端複制passwd檔案到共享目錄下,server的視圖為圖2

簡述NFS伺服器搭建

圖2

Client的視圖如下圖3

簡述NFS伺服器搭建

圖3

注意:在nfs伺服器端可以看到nfs伺服器有的系統賬戶的賬戶名,否則全部都是nfsnobody,而在client則全部都是nobody使用者。

注意:常用在/etc/exports中共享目錄的選項說明

secure:這個選項是預設選項,它使用了 1024 以下的 TCP/IP 端口實作 NFS 的連接配接。指定 insecure 可以禁用這個選項。

rw:這個選項允許 NFS 客戶機進行讀/寫通路。預設選項是隻讀的。

async:這個選項可以改進性能,但是如果沒有完全關閉 NFS 守護程序就重新啟動了 NFS 伺服器,這也可能會造成資料丢失。

no_wdelay:這個選項關閉寫延時。如果設定了 async,那麼 NFS 就會忽略這個選項。

nohide:如果将一個目錄挂載到另外一個目錄之上,那麼原來的目錄通常就被隐藏起來或看起來像空的一樣。要禁用這種行為,需啟用 hide 選項。

no_subtree_check:這個選項關閉子樹檢查,子樹檢查會執行一些不想忽略的安全性檢查。預設選項是啟用子樹檢查。

no_auth_nlm:這個選項也可以作為 insecure_locks 指定,它告訴 NFS 守護程序不要對加鎖請求進行認證。如果關心安全性問題,就要避免使用這個選項。預設選項是 auth_nlm 或 secure_locks。

繼續閱讀