偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

網(wǎng)絡文件系統(tǒng)與 Linux

運維 系統(tǒng)運維
  網(wǎng)絡文件系統(tǒng)(NFS)從 1984 年問世以來持續(xù)演變,并已成為分布式文件系統(tǒng)的基礎(chǔ)。當前,NFS(通過 pNFS 擴展)通過網(wǎng)絡對分布的文件提供可擴展的訪問。探索分布式文件系背后的理念,特別是,最近 NFS 文件進展。

  網(wǎng)絡文件系統(tǒng)(NFS)是文件系統(tǒng)之上的一個網(wǎng)絡抽象。他是 NFS 是在 UNIX 和 Linux 系統(tǒng)中***的網(wǎng)絡文件系統(tǒng),用來允許遠程客戶端以與本地文件系統(tǒng)類似的方式,通過網(wǎng)絡進行訪問。雖然 NFS 不是***個此類系統(tǒng),但是它已經(jīng)發(fā)展并演變成 UNIX 系統(tǒng)中***大最廣泛使用的網(wǎng)絡文件系統(tǒng)。NFS 允許在多個用戶之間共享公共文件系統(tǒng),并提供數(shù)據(jù)集中的優(yōu)勢,來最小化所需的存儲空間。

  本文以 NFS 的簡短歷史開始,到它的起源,再到它如何演化。然后探索了 NFS架構(gòu)以及 NFS 的走向。

一、NFS 的簡短歷史

  ***個網(wǎng)絡文件系統(tǒng) — 稱為 File Access Listener — 由 Digital Equipment Corporation(DEC)在 1976 年開發(fā)。Data Access Protocol(DAP)的實施,這是 DECnet 協(xié)議集的一部分。比如 TCP/IP,DEC 為其網(wǎng)絡協(xié)議發(fā)布了協(xié)議規(guī)范,包括 DAP。

  NFS 是***個現(xiàn)代網(wǎng)絡文件系統(tǒng)(構(gòu)建于 IP 協(xié)議之上)。在 20 世紀 80 年代,它首先作為實驗文件系統(tǒng),由 Sun Microsystems 在內(nèi)部完成開發(fā)。NFS 協(xié)議已歸檔為 Request for Comments(RFC)標準,并演化為大家熟知的 NFSv2。作為一個標準,由于 NFS 與其他客戶端和服務器的互操作能力而發(fā)展快速。

  標準持續(xù)地演化為 NFSv3,在 RFC 1813 中有定義。這一新的協(xié)議比以前的版本具有更好的可擴展性,支持大文件(超過 2GB),異步寫入,以及將 TCP 作為傳輸協(xié)議,為文件系統(tǒng)在更廣泛的網(wǎng)絡中使用鋪平了道路。在 2000 年,RFC 3010(由 RFC 3530 修訂)將 NFS 帶入企業(yè)設(shè)置。Sun 引入了具有較高安全性,帶有狀態(tài)協(xié)議的 NFSv4(NFS 之前的版本都是無狀態(tài)的)。今天,NFS 是版本 4.1(由 RFC 5661 定義),它增加了對跨越分布式服務器的并行訪問的支持(稱為 pNFS extension)。

  NFS 的時間表,包括記錄其特性的特定 RFC ,都在圖 1 中有展示。

  圖 1. NFS 協(xié)議的時間表

  

NFS 協(xié)議的時間表

 

  令人驚訝的是,NFS 已經(jīng)歷了幾乎 30 年的開發(fā)。 它代表了一個非常穩(wěn)定的(及可移植)網(wǎng)絡文件系統(tǒng),它可擴展、高性能、并達到企業(yè)級質(zhì)量。由于網(wǎng)絡速度的增加和延遲的降低,NFS 一直是通過網(wǎng)絡提供文件系統(tǒng)服務具有吸引力的選擇。甚至在本地網(wǎng)絡設(shè)置中,虛擬化驅(qū)動存儲進入網(wǎng)絡,來支持更多的移動虛擬機。NFS 甚至支持***的計算模型,來優(yōu)化虛擬的基礎(chǔ)設(shè)施。

二、NFS 架構(gòu)

  NFS 允許計算的客戶 — 服務器模型(見圖 2)。服務器實施共享文件系統(tǒng),以及客戶端所連接的存儲??蛻舳藢嵤┯脩艚涌趤砉蚕砦募到y(tǒng),并加載到本地文件空間當中。

  圖 2. NFS 的客戶端 — 服務器架構(gòu)

  

