在HBA方案中, 提供IT(Initiator and Target)模式作為原生SAS模式支持 (thx 注 這是很特別狀況),
另一種IR(Integrated RAID)模式提供了基礎RAID功能實現(RAID 0, RAID 1, RAID 10和RAID 1E), 在LSI專屬的Fusion-MPT架構, 應用了子處理器(processor)來執行對I/O的相關操作或著有關RAID的運算. 另外ROMB設計方案中, 提供一種RAID key的小塊物理PCB插件,如下圖所示:
▲
透過這個插件而外提供RAID 5模式, 不過前面說過, 由於沒有了XOR硬線加速設計和記憶體控制器的實作, 因此RAID 5性能可以說是不堪入目.在使用RAID key的情況下, BIOS模式會切成IMR(Integrated MegaRAID)模式, 這個模式就是MegaRAID產品系列所採用的, 提供更多的特性, 這與LSI SAS MegaRAID 9240系列是相同的. 當切換成IMR模式後, 就必須強制建立陣列才能使用, 而且使用的IRQ數量只有4組, block size可以選擇, 但最高只能到64k, 支持SSD Guard技術.下面是一張LSI MegaRAID SAS 9240-8i的RAID HBA,歸屬於MegaRAID產品線,所以可以提供對RAID 5模式的支持:
▲
一般RAID就設計上來說分成兩種形式: Software RAID和Hardware RAID, 我想這玩過或著知悉相關RAID知識的人大致上都清楚, 在說明這兩種設計差異之前, 並不包含一些特殊的實務設計, 例如某家RAID廠商早期某款產品使用某種程度的XOR硬線加速設計(CPLD/FPGA)來提高性能.
Hardware RAID比較好講,基本的架構就是IOP+IOC的組合,IOC可以說是SAS/SATA HBA部分,IOP通常只是拿來加速運算用的。先來講講Software RAID,根據Adaptec早期提供的一份基礎文獻(Hardware RAID vs. Software RAID: Which Implementation is Best for my Application?),對於了解Software RAID和Hardware RAID差異是值得參考的,就Software RAID的特徵,Software RAID拆成兩個部分:Pure Software Model – Operating System Software RAID和Hybrid Model – Hardware-Assisted Software RAID。在Pure Software Model下,這個模式是非常容易瞭解的,RAID功能與實作上的決定完全取決於作業系統而定,此模式提供最低成本的考量,但是缺點不少,最大的缺點在於 他I/O性能不佳,而且受到Software層級上的限制,意味著它容易被作業系統綁死,下圖是一張Pure Software Model的基礎示意圖:
▲
Pure Software Model在一般情況下,是不會去應用的,尤其最近這幾年來,Hybrid Model – Hardware-Assisted Software RAID反而是最常被用到的,基本上就是SAS/SATA HBA with a RAID BIOS或著是RAID BIOS integrated onto the motherboard,例如Intel的ICHxR就是一個Hardware-Assisted Software RAID,透過額外的硬體加入RAID的支持(將RAID Option ROM寫在BIOS裡),RAID功能部份可以獨立於作業系統,資料安全上也高於Pure Software Model,透過系統啟動BIOS初始化階段,可以預先檢測到RAID模式的狀況,並且提供獨立的GUI設定RAID組態,當然在某些RAID模式 下,IO性能依然會受到限制,例如典型的RAID 5模式。下面是一張基本的示意圖:
▲
這張描述的是以HBA with a RAID BIOS的模型,RAID Software與HBA部分包起來,RAID Software意指著將有關RAID代碼部分寫在NVRAM裡,作為系統啟動初始化的時候,獲得RAID的相關功能,也包括專屬的組態設定 (dedicated GUI and software to build and maintain the RAID)。