云计算环境下的跨数据中心虚拟机迁移方法与流程

文档序号:12495002阅读:279来源:国知局

本发明涉及计算机领域内云计算环境下虚拟机的跨数据中心迁移技术,具体涉及一种云计算环境下的跨数据中心虚拟机迁移方法。



背景技术:

随着企业信息化程度的提高,企业级数据中心的建设已经成为当前行业信息化的新热点。与传统数据中心相比,数据中心内服务器、存储、网络的不断增长和集中,为其管理运维带来了更多的挑战性问题。

目前随着云计算技术的日益成熟,云计算技术已经在军事和经济领域得到了广泛的应用,也被广泛的应用在数据中心的建设中。通过实现数据中心基础设施的资源虚拟化,将应用、数据与物理资源在逻辑管理上相互分离,IT部门可以更加有效地、应变更加迅速地和更加灵活地提供和维护数据中心的服务,业务部门也可以更加专注于应用和数据的服务。总的来说通过数据中心虚拟化可以IT部门实现下列优势奠定基础:①降低总体拥有成本(TCO):数据中心虚拟化可以帮助IT部门提高设备利用率和能源利用的有效性,提升运营效率,以及降低投资开支。②提高永续性:数据中心虚拟化所提供的抽象能力有助于在不中断正常业务的情况下进行预先安排的停机维护,以及更加迅速地从意外断网事故中恢复。③提高灵活性:因为IT部门不会受到服务和物理硬件之间预定关系的限制,所以一个协调一致的虚拟化基础设施可以迅速地满足新的应用和服务需求。同时由于灾备、办公场所分散的原因,企业一般都会建设两个或多个数据中心,不同的数据中心通过互联网加密隧道进行数据传输。

为了方便适用数据中心的虚拟化资源,数据中心内部采用桌面虚拟化技术来保障用户对虚拟资源的可用性。总体来说桌面虚拟化具有如下的优势:①更广泛与简化的终端设备支持。作为云计算的一种方式,由于所有的计算都在服务器上进行,不再要求高端的终端设备,终端设备的可选择性更加广泛,满足不同的应用需求。②终端设备采购、维护成本大大降低。③集中管理、统一配置,使用安全。管理员可以在数据中心对所有桌面和应用进行统一配置和管理,如系统升级、应用安装等,避免了由于终端分布造成的管理困难和成本高昂。但是其也带来一定的不足,由于虚拟桌面是通过后台的虚拟机提供计算能力,再通过网络传输数据到前端展现,所以在性能上与传统的PC机相比,具有明显的差距,特别是网络性能较差时。

为了解决虚拟桌面在网络性能不佳时给应用带来的限制,在单数据中心下,通常采用位置感知的虚拟机放置策略,使得用户的虚拟机和虚拟桌面终端之间具有一定的网络带宽保障。但是在多数据中心运行环境中,如果虚拟机和虚拟桌面所处不同数据中心,则虚拟桌面在使用过程中,需要借助互联网进行数据传输,极大的影响了虚拟桌面的用户体验。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种不依赖于共享存储的支持、虚拟桌面后端数据的读写不需要通过建立在互联网上的数据通道、容灾备份的效率高、占用存储空间小、备份速率快的云计算环境下的跨数据中心虚拟机迁移方法。

为了解决上述技术问题,本发明采用的技术方案为:

一种云计算环境下的跨数据中心虚拟机迁移方法,步骤包括:

1)建立操作系统的镜像库,所述镜像库中存储有创建虚拟机所需的操作系统镜像;当用户基于镜像库中的操作系统镜像创建虚拟机实例时,将虚拟机实例的操作系统镜像在本地数据中心的共享存储上采用共用操作系统镜像加独立的增量文件的形式进行存储;在任意一个源数据中心收到操作人员发送的将目标虚拟机从源数据中心迁移至目标数据中心的跨数据中心虚拟机迁移指令后,跳转执行步骤2);

2)源数据中心将目标虚拟机的信息向本地代理进行注册,每一个数据中心的本地代理维护有跨数据中心待迁移虚拟机的信息记录,所述信息记录包括下述字段信息;

<image_id,user_id,instance_id,slocation,dlocation,data,flag>

其中,image_id为目标虚拟机的镜像唯一标识符,user_id为系统中用户的唯一标识符,instance_id为虚拟机实例的唯一标识符,slocation为源数据中心的标识符,dlocation为目标数据中心的标识符,data表示目标虚拟机的增量文件的压缩数据,flag为数据同步状态,flag为0表示同步未完成,flag为1表示数据同步完成;

3)源数据中心对本地代理注册的信息记录进行周期性扫描,如果某条信息记录的dlocation字段与源数据中心的标识符不一致且flag值为0,则启动数据远程同步机制,将该条信息记录同步至dlocation字段对应的目标数据中心的本地代理;同步完成后,源数据中心、目标数据中心分别将本地代理存储的该信息记录的flag值设置为1;

