流言:你需要一個昂貴的 TCP/IP 卸載引擎 (TCP/IP offload Engine, TOE) 網卡或是主匯流排介面卡 (Host bus adapter, HBA),來促進更好的 iSCSI 效能或是從 SAN 來開機
其實:不然,為了現在也行。廠商從 Adaptec 到 QLogic 擁有專屬的乙太網路 (Ethernet) 卡,不管是透過 TCP 封包處理引擎卸下電腦 ICP/IP 標頭上額外的資訊與檢查碼 (checksum),或是使用一個 SCSI 或 FC HBA 來卸下整個 iSCSI 堆疊。為了各種理由,像是一些 FC 愛好者渴望獲得降低 iSCSI 成本的好處,廠商和自稱為權威的專家們則開始聲稱你「需要」這些特殊卡的其中一張,以獲得合理的 iSCSI 效能表現。
要破除這些沒有事實根據的說法,我們在一臺具備單顆 2.4 GHz Xeon 處理器並可存取一個 EqualLogic PS-100E 磁碟陣列的 Dell 1600SC 伺服器上執行 IOmeter 。我們在交易內容大小從 512bytes 到 2MB 下執行讀寫測試,使用 1 張 Intel Pro 1000/MT GbE 卡和 1 張 QLogic QLA4010 HBA 。
結果如同預期,CPU 使用率平均來說,在使用 HBA 時會顯得比較低,它從未超過乙太網路上的 18% 使用效能。效能表現可以和 HBA 相提並論,在我們 NWC 自訂測試中,是最接近於真實世界 (real-world) 的伺服器,iSCSI HBA 效能則是達到更快的 35% 效能。然而,如果時間再拉長一點,則大部份的伺服器都無法再保持相同的效能。
直到最近,人們普遍認為一個最優良的 iSCSI HBA 應該具備可以從 SAN 開機 (boot) 的能力。軟體 iSCSI 初始器並不會自動載入,而是等到 OS 先被載入之後,這裡會創造出一個「雞生蛋、蛋生雞」的問題,意即你會需要 OS 來載入 iSCSI 初始器並存取 SAN,但是你又會需要透過存取 SAN 來啟動 OS 。
踏入 emBoot 公司你會發現,它的軟體 Netboot/i 和 Winboot/i 產品可以讓 Windows 伺服器從一組 iSCSI 磁碟陣列使用開機前執行環境 (Pre-execution environment, PXE) 來載入所屬的 OS 。雖然他們需要比 HBA 多一點作業程序,譬如你必須先在本地端硬碟上安裝 OS,然後使用 emBoot 的工具複製這個 OS 到 SAN 上,emBoot 的產品(主要差異在於 Netboot/i 使用微軟的 iSCSI 初始器,而 Netboot/i 有它自己的 iSCSI 初始器)確實可以讓你針對額外的伺服器進行磁區 (volume) 容量複製 (clone),並且針對伺服器群組端 (server farm) 或測試環境使用開機磁區 (boot volume) 分享。
今天,我們的建議是,如果要採用 iSCSI HBA 或 TOE 卡,最好是針對那些少數需要執行特定應用程式,同時又兼具 CPU 和磁碟強化特性只要求一點點效能的伺服器。傳統的伺服器如 Exchange 、 Web 和檔案伺服器,則能與一般標準的乙太網路卡配合得相當順利。
我們特地點出「針對目前」的意思,是因為當 iSCSI 陣列獲得 10Gbps iSCSI 介面,並且速度快到可以滿足他們時,TCP 封包處理將更具成效。
