網絡文件共享服務:
1、NFS:Network File System
在Linux下實現文件共享有多種方式,NFS就是其中之一。網絡文件系統(NFS)協議是由Sun MicroSystem在20世紀80年代爲了提供對共享文件的遠程訪問而設計和實現的。該協議採用Client/Server模型, 通過使用Sun開發的遠程過程調用協議(RPC Protocol)來實現運行在一臺計算機上的程序來調用在另一臺遠程機器上運行的子程序.
NFS包含3個版本:NFSv2、NFSv3、NFSv4
RHEL6是以NFSv4作爲默認版本,NFSv4使用TCP協議(端口號是2049)和NFS服務器建立連接,而老版本的NFS可以在TCP協議或者是UDP協議上運行。NFS服務的端口默認是不固定的,但可以強制NFS使用固定端口。
RHEL6中NFS的軟件包:nfs-utils
在NFS的相關文檔中,有兩個值得重點關注
/etc/exports:NFS服務的主配置文件,該文件的最主要目的是發佈共享目錄併爲共享目錄限制權限。和其他服務的主配置文件一樣,絕大部分的配置都是通過編輯該文件完成
/var/lib/nfs/xtab:這個文件主要用來記錄客戶端與NFS服務器的連接記錄,如果想查看哪些客戶端曾經連接過NFS服務器,查看該文件即可
NFS服務的主配置文件exports發佈共享目錄的格式如下:
共享目錄 [客戶端1參數1][客戶端2 參數]…
共享目錄是指在NFS服務器上需要給客戶端共享出來的目錄,在設置共享目錄的時候要使用絕對路徑
客戶端是指所有可以訪問NFS服務器共享目錄的計算機。常見客戶端指定方式如下表:
客戶端指定方式 | 示例 |
使用IP地址指定單一主機 | 10.20.30.40 |
使用IP地址指定範圍主機 | 172.16.0.0/16 |
使用IP地址指定範圍主機 | 192.168.1.* |
使用域名指定單一主機 | Test.ice.apple |
使用域名指定範圍主機 | *.ice.apple |
使用通配符指定所有主機 | * |
參數:在諸多可以附帶的參數中,使用最多的要數權限設置的參數了,常見參數如下表:
參數 | 說明 |
ro | 設置共享權限爲只讀 |
rw | 設置共享權限爲讀寫 |
root_squash | 當使用NFS服務器共享目錄的使用者是root時,將被映射爲匿名賬號。即:NFS 主機使用共享目錄的使用者如果是 root 時,那麼這個使用者的權限將被壓縮成爲匿名使用者,通常他的 UID 與 GID 都會變成 nobody 那個系統賬號的身份 |
no_root_squash | 當使用NFS服務器共享目錄的使用者是root時,將不被映射爲匿名賬號。即:NFS 主機使用共享目錄的使用者,如果是 root 的話,那麼對於這個共享的目錄來說,他就具有 root 的權限!這個項目極不安全,不建議使用! |
all_squash | 將所有使用NFS服務器共享目錄的使用者都映射爲匿名賬號 |
anonuid | 設置匿名賬號的UID |
anongid | 設置匿名賬號的GID |
sync | 保持數據同步,也就是將數據同步寫入內存和硬盤。這可能導致效率降低 |
async | 先將數據保存在內存中,而不是直接保存在硬盤 |
注意:在發佈共享目錄的格式中除了共享目錄是必跟參數外,其他參數都 是可選 的。而且共享目錄和客戶端1與客戶端2之間都 需要使用空格符號,但客戶端和參數之間不能有空格。
如:在/etc/exports文件添加如配置:
/media *(ro) 192.168.0.10(rw,no_root_squash)
/NFS/test 192.168.0.0/24(ro)
NFS服務的啓動與停止:NFS服務腳本是NFS
chkconfig --list
將rpcbind和nfs都設爲自動啓動
chkconfig rpcbind on
chkconfig nfs on
啓動rpcbind
service rpcbind start
之後才能成功啓動nfs
service nfs start
一定要先啓動rpcbind,然後再啓動nfs,不然NFS quotas和NFS daemon都將啓動失敗。
service nfs start|stop|restart|reload
exportfs命令:用於維護當前主機中NFS服務器的輸出目錄列表
exportfs –rv使NFS服務器重新讀取exports文件的設置,而不需重啓NFS服務器
exportfs –auv 用於停止當前主機中NFS服務器的所有目錄輸出
exportfs –av 用於輸出NFS服務器的所有共享目錄
exportfs –v 顯示輸出列表同時,顯示導出的設定參數
客戶端的使用:
客戶端可以先使用showmount –e查看NFS服務器發佈的共享目錄
掛載NFS文件系統
Mount -t nfs NFS服務器IP地址(或主機名):共享目錄 本地掛載點
如:mount –t nfs 192.168.0.1:/media /mnt
啓動掛載NFS
想要系統每次啓動時自動掛載NFS服務器上的共享目錄,則可以編輯/etc/fstab文件
NFS服務器的IP:共享目錄 掛載點 nfs defaults 0 0
配置NFS固定端口:
默認情況下,NFS配置完畢後,每次重新啓動該服務後其相應的端口都會隨機變化,如果啓用了防火牆,如何開放變化的端口就成問題了,其實解決辦法也很簡單,只需對NFS進行配置使用固定端口即可
NFS服務啓動時,會檢查/etc/sysconfig/nfs文件,因此改該文件,修改相應字段便可以強制NFS服務使用固定端口了:
若NFS服務器上啓用了iptables防火牆且filter表的3個鏈默認規則爲DROP需創建如下規則:
iptables –I INPUT –p tcp --dport 111 –j ACCEPT
iptables –I INPUT –p udp --dport 111 –j ACCEPT
iptables –I INPUT –p tcp --dport 2049 –j ACCEPT
iptables –I INPUT –p udp --dport 2049 –j ACCEPT
iptables –I INPUT –p tcp –m multiport --dport 875,32803,32769,892,662 –j ACCEPT
iptables –I INPUT –p udp –m multiport --dport 875,32803,32769,892,662 –j ACCEPT
service iptables save