環境:Red Hat 4.8.3-9(主機) ip地址:192.168.1.1
Ubuntu 4.8.4-2(從機) IP地址:192.168.1.2
用途:將從機數據備份到主機,因從機空間較小,選擇使用NFS網絡磁盤映射的方法完成
NFS 是Network File System的縮寫,即網絡文件系統
【主機】
安裝NFS服務
nfs-utils-* :包括基本的NFS命令與監控程序
portmap-* :支持安全NFS RPC服務的連接(該服務改名爲rpcbind)
#查看是否已安裝該服務 [root@localhost /]# rpm -qa|grep nfs [root@localhost /]# rpm -qa|grep portmap #安裝nfs服務,光盤中有安裝包 [root@localhost /]# yum install -y nfs-utils-*
注意:發現並沒有安裝portmap包,但使用yum list命令也未查找到,經過確認,該服務名稱改爲rpcbind。
NFS系統守護進程
nfsd:它是基本的NFS守護進程,主要功能是管理客戶端是否能夠登錄服務器;
mountd:它是RPC安裝守護進程,主要功能是管理NFS的文件系統。當客戶端順利通過nfsd登錄NFS服務器後,在使用NFS服務所提供的文件前,還必須通過文件使用權限的驗證。它會讀取NFS的配置文件/etc/exports來對比客戶端權限。
portmap:主要功能是進行端口映射工作。當客戶端嘗試連接並使用RPC服務器提供的服務(如NFS服務)時,portmap會將所管理的與服務對應的端口提供給客戶端,從而使客戶可以通過該端口向服務器請求服務。
NFS服務器配置
/etc/exports NFS服務的主要配置文件
/usr/sbin/exportfs NFS服務的管理命令
/usr/sbin/showmount 客戶端的查看命令
/var/lib/nfs/etab 記錄NFS分享出來的目錄的完整權限設定值
/var/lib/nfs/xtab 記錄曾經登錄過的客戶端信息
NFS服務的配置文件爲 /etc/exports,這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裏面寫入配置內容。
/etc/exports文件內容格式:
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
a. 輸出目錄:
輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
b. 客戶端:
客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機
客戶端常用的指定方式
指定ip地址的主機:192.168.0.200
指定子網中的所有主機:192.168.0.0/24 192.168.0.0/255.255.255.0
指定域名的主機:david.bsmart.cn
指定域中的所有主機:*.bsmart.cn
所有主機:*
c. 選項:
選項用來設置輸出目錄的訪問權限、用戶映射等。
NFS主要有3類選項:
訪問權限選項
設置輸出目錄只讀:ro
設置輸出目錄讀寫:rw
用戶映射選項
all_squash:將遠程訪問的所有普通用戶及所屬組都映射爲匿名用戶或用戶組(nfsnobody);
no_all_squash:與all_squash取反(默認設置);
root_squash:將root用戶及所屬組都映射爲匿名用戶或用戶組(默認設置);
no_root_squash:與rootsquash取反;
anonuid=xxx:將遠程訪問的所有用戶都映射爲匿名用戶,並指定該用戶爲本地用戶(UID=xxx);
anongid=xxx:將遠程訪問的所有用戶組都映射爲匿名用戶組賬戶,並指定該匿名用戶組賬戶爲本地用戶組賬戶(GID=xxx);
其它選項
secure:限制客戶端只能從小於1024的tcp/ip端口連接nfs服務器(默認設置);
insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;
sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性;
async:將數據先保存在內存緩衝區中,必要時才寫入磁盤;
wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);
no_wdelay:若有寫操作則立即執行,應與sync配合使用;
subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置);
no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;
簡單實例:
/home/locoldir 192.168.1.0/24(rw)
NFS服務器的啓動與停止
在對exports文件進行了正確的配置後,就可以啓動NFS服務器了。
1、啓動NFS服務器
爲了使NFS服務器能正常工作,需要啓動rpcbind和nfs兩個服務,並且rpcbind一定要先於nfs啓動
[root@localhost /]#service rpcbind restart [root@localhost /]#service nfs restart
【從機】
啓動mount命令,將服務器目錄mount到本地進行訪問
mount -a 192.16.1.1:/test /test1
root@ubuntu:/opt/backup# mount -a 192.16.1.1:/test /test1 mount: wrong fs type, bad option, bad superblock on 192.16.1.1:/test, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program) In some cases useful info is found in syslog - try dmesg | tail or so
執行後報以上錯誤,錯誤原因未安裝nfs-common服務
若配置後出現各類問題,請查看另一解決篇