1. 程式人生 > >紅帽7 NFS(網路檔案系統)

紅帽7 NFS(網路檔案系統)

NFS(網路檔案系統)服務可以將遠端 Linux 系統上的檔案共享資源掛載到本地主機的目錄上,從而使得本地主機(Linux 客戶端)基於 TCP/IP 協議,像使用本地主機上的資源那樣讀寫遠端 Linux 系統上的共享檔案, RHEL 7 系統中預設已經安裝了 NFS 服務。

第一步:為了檢驗 NFS 服務配置的效果,我們需要使用兩臺 Linux 主機(一臺充當 NFS伺服器,一臺充當 NFS 客戶端)

兩臺 Linux 主機所使用的作業系統以及 IP 地址

主機名稱 作業系統     IP地址
NFS 伺服器 RHEL 7
192.168.10.10
NFS 客戶端 RHEL 7 192.168.10.20

 

 

 

 

清空 NFS 伺服器上面 iptables 防火牆的預設策略,以免預設的防火牆策略禁止正常的 NFS 共享服務。

[[email protected] ~]# iptables -F
[[email protected] ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

第二步:在 NFS 伺服器上建立用於 NFS 檔案共享的目錄,並設定足夠的許可權確保其他人也有寫入許可權。

[[email protected] ~]# mkdir /database
[[email protected] ~]# echo "hello world" > /database/readme.txt
[[email protected] ~]# chmod -Rf 777 /database/readme.txt 

第三步:NFS 服務程式的配置檔案為/etc/exports,預設情況下里面沒有任何內容。我們可以按照“共享目錄的路徑 允許訪問的 NFS 客戶端(共享許可權引數)”的格式,定義要共享的目錄與相應的許可權。

例如,如果想要把 /database 目錄共享給 192.168.10.0/24 網段內的所有主機,讓這些主機都擁有讀寫許可權,在將資料寫入到 NFS 伺服器的硬碟中後才會結束操作,最大限度保證資料不丟失,以及把來訪客戶端 root 管理員對映為本地的匿名使用者等

用於配置 NFS 服務程式配置檔案的引數

引數 作用
ro 只讀
rw 讀寫
root_squash 當NFS客戶端以root管理員訪問時,對映為NFS伺服器的匿名使用者
no_root_squash 當NFS客戶端以root管理員訪問時,對映為NFS伺服器的root管理員
all_squash 無論NFS客戶端使用什麼賬戶訪問,均對映為NFS伺服器的匿名使用者
sync 同時將資料寫入到記憶體與硬碟中,保證不丟失資料
async 優先將資料儲存到記憶體,然後再寫入硬碟;這樣效率更高,但可能會丟失資料

 

 

 

 

 

 

 

 

 

 

[[email protected] ~]# vim /etc/exports
/database 192.168.10.*(rw,sync,root_squash)

第四步:啟動和啟用 NFS 服務程式。紅帽5或6裡面需要使用 RPC(Remote Procedure Call,遠端過程呼叫)服務將 NFS 伺服器的 IP 地址和埠號等資訊傳送給客戶端。因此,在啟動 NFS 服務之前,還需要順帶重啟並啟用 rpcbind 服務程式,紅帽7不需要。

[[email protected] ~]# systemctl restart nfs-server
[[email protected] ~]# systemctl enable nfs-server
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'

NFS 客戶端的配置,先使用 showmount 命令查詢 NFS 伺服器的遠端共享資訊,其輸出格式為“共享的目錄名稱 允許使用客戶端地址”。

showmount 命令中可用的引數以及作用

引數 作用
-e 顯示NFS伺服器的共享列表
-a 顯示本機掛載的檔案資源的情況NFS資源的情況
-v 顯示版本號

 

 

 

 

 

 

 

[[email protected] Desktop]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/database 192.168.10.*

然後在 NFS 客戶端建立一個掛載目錄。

[[email protected] Desktop]# mkdir /database
[[email protected] Desktop]# vim /etc/fstab # # /etc/fstab # Created by anaconda on Tue Oct 2 18:32:33 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/rhel-root / xfs defaults 1 1 UUID=e4edf9ea-99aa-4c91-8c9b-c13549216c84 /boot xfs defaults 1 2 /dev/mapper/rhel-swap swap swap defaults 0 0 192.168.10.10:/database /database nfs defaults 0 0
[[email protected] Desktop]# mount -a
[[email protected] Desktop]# cd /database/
[[email protected] database]# ls
readme.txt