環境說明
CentOS 7(Minimal Install)
$ cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
本例演示環境如下
Name | IP Addr | Descprition |
---|---|---|
Server | 192.169.10.177 | 服務端 IP |
Client | 192.168.10.171 | 客戶端 IP |
Client | 192.168.10.172 | 客戶端 IP |
Client | 192.168.10.173 | 客戶端 IP |
根據官網說明 Chapter 8. Network File System (NFS) - Red Hat Customer Portal,CentOS 7.4 以後,支持 NFS v4.2 不需要 rpcbind 了,但是如果客戶端只支持 NFC v3 則需要 rpcbind 這個服務。
服務端
步驟 1: 服務端安裝
使用 yum 安裝 NFS 安裝包。
$ sudo yum install nfs-utils
注意
只安裝 nfs-utils 即可,rpcbind 屬於它的依賴,也會安裝上。
步驟 2: 服務端配置
設置 NFS 服務開機啓動
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs
啓動 NFS 服務
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs
防火牆需要打開 rpc-bind 和 nfs 的服務
$ sudo firewall-cmd --zone=public --permanent --add-service=rpc-bind
success
$ sudo firewall-cmd --zone=public --permanent --add-service=mountd
success
$ sudo firewall-cmd --zone=public --permanent --add-service=nfs
success
$ sudo firewall-cmd --reload
success
步驟 3: 配置共享目錄
服務啓動之後,我們在服務端配置一個共享目錄
$ sudo mkdir /data/nfs
$ sudo chmod 755 /data/nfs
根據這個目錄,相應配置導出目錄
$ sudo vi /etc/exports
添加如下配置
/data/nfs 192.168.10.0/24(rw,sync,no_root_squash,no_all_squash)
/data/nfs
: 共享目錄位置。192.168.0.10/24
: 客戶端 IP 範圍,*
代表所有,即沒有限制。rw
: 權限設置,可讀可寫。sync
: 同步共享目錄。no_root_squash
: 可以使用 root 授權。no_all_squash
: 可以使用普通用戶授權。
:wq
保存設置之後,重啓 NFS 服務。
$ sudo systemctl restart nfs
可以檢查一下本地的共享目錄
$ showmount -e localhost
Export list for localhost:
/data/nfs 192.168.10.0/24
這樣,服務端就配置好了,接下來配置客戶端,連接服務端,使用共享目錄。
客戶端
步驟 1: 客戶端安裝
與服務端類似
$ sudo yum install nfs-utils
步驟 2: 客戶端配置
設置 rpcbind 服務的開機啓動
$ sudo systemctl enable rpcbind
啓動 NFS 服務
$ sudo systemctl start rpcbind
注意
客戶端不需要打開防火牆,因爲客戶端時發出請求方,網絡能連接到服務端即可。
客戶端也不需要開啓 NFS 服務,因爲不共享目錄。
步驟 3: 客戶端連接 NFS
先查服務端的共享目錄
$ showmount -e 192.168.10.177
Export list for 192.168.10.177:
/data/nfs 192.168.10.0/24
在客戶端創建目錄
$ sudo mkdir /data/resources
掛載
$ sudo mount -t nfs 192.168.10.177:/data/nfs /data/resources
掛載之後,可以使用 mount
命令查看一下
$ mount
...
...
192.168.10.177:/data/nfs on /data/resources type nfs4 (rw,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.171,local_lock=none,addr=192.168.10.177)
這說明已經掛載成功了。
步驟 5: 測試 NFS
測試一下,在客戶端向共享目錄創建一個文件
$ cd /data/resources
$ sudo touch a
之後取 NFS 服務端 192.168.10.177
查看一下
$ cd /data/resources
$ ll
total 0
-rw-r--r-- 1 root root 0 Feb 25 2019 a
可以看到,共享目錄已經寫入了。
步驟 6: 客戶端自動掛載
自動掛載很常用,客戶端設置一下即可。
$ sudo vi /etc/fstab
在結尾添加類似如下配置
192.168.10.177:/data/nfs /data/resources nfs defaults 0 0
由於修改了 /etc/fstab
,需要重新加載 systemctl
。
$ sudo systemctl daemon-reload
之後查看一下
$ mount
...
...
192.168.0.177:/data/nfs on /data/resources type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.10.171,local_lock=none,addr=192.168.10.177)
此時已經啓動好了。如果實在不放心,可以重啓一下客戶端的操作系統,之後再查看一下。