一种用于转换操作系统运行环境的方法和装置的制作方法

文档序号:6372348阅读:128来源:国知局
专利名称:一种用于转换操作系统运行环境的方法和装置的制作方法
技术领域
本发明涉及虚拟机技术,特别涉及一种用于转换操作系统运行环境的方法和装置。
背景技术
随着集成电路制造技术的发展,中央处理单元(CPU)的处理能力在不断增强。摩尔定律显示价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。而大多数情况下,应用并不能随着硬件同步提升性能,对于小规模的应用来说尤其如此,这就使得服务器资源不能被充分利用。而使用虚拟化技术可以很好地解决这一问题。
虚拟化技术是指利用软件和硬件结合,将物理服务器分成若干个隔离的虚拟机,每个虚拟机上都可以独立地运行程序而互不影响。虚拟化技术使得物理资源做到了更细粒度的划分,从而服务器资源被更加充分地利用,节省了成本;将对物理硬件的操作变为软件操作,使得部署、更改、灾备等更加方便;相比于单机运行多个应用程序,使用虚拟机,应用程序的环境与在物理机上一致,运维更加简单。对于目前流行的云计算技术,虚拟化技术就是其核心技术之一。云计算的“基础设施即服务”(Infrastructure as a Service, IAAS)提供一个虚拟化平台,利用虚拟化部署快速简洁的特点,用户可以根据应用实际需求的负载情况,方便地在平台上申请或者释放虚拟机来动态增加或减少计算能力。用户从自己的环境迁移到虚拟化平台时,大多希望能够平滑地进行迁移,即保证系统和软件环境和原先一致,于是就需要P2V (Physical to Virtual,物理机到虚拟机)和V2V (Virtual to Virtual,虚拟机到虚拟机)技术。P2V是指将系统从物理机环境转换到虚拟机环境,使得虚拟机环境与原物理机环境一致;V2V是指将系统从一个平台的虚拟机环境转换到另一个平台的虚拟机环境,使得源和目的虚拟机环境一致。对于P2V, —种典型方式是制作Ghost镜像。Ghost是Symantec公司的一款备份软件,支持将系统分区制作成一个镜像文件以及从镜像文件恢复到系统分区。使用Ghost软件进行P2V的步骤如下I.将需要进行P2V的物理机关机;2.准备一张带有Ghost软件的可启动盘,从该盘启动系统;3.进入Ghost软件界面,制作系统的Ghost镜像;4.将制作好的Ghost镜像复制到虚拟机可以识别的某个独立的物理分区上;5.选择合适的磁盘大小来创建虚拟机,将保存有Ghost镜像的分区设置为虚拟机的一个附加磁盘;6.从带有Ghost软件的盘或者.iso文件启动虚拟机;7.在虚拟机中的Ghost环境中,从镜像进行还原;8.关闭虚拟机,将盘和保存有Ghost镜像的分区从虚拟机中去除;以及
9.启动虚拟机。由此可见,使用Ghost软件执行P2V是很繁琐的,这主要体现在如下几个方面I.由于Ghost软件的运行特性,进行P2V的机器需要先关机,并从带有Ghost软件的盘上启动;2. P2V最终的目的是要将系统从物理机环境迁移到虚拟机环境,Ghost软件通过物理机_>镜像_>虚拟机的步骤来达到这一目的,中间产生的镜像在产生虚拟机后就不需要了,但这个过程增加了 P2V所需的时间;以及3.镜像文件需要额外的存储空间进行保存,当系统在物理机上本身存储的内容比较多时,对镜像文件的存储和复制浪费了存储空间和输入输出接口资源。对于V2V,可以采用和P2V相同的方式,即也使用Ghost软件通过虚拟机1_>镜像_>虚拟机2的步骤进行迁移。·由于虚拟机的磁盘大多数以文件方式进行存储,可以直接通过转换软件,将一种平台的虚拟机磁盘文件直接转换到另一平台可以识别的格式。例如,通过qemu-img工具可以将VMware (VMware公司的虚拟机软件)的.vmdk格式的文件转换为Xen (剑桥大学开发的虚拟机软件)可以识别的.raw格式或者.qcow2格式的文件。上述使用转换工具进行转换的步骤如下I.从源物理机上将虚拟机磁盘文件复制到目的物理机;2.在目的物理机上使用磁盘转换工具将虚拟机磁盘转换为目的虚拟机平台可以识别的格式;3.创建虚拟机,将磁盘设置为格式转换后得到的磁盘文件;以及4.启动虚拟机。使用上述直接转换磁盘格式的方式来执行V2V与使用Ghost软件的方式相比,简化了很多。然而,一方面,这种方式并不通用,即,不能保证有合适的格式转换软件来进行磁盘格式的转换;另一方面,有些虚拟机磁盘并非自增长格式,对于这种格式的虚拟机磁盘,磁盘大小和存储的数据大小是无关的,如果一个容量很大的磁盘中只存了很少的数据,需要转换的虚拟机磁盘也仍然是很大的,这就给转换和复制过程带来了大量的无用输入输出接口资源消耗。

