1)服務消費方(client)呼叫以本機呼叫方式呼叫服務;
2)client stub接收到呼叫後負責將方法、參數等組裝成能夠進行網路傳輸的訊息體;
3)client stub找到服務位址,並將訊息傳送到服務端;
4)server stub收到訊息後進行解碼;
5)server stub根據解碼結果呼叫本地的服務;
6)本機服務執行並將結果傳回給server stub;
7)server stub將回傳結果打包成訊息並傳送至消費方;
8)client stub接收到訊息,並進行解碼;
9)服務消費方得到最終結果。
NFS簡介NFS(Network File System)即網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的電腦之間透過TCP/IP網路共享資源。在NFS的應用程式中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的文件,就像存取本機檔案一樣。
目前NFS主要有兩個版本(NFSv2,NFSv3)兩個版本,而NFSv2和NFSv3除了3版本支援更多的新特性以外,最主要的區別應該是NFSv2是使用UDP協定進行傳輸的,所以NFSv2的連接在複雜網路環境下可能沒有那麼可靠,而NFSv3同時支援UDP和TCP協定。
剛剛看了一下,Centos7已經支援NFSv4協定了,這裡就不貼NFSv4了,有時間了再去看v4吧。
當client端要掛載NFS共享卷的時候,會發送RPC請求給服務端,而NFS服務端會在用戶驗證後將一個隨機的cookie傳送至客戶端,以便客戶端使用這個cookie來認證那些要存取的共享卷。
NFS的驗證支援內建的IP/主機權限分配,同時也被tcp wrappers所限制。
Redhat上的NFS服務Redhat核心中預設就開啟了NFS支持,並且透過NFS的Daemon來控制NFS服務端的啟動,而負責將網路套接字和RPC呼叫綁定起來,還需要一個rpcbind服務(在redhat5中名為portmap),如果你在系統中找不到nfs服務,是因為沒有安裝nfs-utils這個包,這個包提供了一些工具和服務腳本等。
整個NFS服務大概包含以下幾個(抄自紅帽官方文檔,但有點老了好像):
NFS服務提供了這幾個RPC呼叫(函數):
NFS的設定檔在/etc/exports
預設是一個空文件,只需要按照如下格式配置即可,一行一個共享卷
host:限定主機(網域)
1.單一主機或IP
2.通配符*(匹配任意字元)或?(符合任意單一字元),用在網域名稱或主機名稱中
3.IP/MASK,例如 192.168.110.0/24
options:掛載選項,用於限定前面主機的掛載權限。
常用選項:
以上是初步認識Linux下的NFS服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!