NFS服務搭建

chunyang315發表於2018-04-28
  • 應用場景
    A、B、C三臺機器上需要保證被訪問到的檔案是一樣的,A機器共享資料出來,B和C機器別去掛載A機器共享的資料目錄,從而使B和C機器訪問到的資料和A機器上的一致。

  • 原理圖
    這裡寫圖片描述
    NFS不監聽任何埠,監聽埠實現TCP\IP通訊的是rpcbind。它監聽111埠。

NFS服務端安裝配置

(1)在服務端機器上安裝軟體包nfs-utils,會將rpcbind一併安裝上

yum  install -y  nfs-utils  

(2)在/etc/exports中新增需要共享的目錄資訊

/home/zcylinux
192.168.244/0(rw,sync,all_squash,anonuid=1001,anongiu=1001)

第一段是要共享出去的目錄
第二段是指定與哪個(些)機器共享上面的目錄,並設定它的選項

(3)儲存退出後,給予共享目錄777許可權

chmod 777  /home/zcylinux

(4) 預設安裝完nfs-utils,會預設開啟rpcbind服務,在centos7中檢視發現它監聽111埠,後面為systemd,並無影響

tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd 

(5)啟動NFS

systemctl start nfs 

啟動nfs後,會自動開啟一些rpc服務(rpcbind相關的一些服務。例如

root      11481  0.0  0.0  19320   400 ?        Ss   22:08   0:00 /usr/sbin/rpc.idmapd 
root      11487  0.0  0.0  42564   948 ?        Ss   22:08   0:00 /usr/sbin/rpc.mountd
rpcuser   11482  0.1  0.0  42376  1760 ?        Ss   22:08   0:00 /usr/sbin/rpc.statd

在客戶端上沒有這些相關服務的

(6)設定為開機啟動

systemctl enable  nfs

(7)關於NFS掛載選項的解釋
這裡寫圖片描述

客戶端掛載

(1)安裝軟體包

yum install -y nfs-utils

(2)檢視本機是否對共享目錄有許可權

 [root@localhost ~]# showmount -e 192.168.244.139
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

該IP為服務端IP。這裡提示錯誤網路不通,原因有二點:1. 對方服務為開啟.
2 . 防火牆導致

(3)2臺機器都關閉防火牆,並關閉selinux

systemctl stop firewalld

setenforce 0  //臨時關閉selinux

這是就可以看到共享的目錄了

(4)掛載共享目錄

mount -t nfs   192.168.244.139:/home/zcylinx   /mnt/

再使用df -h就可以看到共享的目錄。


exportfs命令

  1. 該命令是與nfs-utils軟體包一起安裝的,它的作用是當服務端進行比如新增共享目錄後,不用重啟nfs服務,配置檔案生效,客戶端不受影響。如果當客戶端正在對共享目錄進行讀寫時,關閉服務端的NFS服務,會造成客戶端程式異常(殭屍程式)。nfs服務不能隨便重啟,如果服務端需要重啟需要在客戶端上解除安裝共享目錄後,才可以進行重啟。

  2. exportfs命令可以幫助我們解決多臺客戶端逐流解除安裝的繁瑣。

  3. 常用選項
    (1 -a 全部掛載或全部解除安裝
    (2 -r 重新掛載
    (3 -u 解除安裝某一個目錄
    (4 -v 顯示共享目錄
    常用方式
exportfs  -arv  /服務端執行

NFS客戶端問題題

  1. 在centos6以及之前的版本中,可能會出現客戶端檔案屬主屬組nobody。該問題針對NFS 4版本
  2. 客戶端掛載共享目錄後,不管是誰建立的檔案屬主屬組都是nobody
  3. 可以在客戶端掛載時,使用-o選項來指定nfs服務的版本為3
mount -t nfs -o nfsvers=3    192.168.244.139:/home/zcylinux  /mnt/  //初次掛載
mount -t nfs -oremount,nfsvers=3 192.168.244.139:/home/zcylinux  /mnt/    //再次掛載

4 另一種方法是編輯/etc/idmapd.conf——2臺機器都需要

#Domain = local.domain.edu修改為Domain = xxx.com(自定義)

然後再重啟rpcbind服務

相關文章