天天看點

NFS+AUTOFS 實驗

NFS (network file system) 網絡檔案系統

可以快速進行檔案共享,友善集中管理

NFS 并不是監聽在固定端口,而是随機采用一些未被使用并且小于 1024 的端口,中間通過 RPC 協調實作互聯. 而 RPC 工作在 tcp udp 的 111 端口.

可以通過 # rpcinfo –p localhost 檢視 //rpcbind 的守護程序 //NFS 的守護程序 //NFS mountd 守護程序

AUTOFS

當用戶端和伺服器端連接配接後,任何一方離線都可能導緻另一方在不斷等待,消耗 NFS 伺服器的資源

使用 autofs 就可以避免這類問題,讓使用者僅在通路時能夠動态挂載目錄

試驗環境   CentOS版本為 6.7

兩台虛拟主機即可,關閉防火牆\SElinx,互相能ping通

本人使用的是 vmvare workstation11 . 之前一直沒用克隆選項,沒想到在11中關閉虛拟機完成克隆後不需要做任何更改.

假如原來的主機網卡為eth0.  那麼克隆後的主機網卡則為eth1. 兩台主機的 MAC 位址也不一樣. 真是友善  (木哈哈哈哈)

1)  NFS SERVER : 192.168.0.28

2)  NFS CLIENT : 192.168.0.30

首先配置 NFS SERVER

[root@beiyong2 ~]# rpm -qa nfs-utils rpcbind      

nfs-utils-1.2.3-26.el6.x86_64          # NFS 服務主程式     

rpcbind-0.2.0-9.el6.x86_64             # Centos6.X 下為 RPC 主程式  ( Centos5.X下為 portmap )

↑ # 在 CentOS 6x 桌面版中,預設已經安裝了 NFS 服務

[root@beiyong2 ~]# mkdir /shared    

[root@beiyong2 ~]# cp /etc/fstab /shared

↑ # 在 / 目錄下建立 shared 目錄,作為将要共享出去的目錄,複制一個檔案,友善後面測試是否能夠成功

[root@beiyong2 ~]# /etc/init.d/rpcbind start      

[root@beiyong2 ~]# /etc/init.d/nfs start

↑ # 要想啟動 NFS 服務需要啟動 rpcbind 服務和 NFS 服務.由于 NFS 在啟動時需要進行端口注冊,是以需要注意啟動程式 先啟動 rpcbind 在啟動 nfs     

接下來開始配置 /etc/exports 配置檔案. 該檔案為 NFS 的主要配置檔案,但是需要自行建立,手工進行編輯

exports 檔案的編輯格式如下

共享目錄     [用戶端1](選項1,選項2,......)        [用戶端2](選項1,選項2,.....)

/shared      192.168.0.0/24(ro)         

↑ # 實驗中我的 /etc/exports 内容. 表示共享目錄的名稱為 /shared   192.168.0.0 中的所有主機可以通路,權限為 隻讀

該實驗中可以通路我的用戶端為 192.168.0.0 中所有主機,但也支援主機名與通配符 "*" "?"

用戶端位址設定

example                          表示主機名為 example 的主機可以通路

host?.example.com     ?表示為任意一個字元

*.example.com             表示為 example.com 域中的所有主機均可以通路

*                        表示為所有主機均可以通路

選項設定

ro     用戶端隻能以隻讀的方式共享目錄中的檔案

rw    用戶端對目錄可讀寫

sync       資料同步寫記憶體與磁盤.效率低

async     異步 IO 方式,資料先存入記憶體,需要時寫入磁盤.效率高,風險大

在将 /etc/exports 檔案儲存退出後可以重新開機 nfs 服務 (service nfs restart)

[root@beiyong2 ~]# exportfs –rv       (也可以使用 /etc/init.d/nfs reload)

↑ # 平滑加載 , 不影響客戶也不用重新開機

[root@beiyong2 ~]# showmount -e 192.168.0.28

Export list for 192.168.0.28:

/shared 192.168.0.0/24   

到此為止 , NFS 伺服器端的配置已經完畢 , 通過 showmount 指令得知該伺服器共享的目錄

以下是幾個常用指令總結 :

