CN117834588A - 虚拟机元数据获取方法、装置、设备及存储介质 - Google Patents

虚拟机元数据获取方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117834588A
CN117834588A CN202211182179.8A CN202211182179A CN117834588A CN 117834588 A CN117834588 A CN 117834588A CN 202211182179 A CN202211182179 A CN 202211182179A CN 117834588 A CN117834588 A CN 117834588A
Authority
CN
China
Prior art keywords
metadata
virtual machine
address
target
bridge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211182179.8A
Other languages
English (en)
Inventor
刘宇龙
李娜
过晓春
陈晓明
高雨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
Original Assignee
China United Network Communications Group Co Ltd
Unicom Digital Technology Co Ltd
Unicom Cloud Data Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China United Network Communications Group Co Ltd, Unicom Digital Technology Co Ltd, Unicom Cloud Data Co Ltd filed Critical China United Network Communications Group Co Ltd
Priority to CN202211182179.8A priority Critical patent/CN117834588A/zh
Publication of CN117834588A publication Critical patent/CN117834588A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种虚拟机元数据获取方法、装置、设备及存储介质,涉及通信技术领域,用于提高虚拟机访问元数据的效率。方法包括:在服务器中增加元数据扩展配置,并创建元数据网桥,元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,服务器中包括多个虚拟机;基于元数据地址段,为多个虚拟机中的每个虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置MAC地址,元数据IP地址和MAC地址用于标识对应的虚拟机;将元数据网桥通过patch类型的port与集成网桥相连,并基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。本申请应用于虚拟机访问元数据的场景中。

Description

