IP Library Granted Patent US 9,823,881
Granted Patent B2
US 9,823,881 · App. 14/139,005 · Granted Nov 21, 2017

Ensuring storage availability for virtual machines

Inventors: Gururaja Hegdal (Bangalore, IN); Kiran Kasala (Bangalore, IN); Marichetty M. S. (Bangalore, IN)
Assignee: VMware, Inc.
G06F3/0664G06F3/0604G06F3/0629G06F3/0673G06F9/45558G06F2009/45579
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 9,823,881
App. No.
14/139,005
Granted
Nov 21, 2017
Kind
B2
Abstract

A management server allocates storage for a virtual disk of a virtual machine configured to execute on a first host computer, where the first host computer is associated with a plurality of data storage devices including first and second data storage devices, and where a first portion of storage is allocated to the virtual disk from the first storage device. The management server receives a request to allocate a second portion of storage to the virtual disk of the virtual machine and, responsive to determining that the first data storage device has insufficient free storage space from which to allocate the second portion of storage, selects the second data storage device having sufficient free storage space from which to allocate the second portion of storage. The management server allocates the second portion of storage for the virtual disk of the virtual machine from the second data storage device, wherein the virtual machine accesses the first and second portions of storage as a single virtual disk.

Claims (63)

1. A method for allocating storage provisioned from first and second data storage devices for a virtual disk of a virtual machine configured to execute on a first host computer, where the first host computer is associated with a plurality of data storage devices including the first and second data storage devices, and where a first portion of the storage is allocated to the virtual disk from the first storage device, the method comprising:

receiving a request to allocate a second portion of the storage to the virtual disk of the virtual machine;

responsive to determining that the first data storage device has insufficient free storage space from which to allocate the second portion of the storage, selecting the second data storage device having sufficient free storage space from which to allocate the second portion of the storage; and

allocating the second portion of the storage for the virtual disk of the virtual machine from the second data storage device, wherein the first portion is allocated as a first virtual disk file and the second portion is allocated as a second virtual disk file, and wherein the virtual machine accesses the first and second portions of the storage as a single virtual disk.

2. The method of claim 1 , further comprising:

scanning the plurality of data storage devices for a data storage device with sufficient free storage space from which to allocate the second portion of the storage.

3. The method of claim 2 , further comprising:

responsive to determining that more than one data storage device has sufficient free storage space from which to allocate the second portion of the storage, selecting one of the plurality of data storage devices as the second data storage device, wherein the selected data storage device has a greatest amount of free storage space compared with each of the other data storage devices in the plurality of data storage devices.

4. The method of claim 2 , further comprising:

determining that the virtual machine is a high availability virtual machine, wherein the virtual machine is configured to execute on a second host computer if execution of the virtual machine terminates on the first host computer; and

selecting one of the plurality of storage devices as the second storage device, wherein the selected storage device is accessible to the first host computer and to the second host computer.

5. The method of claim 1 , wherein determining that the first data storage device has insufficient free storage space comprises:

performing a method to extend a storage space of the first data storage device; and

detecting that the method to extend the storage space of the first data storage device has failed.

6. The method of claim 1 , wherein determining that the first data storage device has insufficient free storage space comprises:

performing a method to add one or more extents to the first data storage device; and

detecting that the method to add one or more extents to the first data storage device has failed.

7. The method of claim 1 , further comprising:

after allocating the second portion of the storage to the second data storage device, determining that the first storage device has sufficient free space to store the second portion of the storage; and

migrating the second portion of the storage from the second storage device to the first storage device.

8. A non-transitory computer readable storage medium having stored thereon computer readable program code

for allocating storage provisioned from first and second data storage devices for a virtual disk of a virtual machine configured to execute on a first host computer, where the first host computer is associated with a plurality of data storage devices including the first and second data storage devices, and where a first portion of the storage is allocated to the virtual disk from the first storage device,

the computer readable program code comprising:

computer readable program code to receive a request to allocate a second portion of the storage to the virtual disk of the virtual machine;

computer readable program code to, in response to determining that the first data storage device has insufficient free storage space from which to allocate the second portion of the storage, select the second data storage device having sufficient free storage space from which to allocate the second portion of the storage; and

computer readable program code to allocate the second portion of the storage for the virtual disk of the virtual machine from the second data storage device, wherein the first portion is allocated as a first virtual disk file and the second portion is allocated as a second virtual disk file and, wherein the virtual machine accesses the first and second portions of the storage as a single virtual disk.

