CN111414240A - 内核态进程复制方法以及装置、容器扩容方法以及装置 - Google Patents
内核态进程复制方法以及装置、容器扩容方法以及装置 Download PDFInfo
- Publication number
- CN111414240A CN111414240A CN201910011972.3A CN201910011972A CN111414240A CN 111414240 A CN111414240 A CN 111414240A CN 201910011972 A CN201910011972 A CN 201910011972A CN 111414240 A CN111414240 A CN 111414240A
- Authority
- CN
- China
- Prior art keywords
- target
- original
- container
- kernel
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种内核态进程复制方法,包括:对待复制的原进程进行冻结处理;基于所述原进程的进程资源在内核态复制至少一个目标进程;对处于冻结状态的所述原进程进行解冻处理。本申请提供的内核态进程复制方法,在原进程被冻结的基础上,基于原进程的进程资源复制目标进程,并在目标进程复制完成后恢复原进程的业务承接处理能力,在内核态实现对容器内进程进行快速复制,从而使该方法应用在扩容场景中能够大幅优化扩容的速度,降低扩容期间的处理延迟。
Description
技术领域
本申请涉及操作系统领域,具体涉及一种内核态进程复制方法。本申请同时涉及一种内核态进程复制装置,一种容器扩容方法以及装置,以及两种电子设备。
背景技术
应用运行过程中往往伴随着新业务上线和业务升级等场景,许多应用已经提出考虑引入容器技术进行应用部署。容器技术作为一种被广泛认可和应用的服务器资源共享方式,开发者可以通过容器技术将应用部署到任何支持容器的机器上,容器不仅能够用于对应用程序构建、分发、运行的统一平台,能够实现应用程序的自动化安装、部署及升级。
容器既可以部署在物理机中,也可以部署在虚拟机中,但不论具体如何部署,在同一节点(虚拟机或物理机)上部署的容器,都会共用同一个操作系统内核。Linux操作系统的体系架构分为用户态和内核态,内核态是操作系统内核所运行的模式,并提供上层应用程序运行的环境,运行在内核态的代码可以无限制地对系统存储、外部设备进行访问;用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。
当在线应用需要扩容时,按照当前容器的模板来创建新的容器,而在这一扩容过程中,为避免扩容期间应用的延迟出现抖动,影响服务质量,需尽可能降低扩容期间应用的延迟,而这其中,在线应用扩容过程中进程复制是重要一环。
发明内容
本申请提供一种内核态进程复制方法,以解决现有技术存在的缺陷。本申请同时涉及一种内核态进程复制装置,一种容器扩容方法以及装置,以及两种电子设备。
本申请提供一种内核态进程复制方法,包括:
对待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理。
可选的,所述基于所述原进程的进程资源在内核态复制至少一个目标进程,包括:
针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
可选的,所述进程资源,包括下述至少一项:
线程、内存、文件系统、网络、栈、安全、终端设备。
可选的,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
可选的,所述对内核态待复制的原进程进行冻结处理步骤执行之前,包括:
接收针对所述原进程所属的容器的扩容请求。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与接收到所述扩容请求后创建的目标容器具有唯一对应关系。
本申请还提供一种内核态进程复制装置,包括:
原进程冻结单元,用于对待复制的原进程进行冻结处理;
目标进程复制单元,用于基于所述原进程的进程资源在内核态复制至少一个目标进程;
原进程解冻单元,用于对处于冻结状态的所述原进程进行解冻处理。
可选的,所述目标进程复制单元,包括:
进程资源复制子单元,用于针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述内核态进程复制装置,包括:
扩容请求接收单元,用于接收针对所述原进程所属的容器的扩容请求。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与接收到所述扩容请求后创建的目标容器具有唯一对应关系。
本申请还提供一种容器扩容方法,包括:
接收针对容器的扩容请求;
对所述容器中待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理;
将所述目标进程应用到基于所述扩容请求创建的目标容器中。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与所述目标容器具有唯一对应关系。
可选的,所述基于所述原进程的进程资源在内核态复制至少一个目标进程,包括:
针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
可选的,所述进程资源,包括下述至少一项:
线程、内存、文件系统、网络、栈、安全、终端设备。
可选的,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
本申请还提供一种容器扩容装置,包括:
扩容请求接收单元,用于接收针对容器的扩容请求;
冻结处理单元,用于对所述容器中待复制的原进程进行冻结处理;
复制单元,用于基于所述原进程的进程资源在内核态复制至少一个目标进程;
解冻处理单元,用于对处于冻结状态的所述原进程进行解冻处理;
进程应用单元,用于将所述目标进程应用到基于所述扩容请求创建的目标容器中。
本申请还提供一种电子设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
对待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理。
本申请还提供一种电子设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收针对容器的扩容请求;
对所述容器中待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理;
将所述目标进程应用到基于所述扩容请求创建的目标容器中。
与现有技术相比,本申请具有如下优点:
本申请提供的所述内核态进程复制方法,包括:对待复制的原进程进行冻结处理;基于所述原进程的进程资源在内核态复制至少一个目标进程;对处于冻结状态的所述原进程进行解冻处理。
本申请提供的内核态进程复制方法,在待复制的原进程被冻结的基础上,基于待复制的原进程的进程资源复制目标进程,并在所述目标进程复制完成后恢复所述原进程的业务承接处理能力,在内核态实现对容器内进程进行快速复制,从而使该方法应用在扩容场景中能够大幅优化扩容的速度,降低扩容期间的处理延迟。
附图说明
附图1是本申请提供的一种内核态进程复制方法实施例的处理流程图;
附图2是本申请提供的一种内核态进程复制过程的示意图;
附图3是本申请提供的一种内核态进程复制装置实施例的示意图;
附图4是本申请提供的一种容器扩容方法实施例的处理流程图;
附图5是本申请提供的一种容器扩容装置实施例的示意图;
附图6是本申请提供的一种电子设备的示意图;
附图7是本申请提供的另一种电子设备的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种内核态进程复制方法,本申请还提供一种内核态进程复制装置,一种容器扩容方法以及装置,以及两种电子设备。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的一种内核态进程复制方法实施例如下:
参照附图1,其示出了本申请提供的一种内核态进程复制方法实施例的处理流程图,参照附图2,其示出了本申请提供的一种内核态进程复制过程的示意图。
步骤S101,对内核态待复制的原进程进行冻结处理。
在应用运行过程中,往往会面对用户数量增加、业务高峰期用户流量上升等复杂场景,需要通过扩容以应对上述用户数量增加、业务高峰期用户流量上升场景。然而,实际应用中通过扩容来满足业务需求的同时,还需尽可能的降低扩容过程对在线应用运行的影响,一旦应用进程的启动速度慢,则会导致容器的拉起时间过长,进而导致扩容期间应用的延迟出现抖动,影响服务质量。
作为在线应用扩容过程中的重要一环,进程复制可采用criu工具(用户态实现进程复制的工具),但criu工具在对进程进行复制的过程中,会复制进程的全部内存空间,同时还会生成临时的快照镜像文件,进一步通过快照镜像文件进行进程复制,在这一过程中,不仅需要将被复制的数据信息写入快照镜像文件,还需读取写入快照镜像文件的数据信息来进行进程复制,耗时较长,从而导致扩容期间应用延迟较长,影响服务质量。
本申请提供的内核态进程复制方法,在操作系统内核态实现容器资源的复制,快速读取关键的进程信息,无需系统调用,在此基础上实现了应用快速扩容。本质上,上述内核态进程复制方法通过快速复制容器的状态,绕过容器内进程创建与初始化的阶段,实现对容器内进程的快速复制,从而大幅优化应用扩容的速度。同时,复制出的进程可以直接应用到新的容器中,从而实现新容器的快速创建,从而在应用启动时避免最耗时的初始化过程,在复制之后即可进入可服务状态。
特别的,应用上述内核态进程复制方法的扩容技术,可向Serverless服务提供有效支撑,从而基于Serverless服务结合容器的高移植性和高灵活性与计算提供的弹性调度和隔离性,具有广泛的应用场景,还能节省大量成本。
具体实施时,进程复制操作在接收到扩容请求之后展开,在接收到扩容请求之后,针对当前调用的容器进行扩容以满足业务需求,在扩容过程中,需要根据当前调用的容器复制相应数目的容器,而在容器复制这一过程中,其核心在于对容器的进程进行复制,根据待复制的容器的原进程复制目标进程,并将复制的目标进程应用到目标容器,从而实现容器的快速复制。
本申请实施例提供的一种优选实施方式中,在进程复制操作执行前首先接收针对所述原进程所属的容器的扩容请求。优选的,所述容器与所述原进程还具有唯一对应关系,即每个容器的单进程。相应的,基于容器的原进程复制获得的目标进程,与该目标进程所属的目标容器同样具有唯一对应关系。
需要说明的是,实际应用中所述容器的进程还是可以多个进程或者多个进程组成的进程组,其进程复制的实施方式与单进程容器的进程复制类似,单进程容器在进行进程复制时,只需复制容器的唯一一个进程即可,并将复制的唯一一个进程应用到目标容器;而多进程容器或者进程组容器,需要将容器的多个进程全部进行复制,或者将容器的进程组包含的容器全部进行复制,最终将复制的多个进程或者进程组应用到目标容器即可。
本申请实施例提供的所述内核态进程复制方法,全程在内核态实现,具体在进程复制过程中,首先需对待复制的原进程进行冻结,冻结的目的在于保证进程复制过程应用处于稳态。
例如,附图2所示的内核态进程复制过程,其中进程复制是指根据Process1(原进程)复制Process2(目标进程),进程复制的第一步是通过调用freezer接口冻结Process1(原进程)。
步骤S102,基于所述原进程的进程资源在内核态复制至少一个目标进程。
上述步骤S101对内核态待复制的原进程进行冻结处理,完成进程复制前的准备工作,本步骤在原进程的基础上进行目标线程的复制。具体在复制目标进程时,可根据实际业务需求复制一个或者多个目标进程。其中,所述目标进程包含的目标进程中的线程数目优选与所述原进程的进程资源包含的线程数目相同。优选的,所述进程资源,包括下述至少一项:线程、内存、文件系统、网络、栈、安全、终端设备(tty)。
在复制目标进程过程中,包括所述原进程的进程资源的复制环节,本申请实施例提供的一种优选实施方式中,在所述原进程的进程资源的复制环节中,可针对所述进程资源包含的至少一种资源,采用写入时复制(copy-on-write)方式从所述原进程复制到所述目标进程,从而能够最大化进程资源的复制速度。
其中,通过写入时复制方式(copy-on-write)复制所述原进程的进程资源好处在于能够缩短进程资源的复制时间,同时也能够降低资源复制所使用的内存消耗。特别地,对于进程复制过程中耗时最长的内存复制环节,使用写入时复制(copy-on-write)方式复制内存资源,能够极大的缩短内存资源消耗的时间,从而极大的缩短进程复制时间。
需要说明的是,所述原进程与所述目标进程包含的目标进程不具有父子进程关系,若所述目标进程与所述原进程为父子进程关系,则必然会导致目标进程与原进程具有一定程度的耦合关系,比如父子进程之间许多资源都是共享的。而在实际应用运行过程中,保持所述原进程与所述目标进程的非父子关系,能够更好的保持容器之间的隔离性。
例如,附图2所示的内核态进程复制过程,首先通过调用freezer接口冻结Process1(原进程);然后通过调用进程复制接口,基于Process1(原进程)的线程、内存、文件系统、网络、栈、安全、终端设备(tty)等资源,完成Process2(目标进程)的复制,其中,Process1(原进程)中处理任务的三个线程(task1、task2、task3)被全部复制到Process2(目标进程)中。
如上所述,若进程复制过程中的内存复制环节采用写入时复制方式(copy-on-write)进行复制,则内存复制完成后,所述原进程与所述目标进程包含的目标进程共享内存资源,当应用运行过程中检测到针对所述内存资源的写入请求时,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中,从而确保所述原进程与所述目标进程之间内存资源的独立性,以及各自内存资源的完整性。
步骤S103,对处于冻结状态的所述原进程进行解冻处理。
完成上述步骤S101和步骤S102的进程复制过程之后,对上述步骤S101冻结处理后处于冻结状态的所述原进程进行解冻处理,例如,附图2所示的内核态进程复制过程,通过调用unfreezer接口对Process1(原进程)进行解冻处理;所述原进程完成解冻处理之后,能够继续承接业务,恢复业务处理能力。此外,上述创建的目标进程也能够承接业务进行业务处理。
综上所述,所述内核态进程复制方法,在待复制的原进程被冻结的基础上,基于待复制的原进程的进程资源复制目标进程,并在所述目标进程复制完成后恢复所述原进程的业务承接处理能力,在内核态实现对容器内进程进行快速复制,从而使该方法应用在扩容场景中能够大幅优化扩容的速度,降低扩容期间的处理延迟。
本申请提供的一种内核态进程复制装置实施例如下:
在上述的实施例中,提供了一种内核态进程复制方法,与之相对应的,本申请还提供了一种内核态进程复制装置,下面结合附图进行说明。
参照附图3,其示出了本申请提供的一种内核态进程复制装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种内核态进程复制装置,包括:
原进程冻结单元301,用于对待复制的原进程进行冻结处理;
目标进程复制单元302,用于基于所述原进程的进程资源在内核态复制至少一个目标进程;
原进程解冻单元303,用于对处于冻结状态的所述原进程进行解冻处理。
可选的,所述目标进程复制单元302,包括:
进程资源复制子单元,用于针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
可选的,所述进程资源,包括下述至少一项:
线程、内存、文件系统、网络、栈、安全、终端设备。
可选的,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
可选的,所述内核态进程复制装置,包括:
扩容请求接收单元,用于接收针对所述原进程所属的容器的扩容请求。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与接收到所述扩容请求后创建的目标容器具有唯一对应关系。
本申请提供的一种容器扩容方法实施例如下:
在上述的实施例中,提供了一种内核态进程复制方法,在此基础上,本申请还提供了一种应用所述内核态进程复制方法的容器扩容方法,下面结合附图进行说明。
本实施例提供的容器扩容方法应用上述提供的内核态进程复制方法,所以描述得比较简单,相关的部分请参见上述提供的内核态进程复制方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
参照附图2,其示出了本申请提供的一种内核态进程复制过程的示意图,参照附图4,其示出了本申请提供的一种容器扩容方法实施例的处理流程图,包括步骤S401至步骤S405。
步骤S401,接收容器的扩容请求。
在应用运行过程中,往往会面对用户数量增加、业务高峰期用户流量上升等复杂场景,需要通过扩容以应对上述用户数量增加、业务高峰期用户流量上升场景。然而,实际应用中通过扩容来满足业务需求的同时,还需尽可能的降低扩容过程对在线应用运行的影响,一旦应用进程的启动速度慢,则会导致容器的拉起时间过长,进而导致扩容期间应用的延迟出现抖动,影响服务质量。
本申请提供的容器扩容方法,在进行容器扩容的过程中,通过在操作系统内核态实现容器资源的复制,快速读取关键的进程信息,无需系统调用,在此基础上实现了快速扩容。本质上,本申请实施例容器扩容过程中的进程复制通过快速复制容器的状态,绕过容器内进程创建与初始化的阶段,实现对容器内进程的快速复制,从而大幅优化容器扩容的速度。同时,复制出的进程可以直接应用到新的容器中,从而实现新容器的快速创建,从而在应用启动时避免最耗时的初始化过程,在复制之后即可进入可服务状态。
特别的,应用本申请实施例容器扩容过程中的进程复制的扩容技术,可向Serverless服务提供有效支撑,从而基于Serverless服务结合容器的高移植性和高灵活性与计算提供的弹性调度和隔离性,具有广泛的应用场景,还能节省大量成本。
优选的,所述容器与所述原进程还具有唯一对应关系,即每个容器的单进程。相应的,基于容器的原进程复制获得的目标进程,与该目标进程所属的目标容器(基于扩容请求创建的新容器)同样具有唯一对应关系。
步骤S402,对所述容器中待复制的原进程进行冻结处理。
本申请实施例中,容器扩容过程中的进程复制,全程在内核态实现,具体在进程复制过程中,首先需对待复制的原进程进行冻结,冻结的目的在于保证进程复制过程应用处于稳态。
例如,附图2所示的内核态进程复制过程,其中进程复制是指根据Process1(原进程)复制Process2(目标进程),进程复制的第一步是通过调用freezer接口冻结Process1(原进程)。
步骤S403,基于所述原进程的进程资源在内核态复制至少一个目标进程。
上述对内核态待复制的原进程进行冻结处理,完成进程复制前的准备工作,本步骤在原进程的基础上进行目标线程的复制。具体在复制目标进程时,可根据实际业务需求复制一个或者多个目标进程。其中,所述目标进程包含的目标进程中的线程数目优选与所述原进程的进程资源包含的线程数目相同。优选的,所述进程资源,包括下述至少一项:线程、内存、文件系统、网络、栈、安全、终端设备(tty)。
在复制目标进程过程中,包括所述原进程的进程资源的复制环节,本申请实施例提供的一种优选实施方式中,在所述原进程的进程资源的复制环节中,可针对所述进程资源包含的至少一种资源,采用写入时复制(copy-on-write)方式从所述原进程复制到所述目标进程,从而能够最大化进程资源的复制速度。
其中,通过写入时复制方式(copy-on-write)复制所述原进程的进程资源好处在于能够缩短进程资源的复制时间,同时也能够降低资源复制所使用的内存消耗。特别地,对于进程复制过程中耗时最长的内存复制环节,使用写入时复制(copy-on-write)方式复制内存资源,能够极大的缩短内存资源消耗的时间,从而极大的缩短进程复制时间。
需要说明的是,所述原进程与所述目标进程包含的目标进程不具有父子进程关系,若所述目标进程与所述原进程为父子进程关系,则必然会导致目标进程与原进程具有一定程度的耦合关系,比如父子进程之间许多资源都是共享的。而在实际应用运行过程中,保持所述原进程与所述目标进程的非父子关系,能够更好的保持容器之间的隔离性。
例如,附图2所示的内核态进程复制过程,首先通过调用freezer接口冻结Process1(原进程);然后通过调用进程复制接口,基于Process1(原进程)的线程、内存、文件系统、网络、栈、安全、终端设备(tty)等资源,完成Process2(目标进程)的复制,其中,Process1(原进程)中处理任务的三个线程(task1、task2、task3)被全部复制到Process2(目标进程)中。
如上所述,若进程复制过程中的内存复制环节采用写入时复制方式(copy-on-write)进行复制,则内存复制完成后,所述原进程与所述目标进程包含的目标进程共享内存资源,当应用运行过程中检测到针对所述内存资源的写入请求时,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中,从而确保所述原进程与所述目标进程之间内存资源的独立性,以及各自内存资源的完整性。
步骤S404,对处于冻结状态的所述原进程进行解冻处理。
完成上述进程复制之后,对上述冻结处理后处于冻结状态的所述原进程进行解冻处理,例如,附图2所示的内核态进程复制过程,通过调用unfreezer接口对Process1(原进程)进行解冻处理。
步骤S405,将所述目标进程应用到基于所述扩容请求创建的目标容器中。
所述原进程完成解冻处理之后,能够继续承接业务,恢复业务处理能力。在此基础上,将上述创建的目标进程应用到基于所述扩容请求创建的目标容器,所述目标进程在新创建的目标容器中也能够承接业务进行业务处理。
本申请提供的一种容器扩容装置实施例如下:
在上述的实施例中,提供了一种容器扩容方法,与之相对应的,本申请还提供了一种容器扩容装置,下面结合附图进行说明。
参照附图5,其示出了本申请提供的一种容器扩容装置实施例的示意图。
由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本申请提供一种容器扩容装置,包括:
扩容请求接收单元501,用于接收容器的扩容请求;
冻结处理单元502,用于对所述容器中待复制的原进程进行冻结处理;
复制单元503,用于基于所述原进程的进程资源在内核态复制至少一个目标进程;
解冻处理单元504,用于对处于冻结状态的所述原进程进行解冻处理;
进程应用单元505,用于将所述目标进程应用到基于所述扩容请求创建的目标容器中。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与所述目标容器具有唯一对应关系。
可选的,所述复制单元503,具体用于针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
可选的,所述进程资源,包括下述至少一项:线程、内存、文件系统、网络、栈、安全、终端设备。
可选的,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种内核态进程复制方法,此外,本申请还提供了一种用于实现所述内核态进程复制方法的电子设备,下面结合附图进行说明。
参照附图6,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供的所述内核态进程复制方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
存储器601和处理器602;
所述存储器601用于存储计算机可执行指令,所述处理器602用于执行如下计算机可执行指令:
对待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理。
可选的,所述基于所述原进程的进程资源在内核态复制至少一个目标进程,包括:
针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
可选的,所述进程资源,包括下述至少一项:
线程、内存、文件系统、网络、栈、安全、终端设备。
可选的,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
可选的,所述对内核态待复制的原进程进行冻结处理指令执行之前,所述处理器602还用于执行如下计算机可执行指令:
接收针对所述原进程所属的容器的扩容请求。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与接收到所述扩容请求后创建的目标容器具有唯一对应关系。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种容器扩容方法,此外,本申请还提供了一种用于实现所述容器扩容方法的电子设备,下面结合附图进行说明。
参照附图7,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备实施例描述得比较简单,相关的部分请参见上述提供的所述容器扩容方法实施例的对应说明即可。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
存储器701和处理器702;
所述存储器701用于存储计算机可执行指令,所述处理器702用于执行如下计算机可执行指令:
接收容器的扩容请求;
对所述容器中待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理;
将所述目标进程应用到基于所述扩容请求创建的目标容器中。
可选的,所述容器与所述原进程具有唯一对应关系,且所述目标进程与所述目标容器具有唯一对应关系。
可选的,所述基于所述原进程的进程资源在内核态复制至少一个目标进程,包括:
针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
可选的,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
可选的,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
可选的,所述进程资源,包括下述至少一项:线程、内存、文件系统、网络、栈、安全、终端设备。
可选的,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (23)
1.一种内核态进程复制方法,其特征在于,包括:
对待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理。
2.根据权利要求1所述的内核态进程复制方法,其特征在于,所述基于所述原进程的进程资源在内核态复制至少一个目标进程,包括:
针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
3.根据权利要求2所述的内核态进程复制方法,其特征在于,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
4.根据权利要求1所述的内核态进程复制方法,其特征在于,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
5.根据权利要求1所述的内核态进程复制方法,其特征在于,所述进程资源,包括下述至少一项:
线程、内存、文件系统、网络、栈、安全、终端设备。
6.根据权利要求5所述的内核态进程复制方法,其特征在于,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
7.根据权利要求1所述的内核态进程复制方法,其特征在于,所述对内核态待复制的原进程进行冻结处理步骤执行之前,包括:
接收针对所述原进程所属的容器的扩容请求。
8.根据权利要求7所述的内核态进程复制方法,其特征在于,所述容器与所述原进程具有唯一对应关系,且所述目标进程与接收到所述扩容请求后创建的目标容器具有唯一对应关系。
9.一种内核态进程复制装置,其特征在于,包括:
原进程冻结单元,用于对待复制的原进程进行冻结处理;
目标进程复制单元,用于基于所述原进程的进程资源在内核态复制至少一个目标进程;
原进程解冻单元,用于对处于冻结状态的所述原进程进行解冻处理。
10.根据权利要求9所述的内核态进程复制装置,其特征在于,所述目标进程复制单元,包括:
进程资源复制子单元,用于针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
11.根据权利要求10所述的内核态进程复制装置,其特征在于,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
12.根据权利要求9所述的内核态进程复制装置,其特征在于,包括:
扩容请求接收单元,用于接收针对所述原进程所属的容器的扩容请求。
13.根据权利要求12所述的内核态进程复制装置,其特征在于,所述容器与所述原进程具有唯一对应关系,且所述目标进程与接收到所述扩容请求后创建的目标容器具有唯一对应关系。
14.一种容器扩容方法,其特征在于,包括:
接收容器的扩容请求;
对所述容器中待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理;
将所述目标进程应用到基于所述扩容请求创建的目标容器中。
15.根据权利要求14所述的容器扩容方法,其特征在于,所述容器与所述原进程具有唯一对应关系,且所述目标进程与所述目标容器具有唯一对应关系。
16.根据权利要求14所述的容器扩容方法,其特征在于,所述基于所述原进程的进程资源在内核态复制至少一个目标进程,包括:
针对所述进程资源包含的至少一种资源,采用写入时复制方式从所述原进程复制到所述目标进程。
17.根据权利要求16所述的容器扩容方法,其特征在于,所述原进程与所述目标进程包含的目标进程共享内存资源,并且,若检测到针对所述内存资源的写入请求,则将所述写入请求对应的内存页复制到所述目标进程的目标内存空间中。
18.根据权利要求14所述的容器扩容方法,其特征在于,所述原进程与所述目标进程包含的目标进程不具有父子进程关系。
19.根据权利要求14所述的容器扩容方法,其特征在于,所述进程资源,包括下述至少一项:
线程、内存、文件系统、网络、栈、安全、终端设备。
20.根据权利要求19所述的容器扩容方法,其特征在于,所述目标进程包含的目标进程中的线程数目与所述原进程的进程资源包含的线程数目相同。
21.一种容器扩容装置,其特征在于,包括:
扩容请求接收单元,用于接收容器的扩容请求;
冻结处理单元,用于对所述容器中待复制的原进程进行冻结处理;
复制单元,用于基于所述原进程的进程资源在内核态复制至少一个目标进程;
解冻处理单元,用于对处于冻结状态的所述原进程进行解冻处理;
进程应用单元,用于将所述目标进程应用到基于所述扩容请求创建的目标容器中。
22.一种电子设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
对待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理。
23.一种电子设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
接收容器的扩容请求;
对所述容器中待复制的原进程进行冻结处理;
基于所述原进程的进程资源在内核态复制至少一个目标进程;
对处于冻结状态的所述原进程进行解冻处理;
将所述目标进程应用到基于所述扩容请求创建的目标容器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910011972.3A CN111414240B (zh) | 2019-01-07 | 2019-01-07 | 内核态进程复制方法以及装置、容器扩容方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910011972.3A CN111414240B (zh) | 2019-01-07 | 2019-01-07 | 内核态进程复制方法以及装置、容器扩容方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111414240A true CN111414240A (zh) | 2020-07-14 |
CN111414240B CN111414240B (zh) | 2023-05-09 |
Family
ID=71490665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910011972.3A Active CN111414240B (zh) | 2019-01-07 | 2019-01-07 | 内核态进程复制方法以及装置、容器扩容方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111414240B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084005A (zh) * | 2020-09-09 | 2020-12-15 | 北京升鑫网络科技有限公司 | 一种容器行为审计方法、装置、终端及存储介质 |
CN113568706A (zh) * | 2021-07-27 | 2021-10-29 | 北京百度网讯科技有限公司 | 针对业务的容器调整方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763286A (zh) * | 2008-12-22 | 2010-06-30 | 国际商业机器公司 | 用于在混合系统中跨平台转移工作负载的系统和方法 |
CN107526626A (zh) * | 2017-08-24 | 2017-12-29 | 武汉大学 | 一种基于CRIU的Docker容器热迁移方法及系统 |
CN108279969A (zh) * | 2018-02-26 | 2018-07-13 | 中科边缘智慧信息科技(苏州)有限公司 | 基于内存压缩传输的有状态服务容器热迁移方法 |
US20180307537A1 (en) * | 2017-04-20 | 2018-10-25 | Red Hat, Inc. | Instantiating containers with a unified data volume |
-
2019
- 2019-01-07 CN CN201910011972.3A patent/CN111414240B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763286A (zh) * | 2008-12-22 | 2010-06-30 | 国际商业机器公司 | 用于在混合系统中跨平台转移工作负载的系统和方法 |
US20180307537A1 (en) * | 2017-04-20 | 2018-10-25 | Red Hat, Inc. | Instantiating containers with a unified data volume |
CN107526626A (zh) * | 2017-08-24 | 2017-12-29 | 武汉大学 | 一种基于CRIU的Docker容器热迁移方法及系统 |
CN108279969A (zh) * | 2018-02-26 | 2018-07-13 | 中科边缘智慧信息科技(苏州)有限公司 | 基于内存压缩传输的有状态服务容器热迁移方法 |
Non-Patent Citations (3)
Title |
---|
XIAO CHEN等: "A Method of Self-Adaptive Pre-Copy Container Checkpoint" * |
单中元等: "Pre-record:一种高效的进程动态迁移算法" * |
张硕: "面向Docker容错的性能监控和自适应预复制检查点技术研究" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112084005A (zh) * | 2020-09-09 | 2020-12-15 | 北京升鑫网络科技有限公司 | 一种容器行为审计方法、装置、终端及存储介质 |
CN113568706A (zh) * | 2021-07-27 | 2021-10-29 | 北京百度网讯科技有限公司 | 针对业务的容器调整方法、装置、电子设备和存储介质 |
CN113568706B (zh) * | 2021-07-27 | 2024-01-19 | 北京百度网讯科技有限公司 | 针对业务的容器调整方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111414240B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5769212B2 (ja) | 仮想マシンをフォークまたはマイグレートするための方法 | |
CN111488241B (zh) | 在容器编排平台实现无代理备份与恢复操作的方法和系统 | |
CN107111533B (zh) | 虚拟机集群备份 | |
JP6238309B2 (ja) | アプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成するための方法 | |
US9235482B2 (en) | Consistent data retrieval in a multi-site computing infrastructure | |
US20140317369A1 (en) | Snapshot creation from block lists | |
US10353872B2 (en) | Method and apparatus for conversion of virtual machine formats utilizing deduplication metadata | |
JP2008511924A (ja) | 長距離通信リンク上でのデータ複製を用いた、地理的に分散配置されたサーバノードのクラスタにおける自動化されたフェールオーバー | |
US7840940B2 (en) | Semantic management method for logging or replaying non-deterministic operations within the execution of an application process | |
CN111414240B (zh) | 内核态进程复制方法以及装置、容器扩容方法以及装置 | |
CN106775846B (zh) | 用于物理服务器的在线迁移的方法及装置 | |
US11093332B2 (en) | Application checkpoint and recovery system | |
CN116954944A (zh) | 基于内存网格的分布式数据流处理方法、装置及设备 | |
CN114756355B (zh) | 一种计算机操作系统的进程自动快速恢复的方法和装置 | |
CN112685130A (zh) | 分布式存储环境下的虚拟机备份方法、装置和存储介质 | |
CN111435299A (zh) | 一种应用程序的处理方法及装置 | |
CN111435302A (zh) | 一种应用程序的处理方法及装置 | |
CN116578446B (zh) | 虚拟机备份方法、装置、系统、电子设备及存储介质 | |
CN117033085B (zh) | kvm虚拟机备份方法、装置、计算机设备及存储介质 | |
US20230376335A1 (en) | Cluster infrastructure with on-demand activation | |
Rong | Design and Implementation of Operating System in Distributed Computer System Based on Virtual Machine | |
CN116126471A (zh) | 容器创建处理方法、系统、电子设备和可读存储介质 | |
KR20180034963A (ko) | 프로세스 클라우드 시스템 및 방법 | |
CN117931830A (zh) | 数据恢复方法、装置、电子设备、存储介质及程序产品 | |
CN117762557A (zh) | 虚拟机创建方法、装置、电子设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230614 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |
|
TR01 | Transfer of patent right |