发明内容
为了至少解决上述技术问题,本发明提供了一种用于转换操作系统运行环境的方法和装置,其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境。根据本发明第一方面,提供了一种用于转换操作系统运行环境的方法,其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境,该方法包括根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息;在所述源物理机环境或所述源虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中;以及通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包。优选地,所述方法还包括在根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息的步骤之前,根据所述操作系统中的文件的大小,创建所述虚拟机磁盘。优选地,所述方法还包括在通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包的步骤之后,创建配置文件并且启动所述目的虚拟机环境。优选地,在所述目的虚拟机环境为全虚拟化环境时,所述操作系统运行所必备的信息包括引导信息、分区信息、以及文件系统信息。优选地,在所述目的虚拟机环境为半虚拟化环境时,所述操作系统运行所必备的信息包括文件系统信息。 优选地,所述操作系统为BSD操作系统,所述方法还包括在创建所述虚拟机磁盘的步骤之后、在根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息的步骤之前,启动BSD安装虚拟机,并且将所述虚拟机磁盘绑定到所述BSD安装虚拟机上;以及在所述源物理机环境或所述源虚拟机环境中对所述操作系统中的文件进行打包并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中的步骤之后、在通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包的步骤之前,在所述BSD安装虚拟机上挂载所述虚拟机磁盘,其中,所述根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息的步骤是在所述BSD安装虚拟机上执行的。优选地,所述操作系统为Linux操作系统,所述方法还包括在所述源物理机环境或所述源虚拟机环境中对所述操作系统中的文件进行打包并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中的步骤之后、在通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包的步骤之前,在所述目的虚拟机环境所在的物理主机上挂载所述虚拟机磁盘,其中,所述根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息的步骤是在所述物理主机上执行的。优选地,在对所述操作系统中的文件进行打包时,不对虚拟文件系统文件和传输隧道文件进行打包。优选地,所述目的虚拟机环境为Xen环境或者KVM环境。根据本发明第二方面,提供了一种用于转换操作系统运行环境的装置,其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境,该装置包括重建模块,用于根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息;打包及写入模块,用于在所述源物理机环境或所述源虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中;以及传输及解包模块,用于通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包。优选地,所述装置还包括创建模块,用于在所述重建模块重建所述操作系统运行所必备的信息之前,根据所述操作系统中的文件的大小,创建所述虚拟机磁盘。优选地,所述装置还包括创建及启动模块,用于在所述传输及解包模块通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置并进行解包之后,创建配置文件并且启动所述目的虚拟机环境。优选地,在所述目的虚拟机环境为全虚拟化环境时,所述操作系统运行所必备的 信息包括引导信息、分区信息、以及文件系统信息。优选地,在所述目的虚拟机环境为半虚拟化环境时,所述操作系统运行所必备的信息包括文件系统信息。优选地,所述操作系统为BSD操作系统,所述装置还包括用于在所述创建模块创建所述虚拟机磁盘之后、在所述重建模块重建所述操作系统运行所必备的信息之前,启动BSD安装虚拟机的启动模块、以及将所述虚拟机磁盘绑定到所述BSD安装虚拟机上的绑定模块;以及第一挂载模块,用于在所述打包及写入模块对所述操作系统中的文件进行打包并且写入到所述传输隧道中之后、在所述传输及解包模块将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包之前,在所述BSD安装虚拟机上挂载所述虚拟机磁盘,其中,所述重建模块在所述BSD安装虚拟机上重建所述操作系统运行所必备的信
肩、O优选地,所述操作系统为Linux操作系统,所述装置还包括第二挂载模块,用于在所述打包及写入模块对所述操作系统中的文件进行打包并且写入到所述传输隧道中之后、在所述传输及解包模块将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包之前,在所述目的虚拟机环境所在的物理主机上挂载所述虚拟机磁盘,其中,所述重建模块在所述物理主机上重建所述操作系统运行所必备的信息。优选地,所述打包及写入模块在对所述操作系统中的文件进行打包时,不对虚拟文件系统文件和传输隧道文件进行打包。优选地,所述目的虚拟机环境为Xen环境或者KVM环境。本发明提供了一种用于转换操作系统运行环境的方法和装置,其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境(即,P2V或V2V)。根据本发明的实施例的用于P2V和V2V的方法和装置,对于P2V,不需要额外的存储空间保存镜像;对于V2V,不需要额外的空间保存或原格式磁盘,复制的数据大小就是实际存储数据的大小,因此对于P2V和V2V在存储空间方面开销都很小;并且支持在线P2V和V2V,即可以在源物理机或虚拟机不停机的情况下执行P2V或V2V,而由于不需要断电重启等用于停机的物理操作,整个P2V或V2V过程便于自动化和批量操作,极大地提高了 P2V或V2V操作的效率。


