VMWare、虚拟磁盘、Windows 软件 RAID

VMWare、虚拟磁盘、Windows 软件 RAID

在 VMWare ESXi 下的客户 Windows 操作系统上,在位于 2 个独立物理磁盘上的 2 个虚拟磁盘之间配置软件 raid 1 是个好主意吗?性能、可扩展性、可管理性和容错性方面如何?

编辑:澄清一下:这个想法是 2 个独立的物理驱动器、2 个数据存储,并且没有其他 VM 可以使用它们。此外,在这种情况下,RDM 对我来说不是一个选择。

答案1

容错能力将是相同的,但我认为与在主机上执行 RAID1 相比,您的性能和可管理性会受到影响,特别是当您有任何其他使用相同磁盘的虚拟机时。

首先,在客户机中执行软件 RAID 将会耗费客户机的部分 CPU 切片,并且如果有 CPU 争用,那么将会损害该客户的磁盘性能。

其次,磁盘争用问题会因为 Windows VM 将在主机的逻辑磁盘级别与(大概)两倍的 VM 竞争而加剧——一组 VM 争夺主机的逻辑磁盘 1,另一组 VM 争夺主机的逻辑磁盘 2。如果一个 VM 在任一磁盘上出现磁盘需求,则您的客户机 RAID1 性能将受到影响。当然,如果您在主机级别进行 RAID,也会发生这种情况,但那时情况会更可预测,您可以更轻松地确定将哪个客户机移动到另一组磁盘。在客户机内部进行 RAID 意味着可管理性将非常糟糕,因为您要平衡其他 VM,以免它们破坏该客户机 RAID 的性能。

第三,如果您使用的是扩展 VMDK(即未预分配),则必须处理物理磁盘上的不同碎片模式。一个 VMDK 可能分散在一组特定的物理磁盘扩展区中,而另一个 VMDK 分散在另一组不同的物理磁盘扩展区中,因为可能不同的 VM 的虚拟磁盘跨越不同的物理磁盘扩展区。举一个简单的例子,其中每个字母都是客户机的名称,每个字母+数字都是该 VMDK 使用的物理磁盘扩展区的开头:

A1------B1--------A2B2A3B3

C1-A1-C2-A2-C3-A3---------

您的客户机镜像的磁盘性能将归结为两种物理磁盘布局中最差的一种。另一方面,您的客户机镜像的物理磁盘访问模式也将影响两个磁盘上其他客户机的性能。如果您要在主机级别镜像磁盘,则两个磁盘上的磁盘布局和碎片将一直相同,直至设备,性能将更加可预测。

如果你不幸遇到了两个 CPU 争用磁盘争用,运行您的来宾 RAID1 的客户机将陷入停顿 - 更不用说所有其他正在竞争相同 CPU 切片和磁盘 I/O 的客户机。

因此,如果您无法在主机级别上支付 RAID 费用,我至少会通过确保物理磁盘仅由运行 RAID 的单个客户机使用来最大限度地减少磁盘争用的可能性——换句话说,不要让任何其他客户机使用这些数据存储。(您甚至可能希望将 RAW 磁盘添加到客户机而不是使用 VMDK。)这样,您唯一需要担心的就是 CPU 争用,您应该能够更可预测地管理它。

答案2

您认为这会给您带来什么好处?两个虚拟磁盘都会存储在同一个 SAN/物理驱动器上吗?

如果虚拟磁盘位于相同的物理驱动器上,那么从可靠性的角度来看实际上没有任何好处,并且会降低性能。

答案3

性能不应该比您在本机上呈现相同的磁盘差很多。一般来说,我不会选择这样做,但如果您没有好的硬件 RAID 选项,那么我认为没有理由不这样做。

这是假设两个 VMDK 存储在两个单独的物理磁盘上。如果两个 VMDK 位于单个数据存储上,则意义不大。

从可扩展性的角度来看,您可以使用这种方法来突破 VMware 的 2TB VMDK 限制 - 这确实解决了您的另一个问题,这是一个更具可扩展性的解决方案,因为它可以用于在 Windows 中启用大于 2TB 的卷,但不能只使用两个磁盘,除非您正在考虑 RAID 0,而我不会这样做。

从容错角度来看,这又取决于具体情况。如果您的 VMware 数据存储下只有单个磁盘,那么容错性更强,但一般来说,如果您能提供帮助,您不应该拥有如此脆弱的数据存储。

就可管理性而言,小规模上没有什么大问题。

相关内容