iThome
XtremIO以通用硬體打造固態儲存設備
以NAND Flash記憶體為基礎的全快閃儲存陣列,可分為三大類型——傳統磁碟陣列SSD版、專屬硬體式陣列與通用硬體式陣列。三類產品雖然都以提供全Flash儲存環境為目的,但隨著產品技術淵源與應用定位的差異,硬體組成、軟體功能均大異其趣。
XtremIO是典型的通用硬體類型全快閃陣列,儲存控制器(上)是1U機架式伺服器,磁碟櫃(下)是普通的SAS介面JBOD磁碟櫃。
XtremIO是通用硬體式陣列的代表性產品,採用了標準化的通用硬體元件,從處理器、記憶體、I/O介面卡,甚至是主機板,都是現成的x86伺服器標準規格元件,搭配同樣是標準規格的SSD組成儲存陣列,沒有使用FPGA、訂製的ASIC、或是特殊規格的Flash模組或韌體。
由於搭配的硬體是標準規格元件,所以XtremIO這類通用硬體式全快閃陣列,真正的核心是專為高速存取服務而設計的專屬系統軟體,是一種以軟體為核心的產品,如XtremIO的產品核心便是專屬的XIOS作業系統。
儘管軟體才是這類產品的核心,不過藉由通用硬體仍可帶來兩項優勢:
首先,採用通用硬體元件有助於降低成本,元件的選擇也更為多樣化。
其次,藉由通用化的硬體架構,也有便於引進最新技術規格的優勢,可方便地採用最新的處理器與I/O卡。相較下,傳統磁碟陣列控制器的處理器與I/O規格,就沒辦法這樣迅速地跟隨最新規格而升級(處理器規格至少落後伺服器一至兩代)。至於採用專屬硬體設計的專屬硬體式全快閃陣列,受限於硬體設計發展週期,更是難以追隨最新技術的腳步,迅速升級。
XtremIO的模組化軟體架構
每一臺XtremIO的儲存控制器,都運行著一套輕量級Linux,其上再運行XIOS儲存作業系統的元件。
XIOS目前分為6項軟體模組,其中,R(Routing)、C(Control)與D (Data)等3個模組,屬於資料平面(Data Plane)模組,負責資料存取功能;P(Platform)、M(Mgmt)與L(Clustering)模組,則屬於控制平面(Control Plane)模組,負責系統管理。
XtremIO的XIOS運行在Linux上,有6個模組,分別涵蓋資料存取與系統管理。
資料來源:EMC,iThome整理,2016年1月
● R模組:負責將主機端的SCSI存取指令,轉譯為XtremIO內部指令與定址,以及將接收到的資料分割為4K或8K的chunk,並透過SHA-1演算法計算資料的hash值。
● C模組:提供邏輯區塊位址到hash值的映射表,可透過查詢hash值表,確認寫入資料是否為新資料。
● D模組:保存了每個hash值的資料與SSD物理位址間的映射,負責執行所有從前端到SSD的I/O。
● P模組:負責監控系統硬體。
● M模組:與系統管理用的XMS管理伺服器通訊,負責執行管理者透過XMS管理伺服器發出的指令,如建立Volume、LUN映射等。
● L模組:提供叢集相關功能,包括叢集成員狀態管理、加入叢集等。
當前端主機透過FC或iSCSI主機埠,發出讀取某個邏輯區塊位址的指令時,會先由R模組將該位址切為4K或8K的chunk,接下來由C模組查詢hash表,找出該位址對映的hash值,再由D模組依據hash值找出對應在SSD上的物理位置。
當主機端寫入資料時,一樣先由R模組切為4K或8K的chunk,然後算出hash值,接下來由C模組查詢hash表。若與已有hash值相同,代表這是重複資料,由D模組將該hash值參考記數+1,而不會將資料實際寫入SSD;若查詢hash值確認這是新資料,則由D模組指派一個SSD物理位址將資料寫入。