檔案掛載 Network FileSystem(NFS)
測試環境
ubuntu 20.04.6
使用說明:
以下安裝設定步驟僅需在NFS Server 進行即可,掛載機僅需安裝NFS套件即可,這篇 檔案伺服器之一:NFS 伺服器 有NFS的詳細說明
若不成功 目前遇到兩個情況
- 在掛載前請先確認好節點上均已安裝 nfs 系統 否則mount會不成功
- 若掛載目錄不存在,也會造成失敗 請先記得要先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 # 可以查詢有你下進程正在使用