1. 程式人生 > >linux 網路檔案系統NFS伺服器配置

linux 網路檔案系統NFS伺服器配置

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

1.配置NFS伺服器,先安裝兩個必要的軟體包,通常是預設安裝的

yum install nfs-utils rpcbind

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

伺服器:ip:192.168.49.152 作業系統:centos7

客戶端:ip:192.168.49.150 作業系統:centos 7

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

iptables -F
service iptables save

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

mkdir /nfsshare
chmod -Rf 777 /nfsshare
echo "hello world" > /nfsshare/readme

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

例如,如果想要把/nfsshare目錄共享給192.168.49.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

優先將資料儲存到記憶體,然後再寫入硬碟;這樣效率更高,但可能會丟失資料

請注意,NFS客戶端地址與許可權之間沒有空格

vim /etc/exports

寫在檔案中的內容(注意格式一定要寫對,不然會導致最後一步操作出錯,最好不要寫在第一行,我自己就一直報錯寫第一行)

/nfsshare 192.168.49.*(rw,sync,root_squash)

5.啟動和啟用NFS服務程式。由於在使用NFS服務進行檔案共享之前,需要使用RPCRemote Procedure Call,遠端過程呼叫)服務將NFS伺服器的IP地址和埠號等資訊傳送給客戶端。因此,在啟動NFS服務之前,還需要順帶重啟並啟用rpcbind服務程式,並將這兩個服務一併加入開機啟動項中(有順序要求)

systemctl restart rpcbind
systemctl enable rpcbind 
systemctl start nfs-server
systemctl enable nfs-server

6.NFS客戶端的配置步驟也十分簡單。先使用showmount命令(以及必要的引數)查詢NFS伺服器的遠端共享資訊,其輸出格式為“共享的目錄名稱 允許使用客戶端地址“

引數 說明
-e

顯示NFS伺服器的共享列表

-a

顯示本機掛載的檔案資源的情況

-v

顯示版本號

 

 

7.然後在NFS客戶端建立一個掛載目錄(注意給讀寫許可權)。使用mount命令並結合-t引數,指定要掛載的檔案系統的型別,並在命令後面寫上伺服器的IP地址、伺服器上的共享目錄以及要掛載到本地系統(即客戶端)的目錄。(成功掛載啦,這是寫在第二行的規則,寫第一行的就是不行,改在後面寫就行。。)

解除安裝NFS檔案系統:umount /nfsshare(地址為本機掛載點)

8.在啟動時掛載NFS檔案系統,可以編輯/etc/fstabw那件。例如:

vim /etc/fstab

192.168.49.152:/nfsshare /nfsshare nfs hard,intr 0 0(編輯檔案中新增內容內容)



之後
reboot(重啟)

成功。