IP Library Granted Patent US 10,705,914
Granted Patent B2
US 10,705,914 · App. 15/991,669 · Granted Jul 7, 2020

Group-based container checkpoint generation

Inventors: Junping Zhao (Beijing, CN); Xiangping Chen (Sherborn, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1407G06F9/45558G06F9/544G06F9/545G06F11/0778G06F11/1451G06F11/1458G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,705,914
App. No.
15/991,669
Granted
Jul 7, 2020
Kind
B2
Abstract

An apparatus in one embodiment comprises a host device that includes at least one processor and an associated memory. The host device is configured to implement a plurality of containers each configured to access one or more portions of the memory. The containers are implemented as respective kernel control groups utilizing operating system level virtualization of the processor of the host device. The host device is further configured to assign the containers to groups in accordance with one or more designated criteria, and to generate checkpoints for respective groups of the containers. In conjunction with generation of a given one of the checkpoints for a particular one of the groups of containers, the host device identifies one or more pages of the memory that are shared by at least first and second containers of the particular group of containers, and generates the given checkpoint without duplicating the one or more shared pages to persistent storage.

Claims (55)

1. An apparatus comprising:

a host device comprising at least one processor and an associated memory;

the host device being configured to implement a plurality of containers each configured to access one or more portions of the memory;

the containers being implemented as respective kernel control groups utilizing operating system level virtualization of the processor of the host device;

the host device being further configured:

to assign the containers to groups in accordance with one or more designated criteria; and

to generate checkpoints for respective groups of the containers;

wherein in conjunction with generation of a given one of the checkpoints for a particular one of the groups of containers, the host device is further configured to identify one or more pages of the memory that are shared by at least first and second containers of the particular group of containers, and to generate the given checkpoint without duplicating the one or more shared pages to persistent storage.

2. The apparatus of claim 1 wherein the host device is further configured to restore the particular group of containers from the given checkpoint.

3. The apparatus of claim 1 wherein one of the containers of the particular group is designated as a leader container and one or more other containers of the particular group are each designated as a follower container.

4. The apparatus of claim 3 wherein the container designated as the leader container for the particular group comprises the container that utilizes the largest portion of the memory relative to all of the containers of the particular group and further wherein all other containers of the particular group are designated as respective follower containers.

5. The apparatus of claim 3 wherein in conjunction with generation of the given checkpoint, pages of at least one memory range of the leader container are compared with pages of a corresponding memory range of each of one or more follower containers to identify the one or more shared pages.

6. The apparatus of claim 3 wherein the host device is further configured to generate the given checkpoint for the particular group of containers by:

dumping all pages of the leader container to the persistent storage; and

dumping pages of the follower containers less any pages shared with the leader container to the persistent storage.

7. The apparatus of claim 3 wherein the host device is further configured to restore the particular group of containers from the given checkpoint by:

restoring the leader container from the given checkpoint; and

responsive to restoration of the leader container from the given checkpoint, restoring the one or more follower containers from the given checkpoint.

8. The apparatus of claim 1 wherein generating the given checkpoint comprises generating the given checkpoint as a checkpoint file to be stored in the persistent storage wherein the checkpoint file comprises:

a shared memory portion comprising the one or more shared pages; and

one or more unique memory portions each comprising one or more pages unique to a corresponding one of the containers of the particular group.

9. The apparatus of claim 1 wherein the host device is further configured to maintain a deduplication lookup table for the particular group and to utilize the deduplication lookup table to ensure that the shared pages are not duplicated to the persistent storage in conjunction with the generation of the checkpoint for that group.

10. The apparatus of claim 1 wherein the one or more designated criteria utilized to assign containers to groups comprise at least one of:

a first rule specifying that containers created from the same container image are assigned to the same group;

a second rule specifying that containers allocated to a given user are assigned to the same group; and

a third rule comprising a combination of at least the first and second rules in accordance with a particular logic function.

11. The apparatus of claim 1 wherein the host device is further configured to generate the checkpoints for respective ones of the groups of containers at least in part in parallel with one another.

12. The apparatus of claim 1 wherein the host device is further configured to identify the shared pages by performing page-to-page comparison between respective pages of the respective first and second containers starting at a specified offset within the containers.

13. The apparatus of claim 12 wherein the page-to-page comparison comprises:

generating a first hash of at least a portion of a given page of the first container;

generating a second hash of at least a portion of a corresponding page of the second container;

comparing the first and second hashes; and

identifying the page as a shared page responsive to a match between the first and second hashes.

14. The apparatus of claim 1 wherein the host device is further configured to identify the shared pages utilizing a shared memory data structure that comprises a plurality of different sets of shared data bytes each having an index identifier and a length, and wherein a given one of the containers that shares the data bytes of a particular one of the sets of data bytes with another one of the containers is characterized by a data structure that includes a starting address, a length, a share flag and a corresponding one of the index identifiers.

15. A method comprising:

configuring a host device comprising at least one processor and an associated memory to implement a plurality of containers each configured to access one or more portions of the memory;

the containers being implemented as respective kernel control groups utilizing operating system level virtualization of the processor of the host device;

the method further comprising the following steps performed by the host device:

assigning the containers to groups in accordance with one or more designated criteria; and

generating checkpoints for respective groups of the containers;

wherein in conjunction with generation of a given one of the checkpoints for a particular one of the groups of containers, the host device is further configured to identify one or more pages of the memory that are shared by at least first and second containers of the particular group of containers, and to generate the given checkpoint without duplicating the one or more shared pages to persistent storage.

16. The method of claim 15 wherein one of the containers of the particular group is designated as a leader container and one or more other containers of the particular group are each designated as a follower container.

17. The method of claim 16 wherein generating the given checkpoint for the particular group of containers comprises:

dumping all pages of the leader container to the persistent storage; and

dumping pages of the follower containers less any pages shared with the leader container to the persistent storage.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a host device comprising at least one processor and an associated memory causes the host device:

to implement a plurality of containers each configured to access one or more portions of the memory;

the containers being implemented as respective kernel control groups utilizing operating system level virtualization of the processor of the host device;

to assign the containers to groups in accordance with one or more designated criteria; and

to generate checkpoints for respective groups of the containers;

wherein in conjunction with generation of a given one of the checkpoints for a particular one of the groups of containers, the host device is further configured to identify one or more pages of the memory that are shared by at least first and second containers of the particular group of containers, and to generate the given checkpoint without duplicating the one or more shared pages to persistent storage.

19. The computer program product of claim 18 wherein one of the containers of the particular group is designated as a leader container and one or more other containers of the particular group are each designated as a follower container.

20. The computer program product of claim 19 wherein generating the given checkpoint for the particular group of containers comprises:

dumping all pages of the leader container to the persistent storage; and

dumping pages of the follower containers less any pages shared with the leader container to the persistent storage.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2018
From: ZHAO, JUNPING; CHEN, XIANGPING
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 045929/0099 →
Continuity (1)
Related Publication 20190370113A1 · Dec 5, 2019
Cited By (1)
US 12,474,955