提高内存页传输速度可提升虚拟机在线迁移性能虚拟化
Hypervisor最新的特性能够让虚拟机轻松地在服务器之间迁移,但是仍存在性能问题。提升内存页在网络中传输的速度能够提高迁移效率。
由于虚拟机迁移功能已经推出一段时间了,所以有关对正在运行的虚拟机进行迁移的讨论集中在性能上。遵循一些最佳实践能够优化虚拟机的在线迁移性能。
VMware和微软均提供支持不同主机之间在线迁移虚拟机的功能。虽然两家采用了不同的迁移方式,你不必为此感到惊讶,因为目前还没有适用于所有厂商的最佳实践清单。即便如此,从架构角度看,VMware的vMotion特性以及Hyper-V的在线迁移功能是类似的。这意味着有通用的最佳实践能够适用于这两大平台。
虚拟机迁移的工作原理
对虚拟机迁移性能进行优化的关键是了解其工作原理。了解这些后,调整配置优化性能就变得非常容易了。
VMware和微软提供了多种虚拟机迁移形式。例如,两大平台都支持非共享存储模式下的迁移以及长距离迁移。但在本文中我们只关注基于共享存储的虚拟机迁移。VMware和微软的虚拟机迁移机制存在细微的差别,但是流程非常类似。
在这两个环境中,迁移过程都是将虚拟机的内存页从一台主机迁移到另一台主机。因为迁移时虚拟机正在使用,所以迁移过程中虚拟机的内存页被修改了。
在拷贝过程中,hypervisor记录下被修改的内存页并确保成功复制。一旦两台主机服务器都拥有虚拟机内存的相同拷贝时,虚拟机的控制权将会移交给目标主机。
尽管这样的解释有些泛泛,但能看出优化虚拟机迁移性能的关键所在,即加速内存页的复制过程。
物理内存
无论使用的是哪一种hypervisor,从评估虚拟主机服务器的物理内存开始优化是个不错的主意。首先使用具备纠错功能的物理内存,内存页拷贝过程偶尔可能会拷贝一些不正确的数据。
具备纠错功能的内存为避免虚拟机出现数据不一致情况提供了帮助。实际上,当你在Hyper-V服务器上运行微软的最佳实践分析器时,会检查主机是否使用了纠错内存。
接下来,确保虚拟主机服务器具备一致的NUMA(非一致内存访问)架构。Hyper-V和VMware都能够感知NUMA。实际上,VMware 5将主机的NUMA拓扑暴露给了运行在该主机之上的虚拟机。这意味着当虚拟机启动时会采用部分基于主机硬件的拓扑。该拓扑并不会因vMotion过程而发生改变。因此目标主机拥有匹配的物理NUMA拓扑是非常重要的。
Hyper-V提供了允许单个虚拟机跨越多个物理NUMA节点的选项。这一设置能够帮助管理员达到更高的虚拟机密度,如果虚拟机仅限于使用单个NUMA节点,Hyper-V的这一设置选项还能够为虚拟机分配更多的物理内存。然而,这一选项可能会降低虚拟机的性能。
网络
在大多数情况下,网络吞吐量对虚拟机迁移速度的影响最大。提高内存页在网络间传输的速度能够提高迁移效率。
VMware和微软建议迁移流量使用专用的物理网络连接,一般推荐使用高速的网络适配器(至少是1Gbps,10Gbps性能更好)。