numa架构下的报文转发方法、装置、存储介质及电子设备制造方法及图纸

技术编号:18591619 阅读:33 留言:0更新日期:2018-08-04 19:58
本发明专利技术公开了一种numa架构下的报文转发方法及装置,所述方法包括:第一numa内的第一网卡接收报文;发给与其对应的第一numa内的第一CPU处理;第一CPU查询全局会话哈希表,判断该报文的哈希键值对应的会话哈希表项是否存在;若该哈希表项存在,则查询所述会话哈希表项的值域中是否记录有第一numa的第一CPU;如果没有记录,则从该会话哈希表项的值域中查找一个已经建立会话策略表项的第二numa的第二CPU,从该第二CPU的会话策略表项地址拷贝会话策略信息,根据该会话策略信息在第一CPU中创建会话策略表项;将第一numa的第一CPU记录在所述会话哈希表项的值域中;根据第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。本发明专利技术可以保证流量处理负载均衡。

Packet forwarding method, device, storage medium and electronic device under NUMA architecture

The present invention discloses a message forwarding method and device under the NUMA architecture. The method includes: the first network card in the first NUMA receives the message; sends it to the first CPU processing within the corresponding first NUMA; the first CPU queries the global session hash table to determine whether the session hash table item corresponding to the hash key value of the message exists. If the hash table item exists, it is queried whether the first NUMA first CPU is recorded in the range of the session hash table item, and if no record is recorded, a second CPU of second NUMA, which has established the session policy table item, is found from the range of the session hash table, to copy the session from the session policy table address of the second CPU. The policy information creates a session policy table item in the first CPU according to the session policy information; the first CPU of the first NUMA is recorded in the range of the session hash table item, and the message is forwarded to the message according to the session policy table item established in the first CPU of the first NUMA. The invention can guarantee the load balance of the flow processing.

