我有一张 16 端口 Areca ARC-1260D PCIe RAID 卡,我计划将其用作一个大型阵列(RAID 10 或 RAID 6)。我没有考虑是否可以将 RAID 卡拆分成两个(或更多)不同的 RAID 阵列。该卡支持多个 RAID 选择。
使用单个适配器上的多个 RAID 选择是否会导致性能大幅下降(或任何其他注意事项)?通常,我每次只为一个阵列使用 RAID 适配器,因此我不确定在单个适配器上使用多个 RAID 集是否明智。最初,我计划将整个阵列用于 XenServer 的虚拟机,但现在有了这个选项,我考虑为虚拟机制作一个阵列,为简单的文件存储制作另一个阵列。
编辑:这是针对 SATA 的,不是 SAS 的。最初,我打算用 1.5TB SATA 磁盘填充阵列,但 2TB 磁盘的价格已大幅下降,我考虑在卡上安装两个 RAID 阵列;一个阵列有 6-8 个 1.5TB 磁盘,另一个阵列有 6-8 个 2TB 磁盘。
答案1
有几种原因可能会导致您使用多个 RAID 阵列时性能略有下降 - 首先,您可能会在一定程度上分割缓存,但这不会造成特别大的影响。您还更有可能引入队列/总线争用,但这也不会造成太大影响。更大的影响是,实际阵列中的磁盘会更少,这可能会对整体产生更大的影响。
答案2
您不会看到 RAID-10 有任何差异。使用 RAID-5 和 RAID-6 时,理论上您可能会看到写入吞吐量在同时大量写入两个 LUN 时出现难以察觉的微小差异,具体取决于 Areca 的实现。您担心的本质上是过早优化,在转向特定于供应商的实现怪癖之前,您可能应该关注这些一般规则:
- 确保直写缓存功能正常。良好的直写缓存对写入性能有很大影响,尤其是奇偶校验条带中的随机写入。
- 了解分区对齐。我相信在 Linux 上,大多数图形分区工具(例如 GParted)都会默认对齐您的分区,但 fdisk 和 parted 不会。这会导致跨越边界,从而可能将单个写入操作变成多个读取和多个写入,从而降低您的性能。
- 当您在 RAID-5 或 RAID-6 中写入时,控制器需要从整个条带读取数据才能重新计算奇偶校验。了解段大小的含义及其与您的数据的关系,尤其是在部分写入方面(需要在修改块的一部分之前进行读取)。通常,条带宽度越大,连续读取吞吐量越大,但在写入时重新计算奇偶校验时需要读取的数据越多。条带宽度越小,您不进行部分写入的可能性就越大,并且根本不需要重新计算奇偶校验,但您需要更多的磁盘来满足 I/O 请求。这是一种权衡,您确实需要了解您的应用程序。
- 听取供应商关于应用程序性能的建议。Areca 允许您在卷集中创建多个 RAID 阵列 - 如果您的应用程序需要 I/O 性能,请利用此功能。您可以创建具有不同条带宽度的多个 RAID 卷。
答案3
我使用过许多较旧的 11xx 和 12xx 系列 Areca 控制器,目前正在管理一台带有 1880 系列控制器的服务器。
Areca 卡的卷管理方式与 Linux 上的 LVM 工作方式类似。首先,将驱动器分配给与卷组类似的 RAID 集。然后在 RAID 集上创建卷,并在卷级别指定 RAID 级别。热备件可以是全局的,也可以与特定的 RAID 集绑定。但如果您愿意,可以在单个 RAID 集上混合使用 RAID 级别。它们还支持在线 RAID 级别和卷迁移。
在一个 RAID SET 上拥有多个卷对性能的影响将取决于您的工作负载和许多其他因素,例如系统 RAM、控制器缓存等。但请记住,大多数 Areca 控制器使用标准内存模块进行缓存,因此它们是现场可升级的。我刚刚检查过,看起来 1260 使用的是 so-DIMM,但我没有查看它可以接受的最大尺寸 so-dimm。