NFS服務搭建與配置linux
NFS介紹vim
NFS服務須要藉助RPC協議實現通訊網絡
NFS是NetworkFileSystem的縮寫架構
1.NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4,0開始Netapp公司與並主導開發,最新爲4.1版本app
2.NFS數據傳輸基於RPC協議,RPC爲RemoteProcedureCall的簡寫。dom
3.NFS應用場景是:A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致async
NFS架構
ide
NFS原理圖測試
rpcbind監聽的是111端口ui
NFS服務端安裝配置
首先要準備兩臺機器,一個做爲它的服務端AAA-01一個做爲他的客戶端BBB-01。
第一步,在客戶端和服務端上安裝兩個包:yum install -y nfs-utils rpcbind
第二步,在服務端AAA-01編輯配置文件:vim /etc/exports //加入以下內容:
/home/nfstestdir 192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/home/nfstestdir 意思是你要分享出去的目錄,這個目錄是不存在的,你須要建立它;
192.168.133.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)意思是指定你要跟哪臺機器去分享共享這個目錄他的IP段,小括號裏邊的選項下邊有解釋。
保存配置文件後,執行以下準備操做
建立目錄:mkdir /home/nfstestdir
更改目錄權限:chmod 777 /home/nfstestdir
查看一下監聽端口:netstat -lntp 你會發現rpcbind(111)端口已經啓動了
啓動rpcbind端口:systemctl start rpcbind 通常安裝完以後他自動就會起來
啓動NFS服務:systemctl start nfs
查看一下:ps aux |grep nfs
rpcbind開機自啓:systemctl enable rpcbind 取消:systemctl disable rpcbind
nfs開機自啓命令:systemctl enable nfs 取消:systemctl disable rpcbind
客戶端掛載BBB-01
yum install -y nfs-utils
假若有一臺機器他作了nfs的服務,我想查看我到底有沒有權限,用命令:
showmount -e 192.168.133.130 //該ip爲NFS服務端ip,
他報錯了,意思是網絡不通。這時候你要排查,基本上有兩種緣由,一是服務端沒有監聽111端口,二是兩邊的防火牆沒有關閉
查看他監聽着111端口,很顯然他是由於防火牆的緣由
關閉客戶端、服務端兩端的防火牆:systemctl stop firewalld 關閉兩端的selinxu:setenforce 0
作完以上操做後在:showmount -e 192.168.133.130 這時就能看到他共享的目錄是home,後邊是共享給那些機器他的IP段
如今就能夠掛載了,-t指定類型是nfs,而後是遠程的IP以及共享的目錄,掛載到mnt目錄下
mount -t nfs 192.168.133.130:/home/nfstestdir /mnt
查看一下:df -h
進到這個目錄下:cd /mnt/
去建立一個文件:touch /mnt/aminglinux.111
ls -l /mnt/aminglinux.111 //能夠看到文件的屬主和屬組都爲1000
你能夠看看服務端,他的id也是100,這是由於你限定了用戶
NFS掛載選項
1.rw寫
2.ro只讀
3.sync同步模式,內存數據實時寫入磁盤;他能很快的寫入到磁盤裏去,相應的她會下降磁盤的效率
4.async非同步模式,每隔一段時間寫一次數據;好處是能提升磁盤的效率,缺點萬一斷電會丟失一部分數據
5.noroot-squash客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大
6.root-squash與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
7.all-squash客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶
8.anonuid/anongid和上面幾個選項搭配使用,定義被限定用戶的uid和gid
exportfs命令
經常使用選項
-a 所有掛載或者所有卸載
-r 從新掛載
-u 卸載某一個目錄
-v 顯示共享目錄
如下操做在服務端上
先掛載mut目錄,這種狀況兩種解決辦法:一是退出來在umount,二是umount -l /mut -l懶漢模式
exportfs -arv //不用重啓nfs服務,配置文件就會生效
測試一下:
編輯配置文件:vim /etc/exports //增長
/tmp/ 192.168.65.136/24(rw,sync,no_root_squash)把tmp單獨共享給一個IP,再也不限制root用戶
exportfs -arv //不用重啓nfs服務,配置文件就會生效
在客戶端上測試下,並無重啓nfs服務他也生效了
NFS客戶端問題
客戶端文件屬主屬組nobody,NFS 4版本會有該問題
問題1.客戶端掛載共享目錄後,無論是root用戶仍是普通用戶,建立新文件時屬主、屬組爲nobody
解決辦法1:客戶端掛載時加上-o nfsvers=3
客戶端和服務端都須要
解決方法2:編輯配置文件Vim /etc/idmapd.conf
把"#Domain=local.domain.edu"改成"Domain=xxx.com"(這裏的xxx.com,隨意定義吧),而後再重rpcidmapd服務沒有這個服務啓動rpcbind服務就行