虚拟机元数据获取方法、装置、设备及存储介质
技术领域
本申请涉及通信技术领域,尤其涉及一种虚拟机元数据获取方法、装置、设备及存储介质。
背景技术
随着云平台网络技术的不断发展,当前在开源的云计算管理平台项目OpenStack(简称云平台)中,在租户创建虚拟机时,首先需要对虚拟机进行配置。其中,所要配置的信息主要分为两类,用户数据userdata(通过文件进行传递,包括计算机壳层shell脚本、云初始化程序cloud-init配置文件等)和元数据metadata(虚拟机的常用属性,比如主机名、密钥、服务等)。当租户虚拟机获取元数据时,需要依靠OpenStack提供的metadata RESTful服务。
具体的,虚机访问元数据有两条路径,分别是通过qrouter namespace和qdhcpnamespace实现。当虚拟机连接到虚拟机配置的默认路由router时,虚拟机通过qrouter-namespace的路径访问元数据,访问请求通过router到达租户虚拟私有云(virtualprivate cloud,VPC)的qrouter-namespace,再通过qrouter-namespace中相应的路由规则,到达物理设备,通过物理设备配置相应的路由之后访问元数据。当虚拟机未连接到router时,虚拟机通过qdhcp namespace的路径访问元数据,虚拟机启动时发起动态主机配置协议(dynamic host configuration protocol,DHCP)请求,通过查看DHCP服务器的IP配置信息,到达物理设备,通过物理设备配置相应的路由之后访问元数据。
在上述方法中,虚拟机需要通过租户创建的VPC访问元数据,如果VPC和虚拟机落在不同的计算节点上,则虚拟机需要跨计算节点进行访问,导致租户虚拟机访问元数据的路径太长。并且依赖HAProxy服务,一个router创建之后都会启动一个HAProxy,当节点的qrouter-namespace数量过多时,就会导致进程数量过多。从而,虚拟机访问元数据时的效率较低。
发明内容
本申请提供一种虚拟机元数据获取方法、装置、设备及存储介质,用于提高虚拟机访问元数据的效率。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供了一种虚拟机元数据获取方法,方法包括:在服务器中增加元数据扩展配置,并创建元数据网桥,元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,服务器中包括多个虚拟机;基于元数据地址段,为多个虚拟机中的每个虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置MAC地址,元数据IP地址和MAC地址用于标识对应的虚拟机;将元数据网桥通过patch类型的port与集成网桥相连,并基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。
在一种可能的实现方式中,方法还包括:在元数据网桥上添加tap-meta作为服务器对应的元数据地址段的网关地址。
在一种可能的实现方式中,方法还包括:将每个虚拟机对应的元数据IP地址和MAC地址存储到开放虚拟交换机数据库OVSDB中;当重启OVS agent流程时,从OVSDB中读取每个虚拟机对应的元数据IP地址和MAC地址;若OVSDB中未保存目标虚拟机对应的元数据IP地址和MAC地址,则重新基于元数据地址段,为目标虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为目标虚拟机配置MAC地址。
在一种可能的实现方式中,基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据,包括:在通过任一虚拟机获取目标元数据时,通过任一虚拟机的tap口将获取目标元数据的目标流量传输至集成网桥,并将目标流量通过patch类型的port,从集成网桥传输至元数据网桥;通过元数据网桥的tap-meta口获取目标元数据,并基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥;通过任一虚拟机的tap口将目标元数据传输至任一虚拟机。
在一种可能的实现方式中,基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥之前,方法还包括:获取地址解析协议ARP数据包,并基于ARP数据包确定任一虚拟机对应的元数据IP地址和MAC地址。
在一种可能的实现方式中,将目标流量通过patch类型的port,从集成网桥传输至元数据网桥之后,方法还包括:通过HAProxy监听元数据网桥的tap-meta口导出的目标流量,并在监听到目标流量时,将目标流量发送到目的地址,目的地址为获取目标元数据的地址;当通过HAProxy接收到目的地址返回的目标元数据时,将目标元数据传输至元数据网桥。
第二方面,提供了一种虚拟机元数据获取装置,虚拟机元数据获取装置包括:处理单元和获取单元;处理单元,用于在服务器中增加元数据扩展配置,并创建元数据网桥,元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,服务器中包括多个虚拟机;处理单元,还用于基于元数据地址段,为多个虚拟机中的每个虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置MAC地址,元数据IP地址和MAC地址用于标识对应的虚拟机;处理单元,还用于将元数据网桥通过patch类型的port与集成网桥相连;获取单元,用于基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。
在一种可能的实现方式中,处理单元,还用于在元数据网桥上添加tap-meta作为服务器对应的元数据地址段的网关地址。
在一种可能的实现方式中,处理单元,还用于将每个虚拟机对应的元数据IP地址和MAC地址存储到开放虚拟交换机数据库OVSDB中;处理单元,还用于当重启OVS agent流程时,从OVSDB中读取每个虚拟机对应的元数据IP地址和MAC地址;处理单元,还用于若OVSDB中未保存目标虚拟机对应的元数据IP地址和MAC地址,则重新基于元数据地址段,为目标虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为目标虚拟机配置MAC地址。
在一种可能的实现方式中,虚拟机元数据获取装置还包括:传输单元;传输单元,用于在通过任一虚拟机获取目标元数据时,通过任一虚拟机的tap口将获取目标元数据的目标流量传输至集成网桥,并将目标流量通过patch类型的port,从集成网桥传输至元数据网桥;传输单元,还用于通过元数据网桥的tap-meta口获取目标元数据,并基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥;传输单元,还用于通过任一虚拟机的tap口将目标元数据传输至任一虚拟机。
在一种可能的实现方式中,获取单元,还用于获取地址解析协议ARP数据包;处理单元,还用于基于ARP数据包确定任一虚拟机对应的元数据IP地址和MAC地址。
在一种可能的实现方式中,处理单元,还用于通过HAProxy监听元数据网桥的tap-meta口导出的目标流量;传输单元,还用于在监听到目标流量时,将目标流量发送到目的地址,目的地址为获取目标元数据的地址;传输单元,还用于当通过HAProxy接收到目的地址返回的目标元数据时,将目标元数据传输至元数据网桥。
第三方面,一种电子设备,包括:处理器以及存储器;其中,存储器用于存储一个或多个程序,一个或多个程序包括计算机执行指令,当电子设备运行时,处理器执行存储器存储的计算机执行指令,以使电子设备执行如第一方面的一种虚拟机元数据获取方法。
第四方面,提供了一种存储一个或多个程序的计算机可读存储介质,该一个或多个程序包括指令,上述指令当被计算机执行时使计算机执行如第一方面的一种虚拟机元数据获取方法。
本申请提供了一种虚拟机元数据获取方法、装置、设备及存储介质,应用于虚拟机访问元数据的场景中。在虚拟机需要访问元数据的数据流时,可以在包括多个虚拟机的服务器中,增加包括元数据地址段、虚拟局域网和元数据MAC地址前缀的元数据扩展配置,并创建元数据网桥;进一步的,将元数据网桥通过patch类型的port与集成网桥相连,并基于元数据地址段为多个虚拟机中的每个虚拟机配置用于标识对应的虚拟机的元数据IP地址,基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置用于标识对应的虚拟机的MAC地址,从而可以基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。通过上述方法,在虚拟机需要访问元数据的数据流时,可以基于为每个虚拟机配置的元数据IP地址和MAC地址,通过集成网桥和元数据网桥获取元数据。从而解决虚拟机通过租户创建的VPC访问元数据,如果VPC和虚拟机落在不同的计算节点上,则虚拟机需要跨计算节点访问元数据,导致虚拟机访问元数据的路径太长的问题。从而,提高了虚拟机访问元数据的效率。
附图说明
图1为本申请的实施例提供的一种虚拟机访问元数据的流量路径示意图;
图2为本申请的实施例提供的一种虚拟机元数据获取系统结构示意图;
图3为本申请的实施例提供的一种虚拟机元数据获取方法流程示意图一;
图4为本申请的实施例提供的一种虚拟机元数据获取方法流程示意图二;
图5为本申请的实施例提供的一种虚拟机元数据获取方法流程示意图三;
图6为本申请的实施例提供的一种虚拟机元数据获取方法流程示意图四;
图7为本申请的实施例提供的一种虚拟机元数据获取方法流程示意图五;
图8为本申请的实施例提供的一种虚拟机元数据获取方法流程示意图六;
图9为本申请的实施例提供的一种虚拟机元数据获取系统流量路径示意图;
图10为本申请的实施例提供的一种虚拟机元数据获取装置的结构示意图;
图11为本申请的实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在当前云平台中,如图1所示,租户虚拟机获取元数据,依靠OpenStack提供的metadata RESTful服务,即OpenStack提供RESTful接口,使得虚拟机可以通过REST API(RESTful接口)来获取元数据信息,metadata RESTful服务包括元数据的nova应用程序编程接口(nova-api-metadata)、元数据的neutron网络服务代理(neutron-metadata-agent)和元数据的neutron网络服务命名空间代理服务器(neutron-ns-metadata-proxy)(包括虚拟路由命名空间(qrouter namespace)和动态主机配置协议命名空间(qdhcp namespace))服务。
具体的,租户创建的虚拟机访问元数据有两条路径,分别是通过qrouternamespace和qdhcp namespace实现。当虚拟机连接到虚拟机配置的默认路由router时,虚拟机通过qrouter-namespace的路径访问元数据,虚拟机访问元数据请求通过router到达租户虚拟私有云(Virtual Private Cloud,VPC)的qrouter-namespace。qrouter-namespace匹配NAT表中的iptables规则,HAProxy服务监听访问请求。HAProxy服务在访问请求中添加router-id,再由unix套接字文件(unix socket file)将访问请求转发给neutron-metadata-agent。neutron-metadata-agent根据访问请求中的router-id获取虚拟机的ID,并将虚拟机的ID发送给nova-api-metadata。nova-api-metadata根据虚拟机的ID将获取到的元数据信息发送至虚拟机。当虚拟机未连接到router时,虚拟机通过qdhcpnamespace的路径访问元数据,虚拟机启动时发起动态主机设定协定(Dynamic HostConfiguration Protocol,DHCP)请求,下发到metadata服务的IP地址,查看qdhcp-namespace中DHCP服务器的IP配置信息为metadata服务的IP地址。HAProxy服务监听访问请求,HAProxy服务在访问请求中添加network-id,再由unix socket file将访问请求转发给neutron-metadata-agent。neutron-metadata-agent根据访问请求中的network-id获取虚拟机的ID,并将虚拟机的ID发送给nova-api-metadata。nova-api-metadata根据虚拟机的ID将获取到的元数据信息发送至虚拟机。
在租户虚拟机分别通过qrouter namespace和qdhcp namespace两条路径访问元数据时,如果namespace未创建成功或在资源处理过程中出现问题,虚拟机将无法访问metadata。在上述路径中,虚拟机需要通过租户创建的VPC访问元数据,如果VPC和虚拟机落在不同的计算节点上,则虚拟机需要跨计算节点访问元数据,导致租户虚拟机访问元数据的路径太长。并且,上述访问路径依赖HAProxy服务,创建一个router都会启动一个HAProxy,当计算节点中的qrouter-namespace数量过多时,就会导致进程数量过多,从而,在实现虚拟机访问元数据时效率较低。同时,在上述路径中,每个虚拟机启动时都要使用metadata-agent进程,由此会产生大量的metadata-agent进程,导致服务的压力增大。
如图1所示,示出了虚拟机访问元数据的两种流量路径。当虚拟机所在的子网连接到router时,虚拟机将访问请求通过router、集成网关转发至qrouter-namespace的子网网关,qrouter-namespace的子网网关匹配NAT表中的iptables规则。每一个router都会在主节点上启用一个HAProxy进程,HAProxy监听9697和9698端口将访问请求发送至unixsocket file。unix socket file通过neutron-metadata-agent将访问请求转发至nova-api-metadata。HAProxy将在请求头中添加“X-Neutron-Router-ID”,再由unix socketfile转发给neutron-metadata-agent。neutron-metadata-agent根据请求中的router-id,获取port信息,最后将虚拟机的ID发送给nova-api-metadata,请求成功后返回结果。
当虚拟机所在的子网未连接到router时,虚拟机将访问请求通过router、集成网关转发至qdhcp-namespace的子网网关。qdhcp-namespace的子网网关通过HAProxy监听80和81端口将访问请求发送至unix socket file。unix socket file通过neutron-metadata-agent将访问请求转发至nova-api-metadata。具体的,请求通过qdhcp-namespace来转发。虚拟机启动时会发起DHCP请求,下发到元数据地址(例如169.254.169.254)的路由。再查看DHCP服务器的IP配置信息,在qdhcp-namespace里的tap口下配置了两个IP,其中一个就是169.254.169.254。进一步的,HAProxy监听80和81端口,来获取报文,neutron-metadata-agent根据请求中的network-id,获取port信息,最后将虚拟机的ID发送给nova-api-metadata,请求成功后返回结果。
本申请实施例提供了一种虚拟机元数据获取方法,在虚拟机需要访问元数据的数据流时,可以在包括多个虚拟机的服务器中,增加包括元数据地址段、虚拟局域网和元数据MAC地址前缀的元数据扩展配置,并创建元数据网桥;进一步的,将元数据网桥通过patch类型的port与集成网桥相连,并基于元数据地址段为多个虚拟机中的每个虚拟机配置用于标识对应的虚拟机的元数据IP地址,基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置用于标识对应的虚拟机的MAC地址,从而可以基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。通过上述方法,在虚拟机需要访问元数据的数据流时,可以基于为每个虚拟机配置的元数据IP地址和MAC地址,通过集成网桥和元数据网桥获取元数据。从而解决虚拟机通过租户创建的VPC访问元数据,如果VPC和虚拟机落在不同的计算节点上,则虚拟机需要跨计算节点访问元数据,导致虚拟机访问元数据的路径太长的问题。从而,提高了虚拟机访问元数据的效率。
本申请实施例提供的一种虚拟机元数据获取方法,可以适用于虚拟机元数据获取系统。图2示出了虚拟机元数据获取系统的结构示意图。如图2所示,虚拟机元数据获取系统20包括:虚拟机21、集成网桥(br-int网桥)22和元数据网桥(br-meta网桥)23。集成网桥22包括tap口221和patch-port口(int-br-meta)222;元数据网桥23包括patch-port口(phy-br-meta)231和tap-meta口232。
其中,虚拟机21用于发送目标流量至集成网桥22、接收来自集成网桥22的目标元数据;集成网桥22用于转发目标流量至元数据网桥23、转发目标元数据至虚拟机21;元数据网桥23用于接收目标流量、发送目标元数据至集成网桥22。
下面结合附图对本申请实施例提供的一种虚拟机元数据获取方法进行描述。如图3所示,本申请实施例提供的一种虚拟机元数据获取方法,方法包括S201-S203:
S201、在服务器中增加元数据扩展配置,并创建元数据网桥。
其中,元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,服务器中包括多个虚拟机。
可以理解,在服务器中增加元数据扩展,并对元数据扩展进行相应配置,配置内容可以包括元数据地址段、虚拟局域网以及元数据MAC地址前缀的参数。在元数据扩展初始化时,可以在服务器中创建元数据网桥。
示例性的,元数据地址段的参数可以为100.200.0.0/16;虚拟局域网的参数可以为998;元数据MAC地址前缀的参数可以为fa:16:ee:00:00:00。
S202、基于元数据地址段,为多个虚拟机中的每个虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置MAC地址。
其中,元数据IP地址和MAC地址用于标识对应的虚拟机。
可以理解,当通过服务器创建虚拟机时,运行于服务器上的开放虚拟交换机(openvswitch,OVS)agent,可以基于元数据地址段,为服务器上多个虚拟机中的每个虚拟机配置元数据IP地址,并可以基于元数据MAC地址前缀为服务器上多个虚拟机中的每个虚拟机配置MAC地址。
需要说明的是,OVS agent可以为运行于服务器上的一个流程。本服务器上每个虚拟机配置的元数据IP地址和MAC地址,都与本服务器上任意其它虚拟机配置的元数据IP地址和MAC地址不同,本服务器上每个虚拟机配置的元数据IP地址和MAC地址可以用来唯一标识对应的虚拟机。
S203、将元数据网桥通过patch类型的port与集成网桥相连,并基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。
可以理解,元数据网桥可以通过一对patch类型的port(简称patch port)与集成网桥相连,每个虚拟机可以基于对应的元数据IP地址和MAC地址,通过集成网桥与元数据网桥获取元数据。
可选地,patch port可以分别位于集成网桥与元数据网桥上。
本申请实施例提供了一种虚拟机元数据获取方法,在虚拟机需要访问元数据的数据流时,可以在包括多个虚拟机的服务器中,增加包括元数据地址段、虚拟局域网和元数据MAC地址前缀的元数据扩展配置,并创建元数据网桥;进一步的,将元数据网桥通过patch类型的port与集成网桥相连,并基于元数据地址段为多个虚拟机中的每个虚拟机配置用于标识对应的虚拟机的元数据IP地址,基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置用于标识对应的虚拟机的MAC地址,从而可以基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。通过上述方法,在虚拟机需要访问元数据的数据流时,可以基于为每个虚拟机配置的元数据IP地址和MAC地址,通过集成网桥和元数据网桥获取元数据。从而解决虚拟机通过租户创建的VPC访问元数据,如果VPC和虚拟机落在不同的计算节点上,则虚拟机需要跨计算节点访问元数据,导致虚拟机访问元数据的路径太长的问题。从而,提高了虚拟机访问元数据的效率。
在一种设计中,如图4所示,本申请实施例提供的一种虚拟机元数据获取方法,方法还包括S301:
S301、在元数据网桥上添加tap-meta作为服务器对应的元数据地址段的网关地址。
可以理解,在元数据扩展初始化时,服务器上的OVS agent可以在创建的元数据网桥上添加tap-meta口,tap-meta口可以作为本服务器对应的元数据地址段的网关地址。
在一种设计中,如图5所示,本申请实施例提供的一种虚拟机元数据获取方法,方法还包括S401-S403:
S401、将每个虚拟机对应的元数据IP地址和MAC地址存储到开放虚拟交换机数据库OVSDB中。
可以理解,当通过服务器创建虚拟机时,运行于服务器上的OVS agent,会将每个虚拟机对应的元数据IP地址和MAC地址存储到开放虚拟交换机数据库(open vswitchdatabase,OVSDB)中。
S402、当重启OVS agent流程时,从OVSDB中读取每个虚拟机对应的元数据IP地址和MAC地址。
可以理解,当服务器重启OVS agent流程时,OVS agent可以优先从OVSDB中读取每个虚拟机对应的元数据IP地址和MAC地址。
需要说明的是,服务器重启OVS agent流程发生在元数据服务的运维阶段,即只有当获取元数据的服务需要进行升级时,服务器才会重启OVS agent流程。
S403、若OVSDB中未保存目标虚拟机对应的元数据IP地址和MAC地址,则重新基于元数据地址段,为目标虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为目标虚拟机配置MAC地址。
可以理解,在OVS agent从OVSDB中读取目标虚拟机对应的元数据IP地址和MAC地址时,若发现OVSDB中未保存目标虚拟机对应的元数据IP地址和MAC地址,则可以重新基于元数据地址段,为目标虚拟机配置元数据IP地址,并可以基于元数据MAC地址前缀为目标虚拟机配置MAC地址。
在一种设计中,如图6所示,本申请实施例提供的一种虚拟机元数据获取方法中,上述步骤203中的“基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据”方法具体包括S501-S503:
S501、在通过任一虚拟机获取目标元数据时,通过任一虚拟机的tap口将获取目标元数据的目标流量传输至集成网桥,并将目标流量通过patch类型的port,从集成网桥传输至元数据网桥。
可以理解,服务器中的OVS agent在通过任一虚拟机获取目标元数据时,可以通过任一虚拟机的tap口将目标流量传输至集成网桥。基于OVS agent下发在集成网桥上的流表规则,可以通过分别位于集成网桥和元数据网桥上的patch port将目标流量传输至元数据网桥。
需要说明的是,目标流量用于获取目标元数据。
示例性的,目标流量在集成网桥上的流量路径可以为table0,匹配目的IP为169.254.169.254的流量,从21口(int-br-meta)出,进入br-meta网桥,具体的,流量路径信息可以为:cookie=0x257456ebad2cc842,duration=5212.247s,table=0,n_packets=80,n_bytes=5920,idle_age=6154,priority=200,ip,in_port=113,nw_dst=169.254.169.254,actions=mod_vlan_vid:10,output:21。
S502、通过元数据网桥的tap-meta口获取目标元数据,并基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥。
可以理解,目标流量到达元数据网桥后,基于OVS agent下发在元数据网桥上的流表规则,可以将目标流量通过元数据网桥上的tap-meta口导出。元数据网桥可以通过位于元数据网桥上的tap-meta口获取目标元数据,并基于任一虚拟机对应的元数据IP地址和MAC地址和OVS agent下发在元数据网桥和集成网桥上的流表规则,分别通过位于集成网桥和元数据网桥上的patch port将目标元数据传输至集成网桥。
S503、通过任一虚拟机的tap口将目标元数据传输至任一虚拟机。
可以理解,集成网桥可以通过任一虚拟机的tap口,将来自元数据网桥的目标元数据传输至对应的虚拟机。
在一种设计中,如图7所示,本申请实施例提供的一种虚拟机元数据获取方法中,上述步骤502中的“基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥”方法之前,具体还包括S601:
S601、通过元数据网桥的tap-meta口获取目标元数据,并获取地址解析协议ARP数据包,以及基于ARP数据包确定任一虚拟机对应的元数据IP地址和MAC地址。
可以理解,元数据网桥可以通过tap-meta口所在的服务器协议栈,获取地址解析协议(address resolution protocol,ARP)数据包,元数据网桥可以基于ARP数据包确定任一虚拟机对应的元数据IP地址和MAC地址。
需要说明的是,服务器协议栈可以为tap-meta口所在的操作系统。ARP数据包用于获取ARP应答包,ARP应答包中包含目标虚拟机的元数据IP地址和MAC地址。服务器中的每个虚拟机只有在首次发送访问元数据的目标流量时,当获取的目标元数据到达tap-meta口所在的服务器协议栈时,需要获取ARP数据包。
可选地,tap-meta口所在的服务器协议栈在接收到目标元数据时,可以判断目标元数据中的目标虚拟机元数据IP地址是否包含对应的元数据MAC地址。若没有,则服务器协议栈生成ARP数据包,并通过tap-meta口发送ARP数据包至元数据网桥,基于元数据网桥流表规则,元数据网桥对ARP数据包进行代答,生成相应的ARP应答包,并将ARP应答包发送至tap-meta口所在的服务器协议栈。若有,则服务器协议栈不生成ARP数据包。
示例性的,ARP数据包在元数据网桥上的流量路径可以为通过table 0匹配从tap-meta口进入的ARP数据包,将ARP数据包转到table 90,具体的,流量路径信息可以为:cookie=0x63b8d215b9944b05,duration=3943.531s,table=0,n_packets=0,n_bytes=0,priority=201,arp,in_port=“tap-meta”actions=resubmit(,90)。
从而,table 90可以匹配目的IP为100.200.4.238的ARP数据包,动作是构造对ARP包的应答,ARP应答包的源IP设置为100.200.4.238,ARP应答包的目的IP为ARP数据包的源IP,源MAC设置为ARP数据包的目的MAC,目的MAC为ARP数据包的源MAC,将ARP应答包从进来的端口返回。具体的,流量路径信息可以为:cookie=0x46a2e811c1274b49,duration=4861.518s,table=90,n_packets=0,n_bytes=0,priority=200,arp,arp_tpa=100.200.4.23,actions=load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]->NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]->NXM_OF_ARP_TPA[],load:0xfa16eed061f8->NXM_NX_ARP_SHA[],load:0x64c804ee->NXM_OF_ARP_SPA[],mov e:NXM_OF_ETH_SRC[]->NXM_OF_ETH_DST[],mod_dl_src:fa:16:ee:d0:61:f8,IN_PORT。
需要说明的是,在包括上述步骤S601的情况下,上述步骤S502所包括的具体步骤为“基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥”。
在一种设计中,如图8所示,本申请实施例提供的一种虚拟机元数据获取方法中,上述步骤501中的“将目标流量通过patch类型的port,从集成网桥传输至元数据网桥”方法之前,具体还包括S701-S702:
S701、通过HAProxy监听元数据网桥的tap-meta口导出的目标流量,并在监听到目标流量时,将目标流量发送到目的地址。
其中,目的地址为获取目标元数据的地址。
可以理解,服务器可以通过HAProxy监听元数据网桥通过tap-meta口导出的目标流量,当HAProxy监听到目标流量时,可以将该目标流量发送至目的地址。
进一步的,基于目标流量从目的地址中获取目标元数据,目标元数据中包含的信息为目标流量所请求获取的信息。
可选地,目的地址可以将获取到的目标元数据返回给HAProxy。
S702、当通过HAProxy接收到目的地址返回的目标元数据时,将目标元数据传输至元数据网桥。
可以理解,当HAProxy接收到来自目的地址返回的目标元数据时,可以通过HAProxy将目标元数据传输至元数据网桥上的tap-meta口所在的服务器协议栈。
如图9所示,示出了一种虚拟机元数据获取系统流量路径示意图。在元数据网桥上,虚拟机访问元数据的出向流量(目标流量)路径包括table(流表项)0、table80、table82和table83;虚拟机访问元数据的入向流量(目标元数据)路径包括table0、table81和table91。其中,出向流量路径中的table0用于发送目标流量至table80,table80和table82分别用于转发来自table0的目标流量、table83用于接收来自table82转发的目标流量;入向流量路径中table0用于发送目标元数据至table81,table81用于转发来自table0的目标元数据,table91用于接收来自table81的目标元数据。实现目标流量和目标元数据在元数据网桥上的传输。
在一种实现方式中,当需要为创建的虚拟机配置元数据信息时,首先需要通过虚拟机发送用来获取目标元数据的目的流量,通过虚拟机上的tap口将目的流量发送至集成网桥。集成网桥接收来自虚拟机的目的流量,并通过分别位于集成网桥和元数据网桥上的一对patch类型的port,将目标流量发送至元数据网桥。元数据网桥接收来自集成网桥的目标流量,并通过位于集成网桥上的tap-meta口将目标流量导出。HAProxy可以监听通过tap-meta口导出的目标流量,并将目标流量转发至目的地址。
示例性的,目标流量在元数据网桥上的流量路径可以为table 0,匹配从br-int网桥进入且目的IP为169.254.169.254的流量,流量转到table80。具体的,流量路径信息可以为:cookie=0x7712e2f539091f12,duration=47.995s,table=0,n_packets=717,n_bytes=53058,priority=201,ip,in_port=“phy-br-meta”,nw_dst=169.254.169.254actions=resubmit(,80)。进一步的,table 80,匹配源MAC地址为虚拟机MAC,源IP为虚拟机IP的流量,动作是将源MAC地址改成为虚拟机port分配的metadata MAC地址,源IP改成为虚拟机port分配的metadata IP,转到table 82。具体的,流量路径信息可以为:cookie=0x46a2e811c1274b49,duration=41.162s,table=80,n_packets=0,n_bytes=0,priority=201,ip,dl_vlan=7,dl_src=fa:16:3e:0c:45:c7,nw_src=192.168.222.135actions=strip_vlan,mod_dl_src:fa:16:ee:4e:ac:f7,mod_nw_src:100.200.221.34,resubmit(,82),cookie=0x63b8d215b9944b05,duration=16.288s,table=82,n_packets=0,n_bytes=0,priority=0actions=resubmit(,83)。table 83,匹配目的IP为169.254.169.254,目的端口为80的TCP数据包,修改目的MAC为metadata网关MAC,目的IP为metadata的网关IP,目标流量从tap-meta口出,具体的,流量路径信息可以为:cookie=0xbbd2bd7996c03497,duration=339.549s,table=83,n_packets=0n_bytes=0,priority=202,tcp,nw_dst=169.254.169.254,tp_dst=80actions=mod_dl_dst:fa:16:ee:00:00:01,mod_nw_dst:100.200.0.1,output:“tap-meta”。
在一种实现方式中,目标流量在目的地址获取目标元数据,并将目标元数据通过HAProxy返回至tap-meta口。tap-meta口上的服务器协议栈接收来自HAProxy发送的目标元数据,并判断目标元数据是否包括目标虚拟机对应的元数据IP地址和元数据MAC地址。若没有,则发送ARP数据包到元数据网桥,元数据网桥返回ARP数据应答包到tap-meta口上的服务器协议栈。若有,则不发送ARP数据包到元数据网桥。元数据网桥基于目标元数据中目标虚拟机对应的元数据IP地址和元数据MAC地址,通过分别位于集成网桥和元数据网桥上的一对patch类型的port,将目标元数据发送至集成网桥。集成网桥将接收到目标元数据通过目标虚拟机的tap口发送至目标虚拟机,由此,目标虚拟机可以通过目标元数据中的元数据信息进行元数据配置。
示例性的,目标元数据在元数据网桥上的流量路径可以为table 0,匹配从tap-meta口进入的目标元数据IP数据包,转到table 81,具体的,流量路径信息可以为:cookie=0x63b8d215b9944b05,duration=6484.932s,table=0,n_packets=0,n_bytes=0,priority=201,ip,in_port=“tap-meta”actions=mod_vlan_vid:998,resubmit(,81);table 91,匹配从tap-meta口进入,vlan id=998,目的IP为metadata IP的TCP数据包,接着将目的MAC改为虚拟机MAC,修改目的IP为虚拟机IP,源IP改为169.254.169.254,目标源数据从phy-br-meta口出,经int-br-meta口,进入br-int网桥,具体的,流量路径信息可以为:cookie=0x46a2e811c1274b49,duration=7518.701s,table=91,n_packets=0,n_bytes=0,priority=202,tcp,in_port=7,dl_vlan=998,nw_dst=100.200.101.81actions=mod_vlan_vid:10,mod_dl_dst:fa:16:3e:03:a2:3e,mod_nw_src:169.254.169.254,mod_nw_dst:192.168.177.144,output:“phy-br-meta”。
本申请实施例提供一种虚拟机元数据获取方法,在云网络环境下提出了一种分布式元数据访问通道的解决方案。使用将元数据服务分布到每个计算节点的方案,实现租户虚拟机直接通过本计算节点的路径访问元数据服务,避免了租户虚拟机访问元数据时的流量路径太长的问题;实现单台计算节点可以直接在本节点访问元数据,当单台计算节点宕机时,不影响其它计算节点;本方案通过使用OpenvSwitch流表的方式,与背景技术中使用的namespace相比,增加了安全机制;本方案分布式的实现方法,提高了通道访问元数据的性能。在云网络环境下,本方案不依赖额外agent服务即可提供元数据访问,基于OpenvSwitch实现虚拟机访问metadata,不涉及内核相关功能模块(iptables,netfilter,conntrack等),基于OpenvSwitch流表流水线实现分布式元数据的访问。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对一种虚拟机元数据获取方法进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图10为本申请实施例提供的一种虚拟机元数据获取装置的结构示意图。如图10所示,一种虚拟机元数据获取装置40用于提高虚拟机访问元数据的效率,例如用于执行图4所示的一种虚拟机元数据获取方法。该虚拟机元数据获取装置40包括:处理单元401和获取单元402;
处理单元401,用于在服务器中增加元数据扩展配置,并创建元数据网桥,元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,服务器中包括多个虚拟机;
处理单元401,还用于基于元数据地址段,为多个虚拟机中的每个虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为多个虚拟机中的每个虚拟机配置MAC地址,元数据IP地址和MAC地址用于标识对应的虚拟机;
处理单元401,还用于将元数据网桥通过patch类型的port与集成网桥相连;
获取单元402,用于基于每个虚拟机对应的元数据IP地址和MAC地址获取元数据。
在一种可能的实现方式中,处理单元401,还用于在元数据网桥上添加tap-meta作为服务器对应的元数据地址段的网关地址。
在一种可能的实现方式中,处理单元401,还用于将每个虚拟机对应的元数据IP地址和MAC地址存储到开放虚拟交换机数据库OVSDB中;处理单元401,还用于当重启OVSagent流程时,从OVSDB中读取每个虚拟机对应的元数据IP地址和MAC地址;处理单元401,还用于若OVSDB中未保存目标虚拟机对应的元数据IP地址和MAC地址,则重新基于元数据地址段,为目标虚拟机配置元数据IP地址,并基于元数据MAC地址前缀为目标虚拟机配置MAC地址。
在一种可能的实现方式中,虚拟机元数据获取装置还包括:传输单元;传输单元403,用于在通过任一虚拟机获取目标元数据时,通过任一虚拟机的tap口将获取目标元数据的目标流量传输至集成网桥,并将目标流量通过patch类型的port,从集成网桥传输至元数据网桥;传输单元403,还用于通过元数据网桥的tap-meta口获取目标元数据,并基于任一虚拟机对应的元数据IP地址和MAC地址,通过patch类型的port将目标元数据传输至集成网桥;传输单元403,还用于通过任一虚拟机的tap口将目标元数据传输至任一虚拟机。
在一种可能的实现方式中,获取单元402,还用于获取地址解析协议ARP数据包;处理单元401,还用于基于ARP数据包确定任一虚拟机对应的元数据IP地址和MAC地址。
在一种可能的实现方式中,处理单元401,还用于通过HAProxy监听元数据网桥的tap-meta口导出的目标流量;传输单元403,还用于在监听到目标流量时,将目标流量发送到目的地址,目的地址为获取目标元数据的地址;传输单元403,还用于当通过HAProxy接收到目的地址返回的目标元数据时,将目标元数据传输至元数据网桥。
在采用硬件的形式实现上述集成的模块的功能的情况下,本申请实施例提供了上述实施例中所涉及的电子设备的另外一种可能的结构示意图。如图11所示,一种电子设备60,用于提高虚拟机访问元数据的效率,例如用于执行图3所示的一种虚拟机元数据获取方法。该电子设备60包括处理器601,存储器602以及总线603。处理器601与存储器602之间可以通过总线603连接。
处理器601是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器601可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
作为一种实施例,处理器601可以包括一个或多个CPU,例如图11中所示的CPU 0和CPU 1。
存储器602可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
作为一种可能的实现方式,存储器602可以独立于处理器601存在,存储器602可以通过总线603与处理器601相连接,用于存储指令或者程序代码。处理器601调用并执行存储器602中存储的指令或程序代码时,能够实现本申请实施例提供的一种虚拟机元数据获取方法。
另一种可能的实现方式中,存储器602也可以和处理器601集成在一起。
总线603,可以是工业标准体系结构(industry standard architecture,ISA)总线、外围设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要指出的是,图11示出的结构并不构成对该电子设备60的限定。除图11所示部件之外,该电子设备60可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
作为一个示例,结合图10,电子设备中的处理单元401、获取单元402和传输单元403实现的功能与图11中的处理器601的功能相同。
可选的,如图11所示,本申请实施例提供的电子设备60还可以包括通信接口604。
通信接口604,用于与其他设备通过通信网络连接。该通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。通信接口604可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
在一种设计中,本申请实施例提供的电子设备中,通信接口还可以集成在处理器中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明。在实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述方法实施例所示的方法流程中的各个步骤。
本申请的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行上述方法实施例中的一种虚拟机元数据获取方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘。随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦式可编程只读存储器(erasable programmable read only memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,CD-ROM)、光存储器件、磁存储器件、或者上述的人以合适的组合、或者本领域数值的任何其他形式的计算机可读存储介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(application specific integrated circuit,ASIC)中。
在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
由于本申请的实施例中的电子设备、计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本申请实施例在此不再赘述。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。