NFS 的客戶端 — 服務器架構(gòu)

 

  在 Linux 中,虛擬文件系統(tǒng)交換(VFS)提供在一個主機上支持多個并發(fā)文件系統(tǒng)的方法(比如 CD-ROM 上的 International Organization for Standardization [ISO] 9660,以及本地硬盤上的 ext3fs )。VFS 確定需求傾向于哪個存儲,然后使用哪些文件系統(tǒng)來滿足需求。由于這一原因,NFS 是與其他文件系統(tǒng)類似的可插拔文件系統(tǒng)。對于 NFS 來說,唯一的區(qū)別是輸入/輸出(I/O)需求無法在本地滿足,而是需要跨越網(wǎng)絡來完成。

  一旦發(fā)現(xiàn)了為 NFS 指定的需求,VFS 會將其傳遞給內(nèi)核中的 NFS 實例。 NFS 解釋 I/O 請求并將其翻譯為 NFS 程序(OPEN、ACCESS、CREATE、READ、CLOSE、REMOVE 等等)。這些程序,歸檔在特定 NFS RFC 中,指定了 NFS 協(xié)議中的行為。一旦從 I/O 請求中選擇了程序,它會在遠程程序調(diào)用(RPC)層中執(zhí)行。正如其名稱所暗示的,RPC 提供了在系統(tǒng)間執(zhí)行程序調(diào)用的方法。它將封送 NFS 請求,并伴有參數(shù),管理將它們發(fā)送到合適的遠程對等級,然后管理并追蹤響應,提供給合適的請求者。

  進一步來說,RPC 包括重要的互操作層,稱為外部數(shù)據(jù)表示(XDR),它確保當涉及到數(shù)據(jù)類型時,所有 NFS 參與者使用相同的語言。當給定架構(gòu)執(zhí)行請求時,數(shù)據(jù)類型表示可能不同于滿足需求的目標主機上的數(shù)據(jù)類型。XDR 負責將類型轉(zhuǎn)換為公共表示(XDR),便于所有架構(gòu)能夠與共享文件系統(tǒng)互操作。XDR 指定類型字節(jié)格式(比如 float)和類型的字節(jié)排序(比如修復可變長數(shù)組)。雖然 XDR 以其在 NFS 中的使用而聞名,當您在公共應用程序設(shè)置中處理多個架構(gòu)時,它是一個有用的規(guī)范。

  一旦 XDR 將數(shù)據(jù)轉(zhuǎn)換為公共表示,需求就通過網(wǎng)絡傳輸給出傳輸層協(xié)議。早期 NFS 采用 Universal Datagram Protocol(UDP),但是,今天 TCP 因為其優(yōu)越的可靠性而更加通用。

  在服務器端,NFS 以相似的風格運行。需求到達網(wǎng)絡協(xié)議棧,通過 RPC/XDR(將數(shù)據(jù)類型轉(zhuǎn)換為服務器架構(gòu)) 然后到達 NFS 服務器。NFS 服務器負責滿足需求。需求向上提交給 NFS 守護進程,它為需求標示出目標文件系統(tǒng)樹,并且 VFS 再次用于在本地存儲中獲取文件系統(tǒng)。整個流程在圖 3 中有展示。注意,服務器中的本地文件系統(tǒng)是典型的 Linux 文件系統(tǒng)(比如 ext4fs)。因此,NFS 不是傳統(tǒng)意義上的文件系統(tǒng),而是訪問遠程文件系統(tǒng)的協(xié)議。

  圖 3. 客戶端和服務器 NFS 堆棧

  

客戶端和服務器 NFS 堆棧

 

  對于高延遲網(wǎng)絡,NFSv4 實現(xiàn)稱為 compound procedure 的程序。這一程序從本質(zhì)上允許在單個請求中嵌入多個 RPC 調(diào)用,來最小化通過網(wǎng)絡請求的 transfer tax。它還為響應實現(xiàn)回調(diào)模式。

