天天看點

Linux下網絡共享存儲搭建與配置

Linux下網絡共享存儲搭建與配置

NFS服務搭建

介紹

NFS(Network File System)即網絡檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的用戶端應用可以透明地讀寫位于遠端NFS伺服器上的檔案,就像通路本地檔案一樣

NFS服務安裝

要設定好 NFS 伺服器我們必須要有兩個軟體才行,分别是:

  • RPC 主程式:rpcbind

就如同剛剛提的到,我們的 NFS 其實可以被視為一個 RPC 服務,而要啟動任何一個 RPC 服務之前,我們都需要做好 port 的對應 (mapping) 的工作才行,這個工作其實就是 rpcbind這個服務所負責的!也就是說, 在啟動任何一個 RPC 服務之前,我們都需要啟動 rpcbind 才行!

  • NFS 主程式:nfs-utils

就是提供 rpc.nfsd 及 rpc.mountd 這兩個 NFS Daemons 與其他相關 Documents 與說明檔案、執行檔案等的軟體!這個就是 NFS 服務所需要的主要軟體啦!

檢視系統是否已安裝NFS

[15:48:53 [email protected] ~]#rpm -qa|grep nfs
[15:58:06 [email protected] ~]#rpm -qa|grep rpcbind
[15:58:14 [email protected] ~]#           

安裝NFS服務

[15:58:14 [email protected] ~]#yum -y install nfs-utils rpcbind
[15:59:05 [email protected] ~]#rpm -qa|grep nfs
nfs-utils-1.3.0-0.68.el7.x86_64
libnfsidmap-0.25-19.el7.x86_64
[15:59:48 [email protected] ~]#rpm -qa|grep rpcbind
rpcbind-0.2.0-49.el7.x86_64           

NFS服務端配置

  • 主要配置檔案:/etc/exports
  • NFS檔案系統維護指令:/usr/sbin/exportfs
  • 分享資源的登入檔:/var/lib/nfs/*tab
  • 用戶端查詢伺服器分享資源的指令:/usr/sbin/showmount

編輯配置檔案 /etc/exports

[16:12:59 [email protected] /data/k8s_nfs]#pwd
/data/k8s_nfs
[16:13:00 [email protected] /data/k8s_nfs]#vim /etc/exports
/data/k8s_nfs 192.168.82.0/24(rw,no_root_squash,no_all_squash,sync)           

配置介紹

參數 内容說明
rw/ro 該目錄分享的權限是可擦寫 (read-write) 或隻讀 (read-only),但最終能不能讀寫,還是與檔案系統的 rwx 及身份有關
sync/async sync 代表資料會同步寫入到記憶體與硬碟中,async 則代表資料會先暫存于記憶體當中,而非直接寫入硬碟!
no_root_squash/  root_squash 用戶端使用 NFS 檔案系統的賬号若為 root 時,系統該如何判斷這個賬号的身份?預設的情況下,用戶端 root 的身份會由 root_squash 的設定壓縮成 nfsnobody, 如此對伺服器的系統會較有保障。但如果你想要開放用戶端使用 root 身份來操作伺服器的檔案系統,那麼這裡就得要開 no_root_squash 才行!
all_squash 不論登入 NFS 的使用者身份為何, 他的身份都會被壓縮成為匿名使用者,通常也就是 nobody(nfsnobody) 啦!

使配置生效

[16:14:57 [email protected] /data/k8s_nfs]#exportfs -r           

啟動rpcbind、nfs服務

[16:24:05 [email protected] /data/k8s_nfs]#systemctl start rpcbind
[16:24:12 [email protected] /data/k8s_nfs]#systemctl start nfs
[16:24:19 [email protected] /data/k8s_nfs]#systemctl enable rpcbind
[16:24:29 [email protected] /data/k8s_nfs]#systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.           

檢視NFS所共享的目錄

[16:25:12 [email protected] /data/k8s_nfs]#showmount -e localhost
Export list for localhost:
/data/k8s_nfs 192.168.82.0/24           

去用戶端伺服器上挂載

[16:08:43 root@mq1 ~]#mkdir /sharenfs
[16:08:54 root@mq1 ~]#mount -t nfs 192.168.81.183:/data/k8s_nfs /sharenfs/
mount: 檔案系統類型錯誤、選項錯誤、192.168.81.183:/data/k8s_nfs 上有壞超級塊、
       缺少代碼頁或助手程式,或其他錯誤
       (對某些檔案系統(如 nfs、cifs) 您可能需要
       一款 /sbin/mount.<類型> 助手程式)

       有些情況下在 syslog 中可以找到一些有用資訊- 請嘗試
       dmesg | tail  這樣的指令看看。           

遇到這個問題說明用戶端伺服器上沒有安裝nfs-utils

[16:08:13 root@mq1 ~]#rpm -qa|grep nfs
[16:09:23 root@mq1 ~]#yum -y install nfs-utils
[16:13:38 root@mq1 ~]#mount -t nfs 192.168.81.183:/data/k8s_nfs /sharenfs/
[16:13:41 root@mq1 ~]#df -h
檔案系統                      容量  已用  可用 已用% 挂載點
/dev/mapper/cl-root            46G   26G   20G   58% /
/dev/sda3                      50G   15G   32G   32% /data
192.168.81.183:/data/k8s_nfs  443G  8.8G  412G    3% /sharenfs           

繼續閱讀