NFS(network file system)
工作原理:
1、首先用戶訪問網站程序,由程序在NFS客戶端上發出NFS文件存取功能的詢問請求,這時NFS客戶端(即執行程序的服務器)RPC服務(portmap 或rpcbind服務)就會通過網絡向NFS服務端的RPC服務(即portmap或rpcbind服務)的111端口發出NFS文件存取功能的詢問請求。
2、NFS服務端的RPC服務(即portmap或rpcbind服務)找到對應的已註冊的NFSdaemon端口後,通知NFS客戶端的RPC服務(即portmap或rpcbind服務)。
3、此時NFS客戶端就可獲取到正確的端口,然後就直接與NFS daemon聯機存取數據了。
4、NFS客戶端把數據存取成功後,返回給前端程序,告訴用戶存取結果,作爲網站用戶,我們就完成了一次存取操作。
注意的幾點:
1、由sun公司發展,可以在不同的操作系統,不同的主機,分享文件,類似文件服務器(file server)
2、NFS 是使用(遠程過程調用協議)RPC傳輸協議協助NFS本身的運行
3、NFS主要管理分享出來的目錄,而本身沒有提供資料傳遞的協議,所以當NFS需要資料傳遞的時候,就會讓RPC協議進行運作。所以也可說NFS是RPC的一個program,換句話也可以說是NFS是一個RPC server。
4、如果要跑NFS的SERVER 需要激活RPC服務,而掛在NFS partiion的CLIENT的機器,也需要激活RPC服務
5、NFS需激活RPC的兩個daemons
Rpc.nfsd:管理client端登陸主機的權限
Rpc.mountd:管理NFS的檔案系統
6、激活nfs需要兩個套件:
Portmap:將自己管理的port mapping告知Client端,讓Client端能夠鏈接Server端傳輸數據。
nfs.util:提供 rpc.nfsd 及 rpc.mountd 這兩個 NFS daemons 與其它相關 documents 與說明文件、執行檔等的套件
7、NFS的rpc服務,在CentOS5.X下名稱爲portmap,在CentOS6.x下名稱爲rpcbind。
NFS配置
SERVER端配置
1、安裝nfs的套件和rpc
2、Linux內核版本高於2.2(查看內核方法:cat /proc/version | uname -a)
3、修改配置文件exports(vim /etc/exports)
配置文件exports的格式
分享的目錄 主機名稱或IP地址,子網(參數1,參數2) 主機名稱或IP地址,子網(參數1,參數2)
具體參數:
rw:可讀寫權限RX:可讀執行權限
no_root_squash:登入NFS主機分享目錄時,如果是以root用戶身份登陸的話,則具有root權限
root_squash:登入NFS主機分享的目錄的使用者身份是root用戶的話,則權限將壓縮成爲匿名使用者身份。
all_squash:無論登入主機分享目錄的使用身份爲何,都會被壓縮成爲匿名使用者,nobody
anonuid:匿名使用者的uid
anongid:匿名使用者的gid
sync:資料同步寫入內存和硬盤中
async:資料暫寫入內存,而非直接寫入硬盤中
4、激活服務(service rpcbind start ; service nfs start)
5、重新掃描exports配置文件(exportfs -rv)
6、觀察主機開放的目錄文件(showmount -e IP地址)
Client端配置
1、打開rpcbind服務(service rpcbind start)
2、掃描可以使用的目錄(showmount -e IP地址)
3、掛載目錄(mount -t nfs 192.168.118.128:/home/lsk /home/lsk)
配置時注意事項:
1、如果只設置all_squash時,客戶端上沒有同樣uid,gid的用戶,就無法進入nfs服務共享的目錄;反之如果設置指定的uid,gid,則客戶端可以以設置好的uid,gid身份進入目錄,進行操作。
2、如果服務端關機時沒有將nfs,服務關閉,則會導致關機速度很慢