1. 程式人生 > >NFS架構搭建及配置

NFS架構搭建及配置

NFS架構搭建及配置

第14章 NFS服務搭建與配置

14.1 NFS介紹

NFS(Network File System)即網絡文件系統,是FreeBSD支持的文件系統中的一種,它允許網絡中的計算機之間通過TCP/IP網絡共享資源。在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS服務器上的文件,就像訪問本地文件一樣。NFS的數據傳輸基於RPC(remote procedure call)協議。

應用場景

A,B,C三臺機器上需要被訪問到的文件是一樣的,A共享數據出來,B和C分別取掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致。

14.2 NFS服務端安裝配置

準備兩臺虛擬機,一臺作為服務端,一臺作為客戶端。

服務端

IP:192.168.8.130

安裝NFS工具:

[root@localhost ~]# yum install -y nfs-utils rpcbind
配置

[root@localhost ~]# vim /etc/exports
/home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
#指定要進行分享的目錄;指定要共享該目錄的機器

創建分享目錄並制定權限:
[root@localhost ~]# mkdir /home/nfstestdir
[root@localhost ~]# chmod 777 /home/nfstestdir

啟動NFS服務

在yum安裝完成後,系統會自動啟動rpcbind服務(在服務端進程名稱為systemd),默認監聽的端口時111端口。

[root@localhost ~]# systemctl start nfs

將NFS服務加入開機啟動項:
[root@localhost ~]# systemctl enable nfs
客戶端

IP:192.168.8.132

安裝NFS工具:

[root@centos-01linux ~]# yum install -y nfs-utils
客戶端掛載

檢查客戶端是否有權限訪問服務端文件:
[root@centos-01linux ~]# showmount -e 192.168.8.130

clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
報錯: 無法連接到服務端機器(網絡不通)!
解決辦法:

檢查服務端NFS服務是否開啟(監聽111端口)
如果確認服務端NFS服務已經開啟,那麽檢查防火墻狀態,關閉服務端和客戶端firewalld和SELinux防火墻
解決完上述錯誤後再次執行命令:

[root@centos-01linux ~]# showmount -e 192.168.8.130
Export list for 192.168.8.130:
/home/nfstestdir 192.168.8.0/24
即,客戶端可以正常訪問服務端機器。

開始掛載
[root@centos-01linux ~]# mount -t nfs 192.168.8.130:/home/nfstestdir /mnt/

[root@centos-01linux ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
192.168.8.130:/home/nfstestdir 18G 7.5G 11G 42% /mnt
測試

在客戶機掛載目錄創建文件:

[root@centos-01linux ~]# cd /mnt/
[root@centos-01linux mnt]# ll
總用量 0
-rw-r--r-- 1 mysql mysql 0 8月 23 19:50 test123
查看服務端共享目錄:

[root@localhost ~]# ll /home/nfstestdir/
總用量 0
-rw-r--r--. 1 mysql mysql 0 8月 23 19:50 test123
即,實現了同步共享!

14.3 NFS配置選項

[root@localhost ~]# vim /etc/exports
/home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
#指定要進行分享的目錄;指定要共享該目錄的機器
#rw 讀寫;ro 只讀
#sync 同步模式,內存數據實時寫入磁盤
#async 非同步模式
#no_root_squash 客戶端掛載NFS服務後,root用戶不受約束,權限很大
#root_squash 與上面選項相對,客戶端上的root用戶受到約束,被限定成某個普通用戶
#all_squash 客戶端上所有用戶在使用NFS共享目錄時都被限定為一個普通用戶
#anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
14.4 exportfs命令

exportfs命令用來管理當前NFS共享的文件系統列表。

Options:
-a:全部卸載或全部掛載
-r:重新掛載
-u:卸載某個目錄
-v:顯示共享目錄

常用組合: exportfs -arv
服務端更改配置文件後,不重啟服務,直接執行該命令就可以使更改後的配置文件生效。

註意: 在重啟nfs服務之前需要先將所有掛載點卸載,否則將發生程序錯誤,嚴重者會拖垮系統。

以上操作均在服務端進行!!!

14.5 NFS客戶端問題

針對NFS4版本在centos6中應用存在如下問題:
客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新文件時屬主、數組為nobody。

解決方法:

方法1:在客戶端進行掛載時加上選項-o nfsvers=3
[root@centos-01linux ~]# monunt -t nfs -o nfsvers=3 192.168.8.130:/tmp/ /mnt/
如果目錄已經掛載,而又不想卸載,執行如下命令:

[root@centos-01linux ~]# monunt -t nfs -o remount,nfsvers=3 192.168.8.130:/tmp/ /mnt/
方法2:客戶端和服務端都需要
[root@centos-01linux ~]# vim /etc/idmapd.conf
把該配置文件中的“Domain = local.domain.com”改為“Domain = xxx.com”(此處xxx.com自定義),然後重啟rpcidmapd服務(在centos7中直接重啟rpcbind服務)。

NFS架構搭建及配置