一种网络升级方法、装置、设备及介质与流程

文档序号:17984851发布日期:2019-06-22 00:20阅读:123来源:国知局
一种网络升级方法、装置、设备及介质与流程

本申请涉及网络技术领域,特别涉及一种网络升级方法、装置、设备及介质。



背景技术:

目前,在对session、alg(即applicationlayergateway,应用层网关)等网络对象进行升级时,一方面容易引起断网重连问题,影响了客户的正常业务体验,另一方面在升级前后,可以将网络对象的相关内容信息通过进程间通信的方式,由旧进程传输至新进程,但是这种用来保留网络对象相关内容信息的方式存在时效性差以及容易出差错等问题。



技术实现要素:

有鉴于此,本申请的目的在于提供一种网络升级方法、装置、设备及介质,能够在升级时避免引起断网重连的情况,并在保留网络对象的相关内容信息时避免了时效性差和容易出差错的问题。其具体方案如下:

第一方面,本申请公开了一种网络升级方法,包括:

创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件;其中,所述第一进程为升级之前对应的进程;

当启动对所述待升级网络对象的升级时,创建第二进程,并将所述目标映射文件映射至所述第二进程;

当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

可选的,所述创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件,包括:

根据所述待升级网络对象在所述第一进程中的位于内存文件系统的具体信息,生成相应的映射文件,以得到所述目标映射文件。

可选的,所述内存文件系统为tmpfs文件系统。

可选的,所述将所述目标映射文件映射至所述第二进程,包括:

利用mmap将所述目标映射文件映射至所述第二进程。

可选的,所述待升级网络对象包括session或alg。

可选的,所述创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件之前,还包括:

将所述待升级网络对象注册至映射系统,得到位于所述映射系统中的与所述待升级网络对象对应的目标映射区域;

相应的,所述创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件,包括:

在所述目标映射区域上,创建与所述待升级网络对象在所述第一进程中所使用的内存对应的所述目标映射文件。

可选的,所述在所述目标映射区域上,创建与所述待升级网络对象在所述第一进程中所使用的内存对应的所述目标映射文件之前,还包括:

根据所述目标映射区域的当前属性信息,生成相应的第一元数据;

相应的,所述当启动对所述待升级网络对象的升级时,创建第二进程,并将所述目标映射文件映射至所述第二进程之前,还包括:

根据所述目标映射区域的当前属性信息,生成相应的第二元数据;

判断所述第一元数据和所述第二元数据是否一致;

如果是,则允许启动对所述待升级网络对象的升级。

可选的,所述根据所述目标映射区域的当前属性信息,生成相应的第一元数据之前,还包括:

将所述目标映射区域的当前属性信息保存至所述目标映射区域中的第一个映射区域中;

其中,所述目标映射区域的当前属性信息包括所述待升级网络对象的版本信息、所述目标映射区域中除所述第一个映射区域之外的其余映射区域的类型信息和大小信息。

可选的,所述将所述目标映射文件映射至所述第二进程,包括:

利用所述第二进程的进程地址空间中预先固定的基地址,计算位于所述第二进程的进程地址空间中的与所述目标映射区域对应的映射地址,然后根据所述映射地址,将所述目标映射区域上的所述目标映射文件映射至所述第二进程。

第二方面,本申请公开了一种网络升级装置,包括:

文件创建模块,用于创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件;其中,所述第一进程为升级之前对应的进程;

文件映射模块,用于当启动对所述待升级网络对象的升级时,创建第二进程,并将所述目标映射文件映射至所述第二进程;

进程控制模块,用于当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

第三方面,本申请公开了一种网络升级设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述公开的网络升级方法。

第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的网络升级方法。

可见,本申请在升级之前,先创建于待升级网络对象在第一进程中所使用的内存对应的目标映射文件,然后在启动升级时,创建第二进程,并把目标映射文件映射至第二进程,在完成升级之后,控制第一进程退出,并由第二进程接替第一进程的工作。由此可见,本申请通过文件映射的方式在进程之间实现了内存共享,使得在无需重建的情况下保留了网络对象的内容信息,由此实现了热升级,避免了传统升级可能会引起的断网重连的情况,另外本申请由于是基于映射来实现网络对象的内容信息的共享的,无需在进程间对网络对象的内容信息进行传输,由此避免了时效性差和容易出差错的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的一种网络升级方法流程图;

