1. 程式人生 > >NFS服務搭建與配置

NFS服務搭建與配置

linux

NFS服務搭建與配置:

NFS介紹

NFS是Network File System的縮寫;NFS最早由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發;

NFS數據傳輸基於RPC協議,RPC為Remote Procedure Call的簡寫。

NFS應用場景是:A,B,C三臺機器上需要保證被訪問到的文件是一樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致

NFS原理圖:

技術分享圖片

NFS服務器安裝配置

yum install -y nfs-utils rpcbind

vim /etc/exports //加入如下內容

/home/nnfsshare 192.168.159.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

保存配置文件後,執行如下準備操作

mkdir /home/nfsshare //創建上面設置的共享目錄

chmod 777 /home/nfsshare //修改權限

systemctl start rpcbind //啟動rpcbind服務

systemctl start nfs //啟動nfs,註意啟動順序別亂了,是先啟動rpcbind服務,在啟動nfs

systemctl enable rpcbind //把rpcbind服務設置開機啟動

systemctl enable nfs //設置開機啟動

NFS配置選項

rw 讀寫

ro 只讀

sync 同步模式,內存數據實時寫入磁盤

async 非同步模式

no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大

root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶

all_squash 客戶端上所有用戶在使用NFS共享目錄時都被限定為一個普通用戶

anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的uid和gid

NFS客戶端使用:

yum install -y nfs-utils

showmount -e 192.168.159.131 //該ip為NFS服務端ip

技術分享圖片

若出現上如的錯誤,排查思路:①在服務端執行showmount -e看看,有沒有顯示共享的目錄;如果沒有,可能可能是你啟動rpcbind和nfs順序錯了;②檢查服務端和客戶端的iptables,最簡單的是臨時使用iptables -F 清空規則就可。

mount -t nfs 192.168.159.131:/home/nfsshare /mnt

df -h

touch /mnt/linux.txt

ls -l /mnt/linux.txt //可以看到文件的屬主和屬組都為1000

技術分享圖片

exportfs命令:實現不重啟nfs動態更新

常用選項

-a 全部掛載或者全部卸載

-r 重新掛載

-u 卸載某一個目錄

-v 顯示共享目錄

以下操作在服務端上:

vim /etc/exports //增加

/tmp/ 192.168.159.0/24(rw,sync,no_root_squash)

exportfs -arv //不用重啟nfs服務,配置文件就會生效

以下操作在客戶端:

mkdir test

mount -t nfs -onolock 192.168.133.130:/tmp test

touch /test/1.txt

ls -l !$

技術分享圖片

NFS客戶端問題

NFS 4版本會有該問題

客戶端掛載共享目錄後,不管是root用戶還是普通用戶,創建新文件時屬主、屬組為nobody

客戶端掛載時加上 -o nfsvers=3

客戶端和服務端都需要

vim /etc/idmapd.conf //

把“#Domain = local.domain.edu” 改為 “Domain = xxx.com” (這裏的xxx.com,隨意定義吧),然後再重啟rpcidmapd服務


NFS服務搭建與配置