WO2021143026A1 - 流表更新方法、装置、系统、计算机设备及存储介质 - Google Patents
流表更新方法、装置、系统、计算机设备及存储介质 Download PDFInfo
- Publication number
- WO2021143026A1 WO2021143026A1 PCT/CN2020/093595 CN2020093595W WO2021143026A1 WO 2021143026 A1 WO2021143026 A1 WO 2021143026A1 CN 2020093595 W CN2020093595 W CN 2020093595W WO 2021143026 A1 WO2021143026 A1 WO 2021143026A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- flow table
- controller
- data
- cloud host
- cloud
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
一种基于云环境的流表更新方法、装置、系统、计算机设备及计算机可读存储介质。将进行全活工作的控制器由一台扩展为多台,多台控制器之间通过预设方式同步更新云主机流表的数据,以使每台控制器上的云主机流表的数据完全一致,每台物理机按照随机方式从任一台控制器中拉取云主机流表的数据,以使每台物理机上全量保存云主机流表,控制器及物理机等每个计算节点分别判断是否接收到更新云主机流表的指令,若接收到更新云主机流表的指令,每个计算节点根据各自全量保存的云主机流表的数据,各自进行流表计算,以实现各自计算节点上云主机流表的快速更新,提高了云主机变动的效率。
Description
本申请要求于2020年1月14日提交中国专利局,申请号为2020100367919、发明名称为“流表更新方法、装置、系统、计算机设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及云监控技术领域,尤其涉及一种基于云环境的流表更新方法、装置、系统、计算机设备及计算机可读存储介质。
在云计算环境中,VPC(英文为Virtual Private Cloud,指虚拟私有云,于公有云中用于网络隔离)一般采用分布式架构,这样当云主机(即虚拟主机,也称为虚拟机)进行迁移时需要考虑整个VPC状态。目前的公有云厂商或者开源方案,分布式VPC内云主机迁移需要经过大量的云主机位置和计算节点的位置计算。其中,虚拟机迁移是指虚拟机到虚拟机的迁移(Virtual-to-Virtual,简称V2V),V2V迁移是在虚拟机之间移动操作系统和数据,照顾主机级别的差异和处理不同的虚拟硬件。例如,VPC采用OVN(英文为Open Virtual Network,指开放虚拟网络)管理,发明人意识到,当虚拟机迁移时,会带来两方面的性能问题:
首先,当迁移虚拟机的时候,需要经过大量的流表转换以及云主机位置的计算,会非常消耗控制器的计算能力,控制器会存在性能瓶颈,特别是当发生大量的虚拟机迁移的时候,控制器可能会无法及时计算与分发流表。
其次,在计算完成之后,还需要把这些流表推送到所有的物理机上去,非常消耗通信带宽,从而造成云主机迁移效率较低。
因此,传统技术中,处理虚拟私有云包含的云主机迁移时,会由于流表的大量更新导致云主机迁移时数据更新效率不高。
发明内容
本申请实施例提供了一种基于云环境的流表更新方法、装置、系统、计算机设备及计算机可读存储介质,能够解决传统技术中云主机迁移等云主机变动时数据更新效率较低的问题。
第一方面,本申请实施例提供一种基于云环境的流表更新方法,应用于云环境下的控制器上,所述方法包括:云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
第二方面,本申请实施例提供了一种基于云环境的流表更新方法,应用于云环境下的物理机上,所述云环境还包含控制器群组,所述控制器群组中的所有控制器之间按照第一预设时间周期且通过预设方式同步更新所述云主机流表的数据,以使每台所述控制器上的所述云主机流表的全量数据保持一致,其中,所述全量数据指所述云主机流表中的所有数据,所述方法包括:云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
第三方面,本申请实施例还提供了一种基于云环境的流表更新装置,包括用于执行应用于云环境下控制器上的所述基于云环境的流表更新方法的单元,或者用于执行应用于云 环境下物理机上的所述基于云环境的流表更新方法的单元。
第四方面,本申请实施例还提供了一种基于云环境的流表更新系统,云环境包括控制器端以及物理机端,其中,所述控制器端包含的每台控制器用于执行应用于云环境下控制器上的所述基于云环境的流表更新方法的步骤,所述物理机端包含的每台物理机用于执行应用于云环境下物理机上的所述基于云环境的流表更新方法的步骤。
第五方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器上存储有计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,所述处理器执行所述计算机程序时实现:
云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据;
判断是否接收到更新所述云主机流表的指令;
若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
第六方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器上存储有计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,所述处理器执行所述计算机程序时实现:
云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据;
判断是否接收到更新所述云主机流表的指令;
若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
第七方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行应用于云环境下控制器上的所述基于云环境的流表更新方法的步骤,或者执行应用于云环境下物理机上的所述基于云环境的流表更新方法的步骤。
本申请实施例可以提高控制器节点的性能和扩展能力,提高云主机迁移等云主机变动的完成效率,实现了云主机快速迁移等云主机变动的快速更新。
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的基于云环境的流表更新方法的应用场景示意图;
图2为本申请实施例提供的基于云环境的流表更新方法的一个流程示意图;
图3为本申请实施例提供的基于云环境的流表更新方法的另一个流程示意图;
图4为本申请实施例提供的基于云环境的流表更新系统中流表更新方法的一个交互流程示意图;
图5为本申请实施例提供的基于云环境的流表更新装置的一个示意性框图;
图6为本申请实施例提供的基于云环境的流表更新装置的另一个示意性框图;
图7为本申请实施例提供的计算机设备的示意性框图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请 中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
请参阅图1,图1为本申请实施例提供的基于云环境的流表更新方法的应用场景示意图。所述应用场景包括:
(1)控制器,英文为Controller,指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置,例如可以为云控制器。在本申请实施例中,控制器进行横向扩展,由一台控制器扩展为多台控制器,例如图1中包括控制器1、控制器2及控制器3等三台控制器,控制器之间通过同步技术同步彼此的数据,例如控制器之间通过组播方式同步彼此的数据。
(2)物理机,指物理机器,又称指服务器,指放在机房运行的真实存在的物理设备,有独立的硬盘、内存、CPU、操作系统等,是相对于云主机而言,云主机,又称为云服务器,其英文为Elastic Compute Service,简称为ECS,又可以称为Cloud Server,是指基于云计算的服务器,是在一组集群服务器(物理机)上虚拟出多个类似独立服务器的部分,集群中的每台机器都会有云主机的一个镜像备份,物理机包括物理机1和物理机2,物理机1上有流表接收器1,物理机2上有流表接收器2,物理机1为计算节点1,物理机2为计算节点2,物理机与控制器进行连接,物理机1和物理机2等每台计算节点按照随机方式从控制器1、控制器2或者控制器3中拉取数据,其中,由于物理机1和物理机2等每台计算节点按照随机方式可以从控制器1、控制器2或者控制器3中任一台控制器中拉取数据,因此,图1中用带箭头的实线描述物理机从该控制器上拉取数据,用带箭头的虚线描述物理机也可以从该控制器上拉取数据,以表明一台物理机一次拉取数据是从三台控制器中的一台控制器拉取数据,并不是从控制器1、控制器2或者控制器3中同时拉取数据。
(3)虚拟私有云,包括虚拟私有云1(即VPC1)和虚拟私有云2(即VPC2)。其中,VPC1包括云主机1、云主机2、云主机5及云主机6,云主机1及云主机2在物理机1上,云主机5及云主机6在物理机2上,VPC2包括云主机3、云主机4、云主机7及云主机8,云主机3及云主机4在物理机1上,云主机7及云主机8在物理机2上。
图1中的各个主体工作过程如下:控制器进行横向扩展,由一台控制器扩展为多台控制器,即控制器1、控制器2及控制器3,控制器1、控制器2及控制器3之间按照第一预设时间周期,通过预设方式,例如通过组播技术同步更新所有云主机流表的配置及状态数据,以使控制器1、控制器2及控制器3每台控制器上的数据完全一致。物理机1和物理机2等每台计算节点以第二预设时间周期按照随机方式从控制器1、控制器2或者控制器3中拉取增量更新的VPC以及云主机之间的信息等云主机流表的数据,以使物理机1和物理机2等每台计算节点上全量保存云主机流表。控制器1、控制器2、控制器3、物理机1及物理机2等每台计算节点分别各自判断是否接收到更新所述云主机流表的指令,若每台计算节点分别各自接收到更新所述云主机流表的指令,每台计算节点分别根据所述云主机流表的全量数据,各自进行流表计算以实现各自计算节点上所述云主机流表的更新。
需要说明的是,上述基于云环境的流表更新方法的应用场景仅仅用于说明本申请技术方案,并不用于限定本申请技术方案。如大数据领域中涉及到多主机间的流表同步的相关场景,智慧城市领域中如智慧政务、智慧交通、智慧生活以及物联网等方面涉及到流表同步的众多场景,具体可基于实际应用场景确定,在此不做限制。此外,上述连接关系还可以有其它形式。
图2为本申请实施例提供的基于云环境的流表更新方法的一个示意性流程图。该基于 云环境的流表更新方法应用于图1中云环境下的控制器中,以完成基于云环境的流表更新方法的全部或者部分功能。
请参阅图2,图2是本申请实施例提供的基于云环境的流表更新方法的一个流程示意图。如图2所示,该方法包括以下步骤S201-S204:
S201、云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据。
其中,预设方式包括单播方式、组播方式或者广播方式等同步技术。
具体地,首先针对云环境下的控制器节点,将全活工作的集中式单台控制器进行横向扩展为每台控制器都能进行全活工作的多台控制器,从而将控制器节点形成控制器节点组,或者称为控制器集群,例如可以使用三台控制器作为控制器节点组。由于每台控制器分别处理不同的云数据,每台控制器各自产生的云主机流表的数据不会相同,控制器之间通过同步技术使多台控制器之间同步更新各自的配置及状态数据,以使每台控制器上的云主机流表数据完全一致,即云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,再进一步配合且进一步只有配合包含每台物理机在内的每个计算节点上均全量保存云主机流表这一条件,才能使每台控制器可以全活工作,不然即使有多台控制器也只能做主备,没办法扩展控制器的容量和性能。将全活工作的控制器从单台横向扩展为多台,后续每台物理机所对应的计算节点按照随机方式从控制器群组中的任一台控制器上拉取云主机流表的数据,相比所有计算节点从一台控制器上获取更新的配置及状态数据等云主机流表的数据,能够缓解单台控制器的性能瓶颈和通信压力,提高物理节点获取更新的配置及状态数据等云主机流表数据的效率。
进一步地,所述通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致的步骤包括:通过组播方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述组播方式发送的自身云主机流表中数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
具体地,虽然控制器之间可以采取单播方式、多播(即组播)方式或者广播等同步技术使多台控制器之间同步更新各自的配置及状态数据等云主机流表的数据,但相比组播技术,由于控制器之间使用单播技术进行同步数据,会使得流量呈几何数倍增。所以,控制器通过组播方式发送自身云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述组播方式发送的自身云主机流表中数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,能够大大减少流量,减轻控制器之间的通信压力。例如,请继续参阅图1,控制器1通过组播方式发送自身云主机流表中的数据至同一云环境下控制器群组中的控制器2及控制器3,并接收控制器2及控制器3各自通过所述组播方式发送的自身云主机流表中数据,以使控制器1、控制器2及控制器3等每台所述控制器上的所述云主机流表的全量数据完全一致。其中,单播技术是指一个单个的发送者和一个接受者之间通过网络进行的通信,组播技术指主机之间一对一组的通讯模式,也就是增加了同一个组的主机能够接受到此组内的全部数据,广播技术指主机之间一对全部的通讯模式,网络对当中每一台主机发出的信号都进行无条件复制并转发,全部主机都能够接收到全部信息(无论该台主机是否须要)。
本申请实施例将控制器由单台扩展为多台,并且控制器通过预设方式等同步技术发送自身云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收其它所述控制器各自通过所述预设方式等同步技术发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据,即每台控制器上包含的所有云主机的配置数据及状态数据等有关云主机流表中的所有数据完全一致。例如,请继续参阅图1,图1中的控制器1、控制器2及控制器3之间通过组播方式同步彼此的数据,也即控制器1通过组播方式发送自身云主机流表中的数据至同一云环境下控制器群组中的控制器2及控制器3,并接收控制器2及控制器3各自通过所述组播方式等同步技术发送的自身云主机流表中的数据,从而使控制器1、控制器2及控制器3上各自有关云主机流表的数据完全一致。
S202、判断是否接收到更新所述云主机流表的指令。
S203、若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
S204、若未接收到更新所述云主机流表的指令,不进行流表更新。
具体地,在需要进行云主机流表更新时,比如进行云主机迁移时,在云主机迁移的过程中,控制器会接收到云环境中其它节点发送的更新云主机流表的指令。控制器判断是否接收到更新所述云主机流表的指令,若控制器接收到更新所述云主机流表的指令,控制器根据控制器自身存储的所述云主机流表的全量数据进行流表计算以实现所述控制器上所述云主机流表的更新,控制器群组中的每台控制器均进行上述过程,每台控制器均能实现自身云主机流表的同步更新。若控制器未接收到更新所述云主机流表的指令,不进行流表更新。
本申请实施例实现基于云环境的流表更新时,将控制器进行横向扩展,将同时进行全活工作的控制器由一台控制器扩展为多台控制器,多台控制器之间通过预设方式同步更新云主机流表的配置及状态数据等云主机流表信息,以使每台控制器上的云主机流表的数据完全一致,再配合包含每台物理机在内的每个计算节点上均全量保存云主机流表这一条件,实现了每台控制器可以全活工作,通过这样的方式能够实现控制器的横向扩展,可以提高控制器节点的性能和扩展能力。
在一个实施例中,所述通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致的步骤之后,还包括:
云服务启动后,按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
具体地,云服务启动后,由于云环境中的云主机数据在不断更新,比如,云主机的创建、删除或者云主机状态的改变等,都会引起云主机流表数据的更新。创建控制器集群后,将全活工作的控制器从单台变成多台,需要不同控制器之间使用组播方式等同步技术在固定周期同步流表以及它的状态等更新的配置及状态数据,从而使每台控制器上云主机流表的更新及时更新到控制器群组中的所有其它控制器上,以使控制器群组中的每台控制器上始终保持一致的全量云主机流表数据,也即使每台控制器上的云主机流表数据完全一致,才能保证控制器群组中的每台控制器能够实现全活工作需要。比如,请继续参阅图1,控制器1接收云环境中其它节点发送到云流表更新数据后,在固定时间周期通过组播技术将 云流表的更新数据同步更新到控制器2和控制器3,同样,控制器2接收到云流表数据的更新后,通过组播技术同步更新到控制器1和控制器3等,以实现控制器1、控制器2和控制器3上的云主机流表数据完全一致,这样就可以避免单点故障,能够在单台控制器出现宕机时,物理机所在的计算节点从控制器群组中的其它等同的控制器上拉取数据,以实现控制器群组中的每台控制器全活工作,从而保持云环境系统的正常稳定运行,多台控制器全活工作,相比单台控制器能更好的抵抗单台控制器出现故障等风险,维持云环境系统的健壮性。其中,更新的配置及状态数据主要包括两方面内容:1)流表的更新及状态,比如删除或者增加一条记录;2)云主机的更新数据,比如云主机的位置更换、云主机的创建或者云主机的扇出等信息,每台控制器上产生的云主机流表的更新数据来源于云环境中的其它节点传送给控制器。
在一个实施例中,所述按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据的步骤之后,还包括:
接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据。
具体地,针对云环境下的控制器节点,将全活工作的集中式单台控制器进行横向扩展为每台控制器都能进行全活工作的多台控制器,每台控制器均全量保存云主机流表数据,再进一步配合且进一步只有配合包含每台物理机在内的每个计算节点上均全量保存云主机流表这一条件,才能使每台控制器可以全活工作,通过物理机所在的计算节点可以从控制器群组中的任一台控制器上拉取云主机流表的数据,以使每台物理机上也全量保存云主机流表的数据,所以控制器被物理机根据第二预设时间周期且按照随机方式选中以建立与所述物理机的连接,以使所述物理机拉取所述云主机流表的增量更新数据,以使每台所述物理机上保存所述云主机流表的全量数据,从而所述物理机根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新,即接收物理机以第二预设时间周期按照随机方式从控制器群组中的任一台控制器拉取所述云主机流表的增量更新数据的,若被物理机根据第二预设时间周期且按照随机方式选中以建立与所述物理机的连接,物理机以第二预设时间周期按照随机方式拉取所述云主机流表的增量更新数据,以使每台所述物理机上保存所述云主机流表的全量数据,从而所述物理机根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新,相比所有计算节点从一台控制器上获取更新的配置及状态数据等云主机流表的数据,能够缓解单台控制器的性能瓶颈和通信压力,提高物理节点获取更新的配置及状态数据等云主机流表数据的效率。同时,由于物理机是随机从多台控制器中的任一台控制器上拉取所述云主机刘表的增量更新数据,能够避免控制器产生单点故障导致控制器产生性能问题,进一步所述物理机根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新,从而每台物理机分别实现自身的云主机流表的更新。通过增加多台控制器,并且采用增量更新,就可以大大减轻控制器的压力以及控制器的通信量,相比传统技术中通过单台控制器集中计算云主机迁移中生成的流表,再通过单台控制器下发流表至各个物理机造成的单台控制器计算性能瓶颈和通信网络带宽的瓶颈问题,提高了每台物理机所在的计算节点上云主机流表更新的效率,从而可以提高云主机迁移的效率。
进一步地,所述接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据的步骤之前,还包括:
获取所述增量更新数据。
具体地,增量更新是为了减轻控制器向物理机所在的计算节点的流表接收器下发流表数据的通信量采用的一种方法,实现方式例如以git的diff,git diff用来比较文件之间的不同,下发的是变化记录,比如说增加一条流表,删除一条流表,控制器只是将增加流表或者删除流表的记录等增量更新的变化数据转发到计算节点。每个物理机所在的计算节点以第二预设时间周期按照随机方式从控制器群组中的不同控制器中拉取增量更新的VPC以及云主机之间的信息等增量更新数据,减轻了单台控制器的压力,并且只获取增量更新的部分,能够减轻控制器与物理机之间的通信量,可以解决从一台控制器上获取全部更新流表的全量同步造成的同步时间长,同步数据量大的问题,提高了每个计算节点上获取云主机流表的全量数据的效率,以实现云主机流表的快速更新,进而实现云主机的快速迁移。其中,计算节点获取增量更新也可以不按照随机的方式,但是无法避免单台控制器宕机的风险,并且在多个计算节点同时向一台控制器拉取增量更新数据时,有可能增加单台控制器的通信压力。控制器之间也可以使用全量更新,但会使通信量较大,降低更新速度,占用较多通信资源,造成通信资源的浪费。
在一个实施例中,所述按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致的步骤之前,还包括:
接收新的控制器添加至所述控制器群组。
具体地,无论是由于服务器出现单点故障,还是需要控制器性能进一步提升,均可以再横向扩展全活工作的控制器,也即增加全活工作的控制器的数量,由于控制器数量的增加,为了满足控制器之间同步数据的要求,只需要提升控制器之间的同步网络带宽,也即更换性能更高的交换机。当需要扩展控制器性能时,只需要将新的控制器加入到互相同步的控制器节点组中,控制器节点组便获得了横向扩展的能力,增加了全活工作的控制器,相比传统技术中的控制器不具有扩展性的局限,既能够避免控制器产生单点故障,又能够提高控制器性能扩展和提升的灵活性,提高控制器的服务能力和效率。
请参阅图3,图3为本申请实施例提供的基于云环境的流表更新方法的另一个流程示意图,该基于云环境的流表更新方法应用于图1中云环境下的物理机中,以完成基于云环境的流表更新方法的全部或者部分功能。如图1所示,图3所示实施例所对应的所述云环境还包含控制器群组,所述控制器群组中的所有控制器之间按照第一预设时间周期且通过预设方式同步更新所述云主机流表的数据,以使每台所述控制器上的所述云主机流表的全量数据保持一致,其中,所述全量数据指所述云主机流表中的所有数据,如图3所示,该方法包括以下步骤S301-S304:
S301、云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据。
具体地,首先针对云环境下的控制器节点,将单台控制器扩展为控制器群组,控制器群组中包含若干台控制器,例如控制器群组可以使用三台物理机作为节点组,每台控制器处理不同的云数据。由于每台控制区分别处理不同的云数据,每台控制器各自产生的云主机流表的数据不会相同,通过同步技术使多台控制器之间同步更新各自的配置及状态数据等云主机流表的数据,使每台控制器均全量保存云主机流表数据,即所述控制器群组中的所述控制器之间按照第一预设时间周期且通过预设方式同步更新所述云主机流表的数据,以使每台所述控制器上的所述云主机流表的全量数据保持一致,并且每台物理机按照随机方式从控制器群组包含的任一台控制器中拉取云主机流表的数据,才能实现每台控制器的全活工作,从而将全活工作的集中式单台控制器进行横向扩展为每台控制器都能进行全活 工作的多台控制器。
进一步地,由于只有配合每台物理机所对应的每个计算节点上各自均全量保存云主机流表这一条件,才能使每台控制器可以全活工作,不然即使有多台控制器也只能做主备,没办法扩展控制器的容量和性能,也无法解决控制器集中计算云主机流表并集中下发云主机流表导致的控制器性能瓶颈和通信压力。因此,每台物理机按照随机方式从控制器群组包含的任一台控制器中拉取云主机流表的数据,以使每台物理机上均保存所述云主机流表的全量数据,既能使每台控制器全活工作,也能使每台控制器尽可能均分下发云主机流表的数据通信压力,其中,所述全量数据指所述云主机流表中的所有数据。例如,云主机在分布式VPC内进行迁移的时候,由于会关系到迁移的这台云主机与同一个VPC内其它云主机之间的通信,还会关系到这台云主机与其它VPC云主机之间的通信,因此控制器需要重新计算出受影响的其它云主机的更新流表,并将流表下发到对应的物理机上去,该操作也是控制器计算性能瓶颈和网络性能瓶颈的关键点所在,为了分担控制器的计算压力,让控制器的计算性能不成为瓶颈,并减轻控制器的通信压力,本申请实施例中让每个物理机所在的计算节点和控制器节点都全量保存了所有的云主机流表的数据,所有的云主机流表的数据包括所有分布式VPC以及已经创建的云主机信息。当创建或者迁移一个指定VPC内的云主机时,这台云主机与同一个VPC内其它云主机之间的通信关系,这台云主机与其它VPC云主机之间的通信关系,最后需要生成的流表都可以在对应的每个分布式物理机节点单独进行计算,这些流表包含的关系计算就不需要集中在控制器上计算,大大减轻了控制器的计算压力及控制器下发流表的通信压力。由于每台物理机之间及每个控制器都可以在本地计算各自需要的流表,所以它们之间也不用集中同步对应的流表信息,物理机之间网络带宽的瓶颈也得到了解决,大大减轻了控制器下发流表的通信压力。例如,请继续参阅图1,控制器1通过组播方式发送自身云主机流表中的数据至同一云环境下控制器群组中的控制器2及控制器3,并接收控制器2及控制器3各自通过所述组播方式发送的自身云主机流表中数据,以使控制器1、控制器2及控制器3等每台所述控制器上的所述云主机流表的全量数据完全一致,物理机1及物理机2才能各自按照随机方式从控制器群组包含的控制器1、控制器2或者控制器3中拉取云主机流表的数据,以使物理机1及物理机2上各自全量保存所述云主机流表的全量数据,相比所有物理机1及物理机2均从一台控制器上获取更新的配置及状态数据等云主机流表的数据,尤其当物理机比较多时,能够缓解单台控制器的性能瓶颈和通信压力,提高物理节点获取更新的配置及状态数据等云主机流表数据的效率。
进一步地,每个计算节点可以采用高效率的处理方式来计算流表,例如采用高性能用户面的协议栈提高计算节点上的处理能力,以提高云主机流表的计算效率。
S302、判断是否接收到更新所述云主机流表的指令。
S303、若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
S304、若未接收到更新所述云主机流表的指令,不进行流表更新。
具体地,由于云主机的迁移或者创建等云主机变动的情形,主要涉及到各个节点,比如控制器节点及物理机所在的计算节点上流表的更新。若遇到云主机的创建或者迁移,每个计算节点获取到增量更新后,由于每个计算节点都全量保存有云主机流表的数据,每个计算节点分别进行流表的计算就可以实现各自云主机流表的更新,以完成实现云主机迁移需要的流表更新。由于云主机在计算节点之间进行迁移时,不需要控制器进行大量的位置计算以及流表转换与下发,解决了创建或者迁移虚拟机时,控制器因为要重新计算与之相关联的VPC内云主机的流表造成的计算流表性能瓶颈,以及解决了控制器将重新计算的云主机流表推送给物理机所在的计算节点造成的网络性能瓶颈,能够实现云主机的快速迁移, 提高云主机迁移的效率。
更进一步地,在需要进行云主机流表更新时,比如进行云主机迁移时,在云主机迁移的过程中,物理机会接收到云环境中其它节点发送的云主机流表更新的指令。物理机判断是否接收到更新所述云主机流表的指令,若物理机接收到更新所述云主机流表的指令,物理机根据物理机自身存储的所述云主机流表的全量数据进行流表计算,以实现所述物理机所在的计算节点上所述云主机流表的更新,物理机端的每台物理机均进行上述过程,每台物理机均能实现自身所在计算节点的云主机流表的同步更新。若物理机未接收到更新所述云主机流表的指令,不进行流表更新。
本申请实施例实现基于云环境的流表更新时,将控制器进行横向扩展,将同时进行全活工作的控制器由一台控制器扩展为多台控制器,多台控制器之间保存全量的云主机流表数据,每台物理机节点按照随机方式从多个控制器中的任一台控制器中拉取虚拟私有云以及云主机之间的信息等云主机流表的数据,以使每台物理机所在的计算节点上全量保存云主机流表,由于每台物理机所在的计算节点随机从多个控制器中云主机流表的数据,既避免了单台控制器的服务性能瓶颈,也避免了单台控制器宕机造成的服务性能风险。由于每台物理机所在的计算节点都全量保存了所有云主机流表的全量数据,每台物理机所在的计算节点分别进行各自的云主机流表的计算,通过每台物理机所在的计算节点单独计算由于云主机迁移生成的云主机流表以实现每台物理机上各自云主机流表的更新,从而完成云主机的快速迁移,解决了传统技术中通过单台控制器集中计算云主机迁移中生成的流表,再通过单台控制器下发流表至各个物理机造成的单台控制器计算性能瓶颈和通信网络带宽的瓶颈问题,提高了云主机迁移的效率,实现了云主机的快速迁移。
在一个实施例中,所述按照随机方式从控制器群组包含的一台控制器中拉取云主机流表的数据的步骤之后,还包括:
云服务启动后,根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据,以使所述物理机上保存所述云主机流表的全量数据。
具体地,将全活工作的单台控制器进行横向扩展为每台控制器都能进行全活工作的多台控制器,并且每台控制器均全量保存云主机流表数据,由于只有配合包含每台物理机在内的每个计算节点上均全量保存云主机流表这一条件,才能使每台控制器可以全活工作,也即物理机所在的计算节点从控制器群组中的任一台控制器上拉取云主机流表的数据,以使每台物理机上全量保存云主机流表的数据。要使每台物理机保持全量保存云主机流表的数据,需要定时更新每台物理机上的数据,所以每台物理机以第二预设时间周期按照随机方式从控制器群组中的任一台控制器拉取所述云主机流表的增量更新数据,以使每台所述物理机上保持保存所述云主机流表的全量数据,由于是不同物理机分别从多台控制器上拉取数据,相比所有计算节点从一台控制器上获取更新的配置及状态数据等云主机流表的增量更新数据,能够缓解单台控制器的性能瓶颈和通信压力,提高物理节点获取更新的配置及状态数据等云主机流表数据的效率。同时,由于每台物理机所在的计算节点仅仅获取云主机流表增量更新的部分所对应的增量数据,相比全量数据更新方式,能够进一步减轻控制器与物理机之间的通信量,相比从一台控制器上获取全部更新流表的全量同步造成的同步时间长,同步数据量大的问题,提高了每个计算节点上得到云主机流表的全量数据的效率,提高了每台物理机所在的计算节点上云主机流表更新的效率。需要说明的是,若计算节点获取增量更新不按照随机的方式,无法避免单台控制器宕机的风险,并且在多个计算节点同时向一台控制器拉取增量更新数据时,有可能增加单台控制器的通信压力。
在一个实施例中,所述根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据的步骤包括:
根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的携带时间戳的增量更新数据。
其中,时间戳,英文为Timestamp,指能表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。
具体地,每个物理机所在的计算节点根据第二预设时间周期,按照随机方式从多个控制器中的一个控制器中拉取增量更新的VPC以及云主机之间的信息等云主机流表的增量更新数据,每个计算节点获取到的增量信息都有一个时间戳,通过增量更新数据的时间戳,判断拉取的增量更新数据是否完整,能够判断所述物理机所在的计算节点上是否保存量全量的云主机流表的数据,以避免云主机流表数据产生遗漏,保证每个物理机所在计算节点的云主机流表的全量性,可以使每个计算节点上全量保存云主机流表的数据,从而避免为了获取全量数据需要全量同步,这样就可以解决全量同步造成的同步时间长,同步数据量大的问题。
需要说明的是,上述各个实施例所述的基于云环境的流表更新方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
本申请实施例还提供一种基于云环境的流表更新系统,其中,云环境包括控制器端以及物理机端,其中,所述控制器端包含的每台控制器用于执行以上各实施例中所描述的应用于云环境下的控制器上的基于云环境的流表更新方法的步骤,所述物理机端包含的每台物理机用于执行以上各实施例中所描述的应用于云环境下的物理机上的基于云环境的流表更新方法的步骤。请参阅图4,图4为本申请实施例提供的基于云环境的流表更新系统中流表更新方法的一个交互流程示意图。如图4所示,包括以下步骤:
1)控制器1、控制器2及控制器3之间按照第一预设时间周期且通过组播技术互相同步数据。
具体地,将控制器由单台扩展为多台,由传统技术中的一台控制器扩展为图4中的控制器1、控制器2及控制器3三台控制器,每台控制器通过预设方式,例如通过组播方式发送自身云主机流表中的数据至同一云环境下控制器群组中的其它控制器,并接收其它所述控制器各自通过所述组播方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据。
进一步地,控制器1、控制器2及控制器3等三台控制器中的每台控制器按照第一预设时间周期且通过预设方式,例如通过组播技术发送自身云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的其它控制器,并接收其它所述控制器各自按照所述第一预设时间周期且通过所述组播方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
2)每台物理机根据第二预设时间周期按照随机方式从控制器1、控制器2或者控制器3拉取云主机流表数据,以使每台物理机中全量保存云主机流表数据。
具体地,物理机1及物理机2分别按照随机方式从控制器群组包含的控制器1、控制器2及控制器3中任意一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据,其中,所述全量数据指所述云主机流表中的所有数据,所述控制器群组中的控制器1、控制器2及控制器3之间按照第一预设时间周期且通过预设方式,例如通过组播技术同步更新所述云主机流表的数据以使每台所述控制器上的所述云主机流表的全量数据保持一致。
进一步地,物理机1及物理机2根据第二预设时间周期,按照随机方式从所述控制器群组中的控制器1、控制器2及控制器3中拉取所述云主机流表的携带时间戳的增量更新 数据,以使所述物理机上保存所述云主机流表的全量数据。
3)控制器及物理机等每个计算节点各自判断是否接收到更新所述云主机流表的指令。
具体地,控制器1、控制器2、控制器3、物理机1及物理机2等每个计算节点各自分别判断是否接收到更新所述云主机流表的指令。
4)每个计算节点若接收到更新所述云主机流表的指令,根据自身保存的所述云主机流表的全量数据进行流表计算以实现自身所述云主机流表的更新。
具体地,若控制器1、控制器2及控制器3等每个计算节点各自分别判断接收到更新所述云主机流表的指令,控制器1、控制器2及控制器3分别根据各自保存的所述云主机流表的全量数据,分别进行各自的云主机流表计算,以实现控制器自身上所述云主机流表的更新,若物理机1及物理机2各自分别判断接收到更新所述云主机流表的指令,物理机1及物理机2分别根据各自保存的所述云主机流表的全量数据,分别进行各自的云主机流表计算,以实现物理机上自身的所述云主机流表的更新。
本申请实施例实现基于云环境的流表更新时,将控制器进行横向扩展,以实现同时进行全活工作的控制器由一台控制器扩展为多台控制器,多台控制器之间按照第一预设时间周期且通过预设方式同步更新云主机流表的配置及状态数据等云主机流表信息,以使每台控制器上的云主机流表的数据完全一致,再配合包含每台物理机在内的每个计算节点上均全量保存云主机流表这一条件,实现了每台控制器可以全活工作,同时每台物理机节点以第二预设时间周期按照随机方式从多个控制器中的任一台控制器中拉取虚拟私有云以及云主机之间的信息等增量更新数据,以使每台物理机所在的计算节点上全量保存云主机流表。由于每台物理机所在的计算节点和控制器节点都全量保存了所有云主机流表的全量数据,每台控制器及每台物理机所在的计算节点分别进行各自的云主机流表的计算,通过每台物理机和每台控制器等每台计算节点单独计算以实现各自的云主机流表的更新,从而完成云主机快速迁移等云主机变动,解决了传统技术中通过单台控制器下发流表至各个物理机造成的单台控制器计算性能瓶颈和通信网络带宽的瓶颈问题,提高了云主机迁移等云主机变动的完成效率,同时能够避免单台控制器的服务性能瓶颈和避免单台控制器宕机造成的服务性能风险。
请参阅图5,图5为本申请实施例提供的基于云环境的流表更新装置的一个示意性框图。对应于上述应用于云环境下的控制器上的基于云环境的流表更新方法,本申请实施例还提供一种应用于云环境下的控制器上的基于云环境的流表更新装置。如图5所示,该基于云环境的流表更新装置应用于云环境下的控制器上,包括用于执行上述应用于云环境下的控制器上的基于云环境的流表更新方法的单元,该装置可以被配置于控制器等计算机设备中。具体地,请参阅图5,该基于云环境的流表更新装置500包括第一传输单元501、第一判断单元502及第一更新单元503。
其中,第一传输单元501,用于云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据;
第一判断单元502,用于判断是否接收到更新所述云主机流表的指令;
第一更新单元503,用于若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
在一个实施例中,所述基于云环境的流表更新装置500还包括:
第二传输单元,用于云服务启动后,按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过 所述预设方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
在一个实施例中,所述基于云环境的流表更新装置500还包括:
连接单元,用于接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据。
请参阅图6,图6为本申请实施例提供的基于云环境的流表更新装置的另一个示意性框图。对应于上述应用于云环境下的物理机上的基于云环境的流表更新方法,本申请实施例还提供一种应用于云环境下的物理机上的基于云环境的流表更新装置。如图6所示,该基于云环境的流表更新装置应用于云环境下的物理机上,包括用于执行上述应用于云环境下的物理机上的基于云环境的流表更新方法的单元,该装置可以被配置于物理机等计算机设备中,所述云环境还包含控制器群组,所述控制器群组中的所有控制器之间按照第一预设时间周期且通过预设方式同步更新所述云主机流表的数据,以使每台所述控制器上的所述云主机流表的全量数据保持一致,其中,所述全量数据指所述云主机流表中的所有数据。具体地,请参阅图6,该基于云环境的流表更新装置600包括第一获取单元601、第二判断单元602及第二更新单元603。
其中,第一获取单元601,用于云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据;
第二判断单元602,用于判断是否接收到更新所述云主机流表的指令;
第二更新单元603,用于若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
在一个实施例中,所述基于云环境的流表更新装置600还包括:
第二获取单元,用于云服务启动后,根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据,以使所述物理机上保存所述云主机流表的全量数据。
在一个实施例中,所述第二获取单元,用于根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的携带时间戳的增量更新数据。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述基于云环境的流表更新装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述基于云环境的流表更新装置中各个单元的划分和连接方式仅用于举例说明,在其它实施例中,可将基于云环境的流表更新装置按照需要划分为不同的单元,也可将基于云环境的流表更新装置中各单元采取不同的连接顺序和方式,以完成上述基于云环境的流表更新装置的全部或部分功能。
上述基于云环境的流表更新装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。
请参阅图7,图7是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700可以是台式机电脑或者服务器等计算机设备,也可以是其它设备中的组件或者部件。
参阅图7,该计算机设备700包括通过系统总线701连接的处理器702、存储器和网络接口705,其中,存储器可以包括非易失性存储介质703和内存储器704。
该非易失性存储介质703可存储操作系统7031和计算机程序7032。该计算机程序7032被执行时,可使得处理器702执行一种上述基于云环境的流表更新方法。
该处理器702用于提供计算和控制能力,以支撑整个计算机设备700的运行。
该内存储器704为非易失性存储介质703中的计算机程序7032的运行提供环境,该计 算机程序7032被处理器702执行时,可使得处理器702执行一种上述基于云环境的流表更新方法。
该网络接口705用于与其它设备进行网络通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图7所示实施例一致,在此不再赘述。
以应用于云环境下的控制器上的基于云环境的流表更新方法为例,其中,所述处理器702用于运行存储在存储器中的计算机程序7032,以实现如下步骤:云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
在一实施例中,所述处理器702在实现所述通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据的步骤之后,还实现以下步骤:
云服务启动后,按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
在一实施例中,所述处理器702在实现所述按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据的步骤之后,还实现以下步骤:
接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据。
以应用于云环境下的物理机上的基于云环境的流表更新方法为例,所述云环境还包含控制器群组,所述控制器群组中的所有控制器之间按照第一预设时间周期且通过预设方式同步更新所述云主机流表的数据,以使每台所述控制器上的所述云主机流表的全量数据保持一致,所述全量数据指所述云主机流表中的所有数据,其中,所述处理器702用于运行存储在存储器中的计算机程序7032,以实现如下步骤:云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
在一实施例中,所述处理器702在实现所述按照随机方式从控制器群组包含的一台控制器中拉取云主机流表的数据的步骤之后,还实现以下步骤:
云服务启动后,根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据,以使所述物理机上保存所述云主机流表的全 量数据。
在一实施例中,所述处理器702在实现所述根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据的步骤时,具体实现以下步骤:
根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的携带时间戳的增量更新数据。
应当理解,在本申请实施例中,处理器702可以是中央处理单元(Central Processing Unit,CPU),该处理器702还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:
一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的应用于云环境下的控制器上的基于云环境的流表更新方法的步骤,或者使得计算机执行以上各实施例中所描述的应用于云环境下的物理机上的基于云环境的流表更新方法的步骤。
所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述计算机可读存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每台特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (20)
- 一种基于云环境的流表更新方法,应用于云环境下的控制器上,其中,所述方法包括:云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
- 根据权利要求1所述基于云环境的流表更新方法,其中,所述通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据的步骤之后,还包括:云服务启动后,按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
- 根据权利要求2所述基于云环境的流表更新方法,其中,所述按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据的步骤之后,还包括:接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据。
- 根据权利要求3所述基于云环境的流表更新方法,其中,所述接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据的步骤之前,还包括:获取所述增量更新数据。
- 根据权利要求2所述基于云环境的流表更新方法,其中,所述按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据的步骤之前,还包括:接收新的控制器并将所述新的控制器添加至所述控制器群组。
- 根据权利要求1-5任一项所述基于云环境的流表更新方法,其中,所述预设方式为单播方式、组播方式或者广播方式。
- 一种基于云环境的流表更新方法,应用于云环境下的物理机上,其中,所述云环境还包含控制器群组,所述控制器群组中的所有控制器之间按照第一预设时间周期且通过预设方式同步更新所述云主机流表的数据,以使每台所述控制器上的所述云主机流表的全量数据保持一致,其中,所述全量数据指所述云主机流表中的所有数据,所述方法包括:云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
- 根据权利要求7所述基于云环境的流表更新方法,其中,所述按照随机方式从控制器群组包含的一台控制器中拉取云主机流表的数据的步骤之后,还包括:云服务启动后,根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据,以使所述物理机上保存所述云主机流表的全量数据。
- 根据权利要求8所述基于云环境的流表更新方法,其中,所述根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据的步骤包括:根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的携带时间戳的增量更新数据。
- 一种基于云环境的流表更新装置,其中,包括用于执行如权利要求1-6任一项所述方法的单元,或者是包括用于执行如权利要求7-9任一项所述方法的单元。
- 一种计算机设备,其中,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行:云服务启动时,通过预设方式发送本台控制器上的云主机流表中的数据至同一云环境下控制器群组中的所有其它控制器,并接收所述其它控制器各自通过所述预设方式发送的自身云主机流表中的数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致,其中,所述全量数据指所述云主机流表中的所有数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算,以实现所述本台控制器上的所述云主机流表的更新。
- 根据权利要求11所述的计算机设备,其中,所述处理器用于运行所述存储器中存储的计算机程序,以执行:云服务启动后,按照第一预设时间周期且通过预设方式发送所述本台控制器上的所述云主机流表中的更新配置数据及状态数据至同一云环境下控制器群组中的所有所述其它控制器,并接收所述其它控制器各自按照所述第一预设时间周期且通过所述预设方式发送的自身云主机流表中的更新配置数据及状态数据,以使每台所述控制器上的所述云主机流表的全量数据完全一致。
- 根据权利要求12所述的计算机设备,其中,所述处理器用于运行所述存储器中存储的计算机程序,以执行:接收物理机根据第二预设时间周期且按照随机方式的选中动作以建立与所述物理机的连接,以使所述物理机从所述本台控制器上拉取所述云主机流表的增量更新数据。
- 根据权利要求13所述的计算机设备,其中,所述处理器用于运行所述存储器中存储的计算机程序,以执行:获取所述增量更新数据。
- 根据权利要求12所述的计算机设备,其中,所述处理器用于运行所述存储器中存储的计算机程序,以执行:接收新的控制器并将所述新的控制器添加至所述控制器群组。
- 根据权利要求11-15任一项所述的计算机设备,其中,所述预设方式为单播方式、组播方式或者广播方式。
- 一种计算机设备,其中,所述计算机设备包括存储器以及与所述存储器相连的处理器;所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行:云服务器启动时,按照随机方式从所述控制器群组包含的一台控制器中拉取云主机流表的数据,以使物理机上保存所述云主机流表的全量数据;判断是否接收到更新所述云主机流表的指令;若接收到更新所述云主机流表的指令,根据所述云主机流表的全量数据进行流表计算以实现所述物理机上所述云主机流表的更新。
- 根据权利要求17所述的计算机设备,其中,所述处理器用于运行所述存储器中存储的计算机程序,以执行:云服务启动后,根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的增量更新数据,以使所述物理机上保存所述云主机流表的全量数据。
- 根据权利要求18所述的计算机设备,其中,其中,根据第二预设时间周期,按照随机方式从所述控制器群组中的一台控制器中拉取所述云主机流表的携带时间戳的增量更新数据。
- 一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现如权利要求1-6中任一项所述方法的步骤,或者是实现如权利要求7-9中任一项所述方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010036791.9A CN111221561A (zh) | 2020-01-14 | 2020-01-14 | 流表更新方法、装置、系统、计算机设备及存储介质 |
CN202010036791.9 | 2020-01-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021143026A1 true WO2021143026A1 (zh) | 2021-07-22 |
Family
ID=70831111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/093595 WO2021143026A1 (zh) | 2020-01-14 | 2020-05-30 | 流表更新方法、装置、系统、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111221561A (zh) |
WO (1) | WO2021143026A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187523A (zh) * | 2020-09-10 | 2021-01-05 | 华云数据控股集团有限公司 | 一种网络高可用实现方法及超融合系统 |
CN112134794B (zh) * | 2020-10-28 | 2022-04-01 | 新华三大数据技术有限公司 | 一种流表备份方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140098813A1 (en) * | 2012-10-10 | 2014-04-10 | Telefonaktiebolaget L M Ericsson (Publ) | Ip multicast service join process for mpls-based virtual private cloud networking |
CN103874078A (zh) * | 2014-02-14 | 2014-06-18 | 北京邮电大学 | 一种移动通信接入网架构 |
CN105634955A (zh) * | 2014-11-05 | 2016-06-01 | 中兴通讯股份有限公司 | 流表更新方法及装置 |
CN105743792A (zh) * | 2014-12-12 | 2016-07-06 | 中兴通讯股份有限公司 | 流表更新方法及装置 |
CN110166364A (zh) * | 2019-05-15 | 2019-08-23 | 武汉理工大学 | 一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104518970B (zh) * | 2014-12-12 | 2018-12-25 | 北京智谷睿拓技术服务有限公司 | 流表更新方法、装置及控制器 |
CN107888438B (zh) * | 2016-09-29 | 2021-06-08 | 上海天旦网络科技发展有限公司 | 一种基于流表技术的自动感知并适应云环境变化的系统 |
CN106708603B (zh) * | 2016-12-28 | 2019-04-26 | 平安科技(深圳)有限公司 | 虚拟机快速恢复方法及装置 |
CN107346262B (zh) * | 2017-06-06 | 2020-12-15 | 华为技术有限公司 | 一种任务迁移的方法及控制器 |
CN108306777B (zh) * | 2018-04-20 | 2021-04-13 | 平安科技(深圳)有限公司 | 基于sdn控制器的虚拟网关主备切换方法及装置 |
-
2020
- 2020-01-14 CN CN202010036791.9A patent/CN111221561A/zh active Pending
- 2020-05-30 WO PCT/CN2020/093595 patent/WO2021143026A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140098813A1 (en) * | 2012-10-10 | 2014-04-10 | Telefonaktiebolaget L M Ericsson (Publ) | Ip multicast service join process for mpls-based virtual private cloud networking |
CN103874078A (zh) * | 2014-02-14 | 2014-06-18 | 北京邮电大学 | 一种移动通信接入网架构 |
CN105634955A (zh) * | 2014-11-05 | 2016-06-01 | 中兴通讯股份有限公司 | 流表更新方法及装置 |
CN105743792A (zh) * | 2014-12-12 | 2016-07-06 | 中兴通讯股份有限公司 | 流表更新方法及装置 |
CN110166364A (zh) * | 2019-05-15 | 2019-08-23 | 武汉理工大学 | 一种基于实用拜占庭容错算法的软件定义机会网络流表更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111221561A (zh) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11445019B2 (en) | Methods, systems, and media for providing distributed database access during a network split | |
WO2017097059A1 (zh) | 分布式数据库系统及其自适应方法 | |
JP6325001B2 (ja) | 階層データ構造のノードにおいて再帰的イベントリスナを用いる方法およびシステム | |
WO2021143026A1 (zh) | 流表更新方法、装置、系统、计算机设备及存储介质 | |
WO2019153488A1 (zh) | 服务配置管理方法、装置、存储介质和服务器 | |
WO2013178082A1 (zh) | 图片上传方法、系统、客户端及网络服务器、计算机存储介质 | |
WO2017152860A1 (zh) | 一种心跳信息发送方法、装置及心跳发送节点 | |
WO2015021828A1 (zh) | 分布式数据库的数据存储方法和装置 | |
US20120179778A1 (en) | Applying networking protocols to image file management | |
CN113010496B (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
US20200112499A1 (en) | Multiple quorum witness | |
EP3817338A2 (en) | Method and apparatus for acquiring rpc member information, electronic device and storage medium | |
WO2019076236A1 (zh) | 数据同步方法、装置、超级控制器、域控制器及存储介质 | |
WO2014177085A1 (zh) | 分布式多副本数据存储方法及装置 | |
WO2019153880A1 (zh) | 集群中镜像文件下载的方法、节点、查询服务器 | |
CN114124650A (zh) | 一种sptn网络控制器主从部署方法 | |
CN111126613A (zh) | 用于深度学习的方法、设备和计算机程序产品 | |
WO2016101409A1 (zh) | 数据倒换的方法、设备及系统 | |
CN109361625B (zh) | 核查转发表项的方法、装置和控制器 | |
WO2021046935A1 (zh) | 管理数据同步方法、装置、存储设备及可读存储介质 | |
CN109992447B (zh) | 数据复制方法、装置及存储介质 | |
JP6288633B2 (ja) | ネットワーク制御方法 | |
CN114422427A (zh) | 一种流量均衡方法、装置、电子设备和存储介质 | |
CN110058970B (zh) | 一种灾难风险模型下的双虚拟机准同步撤离方法 | |
CN109947593B (zh) | 数据容灾方法、系统、策略仲裁装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20914185 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 20914185 Country of ref document: EP Kind code of ref document: A1 |