NFS服務

問題1:linux

A機器上傳了一張圖片,結果B機器訪問的時候就提示404.

NFS,Network File System。網絡文件系統,即經過網絡,對在不一樣主機上的文件進行共享。數組

NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本,更新比較慢其實4.1是從2010年就開始使用了。服務器

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

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

兩臺機器:async

wangzb01(133) 做爲服務端 wangzb03(135) 做爲客戶端測試

在wangzb01上安裝:nfs-utils包ui

# yum install -y nfs-utils

在wangzb02上也安裝:nfs-utils包;code

# yum install -y nfs-utils

在wangzb01上,修改配置文件/etc/exports,寫入如下內容圖片

/home/nfstestdir 192.168.153.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

語句釋義:

/home/nfstestdir :共享的目錄
rw: 讀寫
ro: 只讀
sync: 同步模式,內存數據實時寫入磁盤
async :非同步模式
no_root_squash: 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大
root_squash: 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
all_squash:客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶
anonuid/anongid: 和上面幾個選項搭配使用,定義被限定用戶的uid和gid
192.168.153.0/24:爲客戶端的網段;

建立nfstestdir目錄,並給予777權限;

# mkdir /home/nfstestdir
# chmod 777 /home/nfstestdir/

開啓nfs服務,並監聽端口,端口111爲其默認端口;

# systemctl start nfs

設置開機啓動:

# systemctl enable nfs

查看服務端共享目錄:

# showmount -e 192.168.153.133

注意:假如沒有出現共享目錄,有下面可能,注意排查:

一、二者通訊問題;
二、把二者的防火牆關閉

掛載NFS

# mount -t nfs 192.168.153.133:/home/nfstestdir /mnt/

建立測試文件:

# cd /mnt/
# touch 111

exportps命令經常使用選項:

-a  所有掛載或者所有卸載
-r  從新掛載
-u  卸載某一個目錄
-v  顯示共享目錄

在服務端上:

# exportfs -arv

這樣就可讓服務器直接生效,不須要再次重啓nfs服務

編輯配置文件,增長一個共享的目錄

/home/nfstestdir 192.168.153.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/tmp/ 192.168.153.135(rw,sync,no_root_squash) //新增一個共享目錄,及其權限

用命令:exportfs -arv 直接生效,不用重啓NFS服務

問題:

若是使用NFS4版本,可能會有客戶端掛載NFS後,寫入新文件的屬主和數組都是nobody,即便咱們指定了anonuid anongid

解決:

客戶端在掛載的時候加個-o nfsvers=3

開機自動掛載

vi /etc/fstab

192.168.153.133:/data/wwwroot/bbs.aminglinux.cc/data  /data/wwwroot/bbs.aminglinux.cc/data  nfs  defaults,nfsvers=3 0 0
相關文章
相關標籤/搜索