Storage VMotion和Vmware VMotion功能都属于同一类功能“Migration(迁移)”,所谓“迁移”就是将一台虚拟机从一台主机或者存储设备移动到另外一台主机或存储设备的过程,在vSphere中存在着4种迁移模式(表1是4种迁移模式的属性):
表1:迁移类型和相关属性 | |||||
迁移类型 |
虚拟机 |
是否更换 |
是否需要 |
是否需要 |
CPU兼容性 |
Cold |
关机 |
支持同时更换 |
是 |
否 |
允许不同 |
Suspend |
暂停 |
支持同时更换 |
是 |
否 |
CPU必须符合 |
VMotion |
开机 |
只允许更 |
否 |
是 |
CPU必须符合 |
Storage |
开机 |
只允许更 |
否 |
否 |
N/A |
1.Cold:在虚拟机关机的情况下进行迁移;
2.Suspend:先将虚拟机至于“暂停”状态,然后进行迁移;
3.VMware VMotion:在虚拟机开机的时候将其从从一台主机迁移到另外一台;
4.Storage VMotion:在虚拟机开机状态下,将其虚拟机文件从一台存储设备迁移到另外一台存储设备。
乍看之下Storage VMotion似乎没有什么作用,其实在企业环境下该功能在很多情况下能带来不错的体验,比如:需要维护或者重建存储;需要重新分配存储的负载;需要存储资源分散到物理存储;需要对ESX主机进行升级等等。以上这些情况下,有了Storage VMotion,就不需要为提供重要业务的虚拟机提供停机时间。
图15
Storage VMotion的工作机制具体如下(图15):
1.在目标存储上创建虚拟机目录,并从源存储上复制除虚拟磁盘文件外的其它虚拟机文件;
2.为源存储上的虚拟磁盘文件做一次磁盘快照;
3.将快照复制到目标存储上,再做数次磁盘快照完成复制操作,直至剩下极少数磁盘差异,以确保这部分差异能在极短的时间内完成后一次复制;
4.在极短的一个时间内锁定虚拟机,完成后一次复制,并将虚拟机文件的映射关系转移到目标存储上;
5.删除源存储上的所有虚拟机文件和文件夹。
我们可以在实验环境中对该功能进行测试。在vSphere Client中进入“Home→Inventory→Hosts and Clusters”界面,左键点击虚拟机“Win2008”,在右侧Summary选项卡汇总可以看到虚拟机存储位置“Data store”在ESX Server 1的本地存储Storage1上。
图16
右键点击虚拟机“Win2008”→“Migrate”弹出迁移虚拟机向导,选择“Change datastore”(图16),选择目标存储为共享磁盘“SharedDisk”,窗口中的兼容性验证显示为成功便可进入下一步直至点击“Finish”完成Storage VMotion(图17)。此时虚拟机的存储文件已经由本地磁盘Storage1迁移到了共享磁盘SharedDisk上,而整个过程中提供服务的虚拟机并不会中断服务。
图17
在使用Storage VMotion时,有一些事项需要大家注意:
1.管理员应该花时间计划并协调,为其做准备;
2.在低负载时段执行该操作;
3.请确认ESX服务器可以同时访问源存储和目标存储;
4.再确认一下Storage VMotion的限制条件;
5.附带有已创建磁盘快照的虚拟机不能被迁移;
6.如果需要同时迁移主机和存储,必须先关闭虚拟机;
7.同时只能进行4个Storage VMotion迁移操作。
我们在介绍vSphere时曾经多次提到了VMotion(图18),该功能简而言之就是将一台已经启动的虚拟机从一台主机迁移到另外一台主机。VMotion的真正意义在于组建虚拟机高可用集群和动态资源调度,其中后者的作用是当大量虚拟机运行在多台ESX Server上时,如果某台ESX Server出现了负载极重的情况,可以在不停机的情况下将该台ESX Server上的虚拟机迁移到另外一台负载较轻的ESX Server。这对于虚拟化管理平台的智能化管理和高效利用物理机资源有着至关重要的作用。
图18
我们首先简单介绍一下VMotion的工作机制(图19):通过VMotion Network(虚拟交换机的VMkernel Port)复制Memory Bitmap到目标ESX Server,具体方式和Storage VMtion中磁盘快照的逐步复制类似;然后将虚拟机的生产网络和磁盘访问权限切换到目标ESX Server上。整个过程中由于内存数据需要通过VMotion Network进行高速传输,因此压力会非常大。
图19
由于VMotion对于物理机和虚拟机的设置都有一定要求,因此一台虚拟机如果需要执行VMotion操作,虚拟机本身的设置环境需要符合以下条件:
1.虚拟机不能连接到一个内部虚拟交换机(即没有上联口的虚拟交换机);
2.虚拟机的虚拟驱动器(比如光驱和软驱)不能处于挂载着本地镜像的状态;
3.虚拟机不能够设置CPU绑定(即虚拟机的虚拟CPU不能和物理机的CPU进行关联);
4.虚拟机不能处于一个微软MSCS集群中;
5.虚拟机的SWAP文件(虚拟机内存交换文件)必须能够被目标主机访问;
6.如果虚拟机使用裸设备,那么该裸设备必须能够被目标主机访问。
此外提供虚拟机迁移的所有ESX主机的物理环境也必须符合以下条件:
1.虚拟机可以访问使用到的所有存储;
2.使用千兆网络作为VMotion Network;
3.可以访问到相同的物理网络;
4.CPU必须兼容(不过一些功能可以通过Enhanced VMotion Compatibility(EVC)获得兼容)。
因为CPU的兼容性问题比较复杂,我们在这里附上了一个图表(图20)供大家参考,就不再展开讲解了。因为实验环境使用的两台ESX Server 1和ESX Server 2是安装在PC2上的两台虚拟机,使用的都是Phenom Ⅱ X4 945虚拟出的虚拟CPU,所以不会存在CPU的兼容性问题。
图20
回到实验环境,在vSphere Client中进入“Home→Inventory→Hostsand Clusters”界面,点击Data Center“ Test”→“Maps”,勾选“Host Options”和“VM Options”中的全部选项再点击“Apply Relationships”就可以查看环境的拓扑结构了(图21)。大家有兴趣的话,可以逐一对比之前的虚拟机环境和硬件条件。
图21
图22
接下来就可以开始VMotion了:右键点击虚拟机“Win2008”→“Migrate”启动迁移虚拟机向导,选择“Change host →192.168.1.60”,接下来保持默认就可以完成VMotion。再回到之前看拓扑结构的地方对比一下(图22),虚拟机“Win2008”是不是已经迁移到ESX Server 2上了?
在经过连续的安装和设置过程后,我们终于搭建起了一套VMware vSphere企业级虚拟化环境,并得以在该环境下体验VMotion之类颇具特色的功能。对于企业IT人员来说,这是一个非常实用的预体验过程,你是否已经感受到了企业级虚拟化的魅力了呢?另外如果有需要的话,我们还将会陆续就“如何分配资源池”、“组建虚拟机的高可用性”、“动态资源分配”等各种虚拟化应用的相关问题进行进一步的探讨,欢迎大家发送邮件至mc.chzl@gmail.com进行讨论或分享经验。