一种面向虚拟机群应用的虚拟节点配置方法

文档序号:6510493阅读:231来源:国知局
一种面向虚拟机群应用的虚拟节点配置方法【专利摘要】本发明提供一种面向虚拟机群应用的虚拟节点配置方法,包括下列步骤:1)定制虚拟MAC地址的编码方案,虚拟MAC地址包括虚拟机群标识符、虚拟网卡标识符和用于承载虚拟机群应用的应用层配置信息的字段;所述虚拟机群应用的应用层配置信息的项目包括a)、b)、c)中的任意一项或多项,其中a)为虚拟节点的角色,b)为网络访问控制策略,c)为单个节点中的多网卡、多IP协同策略;2)建立MAC地址与IP地址的映射关系;3)对于待配置的虚拟机群应用,根据所定制的编码方案为每个虚拟节点分配虚拟MAC地址。本发明能够支持虚拟机群应用即启即用;能够广泛地适用于各类虚拟机群应用。【专利说明】一种面向虚拟机群应用的虚拟节点配置方法【
技术领域
】[0001]本发明涉及虚拟化与云计算【
技术领域
】,具体地说,本发明涉及一种面向虚拟机群应用的虚拟节点配置方法。【
背景技术
】[0002]云计算是信息服务的新兴运营模式。无论是直接对外提供基础设施租赁的IaaS(InfrastructureasaService)服务,还是受益于数据中心内部弹性基础设施、对外提供共性平台或通用软件的PaaS(PlatformasaService)和SaaS(SoftwareasaService)服务,都普遍依赖于虚拟化技术。虚拟化技术涵盖的领域通常包括计算虚拟化、存储虚拟化和网络虚拟化等。在虚拟化环境下,资源的弹性分配及其时分、空分复用是提高资源利用率、发挥云计算集约化成本优势的主要手段。在云计算场景下,由多个分布式节点协同执行的机群应用占有相当大的比重。典型的例子包括以ApacheHadoop为代表的大规模数据处理平台、通过LVS(LinuxVirtualServer)配置而成的web服务器机群,以及由传统高性能计算领域迁移而来的MPI(MessagePassingInterface)应用等。[0003]在现有技术中,虚拟节点配置主要是指对网络层的配置,即为虚拟节点分配网络层地址(即IP地址,包括IPv4和/或IPv6地址)。目前,虚拟节点网络层的配置方式主要包括:(I)手工方式配置静态IP地址;(2)基于DHCP(DynamicHostConfigurationProtocol)或DHCPv6的顺序租约规则分配动态IP地址;(3)基于DHCP的MAC-1P映射规则或SLAAC(StatelessAddressAuto-configuration)机制分配动态IP地址。上述三种方式可以有效解决基于独立虚拟机的应用对IP地址的需求。然而,如前文所述,在云计算场景下,由多个分布式节点协同执行的机群应用占有相当大的比重。很多机群应用对网络地址空间高度依赖,例如很多机器应用需要利用IP地址进行网络隔离,以保证其安全性和可靠性,应用对网络地址空间的依赖同资源的弹性分配之间存在矛盾。具体来说,一方面,虚拟化环境中,各种资源的分配是弹性的,启动虚拟机群应用前,往往要重新分配该虚拟机群的各种资源(包括计算资源、存储资源和网络资源等),这样有利于提高资源利用率、发挥云计算集约化成本优势。另一方面,由于机群应用对地址空间十分依赖,因此,在重新分配资源后,还需要对虚拟节点进行配置,建立虚拟节点与IP地址的固定对应关系。现有的配置方式中,方式(I)的人工管理效率低下、出错概率高,不适合于大规模服务场景。方式(2)的随意性强,不能建立虚拟节点与IP地址的固定对应关系,不便于云计算平台对虚拟网络地址空间的统一管理。方式(3)虽然能建立虚拟节点与IP地址的固定对应关系,但对于复杂性较强的虚拟机群应用来说,这种配置无法做到虚拟机群应用的即启即用,往往还需要在首次启动应用后人工读取各个虚拟节点所对应的磁盘映像或配置文件并分别写入相应的配置文件,这样虚拟机群应用才能正常工作,显然这种操作十分繁琐,这种繁琐的配置操作反过来阻碍了虚拟化环境中灵活地弹性分配资源,不利于提高资源利用率。[0004]因此,当前迫切需要一种操作简便能够支持虚拟机群应用即启即用的对虚拟节点进行配置的解决方案。【
发明内容】[0005]本发明的目的是提供一种操作简便能够支持虚拟机群应用即启即用的对虚拟节点进行配置的解决方案。[0006]为实现上述发明目的,本发明提供了一种面向虚拟机群应用的虚拟节点配置方法,包括下列步骤:[0007]I)提供虚拟MAC地址的编码方案,其中,在所述编码方案中,虚拟MAC地址至少包括虚拟机群标识符、虚拟网卡标识符和用于承载虚拟机群应用的应用层配置信息的字段;所述虚拟机群应用的应用层配置信息的项目包括a)、b)、c)中的任意一项或多项,其中a)为虚拟节点的角色,b)为网络访问控制策略,c)为单个节点中的多网卡、多IP协同策略;[0008]2)建立虚拟MAC地址与IP地址的映射关系;[0009]3)对于待配置的虚拟机群应用,根据所提供的编码方案为每个虚拟节点分配虚拟MAC地址,再根据步骤2)中虚拟MAC地址与IP地址的映射关系,为每个虚拟MAC地址分配相应的IP地址。[0010]其中,所述步骤I)中,提供用户接口,提示用户选择待配置的虚拟机群应用所需要配置的项目,然后接收用户的选择,[0011]当接收到项目a)时,所述用于承载虚拟机群应用的应用层配置信息的字段包括:用于标识虚拟节点角色的标志位组;[0012]当接收到项目b)时,所述用于承载虚拟机群应用的应用层配置信息的字段包括:用于标识虚拟节点所处网络的网络访问控制策略的标志位组;[0013]当接收到项目c)时,所述用于承载虚拟机群应用的应用层配置信息的字段包括:用于指示一个虚拟网卡在其所属的虚拟节点的序号的序列号;[0014]当同时接收到上述a)、b)、c)中的多项时,所述用于承载虚拟机群应用的应用层配置信息的字段包括所有所接收项目所对应的标志位组或序列号。[0015]其中,所述步骤I)中,用于标识虚拟节点所处网络的网络访问控制策略的标志位组包括用于标识虚拟节点所处网络的网络类型和输入、输出可访问性的标志位组。[0016]其中,所述步骤I)中,所述虚拟MAC地址中使用虚拟机群标识符和虚拟网卡标识符标识虚拟机群和虚拟节点,实现MAC-1P地址映射。[0017]其中,所述步骤I)中,所述虚拟MAC地址中使用标志位组表示角色,实现角色配置。[0018]其中,所述角色配置包括服务进程的组合配置,所述标志位组包括代表服务进程的多个标志位,代表服务进程的标志位的数值表示是否需要启动该标志位所对应的服务进程。[0019]其中,所述步骤I)中,所述虚拟MAC地址中使用虚拟机群标识符标识虚拟网络,使用标志位组表示虚拟网络的可访问性,完成网络访问策略配置。[0020]其中,所述步骤I)中,所述虚拟MAC地址中使用序列号标识不同的虚拟网卡,使用标志位组表示虚拟网卡的属性,完成多网卡、多IP协同配置。[0021]其中,所述虚拟网卡属性包括:该虚拟网卡处于外网还是内网。[0022]其中,所述虚拟网卡属性还包括:所处网络所属的运营商。[0023]与现有技术相比,本发明具有下列技术效果:[0024]1、能够支持虚拟机群应用即启即用。[0025]2、能够广泛地适用于各类虚拟机群应用。[0026]3、显著地简化了虚拟节点的配置操作,避免了人工操作过多所带来的出错概率升闻等问题。【专利附图】【附图说明】[0027]以下,结合附图来详细说明本发明的实施例,其中:[0028]图1示出了本发明一个实施例的面向虚拟机群应用的虚拟节点配置方法的流程图;[0029]图2示出了本发明一个实施例中的一个具体的编码方案示例;[0030]图3示出了本发明一个实施例中的另一个具体的编码方案示例。【具体实施方式】[0031]相比于独立虚拟机的应用,虚拟机群应用在虚拟网络配置方面具有更高的复杂性。发明人对大量虚拟机群应用进行了研究,发现机群应用的虚拟网络配置存在以下需求:[0032]a)在云计算场景下,机群应用中各个虚拟节点所起的作用是不同的,即机群中的不同虚拟节点可能分别扮演不同的角色,因此需要对虚拟节点的角色进行配置。[0033]b)多个机群应用共存的环境下,有必要管理机群之间的可访问性,此时,在对虚拟机群进行配置时,需要有效表达机群和网络地址段之间的映射关系,以及机群之间的可访问性。[0034]c)多个虚拟网卡、多个网络覆盖、外网IP地址与内网IP地址共存的情况在虚拟机群应用中普遍存在。特别对于中国这种电信、联通双路网络共存,外网IP稀缺的环境,网络地址配置有各种特殊需求,在对虚拟机群进行配置时,这些特殊需求需要被有效表达。[0035]另一方面,MAC(MediaAccessControl)地址是标识和定位网络设备的唯一地址,该地址固化在硬件中,具有特定的数据结构,在物理网络中具有标识设备制造商和标识包交换方法(单播、多播)等语义。但在虚拟化环境中,虚拟网络地址空间通常可以受控规划与构建,因此虚拟MAC地址不需要考虑物理MAC地址的诸多限制因素。虚拟MAC地址可以作为一种信息载体,重新定义其数据结构,并结合特定的MAC-1P映射规则来有效地满足前述虚拟网络配置的共性需求。这样,对于绝大部分的机群应用,通过解析其虚拟MAC的编码信息和MAC-1P映射,即可得到机群应用正常工作所需的配置信息,不需要额外地修改磁盘映像或配置文件中的配置信息,从而实现机群应用的即启即用。[0036]下面,结合附图和实施例对本发明做进一步地描述。[0037]根据本发明的一个实施例,提供了一种面向虚拟机群应用的虚拟节点配置方法,图1示出了该方法的流程,包括下列步骤:[0038]步骤1:确定虚拟MAC地址的编码方案,所述虚拟MAC地址由以下顺序无关的字段组成:[0039](Al.1)序列号(SN),可选字段,指示一个虚拟网卡在其所属的虚拟节点的顺序。该字段可以是简单的顺序编号,也可以是具有特定语义的数据结构(例如但不限于嵌套层次拓扑结构)。该字段的长度取决于一个虚拟节点计划拥有的虚拟网卡数量。[0040](Al.2)标志位组(FLAGS),可选字段,指示一个虚拟网卡的属性(例如但不限于标记虚拟网卡为外网网卡或是内网网卡),或者其所属的虚拟节点的应用角色、虚拟机群或虚拟化环境全局的属性(例如但不限于标记虚拟节点为机群应用的头节点或从节点)。该字段的长度取决于需要表示的虚拟网卡属性的数量,或虚拟节点应用角色的数量。[0041](Al.3)虚拟机群标识符(VCID),必选字段,指示一个虚拟网卡的所在的虚拟机群。该字段可以是简单的顺序编号,也可以是具有特定语义的数据结构(例如但不限于嵌套层次拓扑结构)。该字段的长度取决于整个虚拟化环境中计划容纳的虚拟机群数量。[0042](Al.4)虚拟网卡标识符(VNID),必选字段,通过该标识符生成虚拟网卡的IP地址。该字段可以是IP地址本身(例如但不限于完整的IPv4地址),也可以是IP地址的一部分(例如但不限于私有IPv4地址的主机号部分),还可以是具有特定语义的数据结构,能够通过特定的算法生成IP地址(例如但不限于使用EU1-64变种算法生成IPv6地址)。该字段的长度取决于每个虚拟机群中计划容纳的虚拟节点或虚拟网卡数量。[0043]步骤2:建立虚拟网络地址空间,该虚拟网络地址空间中具有确定的MAC-1P地址映射关系。具体地,根据虚拟MAC地址编码方案,并考虑虚拟化环境的机群规模、使用模式及其他各项需求,规划虚拟网络中的IP地址范围,MAC地址和IP地址的分配、回收与更新规则,并规划MAC-1P地址映射关系,保证每个虚拟节点的每个虚拟网卡具有可预期的IP地址。[0044]步骤3:对机群应用的每个虚拟节点,基于步骤I中的虚拟MAC地址的编码方案,根据其角色、网络访问策略配置以及多网卡、多IP协同需求,为每个虚拟网卡配置MAC地址,再根据MAC-1P地址映射关系,在所建立的虚拟网络地址空间中为每个虚拟网卡分配IP地址。[0045]对于各种虚拟机群应用,需要同时为一组虚拟节点分配IP地址,且应用需要获知机群网络地址空间才能正常工作。另外,许多虚拟机群应用具有以下需求:a)应用角色配置;b)网络访问策略配置;c)多网卡、多IP协同配置。本步骤中,利用虚拟MAC地址作为信息载体,把上述信息编码到虚拟MAC地址中,从而完成对虚拟网络的自动配置(包括IP地址分配与配置,应用角色、网络访问策略、多网卡和多IP协同配置)。[0046]具体地,使用VCID和VNID字段标识虚拟机群和虚拟节点,实现MAC-1P地址映射。使用FLAGS字段表示角色,从而完成应用角色配置;使用VCID字段标识虚拟网络(虚拟网络与虚拟机群一一对应),使用FLAGS字段表示网络可访问性,从而完成网络访问策略配置;使用SN字段标识不同的虚拟网卡,使用FLAGS字段表示虚拟网卡属性(外网或内网、所属运营商等),从而完成多网卡、多IP协同配置。[0047]完成上述配置后,云计算平台和虚拟节点在运行时,解析虚拟MAC地址中的信息即可获得机群应用运行时所需的各种配置信息,不需要额外地修改磁盘映像或配置文件中的配置信息,从而做到机群应用的即启即用。[0048]为了帮助理解,下面结合两个具体的机群应用,对上述实施例的虚拟MAC地址编码方案做进一步地说明。[0049]首先,以基于虚拟化环境的ApacheHadoop大规模数据处理机群应用(简称Hadoop)为例进行说明,它代表了互联网公司内部对大规模数据进行分析处理的应用需求。[0050](BI)图2是一种Hadoop对应的虚拟MAC地址编码方案与虚拟网络地址空间规划的示例图。虚拟MAC地址的第0-1字节保留不用,置为固定值,例如全“O”。由于Hadoop中,每个虚拟节点只有唯一一个虚拟网卡,故不设置SN字段。虚拟MAC地址的第2字节为FLAGS字段,其第7-5比特保留不用,置为固定值,例如全“O”;第4-0比特分别命名为FLAG_JT、FLAG_TT、FLAG_NN、FLAG_SNN、FLAG_DN,表示是否在该虚拟节点上启动ApacheHadoop的JobTracker>TaskTracker>NameNode>SecondaryNameNode>DataNode服务进程。虚拟MAC地址第3字节连同第4字节的第7-4比特为VCID字段,可容纳2~12=4096个虚拟机群。虚拟MAC地址第4字节的第3-0比特连同第5字节为VNID字段,可容纳2~12=4096个虚拟网卡(即4096个虚拟节点)。[0051](B2.1)ΙΡν4地址空间规划使用10.0.0.0/8私有网段。将VCID字段赋予IPv4地址第I字节连同第2字节的第7-4比特,作为网络号部分,指示虚拟机群。将VNID字段赋予IPv4地址第2字节的第3-0比特连同第3字节,作为主机号部分,指示虚拟网卡(即虚拟节点)。[0052](B2.2)IPv6地址空间规划如下:IPv6地址第0_5字节连同第6字节的第7_4比特作为路由前缀部分,由运营商指定,将VCID字段赋予IPv6地址第6字节的第7-4比特连同第7字节,作为网络号部分,指示虚拟机群,IPv6地址第8-13字节连同第14字节的第7_4比特全用“O”填充。将VNID字段赋予IPv6地址第14字节的第3-0比特连同第15字节,作为主机号部分,指示虚拟网卡(即虚拟节点)。[0053](B3.1)IPv4地址分配使用带有MAC-1P映射规则DHCP服务器实现。[0054](B3.2)IPv6地址分配使用带有MAC-1P映射规则DHCPv6服务器实现。[0055](B4)应用角色配置机制在虚拟节点内部实现。ApacheHadoop的MapReduce与HDFS(HadoopDistributedFileSystem)服务需要在不同角色的节点上执行不同类型的服务进程,故在虚拟节点启动后,通过程序解析虚拟MAC地址中的FLAGS字段,启动指定的服务进程。[0056](B5)网络访问策略配置机制通过虚拟节点外部方式实现。数据分析应用对数据机密性与网络隔离性有一定的要求,故在虚拟网络创建时,通过OpenvSwitch虚拟交换和路由服务配置网络访问策略,OpenvSwitch工作时,流经它的所有链路层数据包头都带有通信源和目标的虚拟MAC地址,OpenvSwitch会根据配置文件,决定特定MAC地址的包是通过还是阻止,从而确保每个虚拟机群的虚拟网络相互隔离。[0057](B6)Hadoop的例子中无需进行多网卡、多IP协同配置。[0058]下面,以基于虚拟化环境的双路网络web服务器机群应用进行说明,这一例子代表了互联网公司对外提供大规模web服务的应用需求。[0059](Cl)图3是该例子中虚拟MAC地址编码方案与虚拟网络地址空间规划的示例图。虚拟MAC地址第O字节的第7-4比特为SN字段,以顺序编号方式表示一个虚拟网卡在其所属的虚拟节点中的顺序。虚拟MAC地址第O字节的第3-0比特为FLAGS字段,第3比特命名为FLAG_IP,表示本MAC地址映射的IP地址类型(0=内网,1=外网);第2比特命名为FLAG_0P,表示本MAC地址映射的IP地址所属的运营商(限于外网ΙΡ,0=电信,1=联通);第I比特命名为FLAG_IAC,表示虚拟网卡的输入可访问性(限于内网IP,0=虚拟机群内,1=虚拟机群间);第O比特命名为FLAG_OAC,表示虚拟网卡的输出可访问性(限于内网ΙΡ,0=虚拟机群内,1=虚拟机群间)。虚拟MAC地址第I字节为VCID字段,可容纳2~8=256个虚拟机群。虚拟MAC地址第2-5字节为VNID字段,可容纳2'32=4294967296个虚拟网卡。[0060](C2.1)IPv4地址空间规划:将整个VNID字段作为IPv4地址,指示虚拟网卡。不通过IPv4地址指示虚拟机群。[0061](C2.2)IPv6地址空间规划:IPv6地址第0_6字节作为路由前缀部分,由运营商指定。将VCID字段赋予IPv6地址第7字节,作为网络号部分,指示虚拟机群。将整个虚拟MAC地址使用EU1-64变种算法处理后赋予IPv6地址第8_15字节,作为主机号部分,指示虚拟网卡。[0062](C3.1)IPv4地址分配使用带有MAC-1P映射规则DHCP服务器实现。[0063](C3.2)IPv6地址分配使用SLAAC机制在网关服务器和虚拟节点内部实现。[0064](C4)应用角色配置机制在本例中无须实现。[0065](C5)网络访问策略配置机制通过虚拟节点内部方式实现。不同的web服务对虚拟网络的可访问性有不同的要求,故在虚拟节点启动后,通过程序解析虚拟MAC地址中的FLAGS和VCID字段,调用iptables服务配置网络访问策略,确保每个虚拟机群的网络可访问性与FLAG_IAC、FLAG_0AC标志位声明的一致。[0066](C6)多网卡、多IP协同配置机制通过虚拟节点外部方式实现。每个虚拟节点至少具有一个带有内网IP的虚拟网卡,部分虚拟节点具有一个(单路网络)或两个(双路网络)带有外网IP的虚拟网卡,故在虚拟网络创建时,通过网关服务器,实现同一虚拟节点、不同网段IP之间的映射或路由。[0067]进一步地,表I给出了基于实施例1的大量机群应用的编码方案示例。[0068]表I【权利要求】1.一种面向虚拟机群应用的虚拟节点配置方法,包括下列步骤:1)提供虚拟MAC地址的编码方案,其中,在所述编码方案中,虚拟MAC地址至少包括虚拟机群标识符、虚拟网卡标识符和用于承载虚拟机群应用的应用层配置信息的字段;所述虚拟机群应用的应用层配置信息的项目包括a)、b)、c)中的任意一项或多项,其中a)为虚拟节点的角色,b)为网络访问控制策略,c)为单个节点中的多网卡、多IP协同策略;2)建立虚拟MAC地址与IP地址的映射关系;3)对于待配置的虚拟机群应用,根据所提供的编码方案为每个虚拟节点分配虚拟MAC地址,再根据步骤2)中虚拟MAC地址与IP地址的映射关系,为每个虚拟MAC地址分配相应的IP地址。2.根据权利要求1所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述步骤I)中,提供用户接口,提示用户选择待配置的虚拟机群应用所需要配置的项目,然后接收用户的选择,当接收到项目a)时,所述用于承载虚拟机群应用的应用层配置信息的字段包括:用于标识虚拟节点角色的标志位组;当接收到项目b)时,所述用于承载虚拟机群应用的应用层配置信息的字段包括:用于标识虚拟节点所处网络的网络访问控制策略的标志位组;当接收到项目c)时,所述用于承载虚拟机群应用的应用层配置信息的字段包括:用于指示一个虚拟网卡在其所属的虚拟节点的序号的序列号;当同时接收到上述a)、b)、c)中的多项时,所述用于承载虚拟机群应用的应用层配置信息的字段包括所有所接收项目所对应的标志位组或序列号。.3.根据权利要求2所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述步骤I)中,用于标识虚拟节点所处网络的网络访问控制策略的标志位组包括用于标识虚拟节点所处网络的网络类型和输入、输出可访问性的标志位组。4.根据权利要求3所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述步骤I)中,所述虚拟MAC地址中使用虚拟机群标识符和虚拟网卡标识符标识虚拟机群和虚拟节点,实现MAC-1P地址映射。5.根据权利要求3所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述步骤I)中,所述虚拟MAC地址中使用标志位组表示角色,实现角色配置。6.根据权利要求3所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述角色配置包括服务进程的组合配置,所述标志位组包括代表服务进程的多个标志位,代表服务进程的标志位的数值表示是否需要启动该标志位所对应的服务进程。7.根据权利要求3所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述步骤I)中,所述虚拟MAC地址中使用虚拟机群标识符标识虚拟网络,使用标志位组表示虚拟网络的可访问性,完成网络访问策略配置。8.根据权利要求3所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述步骤I)中,所述虚拟MAC地址中使用序列号标识不同的虚拟网卡,使用标志位组表示虚拟网卡的属性,完成多网卡、多IP协同配置。9.根据权利要求8所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述虚拟网卡属性包括:该虚拟网卡处于外网还是内网。10.根据权利要求9所述的面向虚拟机群应用的虚拟节点配置方法,其特征在于,所述虚拟网卡属性还包括:所处网络所属的运营商。【文档编号】G06F9/455GK103475704SQ201310403402【公开日】2013年12月25日申请日期:2013年9月6日优先权日:2013年9月6日【发明者】查礼,林健,鲁小亿,王锐坚,程学旗申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1