NFS (network file system) 網絡文件系統服務器
能夠快速進行文件共享,方便集中管理網絡
NFS 並非監聽在固定端口,而是隨機採用一些未被使用而且小於 1024 的端口,中間經過 RPC 協調實現互聯. 而 RPC 工做在 tcp udp 的 111 端口.異步
能夠經過 # rpcinfo –p localhost 查看 //rpcbind 的守護進程 //NFS 的守護進程 //NFS mountd 守護進程async
AUTOFStcp
當客戶端和服務器端鏈接後,任何一方離線均可能致使另外一方在不斷等待,消耗 NFS 服務器的資源ide
使用 autofs 就能夠避免這類問題,讓用戶僅在訪問時可以動態掛載目錄測試
試驗環境 CentOS版本爲 6.7spa
兩臺虛擬主機便可,關閉防火牆\SElinx,互相能ping通命令行
本人使用的是 vmvare workstation11 . 以前一直沒用克隆選項,沒想到在11中關閉虛擬機完成克隆後不須要作任何更改.rest
假如原來的主機網卡爲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
Export list for 192.168.0.28:
/shared 192.168.0.0/24
↑ # 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 . 須要編輯該文件,添加掛載目錄
↑ # /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 開機自啓動
最後本身在總結一下權限的問題
掛載後對共享目錄的權限有兩層,一個是在服務器端掛載時設置的權限,還有一個是共享文件自身的權限,兩者取最小的權限
寫的不對很差的地方,還但願各位大蝦指教,小弟虛心接受.