使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法技术方案

技术编号:19077353 阅读:24 留言:0更新日期:2018-09-29 18:34
本发明专利技术提供了一种允许跨容器/轻量级虚拟机进行通信的应用级交叉开关。所述应用级交叉开关或软件交叉开关或软件定义开关为应用层提供统一的通信接口,抽象了连接管理以及消息发送和接收的细节。软件定义开关/应用级交叉开关利用域套接字可以用于连接网络空间而不影响对主机内消息交换的隔离这一点,提高了主机内虚拟机的消息交换性能。

【技术实现步骤摘要】
【国外来华专利技术】使用主机内核资源的轻量级虚拟机之间的软件定义开关的系统和方法
本文描述的主题大体上涉及通信数据处理,更具体地,用于改善轻量级虚拟机中的网络能力的性能。
技术介绍
在计算机领域,虚拟机(virtualmachine,VM)是对特定计算机系统的仿真。虚拟机基于真实或假想计算机的计算机架构和功能进行操作,其实现可能涉及专用硬件、软件或二者的组合。众所周知,运行虚拟机有很多益处。虚拟机更好地利用了硬件,易于备份和交换,并将业务彼此隔离。但是,运行虚拟机也有缺点。虚拟机镜像很笨拙。另外,更重要的是,虚拟机需要相当多的资源,因为它们仿真了硬件和运行了全栈操作系统。通过使用Linux容器,提供一种轻量级替代品来替代成熟虚拟机,同时能保留成熟虚拟机的优点。容器为操作系统级虚拟环境,用于在单个Linux主机上运行多个独立的Linux系统,有时也称为轻量级虚拟化或轻量级虚拟机。runC、Docker和Warden是轻量级虚拟机(容器)的一些示例,可用于构建“平台即服务”(PlatformasaSolution,PaaS)。runC/Docker/Warden是基于Linux内核命名空间和CGroup的方案,通过易于使用的控制台/API/图像格式来抽象复杂的内核API,并且提供按需抽象来计算存储和网络能力。容器组网可大概视为给一组容器创建一致的网络环境。这可使用叠加网络实现,叠加网络存在多种实施方式,例如Docker默认网络模式、weave、flannel和socketplane。所有这些叠加网络的主要优势是无需改变应用代码,应用可按原样部署。网络命名空间连接到物理网络设备的方式也是容器组网的另一部分。存在多个允许网络命名空间与veth、OpenVSwith、域套接字等网络硬件进行通信的Linux内核模块。命名空间是Linux内核的一个特征,其允许将一组进程分开,使这些进程不能“看到”其它组中的资源。根据网络命名空间的Linux内核文档,在不损害网络隔离级别的情况下,网络命名空间可通过veth对和/或域套接字进行通信。图1(a)示出了使用veth对进行通信的网络命名空间。veth对是一种可在容器内使用的类似以太网的虚拟设备。veth对捕获以太网帧,捕获的帧可通过网桥或路由器发送至目的地。域套接字是一种高效的轻量级进程间通信(interprocesscommunication,IPC)。图1(b)示出了使用域套接字进行通信的网络命名空间。域套接字可以通过文件权限来控制,所以比任何人都可以连接的TCP端口更安全,因此TCP端口需要进一步的安全防护。图2示出了Docker中的网络设置。图2示出了虚拟机/容器用来解决网络问题的通用方法。该通用方法为从veth等虚拟设备捕获以太网数据包,然后通过网桥/路由器将数据包发送到同一主机或不同主机内的所需容器中。veth对是一种可以在容器内使用的类似以太网的虚拟设备。图3示出了Docker中的内部布置。如图3所示,每个生成的/实例化的容器都使用veth对连接到Linux网桥。veth对的容器端称为eth0,Linux网桥侧的veth对称为vethxx,如vethab或vethbb。主机与Linux网桥之间连接了类似的veth对。如通常已知的那样,网桥在层2(Layer2,L2)操作并且独立于协议。L2网络层负责物理寻址、纠错和为介质准备信息。网桥是以独立于协议的方式将两个独立的网段连接在一起的一种方式。数据包基于以太网地址而不是IP地址(例如路由器)转发。转发是在层2(Layer2,L2)完成的,因此所有协议都可以通过网桥透传。所有网络流量都经过Linux网桥或配置的其它网桥,如OpenVSwitch(OVS)。使用IP表(如图3所示),以便可以将每个容器端口映射到主机端口。每个产生的/实例化的IP地址在每次容器重启时都会改变,这也会带来问题,因为一个容器中的业务必须获取用来访问这些业务的新IP地址。图4示出了叠加网络或L2/L3方案中的通信。叠加网络是建立在另一网络之上的计算机网络。叠加网络中的节点可以视为通过虚拟或逻辑链路连接,其中每个链路对应于底层网络中一个路径,该路径可能穿过许多物理链路。基于L2的方案意味着从类似虚拟以太网的设备捕获L2帧,然后通过TCP/UDP/SecureTCP等其它传输机制发送这些帧。图4示出了如现有技术中可用的在以太网级(虚拟以太网设备)捕获数据包,然后通过TCP/UDP等传输来发送数据包的方法。这称为叠加网络或L2/L3方案。然而,图4所示的方法存在与网络效率和操作复杂性相关的问题。网络效率非常低,因为数据在L2(网络栈的层2)被捕获,然后重新封装以将其发送到正确的目的地或通过网桥路由。多主机网络中的L2方案会引起配置错误等操作问题,需要网络专家调测。图5示出了跨两个主机的消息交换的细节。如图5(a)所示:发送方应用(application,App)创建一个到目的地的套接字,发送方应用格式化数据并使用套接字接口发送消息,内核的TCP/IP栈进一步进行处理并发送给网卡。在接收App侧,网卡接收数据,转发到TCP/IP栈,TCP/IP栈又发送给App。当将轻量级虚拟机的默认网络模式用作使用叠加网络的传统模式时,上述图5(a)所执行的步骤需要进一步处理,从而需要额外的CPU和存储器,如图5(b)所示,进而影响网络性能。因此,鉴于以上所述,显而易见的是,当使用轻量级虚拟机时,计算和存储能力的性能不会受到影响,但是网络能力的性能受到严重限制。现今在终端设备中实现的轻量级虚拟机的上述缺陷仅仅是为了概述传统系统/机制/技术的一部分问题,是非详尽的。传统系统/机构/技术的其它问题以及本文描述的各种非限制性实施例的相应益处在阅读以下描述时可变得更加明显。
技术实现思路

