提高RAID性能

我刚安装了一个LSI 9260-i8,使用两个虚拟驱动器,第一个由4个SSD组成,其次是4个HDD。 显然这个想法是在保持一定安全性和大量存储容量的同时获得更好的性能

固态硬盘非常棒,在处理小型到大型文件时,这个arrays的速度非常快。 HDD主要是大型文件(500MB-30GB)。 它的目的是一个主要的长期存储设施,而固态硬盘arrays仅用于操作文件和短期存储。 这意味着文件将经常从SSDarrays移动到HDDarrays。

问题在于,在大写操作的第一个演出写完之后,性能很快就会下降。 它起始于250MB / s左右,对于只有5个HDDS的RAID 5arrays来说,这不是一半坏的写入性能,但是我刚刚做的副本,由4个文件组成,共计12 GB,逐渐下降到了35MB / s的最低值。

现在我想一个人的build议将取决于很多元信息,所以这里是:

  • LSI卡没有BBU(还)禁止回写。
  • 硬盘是WD15EARS 2TB硬盘。 显然,这些并不是最快的硬盘,但是一直持续的200MB / s并没有太多问我想。
  • SSD是OCZ Vertex 2 60GB驱动器。
  • 不要认为它是相关的,但硬盘的旋转停机时间可以达到5分钟,而不是正常的8秒钟
  • 存储pipe理器中的驱动器显示健康,日志中没有注释错误
  • 就像我说的,SDD速度非常快,高达1100MB / s的读取速度,似乎并不是瓶颈。
  • 复制似乎暂停,它会跑得快,停下来,再跑500MB左右,等等,导致整体速度较低。
  • 在创build硬盘arrays时,我使用了一个512Kb的条带大小。 这是巨大的,但我期望只有大到巨大的文件在该arrays上。 我现在不想改变它,因为它会破坏现有的数据,我没有备份(还)
  • 操作系统是Ubuntu 10.04(64bit)
  • 主板华硕WS Revolution(这是一款工作站),24GB的ECC内存,至强W3570现货3.2GHz
  • 将LSI卡插入第一个PCIe插槽(以避免NF200引起的延迟)
  • 系统是完全稳定的
  • HDDarrays使用“mkfs.ext4 -b 4096 -E stride = 128,stripe-width = 384 -L”DATA“/ dev / sdb”
  • fstab不包括数据=回写,也不可访问,但我不认为这应该是一个影响大文件的问题

任何和所有的build议表示赞赏。

我认为“LSI卡没有BBU(还)禁止回写”是瓶颈。

如果你有UPS – 启用回写function。

如果没有 – 尝试获得BBU。

如果您不能 – 您可以通过在电源浪涌的情况下丢失caching的数据,如果启用“回写”或使用“直写caching”来坚持这些速度,则可能会导致虚拟驱动器上的数据一致性。

即使您将分区与逻辑卷alignment(这通常由大多数现代操作系统自动完成),并将已经优化的群集/块大小的卷格式化得足够大(我认为您的情况应该是2mb),以便将所有驱动器处理单个IO请求我不认为你会达到非常大的写入性能差异。

因为RAID5的写入性能是非常过头的过程。 而且由于它是通过XOR处理器写入的,所以没有caching中的全部数据来实现奇偶校验计算

在4x320gb硬盘上使用回写启用caching515kb保证大小的RAID 5我可以在虚拟卷内获得平均250-350 MB / s的写入速度,写入大型顺序文件或平均150 MB / s复制大型文件。 (我还没有BBU,但我有和旧APC 700VA智能UPS,所以我认为它足以最大限度地减less电源浪涌和最终caching损失了很多)

我们是在讨论100%随机,100%顺序还是一些混合模式? 当我完全读取,写入或复制到/从我的arrays的大文件时,我大部分遇到高速。 另一方面,根据文件大小和/或请求大小,已经说随机写入(读取)低得多,低于1 mb / s到190 mb / s的平均速度。 大部分在日常小尺寸/文件用途的20mb / s范围内。 所以这取决于现实生活中随机转移的应用。 由于我使用的Windows操作系统我的卷是非常糟糕的碎片和大文件大操作,如复制从/到相当快

