一躏精、NFS服務簡介
1.1 什么是NFS
1) NFS是Network File
System的縮寫及網絡文件系統(tǒng)汰瘫。
2) 主要功能是通過局域網絡讓不同的主機系統(tǒng)之間可以共享文件或目錄菱涤。
3) NFS系統(tǒng)和Windows網絡共享物喷、網絡驅動器類似, 只不過windows用于局域網,
NFS用于企業(yè)集群架構中, 如果是大型網站, 會用到更復雜的分布式文件系統(tǒng)FastDFS,glusterfs,HDFS慕购。
1.2 為什么使得NFS進行數(shù)據(jù)存儲
1) 多臺服務器之間數(shù)據(jù)共享
2) 實現(xiàn)多臺服務器之間數(shù)據(jù)的一致
1.3 NFS實現(xiàn)原理
1)0用戶進程訪問NFS客戶端震桶,使用不同的函數(shù)對數(shù)據(jù)進行處理
2) NFS客戶端通過TCP/IP的方式傳遞給NFS服務端蜡吧。
3) NFS服務端接收到請求后毫蚓,會先調用portmap進程進行端口映射。
4) nfsd進程用于判斷NFS客戶端是否擁有權限連接NFS服務端昔善。
5) Rpc.mount進程判斷客戶端是否有對應的權限進行驗證元潘。
6) idmap進程實現(xiàn)用戶映射和壓縮
7) 最后NFS服務端會將對應請求的函數(shù)轉換為本地能識別的命令,傳遞至內核君仆,由內核驅動硬件翩概。
8) rpc是一個遠程過程調用,那么使用nfs必須有rpc服務
1.4 NFS客戶端和NFS服務器通訊過程
首先服務器端啟動RPC服務返咱,并開啟111端口
服務器端啟動NFS服務钥庇,并向RPC注冊端口信息
客戶端啟動RPC(portmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口
服務端的RPC(portmap)服務反饋NFS端口信息給客戶端咖摹。
客戶端通過獲取的NFS端口來建立和服務端的NFS連接并進行數(shù)據(jù)的傳輸评姨。
二、安裝服務端
2.1 檢查檢測是否安裝NFS
service nfs status
2.2 安裝NFS
yum –y install nfs-utils rpcbind
注:客戶端與服務端都要安裝楞艾,若已安裝NFS則跳過参咙。
三、服務端配置
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)為客戶端的地址及權限两入,地址可以
是一個網段净宵,一個IP地址或者是一個域名,域名支持通配符。
權限說明:
rw:read-write择葡,可讀寫紧武;
ro:read-only,只讀敏储;
sync:文件同時寫入硬盤和內存阻星;
async:文件暫存于內存,而不是直接寫入內存已添;
no_root_squash:NFS客戶端連接服務端時如果使用的是root的話妥箕,那么對服務端分享的目
錄來說,也擁有root權限更舞。顯然開啟這項是不安全的畦幢。
root_squash:NFS客戶端連接服務端時如果使用的是root的話,那么對服務端分享的目錄來
說缆蝉,擁有匿名用戶權限宇葱,通常他將使用nobody或nfsnobody身份;
all_squash:不論NFS客戶端連接服務端時使用什么用戶刊头,對服務端分享的目錄來說都是擁
有匿名用戶權限黍瞧;
anonuid:匿名用戶的UID值,通常是nobody或nfsnobody芽偏,可以在此處自行設定雷逆;
anongid:匿名用戶的GID值
3.2.3 使用之生效
exportfs -r
四、啟動
4.1 啟動服務
systemctl startrpcbind
systemctl start nfs
4.2 重啟服務
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