nfs(network file system)
nfs允許一個系統在網絡上與它人共享目錄和檔案。通過使用nfs,使用者和程式可以象通路本地檔案一樣通路遠
端系統上的檔案。
優點:
本地工作站使用更少的磁盤空間,因為通常的資料可以存放在一台機器上而且可以通過網絡通路到。
使用者不必在每個網絡上機器裡頭都有一個home目錄。home目錄 可以被放在nfs伺服器上并且在網絡上處處
可用。
諸如軟驅,cdrom,和 zip? 之類的儲存設備可以在網絡上面被别的機器使用。這可以減少整個網絡上的
可移動媒體裝置的數量。
配置:(依然建議在selinux關閉下做實驗。)
軟體包:nfs-utils portmap
安裝:yum install -y nfs-utils portmap
守護程序: rpc.nfsd 、rpc.lockd、rpciod、rpc.mountd、rpc.rquotad、rpc.startd
rpc.nfsd:它是基本的nfs守護程序,主要功能是管理用戶端是否能夠登入伺服器
rpc.mountd:它是rpc安裝守護程序,主要功能是管理nfs的檔案系統。當用戶端順利通過rpc.nfsd登入nfs服務
後,在使用nfs服務所提供的文憑前,還必須通過檔案使用權限的驗證。它會讀取nfs的配置檔案/etc/exports
來對比用戶端權限。
portmap:portmap的主要功能是進行端口映射工作。當用戶端嘗試連接配接并使用rpc伺服器提供的服務(如nfs服
務)時,portmap會将所管理的與服務對應的端口提供給用戶端,進而使客戶可以通過該端口向伺服器請求服務
。
(這三個服務程序是運作nfs伺服器所必須的服務。)
腳本:/etc/init.d/nfs 、/etc/init.d/nfslock(這個檔案是nfs的主要配置檔案,不過系統并沒有預設值,所
以這個檔案不一定會存在,可能要使用vim手動建立,然後在檔案裡面寫入配置内容。)
端口:2049(nfsd) ,其他端口portmap(111)配置設定
配置檔案:/etc/exports 、/etc/sysconfig/nfs
校驗服務是否運作:
rpcinfo -p
service portmap status
service nfs status
啟動服務
service nfs start
停止服務
service nfs stop
重新開機服務
service nfs restart
當修改了/etc/exports檔案後,
exportfs -r 指令會重新整理伺服器的共享清單
exportfs -v 指令會顯示伺服器上的共享目錄和選項清單
exportfs -a 指令會導出/etc/exports中列出的所有共享或者以參數命名的共享
exportfs -u 指令會取消導出以參數命名的共享;
顯示主機的nfs伺服器資訊:showmouont [nfs伺服器主機位址]
顯示nfs伺服器的輸出清單:showmount –e [nfs伺服器主機位址]
顯示nfs伺服器中被挂載的共享目錄:showmount –d [nfs伺服器主機位址]
顯示nfs伺服器的客戶機與被挂載的目錄:showmount –a [nfs伺服器主機位址]
nfs伺服器
在/etc/exports檔案中定義導出目錄
每個條目都指定檔案系統被導出到的主機,以及相關的權限和選項
例如:
/var/ftp/pub *.example(ro,sync) bigserver.redhat.com(rw,sync)
/root/presentations server2.example.com(rw,sync)
/data 192.168.10.0/255.255.255.0(sync)
每個條目指定一個導出的目錄和他的通路權限。可以指定一對或多對主機/權限,但是不能将條目分成若幹
行。主機名可以包含通配符,如上所示。也可用通配符來比對主機名或域名:station1*将與station1、
station2、station11等等比對;*.example.com将與station1.example.com等等比對。
主機的ip位址可以被單獨指定,也可以是網絡/子網路遮罩格式。預設情況下,/etc/exports中的條目以隻讀
形式導出。
選項和主機之間必須不能使用空格間隔。
指定的選項有以下幾種:
ro:隻讀通路
rw:讀寫通路
sync:所有資料在請求時寫入共享
async:nfs在寫入資料前可以相應請求
all_squash:共享檔案的uid和gid映射匿名使用者anonymous,适合公用目錄。
no_all_squash:保留共享檔案的uid和gid(預設)
root_squash:root使用者的所有請求映射成如anonymous使用者一樣的權限(預設)
no_root_squas:root使用者具有根目錄的完全管理通路權限
用于防火牆的端口選項
要在nfs中使用防火牆,必須使用通常有portmap配置設定的端口的伺服器使用靜态端口。這些服務包括:mountd
、statd和lockd守護程序。
nfs腳本在/etc/sysconfig/nfs檔案中查找在啟動守護程序是使用的選項。mountd_port、statd_port、
rquotad_port、statd_outing_port、lockd_tcpport和lockd_udpport變量都可以使用強制這些選項守護程序在
指定的端口啟動。該檔案預設安裝中可能不存在,可以自行建立即可。
用戶端nfs
用/etc/fstab檔案指定網絡挂載目錄
或者直接用mount 指令 挂載即可
如:mount -t nfs -o -w=1024 192.168.0.170:/sharedfs /project
用戶端nfs自動挂載
方法一,/etc/fstab
netfs服務會使用檔案/etc/fstab作為參考, 是以像nfs共享的會被自動執行。
如下是一個/etc/fstab中的挂載nfs的一條記錄。
server1.example.com:/share/directory /mnt/share nfs defaults 0 0
方法二, autofs 服務:
使用/etc/fstab的一個缺點是:不管使用者通路nfs的次數和時間,系統總是會使用資源來維護這個nfs挂載。雖
然對于一兩個nfs挂載的時候這不是問題,但是如果系統在維護很多nfs挂載的時候,系統性能會受到影響,一
個替代方法就是使用基于kernel的自動挂載工具:他可以在需要的時候自動的挂載nfs。
autofs 服務會根據/etc/auto.master檔案來控制自動挂載指令:automount的指令可以更加友善的指定挂載點
,主機名, 輸出目錄等等。
autofs的配置檔案以父-子關系來組織,主配置檔案(/etc/auto.master) 列出了所有的挂載點,然後他會連接配接
到一個特定的映射類型, 這個類型可以是配置檔案,程式, nis映射或者其他挂載方式,auto.master檔案包含
了如下内容。
<mount-point> <map-type> <mount-point>用于指定本地挂載點,<map-type>指定如何挂載,最通常的nfs
挂載做法是使用一個檔案,這個檔案通常命名成auto.<mount-point>, <mount-point>是在auto.master指定的
挂載點,一個nfs類型的auto.<mount-point>的内容如下:
</local/directory> -<options> <server>:</remote/export> 使用本地挂載點替換
</local/directory;> ,該目錄必須手動建立。
可以使用nfs的選項替換 <options> ,多個選項之間使用“,”分開,如果需要更多的資訊檢視man fstab. 确
定在options清單前使用了符号"-"。
使用你的nfs伺服器替換如上的 <server> ,
使用nfs伺服器的輸出路徑替換如上的 </remote/export> .
可以使用nfs的選項替換 <options>
autofs配置檔案可以用于很多中挂載方式和不同的檔案系統上,特使是在nfs的挂載上特别有用,舉例來說,有
些機關把所有的/home目錄集中于一台nfs伺服器上, 然後在每個節點上配置auto.master指向auto.home,使得
每個節點都可以通過autofs挂載/home目錄。所有的使用者都可以在任何一台工作站上通路自己/home/下的的數
據和配置檔案,該案中的auto.master看起來會像如下所示。
/home /etc/auto.home 這個檔案設定了/home/挂載點被配置到了/etc/auto.home檔案上,auto.home看起
來應該如下:
* -fstype=nfs,soft,intr,rsize=8192,wsize=8192,nosuid,tcp server.example.com
例如操作步驟:
1、vim /etc/auto.master
/mnt /etc/zuto.shared
2、vim /etc/auto.shared
shared -soft,intr,rw 192.168.0.170:/shared
* -soft,intr,rw 192.168.0.170:/shared/&
重新開機服務即可。