檔案掛載 Network FileSystem(NFS)

測試環境

ubuntu 20.04.6

使用說明:

以下安裝設定步驟僅需在NFS Server 進行即可,掛載機僅需安裝NFS套件即可,這篇 檔案伺服器之一:NFS 伺服器 有NFS的詳細說明

若不成功 目前遇到兩個情況

  1. 在掛載前請先確認好節點上均已安裝 nfs 系統 否則mount會不成功
  2. 若掛載目錄不存在,也會造成失敗 請先記得要先mkdir

文章下面有提供如何移除 mount


Step 1 Install NFS

Ubuntu

master 節點 apt-get install nfs-kernel-server

node 節點 apt-get install nfs-common

Step2 啟動 NFS/查看版本

systemctl start nfs-server

查看 nfs版本 cat /proc/fs/nfsd/versions

Step3 創建共享目錄/設定NFS

# 創建共享目錄 集群的檔案會統一存在這邊 
mkdir -p /data/nfs  
cd /data/nfs 
mkdir rw    
mkdir ro
# 設定NFS 目前僅設定 /data/nfs底下的圖片 
 
vim /etc/exports 
 
/data/nfs/rw {內網IP}/24(rw,sync,no_subtree_check,no_root_squash) 
/data/nfs/ro {內網IP}/24(ro,sync,no_subtree_check,no_root_squash) 
 
 
# 說明 
# ro/rw 參數 是nfs權限設置 ro 代表只讀 / rw代表讀寫 可以看業務情況進行掛載 
# 內網ip/24 -> 例如 10.1.1.0 則代表僅接受 10.1.1.* 網段  
 
 
# 重新加載 
exportfs -f 
systemctl reload nfs-server

Step 4 在其他節點上進行加載

! 請注意 需要安裝nfs套件 否則會加載失敗

mkdir -p {需加載的目錄} # 在掛載時請先注意是否有該目錄 否則會加載失敗 
 
mount -t nfs {內網ip}:/data/nfs/rw /mnt/nfs/rw 
 
# {內網ip}:/data/nfs/rw  -> 指定NFS Server 共享目錄 
# /mnt/nfs/rw -> 指定掛載機上面的掛載目錄,請注意須先創建該目錄 
 
 
# 如果有帳號密碼的nas 
mount -t nfs -o username=<username>,password=<password> <NFS_server_IP>:<NFS_shared_directory> <mount_point> 
mount -t nfs -o username="local-ec2",password="ji3g4gj94ek" 192.168.0.2:/nfs-only /data/var/nfs

結論

目前實測起來 當節點同時要對一個檔案 例如 echo test >> test 寫入檔案時, 會丟失一些數據,但mkdir 以及 touch 都是會同步寫入

移除掛載

mount | grep nfs  # 可先確認是否有掛載 
 
umount /data/exec/test # 掛載移除,這邊填入檔案目錄 
umount -f /data/exec/test # 若掛載失敗,則可以使用-f 強制移除 
 
# 若移除掛載失敗 
lsof /data/exec/test # 可以查詢有你下進程正在使用