4)目标数据中心创建新虚拟机实例,在目标数据中心的共享存储上生成共用操作系统镜像加独立的增量文件,将本地代理存储的信息记录的data字段进行解压缩得到目标虚拟机的增量文件,并将目标虚拟机的增量文件替换新虚拟机实例的增量文件,然后重新启动新虚拟机实例,完成目标虚拟机在目标数据中心的恢复;

5)目标数据中心的本地代理删除所述信息记录,并通知被删除信息记录中slocation字段对应的源数据中心的本地代理删除对应的信息记录。

优选地,步骤1)中所述镜像库中每个操作系统镜像通过<image_id,iamge_name,image_des,image_url>字段进行描述,其中image_id是操作系统镜像的唯一标示,image_name为操作系统镜像的名称,image_des为操作系统镜像的描述信息,image_url为操作系统镜像的存储位置。

优选地,步骤1)中将虚拟机实例的操作系统镜像在本地数据中心的共享存储上采用共用操作系统镜像加独立的增量文件的形式进行存储时,所有操作系统镜像的存储组织形式如下式所示;

上式中,base表示操作系统镜像的共同部分内容,inst11和inst12表示共用操作系统镜像的两个虚拟机实例的增量文件,inst21表示使用操作系统镜像的虚拟机实例的增量文件。

本发明云计算环境下的跨数据中心虚拟机迁移方法将虚拟机实例的操作系统镜像在本地数据中心的共享存储上采用共用操作系统镜像加独立的增量文件的形式进行存储,采用包含增量文件压缩数据的信息记录进行同步,极大地提高了虚拟机跨数据中心迁移的代价,该方法具有以下几个优势:

1、本发明不依赖于共享存储的支持。目前现有的虚拟迁移主要集中在数据中心内部的在线迁移,在共享存储的支持下,只需要迁移内存数据即可完成虚拟机在不同物理服务器之间的迁移。在多数据中心、跨数据中心的虚拟机迁移中,目前还是借鉴在线迁移的思路,依赖于共享存储的支持。

2、虚拟桌面后端数据的读写不需要通过建立在互联网上的数据通道、能够提高桌面虚拟化的用户体验。由于网络性能的关系,用户可以借助虚拟桌面等产品使用本数据中心的虚拟资源,但是一旦由于业务等需要去其它地方办公,即使采用现有的虚拟机迁移方法,后端数据的读写仍然需要通过建立在互联网上的数据通道,影响用户的体验。

3、本发明能够提高容灾备份的效率。现有容灾备份机制即使采用增量式备份在对虚拟机进行初次备份的时,仍然需要做一次全量备份,不仅极大的浪费的存储空间,而且也降低了备份速率。本发明采用共用操作系统镜像、独立的增量文件相互分离的形式,占用存储空间小,而且备份也只需要对增量文件进行备份,从而能够提高容灾备份的效率。

4、本发明结合现有的在线迁移技术为虚拟机跨数据中心在线迁移提供一种可能性。在本发明中提供了虚拟机跨数据中心的迁移,此迁移的局限性是虚拟机在迁移过程中需要停机。针对此局限性后续可以通过借鉴在线迁移过程中内存同步技术,实现虚拟机跨数据中心在线迁移。

附图说明

图1为本发明实施例方法的基本流程示意图。

具体实施方式

下文将以麒麟云计算系统为例,对本发明云计算环境下的跨数据中心虚拟机迁移方法进行进一步的详细说明。需要指出的是,本发明并不局限于任何具体的硬件平台和操作系统,方法可以方便地移植到其它环境中,具有较广泛的通用性。

如图1所示,本实施例云计算环境下的跨数据中心虚拟机迁移方法的步骤包括:

1)设置虚拟机镜像库和虚拟机实例组织方式:建立操作系统的镜像库,所述镜像库中存储有创建虚拟机所需的操作系统镜像;当用户基于镜像库中的操作系统镜像创建虚拟机实例时,将虚拟机实例的操作系统镜像在本地数据中心的共享存储上采用共用操作系统镜像加独立的增量文件的形式进行存储;在任意一个源数据中心收到操作人员发送的将目标虚拟机从源数据中心迁移至目标数据中心的跨数据中心虚拟机迁移指令后,跳转执行步骤2)。

本实施例中,步骤1)中所述镜像库中每个操作系统镜像通过<image_id,iamge_name,image_des,image_url>字段进行描述,其中image_id是操作系统镜像的唯一标示,image_name为操作系统镜像的名称(比如windows7、kylin64bit等),image_des为操作系统镜像的描述信息,image_url为操作系统镜像的存储位置;本实施例中,为了便于后期的虚拟机跨数据中心迁移,image_id采用镜像的原文件的MD5值;且本实施例中各数据中心采用相同的镜像库,即所采用的操作系统均为统一提供的操作系统,基于此两个数据中心同一个版本的操作系统则具有相同的image_id值。

