我select了两种类似的服务器,其中之一是软件RAID,而另一种是硬件。
有问题的服务器是So You Start ( OVH品牌)中的SYS-E32-1和SYS-E32-3 ,并且具有相似的configuration,最大的不同在于缺less/存在超线程和硬件RAID:
SYS-E32-1: Intel Xeon E3 1225v2 (4c / 4t 3.2 GHz +),软件RAID
SYS-E32-3: Intel Xeon E3 1245v2 (4c / 8t 3.4 GHz +),硬件RAID
在这两种型号中都有两个硬盘驱动器,我将在LVM下用作RAID1或RAID0。 我将在CentOS 6主机上运行CentOS 6和其他操作系统客户端,并进行KVM虚拟化。 我们的正常负载是通常的Web服务。
这个performance对我来说应该有多less? 在这种情况下,硬件RAID是否值得或者更像是一个四舍五入的错误?
澄清 :我们在这里不考虑“ 假RAID ” 只有纯软件和硬件RAID。
如果你有硬件RAID,那么你很可能会有一个硬件控制器硬件caching。 如果这个控制器有一个BBU(电池保留caching内容的功率损失),那么性能差异将是巨大的。
使用BBUcaching会加快你的大部分事情。 这是因为所有磁盘同步/ fsyncs都是即时的,这意味着数据库,系统日志,文件系统日志等的所有磁盘更改将快得多,并且不需要将整个写入高速caching刷新到磁盘。
话虽如此,以上是由于BBUedcaching。 也就是说,如果您在硬件RAID控制器上执行软件RAID,性能应该同样好。 即如果你决定做一个硬件RAID控制器时的SW扫荡。
关于它们的不同之处,HW raid 通常都是免费的,通常具有热插拔function。 因为底层硬件可能有问题,所以你必须用SW raid自己testing一下。
AFAIC(我在这里传播一些传言)HW raid制造商在这方面投入很多,并考虑到磁盘制造商,甚至特定的磁盘模型。 他们正在实施一些黑客来克服磁盘问题,无论是性能还是可靠性。 另一方面,随着内核升级,SW raid会一直在改进,而OTOH据说HW raid固件真的很糟糕。
最后,HW raid通常带有一些日志logging,这意味着您可以查看日志来确定磁盘是否行为exception。 然后再次在SW raid中,您可以运行dmesg或查看syslog。
硬件和软件raid之间应该没有性能差异,但实际上,由于大多数硬件raid控制器将有一个专用的caching,他们将在特定情况下显着更快。
虽然如果硬件控制器没有专用的caching,那么性能应该完全相同,但是只适用于RAID 0,1,10和0 + 1,因为它们不需要处理,因为没有奇偶校验计算。