第二部分 vSphere DRS(分布式资源调度)
第二章 vMotion和EVC
vMotion可能是行业功能变化最好的一个例子,当虚拟化首次推出,所有的是关于虚拟机的灵活性和便携性,然而,便携性和灵活性在虚拟机电源开启的状态是受限制的,当VMware介绍vMotion,介绍他们改变了世界的IT,vMotion从字面上来说是现有组件上进行的开发,基础上参照“暂停和恢复”的功能也早已存在,所以不要误读了最后那句话,不过vMotion确实是一个很杰出的技术。
如你们所希望的,vMotion是一个功能,开启后,你可以在不需要关闭虚拟机的情况下,将虚拟机从一台主机迁移到另一台主机上,问题是仍然存在,它是怎样工作的呢?这是一个相当复杂的过程,这个点多年来一直都被优化,它允许你在一台支持10GB网络的主机上进行8个vMotion的并发,在写这篇文章的时候,还是限制为一台支持1GB网络的主机上进行4个vMotion的并发。
一个vMotion的工作流程是怎样的?
1. 验证目标主机兼容性
2. 在目标主机上创建一个虚拟机的副本
3. 通过vMotion的网络将每个内存页面从源地址复制到目的地址,这个过程称为预复制
4. 在目标虚拟机上执行复制过来的虚拟机的内存,再把预复制过程中产生的内存页复制过来
5. 继续复制上一次复制期间的内存页只到没有改变为止
6. 将源虚拟机“眩晕”,在目标虚拟机上恢复状态。
这听起来非常简单,真的是这样么,只有6个步骤?但是,也有一些问题,如内存量变化超过了vMotion的网络吞吐能力的,我们都不希望知道这样的场景下会发生什么,例如,数据库服务器有非常大的活动内存。
在vSphere 4.1中,VMware介绍了vMotion的部分功能—快速恢复,快速恢复开启,源虚拟机会被“眩晕”,在所有页面被复制完成,即在目标主机上开启虚拟机。但是,虚拟机已经在目标主机上运行,当它没有完全被复制完成时,它可能尝试读或者写这个页面,在这样的情况下,快速部署将从源获得请求页面,并允许客户端完成请求的操作,同时,继续复制剩余的内存页,知道所有的页面都被迁移,那么,如果vMotion的网络发生故障会发生什么呢?
目标虚拟机无法进入内存页,因为他们是“活的”远程,vSphere 4.1中,为了解决这种情况,使用了存储来实现故障的安全机制,也就是说会创建一个特殊的文件,这个文件基本上是用来作为备份缓冲区,在网络发生故障的情况下,这个文件允许来完成迁移和提供两个主机之间的双向通信,是否很酷?
一个典型的问题将会出现,这是否会影响到性能。很好理解的是,没有快速恢复,vMotion的大活动内存的虚拟机将非常困难,切换时间可能很长,并可能导致失去与虚拟机的连接,虽然快速恢复会影响页面访问,但在未复制时,给虚拟机带来非常大的好处,而临时增加的内存访问时间影响是微乎其微的,vSphere 5.0中,快速恢复被淘汰,将介绍新的功能给大家,让我们看看发生了什么变化。
vMotion的改变?
在vSphere 5.0中,当涉及到可扩展性和性能时,vMotion的基本原理发生了一些改变。
vMotion多网卡支持
在页面发送时“眩晕”
支持高链路延迟
改进错误报告
vMotion多网卡支持
我们将要讨论vMotion一个非常本质和易见的功能,vMotion现在能够利用多张网卡同时工作来减少vMotion的操作时间,这意味着,即使单一的vMotion可以利用所有配置的vMotion网卡。vSphere 5.0之前,只有一个网卡用来启用vMotion,vMotion使用多个网卡将需要移除一些带宽和吞吐的约束,下面的列表显示了当前多网卡vMotion支持的最大数量:
1GbE –支持16个网卡
10GbE-支持4个网卡
重要的要实现万兆以太网接入,服务器要配置最新的PCI卡才能使用万兆的带宽,这个要求
才能确保你的服务器能够充分利用这些能力。
基本设计原则
当设计您的虚拟化环境,其中设计网络架构需要考虑虚拟机的规格,如果有足够的带宽用于vMotion,那么迁移完成时间会更快,更早的使虚拟机离开主机。设计服务器平台时,需要考虑网络带宽峰值-不仅是考虑网卡的能力,同时也要考虑PCI总线的能力。