图2为本申请实施例公开的一种具体的网络升级方法流程图;

图3为本申请实施例公开的一种具体的网络升级方法流程图;

图4为本申请实施例公开的一种具体的网络升级方法流程图;

图5为本申请实施例公开的一种映射示意图;

图6为本申请实施例公开的一种网络升级装置结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,在对session、alg等网络对象进行升级时,一方面容易引起断网重连问题,影响了客户的正常业务体验,另一方面在升级前后,可以将网络对象的相关内容信息通过进程间通信的方式,由旧进程传输至新进程,但是这种用来保留网络对象相关内容信息的方式存在时效性差以及容易出差错等问题。为此,本申请提供了一种网络升级方案,能够在升级时避免引起断网重连的情况,并在保留网络对象的相关内容信息时避免了时效性差和容易出差错的问题。

参见图1所示,本申请实施例公开了一种网络升级方法,包括:

步骤s11:创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件;其中,所述第一进程为升级之前对应的进程;

步骤s12:当启动对所述待升级网络对象的升级时,创建第二进程,并将所述目标映射文件映射至所述第二进程;

步骤s13:当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

本实施例中,所述待升级网络对象具体可以包括但不限于session或alg。另外,需要指出的是,本申请中的技术方案具体可以适用于多种不同的具体业务场景,如acl(即accesscontrollist,访问控制列表)、nat(即networkaddresstranslation,网络地址转换)等。

可见,本申请实施例在升级之前,先创建于待升级网络对象在第一进程中所使用的内存对应的目标映射文件,然后在启动升级时,创建第二进程,并把目标映射文件映射至第二进程,在完成升级之后,控制第一进程退出,并由第二进程接替第一进程的工作。由此可见,本申请实施例通过文件映射的方式在进程之间实现了内存共享,使得在无需重建的情况下保留了网络对象的内容信息,由此实现了热升级,避免了传统升级可能会引起的断网重连的情况,另外本申请实施例由于是基于映射来实现网络对象的内容信息的共享的,无需在进程间对网络对象的内容信息进行传输,由此避免了时效性差和容易出差错的问题。

参见图2所示,本申请实施例公开了一种具体的热升级方法,包括:

步骤s21:根据待升级网络对象在第一进程中的位于内存文件系统的具体信息,生成相应的映射文件,以得到目标映射文件;其中,所述第一进程为升级之前对应的进程。

其中,为了保证具有较好的处理性能,本实施例中的所述内存文件系统优先可以采用tmpfs文件系统。当然,如果系统未挂载或不支持tmpfs文件系统,也可以采用其他普通类型的内存文件系统。

步骤s22:当启动对所述待升级网络对象的升级时,创建第二进程,并利用mmap将所述目标映射文件映射至所述第二进程。

步骤s23:当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

参见图3所示,本申请实施例公开了一种具体的热升级方法,包括:

步骤s31:将待升级网络对象注册至映射系统,得到位于所述映射系统中的与所述待升级网络对象对应的目标映射区域。

需要指出的是,对于不同类型的网络对象,其对应的目标映射区域中的映射区域的数量可能存在差异。例如,对于待升级的session来说,其对应的目标映射区域中可以包括多个映射区域,而对于待升级的alg来说,其对应的目标映射区域中通常只需包括一个映射区域即可满足实际需求。

步骤s32:在所述目标映射区域上,创建与所述待升级网络对象在第一进程中所使用的内存对应的所述目标映射文件;其中,所述第一进程为升级之前对应的进程。

步骤s33:当启动对所述待升级网络对象的升级时,创建第二进程,并将所述目标映射文件映射至所述第二进程。

步骤s34:当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

也即,本实施例在创建所述目标映射文件之前,先将待升级网络对象注册到映射系统,得到位于映射系统中的与待升级网络对象对应的目标映射区域,然后在目标映射区域上创建所述目标映射文件。可以理解的是,上述技术方案既可以适用于session,也可以适用于alg或者其他类型的网络对象。通过将不同类型的待升级网络对象先注册到映射系统的做法,一方面既可以方便实现对不同网络对象进行统一的管理,另一方面也有利于容纳对其他新类型的网络对象的升级,为后续的业务扩展打下了基础。

