NFS 與 iSCSI 在存取虛擬機器資料方面的比較

NFS 與 iSCSI – 儲存 VMware 虛擬機器檔案時該選擇哪種協定?當您需要配置共用儲存空間來儲存必須在 ESXi 主機之間遷移的虛擬機器(VM),以便使用 聚類特點,以及當伺服器上已無可用插槽可連接實體硬碟時。

在大型資料中心部署 VMware vSphere 的組織,通常傾向採用光纖通道 (FC) 或乙太網光纖通道 (FCoE),但這些技術成本高昂。 然而,對於採用 VMware vSphere 基礎架構的中小型資料中心而言,NFS 和 iSCSI 卻頗具吸引力,因為配置這些檔案分享協定所需的硬體成本較為低廉。這篇部落格文章將比較 NFS 與 iSCSI,重點探討它們在 VMware vSphere 虛擬基礎架構中的應用。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

什麼是 NFS?

網路檔案系統(NFS)是一種網路協定,可讓您將儲存於伺服器磁碟或磁碟陣列上的檔案,與網路中的其他電腦共享。NFS 由 SUN Microsystems 開發,其第一個版本於 1984 年推出。截至本文撰寫時,NFS 的最新實作版本為 4.1。4.2 版目前仍在開發中,尚未推出供生產環境使用。

隨著每個新版本的 NFS 推出,皆新增了各項特點與改進,其中包含對虛擬化儲存極具助益的特點。NFS v4.1 提供了一種機制,允許多名使用者共用同一個檔案,並確保資料的一致性(並行存取)。此版本亦支援多執行緒操作。

NFS 是一種在開放系統互連(OSI)模型應用層運作的協定。 客戶端透過向 NFS 伺服器發送遠端程序呼叫 (RPC) 請求來存取檔案,以對 NFS 伺服器上的檔案和目錄執行操作。

RPC 請求會傳送至 XDR 協定(外部資料表示法),該協定運作於呈現層,並作為跨平台資料抽象化的標準。XDR 描述了一種統一且規範的資料表示形式,不依賴於計算系統的架構。 當客戶端傳輸資料時,RPC 客戶端會將本地資料轉換為規範形式,而伺服器則執行反向操作。

一旦資料統一完成,客戶端側的 RPC 服務便會確保遠端程序的請求及其在伺服器上的執行(提供會話層的特點)。至此,關於 NFS 特定層級的說明已告完成。 接著,資料會被封裝成標準的 TCP 或 UDP 資料單元,並傳遞至 OSI 模型的底層。

OSI 模型 協議
應用 NFS
簡報 XDR
會期 RPC
運輸 TCP
網路 IP
資料鏈路 乙太網路
物理

NFS 在檔案層級上共享資料. 具備乙太網路介面和 RJ-45 連接埠的標準網路介面卡可用於建置 NFS 共用儲存空間。

最早期的 NFS 版本透過 IP 網路使用 UDP 通訊,而較新的版本(NFS v2 和 v3)則可透過 TCP 和 UDP 運作。NFS 4.0 和 4.1 採用 IPv4 上的 TCP 作為標準。NFS v4 可穿透防火牆並透過網際網路運作。

VMware vSphere ESXi 6.0 以及更高版本的 ESXi 支援 NFS 3.0 和 NFS 4.1。ESXi 內建 NFS 客戶端,可透過 TCP/IP 連線至 NFS 伺服器。 連接 NFS 3.0 和 4.1 版本時,會使用兩種不同的 NFS 客戶端。您可以在建立新的 NFS 資料存放區時,選擇要使用的 NFS 版本。當使用 NFS v.4.1 時,VMware 不支援以下特點:

  • 儲存 DRS
  • 儲存裝置 I/O 控制
  • 站點還原 Manager

在儲存虛擬機器範本及用於在虛擬機器上安裝作業系統的 ISO 映像檔時,使用 NFS 資料存放區相當方便。

什麼是 iSCSI?

網際網路小型電腦介面(iSCSI)是一種網路協定,旨在確保網路中各實體(發起端與目標端)之間的互動,以實現資料共享。 iSCSI 發起端配置於客戶端,而 iSCSI 目標則配置於伺服器端。