技术实现思路
用于介绍与改善轻量级虚拟机中网络能力的性能有关的概念,在下文的详细描述中进一步描述了这些概念。本
技术实现思路
并非旨在确认所要求保护的主题的基本特征,也并非旨在帮助确定或限制所要求保护的主题的范围。本专利技术的主要目的在于提供一种机制来提高网络能力的性能,具体地为容器/轻量级虚拟机的性能,从而解决上述技术问题。因此,本专利技术提供一种允许跨容器/轻量级虚拟机进行通信的应用级交叉开关。所述应用级交叉开关或软件交叉开关或软件定义开关为应用层提供统一的通信接口,抽象了连接管理以及消息发送和接收的细节。软件定义开关/应用级交叉开关利用域套接字可以用于连接网络空间而不影响对主机内消息交换的隔离这一点,提高了主机内虚拟机的消息交换性能。在一实施方式中,软件交叉开关/应用级交叉开关/软件定义开关是能够为应用传送数据的软件开关。应用是从连接管理抽象而来的。在一实施方式中,本专利技术提供一种通信系统中的节点。所述节点包括处理器以及存储器,所述存储器耦合到所述处理器,所述处理器用于执行存在于所述存储器中的多个模块。所述多个模块包括至少一个接口模块和至少一个处理模块。所述接口模块用于发送和/或接收至少一个消息/数据包,接口由驻留在所述节点中的至少一个应用初始化。所述处理模块用于向所述通信系统中的一个或多个其它节点提供至少一个连接管理以实现统一通信,所述连接管理基于以下至少一项而获得:IP地址、共享存储器密钥、公用通信端口,以及它本文档来自技高网
...

【技术保护点】
1.一种通信系统中的节点,其特征在于,所述节点包括:处理器;存储器,其耦合到所述处理器,所述处理器用于执行存在于所述存储器中的多个模块,所述多个模块包括:至少一个接口模块,用于发送和/或接收至少一个消息/数据包,接口由驻留在所述节点中的至少一个应用初始化;以及至少一个处理模块,用于向所述通信系统中的一个或多个其它节点提供至少一个连接管理以实现统一通信,所述连接管理基于以下至少一项而获得:IP地址、共享存储器密钥、公用通信端口,以及它们的任意组合。

