IP Library Granted Patent US 9,697,032
Granted Patent B2
US 9,697,032 · App. 14/585,235 · Granted Jul 4, 2017

Automated network configuration of virtual machines in a virtual lab environment

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,697,032
App. No.
14/585,235
Granted
Jul 4, 2017
Kind
B2
Abstract

Methods, systems, and computer programs for creating virtual machines (VM) and associated networks in a virtual infrastructure are presented. The method defines virtual network templates in a database, where each virtual network template includes network specifications. A configuration of a virtual system is created, which includes VMs, virtual lab networks associated with virtual network templates, and connections from the VMs to the virtual lab networks. Further, the configuration is deployed in the virtual infrastructure resulting in a deployed configuration. The deployment of the configuration includes instantiating in the virtual infrastructure the VMs of the configuration, instantiating in the virtual infrastructure the virtual lab networks, retrieving information from the database, and creating and executing programming instructions for the VMs. The database information includes the network specifications from the virtual network templates associated with the virtual lab networks, and network resources for the virtual lab networks from a pool of available network resources. The programming instructions are created for the particular Guest Operating System (GOS) running in each VM based on the GOS and on the retrieved database information. When executed in the corresponding VM GOS, the programming instructions configure the VMs network interfaces with the corresponding network specifications.

Claims (70)

1. A method comprising:

storing virtual network templates in a database, each virtual network template including data, settings, and network specifications that represent an abstraction of a network comprising a plurality of virtual machines (VM);

receiving a configuration of a virtual system; and

deploying the configuration in a virtual infrastructure to obtain a deployed configuration, the deploying comprising:

instantiating VMs of the configuration;

retrieving information from the database, the information including:

the network specifications from the virtual network templates associated with virtual networks of the configuration, and

network resources for the virtual networks;

providing programming instructions for each of the VMs of the configuration according the retrieved information from the database; and

executing the programming instructions to configure the VMs network interfaces with the corresponding network specifications.

2. The method as recited in claim 1 , further comprising:

cloning the configuration of the virtual system to create a cloned configuration; and

deploying the cloned configuration in the virtual infrastructure to obtain a cloned deployed configuration, wherein each deployed configuration has identical network specifications and the deployed configurations do not conflict with each other.

3. The method as recited in claim 1 , further comprising:

creating a VM template, the VM template including one or more network interfaces; and

associating each network interface of the VM template with one of the virtual networks, wherein a VM associated with the VM template is configured with the network specifications of a network of the virtual networks when the VM is instantiated during the deploying.

4. The method as recited in claim 1 , wherein the network specifications are selected from a group consisting of a subnet mask, a gateway, a network address range, one or more Domain Name System (DNS) servers, available addressing modes, shared network or configuration local network (CLN) mode, or fencing mode.

5. The method as recited in claim 1 , wherein one of the virtual networks is an isolated networks and available only to VMs in the deployed configuration, and wherein another of the virtual networks is a shared network and is available to all deployed configurations.

6. The method as recited in claim 1 , further comprising:

copying the configuration of the virtual system to create a copy configuration;

modifying the copy configuration; and

deploying the copy configuration to obtain a deployed copy configuration, wherein the deployed configuration and the deployed copy configuration coexist within the virtual infrastructure without conflicting with each other.

7. The method as recited in claim 1 , further comprising:

capturing an existing VM in the virtual infrastructure to create a VM template; and

reconfiguring network interfaces from the existing VM to a matching network template in the created VM template.

8. The method as recited in claim 1 , further comprising:

copying a source VM from the configuration to a copy VM in a second configuration of the virtual system; and

reconfiguring the network interfaces in the copy VM with matching networks in the second configuration.

9. The method as recited in claim 1 , wherein the configuration of the virtual system further includes: virtual network interface cards (VNIC) for the VMs, wherein the connections from the VMs to the virtual networks are associated with a corresponding VNIC.

10. A system comprising:

a database for storing virtual network templates and configurations of virtual systems, wherein each virtual network template includes data, settings, and network specifications that represent an abstraction of a network of a plurality of VMs, wherein each configuration includes VMs, virtual networks associated with virtual network templates, and connections from the VMs to the virtual networks; and

