硬件RAID与软件RAID:哪一种最适合?
本文全面讲解了RAID相关技术和知识,内容包括RAID概念、各种常见的RAID实现形式,实施方案,以及RAID结合应用的实践等内容,全文下载链接:硬件RAID与软件RAID解析。
近年来,RAID(独立磁盘冗余阵列)技术逐步发展成满足数据保护要求的服务器选项。RAID 的首款实施方案诞生于 1990 年,搭载高性能 I/O 处理器的控制器板价格非常昂贵。该处理器的性能与主机CPU 一样强大。当时,基于硬件的 RAID 解决方案是唯一选项,而 RAID 控制器的成本限制了其在昂贵服务器中的应用。
如今,RAID 的技术广泛应用,从操作系统软件功能到独立的控制器,均可在高端存储区域网络内提供优异的数据完整性。这项技术适用于装载大量硬盘驱动的笔记本电脑、台式机、工作站、服务器以及移动存储盒这类移动环境。RAID 甚至还可以应用于 TV 机顶盒或个人存储设备。本白皮书从较高层面针对各种 RAID 解决方案进行了概述。本书开头定义了“软件 RAID”与“硬件RAID”,介绍了这些不同 RAID 实施方案的工作原理及其优势,帮助用户为个人应用选择最佳 RAID 解决方案。
RAID 是一种将多块独立式硬盘驱动虚拟化为一个或多个阵列的方式,能够改善性能、容量和可靠性(可用性)。总阵列容量取决于构建的 RAID 阵列类型以及硬盘驱动的数量和容量。总阵列容量与使用软件或硬件 RAID 无关。后续章节介绍不同实施方案、优势和缺点,以及它们对于系统性能和增强数据可用性的效率所产生的影响。
简而言之,软件 RAID 是 RAID 任务在计算机系统的 CPU 中运行。下图显示了一种软件 RAID 系统。部分软件 RAID 实施方案中包含一个硬件,初看上去类似于硬件 RAID 实施方案。因此,了解 RAID 代码利用 CPU 计算能力这一点至关重要。提供 RAID 功能的代码运行于系统 CPU 中,其与所有相关应用共享操作系统的计算能力。
软件 RAID 可通过多种方法实现:
• 作为纯正的操作系统软件 RAID 解决方案
• 作为包含某些专用硬件的解决方案,可提升性能并减少系统 CPU 资源占用率.
在这种情况下,RAID 实施方案应用在不含其他任何硬件的主机中运行。此类软件 RAID 使用计算机系统附带的硬盘驱动,该系统内置 I/O 接口或无处理器主机总线阵列卡 (HBA)。RAID 在操作系统加载 RAID 驱动程序软件后立即激活。这种纯正的软件 RAID 解决方案通常集成于服务器操作系统中,可供用户免费使用。低成本是这种解决方案的主要优势。
• 低成本:RAID 功能内置于操作系统内,无需额外付费。唯一的成本是附加硬盘驱动。
• 启动时无保护(无法在启动时管理或保护数据):RAID 软件启动过程中或激活前可能发生驱动器故障或数据受损,导致系统无法运行。
• 附加服务器性能负载:服务器性能受 RAID 应用的影响。涉及的驱动越多(例如涉及 RAID 5 中的奇偶校验),RAID 系统越复杂,因此对整体性能的影响越大。该解决方案更加适用于简单的RAID 0/1/10 场景。
• 操作系统迁移受限:RAID 功能可能受限于当前操作系统。如果部分操作系统版本不支持 RAID 功能,则没有任何方法可以将阵列迁移到其他操作系统或同一操作系统的不同版本。
• 容易感染病毒:RAID 作为应用程序在操作系统中运行,其功能将遭受病毒攻击或其他有害软件的影响。
• 系统崩溃导致数据完整性受损:服务器中的软件或硬件问题将影响数据一致性和完整性。
• 无回写缓存:软件 RAID 仅以直写模式运行,但硬件 RAID 可在由电池供电的情况下以回写模式运行,提升了数据保护等级。回写模式显著增强 RAID 阵列的写操作性能。不能为软件 RAID 增加电池。
• 取决于驱动器品牌和型号。
然而,这仍属软件 RAID,只是使用硬件辅助弥补纯正软件 RAID 的缺点。这类解决方案通常带有附加硬件(例如采用 RAID BIOS 的 HBA,或者仅将 RAID BIOS 集成于主板)。附加 BIOS 确保 RAID 功能在系统导通后的可用性,能够在启动期间提供冗余,帮助削弱介质错误对 RAID 的影响,避免数据损坏或系统操作故障。
此外,这些解决方案多数可以提供一个 BIOS 安装软件,适用于系统启动。这显著简化了 RAID 阵列的安装和维护,无需通过硬盘或 CD-ROM 安装或启动操作系统。此外,硬件辅助型软件 RAID 通常配有各种驱动程序,适用于最为常见的操作系统,因此比纯正的软件 RAID 更加独立于操作系统。
硬件辅助型软件RAID的优点:
• 价格适中:主板中的 BIOS 仅需 HBA(插卡)或附加闪存;如果控制器支持 RAID 5,还可能还包含一个硬件 XOR 加速器。
• 启动时受保护:当启动驱动器出现介质错误或完全故障时,数据可用性不受任何负面影响。
• 通过专用 GUI 和软件编译并维护 RAID:轻松安装并维护 RAID 阵列.
硬件辅助型软件RAID的缺点:
• 附加服务器性能负载。服务器性能受 RAID 应用的影响。涉及的驱动越多(例如涉及 RAID 5 中的奇偶校验),RAID 系统越复杂,因此对整体性能的影响越大。该解决方案更加适用于简单的RAID 0/1/10 场景。
• 操作系统迁移受限:只要驱动程序在操作系统中运行,RAID 功能便仍然依赖于操作系统。然而,各种操作系统的多个驱动程序允许将阵列迁移到其他操作系统。对于最新推出的操作系统,这可能受 RAID 驱动器可用性的限制(如更新的操作系统版本可能需要新 RAID 驱动器 - RAID 驱动器相比于常规 HBA 驱动器程序更加复杂,所需开发时间可能较长)
• 容易感染病毒:RAID 作为应用程序在操作系统中运行,其功能将遭受病毒攻击或其他有害软件的影响。
• 系统崩溃导致数据完整性受损:服务器中的软件或硬件问题将影响数据一致性和完整性。
• 无回写缓存:硬件辅助型软件 RAID 仅以直写模式运行,但硬件 RAID 可在由电池供电的情况下以回写模式运行,提升了数据保护等级。回写模式显著增强 RAID 阵列的写操作性能。不能为硬件辅助型软件 RAID 增加电池。
• 取决于驱动器品牌和型号。
硬件 RAID 解决方案通过专属处理器和存储器运行 RAID 应用程序。在该实施方案中,RAID 系统是一种专用于 RAID 应用程序的独立式小型计算机系统,能够将该任务从主机系统中卸载。
硬件RAID 作为解决方案的重要组成部分(例如在主板中集成)或附加卡提供。如果必要的硬件已在系统解决方案中集成,则硬件 RAID 可以作为软件升级在现有系统中应用。因此,与软件 RAID 相似,硬件 RAID 初看上去可能无法识别。
辨别解决方案是软件还是硬件 RAID 最简单方法是读取 RAID 解决方案的技术规格或数据表。如果解决方案中包含一个微处理器(通常称为 I/O 处理器、处理器,有时称为 ROC(“磁碟阵列控制芯片”),则该解决方案为硬件 RAID 解决方案。
如果不含处理器,则为软件 RAID 解决方案。这对于用户的选择至关重要,因为软件 RAID 与硬件 RAID 实施方案对系统产生的影响不同。相关影响包括:
• 运行其他应用程序时的 CPU 利用率和性能
• 可添加到系统中的硬盘驱动可扩展能力
• 数据丢失后可轻松恢复
• 高级数据管理/监视性能
• 支持跨不同操作系统统一管理硬盘驱动
• 支持添加电池备份选项,允许用户使能控制器写入缓存,以提升系统的写操作性能
硬件RAID实施方案,硬件 RAID 可通过多种方法实现:
• 作为分立 RAID 控制器卡
• 作为基于磁碟阵列控制芯片技术的集成硬件
1、分立 RAID 控制器卡
这是一张插入式扩展卡,通常内置 RAID 处理器(I/O 处理器)及专属驱动器接口(I/O 控制器)。它通常可插入计算机系统主板的 PCI-X 或 PCIe 插槽。这些插卡通常价格最为昂贵,但也是灵活性和性能最优异的 RAID 解决方案。此处的 RAID 功能完全独立于主机(计算机系统)。该卡的分立式特性允许使用最高性能的 I/O 处理器以及最快的存储器。RAID 卡可以将创建冗余存储子系统的任务完全从计算机系统中卸载,即使发生驱动器故障也不会影响系统其余部分的性能。可以使用更加复杂,但空间效率更高的 RAID 等级(如 RAID 5 或 RAID 6),同时不会影响系统。
卡中的附加 I/O 接口通常可用于提升系统可扩展能力(添加更多硬盘驱动并扩大容量)。即使多个RAID 阵列也不会影响主机系统的性能。这些可以轻松地迁移到其他操作系统,甚至其他主机系统或平台。
2、基于磁碟阵列控制芯片 (ROC) 技术的集成硬件RAID解决方案
在ROC解决方案中,RAID处理器、内存控制器、主机接口、连接硬盘驱动的 I/O 接口,甚至存储器均可在同一芯片中集成。该芯片可集成于主板,在节约成本的同时提供硬件 RAID 功能(仅需一个高度集成的 ASIC)。ROC 可替代许多服务器主板中的 I/O 接口芯片(例如 SCSI 控制器芯片)。这表示 ROC 解决方案不只为硬盘驱动集成了连接。
一般而言,硬件RAID 相比于基于软件的解决方案具备更多优势,适用于更加复杂的 RAID 算法。例如,测量结果指示软件 RAID-6 实施方案对系统计算资源造成沉重负载,在降级模式下尤为如此。此时,硬件 RAID 对于这类配置极具吸引力。
转载申明:转载本号文章请注明作者和来源,本号发布文章若存在版权等问题,请留言联系处理,谢谢。
推荐阅读
扫描二维码关注公众号,点击阅读原文链接获取“架构师技术全店资料打包汇总(全)”电子书资料详情。
微信扫码关注该文公众号作者