一种业务进程重启方法、装置、存储介质以及系统制造方法及图纸

技术编号:24805577 阅读:49 留言:0更新日期:2020-07-07 22:10
本申请实施例公开了一种业务进程重启方法、装置、存储介质以及系统,该方法应用于安装有数据平面开发套件DPDK的系统中,通过启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;在业务进程重启的情况下,控制所述业务进程从所述守护进程获取第二状态对应的网口;基于所述第二状态对应的网口,控制所述业务进程与DPDK连接;这样,由于将业务进程和守护进程分离,并利用守护进程管理网口的状态,可以使得业务进程在重启后直接通过守护进程提供的网口连接DPDK,无需重新初始化网口,可以加快业务进程意外挂掉后的重启速度,从而能够提高数据处理效率。

【技术实现步骤摘要】
一种业务进程重启方法、装置、存储介质以及系统
本申请涉及通信网络
,尤其涉及一种业务进程重启方法、装置、存储介质以及系统。
技术介绍
数据平面开发套件(DataPlaneDevelopmentKit,DPDK)是基于Linux系统运行的用于快速数据包处理的函数库和驱动集合,可以加大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。然而,在DPDK的使用过程中,如果业务进程意外挂掉,需要重新初始化网口,然后才能接入DPDK,导致业务进程重启速度缓慢,进而降低了数据处理效率。
技术实现思路
有鉴于此,本申请的主要目的在于提供一种业务进程重启方法、装置、存储介质以及系统,可以加快业务进程意外挂掉后的重启速度,从而能够提高数据处理效率。为达到上述目的,本申请的技术方案是这样实现的:第一方面,本申请实施例提供了一种业务进程重启方法,该方法应用于安装有数据平面开发套件DPDK的系统中,该方法包括:启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;在业务进程重启的情况下,控制所述业务进程从所述守护进程获取第二状态对应的网口;基于所述第二状态对应的网口,控制所述业务进程与DPDK连接。第二方面,本申请实施例提供了一种业务进程重启装置,该业务进程重启装置包括初始化单元、获取单元和连接单元;其中,初始化单元,配置为启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;获取单元,配置为在业务进程重启的情况下,控制所述业务进程从所述守护进程获取第二状态对应的网口;连接单元,配置为基于所述第二状态对应的网口,控制所述业务进程与DPDK连接。第三方面,本申请实施例提供了一种业务进程重启装置,该业务进程重启装置包括存储器和处理器;其中,存储器,用于存储能够在所述处理器上运行的计算机程序;处理器,用于在运行所述计算机程序时,执行如第一方面所述的业务进程重启方法。第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质储存有业务进程重启程序,该业务进程重启程序被至少一种处理器执行时实现如第一方面所述的业务进程重启方法。第五方面,本申请实施例提供了一种系统,该系统至少包括如第二方面或第三方面所述的业务进程重启装置。本申请实施例提供的一种业务进程重启方法、装置、存储介质以及系统,该方法应用于安装有DPDK的系统中,通过启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;在业务进程重启的情况下,控制所述业务进程从所述守护进程获取第二状态对应的网口;基于所述第二状态对应的网口,控制所述业务进程与DPDK连接;这样,由于将业务进程和守护进程分离,并利用守护进程管理网口的状态,可以使得业务进程在重启后直接通过守护进程提供的网口连接DPDK,无需重新初始化网口,能够加快重启速度,从而能够提高数据处理效率;另外,通过守护进程管理网口的状态,保证网口状态在业务进程重启前后的一致性,可以有效避免业务进程异常退出后网口状态改变而导致多产品部署主备切换的问题。附图说明图1为本申请实施例提供的一种业务进程重启方法的流程示意图;图2为本申请实施例提供的另一种业务进程重启方法的流程示意图;图3为本申请实施例提供的一种守护进程的工作流程示意图;图4为本申请实施例提供的一种业务进程的工作流程示意图;图5为本申请实施例提供的一种业务进程重启装置的组成结构示意图;图6为本申请实施例提供的另一种业务进程重启装置的组成结构示意图;图7为本申请实施例提供的一种业务进程重启装置的具体硬件结构示意图;图8为本申请实施例提供的一种系统的组成结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。数据平面开发套件(DataPlaneDevelopmentKit,DPDK)是一种基于Linux系统进行的,用于快速数据包处理的函数库与驱动集合,能够极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK通过创建环境抽象层来为不同的工作环境创造函数库集,创建后使用者即可将自己的应用与函数库进行连接,从而绕过Linux的内核协议栈。换句话说,在Linux的内核看来,DPDK是一个普通的用户态进程,它的编译、连接和加载方式和普通程序相同,也就是说,DPDK在用户空间实现了一套数据平面来进行数据包的收发与处理。目前部署有DPDK的网络设备、平台,位于内核层的所有网口都会被用户层中基于DPDK的应用程序接口(ApplicationProgrammingInterface,API)接管,而这些网口的配置信息也会统一存储在基于DPDK的API接口文档中。所以,业务进程又包含两大步骤,即业务进程对网口进行初始化接入DPDK,然后利用DPDK的预设函数通过网口进行作业。目前业界使用DPDK的方式主要分为两大类,数据包读写(Input&Out,IO)和业务处理通过进程分离以及数据包IO和业务处理在同一个进程内;其中,(1)数据包IO和业务处理通过进程分离,划分小部分中央处理器(CentralProcessingUnit,CPU)出来,数据包读写进程独占,剩余核心业务进程独占。这种模式对于CPU核数较少的低端设备不合适,数据包IO进程占用的CPU处理能力被浪费,不具有全硬件平台覆盖能力;(2)数据包IO和业务处理在同一个进程内,将DPDK的业务进程进行整合,将数据包IO和业务处理合并在统一的业务进程呃逆,根据是否有失效转移(failover)机制分成两种,存在如下缺点:对于无failover机制,业务进程由于某种原因退出后,网卡会改变状态,重新拉起时需要耗费较长的时间处理网卡初始化,业务恢复慢;对于有失效转移机制,业务进程挂掉后单独拉起,但对于某些常见的场景不适合。比如单个业务进程挂掉后,其他业务进程并不知道业务进程挂掉的信息,这时候单进程重启时显然不满足这种场景,另外采用该模型需要深度修改现有的业务进程初始化代码,对于已经架构好的DPDK系统,实施难度较大。下面将结合附图对本申请各实施例进行详细说明。本申请的一实施例中,参见图1,其示出了本申请实施例提供的一种业务进程重启方法的流程示意图,如图1所示,该方法应用于安装有DPDK的系统,该方法可以包括:S101:启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;需要说明的是,网口在使用时,需要进行硬件和软件上的准备,硬件准备就是网口是否上电,比如网线的插入与拔出,只有在网口上电后网口才能进行使用;在网口进行上电后,还要进行软件上的准备,即使用网口的进程还需要对网口的状态进行初始化。在实际使用中,网口一般具有两个状态,即低电平本文档来自技高网...