【技术特征摘要】
【国外来华专利技术】2016.05.26 IN 2016410181371.一种通信系统中的节点,其特征在于,所述节点包括:处理器;存储器,其耦合到所述处理器,所述处理器用于执行存在于所述存储器中的多个模块,所述多个模块包括:至少一个接口模块,用于发送和/或接收至少一个消息/数据包,接口由驻留在所述节点中的至少一个应用初始化;以及至少一个处理模块,用于向所述通信系统中的一个或多个其它节点提供至少一个连接管理以实现统一通信,所述连接管理基于以下至少一项而获得:IP地址、共享存储器密钥、公用通信端口,以及它们的任意组合。2.根据权利要求1所述的节点,其特征在于,所述接口模块还用于将与所述应用相关联的所述消息/数据包排到至少一个共享存储器内的至少一个队列中。3.根据权利要求1和2所述的节点,其特征在于,所述处理模块还用于:提取所述队列中与所述应用相关联的所述消息/数据包,以及验证所述消息/数据包的目的地,所述目的地为同一节点、不同节点或其任意组合。4.根据权利要求3所述的节点,其特征在于,如果所述消息/数据包的所述目的地为同一节点,则所述处理模块还用于在所述同一节点中创建/使用开放域套接字连接。5.根据权利要求3所述的节点,其特征在于,如果所述消息/数据包的所述目的地为不同节点,则所述处理模块还用于基于所述目的地的IP地址传送所述消息/数据包。6.根据权利要求5所述的节点,其特征在于,基于所述IP地址的所述消息/数据包使用预定义/预配置且预存储在所述处理模块中的至少一个路由来传送,所述路由遵循TCP传送机制。7.根据权利要求1所述的节点,其特征在于,改善了容器/轻量级虚拟机的网络性能。8.根据权利要求1所述的节点,其特征在于,提供了统一的通信接口。9.根据权利要求1所述的节点,其特征在于,改善了所述通信系统的网络能力的性能。10.根据权利要求1所述的节点,其特征在于,所述处理模块用于在不影响对主机内消息交换的隔离的情况下,使用域套接字来连接网络空间。11.根据权利要求1所述的节点,其特征在于,与所述其它节点相关联的IP地址、共享存储器密钥、公用通信端口或它们的任意组合被预存储/预配置在所述节点的所述存储器中。12.根据权利要求1所述的节点,其特征在于,优选地,为轻量级虚拟机。13.一种通信系统中的节点,其特征在于,所述节点包括:处理器;存储器,其耦合到所述处理器,所述处理器用于执行存在于所述存储器中的多个模块,所述多个模块包括:至少一个交叉开关处理模块,用于:使用至少一个交叉开关库接口接收由驻留在所述节点中的至少一个应用初始化的至少一个消息/数据包;验证所述消息/数据包的目的地,所述目的地为同一节点、不同节点或其任意组合;如果所述消息/数据包的所述目的地为同一节点,则在所述同一节点中创建/使用开放域套接字连接;或者基于在所述消息/数据包中接收的一个或多个其它节点的IP地址将所述消息/数据包传送到所述其它节点,所述其它节点包括轻量级虚拟机进程。14.根据权利要求13所述的节点,其特征在于,所述接收的消息/数据包存储在至少一个共享存储器内的至少一个队列中。15.根据权利要求13和14所述的节点,其特征在于,所述交叉开关处理模块还用于提取存储在所述队列中的关联消息/数据包,从而验证所述消息/数据包的所述目的地。16.根据权利要求13所述的节点,其特征在于,使用预定义/预配置且预存储在所述交叉开关处理模块中的至少一个路由将所述消息/数据包传送到所述其它节点,所述路由遵循TCP传送机制。17.根据权利要求13所述的节点,其特征在于,所述交叉开关处理模块还用于与所述通信系统中的所述其它节点建立连接,所述其它节点优选地包括轻量级虚拟机进程,所述连接基于以下至少一项而获得:IP地址、共享存储器密钥、公用通信端口,以及它们的任意组合。18.根据权利要求13所述的节点,其特征在于,改善了容器/轻量级虚拟机的网络性能。19.根据权利要求13所述的节点,其特征在于,所述通信系统中的所述其它节点在接收到所述消息/数据包后,用于:基于所述接收的消息/数据包处理新的连接请求;或者基于所述接收的消息/数据包创建至少一个数据结构;更新预定义/预配置且预存储在所述交叉开关处理模块中的路由,优选地,所述路由基于所述接收的消息/数据包通过网关IP、IP掩码或其任意组合的映射进行更新;扫描所述接收的消息/数据包以检索合适的套接字句柄;从而如果所述消息/数据包的所述目的地为同一节点,则在所述同一节点中创建/使用开放域套接字连接;或者基于在所述消息/数据包中接收的所述一个或多个其它节点的所述IP地址将所述消息/数据包传送到所述其它节点。20.一种通信系统,其特征在...

【专利技术属性】
技术研发人员:拉各韦卓·克沙瓦穆西
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1