a processor programmed to:

receive a configuration of a virtual system; and

deploy the configuration in a virtual infrastructure to obtain a deployed configuration, the deploying comprising:

instantiating VMs of the configuration;

retrieving information from the database, the information including:

the network specifications from the virtual network templates associated with virtual networks of the configuration, and

network resources for the virtual networks;

providing programming instructions for each of the VMs of the configuration according the retrieved information from the database; and

executing the programming instructions to configure the VMs network interfaces with the corresponding network specifications.

11. The system of claim 10 , wherein the processor is further programmed to:

clone the configuration of the virtual system to create a cloned configuration; and

deploy the cloned configuration in the virtual infrastructure to obtain a cloned deployed configuration, wherein each deployed configuration has identical network specifications and the deployed configurations do not conflict with each other.

12. The system of claim 10 , wherein the processor is further programmed to:

create a VM template, the VM template including one or more network interfaces; and

associate each network interface of the VM template with one of the virtual networks, wherein a VM associated with the VM template is configured with the network specifications of a network of the virtual networks when the VM is instantiated during the deploying.

13. The system of claim 10 , wherein the network specifications are selected from a group consisting of a subnet mask, a gateway, a network address range, one or more Domain Name System (DNS) servers, available addressing modes, shared network or configuration local network (CLN) mode, or fencing mode.

14. The system of claim 10 , wherein one of the virtual networks is an isolated networks and available only to VMs in the deployed configuration, and wherein another of the virtual networks is a shared network and is available to all deployed configurations.

15. One or more non-transitory computer-readable storage medium comprising computer-executable instructions that when executed by a processor, cause the processor to:

store virtual network templates in a database, each virtual network template including data, settings, and network specifications that represent an abstraction of a network comprising a plurality of virtual machines (VM);

receive a configuration of a virtual system; and

deploy the configuration in a virtual infrastructure to obtain a deployed configuration, the deploying comprising:

instantiating VMs of the configuration;

retrieving information from the database, the information including:

the network specifications from the virtual network templates associated with virtual networks of the configuration, and

network resources for the virtual networks;

providing programming instructions for each of the VMs of the configuration according the retrieved information from the database; and

executing the programming instructions to configure the VMs network interfaces with the corresponding network specifications.

16. The one or more non-transitory computer-readable storage medium claim 15 , wherein the computer-executable instructions further cause the processor to:

clone the configuration of the virtual system to create a cloned configuration; and

deploy the cloned configuration in the virtual infrastructure to obtain a cloned deployed configuration, wherein each deployed configuration has identical network specifications and the deployed configurations do not conflict with each other.

17. The one or more non-transitory computer-readable storage medium claim 15 , wherein the computer-executable instructions further cause the processor to:

create a VM template, the VM template including one or more network interfaces; and

associate each network interface of the VM template with one of the virtual networks, wherein a VM associated with the VM template is configured with the network specifications of a network of the virtual networks when the VM is instantiated during the deploying.

18. The one or more non-transitory computer-readable storage medium claim 15 , wherein the network specifications are selected from a group consisting of a subnet mask, a gateway, a network address range, one or more Domain Name System (DNS) servers, available addressing modes, shared network or configuration local network (CLN) mode, or fencing mode.

19. The one or more non-transitory computer-readable storage medium claim 15 , wherein one of the virtual networks is an isolated networks and available only to VMs in the deployed configuration, and wherein another of the virtual networks is a shared network and is available to all deployed configurations.

20. The one or more non-transitory computer-readable storage medium claim 15 , wherein the computer-executable instructions further cause the processor to:

copy the configuration of the virtual system to create a copy configuration;

modify the copy configuration; and

deploy the copy configuration to obtain a deployed copy configuration, wherein the deployed configuration and the deployed copy configuration coexist within the virtual infrastructure without conflicting with each other.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2018
From: VMWARE, INC.
To: NICIRA, INC.
Reel/Frame 045277/0440 →