ESXi 可使用網際網路 SCSI (iSCSI) 通訊協定連線至外部 SAN 儲存區。除了傳統 iSCSI,ESXi 還支援 iSCSI Extensions for RDMA (iSER)。

透過 iSER 通訊協定,主機可使用相同的 iSCSI 架構,但將 TCP/IP 傳輸取代為遠端直接記憶體存取 (RDMA) 傳輸。

關於 iSCSI SAN

iSCSI SAN 在主機與高效能儲存區子系統之間使用乙太網路連線。

在主機端,iSCSI SAN 元件包括 iSCSI 主機匯流排介面卡 (HBA) 或網路介面卡 (NIC)。iSCSI 網路還包括傳輸儲存區流量的交換器和路由器、纜線、儲存區處理器 (SP) 及儲存區磁碟系統。

此圖說明兩種類型的 iSCSI 連線,一種使用軟體啟動器,另一種使用硬體啟動器。

iSCSI SAN 使用用戶端-伺服器架構。

用戶端 (也稱為 iSCSI 啟動器) 在 ESXi 主機上運作。它透過發出 SCSI 命令並將封裝到 iSCSI 通訊協定中的這些命令傳輸到 iSCSI 伺服器,來起始 iSCSI 工作階段。伺服器稱為 iSCSI 目標。通常,iSCSI 目標代表網路上的實體儲存區系統。

目標也可以是虛擬 iSCSI SAN,例如,在虛擬機器中執行的 iSCSI 目標模擬器。iSCSI 目標透過傳輸必要的 iSCSI 資料來回應啟動器的命令。

iSCSI 多重路徑

在主機伺服器與儲存區之間傳輸資料時,SAN 將使用一種稱為多重路徑的技術。使用多重路徑,ESXi 主機可以透過多個實體路徑到達儲存區系統上的 LUN。

一般而言,從主機到 LUN 的單一路徑由 iSCSI 介面卡或 NIC、交換器連接埠、連接纜線和儲存區控制器連接埠組成。如果路徑中的任何元件發生故障,主機將為 I/O 選取其他可用路徑。偵測發生故障的路徑並切換到其他路徑的程序,稱為路徑容錯移轉。

如需有關多重路徑的詳細資訊,請參閱瞭解 ESXi 環境中的多重路徑和容錯移轉

iSCSI SAN 中的節點和連接埠

iSCSI SAN 上單一可搜尋的實體 (如啟動器或目標) 代表一個 iSCSI 節點。

每個節點均有節點名稱。ESXi 使用數種方法來識別節點。

IP 位址
每個 iSCSI 節點都可具有一個相關聯的 IP 位址,使得網路上的路由和交換設備可以在主機與儲存區之間建立連線。此位址就像為了存取公司的網路或網際網路而指派給電腦的 IP 位址一樣。
iSCSI 名稱
用於識別節點的全球唯一名稱。iSCSI 使用 iSCSI 限定名稱 (IQN) 和延伸的唯一識別碼 (EUI)。
依預設, ESXi 會為 iSCSI 啟動器產生唯一 iSCSI 名稱,例如, iqn.1998-01.com.vmware:iscsitestox-68158ef2。通常,您無需變更預設值,但若要這樣做,請確保輸入的新 iSCSI 名稱是全球唯一的。
iSCSI 別名
用以替代 iSCSI 名稱的 iSCSI 裝置或連接埠的更易於管理名稱。iSCSI 別名不是唯一的,是要與連接埠相關聯的易記名稱。

每個節點都有一或多個用於連線到 SAN 的連接埠。iSCSI 連接埠是 iSCSI 工作階段的端點。

iSCSI 命名慣例

iSCSI 使用特殊、唯一的名稱來識別 iSCSI 節點 (目標或啟動器)。

iSCSI 名稱透過兩種不同方式格式化。最常見的是 IQN 格式。

如需有關 iSCSI 命名需求和字串設定檔的詳細資料,請參閱 IETF 網站上的 RFC 3721 和 RFC 3722。