一个解决正常硬盘慢速读/写随机速度的build议 – 如果你要重新configuration整个控制器configuration,为什么不考虑使用1个或2个SSD的CacheCade用于无功耗突袭caching(类似Adaptec混合RAID),其余的为您的操作系统/应用程序驱动器,因为你现在正在使用它们? 这样,你应该能够提高RAID 5的速度,即使写入我认为,因为实际写入物理硬盘应该在后台进行,并且正在使用通过caching写入(无板载控制器caching)和ssds作为caching,而不是我认为你应该担心没有系统重置。 但是关于cachecade工作的实际和具体的信息,请阅读lsi的文档,甚至要求LSI的技术支持,因为我还没有机会使用它。

TomTom已经基本回答了这个问题,但是更多的上下文可能是有用的。

您正在使用RAID 5. 在写入数据时,RAID 5具有众所周知的性能问题。

对于每个RAID 5条带,都有一个奇偶校验数据块,奇偶校验数据块以循环方式分布在所有磁盘上。 对于每次写入RAID 5arrays,控制器都需要重新计算奇偶校验信息,然后将新的奇偶校验块写入磁盘。 这里的一个引用说明了这一点(关于部分条带更新,但同样的原则适用):

如果您修改数据块,则通过减去旧块重新计算奇偶校验,并添加新版本。 然后在两个单独的操作中写入数据块,然后写入新的校验块。 要做到这一点,首先必须从包含该条带块奇偶校验的驱动器读取奇偶校验块,然后从原始驱动器重新读取更新块的未修改数据。 这个读 – 写 – 写被称为RAID5写入惩罚,因为这两个写入是连续的,同步的写入系统调用不能返回,直到重新读取和写入完成,

大约35 MB / s的声音对于单个SATA硬盘来说是正确的,因为RAID 5的条带化会带来或多或less的随机I / O,而真实的RAID 5写入速度通常约为1个磁盘性能更小的arrays。 所以这或多或less是预期的performance; 它在开始时更快地复制,可能是操作系统caching。

获取电池备份单元并启用写入caching不是一个万能的解决scheme。 你写你经常复制大文件(> 1 GB)。 BBU +写caching有很大的帮助,随机的小文件写入,但较大的顺序写入(因为在控制器上的缓冲区最终填满)。

如果你想有良好的写入性能,答案通常是RAID 10 。

最后,在创build分区时,应该注意确保分区边界与数组条带边界alignment。

哼。 一些基础知识。

它的启动速度大约为250MB / s,对于只有5个HDDS的RAID 5arrays来说,这不是一个糟糕的写入性能

现实检查:任何RAID 5的写入速度都很慢,仅限于ONE DISC的速度。 3,5,15个字符在写入时没有差别。

硬盘是WD15EARS 2TB硬盘。 显然,这些并不是最快的硬盘,但是一直持续的200MB / s并没有太多问我想。

现实检查:对于随机IO情况下的最终用户光盘来说太高,这就是你所展示的。 即使200MB的RAW太高。 但是,如果您将所有需要的操作添加到Raid 45(查看维基百科),那么询问它就显得很滑稽。 你想要速度? 获取FAST光盘,并转移到RAID 10。

不要认为它是相关的,但硬盘的旋转停机时间可以达到5分钟,而不是正常的8秒钟

8秒的硬盘空转时间? 你从哪里得到这个号码? 这样做太慢了,太糟糕了。在短时间内发生更多的操作时,应该避免分开 – 我们谈几分钟。 5分钟太低。 8秒钟是自杀的。

在今天结束的时候,你会期待很多东西 – 你在RAID 5上的价格便宜,而且从来没有做过现实检查。 数字很​​好。

事情来checK:

  • 驱动器是否支持NCQ? 它被使用了吗?
  • 一个BBU有多贵? 很多移动回写而不是写通过可以使HUGH的改进。 现在你不能优化写入的IO模式,因为没有任何东西可以caching。

除此之外,获得更快的光盘和远离RAID 5是唯一的select。 首先做一些初学者math检查也会帮助你 – 几乎是你的假设你应该有什么速度是可怕的。