参见图4所示,本申请实施例公开了一种具体的热升级方法,包括:

步骤s41:将待升级网络对象注册至映射系统,得到位于所述映射系统中的与所述待升级网络对象对应的目标映射区域。

步骤s42:根据所述目标映射区域的当前属性信息,生成相应的第一元数据。

可以理解的是,所述根据所述目标映射区域的当前属性信息,生成相应的第一元数据之前,还可以包括:将所述目标映射区域的当前属性信息保存至所述目标映射区域中的第一个映射区域中。这样,在根据目标映射区域的当前属性信息生成相应的元数据时,便可以从上述第一个映射区域中读取出相应的当前属性信息,以利用读取到的当前属性信息生成相应的元数据。

其中,所述目标映射区域的当前属性信息包括但不限于所述待升级网络对象的版本信息、所述目标映射区域中除所述第一个映射区域之外的其余映射区域的类型信息和大小信息。可以理解的是,上述版本信息具体可以包括版本号、版本规格信息等。本实施例中,待升级网络对象的内部可以支持存储版本号,但不支持热升级时叠加。另外,本实施例中所述目标映射区域的各映射区域还可以通过版本号进行显示控制。

步骤s43:在所述目标映射区域上,创建与所述待升级网络对象在第一进程中所使用的内存对应的所述目标映射文件;其中,所述第一进程为升级之前对应的进程。

步骤s44:根据所述目标映射区域的当前属性信息,生成相应的第二元数据。

步骤s45:判断所述第一元数据和所述第二元数据是否一致。

步骤s46:如果是,则允许启动对所述待升级网络对象的升级,然后创建第二进程,并利用所述第二进程的进程地址空间中预先固定的基地址,计算位于所述第二进程的进程地址空间中的与所述目标映射区域对应的映射地址,然后根据所述映射地址,将所述目标映射区域上的所述目标映射文件映射至所述第二进程。

也即,本实施例中,在将目标映射文件映射至第二进程之前,先判断上述第一元数据和第二元数据是否一致,如果不一致,则表明存储session等网络对象的数据结构已发生变化,此时前后版本已不能进行共享,从而不允许启动升级操作,由此便需要禁止将目标映射文件映射至第二进程;如果一致,则可以允许启动升级操作,也即允许将目标映射文件映射至第二进程。可见,本实施例中的第一元数据和第二元数据的性质与指纹信息相似,通过两者之间的比对可以确定出当前是否支持热升级。

另外,本实施例第二进程的进程地址空间中预先固定了基地址,后续基于该基地址便可直接计算出相应的映射地址,然后在热升级时,直接根据该映射地址将目标映射文件映射至第二进程即可,而无需依赖多余的新进程表项,达到了快速共享保留的目的。

步骤s47:当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

下面以session的升级为例,对本申请中的技术方案进行详细描述。具体如下:

将待升级session注册至映射系统,得到位于所述映射系统中的与所述待升级session对应的目标映射区域module,根据所述目标映射区域module的当前属性信息,生成相应的第一元数据_meta_data1。在所述目标映射区域module上,根据待升级session在第一进程中的位于tmpfs文件系统的具体信息生成相应的映射文件,以得到目标映射文件。其中,所述第一进程为升级之前对应的进程。其中,所述目标映射区域module包括n个映射区域module,分别为module1至modulen,具体如图5所示。

在对tmpfs文件系统进行初始化之后,判断是否允许启动热升级模式,如果是,则启动热升级模式,如果否,则启动正常工作模式。其中,所述判断是否允许启动热升级模式,具体包括:初始化用于分配动态类型的虚拟设备id的bitmap,并根据所述目标映射区域module的当前属性信息,生成相应的第二元数据_meta_data2;判断所述第一元数据_meta_data1和所述第二元数据_meta_data2是否一致、判断session版本号前后是否一致、以及判断虚拟设备id保存是否正确;如果上述三种判断的判断结果均为是,则判定允许启动热升级模式,否则判定不允许启动热升级模式,此时只允许启动正常工作模式。其中,在正常工作模式下,需要对除元数据_meta_data之外的所有映射文件进行删除,以便后续进行重新映射,并正常初始化所有变量。如图5所示,在热升级模式启动时,创建第二进程,并利用所述第二进程的进程地址空间中预先固定的基地址base_addr,计算位于所述第二进程的进程地址空间中的与所述目标映射区域module对应的映射地址,然后根据所述映射地址,并利用mmap将所述目标映射区域module上的所述目标映射文件映射至所述第二进程,然后初始化lock等不进行共享的变量。可以理解的是,所述目标映射文件中具体可以包括所有动态类型的文件。

