linux centos 6.0 nfs搭建


 wKiom1Qe98HyIMMZAAEW76uHnNM073.jpg


在啓動NFS  SERVER之前,首先要啓動rpcbind服務(即老版本portmap服務,)否則NFS SERVER 就無法向RPC服務註冊,另外,如果RPC服務重新啓動,原來已註冊好的NFS端口數據就會丟失,因此,此時RPC服務管理的NFS程序也需要重新啓動以向PRC端口註冊,特別提示:一般修改NFS配置文件後,是不需要重啓NFS的。直接在命令行實行/etc/init.d/nfs reload exportfs -rv  即可使修改的/etc/exports生效


2NFS系統守護進程

· nfsd:它是基本的NFS守護進程,主要功能是管理客戶端是否能夠登錄服務器;

· mountd:它是RPC安裝守護進程,主要功能是管理NFS的文件系統。當客戶端順利通過nfsd登錄NFS服務器後,在使用NFS服務所提供的文件前,還必須通過文件使用權限的驗證。它會讀取NFS的配置文件/etc/exports來對比客戶端權限。

· Rpcbind:主要功能是進行端口映射工作。當客戶端嘗試連接並使用RPC服務器提供的服務(如NFS服務)時rpcbind會將所管理的與服務對應的端口提供給客戶端,從而使客戶可以通過該端口向服務器請求服務。

3NFS服務器的配置

NFS服務器的配置相對比較簡單,只需要在相應的配置文件中進行設置,然後啓動NFS服務器即可。

NFS的常用目錄

/etc/exports                           NFS服務的主要配置文件

/usr/sbin/exportfs                   NFS服務的管理命令

/usr/sbin/showmount               客戶端的查看命令

/var/lib/nfs/etab                      記錄NFS分享出來的目錄的完整權限設定值

/var/lib/nfs/xtab                      記錄曾經登錄過的客戶端信息

a. 輸出目錄:

輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;

b. 客戶端:

客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機

客戶端常用的指定方式

· 指定ip地址的主機:192.168.21.111

· 指定子網中的所有主機:192.168.21.0/24 192.168.21.0/255.255.255.0

· 指定域名的主機:www.nfsst.cn

· 指定域中的所有主機:*.nsfst.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:限制客戶端只能從小於1024tcp/ip端口連接nfs服務器(默認設置);

· insecure:允許客戶端從大於1024tcp/ip端口連接服務器;

· sync:將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性;

· async:將數據先保存在內存緩衝區中,必要時才寫入磁盤;

· wdelay:檢查是否有相關的寫操作,如果有則將這些寫操作一起執行,這樣可以提高效率(默認設置);

· no_wdelay:若有寫操作則立即執行,應與sync配合使用;

· subtree:若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限(默認設置)

· no_subtree:即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;



4.服務端配置

  a.先查看是否安裝nfsrpcbind軟件包

wKioL1Qe9_Xw1fnvAADAuGNmmAo886.jpg

沒有就直接yum安裝包(centos 6.0 版本rpcbind  5版本protmap)

#yum install -y nfs-utils rpcbind 


wKiom1Qe9-ejXpfmAAB76uY0wF4269.jpg

查看是否安裝完所需安裝包;

wKioL1Qe-BTxRZLBAAC0cxZ_Z9c431.jpg


b.設置nfs啓動方式

Chkconfig nfs on 

Chkconfig rpcbind on 

wKiom1Qe-AahapGrAADjGxftiqA558.jpg

c.配置文件路徑

 /etc/exports 

/etc/exports文件配置格式爲:

Nfs 共享目錄  客戶端ip地址或者ip端(權限)

實例:

格式

共享目錄 客戶ipip段(參考1,參考2...*代表所有主機)(權限)

配置一

/xp  192.168.21.0/24(rw,sync)

配置二

/xp  *(rw,sync,all_squash,anonuid=2000,anongid=2000)適合多客戶共享一個目錄


註釋#

 配置例一(rw,sync)表示允許共享目錄讀寫,sync表示數據同步寫入內存和硬盤中

 配置例二(rw,sync,all_squash,anonuid=2000,anonguid=2000)所有用戶訪問都把uidgid變爲2000

d.關於權限的分析

  1. 客戶端連接時候,對普通用戶的檢查

    a. 如果明確設定了普通用戶被壓縮的身份,那麼此時客戶端用戶的身份轉換爲指定用戶;

    b. 如果NFS server上面有同名用戶,那麼此時客戶端登錄賬戶的身份轉換爲NFS server上面的同名用戶;

    c. 如果沒有明確指定,也沒有同名用戶,那麼此時 用戶身份被壓縮成nfsnobody

  2. 客戶端連接的時候,對root的檢查

    a. 如果設置no_root_squash,那麼此時root用戶的身份被壓縮爲NFS server上面的root

    b. 如果設置了all_squashanonuidanongid,此時root 身份被壓縮爲指定用戶;

    c. 如果沒有明確指定,此時root用戶被壓縮爲nfsnobody

    d. 如果同時指定no_root_squashall_squash 用戶將被壓縮爲 nfsnobody,如果設置了anonuidanongid將被壓縮到所指定的用戶與組

配置如下:

wKioL1Qe-FDiIlFXAAHdkpq9HYw411.jpg

Service rpcbind start 

Service nfs start 


五.客戶端配置

#yum -y install rpcbind  nfs-utils(客戶端也需要這個安裝包,但是不需要開啓,開啓rpcbind)

wKioL1Qe-F6hXQVDAAB5vOfIzXQ455.jpg


相關命令


Showmount -e ip    查看共享的服務目錄

Rpcinfo -p        查看nfsrpc註冊那些端口

mount |grep nfs  查看掛載nfs信息 

Chkconfig nfs on     自動開啓nfs

Chkconfig rpcbind on  自動開啓rpc

注意:一般修改配置過後直接使用/etc/init.d/nfs reload

 

客戶端提示錯誤1

wKiom1Qe-E2hBWA6AAEB2uDOCuk101.jpg

(大概意思就是丟失代碼或者輔助程序,其他錯誤,很可能需要輔助程序。。。)

重裝#yum -y install rpcbind  nfs-utils

wKiom1Qe-HvD6-AgAAFZiQ2S_R8300.jpg



      





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章