CN106209563A - 一种云计算平台网络虚拟化实现方法及相应插件和代理 - Google Patents
一种云计算平台网络虚拟化实现方法及相应插件和代理 Download PDFInfo
- Publication number
- CN106209563A CN106209563A CN201610637138.1A CN201610637138A CN106209563A CN 106209563 A CN106209563 A CN 106209563A CN 201610637138 A CN201610637138 A CN 201610637138A CN 106209563 A CN106209563 A CN 106209563A
- Authority
- CN
- China
- Prior art keywords
- switch
- cloud computing
- computing platform
- server
- network virtualization
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种网络虚拟化的实现方法及其相应的插件和代理。该方法实现网络虚拟化的系统包括服务器、插件和代理:服务器可以是一个或多个节点;插件向云计算平台提供网络虚拟化服务;代理负责铺设二层网络、修改交换机网桥配置、搜集网络信息、负载均衡等工作。本发明公开一种使用带序列号的信息解决由于使用负载均衡节点和DHT带来的新的数据一致性问题。本发明还公开一种以键值对方式存储路由信息的方法,它将键值对及其副本,存储在多个存储设备上。
Description
技术领域
本发明涉及云计算平台技术领域,尤其涉及网络虚拟化的实现方法及其相应的插件和代理。
背景技术
现在的云计算平台架构主要有两种,一种是以数据存储为主的云平台,比如Hadoop;一种是以计算为主的云平台,比如AWS和Openstack。
以计算为主的云平台扩展了虚拟化技术和容器技术。使得现代云计算平台体现出以下特性:按需分配,用户自服务;宽带网络连接;资源池化;快速的弹性伸缩;可测量的服务。
服务器的虚拟化抽象了CPU,内存,网卡等资源,使其不依赖于物理硬件。与之类似,网络虚拟化抽象了网络,路由器等网络资源,使逻辑网络和物理网络解耦,各自可以独立的演化。
服务器虚拟化和网络虚拟化带来的好处是,提高硬件使用效率,提升运维自动化程度,提高网络服务开发速度。
云计算平台不一定需要网络虚拟化,但是网络虚拟化可以丰富云计算平台的功能。
云计算平台网络虚拟化刚出现时是以插件的形式。架构上通常采取主从的架构,一个网络虚拟化服务器节点,通过多个计算节点上的代理搜集和处理网络信息。这样的架构在集群规模扩大时,使得服务器节点成为瓶颈。后来为了解决瓶颈问题,出现了一些多节点服务器的方案,比如Openstack的Neutron DVR,但是在多个服务器节点之间,容易出现不平衡的问题。
一些通过SDN实现网络虚拟化的方案也存在单节点瓶颈问题,比如Openstack的Neutron floodlight插件、NEC插件或者Dragonflow插件的单控制器方式。 Dragonflow支持分布式控制器的方式,在每个计算节点上部署一个控制器。这种方式解决了单节点瓶颈问题,但是也存在一些其他问题:1、SDN控制器数量的多少应该由控制器的负载大小决定。实际需要的控制器节点数量可能大于计算节点数量也可能少于计算节点数量,将控制器部署在每个计算节点上使得控制器节点的数量不能自由改变。2、每个控制节点承担本地计算节点虚拟机的网络负载,各个计算节点之间负载常常是不平衡的。控制器节点之间应该能动态的负载平衡。
发明内容
本发明提供一种云计算平台网络虚拟化实现方法及相应插件和代理。本方法没有单节点瓶颈的问题,而且解决了多个服务器节点之间不平衡的问题。
云计算平台的计算节点上存在多个的虚拟机或者容器,这些虚拟机或者容器可能属于同一个租户也可能属于不同的租户,可能属于同一个网络也可能属于不同的网络。为了在虚拟机或容器之间建立数据链路存在两种方式。
方式一:如果连接虚拟机和容器的是可编程交换机,则需要:
在任意两个虚拟机或容器之间建立二层连接,在计算节点上安装虚拟交换机,比如OpenVSwitch,所有的虚拟机和容器要连接到虚拟交换机。
各个计算节点之间要存在三层连接,所有的虚拟路由器连接到这个三层网络上。
通过大二层技术在,使得任意两个虚拟机或者容器之间存在二层连接。
服务器通过设置可编程交换机对数据包的修改或转发规则,在任意两个虚拟机或容器之间连接。虚拟网络之间的隔离通过vlan实现。这种方式下服务器的负担较轻。
方式二:如果连接虚拟机、容器的是不可编程的交换机或者网桥,虚拟机的数据包全部发给服务器,并通过服务器修改或转发给目标。虚拟网络之间的隔离也是通过vlan实现。这种方式下,服务器的负担较重,但是对交换机的要求较低。
数据中心的网络流量通常分为东西流向和南北流向。东西流向指的是数据中心内主机之间的流量。南北流向指的是数据中心与外部的数据流量。在使用可编程的交换机时,东西流量不经过服务器,南北流量实现NAT转换有两种方法:
方法一:流量经过服务器。服务器对数据包做NAT转换,然后转发给网关。服务器可以根据SOURCE IP、VLAN ID、TUNNEL ID和交换机ID区分数据包的来源,所以允许虚拟网络之间共享IP地址空间;
方法二:流量不经过服务器。计算节点上的可编程交换机完成NAT转换,然后将数据包直接转发给网关。
本发明通过插件的方式向云计算平台提供网络虚拟化服务,比如虚拟网络、虚拟路由器等。插件负责将云计算平台的网络虚拟化服务请求转换和转发给服务器。
本发明通过在计算节点上的代理完成网络虚拟化必须的工作,比如铺设二层网络、修改交换机配置、搜集网络信息等。在有多个服务器时,代理还负责在多个服务器之间做负载均衡。每个代理维护一系列的负载均衡参数。负载均衡参数包括多个服务器的地址、活跃状态、负载状态。为了支持按照数据包的内容分配流量,负载均衡参数还应该包括数据包相关的参数,比如VLAN ID、IP地址、MAC地址等。代理根据预先设定的负载均衡策略和实时的负载均衡参数,将交换机的请求转发给服务器。
当使用可编程交换机时,比如OpenVSwitch,本发明为了使控制器识别来自某一个交换机的信息发出的先后次序,需要为交换机发往控制器的信息添加序列号。
本发明为交换机发出的信息添加序列号的方法是为交换机添加一种序列号匹配规则。交换机需要为每个需要序列号的规则存储并维护一个序列号,当数据包匹配规则成功时,将信息某一个字段赋值为序列号,并将序列号加1,然后才将信息发往控制器。这个字段可以是Openflow协议已经规定的字段,比如metadata或者cookie,也可以是通过扩展Openflow协议新添加的字段,比如一个新的sequence_number字段。
例如,在OpenVSwitch上,可以通过如下命令添加匹配规则:ovs-ofctl addflowbr0 “{match rules},metadata=sequence,action=controller” 。{match rules}是匹配规则;metadata=sequence不参与匹配,只是标明规则匹配成功时metadata需要被设为当前的序列号,并将序列号加1;action=controller指明信息将要发往控制器。为了简化,匹配规则也可以如下的方式实现,交换机保留某些数值作为序列号的标志。撰写匹配规则时,可以用这些保留的数值代替sequence,比如metadata=0xffffffffffffffff。交换机遇到metadata=0xffffffffffffffff的流就会将metadata字段设为当前的序列号,并将序列号加1。Action可以是controller也可以是任何其他交换机支持的动作。
目前SDN交换机不支持metadata=sequence这样地规则,也不支持为规则维护和存储序列号。需要对交换机的实现作出更改,才能实现本发明提出的功能。本发明用到的添加序列号匹配规则的方法可以在包括虚拟交换机OpenVSwitch的SDN交换机上实现。
控制器的前端节点需要为来自同一个交换机的带序列号的相同匹配规则的流建立一个分布式队列。控制器收到交换机发送的带有序列号的信息并不直接处理信息而是将信息添加到队列尾端。控制器可以订阅任意一个队列,但是每个队列在任意时刻都只能有一个订阅者。这样是为了保证任意时刻只有一个控制器在处理一个队列的消息。控制器要为每一个队列维护一个最大序列号值。控制器收到从队列订阅的信息时,先比较信息的序列号和维护的最大序列号。如果信息的序列号小于最大序列号,则不对信息进行处理。
队列的消息订阅者可以改变。改变消息订阅者的方式有两种,主动式和被动式。主动式是指订阅消息的控制器节点在繁忙时可以主动放弃订阅消息,改由其他控制器节点继续处理队列消息。被动式是指队列的订阅者由于系统崩溃或网络故障等原因不能继续处理队列消息,系统发现当前订阅者无法继续处理消息而选择另一个控制节点作为新的订阅者。
当被动式订阅者切换发生时,为了避免因为控制节点崩溃丢失最大序列号和消息,控制器节点处理消息和更新最大序列号的动作应该保持原子性(Atomic)。
本系统实现原子性的方法是使用一个预写式日志(Write-Ahead Logging)。控制节点在处理消息之前,先将最大序列号、消息和处理消息需要执行的动作以及回滚动作写入一个日志中。如果一个订阅者在处理消息过程中发生故障,另一个订阅者可以检查日志以决定是继续处理还是回滚。为了保障日志的存储安全性,日志应该有多个备份。
网络虚拟化服务器以键值对的方式存储路由信息,比如根据虚拟网络ID和IP查找MAC地址等。存储键值对的数据库可以是一个也可以是多个存储设备。
每一个键值对的键都是唯一的,每一个键值对都有一个或多个副本,每一个副本都有一个副本号。键值对的副本数是指有多少条等同的键值对存储在所有存储节点上。如果一个键值对的副本数是n,第一个副本的副本号是1,第二个副本的副本号是2,以此类推。副本有提高数据的安全性和可用性的作用。
服务器根据键和副本号选择存储节点。在一个键值对有多个副本时,一个键值对的多个副本可能会选择同一设备,这种情况叫做冲突。在存储设备多于副本数时,如果存储策略不允许有冲突,则为冲突的副本选择n+1为新的副本号,如果仍然有冲突,则选择n+2为新的副本号,以此类推直到没有冲突为止。程序在读键值对时只需读一个副本,但是在写入时需要修改所有的副本。
附图说明
图1是本发明多节点软件定义网络控制器系统的总体架构图。
图2是本发明多节点软件定义网络控制器系统中发送和处理带序列号的消息的流程图。
Claims (9)
1.一种云计算平台网络虚拟化实现方法及相应插件和代理,其特征在于实现网络虚拟化的系统包括服务器、插件和代理:服务器可以是一个或多个节点;插件向云计算平台提供网络虚拟化服务;代理负责铺设二层网络、修改交换机网桥配置、搜集网络信息等工作。
2.如权利要求1所述云计算平台网络虚拟化实现方法,其特征在于,有两种在任意虚拟机和容器之间建立数据链路的方法:
方法一:使用可编程交换机;各个计算节点之间建立三层连接,所有的虚拟路由器连接到这个三层网络上;通过大二层技术在,使得任意两个虚拟机或者容器之间存在二层连接;服务器通过设置可编程交换机对数据包的修改或转发规则,在任意两个虚拟机或容器之间连接;通过VLAN实现虚拟网络之间的隔离;
方法二:使用不可编程的交换机或网桥;虚拟机的数据包全部发给服务器,并通过服务器修改或转发给目标;虚拟网络之间的隔离也是通过vlan实现。
3.如权利要求1所述云计算平台网络虚拟化实现方法,其特征在于,有两种方法实现云计算数据中心与外界通讯的NAT转换:
方法一:流量经过服务器时,服务器对数据包做NAT转换,然后转发给网关;
方法二:流量不经过服务器时,计算节点上的可编程交换机完成NAT转换,然后将数据包直接转发给网关。
4.如权利要求1所述云计算平台网络虚拟化实现方法,其特征在于,它可以部署一个或多个控制器代理节点来代理交换机向控制器发出的请求,并按照预先设定的负载均衡策略在多个控制器之间进行负载均衡。
5.权利要求1所述的云计算平台网络虚拟化实现方法,其特征在于,使用一种支持序列号的交换机或虚拟交换机。
6.权利要求5所述的支持序列号的交换机或虚拟交换机,其特征在于,能够为匹配规则建立并维护一个序列号变量。
7.权利要求5所述的支持序列号的交换机或虚拟交换机,其特征在于能够匹配收到的数据包,并按照匹配规则决定是否将序列号加1,或者是否发送一种携带序列号的信息。
8.权利要求1所述的云计算平台网络虚拟化实现方法,其特征在于,控制器节点处理带有序列号的信息有以下步骤:
步骤一、收到带有序列号的信息后,并不立即处理,而是将其添加到一个相应的分布式队列;
步骤二、任意时间只有一个控制器节点订阅这个队列;
步骤三、订阅队列的控制器节点收到消息后,将消息的序列号与保存的最大序列号值比较,如果消息序列号小于最大序列号,则丢弃此消息不做处理;
步骤四、控制器节点处理消息之前先将执行的动作和回滚动作写入一个日志,如果这个控制器节点在处理消息过程中故障,系统将分派新的控制器节点为订阅者,新的订阅者将根据系统状态和日志决定是继续处理还是回滚。
9.如权利要求1所述云计算平台网络虚拟化实现方法,其特征在于,以键值对的方式存储路由信息;键值对存储在一个或多个存储设备上;每一个键值对可以有一个或多个副本,每个副本有一个的副本号;根据键和副本号选择存储设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610637138.1A CN106209563A (zh) | 2016-08-07 | 2016-08-07 | 一种云计算平台网络虚拟化实现方法及相应插件和代理 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610637138.1A CN106209563A (zh) | 2016-08-07 | 2016-08-07 | 一种云计算平台网络虚拟化实现方法及相应插件和代理 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106209563A true CN106209563A (zh) | 2016-12-07 |
Family
ID=57497791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610637138.1A Pending CN106209563A (zh) | 2016-08-07 | 2016-08-07 | 一种云计算平台网络虚拟化实现方法及相应插件和代理 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106209563A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108494657A (zh) * | 2018-04-08 | 2018-09-04 | 苏州云杉世纪网络科技有限公司 | 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法 |
CN108900509A (zh) * | 2018-06-29 | 2018-11-27 | 华中科技大学 | 一种基于可编程网络设备的副本选择器 |
CN110061921A (zh) * | 2019-04-17 | 2019-07-26 | 北京云杉世纪网络科技有限公司 | 一种云平台数据包分发方法及系统 |
CN110580198A (zh) * | 2019-08-29 | 2019-12-17 | 上海仪电(集团)有限公司中央研究院 | OpenStack计算节点自适应切换为控制节点的方法及装置 |
CN110875888A (zh) * | 2018-08-30 | 2020-03-10 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN111970199A (zh) * | 2020-08-24 | 2020-11-20 | 浪潮云信息技术股份公司 | 一种提升openstack dvr模式下虚机网络性能的实现方法 |
CN113098728A (zh) * | 2019-12-23 | 2021-07-09 | 华为技术有限公司 | 负载均衡系统的健康检查方法及相关设备 |
CN116095145A (zh) * | 2023-01-04 | 2023-05-09 | 北京志凌海纳科技有限公司 | 一种vpc集群的数据控制方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634952A (zh) * | 2015-07-29 | 2016-06-01 | 杭州华三通信技术有限公司 | Lsp报文快速通告方法以及装置 |
CN105681193A (zh) * | 2016-03-02 | 2016-06-15 | 付宏伟 | 一个软件定义网络控制器系统 |
CN105791402A (zh) * | 2016-03-02 | 2016-07-20 | 付宏伟 | 一种云计算平台网络虚拟化实现方法及相应插件和代理 |
-
2016
- 2016-08-07 CN CN201610637138.1A patent/CN106209563A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105634952A (zh) * | 2015-07-29 | 2016-06-01 | 杭州华三通信技术有限公司 | Lsp报文快速通告方法以及装置 |
CN105681193A (zh) * | 2016-03-02 | 2016-06-15 | 付宏伟 | 一个软件定义网络控制器系统 |
CN105791402A (zh) * | 2016-03-02 | 2016-07-20 | 付宏伟 | 一种云计算平台网络虚拟化实现方法及相应插件和代理 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108494657A (zh) * | 2018-04-08 | 2018-09-04 | 苏州云杉世纪网络科技有限公司 | 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法 |
CN108494657B (zh) * | 2018-04-08 | 2020-08-28 | 苏州云杉世纪网络科技有限公司 | 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法 |
CN108900509B (zh) * | 2018-06-29 | 2020-06-02 | 华中科技大学 | 一种基于可编程网络设备的副本选择器 |
CN108900509A (zh) * | 2018-06-29 | 2018-11-27 | 华中科技大学 | 一种基于可编程网络设备的副本选择器 |
CN110875888B (zh) * | 2018-08-30 | 2022-08-19 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN110875888A (zh) * | 2018-08-30 | 2020-03-10 | 中国电信股份有限公司 | 实现网络资源按需处理的方法、装置和云管理系统 |
CN110061921A (zh) * | 2019-04-17 | 2019-07-26 | 北京云杉世纪网络科技有限公司 | 一种云平台数据包分发方法及系统 |
CN110580198A (zh) * | 2019-08-29 | 2019-12-17 | 上海仪电(集团)有限公司中央研究院 | OpenStack计算节点自适应切换为控制节点的方法及装置 |
CN113098728A (zh) * | 2019-12-23 | 2021-07-09 | 华为技术有限公司 | 负载均衡系统的健康检查方法及相关设备 |
CN113098728B (zh) * | 2019-12-23 | 2023-12-19 | 华为云计算技术有限公司 | 负载均衡系统的健康检查方法及相关设备 |
CN111970199A (zh) * | 2020-08-24 | 2020-11-20 | 浪潮云信息技术股份公司 | 一种提升openstack dvr模式下虚机网络性能的实现方法 |
CN116095145A (zh) * | 2023-01-04 | 2023-05-09 | 北京志凌海纳科技有限公司 | 一种vpc集群的数据控制方法和系统 |
CN116095145B (zh) * | 2023-01-04 | 2023-08-04 | 北京志凌海纳科技有限公司 | 一种vpc集群的数据控制方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106209563A (zh) | 一种云计算平台网络虚拟化实现方法及相应插件和代理 | |
CN105264865B (zh) | 用于分布负载平衡的方法和分布负载平衡器系统 | |
US9602415B2 (en) | Flow based network service insertion | |
CN105308931B (zh) | 分布负载平衡器系统和负载平衡方法 | |
CN105791402B (zh) | 一种云计算平台网络虚拟化实现方法及相应插件和代理 | |
EP2961109B1 (en) | Method and system for implementing a vxlan control plane | |
CN105308930B (zh) | 分布负载平衡器中的连接发布 | |
CN105049361B (zh) | 针对虚拟网络分组流的物理路径确定 | |
Li et al. | Scaling IP multicast on datacenter topologies | |
CN105308929A (zh) | 分布负载平衡器 | |
JP2017118575A (ja) | データネットワークにおける負荷分散 | |
CN109905251A (zh) | 网络管理方法、装置、电子设备和存储介质 | |
CN107925633A (zh) | 数据中心资源跟踪 | |
CN105224385A (zh) | 一种基于云计算的虚拟化系统及方法 | |
CN103338252A (zh) | 一种分布式数据库并发存储虚拟请求机制 | |
CN104486402A (zh) | 一种基于大型网站组合均衡的方法 | |
CN105577723A (zh) | 虚拟化网络中实现负载分担的方法和装置 | |
CN106850459A (zh) | 一种实现虚拟网络负载均衡的方法及装置 | |
CN113014611B (zh) | 一种负载均衡方法及相关设备 | |
CN108965134B (zh) | 报文转发方法及装置 | |
CN106210123A (zh) | 一个多节点的软件定义网络控制器系统 | |
CN110636036A (zh) | 一种基于SDN的OpenStack云主机网络访问控制的方法 | |
CN106547790A (zh) | 一种关系型数据库服务系统 | |
CN103140851B (zh) | 包括中间件机环境的系统 | |
CN107682265B (zh) | 支付系统的报文路由方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |
|
RJ01 | Rejection of invention patent application after publication |