9. The computer readable storage medium of claim 8 , the computer readable program code further comprising:

computer readable program code to scan the plurality of data storage devices for a data storage device with sufficient free storage space from which to allocate the second portion of the storage.

10. The computer readable storage medium of claim 9 , the computer readable program code further comprising:

computer readable program code to, in response to determining that more than one data storage device has sufficient free storage space from which to allocate the second portion of the storage, select one of the plurality of data storage devices as the second data storage device, wherein the selected data storage device has a greatest amount of free storage space compared with each of the other data storage devices in the plurality of data storage devices.

11. The computer readable storage medium of claim 9 , the computer readable program code further comprising:

computer readable program code to determine that the virtual machine is a high availability virtual machine, wherein the virtual machine is configured to execute on a second host computer if execution of the virtual machine terminates on the first host computer; and

computer readable program code to select one of the plurality of storage devices as the second storage device, wherein the selected storage device is accessible to the first host computer and to the second host computer.

12. The computer readable storage medium of claim 8 , wherein the computer readable program code to determine that the first data storage device has insufficient free storage space comprises:

computer readable program code to perform a method to extend a storage space of the first data storage device; and

computer readable program code to detect that the method to extend the storage space of the first data storage device has failed.

13. The computer readable storage medium of claim 8 , wherein the computer readable program code to determine that the first data storage device has insufficient free storage space comprises:

computer readable program code to perform a method to add one or more storage extents to the first data storage device; and

computer readable program code to detect that the method to add one or more storage extents to the first data storage device has failed.

14. The computer readable storage medium of claim 8 , the computer readable program code further comprising:

computer readable program code to determine, after allocating the second portion of the storage to the second data storage device, that the first storage device has sufficient free space to store the second portion of the storage; and

computer readable program code to migrate the second portion of the storage from the second storage device to the first storage device.

15. A virtualized computing system, comprising:

a first host computer with a virtual machine executing therein;

a plurality of data storage devices including first and second data storage devices that are associated with the first host computer; and

a management server configured to allocate storage provisioned from the first and second data storage devices for a virtual disk of the virtual machine, wherein a first portion of the storage is allocated to the virtual disk from the first storage device and the management server is configured to:

receive a request to allocate a second portion of the storage to the virtual disk of the virtual machine;

in response to determining that the first data storage device has insufficient free storage space from which to allocate the second portion of the storage, select the second data storage device having sufficient free storage space from which to allocate the second portion of the storage; and

allocate the second portion of the storage for the virtual disk of the virtual machine from the second data storage device, wherein the first portion is allocated as a first virtual disk file and the second portion is allocated as a second virtual disk file, and wherein the virtual machine accesses the first and second portions of the storage as a single virtual disk.

16. The system of claim 15 , wherein the management server is further configured to scan the plurality of data storage devices for a data storage device with sufficient free storage space from which to allocate the second portion of the storage.

17. The system of claim 16 , wherein the management server is further configured to: in response to determining that more than one data storage device has sufficient free storage space from which to allocate the second portion of the storage, select one of the plurality of data storage devices as the second data storage device, wherein the selected data storage device has a greatest amount of free storage space compared with each of the other data storage devices in the plurality of data storage devices.

18. The system of claim 16 , wherein the management server is further configured to:

determine that the virtual machine is a high availability virtual machine, wherein the virtual machine is configured to execute on a second host computer if execution of the virtual machine terminates on the first host computer; and

select one of the plurality of storage devices as the second storage device, wherein the selected storage device is accessible to the first host computer and to the second host computer.

19. The system of claim 15 , wherein the management server is further configure to:

perform a method to extend a storage space of the first data storage device; and

detect that the method to extend the storage space of the first data storage device has failed.

20. The system of claim 15 , wherein the management server is further configured to:

perform a method to add one or more storage extents to the first data storage device; and

detect that the method to add one or more storage extents to the first data storage device has failed.

21. The system of claim 15 , wherein the management server is further configured to:

after allocating the second portion of the storage to the second data storage device, determine that the first storage device has sufficient free space to store the second portion of the storage; and

migrate the second portion of the storage from the second storage device to the first storage device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2013
From: HEGDAL, GURURAJA; KASALA, KIRAN; M.S., MARICHETTY
To: VMWARE, INC.
Reel/Frame 031842/0128 →
Continuity (1)
Related Publication 20150178019A1 · Jun 25, 2015