一、NFS服務(wù)簡介
1.1 什么是NFS
1) NFS是Network File
System的縮寫及網(wǎng)絡(luò)文件系統(tǒng)。
2) 主要功能是通過局域網(wǎng)絡(luò)讓不同的主機系統(tǒng)之間可以共享文件或目錄。
3) NFS系統(tǒng)和Windows網(wǎng)絡(luò)共享、網(wǎng)絡(luò)驅(qū)動器類似, 只不過windows用于局域網(wǎng),
NFS用于企業(yè)集群架構(gòu)中, 如果是大型網(wǎng)站, 會用到更復(fù)雜的分布式文件系統(tǒng)FastDFS,glusterfs,HDFS。
1.2 為什么使得NFS進行數(shù)據(jù)存儲
1) 多臺服務(wù)器之間數(shù)據(jù)共享
2) 實現(xiàn)多臺服務(wù)器之間數(shù)據(jù)的一致
1.3 NFS實現(xiàn)原理
1)0用戶進程訪問NFS客戶端,使用不同的函數(shù)對數(shù)據(jù)進行處理
2) NFS客戶端通過TCP/IP的方式傳遞給NFS服務(wù)端。
3) NFS服務(wù)端接收到請求后,會先調(diào)用portmap進程進行端口映射。
4) nfsd進程用于判斷NFS客戶端是否擁有權(quán)限連接NFS服務(wù)端。
5) Rpc.mount進程判斷客戶端是否有對應(yīng)的權(quán)限進行驗證。
6) idmap進程實現(xiàn)用戶映射和壓縮
7) 最后NFS服務(wù)端會將對應(yīng)請求的函數(shù)轉(zhuǎn)換為本地能識別的命令,傳遞至內(nèi)核,由內(nèi)核驅(qū)動硬件。
8) rpc是一個遠(yuǎn)程過程調(diào)用,那么使用nfs必須有rpc服務(wù)
1.4 NFS客戶端和NFS服務(wù)器通訊過程
首先服務(wù)器端啟動RPC服務(wù),并開啟111端口
服務(wù)器端啟動NFS服務(wù),并向RPC注冊端口信息
客戶端啟動RPC(portmap服務(wù)),向服務(wù)端的RPC(portmap)服務(wù)請求服務(wù)端的NFS端口
服務(wù)端的RPC(portmap)服務(wù)反饋NFS端口信息給客戶端。
客戶端通過獲取的NFS端口來建立和服務(wù)端的NFS連接并進行數(shù)據(jù)的傳輸。
二、安裝服務(wù)端
2.1 檢查檢測是否安裝NFS
service nfs status
2.2 安裝NFS
yum –y install nfs-utils rpcbind
注:客戶端與服務(wù)端都要安裝,若已安裝NFS則跳過。
三、服務(wù)端配置
3.1 創(chuàng)建一個共享目錄
cd /user/local
mkdir test
注:共享目錄、名稱可以自定義,只要目錄存在就OK。
3.2 NFS文件配置
3.2.1 編輯exports
vi /etc/exports
3.2.2 增加配置
/usr/local/test*(insecure,rw,async,no_root_squash)
注:/user/local/test為共享的目錄,使用絕對路徑;
*(insecure,rw,async,no_root_squash)為客戶端的地址及權(quán)限,地址可以
是一個網(wǎng)段,一個IP地址或者是一個域名,域名支持通配符。
權(quán)限說明:
rw:read-write,可讀寫;
ro:read-only,只讀;
sync:文件同時寫入硬盤和內(nèi)存;
async:文件暫存于內(nèi)存,而不是直接寫入內(nèi)存;
no_root_squash:NFS客戶端連接服務(wù)端時如果使用的是root的話,那么對服務(wù)端分享的目
錄來說,也擁有root權(quán)限。顯然開啟這項是不安全的。
root_squash:NFS客戶端連接服務(wù)端時如果使用的是root的話,那么對服務(wù)端分享的目錄來
說,擁有匿名用戶權(quán)限,通常他將使用nobody或nfsnobody身份;
all_squash:不論NFS客戶端連接服務(wù)端時使用什么用戶,對服務(wù)端分享的目錄來說都是擁
有匿名用戶權(quán)限;
anonuid:匿名用戶的UID值,通常是nobody或nfsnobody,可以在此處自行設(shè)定;
anongid:匿名用戶的GID值
3.2.3 使用之生效
exportfs -r
四、啟動
4.1 啟動服務(wù)
systemctl startrpcbind
systemctl start nfs
4.2 重啟服務(wù)
systemctl restart rpcbind
systemctl restart nfs
五、掛載客戶端
5.1 創(chuàng)建掛載目錄
mkdir /data/tools/test
5.2 測試掛載
showmount -e 172.31.xx.xx
5.3 掛載
mount -t nfs 172.31.xxx.xx:/usr/local/test /data/tools/test
掛載驗證,輸入mount
六、測試
6.1 客戶端生成一個文件
6.1.1 cd到掛載目錄
cd /data/tools/test
輸入echo "hello nfstest">>test
輸入:ll
顯示如下:

七、解除掛載
umount -t nfs 172.31.xxx.xx:/usr/local/test /data/tools/test