三、NFS 協(xié)議

  從客戶端的角度來說,NFS 中的***個操作稱為 mount。 Mount 代表將遠程文件系統(tǒng)加載到本地文件系統(tǒng)空間中。該流程以對 mount(Linux 系統(tǒng)調(diào)用)的調(diào)用開始,它通過 VFS 路由到 NFS 組件。確認了加載端口號之后(通過 get_port 請求對遠程服務器 RPC 調(diào)用),客戶端執(zhí)行 RPC mount 請求。這一請求發(fā)生在客戶端和負責 mount 協(xié)議(rpc.mountd)的特定守護進程之間。這一守護進程基于服務器當前導出文件系統(tǒng)來檢查客戶端請求;如果所請求的文件系統(tǒng)存在,并且客戶端已經(jīng)訪問了,一個 RPC mount 響應為文件系統(tǒng)建立了文件句柄。客戶端這邊存儲具有本地加載點的遠程加載信息,并建立執(zhí)行 I/O 請求的能力。這一協(xié)議表示一個潛在的安全問題;因此,NFSv4 用內(nèi)部 RPC 調(diào)用替換這一輔助 mount 協(xié)議,來管理加載點。

  要讀取一個文件,文件必須首先被打開。在 RPC 內(nèi)沒有 OPEN 程序;反之,客戶端僅檢查目錄和文件是否存在于所加載的文件系統(tǒng)中??蛻舳艘詫δ夸浀?GETATTR RPC 請求開始,其結(jié)果是一個具有目錄屬性或者目錄不存在指示的響應。接下來,客戶端發(fā)出 LOOKUP RPC 請求來查看所請求的文件是否存在。如果是,會為所請求的文件發(fā)出 GETATTR RPC 請求,為文件返回屬性?;谝陨铣晒Φ?GETATTRs 和 LOOKUPs,客戶端創(chuàng)建文件句柄,為用戶的未來需求而提供的。

  利用在遠程文件系統(tǒng)中指定的文件,客戶端能夠觸發(fā) READ RPC 請求。READ 包含文件句柄、狀態(tài)、偏移、和讀取計數(shù)??蛻舳瞬捎脿顟B(tài)來確定操作是否可執(zhí)行(那就是,文件是否被鎖定)。偏移指出是否開始讀取,而計數(shù)指出所讀取字節(jié)的數(shù)量。服務器可能返回或不返回所請求字節(jié)的數(shù)量,但是會指出在 READ RPC 回復中所返回(隨著數(shù)據(jù))字節(jié)的數(shù)量。

四、NFS 中的創(chuàng)新

  NFS 的兩個***版本(4 和 4.1)對于 NFS 來說是最有趣和最重要的。讓我們來看一下 NFS 創(chuàng)新最重要的一些方面。

  在 NFSv4 之前,存在一定數(shù)量的輔助協(xié)議用于加載、鎖定、和文件管理中的其他元素。NFSv4 將這***程簡化為一個協(xié)議,并將對 UDP 協(xié)議的支持作為傳輸協(xié)議移除。NFSv4 還集成支持 UNIX 和基于 Windows® 的文件訪問語義,將本地集成 NFS 擴展到其他操作系統(tǒng)中。

  NFSv4.1 介紹針對更高擴展性和更高性能的并行 NFS(pNFS)的概念。 要支持更高的可擴展性,NFSv4.1 具有腳本,與集群化文件系統(tǒng)風格類似的拆分數(shù)據(jù)/元數(shù)據(jù)架構(gòu)。如 圖 4 所展示的,pNFS 將生態(tài)系統(tǒng)拆分為三個部分:客戶端、服務器和存儲。您可看到存在兩個路徑:一個用于數(shù)據(jù),另一個用于控制。pNFS 將數(shù)據(jù)布局與數(shù)據(jù)本身拆分,允許雙路徑架構(gòu)。當客戶想要訪問文件時,服務器以布局響應。布局描述了文件到存儲設(shè)備的映射。當客戶端具有布局時,它能夠直接訪問存儲,而不必通過服務器(這實現(xiàn)了更大的靈活性和更優(yōu)的性能)。當客戶端完成文件操作時,它會提交數(shù)據(jù)(變更)和布局。如果需要,服務器能夠請求從客戶端返回布局。

  pNFS 實施多個新協(xié)議操作來支持這一行為。LayoutGet 和 LayoutReturn 分別從服務器獲取發(fā)布和布局,而 LayoutCommit 將來自客戶端的數(shù)據(jù)提交到存儲庫,以便于其他用戶使用。服務器采用 LayoutRecall 從客戶端回調(diào)布局。布局跨多個存儲設(shè)備展開,來支持并行訪問和更高的性能。

  圖 4. NFSv4.1 的 pNFS 架構(gòu)

  

