在VMWare ESXi下的客户机Windows操作系统上,正在两个虚拟磁盘之间configuration软件RAID 1,驻留在2个独立的物理磁盘上,这是个好主意吗? 性能,可扩展性,可pipe理性和容错性?
编辑 :澄清:这个想法是2个独立的物理驱动器,2个数据存储,并没有其他的虚拟机使用它们。 另外,在这种情况下,RDM不是我的select。
容错将是相同的,但是我认为与在主机上执行RAID1相比,您的性能和可pipe理性会受到影响,特别是如果您有任何其他虚拟机使用相同的磁盘。
首先,在一个guest虚拟机上做软件RAID会占用一些guest虚拟机的CPU slice,如果你有CPU争用,将会终止该guest虚拟机的磁盘性能。
其次,磁盘争用的问题会因以下事实而变得更加复杂:您的Windows VM将与主机的逻辑磁盘级别的虚拟机竞争(可能是两倍) – 主机逻辑磁盘1的一组虚拟机,以及另一组虚拟机用于主机逻辑磁盘的虚拟机2.如果一个虚拟机在任一磁盘上磁盘饥饿,则您的客户机内RAID1性能将受到影响。 当然,如果你在主机级别进行RAID操作,也会发生这种情况,但是这样会更容易预测,而且你可以更容易地找出哪个guest虚拟机移动到另一个磁盘集合。 在客户机中使用RAID意味着可pipe理性将会非常糟糕,因为您试图平衡其他虚拟机,以便不会中断该客户机内RAID的性能。
第三,如果你正在使用扩展的VMDK(也就是不预分配),你将不得不在物理磁盘上处理不同的碎片模式。 一个VMDK可能在一组物理磁盘区段中被分段,而另一个VMDK在另一组物理磁盘区段中分段,因为大概不同的VM的虚拟磁盘跨越不同的物理磁盘区段。 举一个简单的例子,其中每个字母是客人的名字,每个字母+数字是该VMDK使用的物理磁盘盘区的开始:
A1 B1 —— ——– A2B2A3B3
C1-A1-C2-A2-C3-A3 ———
您的访客镜像的磁盘性能将归结为两个物理磁盘布局中最差的一个。 另一方面,访客内镜像的物理磁盘访问模式也会影响两个磁盘上的其他访客的性能。 如果您要将磁盘镜像到主机级别,则磁盘布局和碎片在两个磁盘上一直到设备一样,性能将更具可预测性。
如果你不幸地同时出现CPU争用和磁盘争用,那么运行你的访客RAID1的guest虚拟机将会停下来 – 更不用说,所有其他竞争CPU相同的客人,磁盘I / O。
所以,如果你不能在主机级别上使用RAID,那么我至less应该通过确保物理磁盘完全由单个guest虚拟机运行RAID来最大限度地降低磁盘争用的可能性 – 换句话说,不要让任何其他客人使用这些数据存储。 (您甚至可能希望将RAW磁盘添加到guest虚拟机,而不是使用VMDK。)这样,您唯一的担心就是CPU争用,您应该能够更加可预测地进行pipe理。
你认为这会给你什么好处? 两个虚拟磁盘都将存储在相同的SAN /物理驱动器上吗?
如果他们的虚拟硬盘在相同的物理驱动器上,那么从可靠性的angular度来看,确实没有任何好处,并且会降低性能。
性能不应该比在本地显示相同的磁盘的情况下更糟糕。 这不是我一般会select做的事情,但如果你没有一个好的硬件RAID的select,那么我不明白为什么不这样做。
这是假设两个VMDK存储在两个独立的物理磁盘上。 如果两个VMDK在一个数据存储上,那么没有多less意义。
从可扩展性POV中,您可以使用这种方法来克服VMware的2TB VMDK限制 – 这可以解决您的其他问题之一,这是一个更具可扩展性的解决scheme,可用于在Windows中启用大于2TB的卷,只有两个磁盘,除非你正在考虑RAID 0,我不会。
从容错的angular度来看,这又取决于场景。 如果您的VMware数据存储下方只有单个磁盘,那么这更容易实现,但一般情况下,如果您可以提供帮助,则不应该有这样脆弱的数据存储。
就可pipe理性而言,小规模没有什么大不了的。