CN102713854A - 一种容器状态的保存和恢复的方法及装置 - Google Patents
一种容器状态的保存和恢复的方法及装置 Download PDFInfo
- Publication number
- CN102713854A CN102713854A CN2012800002881A CN201280000288A CN102713854A CN 102713854 A CN102713854 A CN 102713854A CN 2012800002881 A CN2012800002881 A CN 2012800002881A CN 201280000288 A CN201280000288 A CN 201280000288A CN 102713854 A CN102713854 A CN 102713854A
- Authority
- CN
- China
- Prior art keywords
- container
- control group
- state parameter
- application program
- configuration information
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Retry When Errors Occur (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种容器状态的保存和恢复的方法及装置,本发明实施例中的容器状态的保存和恢复的方法包括:在保存checkpoint阶段,获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数;在恢复restart阶段,读取第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置。本发明实施例还公开了容器状态的保存和恢复的装置,使得容器内的进程在checkpoint/restart操作前后的执行环境能够保持一致。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种容器状态的保存和恢复的方法及装置。
背景技术
Linux容器可以提供轻量级的虚拟化,以便隔离一组进程和控制这组进程的资源使用,其原理是对不同的进程提供不同的系统视图,并通过Linux命名空间机制实现进程间的隔离,在同一命名空间中的进程可以相互可见,相互访问、相互通信,其中,命名空间是一个资源局部化的集合,是由多个子系统的命名空间组合而成,每个子系统的对象由原来全局唯一的一个实例局部化为多个实例,实例之间互不干扰,且一个实例不能访问另一实例内部的元素。
在现有技术中,Linux容器通过Linux系统中内核的控制组(cgroup,control group)机制控制容器内进程对硬件资源的访问,例如,若限制进程A的中央处理器(CPU,Central Processing Unit)占用率为20%,就可以建一个CPU占用率为20%的cgroup,然后将进程A添加到该建立的cgroup中,即可将进程A的CPU率占用控制在20%以内。当然,一个cgroup中可以包含多个进程,且cgroup的功能主要由它的子系统实现,比如上面的例子就是一个实现CPU占用率控制的子系统。目前,cgroup的所有子系统可实现的功能包括:对块设备的输入/输出端口(I/O,Input/Output)限制、CPU占用率限制、对设备的访问权限限制、冻结或解冻容器、内存大小限制、内存节点限制等等。
随着checkpoint/restart(保存和恢复)技术的发展,用户在进行系统维护时,常常需要对容器进行保存与恢复,包括保存与恢复容器的状态和容器内应用程序的状态,具体的,当需要进行checkpoint/restart操作时,利用Linuxcgroup中的冻结子系统,对容器进行冻结操作,使得容器中的应用程序暂停执行。
冻结完成后,在checkpoint阶段,控制器将第一容器内运行的应用程序的的状态参数存储至共享存储器的映像文件中,应用程序的状态参数包括应用程序可访问的资源状态与控制应用程序行为的内核数据状态。然后在restart阶段,控制器将读取存储在共享存储器的映像文件中的应用程序的状态参数,在第二容器中恢复应用程序。
然而,现有技术中的checkpoint/restart操作存在问题:在restart阶段,恢复后的容器内进程的资源限制丢失,容器内的进程在checkpoint/restart操作前后的执行环境不一致。
发明内容
本发明实施例提供了一种容器状态的保存和恢复的方法及装置,用于对Linux系统中的容器的状态进行checkpoint/restart操作,使得容器内的进程在checkpoint/restart操作前后的执行环境能够保持一致。
本发明实施例中的容器状态的保存和恢复的方法包括:
在保存checkpoint阶段,获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数;
在恢复restart阶段,读取第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置。
本发明实施例中容器状态的保存和恢复的装置包括:
Checkpoint模块,用于在保存checkpoint阶段,获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数;
Restart模块,用于在恢复restart阶段,读取第一容器的配置信息,第一容器的控制组状态参数及第一容器的应用程序的状态参数,根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置。
从以上技术方案可以看出,本发明实施例具有以下优点:
在checkpoint阶段,获取并保存了第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,使得在restart阶段,能够根据已保存的第一容器的配置信息,第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置,使得第二容器能够具有与第一容器相同的配置信息,且第二容器内的进程在checkpoint/restart操作前后的资源限制情况保持一致,执行环境不变。
附图说明
图1为本发明实施例中一种容器状态的保存和恢复的方法的一个示意图;
图2为本发明实施例中一种容器状态的保存和恢复的方法的另一示意图;
图3为本发明实施例中一种容器状态的保存和恢复的装置的一个示意图;
图4为本发明实施例中一种容器状态的保存和恢复的装置的另一示意图。
具体实施方式
本发明实施例提供了一种容器状态的保存和恢复的方法及装置,用于对Linux系统中的容器状态进行checkpoint/restart操作,使得容器内的进程在checkpoint/restart操作前后的执行环境能够保持一致。
为了更好的理解本发明的技术方案,请参阅图1,为本发明实施例中一种容器状态的保存和恢复的方法的实施例,包括:
101、在checkpoint阶段,获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数;
在本发明实施例中,当第一容器中运行应用程序时,若需要对该应用程序进行checkpoint/restart操作,控制器可利用第一容器中的冻结子系统,对第一容器进行冻结操作,使得第一容器中的应用程序暂停。
在冻结操作完成后,将进入checkpoint阶段,在checkpoint阶段,控制器获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数。
其中,第一容器的配置信息包括:第一容器的执行域,第一容器所使用的虚拟终端的数目、第一容器的根挂载点、第一容器的网络配置、第一容器的权能、第一容器的当前操作系统的名称等等。
其中,第一容器的应用程序的状态参数包括:应用程序可访问的资源状态与控制应用程序的行为的内核数据状态,具体的,应用程序可访问的资源状态包括:应用程序打开的文件资源状态、应用程序可访问的线性地址范围内的内存信息、定时器与信号信息以及应用程序可以通过系统调用获得的其他信息;控制应用程序的行为的内核数据状态包括:应用程序的进程关系、调度信息、应用程序的安全策略、权限与命名空间信息、以及对应用程序可视资源的管理信息。
102、在restart阶段,读取第一容器的配置信息,第一容器的控制组状态参数及第一容器的应用程序的状态参数,根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置。
在本发明实施例中,在restart阶段,控制器将读取第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,并根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置,在第二容器内实现应用程序的恢复。
需要说明的是,在本发明实施例中,第一容器与第二容器中的“第一”和“第二”仅用于区分两个不同的容器,并未对容器进行限制。
在本发明实施例中,通过在checkpoint阶段,获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,使得在restart阶段,能够读取已保存的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,并根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置,在第二容器中实现应用程序的恢复,通过在第二容器中配置第一容器的配置信息及控制组状态参数,使得第二容器的配置信息及第二容器内进程的资源限制情况与checkpoint/restart操作之前第一容器中的配置信息及进程的资源限制情况保持一致,使得容器内的进程在checkpoint/restart操作前后的执行环境保持一致。
为了更好的理解本发明实施例中的容器状态的保存和恢复的方法,下面将进行更加详细的介绍,请参阅图2,为本发明实施例中一种容器状态的保存和恢复的方法的实施例,包括:
201、在checkpoint阶段,查找第一容器的配置文件,从配置文件中获取第一容器的配置信息,将第一容器的配置信息保存到共享存储器的映像文件中;
在本发明实施例中,在checkpoint阶段,控制器将查找第一容器的配置文件,从配置文件中获取第一容器的配置信息,并将第一容器的配置信息保存到共享存储器的映像文件中,其中,保存的配置信息包括:第一容器的执行域,第一容器所使用的虚拟终端的数目、第一容器的根挂载点、第一容器的网络配置、第一容器的权能、第一容器的当前操作系统的名称等等。
202、获取第一容器的控制组路径,遍历控制组路径下的子系统文件,获取子系统文件对应的值,将第一容器的控制组路径及控制组路径下的子系统文件对应的值作为第一容器的控制组状态参数保存到共享存储器的映像文件中;
在保存配置信息之后,控制器将获取第一容器的控制组路径,遍历控制组路径下的子系统文件,获取子系统文件对应的值,将第一容器的控制组路径及控制组路径下的子系统文件对应的值作为第一容器的控制组状态参数保存到共享存储器的映像文件中。
在本发明实施例中,控制组路径下的子系统包括:对块设备I/O限制子系统、CPU节点限制子系统、CPU占用率限制子系统、对设备的访问权限限制子系统、冻结或解冻子系统、内存大小限制子系统、内存节点限制子系统。
203、获取第一容器的应用程序的状态参数,并保存到共享存储器的映像文件中;
在本发明实施例中,控制器将获取第一容器的应用程序的状态参数,并保存到共享存储器的映像文件中,其中,第一容器的应用程序的状态参数包括:应用程序可访问的资源状态与控制应用程序的行为的内核数据状态,具体的,应用程序可访问的资源状态包括:应用程序打开的文件资源状态、应用程序可访问的线性地址范围内的内存信息、定时器与信号信息以及应用程序可以通过系统调用获得的其他信息;控制应用程序的行为的内核数据状态包括:应用程序的进程关系、调度信息、应用程序的安全策略、权限与命名空间信息、以及对应用程序可视资源的管理信息。
204、在restart阶段,从共享存储器的映像文件中读取第一容器的配置信息,根据读取的第一容器的配置信息对第二容器进行配置;
在本发明实施例中,checkpoint阶段结束后,将进入restart阶段,控制器将从共享存储器的映像文件中读取第一容器的配置信息,并根据读取的第一容器的配置信息对第二容器进行配置。
需要说明的是,本发明实施例中的第二容器是可以是新创建的容器,且利用第一容器的配置信息对第二容器进行配置具体可以是:控制器根据配置信息的类型不同调用相应的函数对第二容器进行配置,例如,若对第二容器的执行域进行配置,可调用personality函数。
205、从共享存储器的映像文件中读取第一容器的控制组状态参数,根据读取的第一容器的控制组状态参数对第二容器进行配置;
在本发明实施例中,完成对第二容器的配置信息的配置后,控制器将从共享存储器的映像文件中读取第一容器的控制组状态参数,根据读取的第一容器的控制组状态参数对第二容器进行配置。
在本发明实施例中,第一容器的控制组状态参数包括:第一容器的控制组路径及控制组路径下的子系统文件对应的值,则利用第一容器的控制组状态参数对第二容器进行配置具体包括:读取共享存储器中的映像文件中的第一容器的控制组状态参数,按照该控制组状态参数中的控制组路径在第二容器中建立子系统文件,将第一容器的控制组路径下的子系统文件的对应值写入第二容器中建立的对应的子系统文件中。
206、通过套接字建立进程间通信,使得第二容器中能够处理用户发送的请求;
在本发明实施例中,为了使得第二容器中的能够处理用户发送的请求,控制器可通过套接字建立进程间通信,监听用户的请求,其中,用户的请求包括:冻结与解冻容器的请求、容器状态信息的查看请求、停止容器的运行的请求以及设置和/或获取容器内的进行的资源限制状态的请求等等。第二容器在接收到用户的请求之后,将按照该请求对应的处理方法进行处理,并将处理结果反馈给用户。
在本发明实施例中,通过套接字建立通信具体包括:控制器在第二容器中建立套接字,并等待用户侧的连接请求,若接收到用户侧的连接请求,则根据该连接请求中包含的数据进行相应的处理,例如,若用户侧请求获取第二容器当前的容器状态,则控制器将第二容器当前的容器状态参数反馈给用户侧。
207、从共享存储器的映像文件中读取第一容器的应用程序的状态参数,根据读取的第一容器的应用程序的状态参数在第二容器中恢复应用程序的状态。
在本发明实施例中,控制器还将从共享存储器的映像文件中读取第一容器的应用状态参数,根据读取的第一容器的应用程序的状态参数在第二容器中恢复应用程序的状态。
在本发明实施例中,通过在第二容器中配置第一容器的配置信息及控制组状态参数,使得第二容器的配置信息及第二容器内进程的资源限制情况与checkpoint/restart操作之前第一容器中的配置信息及进程的资源限制情况保持一致。且在restart阶段,通过套接字建立进程间通信,能够使得第二容器能够处理用户发送的请求,使得用户可以通过发送请求与容器进行交互,方便用户的管理。
请参阅图3,为本发明实施例中一种容器状态的保存和恢复的装置的实施例,包括:
Checkpoint模块301,用于在保存checkpoint阶段,获取并保存第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数;
Restart模块302,用于在恢复restart阶段,读取第一容器的配置信息,第一容器的控制组状态参数及第一容器的应用程序的状态参数,根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置。
在本发明实施例中,在checkpoint阶段,Checkpoint模块301保存获取到的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数,并在restart阶段,由Restart模块302读取第一容器的配置信息,第一容器的控制组状态参数及第一容器的应用程序的状态参数,并根据读取的第一容器的配置信息、第一容器的控制组状态参数及第一容器的应用程序的状态参数对第二容器进行配置。通过在第二容器中配置第一容器的配置信息及控制组状态参数,使得第二容器的配置信息及第二容器内进程的资源限制情况与checkpoint/restart操作之前第一容器中的配置信息及进程的资源限制情况保持一致。
为了更好的说明本发明实施例中的装置,请参阅图4,为本发明实施例中一种容器状态的保存和恢复的装置的实施例,包括:
如图3所示的实施例中的Checkpoint模块301和Restart模块302,且与图3所示实施例描述的内容一致,此处不再赘述。
在本发明实施例中,checkpoint模块301包括:
配置信息保存模块401,用于查找第一容器的配置文件,从配置文件中获取第一容器的配置信息,将第一容器的配置信息保存到共享存储器的映像文件中;
控制组状态参数保存模块402,用于获取第一容器的控制组路径,遍历控制组路径下的子系统文件,获取子系统文件对应的值,将第一容器的控制组路径及控制组路径下的子系统文件对应的值作为第一容器的控制组状态参数保存到共享存储器的映像文件中;
应用程序的状态参数保存模块403,用于获取第一容器的应用程序的状态参数,并保存到共享存储器的映像文件中。
在本发明实施例中,restart模块302包括:
配置信息配置模块404,用于在restart阶段,从共享存储器的映像文件中读取第一容器的配置信息,根据读取的第一容器的配置信息对第二容器进行配置;
控制组状态参数配置模块405,用于从共享存储器的映像文件中读取第一容器的控制组状态参数,根据读取的第一容器的控制组状态参数对第二容器进行配置;
应用程序的状态参数配置模块406,用于从共享存储器的映像文件中读取第一容器的应用程序的状态参数,根据读取的第一容器的应用程序的状态参数在第二容器中恢复应用程序的状态。
其中,控制组状态参数配置模块405包括:
读取模块4051,用于读取共享存储器的映像文件中的控制组状态参数,控制组状态参数包含第一容器的控制组路径及控制组路径下的子系统文件对应的值;
配置模块4052,用于按照控制组路径在第二容器中建立子系统文件,将第一容器的控制组路径下的子系统文件对应的值写入第二容器中建立的对应的子系统文件中。
其中,本发明实施例中的restart模块还包括:
通信模块407,用于通过套接字建立进程间通信,使得第二容器能够处理用户发送的请求。
在本发明实施例中,在checkpoint阶段,checkpoint模块301中的配置信息保存模块401将查找第一容器的配置文件,从配置文件中获取第一容器的配置信息,将第一容器的配置信息保存到共享存储器的映像文件中;且控制组状态参数保存模块402则将获取第一容器的控制组路径,遍历控制组路径下的子系统文件,获取子系统文件对应的值,将第一容器的控制组路径及控制组路径下的子系统文件对应的值作为第一容器的控制组状态参数保存到共享存储器的映像文件中;最后,应用程序的状态参数保存模块403将获取第一容器的应用程序的状态参数,并保存到共享存储器的映像文件中。
在本发明实施例中,checkpoint阶段结束之后,在restart阶段,restart模块中的配置信息配置模块404将从共享存储器的映像文件中读取第一容器的配置信息,根据读取的第一容器的配置信息对第二容器进行配置;接着由控制组状态参数配置模块405从共享存储器的映像文件中读取第一容器的控制组状态参数,根据读取的第一容器的控制组状态参数对第二容器进行配置;接着由通信模块407通过套接字建立进程间通信,使得第二容器能够处理用户发送的请求;最后由应用程序的状态参数配置模块406从共享存储器的映像文件中读取第一容器的应用程序的状态参数,根据读取的第一容器的应用程序的状态参数在第二容器中恢复应用程序的状态。
在本发明实施例中,控制组状态参数配置模块405对第二容器具体的配置方法包括:先由读取模块4051读取共享存储器的映像文件中的控制组状态参数,控制组状态参数包含第一容器的控制组路径及控制组路径下的子系统文件对应的值;再由配置模块4052按照控制组路径在第二容器中建立子系统文件,将第一容器的控制组路径下的子系统文件对应的值写入第二容器中建立的对应的子系统文件中。
在本发明实施例中,通过在第二容器中配置第一容器的配置信息及控制组状态参数,使得第二容器的配置信息及第二容器内进程的资源限制情况与checkpoint/restart操作之前第一容器中的配置信息及进程的资源限制情况保持一致。且在restart阶段,通过套接字建立进程间通信,能够使得第二容器能够处理用户发送的请求,使得用户可以通过发送请求与容器进行交互,方便用户的管理。
需要说明的是,图3及图4所示的实施例中的容器状态的保存和恢复装置可以是Linux系统中的控制器,该控制器能够从容器中获取容器状态,将容器状态保存在共享存储器中,及从共享存储器中读取容器状态,实现checkpoint/restart操作。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种容器状态的保存和恢复的方法及装置,进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种容器状态的保存和恢复的方法,其特征在于,包括:
在保存checkpoint阶段,获取并保存第一容器的配置信息、所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数;
在恢复restart阶段,读取所述第一容器的配置信息、所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数,根据读取的所述第一容器的配置信息、所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数对第二容器进行配置。
2.根据权利要求1所述的方法,其特征在于,所述获取并保存第一容器的配置信息,所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数,包括:
查找所述第一容器的配置文件,从所述配置文件中获取所述第一容器的配置信息,将所述第一容器的配置信息保存到共享存储器的映像文件中;
获取所述第一容器的控制组路径,遍历所述控制组路径下的子系统文件,获取所述子系统文件对应的值,将所述第一容器的控制组路径及所述控制组路径下的子系统文件对应的值作为所述第一容器的控制组状态参数保存到所述共享存储器的映像文件中;
获取所述第一容器的应用程序的状态参数,并保存到所述共享存储器的映像文件中。
3.根据权利要求2所述的方法,其特征在于,所述在恢复restart阶段,读取所述第一容器的配置信息,所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数,根据读取的所述第一容器的配置信息、所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数对第二容器进行配置包括:
在所述restart阶段,从所述共享存储器的映像文件中读取所述第一容器的配置信息,根据读取的所述第一容器的配置信息对所述第二容器进行配置;
从所述共享存储器的映像文件中读取所述第一容器的控制组状态参数,根据读取的所述第一容器的控制组状态参数对所述第二容器进行配置;
从所述共享存储器的映像文件中读取所述第一容器的应用程序的状态参数,根据读取的所述第一容器的应用程序的状态参数在所述第二容器中恢复所述应用程序的状态。
4.根据权利要求3所述的方法,其特征在于,所述从所述共享存储器的映像文件中读取所述第一容器的控制组状态参数,根据读取的所述第一容器的控制组状态参数对所述第二容器进行配置,包括:
读取所述共享存储器的映像文件中的所述第一容器的控制组状态参数,所述控制组状态参数包含所述第一容器的控制组路径及所述控制组路径下的子系统文件对应的值;
按照所述控制组路径在所述第二容器中建立子系统文件,将所述第一容器的所述控制组路径下的子系统文件的对应的值写入所述第二容器中建立的对应的子系统文件中。
5.根据权利要求3所述的方法,其特征在于,所述从所述共享存储器的映像文件中读取所述第一容器的控制组状态参数,根据读取的所述第一容器的控制组状态参数对所述第二容器进行配置之后还包括:
通过套接字建立进程间通信,使得所述第二容器中能够处理用户发送的请求。
6.一种容器状态的保存和恢复的装置,其特征在于,包括:
Checkpoint模块,用于在保存checkpoint阶段,获取并保存第一容器的配置信息、所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数;
Restart模块,用于在恢复restart阶段,读取所述第一容器的配置信息,所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数,根据读取的所述第一容器的配置信息、所述第一容器的控制组状态参数及所述第一容器的应用程序的状态参数对第二容器进行配置。
7.根据权利要求6所述的装置,其特征在于,所述checkpoint模块包括:
配置信息保存模块,用于查找所述第一容器的配置文件,从所述配置文件中获取所述第一容器的配置信息,将所述第一容器的配置信息保存到共享存储器的映像文件中;
控制组状态参数保存模块,用于获取所述第一容器的控制组路径,遍历所述控制组路径下的子系统文件,获取所述子系统文件对应的值,将所述第一容器的控制组路径及所述控制组路径下的子系统文件对应的值作为所述第一容器的控制组状态参数保存到所述共享存储器的映像文件中;
应用程序的状态参数保存模块,用于获取所述第一容器的应用程序的状态参数,并保存到所述共享存储器的映像文件中。
8.根据权利要求6所述的装置,其特征在于,所述restart模块包括:
配置信息配置模块,用于在所述restart阶段,从所述共享存储器的映像文件中读取所述第一容器的配置信息,根据读取的所述第一容器的配置信息对所述第二容器进行配置;
控制组状态参数配置模块,用于从所述共享存储器的映像文件中读取所述第一容器的控制组状态参数,根据读取的所述第一容器的控制组状态参数对所述第二容器进行配置;
应用程序的状态参数配置模块,用于从所述共享存储器的映像文件中读取所述第一容器的应用程序的状态参数,根据读取的所述第一容器的应用程序的状态参数在所述第二容器中恢复所述应用程序的状态。
9.根据权利要求8所述的装置,其特征在于,所述控制组状态参数配置模块包括:
读取模块,用于读取所述共享存储器的映像文件中的控制组状态参数,所述控制组状态参数包含所述第一容器的控制组路径及所述控制组路径下的子系统文件对应的值;
配置模块,用于按照所述控制组路径在所述第二容器中建立子系统文件,将所述第一容器的所述控制组路径下的子系统文件对应的值写入所述第二容器中建立的对应的子系统文件中。
10.根据权利要求8或9所述的装置,其特征在于,所述restart模块还包括:
通信模块,用于通过套接字建立进程间通信,使得所述第二容器能够处理用户发送的请求。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/072358 WO2012103827A2 (zh) | 2012-03-15 | 2012-03-15 | 一种容器状态的保存和恢复的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102713854A true CN102713854A (zh) | 2012-10-03 |
CN102713854B CN102713854B (zh) | 2014-06-04 |
Family
ID=46603130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280000288.1A Active CN102713854B (zh) | 2012-03-15 | 2012-03-15 | 一种容器状态的保存和恢复的方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150006487A1 (zh) |
EP (1) | EP2816467B1 (zh) |
CN (1) | CN102713854B (zh) |
WO (1) | WO2012103827A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491134A (zh) * | 2013-08-30 | 2014-01-01 | 华为技术有限公司 | 一种监控容器的方法、装置与代理服务系统 |
CN106155778A (zh) * | 2016-07-07 | 2016-11-23 | 中国科学院声学研究所 | 一种应用容器的启动方法及系统 |
CN108089925A (zh) * | 2017-12-29 | 2018-05-29 | 北京元心科技有限公司 | 管控进程占用资源的方法及装置 |
CN109726050A (zh) * | 2018-12-28 | 2019-05-07 | 杭州迪普科技股份有限公司 | 一种进程修复的方法和装置 |
CN109992360A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 进程处理方法和装置、电子设备、计算机可读存储介质 |
CN110597563A (zh) * | 2019-09-18 | 2019-12-20 | 湖南麒麟信安科技有限公司 | 一种基于容器的保存和恢复的方法、系统及介质 |
CN112596946A (zh) * | 2020-12-10 | 2021-04-02 | 长沙市到家悠享网络科技有限公司 | 服务的运行状态控制方法、装置、电子设备及存储介质 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707990B (zh) * | 2012-05-14 | 2015-04-08 | 华为技术有限公司 | 基于容器的处理方法和装置 |
US20160048580A1 (en) * | 2014-08-14 | 2016-02-18 | Verizon Patent And Licensing Inc. | Method and system for providing delegated classification and learning services |
US10031817B2 (en) * | 2015-11-05 | 2018-07-24 | International Business Machines Corporation | Checkpoint mechanism in a compute embedded object storage infrastructure |
US9858151B1 (en) * | 2016-10-03 | 2018-01-02 | International Business Machines Corporation | Replaying processing of a restarted application |
US10216587B2 (en) * | 2016-10-21 | 2019-02-26 | International Business Machines Corporation | Scalable fault tolerant support in a containerized environment |
US10673779B1 (en) | 2016-11-29 | 2020-06-02 | Amazon Technologies, Inc. | Checkpoint-inclusive resource allocation |
US11010259B1 (en) * | 2018-02-28 | 2021-05-18 | Veritas Technologies Llc | Container-based upgrades for appliances |
US10635605B2 (en) * | 2018-03-13 | 2020-04-28 | International Business Machines Corporation | Shared memory inter-enclave communication |
US10705914B2 (en) * | 2018-05-29 | 2020-07-07 | EMC IP Holding Company LLC | Group-based container checkpoint generation |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11099870B1 (en) * | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
EP3891613B1 (en) | 2019-01-10 | 2023-01-11 | Siemens Industry Software Inc. | Software checkpoint-restoration between distinctly compiled executables |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11188386B2 (en) * | 2019-11-01 | 2021-11-30 | Sap Portals Israel Ltd. | Lightweight remote process execution |
FR3103292B1 (fr) * | 2019-11-18 | 2022-03-11 | Looker Data Sciences Inc | Révision post hoc d’image et de volume de conteneurs linux de courte durée de vie |
US11210171B2 (en) | 2020-01-06 | 2021-12-28 | International Business Machines Corporation | Apparatus, systems, and methods for booting from a checkpoint image |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
CN111737089B (zh) * | 2020-07-23 | 2021-04-23 | 北京升鑫网络科技有限公司 | 一种容器内信息资产的实时清点方法、装置及计算设备 |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
CN115952006B (zh) * | 2023-03-13 | 2023-06-02 | 浪潮电子信息产业股份有限公司 | 资源泄漏的检测方法、系统、装置、服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256526A (zh) * | 2008-03-10 | 2008-09-03 | 清华大学 | 检查点容错技术中文件状态一致性维护的实现方法 |
US7634687B2 (en) * | 2005-01-13 | 2009-12-15 | Microsoft Corporation | Checkpoint restart system and method |
CN102263671A (zh) * | 2011-09-08 | 2011-11-30 | 曙光信息产业股份有限公司 | 基于检查点的故障排除方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8082468B1 (en) * | 2008-12-15 | 2011-12-20 | Open Invention Networks, Llc | Method and system for providing coordinated checkpointing to a group of independent computer applications |
US8195722B1 (en) * | 2008-12-15 | 2012-06-05 | Open Invention Network, Llc | Method and system for providing storage checkpointing to a group of independent computer applications |
US20070245334A1 (en) * | 2005-10-20 | 2007-10-18 | The Trustees Of Columbia University In The City Of New York | Methods, media and systems for maintaining execution of a software process |
US7613749B2 (en) * | 2006-04-12 | 2009-11-03 | International Business Machines Corporation | System and method for application fault tolerance and recovery using topologically remotely located computing devices |
US9473598B2 (en) * | 2007-12-18 | 2016-10-18 | International Business Machines Corporation | Network connection failover during application service interruption |
-
2012
- 2012-03-15 WO PCT/CN2012/072358 patent/WO2012103827A2/zh active Application Filing
- 2012-03-15 EP EP12742473.7A patent/EP2816467B1/en active Active
- 2012-03-15 CN CN201280000288.1A patent/CN102713854B/zh active Active
-
2014
- 2014-09-15 US US14/486,099 patent/US20150006487A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7634687B2 (en) * | 2005-01-13 | 2009-12-15 | Microsoft Corporation | Checkpoint restart system and method |
CN101256526A (zh) * | 2008-03-10 | 2008-09-03 | 清华大学 | 检查点容错技术中文件状态一致性维护的实现方法 |
CN102263671A (zh) * | 2011-09-08 | 2011-11-30 | 曙光信息产业股份有限公司 | 基于检查点的故障排除方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103491134A (zh) * | 2013-08-30 | 2014-01-01 | 华为技术有限公司 | 一种监控容器的方法、装置与代理服务系统 |
CN103491134B (zh) * | 2013-08-30 | 2016-12-28 | 华为技术有限公司 | 一种监控容器的方法、装置与代理服务系统 |
CN106155778A (zh) * | 2016-07-07 | 2016-11-23 | 中国科学院声学研究所 | 一种应用容器的启动方法及系统 |
CN108089925A (zh) * | 2017-12-29 | 2018-05-29 | 北京元心科技有限公司 | 管控进程占用资源的方法及装置 |
CN109992360A (zh) * | 2017-12-29 | 2019-07-09 | 广东欧珀移动通信有限公司 | 进程处理方法和装置、电子设备、计算机可读存储介质 |
CN109726050A (zh) * | 2018-12-28 | 2019-05-07 | 杭州迪普科技股份有限公司 | 一种进程修复的方法和装置 |
CN109726050B (zh) * | 2018-12-28 | 2021-01-26 | 杭州迪普科技股份有限公司 | 一种进程修复的方法和装置 |
CN110597563A (zh) * | 2019-09-18 | 2019-12-20 | 湖南麒麟信安科技有限公司 | 一种基于容器的保存和恢复的方法、系统及介质 |
CN112596946A (zh) * | 2020-12-10 | 2021-04-02 | 长沙市到家悠享网络科技有限公司 | 服务的运行状态控制方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102713854B (zh) | 2014-06-04 |
WO2012103827A2 (zh) | 2012-08-09 |
WO2012103827A3 (zh) | 2013-02-21 |
EP2816467A2 (en) | 2014-12-24 |
EP2816467A4 (en) | 2015-03-11 |
US20150006487A1 (en) | 2015-01-01 |
EP2816467B1 (en) | 2016-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102713854B (zh) | 一种容器状态的保存和恢复的方法及装置 | |
US9727429B1 (en) | Method and system for immediate recovery of replicated virtual machines | |
CN106528327B (zh) | 一种数据处理方法以及备份服务器 | |
CN103631633B (zh) | 虚拟机全系统在线迁移方法、装置与系统 | |
CN102981931B (zh) | 虚拟机备份方法及装置 | |
US20120290802A1 (en) | Snapshot creation from block lists | |
CN103389884A (zh) | 处理输入/输出请求的方法、宿主机、服务器和虚拟机 | |
CN105677479A (zh) | 并行运行gpu运算程序的实现方法及装置 | |
CN105812169B (zh) | 一种主备机切换方法及装置 | |
WO2017204990A1 (en) | Data access between computing nodes | |
CN104077199A (zh) | 基于共享磁盘的高可用集群的隔离方法和系统 | |
US20170277439A1 (en) | Techniques for Path Optimization in Storage Networks | |
CN104572941B (zh) | 数据存储方法、装置和设备 | |
US10628198B2 (en) | Hypervisor management of migration notification and response messages for virtual machines | |
CN105591778A (zh) | 一种分布式系统更新配置文件的方法及系统 | |
CN103729237A (zh) | 一种跨存储池迁移虚拟机的方法 | |
CN108694093A (zh) | 进程异常监控方法及装置 | |
US8806159B2 (en) | Data storage resource management systems and methods | |
NL2033545A (en) | Transparent dynamic reassembly of computing resource compositions | |
US8990815B1 (en) | Synchronizing allocated blocks of virtual disk files across primary and secondary volumes by excluding unused blocks | |
US10437754B1 (en) | Diagnostic fault management controller for distributed computing | |
CN104517067A (zh) | 访问数据的方法、装置及系统 | |
CN103902401A (zh) | 基于监控的虚拟机容错方法及装置 | |
CN102098343A (zh) | 云计算操作系统中资源信息的保存、获取方法和系统 | |
US10091294B2 (en) | Networking component management in host computing systems in a virtual computing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |