(完整版)十个步骤将操作系统从物理机迁移到虚拟机
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
老板让你在很短的时间里执行一项操作系统迁移的任务,此时,如果你有一个功能完整的且经过测试的物理机到虚拟机迁移的解决方案,那么你将是一个真正的英雄!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” /n ame:TESTMIGRATION
/vmconfigpath:”E:\VMs” /virtualDiskPath:”E:\VMs” /hwdestvs:MOBILEP2V /virtualDiskDynamic VMScript.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重新启动计算机。
ADS接管源系统并将其启动到Deployment Agent来初始化磁盘镜像捕捉。
为了跟踪每一个磁盘镜像捕捉的过程,你可以使用在MobileP2V服务器上的Automated Deployment Service控制台。
在ADS控制台中,选择“Devices”*“Running Jobs”,然后在“Running Jobs”上双击,如图2所示。
镜像捕捉的时间取决于需要捕捉的磁盘的数量和大小。
如果服务器的网卡速度较慢,那么应该考虑换一块速度较快的网卡来减
少传输时间。
当镜像捕捉完成时,ADS关闭计算机并从设备数据库中移除源系统。
在脚本运行结束前的最后任务是改变系统文件的属性,如图3所示。
图2:Running job的任务状态
图3:改变文件系统属性
第八步:创建虚拟机
在将已捕捉的磁盘镜像迁移之前,你必须确保将要创建的虚拟机的内存、磁盘和网络配置与物理机相同。
CreateVM.cmd(VMScript生成的脚本之一)脚本可以帮你自动完成这些工作。
为了启动该脚本,打开一个命令行窗口并将当前目录切换至“C:\Program Files\Microsoft VSMT\p2v\TestMigration”,然后执行TestMigration_CreateVM.cmd 脚本。
该脚本将创建一个新的虚拟机配置文件
——E:\VMS\TestMigration\TestMigration.vmc,然后注册该虚拟机,并将该虚拟机连接到缺省的虚拟网络VM0,同时会创建并附加虚拟磁盘(VHDs)到虚拟机上,并附加一个Remote Installation Services(RIS)虚拟软盘到虚拟软盘驱动器里。
如果你看到如下所示的错误:
Error: Syst em IO.FileLoadException: The Located assembly’s manifest definition with the name ‘Microsoft.VirtualServer.Interop’ does not match the assembly reference.
那么MobileP2V服务器应该是运行在Virtual Server 2005 R2 Service Pack 1(SP1)上了。
VSMT1.1与Virtual Server 2005 R2兼容,但与Virtual Server 2005 R2 SP1并不兼容,关于如何解决该问题,可以参考附文“为什么VSMT1.1不支持Virtual Server 2005 R2 SP1”。
当所有的任务完成时,使用ADS控制台检查ADS设备数据库。
刚才创建的虚拟机应该已经增加到了ADS 的设备数据库中,并且设置为启动到Deployment Agent。
第九步:将ADS磁盘镜像部署到TestMigration虚拟机
虚拟机创建后,需要将源磁盘镜像恢复到虚拟机上。
TestMigration_DeployVM.cmd控制着镜像还原。
为了将源磁盘镜像部署到虚拟机,切换到“C:\Program Files\Microsoft VSMT\p2v\TestMigration”目录下执行TestMigration_DeployVM.cmd。
为了跟踪虚拟机部署的过程,你可以使用位于MobileP2V服务器上的Virtual Server 2005 R2
Administration Website。
你将会看到虚拟机启动到Deployment Agent后,磁盘镜像恢复到虚拟磁盘上,如图4所示。
硬件依存的系统文件则会根据虚拟机兼容的版本进行交换,所需的操作系统配置也会生效。
图4:虚拟机部署状态
如果你使用ADS控制台来检查ADS设备数据库,你将会看到虚拟机仍然位于设备数据库中。
将RIS虚拟软盘从虚拟机中移出后,TestMigration_DeployVM.cmd脚本将结束运行。
但此时的虚拟机仍然会启动到Deployment Agent。
第十步:完成迁移
在你完成源系统到虚拟机的迁移之前,需要执行一些清理任务。
由于TestMigration虚拟机仍然会启动到Deployment Agent,因此你需要重新启动TestMigration虚拟机:打开ADS控制台,右键单击TestMigration 设备,然后选择run job。
“New Job”向导将启动。
单击“Next”,选择“create a one-time job”,然后单击“Next”跳过描述窗口。
选择“Internal”命令并单击“Next”。
选择“\bmonitor reboot”并单击“Next”,单击“Finish”重新启动TestMigration虚拟机。
TestMigration重启后,设备将被释放控制并从设备数据库中删除。
登录到虚拟机后,你首先应该安装一下Virtual Machine Additions(虚拟机添加件),这样可以确保你在使用虚拟机时获得更好的性能。
将剩下的配置完成后,测试虚拟机的连通性和性能来确保虚拟机已经正常运行。
虚拟机测试完成后,你就可以将TestMigration从MobileP2V迁移到生成环境中的Virtual Server宿主机上了。
最后提醒你在迁移完成后,需要备份源磁盘镜像,备份完毕后即可从ADS镜像存储中删除。
现在,你已经拥有一个功能完整且经过测试的MobileP2V解决方案了。
这样你可以在企业中随时执行P2V 的迁移了。