IP Library Granted Patent US 10,983,819
Granted Patent B2
US 10,983,819 · App. 16/127,252 · Granted Apr 20, 2021

Dynamic provisioning and delivery of virtual applications

Inventors: Revanur Venkatesh (Bangalore, IN); Siva Praveen Mummaneni (Bangalore, IN); Rahul Kumar (Bangalore, IN); Manigandan Bakthavatchalam (Bangalore, IN)
Assignee: VMware, Inc.
G06F9/45558G06F9/5077G06F16/188G06F2009/45562
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,983,819
App. No.
16/127,252
Granted
Apr 20, 2021
Kind
B2
Abstract

The disclosure provides an approach for mounting a virtual disk to a virtual computing instance (VCI). The method comprises obtaining a set of required applications for each VCI in a set of VCIs. The method comprises obtaining constraints of each VCI in the set of VCIs. The method further comprises determining pair-wise application overlap between each pair of VCIs of the set of VCI, wherein the overlap complies with constraints of the two VCIs for which the overlap is determined. The method also comprises placing applications of at least one of the application overlaps into a virtual disk file, associating the virtual disk with the virtual disk file, and mounting the virtual disk to a first VCI of the set of VCIs.

Claims (52)

1. A method of mounting a first virtual disk to a first virtual machine (VM), the method comprising:

obtaining a set of required applications of the first VM and a set of required applications of a second VM;

obtaining constraints of the first VM and constraints of the second VM, wherein the first VM is different than the second VM, wherein constraints of the first VM include a first maximum number of applications per virtual disk of the first VM, wherein constraints of the second VM include a second maximum number of applications per virtual disk of the second VM, wherein the first maximum number of applications is different than the second maximum number of applications;

determining an application overlap between the set of required applications of the first VM and the set of required applications of the second VM, wherein the application overlap complies with the constraints of the first VM and the constraints of the second VM;

placing applications of the application overlap into a first virtual disk file; and

mounting the first virtual disk file to the first VM as the first virtual disk.

2. The method of claim 1 , wherein the constraints of the first VM include a number of available virtual disk mounting slots on the first VM.

3. The method of claim 1 , wherein the first VM and the second VM are constituents of a set of VMs, wherein determining the application overlap comprises:

determining which VMs of the set of VMs have the least number of available virtual disk mounting slots; and

for the VMs that have the least number of available virtual disk mounting slots, determining at least one largest pair-wise overlap.

4. The method of claim 1 , further comprising:

splitting applications of the application overlap into at least a first set of applications and a second set of applications, the first set being equal in number to the smaller of the first maximum number and the second maximum number; and

choosing applications of the first set as applications to be placed into the first virtual disk file.

5. The method of claim 1 , further comprising transferring an application from a partition of the first virtual disk file to a partition of a second virtual disk file, and updating the first virtual disk to reflect deletion of the application from the partition of the first virtual disk file.

6. The method of claim 1 , wherein the placing applications comprises placing each application into a separate partition of the first virtual disk file.

7. The method of claim 6 , wherein each separate partition containing an application comprises a file system separate from file systems of other partitions of the first virtual disk file.

8. The method of claim 1 , further comprising:

prior to mounting the first virtual disk to the first VM, determining whether a ratio of a number of the set of required applications of the first VM that are contained within the first virtual disk to a total number of applications contained within the first virtual disk satisfies a threshold, wherein mounting the first virtual disk to the first VM is performed based on the ratio satisfying the threshold.

9. A non-transitory computer readable medium comprising instructions to be executed in a processor of a computer system, the instructions when executed in the processor cause the computer system to carry out a method of mounting a first virtual disk to a first virtual machine (VM), the method comprising:

obtaining a set of required applications of the first VM and a set of required applications of a second VM;