iSCSI 限定名稱格式
iSCSI 限定名稱 (IQN) 格式採用 iqn.yyyy-mm.naming-authority:unique name 格式,其中:
  • yyyy-mm 是命名機構成立的年份和月份。
  • naming-authority 是命名機構的網際網路網域名稱的反向語法。例如,iscsi.vmware.com 命名機構的 iSCSI 限定名稱格式可能為 iqn.1998-01.com.vmware.iscsi。名稱指出 vmware.com 網域名稱於 1998 年 1 月註冊,iscsi 是由 vmware.com 維護的子網域。
  • unique name 是要使用的任何名稱 (例如,主機的名稱)。命名機構必須確定在冒號後指派的任何名稱都是唯一的,例如:
    • iqn.1998-01.com.vmware.iscsi:name1
    • iqn.1998-01.com.vmware.iscsi:name2
    • iqn.1998-01.com.vmware.iscsi:name999
企業唯一識別碼格式
企業唯一識別碼 (EUI) 格式採用 eui.16_hex_digits 格式。

例如,eui.0123456789ABCDEF

16 位元十六進位數字是 IEEE EUI (已延伸唯一識別碼) 格式的 64 位元數字的文字表示形式。前 24 位元是 IEEE 向特定公司註冊的公司識別碼。剩餘 40 位元由保留該公司識別碼的實體指派,並且必須是唯一的。

iSCSI 啟動器

若要存取 iSCSI 目標,ESXi 主機需要使用 iSCSI 啟動器。

啟動器是 ESXi 主機上安裝的軟體或硬體。iSCSI 啟動器源於主機和外部 iSCSI 儲存區系統之間的通訊,並將資料傳送到儲存區系統。

ESXi 環境中,主機上設定的 iSCSI 介面卡扮演啟動器的角色。ESXi 支援數種類型的 iSCSI 介面卡。

如需設定和使用 iSCSI 介面卡的相關資訊,請參閱 設定 ESXi 的 iSCSI 和 iSER 介面卡和儲存區

軟體 iSCSI 介面卡
軟體 iSCSI 介面卡是 VMkernel 中內建的 VMware 程式碼。使用軟體 iSCSI 介面卡,您的主機可以透過標準網路介面卡連線到 iSCSI 儲存裝置。軟體 iSCSI 介面卡可在與網路介面卡通訊期間進行 iSCSI 處理。使用軟體 iSCSI 介面卡,您無需購買特定硬體就可以使用 iSCSI 技術。
硬體 iSCSI 介面卡
硬體 iSCSI 介面卡是第三方介面卡,可從主機卸載 iSCSI 和網路處理。硬體 iSCSI 介面卡分為幾類。
  • Dependent Hardware iSCSI Adapter.相依於 VMware 網路、iSCSI 組態,以及由 VMware 提供的管理介面。

    這種類型的介面卡可以是一張為同一連接埠提供標準網路介面卡和 iSCSI 卸載功能的卡。iSCSI 卸載功能相依於主機網路組態,以取得 IP、MAC 和其他用於 iSCSI 工作階段的參數。iSCSI 授權的 Broadcom 5709 NIC 就是一種相依介面卡。

  • Independent Hardware iSCSI Adapter.實作自己的網路及 iSCSI 組態和管理介面。

    通常,獨立硬體 iSCSI 介面卡是僅提供 iSCSI 卸載功能或者提供 iSCSI 卸載功能和標準 NIC 功能的卡。iSCSI 卸載功能具有獨立的組態管理,可指派 IP、MAC 和其他用於 iSCSI 工作階段的參數。例如,QLogic QLA4052 介面卡就是一種獨立介面卡。

硬體 iSCSI 介面卡可能需要獲得授權。否則,可能不會顯示於用戶端或 vSphere CLI 中。如需授權資訊,請連絡廠商。

ESXi 使用 iSER 通訊協定

除了傳統 iSCSI,ESXi 還支援 iSCSI Extensions for RDMA (iSER) 通訊協定。啟用 iSER 通訊協定後,ESXi 主機上的 iSCSI 架構可以使用遠端直接記憶體存取 (RDMA) 傳輸,而不是 TCP/IP。

傳統 iSCSI 通訊協定透過 TCP/IP 網路在主機上的 iSCSI 啟動器和儲存裝置上的 iSCSI 目標之間傳送 SCSI 命令。iSCSI 通訊協定會封裝命令,並組合 TCP/IP 層封包中的資料。資料到達時,iSCSI 通訊協定會分解 TCP/IP 封包,以便可以區分 SCSI 命令並將這些命令傳遞至儲存裝置。

iSER 不同於傳統 iSCSI,因為它會以遠端直接記憶體存取 (RDMA) 傳輸取代 TCP/IP 資料傳輸模型。使用 RDMA 的直接資料放置技術,iSER 通訊協定可在 ESXi 主機和儲存裝置的記憶體緩衝區之間直接傳輸資料。此方法消除了不必要的 TCP/IP 處理和資料複製,還可以降低延遲和儲存裝置上的 CPU 負載。

