有没有人有实践经验分享在XenServer 5.5下的软件RAID性能?
我最近从Ubuntu上的VMware Server 1.x迁移到了XenServer 5.5,希望通过使用半虚拟化技术来提高性能。 不幸的是我在我的mdtypes的软件RAID上看到了非常低的性能。
当XenServer主机看到数字超过100 MB / s时,半虚拟化客户端无法获得远远超过20 MB / s的速度。
这是预期的,还是应该在我的configuration中查找问题?
编辑>
我意识到软件RAID在虚拟化主机上并不理想,但对于家庭实验室来说,我不能certificate一个真正的硬件RAID控制器是正确的,而我仍然希望有一定程度的存储冗余。
主机不显示高CPU使用率,系统负载甚至过多的I / O等待周期。 这与VMware Server 1.x至less给出I / O性能两倍的事实相结合,表明准虚拟化必定会有一些问题。 可能是由于我的硬件缺乏某些function。
由于XenServer的全部硬件虚拟化并不是那么好,我想我会回到Ubuntu上的VMware Server,让我有机会尝试新的2.x版本。
Linux软件raid是该死的好,它击败了低端RAID控制器,通常匹配中端的性能。
我最近做了一些虚拟化技术的性能testing。 Xen虚拟机(xenserver 5.5)的磁盘I / O性能损失约为70%。 我用iozonetesting了10多个读/写模式。 该机器在软件raid1中有两个160G sata-II驱动器。 请注意,70%的速度损失可能会有所不同,具体取决于磁盘操作的types。
在Xenserver中你可以做的一件事是在某些存储资源上设置更高或更低的优先级(点击左右,应该在那里),以帮助一些I / O密集型虚拟机。 但是,这是非常多的 – 你想虚拟机,你必须付出代价:)
如果你想在linux主机上运行linux vms,使用容器会让你获得更好的性能。 例如,OpenVZ磁盘I / O性能损失约为7%。
我不同意在这一个tptech。
软件RAID并不是那么糟糕。 尤其是在Linux和Windows Server操作系统上非常成熟的开发。
实际上,软件RAID可以提供比el-cheapo RAID控制器更好的性能,因为廉价的RAID控制器无论如何都会使用您的CPU进行奇偶校验计算。
反驳tptech:
当然。 但这适用于任何RAID,而不仅仅是软件RAID。 这对于RAID10也不是这样,因为您可以获得100%冗余条带化的好处。
这是真的,而且会成为I / O很重的虚拟机的主机。 但是,如果您的虚拟机的I / O负载过重,那么虚拟机可能并不适合他们,或者他们应该访问SAN(一起讨论软件RAID)。
事实是,主机单独获得100MB / s的带宽,这只是虚拟机的痛苦,我不明白如何有软件RAID会导致性能下降到其主机的1/5仅仅因为请求来自虚拟机而不是主机。
我会build议,这可能是在虚拟机configuration,甚至可能是客机。 还值得一提的是,如果您的主机CPU或您的客户操作系统不支持半虚拟化,则会导致性能下降。 并不是所有的客人都支持它,AFAIK没有64位客户内核支持它。
我没有Xen的经验,但我会怀疑你所看到的性能问题不是直接由于RAID的安排。 你有一个非RAID卷,你可以复制一个虚拟机重新运行性能testing来比较结果?
如果你正在testing写性能,那么在VMWare服务器中有一个选项可以解释它和Xen的区别,你可以指定VMWare服务器它应该让主机操作系统caching磁盘访问,而不是坚持所有客户操作系统认为是物理写入的写入都是同步执行的。 通过这个选项,您通常会看到虚拟机中的写入性能得到了改进,有时会大幅度提高,但是在断电的情况下虚拟机文件系统中存在更高的腐败风险,或者导致虚拟机pipe理程序不经意地暂停虚拟机。 具有Xen特定知识的人可能会告诉你它是如何默认在这个区域行为的(如果他们的行为可以调整的话)。
另一个可能的问题(我可能会说“可能”在这里我只是猜测)解释了一个不同之处在于,即使将写入的guest虚拟机同步发送到主机IO堆栈(因此它们在IO调用之前从caching发送到磁盘返回到VM的操作系统),VMWare服务器访问虚拟磁盘文件的方式允许他们的内容保存在客户操作系统的caching和缓冲区中,如果主机有足够的RAM可用于caching+缓冲区,则减less物理IO操作。 Xen的安排可能并不是这样,尽pipe你需要与那些比我更了解Xen的细节的人进行核对。
补充想法:
还有一件事要检查:访客内核如何访问虚拟设备? 如果以PIO模式运行,而不是使用DMA或UDMA访问设备,那么即使将I / O操作转换为基于DMA的操作,每个写操作也会咀嚼更多的CPU周期,从而产生显着的效果那些到达物理设备的时间。
软件RAID的一个词 – 不要使用它。 那实际上那是三个字。 但你得到我的漂移。
一个好的RAID硬件控制器可以通过从CPU卸载RAID计算和缓冲磁盘I / O多次提高性能 – 然后,您添加到RAID中的磁盘驱动器越多,您(通常)获得的性能就越好!