天天看點

Linux實作NFS

作業系統是CentOS6.5

1.首先需要兩個虛拟機,一個作為服務端,一個作為用戶端,分别使用下列指令檢查用戶端和服務端是否安裝了nfs和rpc相關的包

Linux實作NFS
92C4C101-23A2-44EF-93B6-5D779EE410CD.png

如果沒有安裝,請執行下列指令安裝

Linux實作NFS
89D270DF-1A91-4D64-A954-82933088CAFA.png

使用下列指令可以檢視是否安裝成功,安裝成功了會像下面這樣顯示

Linux實作NFS
image.png

2.在服務端配置nfs的固定端口,友善于之後配置防火牆規則,當然你也可以跳過這一步,選擇關閉防火牆,但是這樣安全性不高

使用vim打開/etc/sysconfig/nfs 檔案,在底部添加如下配置

Linux實作NFS

然後儲存退出

3.配置服務端需要挂着的目錄,使用vim打開/etc/exports檔案,按照如下規則配置

Linux實作NFS

/mnt是我要挂着到用戶端的目錄

192.168.1.107是我用戶端的ip位址,你也可以寫成一個網絡位址如192.168.1.0/24,這樣在這個網絡下的主機都能挂載,如果寫的是*,那麼所有主機都可以遠端挂着這個目錄

括号裡的參數有很多

rw:具有讀寫權限

sync:資料同步寫入磁盤和記憶體

o:隻讀權限

no_root_squash:登入nfs主機時,擁有共享目錄所有者權限

root_squash:登入nfs主機時,擁有共享目錄所有者權限,但如果共享目錄的擁有者時root使用者,那麼登入者權限為nobody權限

all_squash:登入nfs主機時,擁有nobody使用者權限

anonuid:指定使用者id

anongid:指定群id

async:資料先存記憶體,再存硬碟

no_subtree_check:不檢查父檔案夾權限

subtree:檢查父檔案權限

secure:限制client port(<1024)

4.啟動伺服器端服務

首先啟動rpcbind

Linux實作NFS

啟動nfs

Linux實作NFS

5.接下來在服務端添加防火牆規則,這裡是我的采坑經曆,首先使用指令

rpcinfo -p檢視需要配置防火牆規則的端口

Linux實作NFS

使用vim打開/etc/sysconfig/iptables進行配置,如下圖

Linux實作NFS

這裡我的了解是千萬要按順序進行添加,意思就是每一行後面是ACCEPT的要接連在一起,千萬不要被REJECT、FORWARD這樣的行隔開,不然配置是無效的,具體原因我還不清楚,等我去找資料再來說清楚。

6.重新開機防火牆配置

service iptables restart

Linux實作NFS

7.伺服器端事情做完了,接下來用戶端挂載就行,輸入下列指令實作挂載

Linux實作NFS

這樣我們已經成功挂載了,能看到伺服器端的檔案了

挂載參數的含義如下:

(1)-a:把/etc/fstab中列出的路徑全部挂載。

(2)-t:需要mount的類型,如nfs等。

(3)-r:将mount的路徑定為read only。

(4)-v mount:過程的每一個操作都有message傳回到螢幕上。

(5)rsize=n:在NFS伺服器讀取檔案時NFS使用的位元組數,預設值是4096個位元組。

(6)wsize=n:向NFS伺服器寫檔案時NFS使用的位元組數,預設值是4096個位元組。

(7)timeo=n:從逾時後到第1次重新傳送占用的1/7秒的數目,預設值是7/7秒。

(8)retry=n:在放棄背景mount操作之前可以嘗試的次數,預設值是7 000次。

(9)soft:使用軟挂載的方式挂載系統,若Client的請求得不到回應,則重新請求并傳回錯誤資訊。

(10)hard:使用硬挂載的方式挂載系統,該值是預設值,重複請求直到NFS伺服器回應。

(11)intr:允許NFS中斷檔案操作和向調用它的程式傳回值,預設不允許檔案操作被中斷。

(12)fg:一直在提示符下執行重複挂載。

(13)bg:如果第1次挂載檔案系統失敗,繼續在背景嘗試執行挂載,預設值是失敗後不在背景處理。

(14)tcp:對檔案系統的挂載使用TCP,而不是預設的UDP。

繼續閱讀