NFS服務器安裝使用
第一章軟件簡介
1、什麼是NFS?
NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位於服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。
2、Samba與NFS區別?
Samba是DEC開始開發的,用於在不同的Unix機器間進行資源共享,采用udp協議。後來基於tcp重新開發後,效率有了很大提高。它使用的協議是SMB。微軟不願意交License費,在windows系統中對該協議重新進行了實現。既然samba和windows中的網絡鄰居都使用SMB協議。那麼,samba自然主要用於在windows和unix之間共享資源。資源包括文件、打印機等等。利用samba,windows的機器可以在網上鄰居裡象對待windows的機器一樣利用linux主機的共享資源。
NFS是SUN開發的,用於UNIX機器之間的資源共享。其設置相當容易,主要是配置/etc/exports文件,然後運行exportfs -a來共享出來。現在NFS已經成為UNIX/LINUX上的標配。nfs的效率要稍微高一些,只是差別不是太大。
第二章 系統環境
系統平台:CentOS release 5.2
NFS Server IP:192.168.1.138
防火牆已關閉(Firewall is not running)
SELINUX=disabled
第三章 NFS服務安裝
NFS的安裝是非常簡單的,只需要兩個軟件包即可,而且在通常情況下,是作為系統的默認包安裝的。若未安裝,安裝過程此處不在累贅。
l nfs-utils-* :包括基本的NFS命令與監控程序
l portmap-* :支持安全NFS RPC服務的連接
查詢NFS是否已安裝:[root@localhost ~]# rpm-qa|grep nfs
第四章 NFS服務配置
步驟一 新建update文件夾
[root@localhostusr]# mkdir /usr/update
步驟二 修改/etc/exports文件(注意:192.168.1.121是客戶端地址)
文件內容:/usr/update192.168.1.121(rw,sync,no_root_squash)
步驟三 開啟服務
[root@localhostusr]#service portmap start
[root@localhostusr]#service nfs start
步驟四 客戶端掛載NFS服務器中的共享目錄
[root@localhostusr]#mount 192.168.1.138:/usr/update/ / usr/update/
提示現在配置成功了。可以看看你的文件夾是否掛載和同步了。以下步驟,在實際項目中用的,若只是嘗試使用NFS,可以忽略。
步驟五 設置NFS服務器的自動啟動狀態
[root@localhostusr]# chkconfig --list portmap
[root@localhostusr]# chkconfig --list nfs
[root@localhostusr]# chkconfig --level 35 portmap on
[root@localhostusr]# chkconfig --level 35 nfs on
步驟六 客戶端啟動自動掛載nfs文件系統
打開/etc/fstab文件
[root@localhostusr]# vi /etc/fstab
添加內容:
192.168.1.138:/usr/update/usr/update nfs defaults 0 0
附注:NFS服務器的配置相對比較簡單,只需要在相應的配置文件中進行設置,然後啟動NFS服務器即可。NFS服務的配置文件為 /etc/exports,這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裡面寫入配置內容。
第五章 NFS服務命令
1、啟動NFS服務器
#service portmap start
#service nfs start
附注:為了使NFS服務器能正常工作,需要啟動portmap和nfs兩個服務,並且portmap一定要先於nfs啟動。
2、查詢NFS服務器狀態
#service portmap status
#service nfs status
3、停止NFS服務器
#service nfs stop
#service portmap stop
附注:要停止NFS運行時,需要先停止nfs服務再停止portmap服務,對於系統中有其他服務(如NIS)需要使用時,不需要停止portmap服務。
4、重啟NFS服務器
#service nfs restart
#service portmap restart
5、設置NFS服務器的自動啟動狀態
# chkconfig --list portmap
# chkconfig --list nfs
# chkconfig --level 35 portmap on
# chkconfig --level 35 nfs on
附注:對於實際的應用系統,每次啟動LINUX系統後都手工啟動nfs服務器是不現實的,需要設置系統在指定的運行級別自動啟動portmap和nfs服務。設置portmap和nfs服務在系統運行級別3和5自動啟動。
6、查詢NFS的共享狀態
#showmount -e //默認查看自己共享的服務
#showmount -a //顯示已經與客戶端連接上的目錄信息
7、客戶端掛載NFS服務器
格式:# mount NFS服務器IP:共享目錄 本地掛載點目錄
案例:# mount 192.168.1.138:/usr/update/ / usr/update/
8、客戶端卸載NFS服務器
格式:# umount 設備|目錄
案例:# umount /usr/update
9、查看完整權限設定值
#cat /var/lib/nfs/etab
10、啟動自動掛載nfs文件系統
格式:<server>:</remote/export></local/directory> nfs < options> 0 0
案例:
打開文件
# vi /etc/fstab
添加內容
192.168.1.138:/usr/update/usr/update nfs defaults 0 0
注意:在客戶端配置
11、exportfs的使用
格式:# exportfs [-aruv]
-a 全部掛載或卸載 /etc/exports中的內容
-r 重新讀取/etc/exports 中的信息,並同步更新/etc/exports、/var/lib/nfs/xtab
-u 卸載單一目錄(和-a一起使用為卸載所有/etc/exports文件中的目錄)
-v 在export的時候,將詳細的信息輸出到屏幕上。
案例:
# exportfs -au 卸載所有共享目錄
# exportfs -rv 重新共享所有目錄並輸出詳細信息
附注:如果我們在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs 命令來使改動立刻生效。
第六章 附錄
1、NFS的常用目錄
/etc/exports NFS服務的主要配置文件
/usr/sbin/exportfs NFS服務的管理命令
/usr/sbin/showmount 客戶端的查看命令
/var/lib/nfs/etab 記錄NFS分享出來的目錄的完整權限設定值
/var/lib/nfs/xtab 記錄曾經登錄過的客戶端信息
2、/etc/exports文件內容格式
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
(1) 輸出目錄
l 概念:輸出目錄是指NFS系統中需要共享給客戶機使用的目錄
(2) 客戶端
l 概念:客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機
l 客戶端常用的指定方式
指定ip地址的主機:192.168.0.200
指定子網中的所有主機:192.168.0.0/24192.168.0.0/255.255.255.0
指定域名的主機:david.bsmart.cn
指定域中的所有主機:*.bsmart.cn
所有主機:*
(3) 選項
l 概念:選項用來設置輸出目錄的訪問權限、用戶映射等。
l 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服務器也不檢查其父目錄的權限,這樣可以提高效率