[root@beiyong2 ~]# /etc/init.d/rpcbind status           #檢查 rpcbind 服務是否在運作     

rpcbind (pid  5798) is running...

exportfs 指令              -rv : 重新輸出 , 不用重新開機       -au : 取消全部輸出     

          -a : 全部輸出或取消全部輸出所有的共享目錄

          -i : 忽略 /etc/exports 配置檔案 , 而使用預設或指令行中指定的選項

          -r : 重新讀取 /etc/exports 中的配置

          -u : 取消一個或多個共享目錄的輸出

          -v : 單獨使用時顯示共享目錄以及現象設定,組合使用時為顯示了進行哪些操作

showmount 指令

格式 : showmount    [選項]    [主機或 IP 或名稱]

          -a : 顯示已經挂載了伺服器共享目錄的用戶端及他們所使用的共享目錄

          -e : 顯示指定 NFS 伺服器輸出的共享目錄清單. (用戶端伺服器端均可以使用)

          -d : 與 –a 類似 , 但是隻顯示目錄 , 不顯示用戶端

常用指令總結完畢,接下來配置用戶端

---------------來個分割線--------------NFS伺服器端配置-------------------------------------

[root@beiyong ~]# rpm -qa rpcbind    

rpcbind-0.2.0-11.el6.x86_64   

↑ # 伺服器端同樣需要安裝 rpcbind 包

[root@beiyong ~]# showmount -e 192.168.0.28

↑ # 192.168.0.28 為 NFS 伺服器的位址 , 檢視有哪些可以挂載的目錄

[root@beiyong ~]# mount -t nfs -o nfsvers=3 192.168.0.28:/shared /mnt/nfs

↑ # 開始挂載 –o nfsvers=3 為指定 nfs 的版本 , 在CentOS6中預設版本為4,若不加此選項,在伺服器端執行 showmount –a –d 指令無法成功.當然 /mnt/nfs 的目錄是提前建立好的,為挂載點

[root@beiyong nfs]# ls

fstab

↑ # 此時進入 /mnt/nfs 目錄可以看到 fstab 檔案,測試成功

設定開機自動挂載

若需要開機自動挂載可以通過 chkconfig nfs on 指令 , 也可以寫入 /etc/fstab 檔案中. 格式如下

192.168.0.28:/shared             /mnt/nfs             nfs       defaults               0 0

---------------------再來一個分割線-------------配置autofs---------------------------------

[root@beiyong ~]# rpm -qa autofs

autofs-5.0.5-113.el6.x86_64   

↑ # 用戶端需要安裝 autofs , 版本中已經預設安裝

autofs 服務的主要配置檔案為 /etc/auto.master . 需要編輯該檔案,添加挂載目錄

<a href="http://s3.51cto.com/wyfs02/M01/84/90/wKiom1eU277CN98xAAAeWT24OvI583.png" target="_blank"></a>

↑ # /mnt/nfs 為本機的挂載點    /etc/auto.nfs  該檔案本來并不存在,需要一會兒手工建立   --timeout=10 動态連結你懂的

[root@beiyong ~]# cat /etc/auto.nfs    

server  -ro  192.168.0.28:/shared

↑ # 在 /etc 中建立檔案 auto.nfs 内容如上 .    server目錄是不存在,autofs會自動建立

[root@beiyong ~]# service autofs reload    

↑ # 重新載入 maps

[root@beiyong ~]# cd /mnt/nfs

[root@beiyong nfs]# cd server

[root@beiyong server]# ls

fstab   

[root@beiyong server]# pwd

/mnt/nfs/server   

↑ # cd 進 /mnt/nfs 目錄後 , cd server 通路挂載成功.

[root@beiyong ~]# chkconfig autofs on

↑ # 實作 autofs 開機自啟動

最後自己在總結一下權限的問題

挂載後對共享目錄的權限有兩層,一個是在伺服器端挂載時設定的權限,還有一個是共享檔案自身的權限,二者取最小的權限

寫的不對不好的地方,還希望各位大蝦指教,小弟虛心接受.  

本文轉自   mlwzby   51CTO部落格,原文連結:http://blog.51cto.com/aby028/1829481

繼續閱讀