CentOS6搭建NFS服務器

EulGerstaec 8年前發布 | 69K 次閱讀 CentOS

來自: http://my.oschina.net/u/2381678/blog/628750


NFS 是Network File System的縮寫,即網絡文件系統。一種使用于分散式文件系統的協定,由Sun公司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的操作系統能夠彼此分享個別的數據,讓應用程序在客戶端通過網絡訪問位于服務器磁盤中的數據,是在類Unix系統間實現磁盤文件共享的一種方法。

  NFS 的基本原則是“容許不同的客戶端及服務端通過一組RPC分享相同的文件系統”,它是獨立于操作系統,容許不同硬件及操作系統的系統共同進行文件的分享。

  NFS在文件傳送或信息傳送過程中依賴于RPC協議。RPC,遠程過程調用 (Remote Procedure Call) 是能使客戶端執行其他系統中程序的一種機制。NFS本身是沒有提供信息傳輸的協議和功能的,但NFS卻能讓我們通過網絡進行資料的分享,這是因為NFS使用了一些其它的傳輸協議。而這些傳輸協議用到這個RPC功能的。可以說NFS本身就是使用RPC的一個程序。或者說NFS也是一個RPC SERVER。所以只要用到NFS的地方都要啟動RPC服務,不論是NFS SERVER或者NFS CLIENT。這樣SERVER和CLIENT才能通過RPC來實現PROGRAM PORT的對應。可以這么理解RPC和NFS的關系:NFS是一個文件系統,而RPC是負責負責信息的傳輸

  • 系統環境

OS:centOS6

nfs server:172.17.210.219

nfs client:172.17.210.220

防火墻已關閉/iptables: Firewall is not running.

SELINUX=disabled

  • 安裝NFS服務器

yum install nfs-utils.x86_64

這條命令把依賴包都安裝了,可以直接使用。運行后安裝了5個服務,分別是:nfs,nfslock,rpcbind,rpcgssd,rpcsvcgssd

按照我的習慣,把服務都關閉,需要時再打開:

chkconfig nfs         off

chkconfig nfslock     off

chkconfig rpcbind     off

chkconfig rpcgssd     off

chkconfig rpcsvcgssd  off

service nfs         stop

service nfslock     stop

service rpcbind     stop

service rpcgssd     stop

service rpcsvcgssd  stop

主要文件:

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

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

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

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

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

客戶端也需要同樣的安裝,但是不需要開啟服務。

  • 服務器配置

/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. 選項

訪問權限選項

  • 設置輸出目錄只讀: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服務器也不檢查其父目錄的權限,這樣可以提高效率;q

  • 啟動NFS服務器

# service rpcbind restart
# service nfs restart
# exportfs

服務器執行命令:

# showmount -e     查詢NFS的共享狀態

# showmount -a   顯示已經與客戶端連接上的目錄信息

客戶端:

#showmount -e  NFS服務器IP                   查詢NFS的共享狀態

mount  172.17.210.219:/root/nfs   /root/nfs       掛載NFS

umount    /root/nfs                                          卸載NFS


參考:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html

 本文由用戶 EulGerstaec 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!