天天看點

NFS網絡檔案共享服務

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伺服器上需要給用戶端共享出來的目錄,在設定共享目錄的時候要使用絕對路徑

注意:在釋出共享目錄的格式中除了共享目錄是必跟參數外,其他參數都是可選的。而且共享目錄和用戶端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都将啟動失敗。

servicenfs 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 –i lo –j ACCEPT

iptables –I INPUT –p tcp --dport111 –j ACCEPT

iptables –I INPUT –p udp --dport111 –j ACCEPT

iptables –I INPUT –p tcp --dport2049 –j ACCEPT

iptables –I INPUT –p udp --dport2049 –j ACCEPT

iptables –I INPUT –p tcp –mmultiport --dport 875,32803,32769,892,662 –j ACCEPT

iptables –I INPUT –p udp –mmultiport --dport 875,32803,32769,892,662 –j ACCEPT

service iptables save

繼續閱讀