obtaining constraints of the first VM and constraints of the second VM, wherein the first VM is different than the second VM wherein constraints of the first VM include a first maximum number of applications pr virtual disk of the first VM wherein constraints of the second VM include a second maximum number of applications per virtual disk of the second VM, wherein the first maximum number of applications is different than the second maximum number of applications;

determining an application overlap between the set of required applications of the first VM and the set of required applications of the second VM, wherein the overlap complies with the constraints of the first VM and the constraints of the second VM;

placing applications of the application overlap into a first virtual disk file; and

mounting the first virtual disk file to the first VM as the first virtual disk.

10. The non-transitory computer readable medium of claim 9 , wherein the constraints of the first VM include a number of available virtual disk mounting slots on the first VM.

11. The non-transitory computer readable medium of claim 9 , wherein the first VM and the second VM are constituents of a set of VMs, wherein determining the application overlap comprises:

determining which VMs of the set of VMs have the least number of available virtual disk mounting slots; and

for the VMs that have the least number of available virtual disk mounting slots, determining at least one largest pair-wise overlap.

12. The non-transitory computer readable medium of claim 9 , the method further comprising:

splitting applications of the application overlap into at least a first set of applications and a second set of applications, the first set being equal in number to the smaller of the first maximum number and the second maximum number; and

choosing applications of the first set as applications to be placed into the first virtual disk file.

13. The non-transitory computer readable medium of claim 9 , the method further comprising transferring an application from a partition of the first virtual disk file to a partition of a second virtual disk file, and updating the first virtual disk to reflect deletion of the application from the partition of the first virtual disk file.

14. The non-transitory computer readable medium of claim 9 , wherein the placing applications comprises placing each application into a separate partition of the first virtual disk file.

15. The non-transitory computer readable medium of claim 14 , wherein each separate partition containing an application comprises a file system separate from file systems of other partitions of the first virtual disk file.

16. A computer system comprising:

a first virtual computing instance (VCI) and a second VCI;

a first virtual disk and a first virtual disk file; and

a processor, wherein the processor is programmed to carry out a method of mounting the first virtual disk to the first VCI, the method comprising:

obtaining a set of required applications of the first VCI and a set of required applications of the second VCI;

obtaining constraints of the first VCI and constraints of the second VCI, wherein the first VCI is different than the second VCI, wherein constraints of the first VCI include a first maximum number of applications per virtual disk of the first VCI, wherein constraints of the second VCI include a second maximum number of applications per virtual disk of the second VCI wherein the first maximum number of applications is different than the second maximum number of applications;

determining an application overlap between the set of required applications of the first VCI and the set of required applications of the second VCI, wherein the overlap complies with the constraints of the first VCI and the constraints of the second VCI;

placing applications of the application overlap into the first virtual disk file; and

mounting the first virtual disk file to the first VCI as the first virtual disk.

17. The computer system of claim 16 , wherein the constraints of the first VCI include a number of available virtual disk mounting slots on the first VCI.

18. The computer system of claim 16 , wherein the first VCI and the second VCI are constituents of a set of VCIs, wherein determining the application overlap comprises:

determining which VCIs of the set of VCIs have the least number of available virtual disk mounting slots; and

for the VCIs that have the least number of available virtual disk mounting slots, determining at least one largest pair-wise overlap.

19. The computer system of claim 16 , the method further comprising:

splitting applications of the application overlap into at least a first set of applications and a second set of applications, the first set being equal in number to the smaller of the first maximum number and the second maximum number; and

choosing applications of the first set as applications to be placed into the first virtual disk file.

20. The computer system of claim 16 , wherein the placing applications comprises placing each application into a separate partition of the first virtual disk file.

21. The computer system of claim 20 , wherein each separate partition containing an application comprises a file system separate from file systems of other partitions of the first virtual disk file.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2018
From: VENKATESH, REVANUR; MUMMANENI, SIVA PRAVEEN; KUMAR, RAHUL; BAKTHAVATCHALAM, MANIGANDAN
To: VMWARE, INC.
Reel/Frame 046833/0655 →