天天看點

網絡服務網絡服務-nfs

網絡服務-nfs

1.什麼是nfs?

NFS是Network File System的縮寫,即網絡檔案系統。一種使用于分散式檔案系統的協定,由Sun公司開發,于1984年向外公布。功能是通過網絡讓不同的機器、不同的作業系統能夠彼此分享個别的資料,讓應用程式在用戶端通過網絡通路位于伺服器磁盤中的資料,是在類Unix系統間實作磁盤檔案共享的一種方法。

它的主要功能是通過網絡讓不同的機器系統之間可以彼此共享檔案和目錄。NFS伺服器可以允許NFS用戶端将遠端NFS伺服器端的共享目錄挂載到本地的NFPS用戶端中。在本地的NFS用戶端的機器看來,NFS伺服器端共享的目錄就好像自己的磁盤分區和目錄一樣。一般用戶端挂載到本地目錄的名字可以随便,但為友善管理,我們要和伺服器端一樣比較好。

NFS 一般用來存儲共享視訊,圖檔等靜态資料。

2.NFS挂載原理

NFS是通過網絡來進行服務端和用戶端之間的資料傳輸。兩者之間要傳輸資料就要有想對應的網絡端口來進行傳輸。NFS伺服器到底使用什麼網絡端口來傳輸資料的,NFS伺服器端其實是随機選擇端口來進行資料傳輸。那NFS用戶端又是如何知道NFS伺服器端到底使用的是哪個端口呢?其實NFS伺服器時通過遠端過程調用(remote procedure call簡稱RPC)協定/服務來實作的。也就是說RPC服務會統一管理NFS的端口,用戶端和服務端通過RPC來先溝通NPS使用了哪些端口,之後再利用這些端口(小于1024)來進行資料的傳輸。

也就是RPC管理服務端的NFS端口配置設定,用戶端要傳資料,那用戶端的RPC會先跟服務端的RPC去要伺服器的端口,要到端口後再建立連接配接,然後傳輸資料。

首先當NFS啟動後,就會随機的使用一些端口,然後NFS就會向RPC去注冊這些端口。RPC就會記錄下這些端口。并且RPC會開啟111端口,等待用戶端RPC的請求,如果用戶端有請求,那服務端的RPC就會将記錄的NFS端口資訊告知用戶端。

在啟動NFS SERVER之前,首先要啟動RPC服務(即portmap服務,下同〉否則NFS SERVER就無法向RPC服務區注冊,另外,如果RPC服務重新啟動,原來已經注冊好的NFS端口資料就會全部丢失。是以此時RPC服務管理的NFS程式也要重新啟動以重新向RPC注冊。特别注意:一般修改·NFS配置文檔後,是不需要重新開機NFS的,直接在指令執行/etc/init.d/nfs reload

通訊過程

1)首先伺服器端啟動RPC服務,并開啟111端口

2)啟動NFS 服務,并向RPC 注冊端口資訊

3)用戶端啟動RPC( portmap服務),向服務端的RPC(portmap)服務請求服務端的NFS端口

4)服務端的RPC(portmap)服務回報NFS端口資訊給用戶端。

5)用戶端通過擷取的NFS端口來建立和服務端的NFS連接配接并進行資料的傳輸。

3.NFS相關協定與軟體安裝管理

協定:

RPC (Remote Procedure Call Protocol) ——遠端過程調用協定

軟體: nfs-utils-* :包括NFS指令與監控程式 rpcbind-* :支援安全NFS RPC服務的連接配接

yum install nfs-utils-* -y

yum install rpcbind-* -y

4.nfs系統守護程序

nfs:它是基本的NFS守護程序,主要功能是管理用戶端是否能夠登入伺服器

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

5.NFS 伺服器配置

nfs服務的配置檔案: /etc/exports

檔案内容格式:

共享目錄 用戶端(通路權限,使用者映射,其他) 用戶端2……

1.共享目錄:共享目錄是指NFS伺服器共享給客戶機使用的目錄

2.用戶端:用戶端是指網絡中可以通路這個NFS共享目錄的計算機

用戶端的指定方式:

指定IP的主機: 10.35.202.20

指定子網中的所有主機: 10.35.202.0

指定域名的主機:

www.hekang.com

所有主機: *

3.設定輸出目錄的通路權限、使用者映射等。

通路權限選項:

設定輸出目錄隻讀: ro

設定輸出目錄讀寫: rw

使用者映射選項:

root_squash:将root使用者的通路映射為匿名(nfsnobody)使用者uid和gid;(預設生效)

no_root_squash:保留管理者權限,以伺服器管理者的權限管理; all_squash:将遠端通路的使用者及所屬組都映射為指定uid、gid的匿名使用者;

anonuid=xxx:将遠端通路的所有使用者都映射為指定uid的匿名使用者 anongid=xxx:将遠端通路的所有使用者組都映射為指定gid匿名組賬戶;

6.NFS伺服器的啟動與停止

啟動服務

service rpcbind start

service nfs start

檢視nfs服務狀态

service rpcbind status

service nfs status

停止NFS伺服器

service nfs stop

檢視rpc伺服器開啟了哪些端口

rpcinfo -p localhost

示例:

[root@master ~]# cat /etc/exports

/hekang 10.35.202.20(rw,all_squash,anonuid=1000,anongid=1000)

檢視共享目錄

[root@master ~]# exportfs

/hekang         10.35.202.20

服務端檢視nfs共享狀态

[root@master ~]# showmount -e 10.35.202.10

Export list for 10.35.202.10:

/hekang 10.35.202.20

用戶端挂載nfs伺服器共享目錄

指令 格式: mount nfs伺服器ip:共享目錄 本地挂載點目錄

mount -o vers=3 10.35.202.10:/hekang/ /hekang

mount -o vers=3共享本地―#指定挂載使用nfs V3版本(避免同步延遲)

exportfs 指令

exportfs -au # 解除安裝所有共享目錄

exportfs -ra # 重新共享所有目錄并輸出詳細資訊

繼續閱讀