【技术实现步骤摘要】
numa架构下的报文转发方法、装置、存储介质及电子设备
本专利技术涉及数据处理领域,更具体地,涉及一种numa架构下的报文转发方法、装置、存储介质及电子设备。
技术介绍
随着科技的发展,网卡的性能无法随着cpu迅猛的发展速度同步提高,这导致了导致明明转发系统的能力很高,网卡硬件有时却无法实现高流量的转发,成为整个转发系统的瓶颈。目前,基于numa(Non-UniformMemoryAccess,非统一内存访问)技术的转发系统被广泛使用;numa技术把一台计算机分成多个节点,每个节点内部包含多个CPU,各节点同时处理以获得更大的处理流量,个节点内部使用共享内存控制器,节点之间通过互联模块进行连接和交互;但CPU在多个numa间进行跨节点的访问时因需要通过互联模块进行连接和交互,其跨节点访问的内存速度要远慢于CPU访问其本地内存的速度,这使得整个转发系统执行不稳定;同时,在进行转发处理时,系统需先根据报文信息在内核态匹配策略才能进一步进行转发处理,整个处理周期较长,使得系统的效率较低。
技术实现思路
有鉴于此,本专利技术实施例提供一种numa架构下的报文转发方法、装置、存储介质及电子设备,主要解决目前的转发系统存在的系统运行较慢、处理效率低等问题。根据本专利技术的一个方面,提供一种numa架构下的报文转发方法,所述方法包括:第一numa内的第一网卡接收报文;将所述报文发给与所述报文对应的第一numa内的第一CPU处理;所述第一CPU查询全局会话哈希表,判断所述报文的哈希键值对应的会话哈希表项是否存在;若所述报文的哈希键值对应的会话哈希表项存在,则查询所述会话哈希表项的值域中是否记录有所述第一numa的第一CPU;如果没有记录,则从所述会话哈希表项的值域中查找已经建立会话策略表项的第二numa的第二CPU,从所述第二CPU的会话策略表项地址拷贝会话策略信息,根据所述会话策略信息在所述第一CPU中创建会话策略表项;将所述第一numa的第一CPU记录在所述会话哈希表项的值域中;根据所述第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。进一步的,若所述报文的哈希键值对应的会话哈希表项不存在,则执行以下步骤:将所述报文送入内核态中匹配策略;所述内核态将匹配的会话策略信息返回给用户态;根据返回的会话策略信息在所述第一CPU上创建会话策略表项;将所述第一numa的第一CPU记录在所述会话哈希表项的值域;根据所述第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。进一步的,所述第一numa内的第一网卡接收报文,包括:多网卡绑定形成一个bond虚拟逻辑网口,所述bond虚拟逻辑网口包括所述第一numa的第一网卡,还包括至少一个不属于所述第一numa的第二网卡;所述报文通过所述bond虚拟逻辑网口被所述第一网卡接收。进一步的,所述会话哈希表项的键值包括所述报文的五元组;所述会话哈希表项的值域包括numa编号、CPU编号和各CPU建立的会话策略表项的存储地址。进一步的,所述在第一CPU中创建会话策略表项包括:在所述第一CPU的本地内存的内存池中申请一块区域用于存储会话策略表项。进一步的,所述方法还包括:当所述第一CPU中已建立的会话策略表项的内容发生更改时,所述第一CPU获取所述会话策略表项对应的会话哈希表项的值域;判断是否在其他CPU上已经建立了会话策略表项的副本;如果是,所述第一CPU逐个修改其他CPU上已经建立的会话策略表项副本的内容。进一步的,所述方法还包括:检测到系统的报文转发负载超过高负载阈值,则进入负载均衡模式;将所述系统内的网卡配置过滤策略,将所有syn报文都交给第一空闲CPU处理,所述第一空闲CPU是系统内当前负载最小的CPU;所述第一空闲CPU判断收到的报文是否为所述syn报文,如果是所述syn报文,则将所述syn报文发送到第二空闲CPU处理,所述第二空闲CPU是系统内除了所述第一空闲CPU以外当前负载最小的CPU,并且在所述报文的会话策略表项中标记倒核处理,并记录所述第二空闲CPU的编号。进一步的,其中所述进入负载均衡模式之后还包括步骤:所述系统内所有CPU判断收到的报文是否为新建会话表的首个报文,如果是所述新建会话表的首个报文,则发送给第一空闲CPU处理,所述第一空闲CPU是系统内当前负载最小的CPU;所述第一空闲CPU判断收到的报文是否为新建会话表的首个报文,如果是所述新建会话表的首个报文,则将所述新建会话表的首个报文发送到第二空闲CPU处理,所述第二空闲CPU是系统内除了第一空闲CPU以外当前负载最小的CPU,并且在所述报文的会话策略表项中标记倒核处理,并记录所述第二空闲CPU的编号。进一步的,所述方法还包括:如果收到的不是所述syn报文或所述新建会话表的首个报文,则判断所述报文的会话策略表项中是否被标记为倒核处理,如果是,则根据记录的编号将所述报文发送到编号对应的CPU进行处理。进一步的,所述方法还包括:当检测到所述系统的报文转发负载低于低负载阈值,则退出负载均衡模式;取消将所有syn报文都交给所述第一CPU处理的网卡配置过滤策略;取消对所述syn报文或者新建会话表的首个报文的判断;取消所述会话策略表项中的倒核处理标记。根据本专利技术的另一方面,还提供一种numa架构下的报文转发装置,所述装置包括:报文接收模块,用于第一numa内的第一网卡接收报文;第一CPU,所述第一numa包含所述第一CPU,所述第一CPU用于处理从所述报文接收模块输出的与所述第一CPU对应的报文;第一查询判断模块,用于通过报文转发模块查询全局会话哈希表,并判断所述第一CPU处理的报文的哈希键值对应的会话哈希表项是否存在;若所述第一查询判断模块判断所述报文的哈希键值对应的会话哈希表项已经存在,则启动第二查询判断模块;所述第二查询判断模块,用于查询所述会话哈希表项的值域中是否记录有所述第一numa的第一CPU;如已有记录,将启动所述报文转发模块;如没有记录,则启动会话策略表补充模块;所述会话策略表项补充模块,用于从所述会话哈希表项的值域中查找已经建立会话策略表项的第二numa的第二CPU,从所述第二CPU的会话策略表项地址拷贝会话策略信息,根据所述会话策略信息在所述第一CPU中创建会话策略表项;将所述第一numa的第一CPU记录在所述会话哈希表项的值域中;所述报文转发模块,所述报文转发模块用于根据所述第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。进一步的,所述装置还包括匹配策略模块;所述第一查询判断模块判断所述报文的哈希键值对应的会话哈希表项不存在,则启动匹配策略模块;所述匹配策略模块用于将所述报文送入内核态中匹配策略;并从所述内核态中将匹配的会话策略信息取出并返回给用户态;所述会话策略表项补充模块根据所述匹配策略模块返回的会话策略信息在所述第一CPU上创建会话策略表项,并将所述第一numa的第一CPU记录在所述会话哈希表项的值域。进一步的,所述报文接收模块包括多网卡绑定形成的一个bond虚拟逻辑网口,所述bond虚拟逻辑网口包括所述第一numa的第一网卡,还包括至少一个不属于所述第一numa的第二网卡;所述报文通过所述bond虚拟逻辑网口被所述第一网卡接收。进一步的,所述会话哈希表项本文档来自技高网...

