NFS ( Network FileSystem ) (转)

来源:互联网 发布:java增删改查实例项目 编辑:程序博客网 时间:2024/06/09 20:58
在開始進行 NFS 的設定之前,我們得先來瞭解一下,什麼是 NFS 呢?不然講了一堆也沒有用,對吧! ^_^!所謂的 NFS 就是 Network FileSystem 的縮寫,最早之前是由 Sun 這家公司所發展出來的。他最大的功能就是可以透過網路,讓不同的機器、不同的作業系統、可以彼此分享個別的檔案 ( share file ),所以,您也可以簡單的將他看做是一個 file server 呢!這個 NFS Server 可以讓您的 PC 來將網路遠端的 NFS 主機分享的目錄,掛載到本地端的機器當中,所以,在本地端的機器看起來,那個遠端主機的目錄就好像是自己的一個磁碟分割槽一樣 ( partition )!使用上面相當的便利!
 

圖一、NFS 主機分享目錄與 Client 掛載示意圖
 
就如同上面的圖示一般,當我們的 NFS Server 設定好了分享出來的 /home/sharefile 這個目錄後,其他的 Client 端就可以將這個目錄掛載到自己系統上面的某個掛載點(掛載點可以自訂!),例如前面圖示中的 Personal Computer 1 與 Personal Computer 2 掛載的目錄就不相同。我只要在 Personal Computer 1 系統中進入 /home/data/sharefile 內,就可以看到 NFS Server 系統內的 /home/sharefile 目錄下的所有資料了 (當然,權限要足夠啊!^_^)!這個 /home/data/sharefile 就好像我自己 Personal Computer 1 裡面的一個 partition 喔!只要權限對了,那麼您可以使用 cp, cd, mv, rm... 等等磁碟或檔案相關的指令!真是他X的方便吶!
 
那麼您或許會問啦:『咦!那麼這個 NFS 是藉由什麼樣的協定來進行傳輸的呢?』雖然 NFS 有屬於自己的協定與使用的 port number ,但是在資料傳送或者其他相關訊息傳遞的時候, NFS 使用的則是一個稱為遠端程序呼叫( Remote Procedure Call, RPC )的協定來協助 NFS 本身的運作! 
 

什麼是 RPC ( Remote Procedure Call )
 
那麼什麼是 RPC 呢?由字面上的意思來看『遠端程序呼叫』不就是一些程式( Program )在執行遠端連線時,需要用到的程序嗎?呵呵!是這樣沒錯啦!簡單的來說,當我們在使用某些服務來進行遠端連線的時候,有些資訊,例如主機的 IP、服務的 port number、與對應到的服務之 PID 等等,都需要管理與對應!這些管理 port 的對應與服務相關性的工作,就是這個 Remote Procedure Call, RPC 的任務了!
 
好了,如果我們將 NFS 與 RPC 兩者的相關性連接起來的話,那麼您應該就可以知道: NFS 本身的服務並沒有提供資料傳遞的協定,但是 NFS 卻能讓我們進行檔案的分享,這其中的原因,就是 NFS 使用到一些其他相關的傳輸協定!而這些傳輸的協定,就是使用到這個所謂的 RPC 的功能囉!這也就是說, NFS 本身就是使用 RPC 的一個 program 就是了!說的更白話一點, NFS 也可以視作是一個 RPC server 啦!同時要注意到的是,在某些狀況中,不但跑 NFS 的 Server 需要啟動 RPC 的服務,連帶的,要掛載 NFS partition 的 Client 機器,也需要同步啟動 RPC 才行!這樣 Server 端與 Client 端才能藉由 RPC 的協定來進行 program port 的對應喔!
 
OK!簡單的說, NFS 也可以看做是 RPC server 的一種,因為他是使用這種協定的 program 呀! ^_^ !那麼為什麼 NFS 要使用 RPC 執行呢?這是因為 NFS 本身可以被看做是一個檔案系統,那麼一來的話,您的使用者連線常常變化,而且您的檔案內容啦、分享的目錄啦,還有其他檔案相關的資訊等等,也都會常常在變化,這個時候,使用類似這種可以對應 program number 與 port number 的 RPC 就相當的方便了!也就是說,NFS 主要在管理分享出來的目錄,而至於資料的傳遞,就直接將他丟給 RPC 的協定來運作就是了!
 
更多關於 NFS 協定的資訊您可以參考底下的網頁:
 
  • http://www.faqs.org/rfcs/rfc1094.html
  • http://www.tldp.org/HOWTO/NFS-HOWTO/index.html
 

另,信息化名词注解:NFS :http://industry.ccidnet.com/art/786/20050520/254239_1.html
NFS(Network File System)是一种分布式文件系统,允许网络中的计算机象本地机一样的使用另一台联网计算机的文件和外设。它主要用在UNIX平台上,但有些重要的部分也移到了PC机上。