在 iSER 環境中,iSCSI 完全照常運作,但使用基礎的 RDMA 網狀架構介面,而非 TCP/IP 型介面。

由於 iSER 通訊協定會保留與 iSCSI 基礎結構的相容性,因此在 ESXi 主機上啟用 iSER 的程序類似於 iSCSI 程序。請參閱在 ESXi 中設定 iSER

建立 iSCSI 連線

ESXi 環境中,詞彙「目標」用於識別主機可存取的單一儲存單元。詞彙「儲存裝置」和「LUN」說明代表目標上儲存空間的邏輯磁碟區。通常,在 ESXi 環境中,詞彙「裝置」和「LUN」表示透過儲存目標向主機顯示的可格式化的 SCSI 磁碟區。

不同的 iSCSI 儲存區廠商以不同方式向主機顯示儲存區。一些廠商在單一目標上顯示多個 LUN,而其他廠商則向多個目標各顯示一個 LUN。

圖 1. 目標與 LUN 表示方式的比較
在一個案例中,主機看到一個具有三個 LUN 的目標。在另一個範例中,主機可以看到三個目標,每個目標都具有一個 LUN。

在這些範例中,每個組態都有三個 LUN 可用。在第一個案例中,主機偵測到一個目標,而該目標具有三個可以使用的 LUN。每個 LUN 都代表個別儲存磁碟區。在第二個案例中,主機可以偵測到三個不同的目標,每個目標都有一個 LUN。

以主機為基礎的 iSCSI 啟動器建立與每個目標的連線。具有包含多個 LUN 的單一目標的儲存區系統透過單一連線向所有 LUN 傳輸流量。在具有三個目標 (每個目標都有一個 LUN) 的系統中,主機分別連線到三個 LUN。

當您嘗試從具有多個 iSCSI 介面卡的主機彙總多個連線上的儲存流量時,此資訊很有用。您可以將一個目標的流量設定為特定介面卡,並針對傳輸到另一個目標的流量使用其他介面卡。

iSCSI 儲存區系統類型

主機支援的 ESXi 儲存區類型包括主動-主動、主動-被動和符合 ALUA 標準。

主動-主動式儲存區系統
支援透過所有可用的儲存連接埠同時存取多個 LUN,而不會明顯降低效能。所有路徑始終處於作用中狀態,除非路徑出現故障。
主動-被動式儲存區系統
儲存區處理器在其中主動提供對指定 LUN 的存取權的系統。其他處理器充當備用 LUN,並且可以主動提供對其他 LUN I/O 的存取權。僅能向指定 LUN 的作用中連接埠成功傳送 I/O。如果透過作用中儲存連接埠存取失敗,則其中一個被動儲存區處理器可透過伺服器對其進行存取而啟動。
非對稱儲存區系統
支援非對稱邏輯單元存取 (ALUA)。符合 ALUA 標準的儲存區系統對每個連接埠提供不同層級的存取權。憑藉 ALUA,主機可判定目標連接埠的狀態,並排列路徑的優先順序。主機會將某些作用中路徑用作主要路徑,其他用作次要路徑。
虛擬連接埠儲存區系統
支援透過單一虛擬連接埠存取所有可用的 LUN。虛擬連接埠儲存區系統是主動-主動式儲存裝置,但透過單一連接埠隱藏其多個連線。依預設, ESXi 多重路徑不會在特定連接埠與儲存區之間建立多個連線。有些儲存裝置廠商提供工作階段管理器,可建立並管理與其儲存區的多個連線。這些儲存區系統可透明地處理連接埠容錯移轉和連線平衡。此功能通常稱為透明容錯移轉。

探索、驗證和存取控制

可以使用多個機制探索儲存區並限制對它的存取。

必須設定主機和 iSCSI 儲存區系統,從而支援儲存區存取控制原則。

探索
探索工作階段是 iSCSI 通訊協定的一部分,它傳回可在 iSCSI 儲存區系統上存取的目標集。 ESXi 上可用的兩類探索為:動態和靜態。動態探索從 iSCSI 儲存區系統取得可存取目標的清單。靜態探索可以依目標名稱和位址僅存取特定目標。

如需詳細資訊,請參閱 在 ESXi 主機上為 iSCSI 和 iSER 設定動態探索或靜態探索