iSCSI 發起端可分為軟體型與硬體型。硬體型發起端有助於減輕客戶端主機中央處理器(CPU 或處理器)的負載,並需安裝硬體主機匯流排適配器(HBA)。硬體 iSCSI HBA 是一種具備乙太網路介面的網路介面控制器(NIC)。 在這篇 iSCSI 與 NFS 的比較中,我將探討軟體型 iSCSI 啟動器的應用。iSCSI 於 2003 年問世,並在 RFC 3720 中有所描述。

iSCSI 是一種會話層協定(運作於 OSI 模型的第 5 層),其運作於 TCP/IP 協定疊之上。 資料是在區塊層級進行共享的,這點與 NFS 不同,但與 FC 相似。這是 iSCSI 與 NFS 比較時的一個重要重點。SCSI 指令被封裝在 TCP/IP 資料單元中,並透過標準乙太網路進行傳輸。因此,一台電腦可以透過網路,將 SCSI 指令傳送至另一台電腦的位置上的儲存區塊裝置。

圖層 說明
應用 檔案系統、資料庫等
SCSI SCSI 資料、SCSI 指令、SCSI 狀態
iSCSI iSCSI 協定服務、iSCSI 合格名稱 (IQN)、網際網路儲存名稱服務 (iSNS)、CHAP 驗證等。
TCP 一種具備錯誤控制機制的通訊協定(通常運作於 TCP/IP 協定疊層中)
IP 一種網路通訊與路由協定
乙太網路 交換器、纜線、連接埠(連接器)、通訊協定

註: 關於如何運用 iSCSI,有個有趣的事實是 VMware 虛擬機器還原. 當您在 NAKIVO Backup & Replication例如,若要直接從備份在 ESXi 主機上執行虛擬機器,系統會先在選定的 ESXi 主機上建立該虛擬機器,並透過 iSCSI 協定將虛擬磁碟掛載至該虛擬機器,作為虛擬相容模式下的 RDM 磁碟。

VMware NFS 與 iSCSI – 主要差異

NFS 和 iSCSI 皆可在採用銅纜部署的 1 千兆位元及 10 千兆位元乙太網路(1GbE 和 10GbE)中運作。網路速度越高越好。進一步了解 網路拓撲. 在 VMware vSphere 中使用共用資料存放區儲存虛擬機器檔案時,兩種實現方式(NFS 和 iSCSI)皆可用於虛擬機器的即時遷移、負載平衡,以及虛擬機器在資料存放區之間的遷移。這兩種共用協定都會因 TCP/IP 網路上的多層資料封裝機制而產生顯著的開銷。

大多數供應商的 NAS設備皆支援 NFS,例如, Synology 以及 QNAP. 不過,現今要挑選支援 iSCSI 的 NAS 已非難事。

讓我們更詳細地探討這篇關於 VMware NFS 與 iSCSI 的比較分析。

負載平衡

當某條網路路徑發生故障或過載時,若存在多條路徑,多路徑功能即可在伺服器與儲存裝置之間進行負載平衡。

若伺服器支援連線匯聚(但不支援 Client ID 匯聚),NFS 4.1 即支援多路徑功能。因此,您可以透過多個 IP 位址存取單一 NFS 卷宗。若使用 NFS v3,請採用 DNS 輪詢方式進行網路負載平衡。

在 VMware vSphere 中,iSCSI 多路徑功能運作於 VMkernel 網路介面卡層級。若要在 vSphere 中進行 iSCSI 負載平衡,您可以使用埠綁定。

快取

在使用 NFS 時,具備檔案系統快取的檔案系統的位置在 NFS 伺服器上,而客戶端機器應持續向 NFS 伺服器查詢元資料。NFS v3 和 v4 支援非同步資料寫入,但元資料更新則是同步進行的。

使用 iSCSI 時,客戶端裝置會在取得區塊層級的共用儲存空間存取權限後建立檔案系統(例如在 VMware vSphere 中,ESXi 主機會在 iSCSI LUN 上建立 VMFS 檔案系統)。iSCSI 共用儲存空間的檔案系統會定義快取政策,且檔案系統快取的位置位於客戶端。 舉例來說,若您使用 iSCSI 作為共享協定並採用 ext3 作為檔案系統,則資料與元資料更新將採用完整的寫回式快取機制。

