十个步骤将操作系统从物理机迁移到虚拟机老板让你在很短的时间里执行一项操作系统迁移的任务,此时,如果你有一个功能完整的且经过测试的物理机到虚拟机迁移的解决方案,那么你将是一个真正的英雄!P2V的解决方案可以使你在不影响生产网络或不重新在生产网络中进行配置的前提下执行服务器迁移。
在这里,我将向大家解释一些Microsoft Virtual Server Migration Toolkit(VSMT)的内部工作机制,并且演示一下为了实现迁移,应如何使用ADS来配置一台可移动的服务器。
在2006年12月份的“突破ADS障碍”一文中,我给大家展示了在Windows操作系统迁移时,如何构建一个基础的移动ADS解决方案。
接着,在2007年5月份的文章“提升移动ADS解决方案”中,我展示了如何通过安装VSMT来扩展移动ADS解决方案,进而执行物理机到虚拟机的迁移。
接下来我将给大家演示如何使用VSMT来执行一个P2V的迁移。
开始之前通过本系列的文章,你已经知道如何在一个移动的小车上组合必要的硬件和安装基本的软件来创建一个移动的ADS解决方案:Windows Server 2003企业版,动态主机配置协议(DHCP)服务器、ADS1.1、Virtual Server 2005 R2 SP1和VSMT1.1。
我们把资源服务器称为Testserver,并假想运行着Windows Server 2003企业版。
为了执行一个P2V的迁移,你需要执行下面的十个步骤。
开始之前,我建议你花一些时间来看看你的服务器是否适合执行P2V转换。
有时候,在一个不太稳定的生产服务器上执行一次P2V的迁移是不值得的。
这是因为可能在迁移的过程中,那些不稳定的因素会出现。
如果恰好出现这种情况,那么我建议你首先重建虚拟机,然后将数据从旧的物理服务器迁移到虚拟服务器中,这样做可能会更好一些。
此外,对于那些带有OEM应用程序的服务器,在执行P2V迁移前,应该首先卸载或禁用这些应用程序,这样可以保证虚拟机在首次启动时,这些应用程序不会和虚拟机进行交互。
读到这里,先看看你的服务器适合进行P2V的转换吗?如果适合的话就让我们开始吧。
第一步:准备源系统尽管VSMT不会修改源系统,我还是推荐你遵循一些最佳实践,在开始P2V迁移之前,首先对源操作系统进行备份。
此外,禁用与物理服务器相关的所有驱动和应用程序,这些驱动和应用程序在虚拟机环境中将不再可用。
第二步:准备MobileP2V服务器VSMT包括一个名为GatherHW.exe的工具,该工具能够在源服务器上收集物理硬件的信息,然后创建一个XML配置文件,你可以使用该配置文件来分析源系统中任何已知的硬件兼容性问题(动态磁盘、高于3.5GB的内存以及不支持的设备等等)。
为了运行GatherHW.exe,你必须首先将它复制到源系统中。
我推荐你首先在MobileP2V服务器上的VSMT安装目录(缺省为C:\Program Files\Microsoft VSMT)下创建一个名为VSMT的共享目录。
当然,你还需要一个位置来存放GatherHW.exe生成的XML文件。
你可以在MobileP2V服务器上创建一个名为C:\P2VSource的目录,并将其共享为P2VSource,设置本机管理员具有写权限。
MobileP2V服务器的驱动器配置信息如下:C盘(C: ——操作系统),D盘(D:——ADS镜像文件)和E盘(E:——虚拟机存储)。
第三步:收集配置信息你在MobileP2V服务器上创建了共享后,以本地管理员登录到Testserver。
接着,在C盘根目录下创建一个名为VSMT的目录,并将\\MobileP2V\VSMT映射到一个网络盘。
然后将GatherHW.exe复制到C:\VSMT。
在源系统上双击GatherHW.exe来收集配置信息。
GatherHW.exe将以源系统的计算机名为名称在当前目录下创建一个XML文件(如:Testserver.xml)。
将XML文件复制到\\MobileP2V\P2VSource。
第四步:验证配置信息在Testserver服务器上使用GatherHW.exe收集完配置信息之后,可以使用VMScript.exe (作为VSMT的一部分安装在MobileP2V上)来对数据进行验证。
为了使用刚才生成的XML 文件作为VMScript.exe 的运行参数,登录到MobileP2V然后打开一个命令行窗口。
切换到C:\Program Files\Microsoft VSMT目录。
在命令行窗口中,输入下列内容来执行VMScript:VMScript.exe /hwvalidate /hwinfofile:”C:\P2VSource\Testserver.xml”VMScript通过分析XML文件来报告源系统硬件的错误以及配置问题。
(注意:有一些硬件,诸如特殊的板卡、USB设备或光纤通道卡等其它设备在虚拟机中可能运行不正常。
)检查VMScript的输出可以查看出现的问题、警告或错误。
你可以使用Vmpatch.exe来纠正这些问题,并可在继续之前复制已丢失的系统文件、Service Packs和一些热修复文件。
如果你收到报告Windows Server 2003 Service Pack 2(SP2)文件丢失的报告时,可参考附文:“在VSMT补丁目录中增加对Windows Server 2003 SP2的支持”,它可以指导你如何更新带有Windows 2003 SP2驱动的补丁缓存。
Error: Cannot find patch files for the operating system/service pack level in the c:\Program Files\Microsoft VSMT\Patches Source\5.2.3790\SP2 directory.第五步:生成迁移脚本解决了Testserver配置相关的问题后,你可以重新运行VMScript来生成迁移脚本。
这些脚本控制着磁盘镜像捕获、虚拟机创建以及如何将磁盘镜像部署到虚拟机。
为了生成迁移脚本,通过下面的语法来运行VMScript:VMScript /hwgeneratep2v /hwinfofile:”path\Source.xml” /name:vm_name/vmconfigpath:”vm_path” /virtualDiskPath:”vm_path” /hwdestvs:controller_server在该脚本中,path\Source.xml是xml配置文件(C:\P2VSource\TestServer.xml)的路径,vm_name是在Virtual Server控制台中分配给虚拟机的名称(TESTMIGRATION),vm_path是在特定的宿主机上存放.vmc和.vhd文件的位置(E:\VMs),controller_server是Virtual Server宿主机的名称(MobileP2V)。
缺省情况下,迁移脚本将创建固定大小的虚拟磁盘。
如果源系统的物理磁盘有大量的未分配的空间,或者你不想使用固定大小的虚拟磁盘,可以使用/virtualDisk-Dynamic选项来执行VMScript。
该选项同时也可以加速虚拟机的创建过程。
如果你使用了/virtualDisk-Dynamic选项,执行脚本的命令行如下:VMScript /hwgeneratep2v /hwinfofile:”C:\P2VSource\TestServer.xml”/name:TESTMIGRATION /vmconfigpath:”E:\VMs” /virtualDiskPath:”E:\VMs”/hwdestvs:MOBILEP2V /virtualDiskDynamicVMScript.exe将在子目录“C:\Program Files\Microsoft VSMT\p2v\TESTMIGRATION”里生成迁移脚本。
执行VMScript命令行,你将看到如图1所示的输出。
VMScript创建了12个输出文件,这些文件在迁移过程中将会被用到。
TestMigration_P2V_Readme.txt提供了关于脚本创建和驱动问题的相关信息。
三个XML文件包括了在迁移过程中需要用到的磁盘和驱动配置的相关信息。
TestMigration_boot.ini 文件直接复制自源系统中的boot.ini文件。
在迁移过程中你将直接执行三个脚本:TestMigration_Capture.cmd用来捕捉ADS磁盘镜像,Test-Migration_CreateVM.cmd使用源配置信息来创建目标虚拟机,TestMigration_DeployVM.cmd将捕捉的源磁盘镜像还原到目标虚拟机的磁盘上。
图1:VMScript.exe创建的输出文件VMScript也会创建一个名为Patches的子目录。
VMScript将把你需要安装的补丁文件复制到该目录下。
第六步:加载需要的驱动到ADS当VMScript验证源系统的配置信息时,它并不去验证安装在ADS文件缓存中的驱动程序。
需要安装的最重要的驱动是源系统的网卡驱动。
如果没有网卡驱动,将无法捕获源服务器的镜像。
可以将源系统的最新的网卡驱动下载到MobileP2V的一个临时目录中。
然后将这些驱动程序文件复制到“C:\Program Files\Microsoft ADS\NBS Repository\User\PreSystem”。
当你将网卡驱动程序复制到ADS文件缓存时,不要创建任何子目录,同时也不要包括任何的Txtsetup.oem文件。
这是因为驱动程序文件必须直接放到PreSystem目录下,Txtsetup.oem 文件也不会用到。
驱动程序复制完成后,为了能够找到这些新的驱动程序文件,需要重新启动ADS Builder服务。
打开一个命令行窗口,然后输入:Net stop adsbuilder按回车。
输入:Net start adsbuilder再次按回车。
第七步:捕获Testserver的系统磁盘现在你可以准备捕获Testserver系统磁盘镜像了。
TestMigration_Capture.cmd将利用ADS 来捕捉磁盘镜像。
以本机管理员登录到MobileP2V,根据如下的步骤来捕捉TestServer的磁盘镜像。
打开一个命令行窗口,并将当前目录切换至“C:\Program Files\Microsoft VSMT\p2v\TestMigration”,执行TestMigration_capture.cmd脚本。
出现提示时,登录到Testserver源服务器,然后通过PXE重新启动计算机。