NFSv4.1 的 pNFS 架構(gòu)

 

  數(shù)據(jù)和元數(shù)據(jù)都存儲在存儲區(qū)域中??蛻舳丝赡軋?zhí)行直接 I/O ,給出布局的回執(zhí),而 NFSv4.1 服務器處理元數(shù)據(jù)管理和存儲。雖然這一行為不一定是新的,pNFS 增加功能來支持對存儲的多訪問方法。當前,pNFS 支持采用基于塊的協(xié)議(光纖通道),基于對象的協(xié)議,和 NFS 本身(甚至以非 pNFS 形式)。

  通過 2010 年 9 月發(fā)布的對 NFSv2 的請求,繼續(xù)開展 NFS 工作。其中以新的提升定位了虛擬環(huán)境中存儲的變化。例如,數(shù)據(jù)復制與在虛擬機環(huán)境中非常類似(很多操作系統(tǒng)讀取/寫入和緩存相同的數(shù)據(jù))。由于這一原因,存儲系統(tǒng)從整體上理解復制發(fā)生在哪里是很可取的。這將在客戶端保留緩存空間,并在存儲端保存容量。NFSv4.2 建議用共享塊來處理這一問題。因為存儲系統(tǒng)已經(jīng)開始在后端集成處理功能,所以服務器端復制被引入,當服務器可以高效地在存儲后端自己解決數(shù)據(jù)復制時,就能減輕內(nèi)部存儲網(wǎng)絡的負荷。其他創(chuàng)新出現(xiàn)了,包括針對 flash 存儲的子文件緩存,以及針對 I/O 的客戶端提示 (潛在地采用 mapadvise 作為路徑)。

五、NFS 的替代物

  雖然 NFS 是在 UNIX 和 Linux 系統(tǒng)中***的網(wǎng)絡文件系統(tǒng),但它當然不是唯一的選擇。在 Windows系統(tǒng)中,ServerMessage Block [SMB](也稱為 CIFS)是最廣泛使用的選項(如同 Linux 支持 SMB一樣,Windows 也支持 NFS)。

  ***的分布式文件系統(tǒng)之一,在 Linux 中也支持,是 Ceph。Ceph 設(shè)計為容錯的分布式文件系統(tǒng),它具有 UNIX 兼容的 Portable Operating System Interface(POSIX)。您可在 參考資料 中深入了解 Ceph。

  其他例子包括 OpenAFS,是 Andrew 分布式文件系統(tǒng)的開源版(來自 Carnegie Mellon 和 IBM),GlusterFS,關(guān)注于可擴展存儲的通用分布式文件系統(tǒng),以及 Lustre,關(guān)注于集群計算的大規(guī)模并行分布式文件系統(tǒng)。所有都是用于分布式存儲的開源軟件解決方案。

六、更進一步

  NFS 持續(xù)演變,并與 Linux 的演變類似(支持低端、嵌入式、和高端性能),NFS 為客戶和企業(yè)實施可擴展存儲解決方案。關(guān)注 NFS 的未來可能會很有趣,但是根據(jù)歷史和近期的情況看,它將會改變?nèi)藗儾榭春褪褂梦募鎯Φ姆椒ā?/p>

【編輯推薦】

  1. Linux NFS應用案例分析
  2. 詳談Linux NFS的問題
  3. Linux NFS服務器性能優(yōu)化
  4. Linux下NFS網(wǎng)絡文件系統(tǒng)設(shè)定及管理
  5. Linux網(wǎng)絡文件系統(tǒng)NFS的配置
  6. 如何從IIS應用程序訪問網(wǎng)絡文件
責任編輯:zhaolei 來源: IT專家網(wǎng)
相關(guān)推薦

2011-01-13 14:10:30

Linux文件系統(tǒng)

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2011-01-11 10:00:35

網(wǎng)絡文件系統(tǒng)NFS

2021-04-12 05:44:44

Linux文件系統(tǒng)

2021-06-06 16:55:22

Linux文件系統(tǒng)

2017-04-25 15:50:02

sparse傳輸處理

2009-11-26 11:31:34

NFS網(wǎng)絡文件系統(tǒng)設(shè)定

2009-12-25 09:58:46

linux劃分文件系統(tǒng)

2009-12-22 15:12:33

Linux擴展文件系統(tǒng)

2009-12-14 13:14:57

2021-11-01 13:38:55

Linux文件系統(tǒng)

2021-05-31 07:50:59

Linux文件系統(tǒng)

2018-08-24 10:10:25

Linux文件系統(tǒng)技術(shù)

2019-09-20 10:04:45

Linux系統(tǒng)虛擬文件

2009-12-22 09:43:13

Linux文件系統(tǒng)組織

2017-08-14 13:35:36

Linux共享內(nèi)存tmpfs文件系統(tǒng)

2016-12-27 10:48:59

Linux命令磁盤與文件系統(tǒng)

2023-08-08 09:52:13

系統(tǒng)端架構(gòu)NFS

2021-01-22 10:40:08

Linux文件內(nèi)存

2010-07-27 10:15:38

NFS網(wǎng)絡文件系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號