Image file optimizations by opportunistic sharing

US11262953B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11262953-B2
Application numberUS-202016752305-A
CountryUS
Kind codeB2
Filing dateJan 24, 2020
Priority dateJan 24, 2020
Publication dateMar 1, 2022
Grant dateMar 1, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Container images are fetched in a clustered container host system with a shared storage device. Fetching a first container image in a first virtual machine includes creating a first virtual disk in the shared storage device, storing an image of the first container in the first virtual disk, mounting the first virtual disk to the first virtual machine, and updating a metadata cache to associate the image of the first container to the first virtual disk. Fetching a second container image in a second virtual machine includes checking the metadata cache to determine that a portion of the image of the second container is stored in the first virtual disk, creating a second virtual disk in the shared storage device, adding a reference to the first virtual disk in a metadata of the second virtual disk, and mounting the second virtual disk to the second virtual machine.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of fetching container images in a clustered container host system comprising a plurality of hosts that share a storage device, wherein the hosts include a virtualization software layer that support execution of virtual machines in the hosts, and one or more virtual machines has implemented therein a container engine that supports execution of containers within the respective virtual machines, said method comprising: in connection with deploying a first container in a first virtual machine, creating a first virtual disk in the storage device, storing an image of the first container in the first virtual disk, mounting the first virtual disk to the first virtual machine, and updating a metadata cache to associate the image of the first container to the first virtual disk; and in connection with deploying a second container in a second virtual machine, checking the metadata cache to determine that a portion of the image of the second container is stored in the first virtual disk, creating a second virtual disk in the storage device, adding a reference to the first virtual disk in a metadata of the second virtual disk, and mounting the second virtual disk to the second virtual machine. 2. The method of claim 1 , wherein the image of the second container comprises a plurality of layers arranged top to bottom in a hierarchy and the portion of the image of the second container that is stored in the first virtual disk includes one or more uppermost layers in the hierarchy. 3. The method of claim 2 , wherein the portion of the image of the second container is identical to the image of the first container. 4. The method of claim 3 , wherein the first and second virtual machines are running in different hosts. 5. The method of claim 3 , wherein the first and second virtual machines are the same virtual machine. 6. The method of claim 1 , wherein the first and second virtual machines are pods of a Kubernetes system and the hosts are nodes of a Kubernetes cluster. 7. The method of claim 1 , further comprising: in connection with deploying a third container in a third virtual machine, checking the metadata cache to determine that a portion of the image of the third container overlaps with a portion of the image of the first container stored in the first virtual disk, creating third and fourth virtual disks in the storage device, fetching data into the third and fourth virtual disks, adding a reference to the third virtual disk in a metadata of the fourth virtual disk, and mounting the fourth virtual disk to the third virtual machine. 8. The method of claim 7 , wherein the data fetched into the third virtual disk is data of the overlapping portion of the images of the first and third containers, and the data fetched into the fourth virtual disk is data of the non-overlapping portion of the image of the third container. 9. The method of claim 8 , wherein the image of the third container comprises a plurality of layers arranged top to bottom in a hierarchy and the portion of the image of the third container that is stored in the third virtual disk includes one or more uppermost layers in the hierarchy. 10. The method of claim 9 , further comprising: in connection with deploying a fourth container in a fourth virtual machine, checking the metadata cache to determine that a portion of the image of the fourth container is stored in the third virtual disk, creating a fifth virtual disk, adding a reference to the third virtual disk in a metadata of the fifth virtual disk, and mounting the fifth virtual disk to the fourth virtual machine. 11. A non-transitory computer readable medium comprising instructions to be executed in a computing device to cause the computing device to carry out a method of fetching container images in a clustered container host system with a shared storage device, wherein hosts include a virtualization software layer that support execution of virtual machines in the hosts, and one or more virtual machines has implemented therein a container engine that supports execution of containers within the respective virtual machines, said method comprising: in connection with deploying a first container in a first virtual machine, creating a first virtual disk in the shared storage device, storing an image of the first container in the first virtual disk, mounting the first virtual disk to the first virtual machine, and updating a metadata cache to associate the image of the first container to the first virtual disk; and in connection with deploying a second container in a second virtual machine, checking the metadata cache to determine that a portion of the image of the second container is stored in the first virtual disk, creating a second virtual disk in the shared storage device, adding a reference to the first virtual disk in a metadata of the second virtual disk, and mounting the second virtual disk to the second virtual machine. 12. The non-transitory computer readable medium of claim 11 , wherein the image of the second container comprises a plurality of layers arranged top to bottom in a hierarchy and the portion of the image of the second container that is stored in the first virtual disk includes one or more uppermost layers in the hierarchy. 13. The non-transitory computer readable medium of claim 12 , wherein the portion of the image of the second container is identical to the image of the first container. 14. The non-transitory computer readable medium of claim 13 , wherein the first and second virtual machines are running in different hosts. 15. The non-transitory computer readable medium of claim 13 , wherein the first and second virtual machines are the same virtual machine. 16. The non-transitory computer readable medium of claim 11 , wherein the first and second virtual machines are pods of a Kubernetes system and the hosts are nodes of a Kubernetes cluster. 17. The non-transitory computer readable medium of claim 11 , wherein the method further comprises: in connection with deploying a third container in a third virtual machine, checking the metadata cache to determine that a portion of the image of the third container overlaps with a portion of the image of the first container stored in the first virtual disk, creating third and fourth virtual disks in the shared storage device, fetching data into the third and fourth virtual disks, adding a reference to the third virtual disk in a metadata of the fourth virtual disk, and mounting the fourth virtual disk to the third virtual machine. 18. The non-transitory computer readable medium of claim 17 , wherein the data fetched into the third virtual disk is data of the overlapping portion of the images of the first and third containers, and the data fetched into the fourth virtual disk is data of the non-overlapping portion of the image of the third container, and the image of the third container comprises a plurality of layers arranged top to bottom in a hierarchy and the portion of the image of the third container that is stored in the third virtual disk includes one or more uppermost layers in the hierarchy. 19. A clustered container host system comprising: a storage device; and a plurality of hosts that share the storage device, wherein the hosts each include a virtualization software layer that supports execution of virtual machines (VMs) therein, and one or more VMs are pod VMs that have implemented therein a container engine that supports execution of containers within the respective pod VMs, wherein in connection with deploying a first containe

Assignees

Inventors

Classifications

  • Creating, deleting, cloning virtual machine instances · CPC title

  • G06F3/0665Primary

    at area level, e.g. provisioning of virtual or logical volumes · CPC title

  • Network integration; Enabling network access in virtual machine instances · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11262953B2 cover?
Container images are fetched in a clustered container host system with a shared storage device. Fetching a first container image in a first virtual machine includes creating a first virtual disk in the shared storage device, storing an image of the first container in the first virtual disk, mounting the first virtual disk to the first virtual machine, and updating a metadata cache to associate …
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0665. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).