NFS(Network File System),即網絡文件系統。NFS服務可以將遠程Linux系統上的文件共享資源掛載到本地主機的目錄上,從而使用本地主機(Linux客戶端)像使用本地資源那樣讀寫遠程Linux系統上的共享資源。
表1:系統環境
主機名稱 | 操作系統 | IP地址 |
---|---|---|
NFS服務器 | Centos 7 64位 | 192.168.2.211 |
NFS客戶端 | Centos 7 64位 | 192.168.2.223 |
表2:NFS服務配置文件的參數
參數 | 作用 |
---|---|
ro | 只讀 |
rw | 讀寫 |
root_squash | 當NFS客戶端以root管理員訪問時,映射爲NFS服務器的匿名用戶 |
no_root_squash | 當NFS客戶端以root管理員訪問時,映射爲NFS服務器的root管理員 |
all_squash | 無論NFS客戶端使用什麼賬戶訪問,均映射爲NFS服務器的匿名用戶 |
sync | 同時將數據寫入到內存與硬盤中,保證不丟失數據 |
async | 優先將數據寫入到內存,然後再寫入硬盤;這樣效率更高,但可能會丟失數據 |
NFS服務器操作
1、安裝NFSyum -y install nfs-utils
2、創建用於NFS共享的目錄
mkdir /nfsdata
chown -R nfsnobody /nfsdata/
3、編輯NFS的配置文件,添加如下內容
注:NFS的配置文件默認是沒有內容的vim /etc/exports
/nfsdata 192.168.2.*(rw,sync,root_squash)
4、啓動NFS服務,並加入開機啓動項
NFS服務需要使用RPC(Remote Procedure Call,遠程過程調用)服務將NFS服務器的IP地址和端口號等信息發送給客戶端,因此,在啓動NFS服務之前,還需要順帶啓動rpcbind服務。
systemctl start rpcbind
systemctl enable rpcbind
systemctl start nfs-server
systemctl enable nfs-server
5、查看nfs向rpc註冊的端口信息rpcinfo -p localhost
注:下圖中用紅框括起來的端口號需要防火牆允許
6、配置firewalld防火牆,允許nfs和rpc端口
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --add-port=111/udp
firewall-cmd --reload
NFS客戶端操作
1、使用showmount命令查詢NFS服務器的遠程共享信息
表3:showmount命令可用的參數以及作用
參數 | 作用 |
---|---|
-e | 顯示NFS服務器的共享列表 |
-a | 顯示本機掛載的文件資源的情況 |
-v | 顯示版本號 |
showmount -e 192.168.2.211
2、創建掛載目錄,並掛載
mkdir /nfsdata
mount -t nfs 192.168.2.211:/nfsdata /nfsdata
3、將掛載信息寫入/etc/fstab文件中,以便開機自動掛載vim /etc/fstab
192.168.2.211:/nfsdata /nfsdata nfs defaults 0 0
4、測試
往/nfsdata目錄下寫入一個文件echo "welcome to xuad.com" > /nfsdata/xuad.txt
在NFS服務器上查看/nfsdata目錄下是否生成了此文件