RAID由于其便利性和成本效益,是企业在数据中心采用的一种非常普遍的数据存储虚拟化技术。RAID 为存储的数据提供一定程度的保护,还可以通过加速对存储数据的访问来帮助提高计算性能。
RAID 只是一组独立的硬盘驱动器。为了使这些多个硬盘驱动器连接到服务器或主机控制器,需要一个适配器。实际上,在大多数情况下,RAID 的实现依赖于主机控制器适配卡 (HBA),而有些情况则不然。
什么样的 RAID 实现不需要任何 HBA?所有 HBA 都适用于 RAID 吗?RAID 过程发生在哪里?RAID与HBA和Host有什么关系?在这篇文章中你会找到答案。
RAID的实现
在说RAID HBA之前,我们需要先介绍一下RAID的基本实现。跨多个驱动器的数据分布可以通过专用计算机硬件或软件进行管理。所以RAID有两种实现方式:硬件RAID和软件RAID。软件 RAID 不需要 HBA,而硬件 RAID 必须需要 HBA。是这样吗?
- 软件RAID
软件 RAID 可以通过多种方式实施:1) 作为纯软件解决方案,或 2) 作为混合解决方案,包括一些旨在提高性能和减少系统 CPU 开销的硬件。
- 纯软件模型——操作系统软件 RAID
在这种情况下,RAID 实现是一个在主机上运行的应用程序,无需任何额外的硬件。这种类型的软件 RAID 使用连接到
通过内置 I/O 接口或无处理器主机总线适配器 (HBA) 的计算机系统。一旦操作系统加载了 RAID 驱动程序软件,RAID 就会激活。
- 混合模型 – 硬件辅助软件 RAID
这种软件 RAID 有助于克服 RAID 的一些弱点。此类解决方案通常带有附加硬件(例如,带有 RAID BIOS 的 HBA 或仅集成到主板上的 RAID BIOS)。额外的 BIOS 使 RAID 功能在系统开启时可用,在引导期间提供冗余,减少介质错误对 RAID 的影响,否则可能导致数据损坏或系统无法运行。
- 硬件RAID
单独的 RAID HBA 卡是这种 RAID 实施形式的标志。因为所有的 RAID 处理都发生在 RAID HBA 卡的芯片组上,而不是主机的操作系统上。逻辑磁盘在系统外部进行配置和镜像。RAID HBA 卡充当专用于 RAID 应用程序的独立小型计算机系统,从主机系统卸载此任务。RAID HBA 卡完全卸载了计算机系统创建冗余存储子系统的任务,并且不会影响系统其余部分的性能,即使在驱动器出现故障的情况下也是如此。
可以使用更复杂和节省空间的 RAID 级别(如 RAID 5 或 RAID 6)而不会对系统产生任何影响。与软件 RAID 最大的区别是 RAID HBA 卡上额外的 I/O 接口通常允许更大的系统扩展性(添加更多硬盘驱动器和更多容量)。即使是多个 RAID 阵列也不会影响主机系统的性能。这些可以很容易地迁移到另一个操作系统甚至另一个主机系统或平台。
这是10Gtek的6Gb/s HBA/RAID Controller Card,使用LSI SAS 2008控制芯片。它与 LSI 9211-8i 兼容。此HBA卡可作为RAID控制卡使用,扩展能力强,支持更高的RAID级别(RAID 0、RAID 1、RAID 10、RAID 1E)。
除了分立的 RAID 控制器卡 (HBA) 外,硬件 RAID 还可以实现为基于RAID-on-Chip 技术的集成硬件。如果 RAID 处理器、内存控制器、主机接口、硬盘驱动器连接的 I/O 接口,有时甚至是内存,都集成到一个芯片中,这种解决方案可以称为 RAID-on-Chip 技术。该芯片可以集成到主板中,并以更低的成本提供硬件 RAID 功能(因为只需要一个高度集成的 ASIC)。ROC 取代了您在许多服务器主板上找到的 I/O 接口芯片(例如 SCSI 控制器芯片)。这意味着 ROC 解决方案集成的不仅仅是硬盘驱动器的连接。
结论
所以我们可以得出结论:在软件RAID实现的纯模型中,需要一个无处理器的HBA。但是RAID的功能和处理与HBA无关。无处理器 HBA 是一种简单的适配卡。对于软件RAID实现的混合模式,如果主板没有集成RAID BIOS,则需要一个带有RAID BIOS的HBA。
RAID的硬件实现中使用的HBA就是我们在市场上经常看到的HBA。它集成了一个 RAID 芯片,可以进行 RAID 处理。