Claims (14)

1.一种虚拟机元数据获取方法,其特征在于,所述方法包括:
在服务器中增加元数据扩展配置,并创建元数据网桥,所述元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,所述服务器中包括多个虚拟机;
基于所述元数据地址段,为所述多个虚拟机中的每个虚拟机配置元数据IP地址,并基于所述元数据MAC地址前缀为所述多个虚拟机中的每个虚拟机配置MAC地址,所述元数据IP地址和所述MAC地址用于标识对应的虚拟机;
将所述元数据网桥通过patch类型的port与集成网桥相连,并基于每个虚拟机对应的所述元数据IP地址和所述MAC地址获取元数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述元数据网桥上添加tap-meta作为所述服务器对应的元数据地址段的网关地址。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将每个虚拟机对应的所述元数据IP地址和所述MAC地址存储到开放虚拟交换机数据库OVSDB中;
当重启OVS agent流程时,从所述OVSDB中读取每个虚拟机对应的所述元数据IP地址和所述MAC地址;
若所述OVSDB中未保存目标虚拟机对应的所述元数据IP地址和所述MAC地址,则重新基于所述元数据地址段,为所述目标虚拟机配置所述元数据IP地址,并基于所述元数据MAC地址前缀为所述目标虚拟机配置所述MAC地址。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述基于每个虚拟机对应的所述元数据IP地址和所述MAC地址获取元数据,包括:
在通过任一虚拟机获取目标元数据时,通过所述任一虚拟机的tap口将获取所述目标元数据的目标流量传输至所述集成网桥,并将所述目标流量通过所述patch类型的port,从所述集成网桥传输至所述元数据网桥;
通过所述元数据网桥的tap-meta口获取所述目标元数据,并基于所述任一虚拟机对应的所述元数据IP地址和所述MAC地址,通过所述patch类型的port将所述目标元数据传输至所述集成网桥;
通过所述任一虚拟机的tap口将所述目标元数据传输至所述任一虚拟机。
5.根据权利要求4所述的方法,其特征在于,所述基于所述任一虚拟机对应的所述元数据IP地址和所述MAC地址,通过所述patch类型的port将所述目标元数据传输至所述集成网桥之前,方法还包括:
获取地址解析协议ARP数据包,并基于所述ARP数据包确定所述任一虚拟机对应的所述元数据IP地址和所述MAC地址。
6.根据权利要求4所述的方法,其特征在于,所述将所述目标流量通过所述patch类型的port,从所述集成网桥传输至所述元数据网桥之后,所述方法还包括:
通过HAProxy监听所述元数据网桥的所述tap-meta口导出的所述目标流量,并在监听到所述目标流量时,将所述目标流量发送到目的地址,所述目的地址为获取所述目标元数据的地址;
当通过所述HAProxy接收到所述目的地址返回的所述目标元数据时,将所述目标元数据传输至所述元数据网桥。
7.一种虚拟机元数据获取装置,其特征在于,所述虚拟机元数据获取装置包括:处理单元和获取单元;
所述处理单元,用于在服务器中增加元数据扩展配置,并创建元数据网桥,所述元数据扩展配置包括:元数据地址段、虚拟局域网、元数据MAC地址前缀,所述服务器中包括多个虚拟机;
所述处理单元,还用于基于所述元数据地址段,为所述多个虚拟机中的每个虚拟机配置元数据IP地址,并基于所述元数据MAC地址前缀为所述多个虚拟机中的每个虚拟机配置MAC地址,所述元数据IP地址和所述MAC地址用于标识对应的虚拟机;
所述处理单元,还用于将所述元数据网桥通过patch类型的port与集成网桥相连;
所述获取单元,用于基于每个虚拟机对应的所述元数据IP地址和所述MAC地址获取元数据。
8.根据权利要求7所述的虚拟机元数据获取装置,其特征在于,所述处理单元,还用于在所述元数据网桥上添加tap-meta作为所述服务器对应的元数据地址段的网关地址。
9.根据权利要求7所述的虚拟机元数据获取装置,其特征在于,所述处理单元,还用于将每个虚拟机对应的所述元数据IP地址和所述MAC地址存储到开放虚拟交换机数据库OVSDB中;
所述处理单元,还用于当重启OVS agent流程时,从所述OVSDB中读取每个虚拟机对应的所述元数据IP地址和所述MAC地址;
所述处理单元,还用于若所述OVSDB中未保存目标虚拟机对应的所述元数据IP地址和所述MAC地址,则重新基于所述元数据地址段,为所述目标虚拟机配置所述元数据IP地址,并基于所述元数据MAC地址前缀为所述目标虚拟机配置所述MAC地址。
10.根据权利要求7至9中任一项所述的虚拟机元数据获取装置,其特征在于,所述虚拟机元数据获取装置还包括:传输单元;
所述传输单元,用于在通过任一虚拟机获取目标元数据时,通过所述任一虚拟机的tap口将获取所述目标元数据的目标流量传输至所述集成网桥,并将所述目标流量通过所述patch类型的port,从所述集成网桥传输至所述元数据网桥;
所述传输单元,还用于通过所述元数据网桥的tap-meta口获取所述目标元数据,并基于所述任一虚拟机对应的所述元数据IP地址和所述MAC地址,通过所述patch类型的port将所述目标元数据传输至所述集成网桥;
所述传输单元,还用于通过所述任一虚拟机的tap口将所述目标元数据传输至所述任一虚拟机。
11.根据权利要求10所述的虚拟机元数据获取装置,其特征在于,所述获取单元,还用于获取地址解析协议ARP数据包;
所述处理单元,还用于基于所述ARP数据包确定所述任一虚拟机对应的所述元数据IP地址和所述MAC地址。
12.根据权利要求10所述的虚拟机元数据获取装置,其特征在于,所述处理单元,还用于通过HAProxy监听所述元数据网桥的所述tap-meta口导出的所述目标流量;
所述传输单元,还用于在监听到所述目标流量时,将所述目标流量发送到目的地址,所述目的地址为获取所述目标元数据的地址;
所述传输单元,还用于当通过所述HAProxy接收到所述目的地址返回的所述目标元数据时,将所述目标元数据传输至所述元数据网桥。
13.一种电子设备,其特征在于,包括:处理器以及存储器;其中,所述存储器用于存储一个或多个程序,所述一个或多个程序包括计算机执行指令,当所述电子设备运行时,处理器执行所述存储器存储的所述计算机执行指令,以使所述电子设备执行权利要求1-6中任一项所述的一种虚拟机元数据获取方法。
14.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当被计算机执行时使所述计算机执行如权利要求1-6中任一项所述的一种虚拟机元数据获取方法。
CN202211182179.8A 2022-09-27 2022-09-27 虚拟机元数据获取方法、装置、设备及存储介质 Pending CN117834588A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211182179.8A CN117834588A (zh) 2022-09-27 2022-09-27 虚拟机元数据获取方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211182179.8A CN117834588A (zh) 2022-09-27 2022-09-27 虚拟机元数据获取方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117834588A true CN117834588A (zh) 2024-04-05

