IP Library Granted Patent US 10,002,015
Granted Patent B2
US 10,002,015 · App. 14/796,640 · Granted Jun 19, 2018

Delayed boot of a virtual machine in a virtualized computing environment based on a fabric limit

Inventors: Samuel D. Matzek (Rochester, MN); Jeffrey W. Tenner (Rochester, MN); Gerald F. McBrearty (Austin, TX)
Assignee: International Business Machines Corporation
G06F9/45558G06F3/065G06F3/067G06F3/0619G06F3/0631G06F3/0632G06F3/0665G06F9/4401G06F9/45533G06F12/023G06F2009/4557G06F2009/45562G06F2009/45575G06F2009/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,002,015
App. No.
14/796,640
Granted
Jun 19, 2018
Kind
B2
Abstract

The invention addresses these and other problems associated with the prior art by providing an apparatus and program product that manage virtual machines in a virtualized computing environment based at least in part on limitations associated with storage fabrics through which virtual machines may access one or more storage systems in such an environment. The storage fabric limitations, referred to herein as fabric limits, may be used, for example, in connection with placing virtual machines on hosts in a virtualized computing environment. As another example, fabric limits may be used in connection with deploying virtual machines into a virtualized computing environment to reduce the likelihood of boot errors. As still another example, fabric limits may be used in connection with load balancing across multiple fabrics in a virtualized computing environment.

Claims (37)

1. An apparatus, comprising:

at least one processor; and

program code configured upon execution by the at least one processor to deploy a virtual machine on a host in a computing environment of the type including a fabric coupling the host to a storage system, the program code configured to, in response to initiation of a deployment of the virtual machine:

create the virtual machine on the host;

determine, for a storage volume allocated for the virtual machine on the storage system, an allocation of a limited fabric resource of the fabric;

determine, based upon the determined allocation, whether the fabric has capacity to boot the virtual machine;

in response to determining that the fabric has sufficient capacity to boot the virtual machine and after creating the virtual machine on the host, initiate a boot of the virtual machine on the host; and

in response to determining that the fabric does not have sufficient capacity to boot the virtual machine and after creating the virtual machine on the host, delay the boot of the virtual machine on the host.

2. The apparatus of claim 1 , wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine by determining a fabric limit for the limited fabric resource, wherein the limited fabric resource comprises a fabric login for a storage switch in the fabric, and wherein the fabric limit comprises an active login limit of the storage switch.

3. The apparatus of claim 2 , wherein the program code is configured to determine the fabric limit by querying the storage switch to retrieve the fabric limit.

4. The apparatus of claim 2 , wherein the program code is configured to determine the allocation of the limited fabric resource by tracking active fabric logins in the computing environment.

5. The apparatus of claim 1 , wherein the program code is configured to delay the boot of the virtual machine on the host by queuing the virtual machine, and wherein the program code is further configured to:

after queuing the virtual machine, determine, for a storage volume allocated for the virtual machine on the storage system, whether the fabric has capacity to boot the queued virtual machine; and

in response to determining that the fabric has capacity to boot the queued virtual machine, dequeue the queued virtual machine and initiate the boot of the queued virtual machine on the host.

6. The apparatus of claim 5 , wherein the program code is configured to determine whether the fabric has capacity to boot the queued virtual machine, dequeue the queued virtual machine and initiate the boot of the queued virtual machine on the host using a monitor process.

7. The apparatus of claim 5 , wherein the queued virtual machine is among a plurality of queued virtual machines, and wherein the program code is further configured to prioritize an order of the plurality of queued virtual machines to be booted once the fabric has capacity to boot at least one of the plurality of queued virtual machines.

8. The apparatus of claim 5 , wherein the storage volume comprises a boot volume, wherein the virtual machine further includes a data volume allocated thereto, and wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine further by determining whether the fabric has capacity to connect the virtual machine to the data volume.

9. The apparatus of claim 8 , wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine further by determining from a configuration setting whether boot of the virtual machine is permitted when the fabric does not have capacity to connect the virtual machine to the data volume.

