发明内容
根据本发明的一个实施例,提供一种广域网虚拟平台的构建方法,包括:
步骤1)、将多个数据中心虚拟到逻辑局域网,在每个数据中心部署虚拟化平台;
步骤2)、创建部署虚拟机所使用的文件中的模板镜像,用户私有镜像和虚拟机配置文件;其中在模板镜像中安装操作***和用户请求业务的静态配置文件,用户私有镜像包括用户存储的私有文件和修改过的***配置信息,虚拟机配置文件包括用户私有镜像虚拟机的参数;
步骤3)、在逻辑局域网内的多个数据中心部署模板镜像、用户私有镜像和虚拟机配置文件。
在一个实施例中,步骤1)中将多个数据中心虚拟到逻辑局域网包括:
步骤11)、选择多个数据中心之外的具有广域网IP地址的节点作为VPNserver节点,在每个数据中心内选择节点作为VPNclient节点;
步骤12)、在VPNserver节点上生成建立其自身服务和VPNclient节点请求连接所使用的认证文件、配置VPNserver节点,并且启动VPNserver服务;
步骤13)、将在VPNserver节点上生成的VPNclient节点请求连接所使用的认证文件复制到VPNclient节点、配置VPNclient节点,并且启动VPNclient服务向VPNserver节点请求连接;
步骤14)、将每个数据中心内的VPNclient节点设置为其所在数据中心内的其他节点跨广域网访问其他数据中心的路由。
在一个实施例中,所述VPNclient节点具有与其所在数据中心内的其他节点在同一VLan中的第一网络适配器,以及具有负责请求与所述VPNserver节点之间的连接的第二网络适配器。
在进一步的实施例中,步骤14)包括:
在每个数据中心内除VPNclient节点之外的其他节点上将默认路由设置为该VPNclient节点的第一网络适配器上的IP地址,并且在第一网络适配器设备上设置其他数据中心的路由。
在一个实施例中,步骤2)包括:
步骤21)、生成模板镜像,启动模板镜像虚拟机;其中,模板镜像在数据存取过程中的属性为只读;
步骤22)、在所述模板镜像中安装操作***;
步骤23)、在所模板镜像中安装用户请求业务的静态配置文件;
步骤24)、当用户请求业务时,动态生成包含模板镜像文件的存储映射表的用户私有镜像;其中,用户私有镜像用于由用户从其中读取文件、存储写入的数据,并且用于将模板镜像中的文件复制到其中进行修改;模板镜像用于在未能从用户私有镜像中读取文件时,由用户从模板镜像中读取该文件;
步骤25)、创建用户私有镜像的虚拟机配置文件。
在进一步的实施例中,步骤23)之后还包括:
当数据中心的业务升级时,通过对相应的模板镜像中的内容进行维护来升级该模板镜像。
在一个实施例中,步骤3)包括:
当数据中心对用户公开:将部署虚拟机所使用的文件部署为在多个数据中心之间共享用户私有镜像和虚拟机配置文件;
当数据中心不对用户公开:在每个数据中心部署模板镜像、该数据中心的用户私有镜像和虚拟机配置文件。
在一个实施例中,将部署虚拟机所使用的文件部署为在多个数据中心之间共享用户私有镜像和虚拟机配置文件包括:
步骤311)、将每个数据中心内的所有存储节点统一为一个存储接口,在其中创建一个卷来存储模板镜像;
步骤312)、每个数据中心内的所有业务节点,通过本数据中心的统一存储接口将存储模板镜像的卷挂载到本地路径下,其中每个业务节点上挂载该卷的本地路径相同;
步骤313)、将多个数据中心内的所有存储节点统一为一个存储接口,在其中创建两个卷,分别用于存储用户私有镜像和虚拟机配置文件;
步骤314)、将存储用户私有镜像和虚拟机配置文件的卷挂载到所有数据中心的业务节点本地路径,其中每个业务节点上挂载这两个卷的本地路径相同。
在进一步的实施例中,还包括:
步骤315)、为每个卷添加文件缓存。
在一个实施例中,在每个数据中心部署模板镜像、该数据中心的用户私有镜像和虚拟机配置文件包括:
步骤321)、将每个数据中心内的所有存储节点统一为一个存储接口,在其中创建三个卷,分别用于存储模板镜像、本数据中心的用户私有镜像和虚拟机配置文件;
步骤322)、每个数据中心内的所有业务节点,通过所述存储接口将存储模板镜像、本数据中心的用户私有镜像和虚拟机配置文件的卷挂载到本地路径,其中每个业务节点上挂载这三个卷的本地路径相同。
采用本发明可以达到如下有益效果:
通过虚拟专用通道VPN将物理上分布的多个数据中心虚拟到同一逻辑局域网中,并且在部署过程中将虚拟机镜像分为模板镜像、用户私有镜像和虚拟机配置文件,利用模板镜像来动态生成用户私有镜像和虚拟机配置文件,可在多个公开数据中心之间实现全局统一管理用户私有镜像和虚拟机配置文件的部署。本发明在节约存储资源的同时提高了部署虚拟机的效率,实现了跨广域网的数据中心启动虚拟机所使用文件的统一管理,且实现了跨广域网的虚拟机迁移。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
根据本发明的一个实施例,提供一种广域网虚拟平台的构建方法。图1示出了该构建方法的流程,包括以下步骤:
第一步、在多个数据中心之间搭建虚拟专用网(VPN),即将多个数据中心虚拟到一个逻辑局域网中,并且在每个数据中心部署虚拟化平台。
在一个实施例中,在多个数据中心之间搭建VPN可包括以下七个子步骤:
A1:在多个数据中心之外的节点中选择一个拥有广域网(如Internet)上的IP地址的节点作为VPNserver。
本领域技术人员应理解,这里提到的数据中心是指可包含在同一VLan(局域网设备在逻辑上划分的一个网段)中的业务节点和存储节点,其能够向外界提供计算和存储服务。在一个实施例中,节点可表示能够独立运行操作***、应用程序和存储空间的计算机。
A2:在每个数据中心中选择一个节点作为VPNclient,其中该节点具有至少两个网络适配器。
其中一个网络适配器与该节点所在数据中心的其它节点在同一VLan中;而另外一个网络适配器则位于NAT后,负责请求与VPNserver之间的连接。这里的NAT是指用一个广域网的IP地址代表数据中心内较多的私有IP地址,用于增强数据中心的安全性。
A3:在步骤A1选择的VPNserver节点上生成建立其自身服务和VPNclient请求连接所使用的认证文件。
例如,这些认证文件可包括ca.crt、.Key、.crs和.pem文件。其中,可以为多个数据中心的每个VPNclient生成一套认证文件。这些认证文件是VPNserver用于确认VPNclient的连接请求是否合法的文件,VPNserver根据该认证文件来确定接受连接、断开连接,或者撤销VPNclient。
A4:配置VPNserver,并且启动VPNserver服务。
在一个实施例中,VPNserver中可采用TCP协议并且使用桥接模式的tap设备。在其配置文件中设置VPNserver的虚拟IP地址(VIP),并且固定VPNserver监听的端口和所使用的认证文件的路径。本文中,桥接模式是指采用数据链路层对数据包进行封装和转发。
A5:将在VPNserver节点中生成的与VPNclient请求连接相关的认证文件复制到VPNclient,在VPNclient的配置文件里写入认证文件路径、VPNserver的IP地址、其监听的端口等。且其协议为TCP和桥接模式。
A6:启动VPNclient服务,向VPNserver请求专用连接,由VPNserver为其推送VIP和协议,生成tap设备,并且在VPNclient上使用VLan中的网络适配器建立虚拟网桥。该虚拟网桥是网络适配器在数据链路层的访问接口。
A7:在每个数据中心(VLan)中除VPNclient之外的其他节点之上设置默认路由,将该默认路由设为该VPNclient的VLan中的网络适配器上的IP,并且为VPNclient中存在于VLan中的网络适配器设备设置其他数据中心的net。这里,设置其他数据中心的net是指在VPNclient上设置其他数据中心的路由,使其具有转发数据的功能。从而VPNclient作为此数据中心中其他节点跨广域网访问其他数据中心的路由。
这一步中,除了搭建VPN,还要在每个数据中心部署虚拟化平台,可采用现有的虚拟化平台部署方法来进行部署。
第二步、将部署虚拟机所使用的文件拆分为三部分:第一部分是模板镜像,第二部分是用户私有镜像,第三部分是虚拟机配置文件。包括以下步骤:
B1:生成raw格式的模板镜像,在其中安装操作***和用户所需要或者所请求的各种业务的静态配置文件。在一个实施例中,由于虚拟机的镜像空间大小是预先给定的,可为其预留升级和维护所需的空闲存储空间。
其中,raw是Xen全虚拟化虚拟机的一种镜像格式,在创建时为其分配大小,但本发明不限于该镜像格式。要安装的操作***是指在每个模板镜像中安装的***,例如可以是window2003、suse、ubuntu等不同类型的虚拟机***软件,在每一个模板镜像中安装一个操作***。用户所需要的各种业务的静态配置文件是指安装在模板镜像中操作***之上的安装应用软件和应用的配置信息。
在生成模板镜像后。由于可能发生数据中心的业务升级,因而需要对相应的模板镜像进行升级。当数据中心的业务升级时,只需启动模板镜像虚拟机,对其中的内容进行维护,管理员可以在模板镜像中写入信息,而不用修改用户私有镜像。
B2:在用户请求业务时,利用模板镜像来动态生成用户私有镜像。其中,用户私有镜像是用户写入存储服务器中的数据文件,包括用户存储的私有文件和用户修改过的***配置信息,以虚拟机镜像文件的格式存储于数据中心存储服务器中,但此镜像无法在没有模板镜像的情况下单独提供服务。
在一个实施例中,可通过Copy On Write技术来生成用户私有镜像,简单地说就是通过此技术将原有的模板镜像生成为包含模板镜像文件的存储映射表的用户私有镜像文件。其中,私有镜像文件的数据量远远小于模板镜像的数据量,这样,在虚拟机创建和使用过程中可以加快生成和读写速度并且提高用户体验。例如,可通过qemu-img-xen create工具来动态生成用户私有镜像。qemu-img-xen create是Xen虚拟化技术管理Qcow格式(Xen虚拟机镜像的一种格式)镜像的工具。该创建过程包括选定模板镜像,指定用户私有镜像的格式、大小和存储位置。
在上面的实施例中,用户私有镜像的格式可以为Qcow,其具有加密功能,在另一个实施例中,用户私有镜像的格式可以为Qcow2,即在Qcow的基础之上增加了快照,可方便用户实时备份数据。在用户私有镜像元数据中记录模板镜像的位置和大小,在运行应用的业务虚拟机向用户提供服务时,相应的模板镜像(业务虚拟机采用的模板镜像)的属性为“只读”,而用户私有镜像的属性为“读写”。其中,在业务虚拟机向用户提供服务时,数据存取过程分为以下类型:
(1)从用户私有镜像中读取文件,当未能读到文件时从模板镜像中读取。
(2)写入数据被存储在用户私有镜像中,不修改模板镜像。
(3)当用户需要修改操作***或用户所需要的各种业务的静态配置文件时,将模板镜像复制到用户私有镜像中再做修改。
B3:创建用户私有镜像的虚拟机配置文件,该虚拟机配置文件为一个虚拟机启动所必须的文件。按照用户的需求给每个用户的私有镜像虚拟机(即根据用户需求而创建、通过用户私有镜像启动运行的虚拟机)设置参数,其中包括VCPU(即采用虚拟化技术之后的物理处理器被虚拟形成的处理器单元)、内存(Mem)、存储用户私有镜像的路径、IP地址等。
第三步、在数据中心形成模板镜像、用户私有镜像和虚拟机配置文件的部署方法。
在数据中心对所有用户公开的情况下,可以在多个数据中心之间实现全局统一管理用户私有镜像和虚拟机配置文件的部署方法,具体包括:
C1:将每个数据中心内的所有存储节点统一为一个存储接口,在该统一存储接口上创建一个卷(Volume)来存储模板镜像。
将单个数据中心内的所有存储节点统一为一个存储接口是指通过分布式文件存储,开放统一的访问点(或称统一存储接口)。其中,当单个数据中心内有多个存储节点时,存储接口将这些存储节点绑定到一个主服务器(即一个存储节点),通过该主服务器来提供服务,主服务器可任意选择。Volume是指在分布式文件***中创建的卷,该Volume的存储空间可以是存储节点上的一个磁盘分区。
C2:每个数据中心的所有业务节点,通过上述统一存储接口将存储模板镜像的文件***的Volume挂载到本地路径下。该本地路径是指模板镜像所在的数据中心的业务节点中的一个文件目录。
C3:将多个数据中心/所有数据中心内的所有存储节点统一为一个存储接口,在其中创建两个Volume,分别用于存储用户私有镜像和虚拟机配置文件。
C4:通过上述统一的存储接口,将存储用户私有镜像和虚拟机配置文件的Volume挂载到所有数据中心的业务节点本地路径。
其中,在步骤C2和C4中,当业务节点挂载Volume时,每个Volume在每个业务节点上的挂载点相同,否则用户私有镜像不能在创建它的数据中心查找到模板镜像。
C5:为每个Volume添加cache(文件缓存,本文中是指将存储节点上的内存作为存储节点的缓存)以提高I/O访问效率。
C6:启动所有业务虚拟机,向用户提供服务。
之后,每个业务节点能够访问所有数据中心的用户私有镜像,并且由于在每个数据中心调用的三个存储的Volume都是统一的和一致的,因此可以实现跨数据中心的动态虚拟机迁移,而不需改变原有虚拟机迁移机制(例如Xen虚拟机,该Xen虚拟机迁移机制是预迁移机制)。其中,虚拟机动态迁移是在虚拟机不停止运行的状态下,将其从一个数据中心的业务节点移动到另一个数据中心的业务节点之上。
在数据中心不对用户公开的情况下,在每个数据中心实现自治管理用户私有镜像和虚拟机配置文件的部署方法。包括以下步骤:
D1:将每个数据中心内的所有存储节点统一为一个存储接口,在该统一存储接口上创建三个Volume。其中,一个Volume用于存储所有数据中心的模板镜像,其余两个Volume分别用于存储用户私有镜像和虚拟机配置文件。
D2:每个数据中心内的所有业务节点通过上述存储接口将文件***Volume挂载到本地路径,其中,三个Volume在每个数据中心的每个业务节点上的挂载点相同。
之后,可实施跨数据中心虚拟机动态迁移,其中,需要在Xen虚拟机迁移机制的基础之上增加用户私有镜像的迁移,以及虚拟机静态配置文件的远程拷贝。
在一个实施例中,以OpenVPN-2.1.3作为建立数据中心之间的虚拟专用网络的工具,以Gluster-3.2.0作为数据中心存储虚拟机镜像的文件***,并且以Xen-4.1.0虚拟化平台为例,根据本发明提供的广域网虚拟平台的构建方法来进行广域网虚拟平台的构建。图2示出了每个数据中心内部的组织结构以及数据中心之间的网络连接方式。具体构建步骤如下:
A、对每个数据中心的APPserver部署Xen-4.1.0虚拟化平台,每个数据中心的APPserver都是用于部署Xen4.1.0虚拟化软件的硬件平台。如图2所示,使用openVPN-2.1.3将数据中心Datacenter1和Datacenter2中的所有节点虚拟到逻辑局域网中。其中,每个数据中心有一个唯一的VPNclient和VPNserver建立连接,可通过在网络适配器上添加虚拟网桥和路由,来建立虚拟专用的通信链路。具体来说包括:
A1、在每个业务节点(APPserver)上架设Xen-4.1.0全虚拟化平台,每个APPserver上的虚拟机管理器(Dom0)和存储服务器(Storage server)采用linux-2.6.18.8内核的操作***。图2中,Datacenter1和Datacenter2分别属于VLan11和VLan12。其中,VLan11中的IP地址为11.11.X.X,VLan12中的IP地址为12.12.X.X,X为2~254之间的任意整数。
A2、在APPserver中运行Gluster client,在存储服务器中运行Glusterserver。在步骤A1和A2中将APPserver和存储服务器分开,是为了提高存储服务器访问镜像文件和配置文件的效率,Xen中的I/O使用基于Qemu的Qcow格式镜像驱动创建。
A3、在广域网中一个具有公网IP地址202.201.48.17的节点上运行OpenVPN-2.1.3,作为VPNserver。在每个数据中心选定一个APPserver作为VPNclient,该节点至少具有两个网络接口,分别为eth0和eth1。其中eth0与数据中心其它APPserver和Storage server属同一VLan,eth1可以位于net后或者拥有公网IP地址,负责请求与VPNserver之间的连接。
A4、在VPNserver中生成自身所使用的文件:ca.crt、vt-101.key、vt-101.crt和dh1024.pem。此外,还生成VLan11中VPNclient的认证文件vt-102.key,vt-102.crt,以及生成VLan12中VPNclient的认证文件vt-103.key,vt-103.crt。
A45、基于openVPN的tap模式,在VPNserver的vt-101.conf中的关键字段设定port:1194,proto:tcp,dev:tap0,server:10.99.0.0,并且写入vt-101.key,vt-101.crt,dh1024.pem文件的路径。设置完成后启动VPN服务。本步骤中vt-101.conf的server字段为tap0设备所使用的VIP,其中VPNserver使用10.99.0.1,VPNclient的VIP在请求连接时由VPNserver动态分配。
A6、将VPNserver中生成的认证文件ca.crt,vt-102.key,vt102.crt三个文件复制到Vlan11中的VPNclient之上,并将路径写入vt-102.conf,其中关键字段设置为proto:tcp,dev:tap0,remote:202.201.48.171194。启动VPN请求,由VPNserver自动为其推送虚拟IP地址、协议和加密密钥,生成tap0设备。并且在VPNclient上使用VLan中的eth0设备启动虚拟网桥(vpnbr0),将tap设备作为该虚拟网桥vpnbr0的一个接口。
在VLan12实施步骤A6时仅认证文件不同。
A7、对Vlan11和Vlan12中除VPNclient之外的其他节点设置默认路由,默认路由设置为VPNclient上VLan中的eth0上的IP地址,并在VPNclient节点所在VLan中的eth0设备上设置其它数据中心的net。Vlan11中的VPNclient的eth0设备上加入12.12.0.0作为net。
在Vlan12中实施步骤A7时将11.11.0.0作为net。
B、将运行业务的虚拟机使用的文件分为template、Qcow和Conf三个部分,分别为模板镜像、用户私有镜像和虚拟机配置文件。其中,用户不能修改模板镜像,用户私有镜像和虚拟机配置文件在部署中动态创建,具体实施步骤如下:
B1、在Datacenter1中的一个APPserver上,利用dd创建Xen全虚拟化的模板镜像,名称为template1.raw,大小为10GB,镜像格式为raw,使用异步I/O模式的xen磁盘驱动tap:aio启动该镜像虚拟机。
B2、首次启动template1.raw镜像的虚拟机时,需要为其安装新的操作***,在虚拟机配置文件的disk位置写入win2003.ISO和template1.raw两个文件路径,启动虚拟机开始安装操作***。
B3、完成操作***安装后,在模板镜像虚拟机中安装office2003作为用户请求业务。
步骤B1,B2和B3只能由数据中心管理员实施,用户无法直接创建和修改template镜像。
B4、用户在请求使用office2003服务时,动态生成用户私有镜像usr_1.qcow。利用满足用户需求的template1.raw镜像,通过qemu-img-xencreate-b qcow2/vm/template/template1.raw/home/vm/usr_1.qcow5GB来创建。
本实施步骤中设置usr_1.qcow镜像大小为5GB,虽然指定了文件的大小,但实际创建的该文件只有已存储数据的实际大小,空闲部分不占用存储空间,随着用户的使用过程动态扩充,从而节约了存储空间。usr_2.qcow的创建过程和usr_1.qcow相同。生成后,usr_1.qcow和usr_2.qcow使用同一模板镜像Template1.raw。
其中,usr_1.qcow文件在创建时保存元数据和镜像位示图等基本信息,必须在template1.raw中读取操作***和office2003文件;该用户写入文件记录在usr_1.qcow中,当需要修改template1.raw中的文件时,先将其复制到usr_1.qcow中,再做修改并保存,不改变原始template1.raw的内容。
B5、由数据中心动态创建虚拟机配置文件Conf,为每个虚拟机配置(例如usr_1.conf)设置VCPU=1和Mem=1024,/home/vm/usr_1.qcow(存储用户私有镜像所在的绝对路径信息)。在IP地址为11.11.11.14的Appserver上启动基于用户镜像usr_1.qcow虚拟机,为用户提供office2003服务。
C、在一个方面,针对数据中心公开或不公开,分为以下两种情况:
针对数据中心公开的情况,考虑跨多个数据中心全局统一管理Qcow和Conf(usr_1.qcow和usr_1.conf)文件的部署方法,使得每个数据中心都拥有模板镜像template,便于虚拟机在不同的数据中心之间迁移,该方法包括:
C1.在Datacenter1中的所有存储服务器(或称存储节点)中选定一个(其IP地址为11.11.11.13),通过该节点上的Gluster peer,将其他存储节点绑定为一个统一的访问接口,在其中创建一个名为V-template的distribute volume(分布式存储卷)来存储template1.raw。
C2、Datacenter1的所有APP server通过11.11.11.13将文件***V-template挂载到本地路径/vm/template下。
在Datacenter2中同样实施步骤C1和C2,其中选定的存储节点的IP地址为12.12.12.13。
C3、在Datacenter1和Datacenter2中选定一个存储节点,IP是11.11.11.13,在该节点上使用Gluster peer将两个数据中心中的其他存储节点统一为一个访问接口,并在其中创建两个Volume,分别为V-vm和V-conf,每个Volume分别存储usr_1.qcow和usr_1.conf,两个volume的属性均为replica volume。
C4、Datacenter1和Datacenter2中的APPserver通过11.11.11.13将V-vm和V-conf挂载到/home/vm和/etc/conf下。
实施步骤C4后Datacenter2拥有usr_1.qcow和usr_1.conf文件的备份,当从一个Datacenter1读取失败后,可自动从Datacenter2读取,并实时维护其内容的一致性。
C5、为V-template、V-vm、添加1GB文件缓存。
实施上述步骤C1-C5之后,可动态迁移使用usr_1.qcow启动的虚拟机,使用xm migrate-l112.12.12.14命令从Datacenter1迁移到Datacenter2中,其中“1”为虚拟机ID,12.12.12.14为Datacenter2中一个APPserver的IP地址。
在另外一个方面,针对数据中心不公开的情况,每个数据中心与其他的数据中心共享所有的模板镜像,管理本数据中心动态生成的Qcow和Conf文件。包括:
D1、在Datacenter1内的存储节点中选定一个,其IP地址为11.11.11.13,在该节点上使用Gluster peer将其他存储节点绑定,形成统一的访问接口,并在其上创建名为V-template、V-vm、V-conf的3个Volume,分别存储template1.raw,usr_1.qcow和usr_1.conf三个文件。
D2、Datacenter1内的APPserver通过11.11.11.13分别将步骤D1中的三个Volume挂载到本地路径/vm/template、/home/vm、/etc/conf。
实施步骤D2后Datacenter1仅拥有本地用户usr_1.qcow和usr_1.conf文件,如果要将usr_1.qcow虚拟机迁移至Datacenter2,设计的方案不涉及template1.raw的迁移,只需要将usr_1.qcow迁移至Datacenter2。
D3、在Datacenter2重复实施D1和D2的步骤,但其中选定的一个存储节点的IP地址为12.12.12.13。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。