一种基于TCP选项的高性能元数据获取方法与流程
- 国知局
- 2024-10-21 15:05:20
本发明属于云场景获取元数据领域,尤其涉及一种基于tcp选项的高性能元数据获取方法。
背景技术:
1、sdn(software defined network,软件定义网络)是一种架构,它将网络抽象为了控制平面和转发平面,使网络变得敏捷和灵活。随着云的兴起,sdn为对各种云业务和应用负载提供灵活的网络支撑。同时,各种虚拟化技术实现的所带来的细节差异,导致全栈网络化互通面临着各虚拟化控制平面所存储信息的不对称、多个控制平面信息的如何同步和统一管理、以及跨区域路由如何实现等等都对sdn带来了巨大的挑战。
2、sdn集中式控制器是指控制平面集中部署在几台固定的控制节点,非计算节点。
3、openflow是一种网络通信协议,属于数据链路层,可以控制网络交换机或路由器的转发平面。因此,被广泛用于sdn架构中。sdn通过openflow控制ovs(open vswitch,虚拟交换机)的转发平面,借此改变网络数据包所走的网络路径。
4、在虚拟化技术普及的今天,云计算环境中的元数据管理变得尤为重要。元数据是描述数据的数据,可以用于描述数据集的内容、属性、结构以及数据之间的关系。在虚拟化环境中,元数据可以用于描述虚机的配置信息、权限信息、应用程序等信息。
5、tcp选项(tcp option)是tcp头部的一个可变长的可选信息,最多包含40字节。它由三个字段组成:kind、length和info。kind字段指示选项的类型,它可以有不同的值,比如0表示选项表结束(eop)选项,3表示窗口扩大因子选项。length字段指示整个选项的总长度,包括kind和length本身占据的2字节。info字段是选项的具体信息,其内容和长度取决于kind字段的值。根据rfc 7413规定,tcp option的type字段中值为254(0xfe)被保留作为“experimental use”或者“experimental measurement”选项。这意味着这个值并没有被标准化的tcp选项所使用,而是可以用于实验性的测量和用途。
6、在tcp中,这些未使用的type值可以用于各种研究和开发目的。例如,研究者可以使用这些未使用的选项来测试新的tcp功能或特性,而不会干扰现有的tcp协议操作。
7、在现有的技术中,虚机的元数据通常存储在云管理节点的数据库中,需要通过多次转发才能获取到元数据信息。这使得元数据的获取和管理变得困难且效率低下。此外,当虚机发生迁移或故障时,元数据可能无法及时更新或恢复,从而影响到虚拟机的正常运行。如图1所示,具体如下:
8、1、在网络节点或网关集中式部署一个metadata proxy,针对每个网络启动一个namespace,给内部tap网卡配置一个169.254.169.254的虚拟ip,并启动一个haproxy进程,监听端口80。
9、2、haproxy进程会把openstack虚拟机metadata请求转发到本地的一个socket文件中。转发的同时会添加networkid。
10、3、neutron-metadata-agent监听这个socket文件,相当于haproxy将metadata服务通过socket文件转发给neutron-metadata-agent服务。
11、4、neutron-metadata-agent通过network uuid以及虚拟机ip即可获取虚拟机的信息,进而获取到instance-id并填充到请求中。
12、5、请求转发给nova-api-metdata,nova-api-metdata利用instance-id获取到虚拟机的元数据信息,再逐步返回。
13、现有技术的整个元数据获取的过程中,一次交互需要转发三次才能送到nova-api-metdata获取到元数据信息,然后再通过三次转发才能回到虚机。同时,获取metadata信息是通过网络节点的network namespace作为中转获取。单台服务器上支持的netns数量有限,需要较多的网络节点服务器。
14、综上,现有技术存在效率低、实时性不强、网络延迟大、资源消耗大等问题。
技术实现思路
1、鉴于以上现有技术的不足,发明的目的在于提供一种基于tcp选项的高性能元数据获取方法,提高了虚机元数据获取的效率和准确性以及提高虚拟化环境下元数据管理的效率和准确性。
2、本发明提出了一种基于tcp选项的高性能元数据获取方法,包括:
3、s1,对openflow协议进行扩展,以使得openflow协议支持为tcp报文增加指定类型的报文头tcp选项;
4、s2,在本地机器的计算节点上启动metadata proxy服务,利用所述metadataproxy服务作为虚拟机元数据信息的管理员,接收虚拟机的元数据请求,并在本地存储和管理这些元数据信息;
5、s3,将虚拟机与主机进行绑定,通过http连接调用所述计算节点的metadataproxyapi,向所述metadata proxy服务发送http请求,其中,在http报文头中携带x-instance-id标识,所述x-instance-id标识用于记录虚拟机的instance_id;
6、s4,所述metadata proxy服务接收到所述http请求后,对所述http请求中携带的x-instance-id标识进行解析并提取,并存储到本地机器,根据所述x-instance-id标识,由所述metadata proxy服务将每个虚拟机的元数据信息与相应的instance_id进行关联;
7、s5,控制器通过所述openflow协议的流表修改虚拟机访问报文,将原本指向特定ip地址和端口的流量包重定向到所述metadata proxy服务,并将虚拟机的instance_id作为tcp选项添加到元数据访问的tcp数据包中,将数据包发送给metadata proxy服务;
8、s6,所述metadata proxy服务接收来自所述控制器的tcp数据包,解析报文中的tcp选项tcp option,获取instance-id,并基于instance-id在本地查找与所述instance-id对应的元数据信息,并在查找到后将该元数据信息转发给对应的虚拟机。
9、进一步地,在步骤s1中,通过对openflow协议中encap动作进行扩展,以使得encap动作支持为tcp报文添加一个tcp选项tcp option头。
10、进一步地,在步骤s1中,所述tcp选项tcp option的形式为
11、encap(tcp_option(tcp option type,tcp option value));
12、其中,encap动作表示openflow协议中给报文增加指定类型的报文头;tcp optiontype表示tcp选项的类型;tcp option value表示tcp选项的数据。
13、进一步地,在步骤s2中,在每个计算节点上均部署着支持tcp option的ovs网桥,并启动一个metadata proxy服务,其中,ovs网桥与所述虚拟机连通。
14、进一步地,在步骤s2中,对所述metadata proxy服务配置nova-api-metadata节点调用的api接口,以在虚拟机绑定计算节点时,预先将该虚拟机的元数据图送给对应节点的metadata proxy服务;在所述步骤s3中,http请求连接调用所述api接口。
15、进一步地,在步骤s5中,先将虚拟机的instance_id转换成16个字节,然后作为tcp选项添加到元数据访问的tcp数据包中,将数据包发送给metadata proxy服务。
16、进一步地,在步骤s6中,所述metadata proxy服务解析报文中的tcp选项tcpoption字段,采用与流表序列化算法相同的方式进行反序列化,以获取instance-id。
17、进一步地,在步骤s6中,如果metadata proxy服务没有在本地没查找到与所述instance-id对应的元数据信息,则metadata proxy服务获取请求的header的x-instance-id头中的instance-id,并将其填充到请求中,通过管理口转发给nova-api-metadata,以获取该虚拟机的元数据信息。
18、进一步地,在步骤s6中,所述metadata proxy服务将查找到元数据信息转发给对应的虚拟机的同时,将所述元数据信息以instance_id为键存储到本地机器。
19、进一步地,当虚拟机的元数据发生变更时,nova查找到该虚拟机所在的计算节点,调用metadata proxy服务提供的api接口,更新该节点上的metadata proxy服务上该虚拟机的元数据信;息metadata proxy服务更新本地的元数据信息后,通知虚拟机进行元数据信息重新获取。
20、相对现有技术而言,本发明的方法具有以下优点和效果:
21、(1)高效率:通过在本地启动metadata proxy服务,在虚机启动之前预先推送给代理虚机的元数据信息,可大大减少虚机元数据获取的时间和计算资源消耗,提高元数据获取的效率。本发明的方法可以提升元数据获取效率:通过在计算节点本地启动一个metadata proxy服务,代理可以拦截对元数据的请求,并预先推送给代理虚机的元数据信息。这种方法可以避免对元数据的重复请求,提高获取效率,从而节省了计算和网络资源。
22、(2)准确性:通过使用metadata proxy服务获取和存储元数据信息,可以避免传统方法中存在的实时性不足、无法统一管理、消耗系统资源较大等问题,提高元数据获取的准确性。
23、(3)统一管理:通过metadata proxy服务的本地存储和管理虚机的元数据信息,可以实现虚拟化环境下元数据的统一管理,方便对大量虚机的元数据进行批量处理、更新和操作,提高元数据管理的效率和准确性。
24、(4)快速响应:通过将虚机的instance id转换成tcp选项添加到元数据访问的tcp数据包中,并使用metadata proxy服务快速获取虚机的元数据信息,可以实现对虚机元数据的快速响应和准确获取。
25、(5)可靠性高:通过更新元数据信息的方法,可以及时更新和恢复虚机的元数据信息,避免因虚机迁移、故障等原因造成的数据丢失或错误,提高虚拟化环境下元数据管理的可靠性和稳定性。本发明可以实现自动更新元数据:当虚机的元数据发生变更时,该专利的方法可以通过查找到虚机所在的计算节点,更新该节点上的metadata proxy上记录的元数据信息。然后由proxy主动通知虚机更新元数据信息。虚机响应元数据更新请求,重新获取元数据。这种方法可以实现元数据的自动更新,确保虚拟化环境下元数据获取的准确性和实时性。
26、(6)增强安全性:在控制器修改虚机访问元数据报文的过程中,该专利通过openflow流表将虚机的instance id转换成tcp选项添加到元数据访问的tcp数据包中,然后发送给代理。这种方法可以避免在虚机上暴露敏感信息,提高了安全性。
27、综上,本发明相对现有技术具有更高的效率和准确性、更强的统一管理能力和快速响应能力以及更高的可靠性,能够更好地满足虚拟化环境下对元数据管理的需求。本发明具有很强的实用性,可以在虚拟化环境中提高元数据获取的效率和准确性,增强安全性并实现元数据的自动更新。因此,本发明的方法具有一定的实用性和应用价值。
本文地址:https://www.jishuxx.com/zhuanli/20241021/320464.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。