![主机控制器定义的 RAID 与软件定义的 Linux RAID 之间有何区别?](https://linux22.com/image/748077/%E4%B8%BB%E6%9C%BA%E6%8E%A7%E5%88%B6%E5%99%A8%E5%AE%9A%E4%B9%89%E7%9A%84%20RAID%20%E4%B8%8E%E8%BD%AF%E4%BB%B6%E5%AE%9A%E4%B9%89%E7%9A%84%20Linux%20RAID%20%E4%B9%8B%E9%97%B4%E6%9C%89%E4%BD%95%E5%8C%BA%E5%88%AB%EF%BC%9F.png)
我有一台 Proliant DL380 G6 服务器,配备 4 个 146GB 2.5 英寸 SAS 硬盘。
在 Ubuntu 中(我使用 Webmin 进行管理),我看到一个物理卷,好像实际上只有一个磁盘。
如果我运行命令,lshw -class disk -short
我会看到:
/0/100/1/0/1.0.0 /dev/sda disk 293GB LOGICAL VOLUME
/0/100/1d.7/1/8/0.0.0 /dev/sdb disk 6001GB d2 TBT2 USB3
/0/3/0.0.0 /dev/cdrom disk DV-W28S-VS
目前,我不记得如何设置 HW 突袭控制器,但看起来好像我已经使用了 LV 中的所有 4 个内部驱动器。
问题:通过使用硬件控制器来管理 RAID,我是否会“欺骗”操作系统,让其认为系统中只有一个物理磁盘?
跟进:如果是这样,这是 RAID 的更好解决方案吗,还是在操作系统内部管理 RAID 更好?
归根结底,这两种方法的核心区别是什么?
答案1
通常,“硬件 RAID 控制器”只不过是运行精简版 Linux 内核的小型嵌入式计算机(具有 PowerPC 或 ARM 内核)。硬件卡紧密集成,无需外部软件干预即可管理机箱 LED、移除/更换磁盘等。此外,许多 RAID 控制器提供专用的 ECC 保护写入缓存,批判的以获得良好的性能。过去,集成卡核心的卸载能力很有价值;现在,这种优势基本不存在了。
Linux MDRAID 驱动器非常快速且可靠;此外,使用ledmon
您可以自动管理机箱 LED。但是,它仍然不太集成:您不仅需要使用以下方式手动创建 raid 阵列:mdadm
,但必须使用以下方法配置自动磁盘替换mdadm.conf
POLICY
部分(或者,您需要手动重新包含替换的磁盘mdadm manage --add
)。最后,由于完全基于软件,它显然不包含任何专用的、断电保护的写回缓存。
读这里更多细节。
直接回答你的问题:
- 使用硬件 RAID 卡时,操作系统仅将阵列卷视为单个磁盘;
- 如果您的服务器具有带有断电保护写回缓存的硬件 RAID 卡,请使用它(某些旧控制器甚至不支持原始磁盘直通)。
答案2
您使用硬件控制器管理 RAID,从而将 RAID 开销转移到控制器上,释放一些 CPU 周期。一般来说,这是管理 RAID 的“最佳”方式。话虽如此,这实际上取决于您的使用情况。如果您不会给系统带来负担,那么软件 RAID 就足够了。
您还需要找到一个名为的实用程序hpacucli
。有了它,您将能够探测 RAID 控制器以了解 RAID 和各个驱动器的状态。例如hpacucli ctrl all show config
另请参阅https://www.thegeekstuff.com/2014/07/hpacucli-examples/或其他参考。