【技术保护点】
1.一种业务进程重启方法,其特征在于,所述方法应用于安装有数据平面开发套件DPDK的系统中,所述方法包括:/n启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;/n在业务进程重启的情况下,控制所述业务进程从所述守护进程获取第二状态对应的网口;/n基于所述第二状态对应的网口,控制所述业务进程与DPDK连接。/n

【技术特征摘要】
1.一种业务进程重启方法,其特征在于,所述方法应用于安装有数据平面开发套件DPDK的系统中,所述方法包括:
启动守护进程,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态;
在业务进程重启的情况下,控制所述业务进程从所述守护进程获取第二状态对应的网口;
基于所述第二状态对应的网口,控制所述业务进程与DPDK连接。


2.根据权利要求1所述的业务进程重启方法,其特征在于,所述启动守护进程之后,所述方法还包括:
控制所述守护进程初始化DPDK,获取多个网口的管理权限;
控制所述守护进程导出共享数据结构;其中,所述共享数据结构用于在业务进程和守护进程之间共享所述多个网口的状态信息;
相应地,所述控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态,包括:
基于所获取的管理权限,控制所述守护进程对多个网口的状态进行初始化,将所述多个网口由第一状态调整为第二状态。


3.根据权利要求2所述的业务进程重启方法,其特征在于,在业务进程重启的情况下,所述方法还包括:
控制所述业务进程连接所述守护进程,以使得所述业务进程获取所述共享数据结构;
根据所述共享数据结构,控制所述业务进程从所述共享数据结构中获取所述多个网口的原始状态;其中,所述原始状态为所述多个网口中每一网口在所述业务进程初始化之后的第二状态;
通过所述业务进程获取所述多个网口中每一网口的当前状态,并将所述多个网口中每一网口的当前状态与对应的原始状态进行比较;
若其中一个网口的当前状态与原始状态不同,则将所述其中一个网口以及对应的当前状态通知前台程序,以使得所述其中一个网口的当前状态与原始状态相同。


4.根据权利要求2所述的业务进程重启方法,其特征在于,在所述控制所述业务进程与DPDK连接之后,所述方法还包括:
若所述守护进程监听到其中一个网口的状态变化,则控制所述守护进程向所述业务进程发送通知信息;
根据所述通知信息,控制所述业务进程获取所述状态变化的其中一个网口对应的当前状态,并将所获取的其中一个网口以及对应的当前状态记录在所述共享数据结构中。


5.根据权利要求1所述的业务进程重启方法,其特征在于,所述基于所述第二状态对应的网口,控制所述业务进程与DPDK连接,包括:
基于所述第二状态对应的网口,对DPDK进行初始化,以实现所述业务进程与DPDK之间的连接。


6.根据权利要求1所述的业务进程重启方法,其特征在于,在所述基于所述第二状态对应的网口,控制所述业务进程与DPDK连接之后,所述方法还包括:
控制所述业务进程进行控制面作业和数据面作业;其中,所述控制面作业是调用DPDK的应用程序编程接口API执行第一任务,所述数据面作业是调用DPDKAPI执行第二任务;其中...

【专利技术属性】
技术研发人员:张祺
申请(专利权)人:深信服科技股份有限公司
类型:发明
国别省市:广东;44

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

1