Family

ID=90506341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211182179.8A Pending CN117834588A (zh) 2022-09-27 2022-09-27 虚拟机元数据获取方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117834588A (zh)

Similar Documents

Publication Publication Date Title
CN108449282B (zh) 一种负载均衡方法及其装置
EP3780552B1 (en) Message processing method in distributed device and distributed device
CN109728962B (zh) 一种发送报文的方法和设备
CN111193773B (zh) 负载均衡方法、装置、设备及存储介质
CN112965824A (zh) 报文的转发方法及装置、存储介质、电子设备
CN107809386B (zh) Ip地址转换方法、路由设备和通信系统
US11800587B2 (en) Method for establishing subflow of multipath connection, apparatus, and system
CN112654049B (zh) 用于配置无线通信覆盖扩展系统的方法、系统、节点和介质
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
CN112887229A (zh) 一种会话信息同步方法及装置
CN115695374A (zh) 一种IPv6子网前缀通告实现方法、装置、设备及存储介质
US11929851B2 (en) Gateway selection method, device, and system
JP7389091B2 (ja) トラフィックフォワーディングを制御するための方法、装置及びシステム
CN113726915A (zh) 网络系统及其中的报文传输方法和相关装置
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
CN110022263B (zh) 一种数据传输的方法及相关装置
CN112243036B (zh) PaaS服务的数据处理方法及装置、设备、存储介质
CN113923158B (zh) 一种报文转发、路由发送和接收方法及装置
KR101794719B1 (ko) Sdn 기반 네트워크 가상화 플랫폼에서의 ip 주소 가상화 방법 및 시스템
CN116094923B (zh) 云实例迁移后的网关更新方法及装置和电子设备
CN112203302B (zh) 接入设备配置方法和网管系统
CN117834588A (zh) 虚拟机元数据获取方法、装置、设备及存储介质
CN112994928A (zh) 一种虚拟机的管理方法、装置及系统
CN116389345A (zh) 分段路由策略的传输方法及装置、网络传输系统
WO2023169364A1 (zh) 路由生成方法、数据报文的转发方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination