如何从Virtual Server迁移到Hyper-V?
2008-12-17 02:20:19 来源:WEB开发网核心提示:考虑把微软的Virtual Server(MVS)迁移到Hyper-V是一个很不错的决定,尽管MVS和Hyper-V都是微软的产品,如何从Virtual Server迁移到Hyper-V?,但从根本上来说它们是完全不同的虚拟化产品,由于底层架构的不同,并对IT多个技术主题进行演讲,主要包括微软管理、系统管理及监控、虚拟
考虑把微软的Virtual Server(MVS)迁移到Hyper-V是一个很不错的决定。尽管MVS和Hyper-V都是微软的产品,但从根本上来说它们是完全不同的虚拟化产品。由于底层架构的不同,Hyper-V的速度要比MVS快很多。本文将阐述Hyper-V的优势所在,以及介绍如何把MVS的架构迁移到Hyper-V上去。
MVS和Hyper-V之间的不同
稍微解释一下这个问题,MVS就是众所周知的“Type-2”虚拟化架构。也就是说MVS类似于一个运行在现有操作系统之上的应用程序。作为一个应用程序,在MVS内运行的虚拟机的资源请求必须经过MVS,然后再经过操作系统才可以达到物理硬件资源。这些对虚拟机请求强制性的额外约束正是诸多管理员认为MVS效率低的一个原因。
我们可以把这个过程与Hyper-V进行比较。Hyper-V称之为“Microkernelized Type-1”(微内核化Type-1)架构。在这里,Type-1架构是指虚拟层直接运行在物理硬件之上,而不是运行在一个常规的操作系统之上。“微内核化”是指是相当精简的hypervisor,因为不包含驱动程序。Hyper-V和VMware ESX不同,它是把驱动程序放在一个称为“主分区”的特殊分区中。你可以把这个主分区看作是操作系统,在安装Hyper-v之前,起着全操作系统的作用。
Hyper-V的速度比较快,因为虚拟机使用指针,称之为合成驱动(synthetic driver)。指针把虚拟机硬件资源请求指向主分区中的实际驱动程序。然后,该驱动程序代表虚拟机发送请求,从而极大提升性能。
把虚拟工作负载从MVS迁移到Hyper-V,将极大地提高速度。不过,你得先进行迁移。把MVS上的虚拟机迁移倒Hyper-v之上并不是很难,只要遵循必要的步骤就可以很容易地做到。这些额外的步骤是非常必要的,因为这两种虚拟化解决方案使用的驱动存在很大的差别。虽然这两种解决方案都为磁盘文件提供了相同的VHD(虚拟硬盘,Virtual Hard Disk)格式,但是在启动虚拟机之前,还是需要对它们运行虚拟机的方式稍作调整。
把工作负载从MVS迁移到Hyper-V
在迁移之前,首先需要确保Hyper-V安装已经打上适当的补丁。也就是说,把在Windows Server 2008运行的本地试用版Hyper-V代码升级到RTM版代码,具体参阅950050文档。你还需要在Vista SP1桌面上安装Hyper-V的管理控制台,具体参阅952627文档。如果计划在集群环境中使用Hyper-V,需下载951308文档的更新程序。如果打算使用系统中心虚拟机管理器(System Center Virtual Machine Manager,简称SCVMM)的RTM版本来管理Hyper-V,还需要安装956589和956774更新程序。
安装好这些更新程序后,就可以参照以下步骤从MVS虚拟机迁移到Hyper-V:
首先,尽可能将所有的虚拟机升级到最新服务包。这样,万一出什么问题,至少确保安装了最新的软件版本。这一步骤为可选,但在进行迁移时,最好还是进行及时的补丁更新。
迁移之前,关掉所有将要进行迁移的虚拟机。备份虚拟机的VHD文件,并存储在网络的其他地方,以备迁移失败时使用。
完成紧急情况备份之后,在MVS中,通过“添加/删除程序”卸载“MVS Virtual Machine Additions”。因为它在Hyper-V中没有用,所以在迁移之前卸载掉这些附件可以省去迁移中的很多麻烦。为确保附件完全被卸载,一定要进行所有必须的重启系统工作。
然后,检查虚拟机的硬件抽象层(Hardware Abstraction Layer,简称HAL),确认是否运行ACPI HAL。如果没有的话,建议在迁移之前把HAL转换为ACPI HAL。同时,建议迁移到Hyper-V之前,卸载所有的网卡,防止发生静态IP地址和“隐藏”的网卡发生IP地址冲突。
如果原平台上的虚拟机使用不同的磁盘的话,需要把所有的不同磁盘合并为一个主磁盘。具体操作过程可以参阅:http://technet.microsoft.com/en-us/library/cc720304.aspx。
接下来,关闭所有的虚拟机,复制VHD文件到Hyper-V的VHD存储位置。该位置的默认路径是C:\ProgramData\Microsoft\Windows\Hyper-V下的一个子文件夹。这是一个服务器上的隐藏文件夹,各子文件夹的命名和虚拟机的命名相同。只需要复制VHD文件,因为其他文件在 Hyper-V上无用。
在Hyper-V中,选择创建一个新的虚拟机,可以根据你的需求进行配置。启动的时候,选择使用一个已经存在的虚拟磁盘,磁盘路径为上述步骤中指定的存储VHD文件的位置。
最后,启动虚拟机,安装集成组件。这可以在虚拟机连接界面内通过点击“Action”->“Insert Integration Services Setup Disk”完成。在这个过程中,需要多次重新启动系统。一旦完成,确认所有的HAL更新和网络成功完成更新。
这个过程用文字表述看似困难,其实,在实际操作中还是比较简单的。如果正确操作,这个迁移的过程基本没有什么风险。如果在迁移过程中遇到任何问题,返回到没有修改过的MVS VHD文件。这个很简单,就是复制MVS VHD文件,重新挂载到MVS,然后重新启动。需要注意的是,虽然VHD文件格式在功能上与MVS和Hyper-V兼容,但是集成组件却不是。因此,一旦完成迁移到Hyper-V的工作,如再想迁移回到MVS,就可能比较复杂了。
作者简介:Greg Shields,MCSE(微软认证系统工程师),是Concentrated Technology(www.concentratedtechnology.com)共同创始人和IT技术专家。他拥有近十五年的IT架构和企业管理经验。同时,也是一名IT培训师,并对IT多个技术主题进行演讲,主要包括微软管理、系统管理及监控、虚拟化等。他最近的著作是由SAPIEN出版社出版的《Windows Server 2008: What's New/What's Changed》。
MVS和Hyper-V之间的不同
稍微解释一下这个问题,MVS就是众所周知的“Type-2”虚拟化架构。也就是说MVS类似于一个运行在现有操作系统之上的应用程序。作为一个应用程序,在MVS内运行的虚拟机的资源请求必须经过MVS,然后再经过操作系统才可以达到物理硬件资源。这些对虚拟机请求强制性的额外约束正是诸多管理员认为MVS效率低的一个原因。
我们可以把这个过程与Hyper-V进行比较。Hyper-V称之为“Microkernelized Type-1”(微内核化Type-1)架构。在这里,Type-1架构是指虚拟层直接运行在物理硬件之上,而不是运行在一个常规的操作系统之上。“微内核化”是指是相当精简的hypervisor,因为不包含驱动程序。Hyper-V和VMware ESX不同,它是把驱动程序放在一个称为“主分区”的特殊分区中。你可以把这个主分区看作是操作系统,在安装Hyper-v之前,起着全操作系统的作用。
Hyper-V的速度比较快,因为虚拟机使用指针,称之为合成驱动(synthetic driver)。指针把虚拟机硬件资源请求指向主分区中的实际驱动程序。然后,该驱动程序代表虚拟机发送请求,从而极大提升性能。
把虚拟工作负载从MVS迁移到Hyper-V,将极大地提高速度。不过,你得先进行迁移。把MVS上的虚拟机迁移倒Hyper-v之上并不是很难,只要遵循必要的步骤就可以很容易地做到。这些额外的步骤是非常必要的,因为这两种虚拟化解决方案使用的驱动存在很大的差别。虽然这两种解决方案都为磁盘文件提供了相同的VHD(虚拟硬盘,Virtual Hard Disk)格式,但是在启动虚拟机之前,还是需要对它们运行虚拟机的方式稍作调整。
把工作负载从MVS迁移到Hyper-V
在迁移之前,首先需要确保Hyper-V安装已经打上适当的补丁。也就是说,把在Windows Server 2008运行的本地试用版Hyper-V代码升级到RTM版代码,具体参阅950050文档。你还需要在Vista SP1桌面上安装Hyper-V的管理控制台,具体参阅952627文档。如果计划在集群环境中使用Hyper-V,需下载951308文档的更新程序。如果打算使用系统中心虚拟机管理器(System Center Virtual Machine Manager,简称SCVMM)的RTM版本来管理Hyper-V,还需要安装956589和956774更新程序。
安装好这些更新程序后,就可以参照以下步骤从MVS虚拟机迁移到Hyper-V:
首先,尽可能将所有的虚拟机升级到最新服务包。这样,万一出什么问题,至少确保安装了最新的软件版本。这一步骤为可选,但在进行迁移时,最好还是进行及时的补丁更新。
迁移之前,关掉所有将要进行迁移的虚拟机。备份虚拟机的VHD文件,并存储在网络的其他地方,以备迁移失败时使用。
完成紧急情况备份之后,在MVS中,通过“添加/删除程序”卸载“MVS Virtual Machine Additions”。因为它在Hyper-V中没有用,所以在迁移之前卸载掉这些附件可以省去迁移中的很多麻烦。为确保附件完全被卸载,一定要进行所有必须的重启系统工作。
然后,检查虚拟机的硬件抽象层(Hardware Abstraction Layer,简称HAL),确认是否运行ACPI HAL。如果没有的话,建议在迁移之前把HAL转换为ACPI HAL。同时,建议迁移到Hyper-V之前,卸载所有的网卡,防止发生静态IP地址和“隐藏”的网卡发生IP地址冲突。
如果原平台上的虚拟机使用不同的磁盘的话,需要把所有的不同磁盘合并为一个主磁盘。具体操作过程可以参阅:http://technet.microsoft.com/en-us/library/cc720304.aspx。
接下来,关闭所有的虚拟机,复制VHD文件到Hyper-V的VHD存储位置。该位置的默认路径是C:\ProgramData\Microsoft\Windows\Hyper-V下的一个子文件夹。这是一个服务器上的隐藏文件夹,各子文件夹的命名和虚拟机的命名相同。只需要复制VHD文件,因为其他文件在 Hyper-V上无用。
在Hyper-V中,选择创建一个新的虚拟机,可以根据你的需求进行配置。启动的时候,选择使用一个已经存在的虚拟磁盘,磁盘路径为上述步骤中指定的存储VHD文件的位置。
最后,启动虚拟机,安装集成组件。这可以在虚拟机连接界面内通过点击“Action”->“Insert Integration Services Setup Disk”完成。在这个过程中,需要多次重新启动系统。一旦完成,确认所有的HAL更新和网络成功完成更新。
这个过程用文字表述看似困难,其实,在实际操作中还是比较简单的。如果正确操作,这个迁移的过程基本没有什么风险。如果在迁移过程中遇到任何问题,返回到没有修改过的MVS VHD文件。这个很简单,就是复制MVS VHD文件,重新挂载到MVS,然后重新启动。需要注意的是,虽然VHD文件格式在功能上与MVS和Hyper-V兼容,但是集成组件却不是。因此,一旦完成迁移到Hyper-V的工作,如再想迁移回到MVS,就可能比较复杂了。
作者简介:Greg Shields,MCSE(微软认证系统工程师),是Concentrated Technology(www.concentratedtechnology.com)共同创始人和IT技术专家。他拥有近十五年的IT架构和企业管理经验。同时,也是一名IT培训师,并对IT多个技术主题进行演讲,主要包括微软管理、系统管理及监控、虚拟化等。他最近的著作是由SAPIEN出版社出版的《Windows Server 2008: What's New/What's Changed》。
更多精彩
赞助商链接