在单个16端口适配器上select多个RAID

我有一个16端口的Areca ARC-1260D PCIe RAID卡,我打算将它用作一个大arrays(RAID 10或RAID 6)。 我没有想过是否可以将RAID卡分成两个(或更多)不同的RAIDarrays。 相关卡支持多个RAIDselect。

在单个适配器上使用多个RAIDselect会有大的性能下降(或任何其他警告)吗? 通常情况下,我一次只使用一个arrays的RAID适配器,所以我不确定在一个适配器上使用多个RAID组是否明智/不明智。 最初我打算将整个arrays用于XenServer的虚拟机,但现在使用这个选项,我正在考虑为虚拟机制作一个arrays,另一个arrays用于存储简单的文件。

编辑:这是为SATA,而不是SAS。 最初我想用1.5TB的SATA磁盘来装满arrays,但是2TB磁盘的价格急剧下降,我想在卡上有两个RAIDarrays; 1个arrays,6-8个1.5TB磁盘,另一个6-8个2TB磁盘。

有几个原因可能会导致多个RAIDarrays的性能下降 – 首先,您可能会在某种程度上分割caching,但这不应该特别影响。 你也更有可能引入队列/总线竞争,但是这不应该有很大的区别。 什么会有更大的影响是,你将有更less的磁盘在实际arrays中,可能会有更大的影响整体。

你不会看到与RAID-10有什么不同。 使用RAID-5和RAID-6时,根据Areca的实施情况,在理论上,在同时写入两个LUN时,写入吞吐量可能会有明显的差异。 你所关心的实质上是不成熟的优化,你应该把注意力集中在这些通用规则上,然后再转到供应商特定的实现怪癖:

  • 确保您的直写式cachingfunction正常。 一个良好的直写式caching解决了大量的写入性能,特别是随机写入时,带有奇偶校验的条带化。
  • 了解分区alignment。 我相信,在Linux上,大多数graphics分区工具(例如GParted)会默认alignment分区,但fdisk和parted不会。 这会导致边界交叉,通过将单个写入操作转换为多次读取和多次写入,可能会导致性能下降。
  • 当您使用RAID-5或RAID-6写入时,控制器需要从整个条带中读取数据以重新计算奇偶校验。 了解分段大小的含义及其与数据的关系,特别是在部分写入(需要在块的一部分可以修改之前需要读取)方面。 通常,条带宽度越大,顺序读取吞吐量就越大,但在写入时重新计算奇偶校验时需要读取的数据越多。 您的条带宽度越小,您不进行部分写入的可能性就越好,并且根本不需要重新计算奇偶校验,但需要执行I / O请求的磁盘就越多。 这是一个折衷,你真的需要了解你的应用程序。
  • 听取您的供应商有关应用程序性能的build议。 Areca允许您在卷集中创build多个RAIDarrays – 如果您的应用程序需要I / O性能,请利用此function。 您可以创build具有不同条带宽度的多个RAID卷。

我已经使用了一些较旧的11xx和12xx系列槟榔控制器,目前使用1880系列控制器pipe理服务器。

卷pipe理与Areca卡的工作方式类似于LVM在Linux上的工作方式。 首先将驱动器分配给与卷组类似的RAID集。 然后,您在RAID集上创build卷,并在您指定RAID级别的卷级别上。 热备份可以是全局的或绑定到特定的RAID组。 但是,如果您愿意,您可以在单个RAID集上混合使用RAID级别。 他们还支持在线RAID级别和卷迁移。

在一个RAID SET上具有多个卷的性能影响取决于您的工作负载以及诸如系统RAM,控制器caching等其他因素。但请记住,大多数Areca控制器都使用标准内存模块进行caching,因此它们可现场升级。 我只是检查了一下,看起来1260使用的是DIM-DIMM,但是我没有看到最大的尺寸如何能够接受。