本实施例中,步骤1)中将虚拟机实例的操作系统镜像在本地数据中心的共享存储上采用共用操作系统镜像加独立的增量文件的形式进行存储时,所有操作系统镜像的存储组织形式如下式所示;

上式中,base表示操作系统镜像的共同部分内容,inst11和inst12表示共用操作系统镜像的两个虚拟机实例的增量文件,inst21表示使用操作系统镜像的虚拟机实例的增量文件。inst11、inst12、inst21等为各自虚拟机实例独有的增量文件,其名称(以下标进行区别)与虚拟机实例的唯一标识符(instance_id)相同,一般而言一个10G大小的镜像创建出来的虚拟机增量部分文件大小仅有200M左右(会随着虚拟机使用过程中用户程序的增加而增加)。例如本实施例中用户创建三个虚拟机实例分别是instance11、instance12和instance21,其中instance11、instance12两个虚拟机采用相同的操作系统镜像创建,则在共享存储中虚拟机文件按照共性base加各自的增量文件形式组织,即因此每次在创建虚拟机时,首先会在base中检测是否存在相同镜像的虚拟机实例,如果存在只需要为此虚拟机创建独立的增量文件即可,否则需要同时创建base中的共性镜像文件和独立的增量文件。

2)虚拟机迁移预处理:源数据中心将目标虚拟机的信息向本地代理进行注册,每一个数据中心的本地代理维护有跨数据中心待迁移虚拟机的信息记录,所述信息记录包括下述字段信息;

<image_id,user_id,instance_id,slocation,dlocation,data,flag>

其中,image_id为目标虚拟机的镜像唯一标识符,user_id为系统中用户的唯一标识符,instance_id为虚拟机实例的唯一标识符,slocation为源数据中心的标识符,dlocation为目标数据中心的标识符,data表示目标虚拟机的增量文件的压缩数据(由instance_id对应的虚拟机实例在共享存储中对应的增量文件压缩得到),flag为数据同步状态,flag为0表示同步未完成,flag为1表示数据同步完成。系统接收到操作人员发送的虚拟机跨数据中心迁移指令后,对目标虚拟机的数据进行预处理,具体来说主要是执行步骤2)将目标虚拟机相关信息向源数据中心的本地代理进行注册。

3)跨数据中心虚拟机增量文件同步:源数据中心对本地代理注册的信息记录进行周期性扫描,如果某条信息记录的dlocation字段与源数据中心的标识符不一致且flag值为0,则启动数据远程同步机制,将该条信息记录同步至dlocation字段对应的目标数据中心的本地代理;同步完成后,源数据中心、目标数据中心分别将本地代理存储的该信息记录的flag值设置为1。步骤3)主要实现多数据中心代理之间的数据同步。每个中心代理通过对本代理存储信息的周期性扫描,及时发现待迁移的虚拟机的数据,并和远程数据中心代理之间进行数据同步。传输过程可以采用现有的具备断点续传等功能的文件同步工具等。

4)虚拟机跨数据中心迁移:目标数据中心创建新虚拟机实例,在目标数据中心的共享存储上生成共用操作系统镜像加独立的增量文件,将本地代理存储的信息记录的data字段进行解压缩得到目标虚拟机的增量文件,并将目标虚拟机的增量文件替换新虚拟机实例的增量文件,然后重新启动新虚拟机实例,完成目标虚拟机在目标数据中心的恢复。

本实施例中,目标数据中心创建新虚拟机实例时,目标数据中心的本地代理周期性扫描所存储的信息记录,如果发现信息记录中某条记录的flag值为1且dlocation字段的值为本数据中心标示,则启动创建虚拟机过程。基于步骤1)中镜像命名假设,创建虚拟机的过程中虚拟机所采用的操作系统镜像唯一标识符为image_id。虚拟机创建成功后,在本中心的共享存储上也会存在{base{imageid},instnew}两个文件,其instnew为新虚拟机实例的增量文件。对所创建的新虚拟机实例的虚拟机状态进行检测,当虚拟机创建成功时,对创建成功的虚拟机增量文件进行替换,即将目标虚拟机的增量文件替换新虚拟机实例的增量文件instnew的文件内容。文件替换成功后,通过系统虚拟化支持的rebuild工具对虚拟机进行重启,完成整个虚拟机的恢复。

5)虚拟机迁移后处理:目标数据中心的本地代理删除所述信息记录,并通知被删除信息记录中slocation字段对应的源数据中心的本地代理删除对应的信息记录。

综上所述,本实施例云计算环境下的跨数据中心虚拟机迁移方法不需要共享数据的支持,但是需要停机进行数据传输,需要较长的时间耗费,但是对于虚拟机伴随人员的需求完全可以满足要求。本实施例云计算环境下的跨数据中心虚拟机迁移方法还可以进一步可以配合现有的内存状态同步技术,在步骤4)恢复完成虚拟机后,可以和原始的虚拟机进行内存数据同步,进一步降低虚拟机服务中断时间。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1