IP Library Granted Patent US 11,716,377
Granted Patent B2
US 11,716,377 · App. 17/508,886 · Granted Aug 1, 2023

Fast provisioning of machines using network cloning

Inventors: Giridhar Subramani Jayavelu (San Francisco, CA); Sidharth Surana (San Jose, CA); Subrahmanyam Bolla (Belmont, CA)
Assignee: VMWARE, INC.
H04L67/10H04L61/5014
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 11,716,377
App. No.
17/508,886
Granted
Aug 1, 2023
Kind
B2
Abstract

Some embodiments of the invention provide a method for cloning a set of one or more applications implemented by a first set of machines connected through a first logical network that defines a virtual private cloud in a set of one or more datacenters. The method instantiates a cloned, second set of machines that is a replicated copy of the first set of machines. The method identifies a set of network configuration data that configures a set of logical forwarding elements (LFEs) of the first logical network. The method uses the identified set of network configuration data to define a cloned, second logical network to connect the cloned, second set of machines.

Claims (41)

1. A method for cloning a set of one or more applications implemented by a first set of machines connected through a first logical network that defines a virtual private cloud in a set of one or more datacenters, the method comprising:

instantiating a cloned, second set of machines that is a replicated copy of the first set of machines;

identifying a set of network configuration data that configures a set of logical forwarding elements (LFEs) of the first logical network; and

using the identified set of network configuration data to define a cloned, second logical network to connect the cloned, second set of machines.

2. The method of claim 1 , wherein:

using the identified set of network configuration data to define the cloned, second logical network to connect the cloned, second set of machines comprises preserving a networking stack of the first set of machines that implement the set of applications; and

preserving the networking stack enables a rapid deployment of the cloned, second logical network by eliminating guest customization required for continuous execution of the set of applications running on the cloned, second set of machines.

3. The method of claim 1 further comprising:

using a DHCP service of the first logical network to create port mappings in the cloned, second logical network, wherein the port mappings are created with static bindings to retain, for the cloned, second logical network, layer 2/layer 3 (L2/L3) address mappings for a set of private L2/L3 addresses allocated in the first logical network; and

removing the set of private L2/L3 addresses from a network address pool of a DHCP server created for the cloned, second logical network.

4. The method of claim 3 , wherein based on the retained L2/L3 address mappings for the set of private L2/L3 addresses, the cloned, second set of machines do not have to learn new L2/L3 address mappings.

5. The method of claim 4 , wherein the L2/L3 address mappings map L2/L3 addresses to virtual interfaces (VIFs) associated with each machine in the cloned, second set of machines.

6. The method of claim 1 , wherein identifying the set of network configuration data comprises:

identifying the set of LFEs configured by the set of network configuration data; and

locating, in storage structure that stores network configuration data for at least the first logical network, a set of one or more files that is associated with the identified set of LFEs of the first logical network and that stores the set of network configuration data.

7. The method of claim 6 , wherein the set of one or more files storing the set of network configuration data also stores network configuration data for configuring a plurality of other logical network components of the first logical network.

8. The method of claim 7 , wherein the plurality of other logical network components comprises at least a dynamic host configuration protocol (DHCP) server, a network address pool, a set of middlebox service rules, middle box service states, a set of virtual network interfaces (VIFs), and port-VIF bindings.

9. The method of claim 8 , wherein using the identified set of network configuration data to define the cloned, second logical network comprises replicating the set of one or more files.

10. The method of claim 9 , wherein the cloned, second logical network comprises (i) a cloned, second set of LFEs that has a same configuration as the set of LFEs of the first logical network, (ii) a cloned, second plurality of other logical network components that has a same configuration as the plurality of other logical network components of the first logical network, and (iii) the cloned, second set of machines that has a same configuration as the first set of machines.

11. The method of claim 1 , wherein the cloned, second set of machines are identical to the first set of machines in (i) processor state, (ii) virtual device state, (iii) memory state, (iv) disk state, and (v) guest operating system.

12. The method of claim 1 , wherein the first logical network and cloned, second logical network connect to a same gateway router that connects both the first logical network and cloned, second logical network to an external network that is different than the first logical network and cloned, second logical network.

13. The method of claim 1 further comprising:

directing network traffic intended for the first logical network to the cloned, second logical network;

performing a software update to one or more elements of the first logical network; and

after completing the software update to the one or more elements of the first logical network, redirecting the network traffic back to the first logical network.

14. The method of claim 1 further comprising:

using the cloned, second logical network to test a software upgrade intended for one or more elements of the first logical network;

upon successful testing, performing the software upgrade for the one or more elements of the first logical network; and

terminating the cloned, second logical network.

15. The method of claim 1 , wherein the cloned, second logical network is one of a set of cloned logical networks, wherein each cloned logical network in the set is a replicated copy of the first logical network comprising (i) a cloned set of machines that is a replicated copy of the first set of machines and that implements the set of applications and (ii) a continuous integration and continuous development (CI/CD) pipeline, the method further comprising:

using each CI/CD pipeline of each cloned logical network in the set of cloned logical networks to test a software upgrade for a particular application in the set of applications; and

upon successful testing, performing the software upgrade for the particular application implemented by the first set of machines of the first logical network; and

terminating the set of cloned logical networks.

16. The method of claim 1 , wherein instantiating the cloned, second set of machines comprises replicating the first set of machines while each machine in the first set of machines is running.

17. The method of claim 1 , wherein instantiating the cloned, second set of machines comprises replicating the first set of machines while each machine (i) is powered on and (ii) is not running.

18. The method of claim 1 , wherein the first set of machines comprise at least one of virtual machines, containers, and pods.

19. The method of claim 1 , wherein the set of LFEs comprise logical switches and logical routers.

20. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for cloning a set of one or more applications implemented by a first set of machines connected through a first logical network that defines a virtual private cloud in a set of one or more datacenters, the program comprising sets of instructions for:

instantiating a cloned, second set of machines that is a replicated copy of the first set of machines;

identifying a set of network configuration data that configures a set of logical forwarding elements (LFEs) of the first logical network; and

using the identified set of network configuration data to define a cloned, second logical network to connect the cloned, second set of machines.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
CHANGE OF NAME Recorded Mar 1, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066724/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2021
From: SUBRAMANI JAYAVELU, GIRIDHAR; SURANA, SIDHARTH; BOLLA, SUBRAHMANYAM
To: VMWARE, INC.
Reel/Frame 057884/0605 →
Continuity (1)
Related Publication 20230125912A1 · Apr 27, 2023
Cited By (1)
US 12,609,982