【技术保护点】
1.一种numa架构下的报文转发方法,其特征在于,所述方法包括:第一numa内的第一网卡接收报文;将所述报文发给与所述报文对应的第一numa内的第一CPU处理;所述第一CPU查询全局会话哈希表,判断所述报文的哈希键值对应的会话哈希表项是否存在;若所述报文的哈希键值对应的会话哈希表项存在,则查询所述会话哈希表项的值域中是否记录有所述第一numa的第一CPU;如果没有记录,则从所述会话哈希表项的值域中查找已经建立会话策略表项的第二numa的第二CPU,从所述第二CPU的会话策略表项地址拷贝会话策略信息,根据所述会话策略信息在所述第一CPU中创建会话策略表项;将所述第一numa的第一CPU记录在所述会话哈希表项的值域中;根据所述第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。

【技术特征摘要】
1.一种numa架构下的报文转发方法,其特征在于,所述方法包括:第一numa内的第一网卡接收报文;将所述报文发给与所述报文对应的第一numa内的第一CPU处理;所述第一CPU查询全局会话哈希表,判断所述报文的哈希键值对应的会话哈希表项是否存在;若所述报文的哈希键值对应的会话哈希表项存在,则查询所述会话哈希表项的值域中是否记录有所述第一numa的第一CPU;如果没有记录,则从所述会话哈希表项的值域中查找已经建立会话策略表项的第二numa的第二CPU,从所述第二CPU的会话策略表项地址拷贝会话策略信息,根据所述会话策略信息在所述第一CPU中创建会话策略表项;将所述第一numa的第一CPU记录在所述会话哈希表项的值域中;根据所述第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。2.如权利要求1所述的方法,其特征在于,若所述报文的哈希键值对应的会话哈希表项不存在,所述方法还包括:将所述报文送入内核态中匹配策略;所述内核态将匹配的会话策略信息返回给用户态;根据返回的会话策略信息在所述第一CPU上创建会话策略表项;将所述第一numa的第一CPU记录在所述会话哈希表项的值域;根据所述第一numa的第一CPU中已建立的会话策略表项对所述报文进行转发。3.如权利要求1所述的方法,其特征在于,所述第一numa内的第一网卡接收报文,包括:多网卡绑定形成一个bond虚拟逻辑网口,所述bond虚拟逻辑网口包括所述第一numa的第一网卡,还包括至少一个不属于所述第一numa的第二网卡;所述报文通过所述bond虚拟逻辑网口被所述第一网卡接收。4.如权利要求1所述的方法,其特征在于:所述会话哈希表项的键值包括所述报文的五元组;所述会话哈希表项的值域包括numa编号、CPU编号和各CPU建立的会话策略表项的存储地址。5.如权利要求1或2所述的方法,其特征在于,所述在第一CPU中创建会话策略表项之前,所述方法还包括:在所述第一CPU的本地内存的内存池中申请一块区域用于存储会话策略表项。6.如权利要求1所述的方法,其特征在于,所述方法还包括:当所述第一CPU中已建立的会话策略表项的内容发生更改时,所述第一CPU获取所述会话策略表项对应的会话哈希表项的值域;判断是否在其他CPU上已经建立了会话策略表项的副本;如果是,所述第一CPU逐个修改其他CPU上已经建立的会话策略表项副本的内容。7.如权利要求1所述的方法,其特征在于,所述方法还包括:检测到系统的报文转发负载超过高负载阈值,则进入负载均衡模式;将所述系统的网卡配置过滤策略,将所有s...

【专利技术属性】
技术研发人员:刘健男党丽娜
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

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

1