一、NFS作業原理
1.1NFS介紹
- NFS(Network File System 網路檔案服務)檔案系統(軟體)檔案的權限
- NFS是一種基于 TCP/IP 傳輸的網路檔案系統協議,最初由 Sun 公司開發,通過使用 NFS 協議,客戶機可以像訪問本地目錄一樣訪問遠程服務器中的共享資源
- NFS也是 NAS 存盤 設備必然支持的一種協議
- NFS它是檔案系統,是作業系統內核來管理的

1.2NAS存盤
- NFS服務的實作依賴于 RPC(Remote Process Call,遠端程序呼叫)機制,通過使用 NFS 協議,客戶機可以像訪問本地目錄一樣訪問遠程服務器中的共享資源,(遠端程序呼叫:自己沒有這種功能,呼叫別人的功能),
- NFS也是NAS存盤設備必然支持的一種協議,以完成遠程到本地的映射程序,在 CentOS 7 系統中,需要安裝 nfs-utils、rpcbind 軟體包來提供 NFS 共享服務,前者用于 NFS 共享發布和訪問,后者用于 RPC 支持,手動加載 NFS 共享服務時,應該先啟動 rpcbind,再啟動 nfs,
補充:RPC采用C/S模式,客戶機請求程式呼叫行程發送一個有行程引數的呼叫資訊到服務行程,然后等待應答資訊,在服務器端,行程保持睡眠狀態直到呼叫資訊到達為止,當一個呼叫資訊到達,服務器獲得行程引數,計算結果,發送答復資訊,然后等待下一個呼叫資訊,最后,客戶端呼叫行程接收答復資訊,獲得行程結果,然后呼叫執行繼續進行,
1.3NFS特點
- 采用TCP/IP傳輸網路檔案
- 安全性低
- 簡單易操作
- 適合局域網環境
1.4NFS優勢
節省本地存盤空間,將常用的資料如:/home 目錄,存放在NFS服務器上且可以通過網路訪問,將減少本地磁盤的使用率,
二、NFS軟體介紹
NFS埠號2049
RPC埠號111
2.1包
軟體包:nfs-utils(包括服務器端和客戶端)
相關軟體包:rpcbind(必須),tcp_wappers
2.2NFS服務主要行程
- rpc.nfsd 最主要的NFS行程,管理客戶端是否可登錄
- rpc.mountd 掛載和卸載NFS檔案系統,包括權限管理
- rpc.lockd 非必要,管理檔案鎖,避免同時寫出錯
- rpc.statd 非必要,檢查檔案一致性,可修復檔案
補充:
說明:CentOS 6開始portmap行程由rpcbind代替
日志:/var/lib/nfs/
NFS組態檔:/etc/exports和/etc/exports.d/*.exports
三、NFS共享組態檔格式
組態檔格式: (1)/dir 主機1(opt1,opt2) 主機2(opt1,opt2)... 解釋:共享路徑 共享給誰 (2)/share * 解釋:共享給任何主機 *代表任意(注意此時未給權限)
1 選項介紹: 2 默認選項:(ro,sync,root_squash,no_all_squash) 3 ro,rw:只讀和讀寫 4 async:異步,資料變化后不立即寫磁盤,先寫入到緩沖區中,過一段時間再寫入磁盤,性能高,安全性低 5 sync(1.0.0后為默認):同步,資料在請求時立即寫入共享存盤磁盤,性能低,安全性高 6 root_squash(默認):遠程root映射為nfsnobody,UID為65534,CentOS8 為nobody,CentOS 7以前的版本為nfsnobody 7 no_root_squash:遠程root映射成NFS服務器的root用戶 8 all_squash:所有遠程用戶(包括root)都變成nfsnobody,CentOS8 為nobody 9 no_all_squash(默認):保留共享檔案的UID和GID 10 anonuid和anongid:指明匿名用戶映射為特定用戶UID和組GID,而非nobody,可配合all_squash使用
四、NFS工具
4.1exportfs
exportfs:可用于管理NFS匯出的檔案系統
1 常見選項: 2 -v:查看本機所有NFS共享 3 -r:重讀組態檔,并共享目錄 4 -a:輸出本機所有共享 5 -au:停止本機所有共享
4.2showmount
客戶機上如何查看共享:showmount -e 主機IP
4.3mount.nfs
格式: mount [服務端的IP地址]:/[共享檔案夾] [掛載點]
4.4案例操作
實驗環境:服務段CentOS7-1(192.168.10.10)和CentOS7-2(192.168.10.20) 實驗目的:nfs 共享服務,要求客戶端有讀寫權限,并且全壓榨成 lisi用戶 服務端: [root@server ~]#useradd lisi [root@server ~]#passwd lisi [root@server ~]#id lisi [root@server ~]#yum -y install nfs-utils.x86_64 [root@server ~]#systemctl start nfs [root@server ~]#mkdir /centos [root@server ~]#chmod 777 /centos/ [root@server ~]#vim /etc/exports /centos *(rw,no_root_squash,all_squash,anonuid=1001,anongid=1001) [root@server ~]#exportfs -r [root@server ~]#exportfs -v [root@server ~]#cd /centos [root@server /centos]#touch Rui.txt [root@server /centos]#ll 客戶端: [root@client ~]#useradd lisi [root@client ~]#passwd lisi [root@client ~]#useradd FZR [root@client ~]#passwd FZR [root@client ~]#yum -y install nfs-utils.x86_64 [root@client ~]#systemctl start nfs [root@client ~]#showmount -e 192.168.10.10 [root@client ~]#mount 192.168.10.10:/centos /mnt [root@client ~]#df -Th [root@client ~]#cd /mnt [root@client /mnt]#ll [root@client /mnt]#touch FZR.txt [root@client /mnt]#ll [root@client /mnt]#su FZR [FZR@client mnt]$ ll [FZR@client mnt]$ touch ZZJ.txt [FZR@client mnt]$ ll
操作:
服務端:

![]()
![]()


客戶端:



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519297.html
標籤:其他