驗證
iSCSI 儲存區系統透過名稱和金鑰配對,驗證啟動器。 ESXi 支援 CHAP 驗證通訊協定。若要使用 CHAP 驗證, ESXi 主機和 iSCSI 儲存區系統必須啟用 CHAP,並具有一般認證。

如需啟用 CHAP 的相關資訊,請參閱為 ESXi 主機上的 iSCSI 或 iSER 儲存區介面卡設定 CHAP 參數

存取控制
存取控制是在 iSCSI 儲存區系統中設定的原則。大多數實作都支援以下三種存取控制類型的一或多個:
  • 依啟動器名稱
  • 依 IP 位址
  • 依 CHAP 通訊協定

只有符合所有規則的啟動器才可以存取 iSCSI 磁碟區。

因為 ESXi 主機可以探索所有目標,所以只使用 CHAP 進行存取控制會降低重新掃描的速度,但是隨後會在驗證這一步失敗。如果主機僅探索它可驗證的目標,則 iSCSI 重新掃描速度會更快。

虛擬機器如何存取 iSCSI SAN 上的資料

ESXi 會將虛擬機器的磁碟檔案儲存到位於 SAN 儲存裝置上的 VMFS 資料存放區。虛擬機器客體作業系統向其虛擬磁碟傳送 SCSI 命令時,SCSI 虛擬層會將這些命令轉譯為 VMFS 檔案作業。

虛擬機器與其在 SAN 上儲存的虛擬磁碟互動時,將發生以下程序:

  1. 虛擬機器中的客體作業系統讀取或寫入 SCSI 磁碟時,將向虛擬磁碟傳送 SCSI 命令。
  2. 虛擬機器作業系統中的裝置驅動程式將與虛擬 SCSI 控制器通訊。
  3. 虛擬 SCSI 控制器將命令轉送給 VMkernel。
  4. VMkernel 執行以下工作。
    1. 在 VMFS 磁碟區中尋找適當的虛擬磁碟檔案。
    2. 將虛擬磁碟上區塊的要求對應到適當實體裝置上的區塊。
    3. 將修改後的 I/O 要求,從 VMkernel 中的裝置驅動程式傳送到 iSCSI 啟動器 (硬體或軟體)。
  5. 如果 iSCSI 啟動器是硬體 iSCSI 介面卡 (獨立或相依),則該介面卡執行以下工作。
    1. 將 I/O 要求封裝到 iSCSI 通訊協定資料單元 (PDU)。
    2. 將 iSCSI PDU 封裝到 TCP/IP 封包。
    3. 透過乙太網路將 IP 封包傳送到 iSCSI 儲存區系統。
  6. 如果 iSCSI 啟動器是軟體 iSCSI 介面卡,則將發生以下事件。
    1. iSCSI 啟動器將 I/O 要求封裝到 iSCSI PDU 中。
    2. 啟動器透過 TCP/IP 連線傳送 iSCSI PDU。
    3. VMkernel TCP/IP 堆疊將 TCP/IP 封包轉送到實體 NIC。
    4. 實體 NIC 透過乙太網路將 IP 封包傳送到 iSCSI 儲存區系統。
  7. 網路上的乙太網路交換器和路由器將要求輸送到適當的儲存裝置。

錯誤更正

為保護 iSCSI 標頭和資料的完整性,iSCSI 通訊協定提供了錯誤更正方法,這些方法稱為標頭摘要和資料摘要。

這兩種方法都受 ESXi 主機支援,您可以啟用它們。這些方法用於檢查 iSCSI 啟動器和目標之間雙向傳輸的標頭和 SCSI 資料。

除了其他網路層 (如 TCP 和乙太網路) 提供的完整性檢查以外,標頭和資料摘要還檢查非密碼編譯資料的完整性。摘要會檢查整個通訊路徑,包括可變更網路層級流量的所有元素,如路由器、交換器和 Proxy。

建立 iSCSI 連線之後,將交涉摘要的存在和類型。啟動器和目標就摘要組態達成一致後,此摘要必須用於它們之間的所有流量。

啟用標頭和資料摘要需要對啟動器和目標進行額外處理,並可能影響輸送量和 CPU 使用效能。

備註: 使用 Intel Nehalem 處理器的系統會卸載 iSCSI 摘要計算功能,從而減少對效能的影響。

如需啟用標頭和資料摘要的相關資訊,請參閱 為 ESXi 主機上的 iSCSI 設定進階參數