天天看點

NFS服務的簡介與搭建

NFS是sun公司開發的網絡檔案系統,可實作在異構網絡上共享和裝配遠端檔案系統。

NFS工作原理簡介

NFS并不是單獨存在的,它和另外2個子產品共同存在。包括NFS在内,這三個子產品分别是NFS,RPC,PORTMAP。

NFS隻負責将資料通過以檔案系統的方式共享出去,并進行登入管理和權限管理,并不負責資料的傳輸,而資料的傳輸則有RPC來完成。試想遠端用戶端在進行連結的時候需要知道哪個端口可用,以便将可用的端口用于NFS資料傳輸(NFS的資料傳輸方式有端口來完成),而負責維護可用端口與遠端主機的映射關系則是有PORTMAP的完成的。

RPC:遠端過程調用協定,RPC跨越了傳輸層和應用層

portmap程序的主要功能是把RPC程式号轉化為Internet的端口号。

portmap程序一般使用TCP/UDP的111端口

想要深入了解RPC:見http://blog.csdn.net/mindfloating/article/details/39474123

在Linux Kernel 2.6.32中,portmap已經被rpcbind代替了,仔細檢視安裝資訊就會發現,執行指令yum install portmap時安裝的就是rpcbind.

工作流程:

(1)用戶端向NFS伺服器送出RPC請求,并明确通路NFS服務,并告知其具體的讀寫操作。

(2)RPC查找端口映射表,并根據用戶端請求,傳回相應的結果。

(3)用戶端擷取指定的NFS伺服器端口後,将直接與NFS程序進行讀寫操作。

NFS服務的簡介與搭建

NFS伺服器配置

安裝

#yum install -y nfs*

伺服器配置

#man exports

#vim /etc/exports

/tmp/share  192.168.173.0/24(rw,sync,root_squash)
           

【NFS共享的常用參數】

  • ro 隻讀通路
  • rw 讀寫通路
  • sync 同步寫入硬碟
  • async 暫存記憶體
  • secure NFS通過1024以下的安全TCP/IP端口發送
  • insecure NFS通過1024以上的端口發送
  • wdelay 多個使用者對共享目錄進行寫操作時,則按組寫入資料(預設)
  • no_wdelay 多個使用者對共享目錄進行寫操作時,則立即寫入資料
  • hide 不共享其子目錄
  • no_hide 共享其子目錄
  • subtree_check 強制NFS檢查父目錄的權限
  • no_subtree_check 不檢查父目錄權限
  • all_squash 任何通路者,都轉為 匿名yong
  • root_squash root使用者通路此目錄, 映射成如anonymous使用者一樣的權限(預設)
  • no_root_squash root使用者通路此目錄,具有root操作權限
  • anonuid=xxx 指定NFS伺服器/etc/passwd檔案中匿名使用者的UID
  • anongid=xxx 指定NFS伺服器/etc/passwd檔案中匿名使用者的GID

如果修改了/etc/exports檔案後不需要重新激活nfs,隻要重新掃描一次/etc/exports檔案,并且重新将設定加載即可:

#exportfs -rv
  1. -a:全部挂載(或解除安裝)/etc/exports檔案内的設定。
  2. -r:重新挂載/etc/exports中的設定,此外同步更新/etc/exports及/var/lib/nfs/xtab中的内容。
  3. -u:解除安裝某一目錄。
  4. -v:在export時将共享的目錄顯示在螢幕上。

重新開機NFS服務

#service nfs restart

#chkconfig nfs on

ps:/var/lib/nfs/etab裡面可以檢視每個目錄的分享權

NFS用戶端配置(Autofs)

伺服器分享目錄:/tmp/share

用戶端挂載目錄:/tmp/share

1.手動挂載

#mkdir /tmp/test

#mount -t nfs 192.168.173.140:/tmp/share /tmp/test

2.直接的自動挂載

mount是用來挂載檔案系統的,可以在系統啟動的時候挂載也可以在系統啟動後挂載。對于本地固定裝置,如硬碟可以使用mount挂載;而CD光牒、軟碟、NFS、SMB等檔案系統具有動态性,即需要的時候才有必要挂載。光驅和軟碟我們一般知道什麼時候需要挂載,但NFS和SMB共享等就不一定知道了,即我們一般不能及時知道NFS共享和SMB什麼時候可以挂載。而autofs服務就提供這種功能,好像windows中的光驅自動打開功能,能夠及時挂載動态加載的檔案系統。免去我們手動載在麻煩。要實作光驅,軟碟等的動态自動挂載,需要進行相關的配置。

autofs 能夠自動挂載解除安裝nfs和檔案系統,并且在空閑的時候能夠關閉nfs連接配接,降低系統負載。

#yum install -y autofs

#service autofs stop

首先修改全局的配置檔案

#vim /etc/auto.master

/-  /etc/auto.nfs
           
#vim /etc/auto.nfs
#service autofs restart

這裡的/tmp/test,必須是存在的。

NFS服務的簡介與搭建

3.間接自動挂載

#yum install -y autofs

#service autofs stop

#vim /etc/auto.master

/tmp/share是要挂載的本地目錄,我們在向NFS伺服器發送請求信号時,一定要在這個目錄下面進行操作,否則是無效的。

/etc/auto.nfs: 是一個配置 NFS伺服器共享檔案的路徑,及本地在/mnt/nfs目錄中要與遠端共享檔案挂載的目錄及權限,在auto.nfs檔案中還要詳細說明。

–timeout=60:指NFS用戶端在多久沒有向NFS伺服器請求資料時斷開挂載連接配接。

#vim /etc/auto.nfs
#service autofs restart

server : 它是一個本地目錄,我們不需要建立它,用于挂載遠端共享檔案192.168.20.6:/public,在我們想要使用遠端共享檔案/public時,隻要在本地目錄/mnt/nfs下鍵入:cd server 系統就會自動挂載到遠端共享目錄:192.168.20.6:/public,我們就可以正常使用裡面的共享檔案了 ,在到達逾時時間時就會自動解除安裝。

NFS服務的簡介與搭建

NFS安全配置

1.iptables

NFS啟動時會随機啟動多個端口并向RPC注冊,這樣如果使用iptables對NFS端口進行限制就會有點麻煩,可以更改配置檔案固定NFS服務相關端口。

#rpcinfo –p #檢視本地rpc程序

#vim /etc/sysconfig/nfs #NFS相關端口的配置檔案

打開對應端口(也可以自己修改)

RQUOTAD_PORT=
LOCKD_TCPPORT=
LOCKD_UDPPORT=
MOUNTD_PORT=
STATD_PORT=
           

然後編寫iptables的規則

如:

#iptables -A INPUT -s 192.168.173.0/24 -p tcp –dport 111 -j ACCEPT

#iptables -A INPUT -s 192.168.1.173.0/24 -p udp –dport 111 -j ACCEPT

#iptables -A INPUT -s 192.168.1.173.0/24 -p tcp –dport 2049 -j ACCEPT

#iptables -A INPUT -s 192.168.1.173.0/24 -p udp –dport 2049 -j ACCEPT

儲存

#service iptables save

#service ipatbles restart

2.selinux

NFS服務的簡介與搭建

可根據需要自己打開,如:

#setsebool -P samba_share_nfs on