参见图6所示,本申请实施例还公开了一种网络升级装置,包括:

文件创建模块11,用于创建与待升级网络对象在第一进程中所使用的内存对应的目标映射文件;其中,所述第一进程为升级之前对应的进程;

文件映射模块12,用于当启动对所述待升级网络对象的升级时,创建第二进程,并将所述目标映射文件映射至所述第二进程;

进程控制模块13,用于当对所述待升级网络对象的升级完成后,控制所述第一进程退出,并令所述第二进程接替所述第一进程的工作。

可见,本申请实施例在升级之前,先创建于待升级网络对象在第一进程中所使用的内存对应的目标映射文件,然后在启动升级时,创建第二进程,并把目标映射文件映射至第二进程,在完成升级之后,控制第一进程退出,并由第二进程接替第一进程的工作。由此可见,本申请实施例通过文件映射的方式在进程之间实现了内存共享,使得在无需重建的情况下保留了网络对象的内容信息,由此实现了热升级,避免了传统升级可能会引起的断网重连的情况,另外本申请实施例由于是基于映射来实现网络对象的内容信息的共享的,无需在进程间对网络对象的内容信息进行传输,由此避免了时效性差和容易出差错的问题。

本实施例中,所述文件创建模块11,具体可以用于根据所述待升级网络对象在所述第一进程中的位于内存文件系统的具体信息,生成相应的映射文件,以得到所述目标映射文件。

其中,为了保证具有较好的处理性能,本实施例中的所述内存文件系统优先可以采用tmpfs文件系统。当然,如果系统未挂载或不支持tmpfs文件系统,也可以采用其他普通类型的内存文件系统。

本实施例中,所述文件映射模块12,具体可以用于利用mmap将所述目标映射文件映射至所述第二进程。

本实施例中,所述待升级网络对象具体可以包括但不限于session或alg。另外,需要指出的是,本申请中的技术方案具体可以适用于多种不同的具体业务场景,如acl、nat等。

进一步的,本实施例中的网络升级装置,还可以包括:

对象注册模块,用于将所述待升级网络对象注册至映射系统,得到位于所述映射系统中的与所述待升级网络对象对应的目标映射区域;

相应的,所述文件创建模块11,具体可以用于在所述目标映射区域上,创建与所述待升级网络对象在所述第一进程中所使用的内存对应的所述目标映射文件。

进一步的,本实施例中的网络升级装置,还可以包括:

第一元数据生成模块,用于根据所述目标映射区域的当前属性信息,生成相应的第一元数据;

第二元数据生成模块,用于根据所述目标映射区域的当前属性信息,生成相应的第二元数据;

元数据判断模块,用于判断所述第一元数据和所述第二元数据是否一致,如果是,则允许启动对所述待升级网络对象的升级。

进一步的,本实施例中的网络升级装置,还可以包括:

属性信息保存模块,用于将所述目标映射区域的当前属性信息保存至所述目标映射区域中的第一个映射区域中;

其中,所述目标映射区域的当前属性信息包括所述待升级网络对象的版本信息、所述目标映射区域中除所述第一个映射区域之外的其余映射区域的类型信息和大小信息。

进一步的,所述文件映射模块12,具体可以用于利用所述第二进程的进程地址空间中预先固定的基地址,计算位于所述第二进程的进程地址空间中的与所述目标映射区域对应的映射地址,然后根据所述映射地址,将所述目标映射区域上的所述目标映射文件映射至所述第二进程。

其中,关于上述各个模块更加详尽的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。

进一步的,本申请还公开了一种网络升级设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述实施例公开的网络升级方法。

进一步的,本申请还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的网络升级方法。

其中,关于上述网络升级方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种网络升级方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1