10. The apparatus of claim 1 , wherein the fabric includes a Fibre Channel switch, and wherein the fabric limit is an active Fabric Login (FLOGI) limit, an active Fabric Discovery (FDISC) limit, a zone limit, or a host limit.

11. The apparatus of claim 1 , wherein the host is among a plurality of a plurality of hosts in the computing environment, and wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine in response to an instruction to boot the virtual machine, and wherein the program code is further configured to, prior to the instruction to boot the virtual machine:

place the virtual machine on the host prior to creating the virtual machine; and

copy an image for the virtual machine to the storage volume.

12. A program product, comprising:

a non-transitory computer readable medium; and

program code stored on the non-transitory computer readable medium and configured upon execution by at least one processor to deploy a virtual machine on a host in a computing environment of the type including a fabric coupling the host to a storage system, the program code configured to deploy the virtual machine by, in response to initiation of a deployment of the virtual machine, creating the virtual machine on the host, determining, for a storage volume allocated for the virtual machine on the storage system, an allocation of a limited fabric resource of the fabric, determining, based upon the determined allocation, whether the fabric has capacity to boot the virtual machine, in response to determining that the fabric has sufficient capacity to boot the virtual machine and after creating the virtual machine on the host, initiating a boot of the virtual machine on the host, and in response to determining that the fabric does not have sufficient capacity to boot the virtual machine and after creating the virtual machine on the host, delaying the boot of the virtual machine on the host.

13. The apparatus of claim 12 , wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine by determining a fabric limit for the limited fabric resource, wherein the limited fabric resource comprises a fabric login for a storage switch in the fabric, and wherein the fabric limit comprises an active login limit of the storage switch.

14. The program product of claim 13 , wherein the program code is configured to determine the allocation of the limited fabric resource by tracking active fabric logins in the computing environment.

15. The program product of claim 12 , wherein the program code is configured to delay the boot of the virtual machine on the host by queuing the virtual machine, and wherein the program code is further configured to:

after queuing the virtual machine, determine, for a storage volume allocated for the virtual machine on the storage system, whether the fabric has capacity to boot the queued virtual machine; and

in response to determining that the fabric has capacity to boot the queued virtual machine, dequeue the queued virtual machine and initiate the boot of the queued virtual machine on the host.

16. The program product of claim 15 , wherein the queued virtual machine is among a plurality of queued virtual machines, and wherein the program code is further configured to prioritize an order of the plurality of queued virtual machines to be booted once the fabric has capacity to boot at least one of the plurality of queued virtual machines.

17. The program product of claim 15 , wherein the storage volume comprises a boot volume, wherein the virtual machine further includes a data volume allocated thereto, and wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine further by determining whether the fabric has capacity to connect the virtual machine to the data volume.

18. The program product of claim 17 , wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine further by determining from a configuration setting whether boot of the virtual machine is permitted when the fabric does not have capacity to connect the virtual machine to the data volume.

19. The program product of claim 15 , wherein the program code is configured to determine whether the fabric has capacity to boot the queued virtual machine, dequeue the queued virtual machine and initiate the boot of the queued virtual machine on the host using a monitor process.

20. The program product of claim 12 , wherein the host is among a plurality of a plurality of hosts in the computing environment, and wherein the program code is configured to determine whether the fabric has capacity to boot the virtual machine in response to an instruction to boot the virtual machine, and wherein the program code is further configured to, prior to the instruction to boot the virtual machine:

place the virtual machine on the host prior to creating the virtual machine; and

copy an image for the virtual machine to the storage volume.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE LAST NAME OF ASSIGNOR SAMUEL D. MATZEK PREVIOUSLY RECORDED ON REEL 036061 FRAME 0187. ASSIGNOR(S) HEREBY CONFIRMS THE LAST NAME OF ASSIGNOR SAMUEL D. MATZEK WAS LISTED AS MALOTT IN ERROR. Recorded Aug 12, 2015
From: MCBREARTY, GERALD F.; MATZEK, SAMUEL D.; TENNER, JEFFREY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036827/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2015
From: MCBREARTY, GERALD F.; MALOTT, SAMUEL D.; TENNER, JEFFREY W.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036061/0187 →
Continuity (1)
Related Publication 20170010897A1 · Jan 12, 2017