网络文件系统(NFS)简介
網絡文件系統(Network File System, NFS)是一種分布式文件系統協議,最初由Sun Microsystems公司開發,并于1984年發布。其功能旨在允許客戶端主機可以像訪問本地存儲一樣通過網絡訪問服務器端文件。NFS和其他許多協議一樣,是基于開放網絡運算遠程過程調用(Open Network Computing Remote Procedure Call, ONC RPC)協議之上的。它是一個開放、標準的RFC(Request For Comments, 請求意見稿)協議,任何人或組織都可以依據標準實現它。
NFS版本包括:(1). NFSv1: 只在SUN公司內部用作實驗目的;(2). NFSv2: RFC 1094,1989年3月發布;(3). NFSv3: RFC 1813,1995年6月發布;(4). NFSv4: RFC 3010,2000年12月發布; (5). NFSv4.1: RFC 5661,2010年1月; (6). NFSv4.2: RFC 7862,2016年11月發布。
NFS通常用在Unix操作系統上和其他類Unix的操作系統。同時在其他一些操作系統也提供了NFS實現,例如Mac OS、OpenVMS、Microsoft Windows。
NFS的啟動需要透過所謂的遠程過程調用(RPC),也就是說,我們并不是只要啟動NFS就好了,還需要啟動RPC這個服務才行。
NFS最大的功能就是可以透過網絡,讓不同的機器、不同的操作系統、可以彼此分享個別的檔案(share files)。所以,你也可以簡單地將它看做是一個文件服務器(file server)。這個NFS服務器可以讓你的PC來將網絡遠程的NFS服務器分享的目錄,掛載到本地端的機器當中,在本地端的機器看起來,那個遠程主機的目錄就好像是自己的一個磁盤分區槽一樣(partition),使用上相當的便利。如下圖所示:當我們的NFS服務器設定好了分享出來的/home/sharefile這個目錄后,其它的NFS客戶端就可以將這個目錄掛載到自己系統上面的某個掛載點(掛載點可以自定義),例如下圖所示中的NFS client1與NFS client2掛載的目錄就不相同。我只要在NFS client1系統中進入/home/data/sharefile內,就可以看到NFS服務器系統內的/home/sharefile目錄下的所有數據了(當然,權限要足夠)。這個/home/data/sharefile就好像NFS client1自己機器里面的一個partition。只要權限對了,那么你就可以使用cp, cd, mv, rm…等等磁盤或檔案相關的指令。
因為NFS支持的功能相當的多,而不同的功能都會使用不同的程序來啟動,每啟動一個功能就會啟用一些端口來傳輸數據,因此,NFS的功能所對應的端口才沒有固定住,而是隨機取用一些未被使用的小于1024的埠口來作為傳輸之用。但如此一來又造成客戶端想要連上服務器時的困擾,因為客戶端得要知道服務器端的相關埠口才能夠聯機。此時,我們就得需要RPC的服務。RPC最主要的功能就是在指定每個NFS功能所對應的port number,并且回報給客戶端,讓客戶端可以連接到正確的埠口上去。那RPC又是如何知道每個NFS的埠口呢?這是因為當服務器在啟動NFS時會隨機取用數個埠口,并主動的向RPC注冊,因此RPC可以知道每個埠口對應的NFS功能,然后RPC又是固定使用port 111來監聽客戶端的需求并回報客戶端正確的埠口。要啟動NFS之前,RPC就要先啟動,否則NFS會無法向RPC注冊。另外,RPC若重新啟動時,原本注冊的數據會不見,因此RPC重新啟動后,它管理的所有服務都需要重新啟動來重新向RPC注冊。
NFS服務器在啟動的時候就得要向RPC注冊,所以NFS服務器也被稱為RPC server之一。 那么NFS服務器主要的任務是進行文件系統的分享,文件系統的分享則與權限有關。 所以NFS服務器啟動時至少需要兩個daemons ,一個管理客戶端是否能夠登入的問題,一個管理客戶端能夠取得的權限。
NFS本身的服務并沒有進行身份登入的識別,服務器端會以客戶端的使用者UID與GID等身份來嘗試讀取服務器端的文件系統。
一般來說,NFS的服務僅會對內部網域開放,不會對因特網開放的。然而,如果你有特殊需求的話,那么也可能會跨不同網域。
NFS好處:(1). 節省本地存儲空間,將常用的數據存放在一臺NFS服務器上且可以通過網絡訪問,那么本地終端將可以減少自身存儲空間的使用;(2). 用戶不需要在網絡中的每個機器上都建有Home目錄,Home目錄可以放在NFS服務器上且可以在網絡上被訪問使用;(3). 一些存儲設備如軟驅、CDROM和Zip(一種高儲存密度的磁盤驅動器與磁盤)等都可以在網絡上被別的機器使用,這可以減少整個網絡上可移動介質設備的數量。
NFS組成:NFS體系至少有兩個主要部分,一臺NFS服務器和若干臺客戶機,如下圖所示,客戶機通過TCP/IP網絡遠程訪問存放在NFS服務器上的數據。在NFS服務器正式啟用前,需要根據實際環境和需求,配置一些NFS參數。
NFS應用:NFS有很多實際應用,下面是比較常見的一些:(1). 多個機器共享一臺CDROM或者其它設備,這對于在多臺機器中安裝軟件來說更加便宜跟方便;(2). 在大型網絡中,配置一臺中心NFS服務器用來防止所有用戶的home目錄可能會帶來便利。這些目錄能被輸出到網絡以便用戶不管在哪臺工作站上登錄,總能得到相同的home目錄;(3). 不同客戶端可以NFS上觀看影視文件,節省本地空間;(4). 在客戶端完成的工作數據,可以備份保存到NFS服務器上用戶自己的路徑下。NFS是運行在應用層的協議,隨著NFS多年的發展和改進,NFS既可以用于局域網也可以用于廣域網,且與操作系統和硬件無關,可以在不同的計算機或系統上運行。
以上內容均來自網絡整理,主要參考:
1.?https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F
2.?http://cn.linux.vbird.org/linux_server/0330nfs.php
3.?https://baike.baidu.com/item/NFS/812203
總結
以上是生活随笔為你收集整理的网络文件系统(NFS)简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ImageNet图像数据集介绍
- 下一篇: 程序员的自我修养--链接、装载与库笔记: