System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于云计算,尤其涉及一种openstack下的流表快速恢复方法及系统。
技术介绍
1、openstack vxlan组网模式下,虚拟网络是通过openvswitch(ovs)组件承载进行流量转发和租户隔离的,随着租户和虚拟机数量的增加,ovs内的流表数量会线性增加。由于ovs的流表是保存在内存中,当物理服务器遇到下电维修检查、宕机复位等情况时,内存中的流表会丢失,需要控制面重建流表,当ovs内流表数增加到一定规模后,重建流表的时间相当长的,导致系统故障恢复的时间长(小时级)。在流表重建完成前,整个物理服务器上的虚拟网络不通,虽然可以通过部署高可用的方式缓解单个节点故障的影响,但是当多个高可用节点同时故障、复位时,仍然面临流表缺失、网络失效长时间无法恢复的问题。
技术实现思路
1、为解决上述问题,本专利技术提供了如下方案:一种openstack下的流表快速恢复方法及系统。其中,一种openstack下的流表快速恢复方法,包括:
2、当虚拟机插入端口到ovs-db,ovs agent查询到虚拟机插入动作后,ovs agent通过rpc查询端口详细信息,同时neutron server从数据库获取端口信息;
3、ovs agent根据所述端口详细信息对流表进行更新,并根据网桥名将更新后的流表同步到网桥的流表快照镜像文件中,当物理服务器异常时,从所述流表快照镜像文件中恢复流表到ovs中。
4、优选地,当物理服务器异常时,从所述流表快照镜像文件中
5、当物理服务器重启后需要恢复流表时,加载流表快照文件,读取所述流表快照文件中的各个分区,将各分区中的流表批量下发到ovs中,从所述流表快照文件中执行直接恢复所有流表,将流表恢复到与物理服务器重启之前相同。
6、优选地,所述加载流表快照文件之前还包括,在原生openstack方案的基础上增加流表快照镜像文件,当有流表插入或删除时,所述流表快照镜像文件自动实时更新。
7、优选地,所述流表快照镜像文件自动实时更新的过程包括,
8、按网桥br-int和br-tun分两个文件保存,分别为br_int_img、br_tun_img,完成更新。
9、优选地,将流表恢复到与物理服务器重启之前相同之后还包括,
10、所述ovs agent继续通过rpc查询端口详细信息,同时neutron server从数据库获取端口信息;
11、ovs agent根据所述端口详细信息对流表进行更新,并根据网桥名将更新后的流表同步到网桥的流表快照镜像文件中,实现物理服务器在重启过程中增量数据的同步,保证流表的完备性。
12、优选地,所述ovs agent根据所述端口详细信息对流表进行更新,并根据网桥名将更新后的流表同步到网桥的流表快照镜像文件中的过程包括,
13、ovs代理组件通过ovs-ofctl命令下发流表并识别出所述ovs-ofctl命令中的目标网桥名,根据所述目标网桥名下发流表到对应的流表快照镜像文件中进行保存。
14、优选地,识别出所述ovs-ofctl命令中的目标网桥名的过程包括,
15、基于所述ovs-ofctl命令后面增加的网桥名对ovs-ofctl add-flows br-intxxxx进行识别,获得目标网桥名br-int。
16、优选地,根据所述目标网桥名下发流表到对应的流表快照镜像文件中进行保存的过程包括,
17、通过add-flows时指定的网桥名判断流表下发到br_int_img还是br_tun_img。
18、本专利技术还提供一种openstack下的流表快速恢复系统,包括:
19、插入检测模块,用于检测虚拟机是否插入端口到ovs-db,以及用于检测ovs agent是否查询到虚拟机的插入动作;
20、信息获取模块,与所述插入检测模块连接,用于当虚拟机插入端口到ovs-db,ovsagent查询到虚拟机插入动作后,ovs agent通过rpc查询端口详细信息,同时neutronserver从数据库获取端口信息;
21、流表更新模块,与所述信息获取模块连接,用于基于ovs agent根据所述端口详细信息对流表进行更新;
22、流表同步模块,与所述流表更新模块连接,用于根据网桥名将更新后的流表同步到网桥的流表快照镜像文件中;
23、流表恢复模块,与所述流表同步模块连接,用于当物理服务器异常时,从所述流表快照镜像文件中恢复流表到ovs中。
24、优选地,所述流表恢复模块包括文件加载单元、文件读取单元、流表下发单元;
25、所述文件加载单元用于当物理服务器重启后需要恢复流表时,加载流表快照文件;
26、所述文件读取单元用于读取所述流表快照文件中的各个分区;
27、所述流表下发单元用于将各分区中的流表批量下发到ovs中,从所述流表快照文件中执行直接恢复所有流表,将流表恢复到与物理服务器重启之前相同。
28、与现有技术相比,本专利技术具有如下优点和技术效果:
29、本专利技术通过流表快照的方式,加快流表的恢复速度,减少全量流表重建的时间,在较大规模的集群中将openstack原生的流表重建时间由原来的小时级别优化到秒级别,以最小的代价最快的速度将流表恢复到服务器重启前一样。
30、本专利技术提出的流表快照的技术,相对原生openstack的技术,在物理服务器重启后恢复流表的过程中减少了对mq的请求调用,减少了对数据库的请求调用,减少了ovs代理组件内部逻辑处理,将单个流表下发变成批量流表下发。
31、本专利技术将流表快照化,全量重建流表时,从快照恢复,屏蔽了db、mq、ovs组件的逻辑处理,第一时间恢复流表。
32、本专利技术的流表快照技术按网桥粒度进行分区,能够实现批量操作。
本文档来自技高网...【技术保护点】
1.一种Openstack下的流表快速恢复方法,其特征在于,包括:
2.根据权利要求1所述的Openstack下的流表快速恢复方法,其特征在于,
3.根据权利要求2所述的Openstack下的流表快速恢复方法,其特征在于,
4.根据权利要求3所述的Openstack下的流表快速恢复方法,其特征在于,
5.根据权利要求2所述的Openstack下的流表快速恢复方法,其特征在于,
6.根据权利要求5所述的Openstack下的流表快速恢复方法,其特征在于,
7.根据权利要求6所述的Openstack下的流表快速恢复方法,其特征在于,
8.根据权利要求6所述的Openstack下的流表快速恢复方法,其特征在于,
9.一种Openstack下的流表快速恢复系统,其特征在于,包括:
10.根据权利要求9所述的Openstack下的流表快速恢复系统,其特征在于,
【技术特征摘要】
1.一种openstack下的流表快速恢复方法,其特征在于,包括:
2.根据权利要求1所述的openstack下的流表快速恢复方法,其特征在于,
3.根据权利要求2所述的openstack下的流表快速恢复方法,其特征在于,
4.根据权利要求3所述的openstack下的流表快速恢复方法,其特征在于,
5.根据权利要求2所述的openstack下的流表快速恢复方法,其特征在于,
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。