最現代化的檔案系統採用非同步元資料更新,並使用基於日誌的日誌記錄機制進行資料還原。一般而言,相較於 NFS 等協定所採用的同步更新,非同步資料更新(iSCSI 所採用)在資料與元資料的持久性方面較不具可靠性。

可靠性

NFS. 網路介面卡(NIC)綑綁功能可用於防範網路故障。若其中一張網路介面卡發生故障,另一張網路介面卡仍可繼續運作。

iSCSI. VMware 可插拔儲存架構 (PSA) 在與 iSCSI 陣列協作時,會使用"儲存陣列類型"外掛程式來實現故障移轉。iSCSI 綁定需要將位於不同子網上的多個 iSCSI 目標映射至 iSCSI 發起端。

由於 iSCSI 和 NFS 均使用 TCP 進行封裝,因此資料傳輸會在網路層級進行檢查。

若您將資料儲存於 iSCSI 儲存裝置上的 VMFS,系統可能會變得不穩定 精簡配置 虛擬機器的虛擬磁碟。一旦發生停電,磁碟區可能無法恢復。在此類情況下,NFS 資料存放區的運作表現會稍微更為可靠。若能定期執行 VMware 備份.

安全

iSCSI 流量通常未經加密,但這並不表示無法保護 iSCSI 流量。iSCSI 共用資料夾支援使用使用者名稱和密碼進行驗證。挑戰握手驗證協定 (CHAP) 可讓伺服器與客戶端確保彼此互信。

NFS 支援基於主機的驗證。 NFS 的預設設定不提供加密功能(sys=system),但若在啟用 Kerberos 的情況下使用 NFSv4(sec=krb5p),連線即為安全的。在 NFS 伺服器設定中,您必須定義允許存取 NFS 共用資料夾的主機 IP 位址。 您也可以定義多個主機或整個子網。例如,廣為人知的 SMB 檔案分享協定依賴於基於使用者的驗證。

在 VMware vSphere 中使用共享的 iSCSI 和 NFS 儲存時,建議配置專用 VLAN 或使用獨立的(私有)實體網路。此方法可讓您將儲存流量與其他類型的流量隔離。 NFS v3 並未具備與 NFS v4.1 相似的安全特點。當未使用 Kerberos 時,ESXi 伺服器會以 root 權限掛載 NFS 共用資料夾。因此,在進行安全設定時請務必留意此點。另請參閱 VLAN 與 VXLAN.

NFS v.4.1 除了支援資料加密標準 (DES) 之外,還支援採用加密機制的 Kerberos 驗證。Kerberos 中的加密演算法可防止未經授權的使用者存取 NFS 流量。ESXi 支援 Kerberos 的 krb5 和 krb5i 實作。 ESXi 7.0 支援 NFS 4.1 的 Kerberos 加密以及 AUTH_SYS 安全性機制(但無法同時使用)。

VMware NFS 與 iSCSI 之比較 — 原始裝置映射

當使用 iSCSI 作為共用儲存裝置時,您可以為虛擬機器 (VM) 設定原始裝置映射。原始裝置映射 (RDM) 是一項特點,可讓您將整個實體磁碟或 iSCSI LUN 直接作為裝置掛載至虛擬機器(而非在虛擬機器設定中掛載虛擬磁碟)。 基於 RDM 的方法有別於傳統做法:傳統做法是在 LUN(邏輯單元號)上建立資料存放區,建立 VMFS 檔案系統,並將虛擬機器使用的虛擬磁碟儲存於該資料存放區中。由於 iSCSI 共用是在區塊層級運作,且虛擬機器可以將已連接的區塊 RDM 磁碟格式化為虛擬機器上安裝的客體作業系統所使用的自訂檔案系統,因此在使用 iSCSI 時可採用 RDM。

至於 NFS,不支援使用 NFS 共用作為 RDM 磁碟掛載,因為 NFS 共用是在檔案層級運作,而 RDM 要求將區塊裝置掛載至虛擬機器。使用 NFS 共用時,您只能建立 NFS 資料存放區,並將 VMDK 虛擬磁碟檔案儲存於該資料存放區中。 若客體作業系統具備 NFS 客戶端或 iSCSI 發起者,您可在客體作業系統層級掛載 NFS 共用資料夾與 iSCSI 共用資料夾。因此,在 VMware iSCSI 與 NFS 比較中的"原始裝置映射"類別中,勝出者為 iSCSI。

