NFS文件服務器及客戶端掛載


1、NFS介紹

NFS(Network File System)即網絡文件系統,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。將NFS主機分享的目錄,掛載到本地客戶端當中,本地NFS的客戶端應用可以讀寫位於遠端NFS服務器上的文件。在客戶端看起來,就像訪問本地文件一樣。

2、NFS原理

2.1、NFS服務原理

NFS支持的功能相當多,而不同的功能都會使用不同的程序來啟動,每啟動一個功能就會啟用一些端口來傳輸數據,因此NFS的功能對應的端口並不固定,客戶端要知道NFS服務器端的相關端口才能建立連接進行數據傳輸,而RPC就是用來統一管理NFS端口的服務,並且統一對外的端口是111,RPC會記錄NFS端口的信息,如此我們就能夠通過RPC實現服務端和客戶端溝通端口信息。PRC最主要的功能就是指定每個NFS功能所對應的port number,並且通知客戶端,記客戶端可以連接到正常端口上去。

在啟動NFS SERVER之前,首先要啟動RPC服務(即portmap或rpcbind服務)否則NFS SERVER就無法向RPC服務區注冊,另外,如果RPC服務重新啟動,原來已經注冊好的NFS端口數據就會全部丟失。因此此時RPC服務管理的NFS程序也要重新啟動以重新向RPC注冊。一般修改NFS配置文檔后,是不需要重啟NFS的,直接在命令執行/etc/init.d/nfs reload或exportfs –rv即可使修改的/etc/exports生效。

2.2、NFS服務的優缺點

優點 :
a.節省本地存儲空間,將常用的數據存放在一台服務器可以通過網絡訪問該數據
缺點 :
a.局限性容易發生單點故障,服務器機宕機的話所有客戶端都不能訪問
b.在高並發情況下NFS效率/性能有限
c.客戶端沒用用戶認證機制,且數據是通過明文傳送,安全性一般(一般建議在局域網內使用)
d.NFS的數據是明文的,對數據完整性不做驗證
e.多台機器掛載NFS服務器時,連接管理維護麻煩

3、NFS安裝

# 1、檢查rcpbind 和 nfs是否安裝
rpm -qa nfs-utils rpcbind
# 2、安裝nfs 和 rpcbind
yum install nfs-utils rpcbind -y
# 3、通過systemctl設置自啟動
systemctl enable nfs-server
systemctl enable rpcbind
# 4、驗證是否自啟動
systemctl is-active nfs-server
systemctl is-active rpcbind

4、NFS共享及客戶端掛載

4.1、NFS共享
# 1、通過/etc/exports文件定義共享目錄,vi編輯exports文件
vi /etc/exports
# 2、加入共享目錄和共享規則
#以讀寫的方式共享目錄 /public 能被IP為 10.84.196.* 網段的服務器訪問
/opt/resources 10.84.196.*(rw,sync,no_root_squash)
#共享格式為:
共享目錄絕對路徑    授權訪問的IP或網段(權限1,權限2)
​
權限說明
ro                      只讀訪問  
rw                      讀寫訪問  
sync                    所有數據在請求時寫入共享  
async                   NFS在寫入數據前可以相應請求  
secure                  NFS通過1024以下的安全TCP/IP端口發送  
insecure                NFS通過1024以上的端口發送  
wdelay                  如果多個用戶要寫入NFS目錄,則歸組寫入(默認)  
no_wdelay               如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。  
hide                    在NFS共享目錄中不共享其子目錄  
no_hide                 共享NFS目錄的子目錄  
subtree_check           如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)  
no_subtree_check        和上面相對,不檢查父目錄權限  
all_squash              共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。  
no_all_squash           保留共享文件的UID和GID(默認)  
root_squash             root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)  
no_root_squash          root用戶具有根目錄的完全管理訪問權限  
anonuid=xxx          指定NFS服務器/etc/passwd文件中匿名用戶的UID  
anongid=xxx          指定NFS服務器/etc/passwd文件中匿名用戶的GID

# 3、保存退出后,通過exportfs命令重新加載共享文件列表/etc/exports,生效設置
exportfs -r
# 4、查看共享目錄
exports -v

# exportfs - 管理NFS共享文件系統列表
exportfs命令:
  -a     打開或取消所有目錄共享。
   -o     options,... 指定一列共享選項,與 exports(5) 中講到的類似。
   -i     忽略 /etc/exports 文件,從而只使用默認的和命令行指定的選項。
   -r     重新共享所有目錄。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。它將 /etc/exports 中已刪除的條目從 /var/lib/nfs/xtab 中刪除,將內核共享表中任何不再有效的條目移除。
   -u     取消一個或多個目錄的共享。
   -f     在“新”模式下,刷新內核共享表之外的任何東西。任何活動的客戶程序將在它們的下次請求中得到mountd 添加的新的共享條目。
   -v     輸出詳細信息。當共享或者取消共享時,顯示在做什么。顯示當前共享列表的時候,同時顯示共享的選項。

# 卸載所有共享
exportfs -au
# 重掛所有
exportfs -ar
4.2、客戶端掛載
# 1、使用showmount命令查看遠程NFS服務器共享目錄
showmount ip -e
# 2、新建掛載點
mkdir -p /opt/resources
# 3、掛載
mount -t nfs ip:/opt/resources/ /opt/resources/
# 4、設置開機掛載
vi /etc/rc.local
# 將掛載命令加入文件即可
mount -t nfs ip:/opt/resources/ /opt/resources/
# 5、驗證掛載
mount |grep "/opt/resources/"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM