IP Library › Granted Patent US 11,182,347
Granted Patent B2
US 11,182,347 · App. 16/511,681 · Granted Nov 23, 2021

File sharing among virtual containers with fast recovery and self-consistency

Inventors: Jie Zhang (Beijing, CN); Wei Wang (Beijing, CN); Hong Lin Guo (Beijing, CN); Jian Sun (Beijing, CN); Xin Peng Liu (Beijing, CN); Yun Jie Fang (Beijing, CN)
Assignee: International Business Machines Corporation
G06F16/176G06F8/65G06F11/1469G06F16/188G06F2201/80G06F2201/815G06F2201/82
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 11,182,347
App. No.
16/511,681
Granted
Nov 23, 2021
Kind
B2
Abstract

An approach is provided in which an information handling system creates a set of first containers from a container image that each includes a set of shareable files. The information handling system creates a second container from the container image that is devoid of the set of shared files and includes a pointer that points to a selected one of the first containers. In turn, the second container mounts to the first container and utilizes the shared files included the first container.

Claims (66)

1. A method comprising:

receiving a first container image;

receiving computer code for a first set of shared files;

generating a first container instantiation from the first container image and the computer code for the first set of shared files so that the files of the first set of shared files can be accessed by operation of the first container instantiation;

generating one or more pointers that point to the computer code for at least a portion of the files in first set of shared files in the first container instantiation;

generating a second container instantiation from the first container image and the one or more pointers so that the portion of files of the first set of shared files can be accessed from the first container instantiation by operation of the second container instantiation;

accessing, by the second container instantiation, the computer code for the portion of files of the first set of shared files by using the one or more pointers in the second container instantiation to locate the computer code for the portion of files within the first container instantiation;

in response to upgrading a version of the second container instantiation to an upgraded version second container instantiation:

unmounting the second container instantiation from the first set of shared files;

identifying an upgraded version of the first container instantiation in a container list that matches the version of the upgraded version second container instantiation, wherein the upgraded version of the first container instantiation comprises an upgraded set of shared files;

and

mounting the upgraded version second container instantiation to the upgraded set of shared files included in the upgraded version of the first container instantiation.

2. The method of claim 1 wherein the container image comprises a shared files parameter that identifies the first set of shared files.

3. The method of claim 1 further comprising:

detecting a failure by the second container instantiation to mount the first set of shared files;

identifying a third container instantiation that comprise a second set of shared files;

mounting, by the second container instantiation, the second set of shared files included in the third container instantiation; and

utilizing, by the second container instantiation, the second set of shared files included in the third container instantiation.

4. The method of claim 3 wherein the second container instantiation comprises an embedded proxy, and wherein the proxy performs the mounting of the first set of shared files and the mounting of the second set of shared files.

5. The method of claim 3 wherein, in response to mounting the second set of shared files, the method further comprises:

modifying the container list entry to indicate that the second container instantiation is sharing the second set of shared files included in the third container instantiation.

6. An information handling system comprising:

one or more processors;

a memory coupled to at least one of the processors; and

a set of computer program instructions stored in the memory and executed by at least one of the processors in order to perform actions comprising:

receiving a first container image;

receiving computer code for a first set of shared files;

generating a first container instantiation from the first container image and the computer code for the first set of shared files so that the files of the first set of shared files can be accessed by operation of the first container instantiation;

generating one or more pointers that point to the computer code for at least a portion of the files in first set of shared files in the first container instantiation;

generating a second container instantiation from the first container image and the one or more pointers so that the portion of files of the first set of shared files can be accessed from the first container instantiation by operation of the second container instantiation;

accessing, by the second container instantiation, the computer code for the portion of files of the first set of shared files by using the one or more pointers in the second container instantiation to locate the computer code for the portion of files within the first container instantiation;

in response to upgrading a version of the second container instantiation to an upgraded version second container instantiation:

unmounting the second container instantiation from the first set of shared files;

identifying an upgraded version of the first container instantiation in a container list that matches the version of the upgraded version second container instantiation, wherein the upgraded version of the first container instantiation comprises an upgraded set of shared files;

and

mounting the upgraded version second container instantiation to the upgraded set of shared files included in the upgraded version of the first container instantiation.

7. The information handling system of claim 6 wherein the container image comprises a shared files parameter that identifies the first set of shared files.

8. The information handling system of claim 6 wherein the actions further comprise:

detecting a failure by the second container instantiation to mount the first set of shared files;

identifying a third container instantiation that comprise a second set of shared files;

mounting, by the second container instantiation, the second set of shared files included in the third container instantiation; and

utilizing, by the second container instantiation, the second set of shared files included in the third container instantiation.

9. The information handling system of claim 8 wherein the second container instantiation comprises an embedded proxy, and wherein the proxy performs the mounting of the first set of shared files and the mounting of the second set of shared files.

10. The information handling system of claim 8 wherein, in response to mounting the second set of shared files, the actions further comprise:

modifying the container list entry to indicate that the second container instantiation is sharing the second set of shared files included in the third container instantiation.

11. A computer program product stored in a computer readable storage medium, comprising computer program code that, when executed by an information handling system, performs actions comprising:

receiving a first container image;

receiving computer code for a first set of shared files;

generating a first container instantiation from the first container image and the computer code for the first set of shared files so that the files of the first set of shared files can be accessed by operation of the first container instantiation;

generating one or more pointers that point to the computer code for at least a portion of the files in first set of shared files in the first container instantiation;

generating a second container instantiation from the first container image and the one or more pointers so that the portion of files of the first set of shared files can be accessed from the first container instantiation by operation of the second container instantiation;

accessing, by the second container instantiation, the computer code for the portion of files of the first set of shared files by using the one or more pointers in the second container instantiation to locate the computer code for the portion of files within the first container instantiation;

in response to upgrading a version of the second container instantiation to an upgraded version second container instantiation:

unmounting the second container instantiation from the first set of shared files;

identifying an upgraded version of the first container instantiation in a container list that matches the version of the upgraded version second container instantiation, wherein the upgraded version of the first container instantiation comprises an upgraded set of shared files;

and

mounting the upgraded version second container instantiation to the upgraded set of shared files included in the upgraded version of the first container instantiation.

12. The computer program product of claim 11 wherein the container image comprises a shared files parameter that identifies the first set of shared files.

13. The computer program product of claim 11 wherein the actions further comprise:

detecting a failure by the second container instantiation to mount the first set of shared files;

identifying a third container instantiation that comprise a second set of shared files;

mounting, by the second container instantiation, the second set of shared files included in the third container instantiation; and

utilizing, by the second container instantiation, the second set of shared files included in the third container instantiation.

14. The computer program product of claim 13 wherein the second container instantiation comprises an embedded proxy, and wherein the proxy performs the mounting of the first set of shared files and the mounting of the second set of shared files.

15. The computer program product of claim 13 wherein, in response to mounting the second set of shared files, the actions further comprise:

modifying the container list entry to indicate that the second container instantiation is sharing the second set of shared files included in the third container instantiation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2019
From: ZHANG, JIE; WANG, WEI; GUO, HONG LIN; SUN, JIAN; LIU, XIN PENG; FANG, YUN JIE
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049754/0308 →
Continuity (2)
Continuation 16355956 · Mar 18, 2019
Related Publication 20200301791A1 · Sep 24, 2020