iSCSI 與 NFS 的效能比較

在軟體 iSCSI 實作中,效能雖略高,但客戶端主機的 CPU 負載也隨之增加。iSCSI 同時也會對網路造成較大的負載。iSCSI 會產生更多的網路流量與網路負載,而使用 NFS 則較為流暢且可預測。當執行大量寫入操作時,您可能會發現 NFS 共用資料夾的效能有所下降。

在 vSphere 中使用 NFS 時,建議選用儲存端支援 vStorage API for Array Integration (VAAI) 的 NFS 方案。VAAI 允許您在 NFS 資料存放區上建立厚配置虛擬磁碟。預設情況下,NFS 資料存放區會建立薄配置磁碟。NFS 與 iSCSI 皆支援巨型幀 (Jumbo frames) 以提升網路效能。

在本次 iSCSI 與 NFS 速度比較結束之際,需特別說明:效能亦取決於儲存陣列供應商。

並行存取

iSCSI 不支援對區塊裝置進行並發或平行資料存取。 資料必須在兩個節點之間共享。然而,在支援檔案並行存取的檔案系統層級(例如 VMFS 或 GFS)上,允許進行並行存取。在 VMware vSphere 中使用 iSCSI 共用時,VMFS 層級會確保對共用資源的並行存取。

NFS 透過鎖定機制與"關閉-開啟一致性"機制,支援對共用檔案的並行存取,以避免衝突並維持資料一致性。 NFS v3 與 NFS v4.1 採用不同的機制。NFS v3 可使用網路鎖定管理員協定 (NLM),而 NFS v4.1 則使用原生協定所指定的鎖定機制。若在 VMware ESXi 上使用 NFS v3 存取檔案分享,ESXi 不會使用 NLM 協定,因為在此使用情境下 VMware 會提供其專屬的鎖定協定。鎖定檔案名稱應以 . 開頭。lck-file_id 在使用 VMware vSphere 的 NFS v3 檔案分享時,這些檔案會建立在檔案分享上。

NFS v4.1 會使用保留機制來鎖定檔案,以防止同時存取。 若建立 NFS 檔案分享,所有客戶端必須使用相同版本的 NFS 協定(例如,所有 ESXi 主機皆透過 NFS v.4.1 連線至該分享)。若兩個不相容的客戶端使用不同版本的 NFS 存取 NFS 伺服器上的檔案,可能會導致行為不一致及資料損毀。

設定的難度

使用 NFS 時,配置伺服器和客戶端較為簡單。若使用 iSCSI 配置共用儲存裝置,則較為困難。您需要為儲存裝置和主機配置 IQN;設定 iSCSI 服務、LUN 及遮罩;並基於安全考量配置多個 VLAN(將用於 iSCSI 通訊的網路區段隔離,以提供更高的安全性)。

閱讀相關內容 VMware 虛擬卷 可用於儲存虛擬機器資料。

VMware vSphere 中的 NFS 與 iSCSI 比較 – 摘要表

讓我們透過這份 iSCSI 與 NFS 在 VMware 上的比較摘要表,來重點說明各資料共享協定的主要特點。

iSCSI NFS
資料共享 區塊層級 檔案層級
虛擬機的原始裝置映射 是的
設定的難度 中篇 簡單
從 SAN 啟動 是的
錯誤檢查 是的 是的
安全特點 CHAP Kerberos
儲存 vMotion 是的 是的
儲存 DRS 是的 是的

結論

這兩種共用協定都已相當成熟,足以應用於 VMware vSphere。iSCSI 與 NFS 之間的主要差異在於:iSCSI 在區塊層級共用資料,而 NFS 則在檔案層級共用資料。 兩者的效能幾乎相同,但在某些情況下,iSCSI 能提供更佳的表現。虛擬機器的 RDM 磁碟可與 iSCSI 搭配使用,但無法與 NFS 搭配使用。

這兩種網路共用協定皆相當可靠。然而,您仍需採用第三方資料保護解決方案,以避免資料遺失與系統停機。請避免電源中斷及其他硬體故障,以免造成共用儲存裝置上的資料遺失。建議使用不間斷電源裝置,並建立定期備份。

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read