根据以下结合附图的详细描述,本发明的以上和其它目的和特征将变得更加清楚,其中图I是根据本发明的实施例的用于转换操作系统运行环境的方法的流程图;图2是根据本发明的实施例的用于转换操作系统运行环境的方法中的步骤S120和S130的不意图;以及图3是根据本发明的实施例的用于转换操作系统运行环境的装置的框图。
具体实施例方式在以下的详细描述中,为了说明和示例的目的,描述若干个具体细节,以便提供对于各实施例的全面理解。然而,对于本领域普通技术人员而言,可以在没有这些具体细节的情况下实现这些实施例。在以下描述中使用的部件名称仅仅是为了容易说明,而不是为了进行任何限制。 图I是根据本发明的实施例的用于转换操作系统运行环境的方法的流程图。根据本发明的实施例,所述操作系统包括但不限于Linux操作系统、BSD操作系统、Unix操作系统、Windows操作系统、Mac OS操作系统、Chrome OS操作系统等桌面级操作系统,以及Android操作系统、iOS操作系统等移动平台操作系统;所述物理机环境包括能够运行上述操作系统的各种电子设备,包括但不限于台式计算机、笔记本计算机、TabletPC、大型计算机、移动电话、平板电脑、导航仪、音频和/或视频播放器、收音机、移动电视、机顶盒等等;源虚拟机环境和目的虚拟机环境包括但不限于Xen虚拟机环境、KVM虚拟机环境、VMware虚拟机环境、VirtualBox虚拟机环境、Virtual PC虚拟机环境等等。在下文中,以Linux操作系统和BSD操作系统、Xen虚拟机环境和KVM虚拟机环境为例,对本发明的原理进行示例性描述,然而此描述仅仅是示例性的,本发明的范围并不限于此,本发明的原理也可以适用于上述其它的操作系统和虚拟机环境。参见图1,在根据本发明的实施例的用于转换操作系统运行环境的方法100中,将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境(即,P2V或V2V)。一开始,在步骤SllO中,根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息。在步骤S 110之前,还要执行步骤S 101 :根据所述操作系统中的文件的大小,创建所述虚拟机磁盘。步骤SlOl例如可以通过创建文件或者块设备来实现。对于Xen虚拟机环境和KVM虚拟机环境,可以使用Ivcreate命令创建块设备,或者使用dd或qemu-img命令创建文件。另外,对于BSD操作系统,在步骤SlOl之后、步骤SllO之前,还要执行以下步骤启动BSD安装虚拟机(步骤S102),并且将所述虚拟机磁盘绑定(attach)到所述BSD安装虚拟机上(步骤S 103),这是因为对于BSD操作系统,要在此BSD安装虚拟机上执行上述步骤SllO0而对于Linux操作系统,可以在所述目的虚拟机环境所在的物理主机(即,目的物理主机)上执行上述步骤SI 10。根据本发明的实施例,在所述目的虚拟机环境为全虚拟化环境时,所述操作系统运行所必备的信息包括引导信息、分区信息、以及文件系统信息。在KVM虚拟机环境或Xen虚拟机环境作为目的全虚拟化环境来运行Linux操作系统的情况下,根据Linux操作系统的特性,在目的物理主机上为目的虚拟机环境(KVM或Xen)的虚拟机磁盘重建Linux操作系统运行所必备的信息的步骤可以包括(1)重建分区信息,例如通过fdisk或parted命令重建分区表;(2)重建文件系统信息,例如通过mkfs命令在重建的分区上重建文件系统;以及(3)重建引导信息,例如通过grub命令安装bootloader (引导加载器)来执行。在KVM虚拟机环境或Xen虚拟机环境作为目的全虚拟化环境来运行BSD操作系统的情况下,根据BSD操作系统的特性,在BSD安装虚拟机上为目的虚拟机环境(KVM或Xen)的虚拟机磁盘重建BSD操作系统运行所必备的信息的步骤可以包括(I)重建引导信息由于BSD系统中将mbr (master boot record,主引导记录)信息保存在本地的/boot/mbr文件下,因此例如可以通过如下命令在本地重建引导信息(mbr)fdisk-aBI_b/boot/mbr$DISK。 (2)重建分区信息例如可以使用disklabel命令重建分区信息。首先准备好一个分区表配置文件,例如c:*0unused 0 0 0a:*04. 2BSD000然后通过disklabel-w, disklabel-B, disklabel - R命令通过分区表配置文件来
重建分区信息。(3)重建文件系统信息例如可以通过newfs命令来创建虚拟机文件系统。根据本发明的实施例,在所述目的虚拟机环境为半虚拟化环境时,所述操作系统运行所必备的信息包括文件系统信息。Xen虚拟机环境可以作为目的半虚拟化环境来运行Linux操作系统。由于半虚拟化的特性,在系统启动时无需读取引导信息,而是通过在配置文件中配置的内核或pygrub(引导加载器)来加载kernel (系统内核),因此在半虚拟化时引导信息无需重建。另外,由于半虚拟化的特性,分区信息可以直接在配置文件中指定,因此在半虚拟化时引导信息也无需重建。这样,只需重建文件系统信息,这例如可以在目的物理主机上通过mkfs命令对虚拟机磁盘文件重建文件系统来实现。根据本发明的实施例,并且参见图1,在步骤SllO之后,执行步骤S120和步骤S130 :在所述源物理机环境或所述源虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中(步骤S120),并且通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包(步骤S130)。另外,在上述步骤S120之后、步骤S130之前,对于BSD操作系统,执行步骤S121 :在BSD安装虚拟机上挂载(mount)所述虚拟机磁盘;而对于Linux操作系统,执行步骤S121’ 在所述目的虚拟机环境所在的物理主机上挂载所述虚拟机磁盘。下面参见图2来对步骤S 120和步骤130进行描述,图2是根据本发明的实施例的方法100中的步骤S120和S130的示意图。参见图2,在左侧的源物理机环境或源虚拟机环境中,对操作系统中的文件进行打包,所述文件包括操作系统自身的文件以及用户文件,但不对例如/cgroup、/proc, /sys等虚拟文件系统文件和传输隧道文件进行打包。之后,将经打包的文件写入到传输隧道(例如ssh隧道)中。然后,通过传输隧道将经打包的文件传输到右侧的目的虚拟机环境的虚拟机磁盘中的目的位置,并在该目的位置对文件进行解包。在上述过程中,在打包的同时将文件直接写入到传输隧道中,然后通过传输隧道将文件传输到目的虚拟机环境的虚拟机磁盘中的目的位置并在该目的位置对文件进行解包,整个过程中只有网络传输操作,而不存在额外的中间文件存储。
根据本发明的实施例,在步骤S130之后,执行步骤S131 :创建配置文件并且启动所述目的虚拟机环境。所述配置文件可以用来配置中央处理单元(CPU)、内存等硬件设备。本发明提供了一种用于转换操作系统运行环境的方法,其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境。根据本发明的实施例的用于P2V和V2V的方法,对于P2V,不需要额外的存储空间保存镜像;对于V2V,不需要额外的空间保存或原格式磁盘,复制的数据大小就是实际存储数据的大小,因此对于P2V和V2V在存储空间方面开销都很小;支持在线P2V和V2V,即可以在源物理机或虚拟机不停机的情况下执行P2V或V2V,而由于不需要断电重启等用于停机的物理操作,整个P2V或V2V过程便于自动化和批量操作,极大地提高了 P2V或V2V操作的效率。与上述的方法100相对应,本发明还提供了一种用于转换操作系统运行环境的装置200,其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境,参见图3,该装置200包括重建模块210,用于根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息,该重建模块210可以用于执行上述方法100中的步骤SllO ;打包及写入模块220,用于在所述源物理机环境或所述源虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中,该打包及写入模块220可以用于执行上述方法100中的步骤S120 ;以及传输及解包模块230,用于通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包,该传输及解包模块230可以用于执行上述方法100中的步骤S130。在本发明的优选实施例中,所述装置还包括创建模块201,用于在所述重建模块210重建所述操作系统运行所必备的信息之前,根据所述操作系统中的文件的大小,创建所述虚拟机磁盘,所述创建模块201可以用于执行上述方法100中的步骤SlOl。在本发明的优选实施例中,所述装置还包括创建及启动模块231,用于在所述传输及解包模块230通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置并进行解包之后,创建配置文件并且启动所述目的虚拟机环境,所述创建及启动模块231可以用于执行上述方法100中的步骤S131。在本发明的优选实施例中,在所述目的虚拟机环境为全虚拟化环境时,所述操作系统运行所必备的信息包括引导信息、分区信息、以及文件系统信息。在本发明的优选实施例中,在所述目的虚拟机环境为半虚拟化环境时,所述操作系统运行所必备的信息包括文件系统信息。
在本发明的优选实施例中,所述操作系统为BSD操作系统,所述装置还包括用于在所述创建模块201创建所述虚拟机磁盘之后、在所述重建模块210重建所述操作系统运行所必备的信息之前,启动BSD安装虚拟机的启动模块202、以及将所述虚拟机磁盘绑定到所述BSD安装虚拟机上的绑定模块203,所述启动模块202和绑定模块203可以分别用于执行上述方法100中的步骤S102和步骤S103 ;以及第一挂载模块221,用于在所述打包及写入模块220对所述操作系统中的文件进行打包并且写入到所述传输隧道中之后、在所述传输及解包模块230将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包之前,在所述安装虚拟机上挂载所述虚拟机磁盘,所述第一挂载模块221可以用于执行上述方法100中的步骤S121,其中,所述重建模块210在所述安装虚拟机上重建所述操作系统运行所必备的信肩、O在本发明的优选实施例中,所述操作系统为Linux操作系统,所述装置还包括 第二挂载模块221’,用于在所述打包及写入模块220对所述操作系统中的文件进行打包并且写入到所述传输隧道中之后、在所述传输及解包模块230将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包之前,在所述目的虚拟机环境所在的物理主机上挂载所述虚拟机磁盘,所述第二挂载模块221’可以用于执行上述方法100中的步骤S121,,其中,所述重建模块210在所述物理主机上重建所述操作系统运行所必备的信
肩、O在本发明的优选实施例中,所述打包及写入模块220在对所述操作系统中的文件进行打包时,不对虚拟文件系统文件和传输隧道文件进行打包。在本发明的优选实施例中,所述目的虚拟机环境为Xen环境或者KVM环境。由于上述各装置实施例与前述各方法实施例相对应,因此不再对各装置实施例进行详细描述。本发明可以以任何适当的形式实现,包括硬件、软件、固件或者它们的任意组合。可选地,本发明可以至少部分地实现为运行在一个或多个处理器和/或数字信号处理器上的计算机软件。本发明的实施例的装置和模块可以在物理上、功能上和逻辑上以任何适当的方式实现。根据本发明的各个功能可以在单个单元中、在多个单元中或者作为其他功能单元的一部分来实现。同样地,本发明可以在单个单元中实现,或者可以在物理上和功能上分布在不同单元和处理器之间。尽管已经结合一些实施例描述了本发明,但是本发明并不意在限于本文阐述的特定形式。相反地,本发明的范围仅由所附权利要求书限定。此外,尽管特征可能看起来是结合特定实施例而被描述的,但是本领域普通技术人员应当认识到,依照本发明可以组合所描述的实施例的各种特征。在权利要求书中,措词“包括”并不排除其他模块或步骤的存在。此外,尽管单独被列出,但是多个模块或方法步骤可以由例如单个单元或处理器实现。此外,尽管单独的特征可能包含在不同的权利要求中,但是这些特征可能地可以有利地加以组合,并且包含在不同的权利要求中并不意味着特征的组合是不可行的。此外,特征包含于一种权利要求类别(例如方法权利要求)中并不意味着限于该类别,而是表示该特征同样可适当地应用于其他权利要求类别(例如装置权利要求)。此外,权利要求中特征的顺序并不意味着必须的任何特定顺序。并且,方法权利要求中各步骤的顺序并不意味着这些步骤必须按照该顺序来执行。相反地,这些步骤可以以任何适当的顺序执行。此外,单数形式的表述并没有排除复数。因此,对于“一”、“一个”、“第一”、“第二”等等的引用并 没有排除复数。权利要求中的附图标记仅仅是标号,而不应当将其视为对权利要求的范围的限制。
权利要求
1.一种用于转换操作系统运行环境的方法(100),其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境,所述方法(100)包括 根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息(SllO); 在所述源物理机环境或所述源虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中(S120);以及 通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包(S130)。
2.如权利要求I所述的方法,还包括在根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息(SllO)的步骤之前,根据所述操作系统中的文件的大小,创建所述虚拟机磁盘(SlOl )。
3.如权利要求2所述的方法,还包括在通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包(S130)的步骤之后,创建配置文件并且启动所述目的虚拟机环境(S131)。
4.如权利要求3所述的方法,在所述目的虚拟机环境为全虚拟化环境时,所述操作系统运行所必备的信息包括引导信息、分区信息、以及文件系统信息。
5.如权利要求3所述的方法,在所述目的虚拟机环境为半虚拟化环境时,所述操作系统运行所必备的信息包括文件系统信息。
6.如权利要求I至4中任一项所述的方法,其中所述操作系统为BSD操作系统,所述方法还包括 在创建所述虚拟机磁盘(SlOl)的步骤之后、在根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息(SI 10)的步骤之前,启动BSD安装虚拟机(S102),并且将所述虚拟机磁盘绑定到所述BSD安装虚拟机上(S103);以及 在所述源物理机环境或所述源虚拟机环境中对所述操作系统中的文件进行打包并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中(5120)的步骤之后、在通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包(S130)的步骤之前,在所述BSD安装虚拟机上挂载所述虚拟机磁盘(5121), 其中,所述根据所述操作系统的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息(SllO)的步骤是在所述BSD安装虚拟机上执行的。
7.如权利要求I至5中任一项所述的方法,其中所述操作系统为Linux操作系统,所述方法还包括 在所述源物理机环境或所述源虚拟机环境中对所述操作系统中的文件进行打包并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中(S120)的步骤之后、在通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包(S130)的步骤之前,在所述目的虚拟机环境所在的物理主机上挂载所述虚拟机磁盘(S121’),其中,所述根据所述操作系统和所述目的虚拟机环境的类型为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息(SllO)的步骤是在所述物理主机上执行的。
8.如权利要求I至5中的任一项所述的方法,其中在对所述操作系统中的文件进行打包时,不对虚拟文件系统文件和传输隧道文件进行打包。
9.如权利要求I至5中的任一项所述的方法,其中所述目的虚拟机环境为Xen环境或者KVM环境。
10.一种用于转换操作系统运行环境的装置(200),其中将操作系统从源物理机环境或源虚拟机环境转换到目的虚拟机环境,所述装置(200)包括 重建模块(210),用于根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息; 打包及写入模块(220),用于在所述源物理机环境或所述源虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理机环境或所述源虚拟机环境与所述目的虚拟机环境之间的传输隧道中;以及 传输及解包模块(230),用于通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包。
11.如权利要求10所述的装置,还包括创建模块(201),用于在所述重建模块(210)重建所述操作系统运行所必备的信息之前,根据所述操作系统中的文件的大小,创建所述虚拟机磁盘。
12.如权利要求11所述的装置,还包括创建及启动模块(231),用于在所述传输及解包模块(230)通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置并进行解包之后,创建配置文件并且启动所述目的虚拟机环境。
13.如权利要求12所述的装置,在所述目的虚拟机环境为全虚拟化环境时,所述操作系统运行所必备的信息包括引导信息、分区信息、以及文件系统信息。
14.如权利要求13所述的装置,在所述目的虚拟机环境为半虚拟化环境时,所述操作系统运行所必备的信息包括文件系统信息。
15.如权利要求10至13中任一项所述的装置,其中所述操作系统为BSD操作系统,所述装置还包括 用于在所述创建模块(201)创建所述虚拟机磁盘之后、在所述重建模块(210)重建所述操作系统运行所必备的信息之前,启动BSD安装虚拟机的启动模块(202)、以及将所述虚拟机磁盘绑定到所述BSD安装虚拟机上的绑定模块(203);以及 第一挂载模块(221),用于在所述打包及写入模块(220)对所述操作系统中的文件进行打包并且写入到所述传输隧道中之后、在所述传输及解包模块(230)将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包之前,在所述BSD安装虚拟机上挂载所述虚拟机磁盘, 其中,所述重建模块(210)在所述BSD安装虚拟机上重建所述操作系统运行所必备的信息。
16.如权利要求10至14中任一项所述的装置,其中所述操作系统为Linux操作系统,所述装置还包括第二挂载模块(221’),用于在所述打包及写入模块(220)对所述操作系统中的文件进行打包并且写入到所述传输隧道中之后、在所述传输及解包模块(230)将经打包的文件传输到所述目的虚拟机环境中的目的位置并进行解包之前,在所述目的虚拟机环境所在的物理主机上挂载所述虚拟机磁盘, 其中,所述重建模块(210)在所述物理主机上重建所述操作系统运行所必备的信息。
17.如权利要求10至14中任一项所述的装置,其中所述打包及写入模块(220)在对所述操作系统中的文件进行打包时,不对虚拟文件系统文件和传输隧道文件进行打包。
18.如权利要求10至14中的任一项所述的装置,其中所述目的虚拟机环境为Xen环境或者KVM环境。
全文摘要
本发明的实施例提供了一种用于转换操作系统运行环境的方法和装置,将操作系统从源物理/虚拟机环境转换到目的虚拟机环境。该方法包括根据所述操作系统和所述目的虚拟机环境的类型,为所述目的虚拟机环境的虚拟机磁盘重建所述操作系统运行所必备的信息;在所述源物理/虚拟机环境中,对所述操作系统中的文件进行打包,并且写入到所述源物理/虚拟机环境与所述目的虚拟机环境之间的传输隧道中;以及通过所述传输隧道将经打包的文件传输到所述目的虚拟机环境的虚拟机磁盘中的目的位置,并进行解包。根据本发明的实施例的方法和装置,在存储空间方面开销很小,并且支持在线转换操作,便于自动化和批量操作,极大地提高了转换操作的效率。
文档编号G06F9/455GK102799483SQ20121022036
公开日2012年11月28日 申请日期2012年6月28日 优先权日2012年6月28日
发明者齐路, 张玉放, 唐会军 申请人:北京奇虎科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1