我一直使用基于硬件的 RAID,因为它(恕我直言)处于正确的水平(请随意对此提出异议),并且因为操作系统故障对我来说比硬件问题更常见。因此,如果操作系统出现故障,RAID 就会消失,数据也会消失,而在硬件级别上,无论操作系统如何,数据都会保留。
然而,在最近的 Stack Overflow 播客中,他们表示他们不会使用硬件 RAID,因为软件 RAID 开发得更好,因此运行得更好。
所以我的问题是,有什么理由选择其中一个吗?
我一直使用基于硬件的 RAID,因为它(恕我直言)处于正确的水平(请随意对此提出异议),并且因为操作系统故障对我来说比硬件问题更常见。因此,如果操作系统出现故障,RAID 就会消失,数据也会消失,而在硬件级别上,无论操作系统如何,数据都会保留。
然而,在最近的 Stack Overflow 播客中,他们表示他们不会使用硬件 RAID,因为软件 RAID 开发得更好,因此运行得更好。
所以我的问题是,有什么理由选择其中一个吗?
我更喜欢软件 RAID。
软件 RAID 的一大优势是不受特定硬件的束缚。例如,我有控制器和/或主板故障导致阵列丢失。
今天的 CPU 足够快,可以处理 RAID-5 变体的奇偶校验。我也从未遇到过多次并发读取导致总线饱和的问题。
我更喜欢硬件 raid,因为如果您必须从死机中取出好磁盘,那么您不仅限于 raid“阵列”的操作系统配置。
您确实保留了 RAID 控制器配置的备份,不是吗?
因此,只需将其加载到供体机器上,插入驱动器(以正确的顺序!您在拉动驱动器之前确实标记了驱动器吗?)并在干净的操作系统上重新启动,您的数据就会恢复。
操作系统驱动器不是重要的驱动器。最重要的东西是数据驱动器!!!!
(您确实备份了数据驱动器,对吗?)
一个重要的考虑因素是可靠性。最后,硬件 RAID 和软件 RAID 都只是算法的软件实现。因此,两者都容易受到软件错误的影响。
在 Linux 中运行软件 RAID 设置多年后,我从未遇到过导致数据丢失的错误。但我见过几起来自知名制造商的非常昂贵的硬件 RAID 中完全丢失数据的案例。
从中吸取两个教训:
硬件 RAID 控制器通常带有电池支持的 RAM 缓存,即使在使用软件 RAID 时也可以加快写入操作,所以如果可以的话,我总是尝试使用电池缓存来获得硬件 RAID,而不是在控制器固件上运行软件 RAID不能胜任任务。
我认为 Jeff 对他的 RAID 阵列的体验归结为获得(和依赖)垃圾/最便宜的 RAID 控制器。“哇,这个 RAID 阵列每秒执行十亿次千兆浮点运算,我在 eBay 上以 10 英镑的价格买到了它!”。
如果您重视您的数据 - 获得一个好的、经过验证的、可靠的 RAID 控制器。
更好的是,获得两个(故障转移)
更好的是,迎接 21 世纪并获得具有内置容错/ZSPOF 的专用外部 FC/iSCSI 连接磁盘阵列 - 双路径、双 RAID、RAID6 或 10(或 20 或 50)和热备件。
是的,它很贵。但是,如果整个 SO 站点都被破坏了,那将是多么昂贵。
这取决于。对于简单的镜像场景,我更喜欢软件 RAID,因为正如 Jason W 所说,您始终可以移除其中一个驱动器并将其粘贴到另一台机器上。
对于其他情况(RAID 0、RAID 5 或 RAID 10),单个驱动器本身并没有多大用处,所以我更喜欢硬件 RAID。
无论如何(我以所有应有的尊重和爱戴的人这么说),您不应该根据 Stackoverflow(一群软件人)已经完成或未完成的事情来做出决定。
软件 RAID 在很多情况下都无法为我完成工作,而硬件 RAID 从来没有。也就是说,便宜的硬件 RAID 比好的软件更糟糕,花几英镑来获得好的控制器。
软件 Raid 取决于操作系统。硬件 Raid 取决于卡和操作系统驱动程序。
这就是归结为。更换操作系统非常容易。重新安装。更换突袭卡,尤其是几年后是不可能的。
一些raid卡会对操作系统隐藏整个阵列,但驱动程序仍然会知道它是raid。最好的卡将处理所有低级的东西,例如跨磁盘写入、奇偶校验等,而最差的卡将使操作系统完成所有工作。
较低的卡片很容易弄乱奇偶校验数并弄错。想象一下,在您尝试打开之前,几 TB 的数据看起来还不错。恶梦。
3ware 卡很贵但没用。在 Windows 上的高负载下,吞吐速度真的很差,如果启用 nfs,几乎会锁定 linux 中的系统。不过,戴尔 Perc 卡(版本 5 和 6)很棒。较早的人在 Raid 10 上作弊了一些。
我见过硬件 RAID 卡出现故障并取出整个阵列。除非您处于冗余配置中,否则您肯定会在硬件卡上添加另一个单点故障。
您应该知道有“硬件 RAID”,然后是硬件 RAID。谷歌“fakeraid”了解更多信息。一些“硬件 RAID”卡实际上很少在卡中进行 RAID 处理,并使用自定义驱动程序在软件中进行 RAID 计算,使用系统的常规处理器。这可能会导致奇怪的结果。我让其中一个系统(Windows 2003 服务器)开始显示单独的 C 和 D 驱动器,而不是一个 C 驱动器,因为某处有些东西混淆了。真正的硬件 RAID 永远不可能做到这一点,因为它看起来像是系统的一个物理驱动器。
我对软件 RAID 的经验很少。过去我一直强烈反对它,但现在我正在转向使用它,基于我在这里和其他地方听到的事情。我会考虑测试它以供将来部署。
另一方面,我已经从任何类型的服务器内 RAID 转移到外部 RAID 系统。几乎我所有的服务器都安装了零驱动器。我爱上了 Xiotech 系统,但其他类型的外部 RAID 也很适合我。我从来没有(敲木头)丢失过数据。
答案在 Linux/Unix 和 Windows 上完全不同。Linux 上的 S/W RAID 比 Windows S/W RAID 好得多,后者对不同布局的支持有限,而且速度很慢(至少在 Windows 2003 服务器上是这样)。在 Windows 上,几乎在所有情况下,使用 H/W RAID 都会好得多。
Linux 和 Unix 上的软件 RAID 比在 Windows 上运行得更好。这使得 S/W RAID 在这些平台上成为一个合理的选择,尽管在较大的安装中,使用 H/W RAID 或 SAN 可能会更好。