IP Library Granted Patent US 11,894,983
Granted Patent B2
US 11,894,983 · App. 16/820,624 · Granted Feb 6, 2024

Simulation and testing of infrastructure as a service scale using a container orchestration engine

Inventors: Sai Sindhur Malleni (Westford, MA); Venkata Anil Kumar Kommaddi (Bengaluru, IN)
Assignee: Red Hat, Inc.
H04L41/145G06F9/45558H04L49/70H04L63/0263G06F2009/4557G06F2009/45562G06F2009/45595
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,894,983
App. No.
16/820,624
Granted
Feb 6, 2024
Kind
B2
Abstract

Systems and methods for scale testing infrastructure as a service systems are disclosed. A processing device generates a container image including a plurality of processes for providing compute functions and modifying a fake virtual driver with network switch functionality. The plurality of processes includes a compute process to create fake virtual machines using the modified fake virtual driver. The processing device generates a plurality of simulated compute nodes using the container image and generates a plurality of fake virtual machines using the modified fake virtual driver on one or more simulated compute nodes, scheduled as pods using a container orchestration engine. In this way, network and messaging traffic on the control plane is effectively simulated at scale. The modified fake driver enables network switch functionality so that network configuration for each fake virtual machine may be simulated, thereby mimicking the network actions of a virtual machine on a compute node.

Claims (46)

1. A method comprising:

modifying a simulated virtual driver with virtual switch functionality to emulate networking actions between a plurality of virtual machines;

generating a container image including the modified simulated virtual driver and a plurality of processes, wherein the plurality of processes includes a compute process to create and terminate simulated virtual machines using the modified simulated virtual driver;

generating, by a processing device, a plurality of simulated compute nodes using the container image, wherein generating the plurality of simulated compute nodes comprises scheduling, using a container orchestration engine, the plurality of simulated compute nodes as one or more pods, each of the one or more pods having a first script to configure each of the one or more pods as a simulated compute node with its own internet protocol (IP) address, a simulated network stack, and a second script to communicate with the control plane; and

creating a plurality of simulated virtual machines on a simulated compute node of the plurality of simulated compute nodes using the modified simulated virtual driver to simulate network traffic on a control plane, wherein the modified simulated virtual driver uses the virtual switch functionality to simulate a network configuration of each simulated virtual machine that is created on the simulated compute node.

2. The method of claim 1 , wherein the plurality of processes further includes:

one or more processes to enable the virtual switch functionality and commands within the simulated compute node; and

a network service agent that interacts with the modified simulated virtual driver to simulate the network configuration of each simulated virtual machine that is created on the simulated compute node and thereby simulate network traffic on the control plane, wherein the virtual network switch functionality allows the modified simulated virtual driver to interact with the network service agent.

3. The method of claim 2 , wherein simulating the network configuration of each simulated virtual machine that is created on the simulated compute node comprises:

performing virtual interface (VIF) plugging operations for the simulated virtual machine including creating an open virtual switch (OvS) internal interface for the simulated virtual machine on an internal OpenStack bridge of the simulated compute node;

in response to creation of the OvS internal interface, adding corresponding flows and firewall rules to the simulated virtual machine; and

notifying a network service on the control plane about the VIF plugging operations.

4. The method of claim 1 , wherein generating the plurality of simulated compute nodes further comprises: defining a replicaset object with a specified number of simulated compute nodes to maintain, wherein in response to detecting that one or more simulated compute nodes have been deleted, the replicaset object creates additional simulated compute nodes to maintain the specified number of simulated compute nodes.

5. The method of claim 1 , wherein each simulated compute node is generated independently of the control plane, self-reports its existence to the control plane, and generates messaging traffic between each simulated compute node and the control plane.

6. The method of claim 1 , wherein the modified simulated virtual driver stores an internal status data structure and reports to the control plane about the internal status data structure, and wherein the internal status data structure does not correspond to any of the plurality of simulated virtual machines.

7. A system comprising:

a memory; and

a processing device operatively coupled to the memory, the processing device to:

modify a simulated virtual driver with virtual switch functionality to emulate networking actions between a plurality of virtual machines;

generate a container image including the modified simulated virtual driver and a plurality of processes, wherein the plurality of processes includes a compute process to create and terminate simulated virtual machines using the modified simulated virtual driver;

generate a plurality of simulated compute nodes using the container image, wherein to generate the plurality of simulated compute nodes is further to schedule, using a container orchestration engine, the plurality of simulated compute nodes as one or more pods, each of the one or more pods having a first script to configure each of the one or more pods as a simulated compute node with its own internet protocol (IP) address, a simulated network stack, and a second script to communicate with the control plane; and

create a plurality of simulated virtual machines on a simulated compute node of the plurality of simulated compute nodes using the modified simulated virtual driver, to simulate network traffic on a control plane, wherein the modified simulated virtual driver uses the virtual switch functionality to simulate a network configuration of each simulated virtual machine that is created on the simulated compute node.

8. The system of claim 7 , wherein the plurality of processes further includes:

one or more processes to enable the virtual switch functionality and commands within the simulated compute node; and

a network service agent that interacts with the modified simulated virtual driver to simulate the network configuration of each virtual machine that is created on the simulated compute node and thereby simulate network traffic on the control plane, wherein the virtual network switch functionality allows the modified simulated virtual driver to interact with the network service agent.

9. The system of claim 8 , wherein to simulate the network configuration of each simulated virtual machine that is created on the simulated compute node, the processing device is to:

perform virtual interface (VIF) plugging operations for the simulated virtual machine including creating an open virtual switch (OvS) internal interface for the simulated virtual machine on an internal OpenStack bridge of the simulated compute node;

in response to creation of the OvS internal interface, add corresponding flows and firewall rules to the simulated virtual machine; and

notify a network service on the control plane about the VIF plugging operations.

10. The system of claim 7 , wherein to generate the plurality of simulated compute nodes, the processing device is further to: define a replicaset object with a specified number of simulated compute nodes to maintain, wherein in response to detecting that one or more simulated compute nodes have been deleted, the replicaset object creates additional simulated compute nodes to maintain the specified number of simulated compute nodes.

11. The system of claim 7 , wherein each simulated compute node is generated independently of the control plane, self-reports its existence to the control plane, and generates messaging traffic between each simulated compute node and the control plane.

12. The system of claim 7 , wherein the modified simulated virtual driver stores an internal status data structure and reports to the control plane about the internal status data structure, and wherein the internal status data structure does not correspond to any of the plurality of simulated virtual machines.

13. A non-transitory computer readable medium having instruction stored thereon that, when executed by a processing device, cause the processing device to:

modify a simulated virtual driver with virtual switch functionality to emulate networking actions between a plurality of virtual machines;

generate a container image including the modified simulated virtual driver and a plurality of processes, wherein the plurality of processes includes a compute process to create and terminate simulated virtual machines using the modified simulated virtual driver;

generate, by the processing device, a plurality of simulated compute nodes using the container image, wherein to generate the plurality of simulated compute nodes is further to schedule, using a container orchestration engine, the plurality of simulated compute nodes as one or more pods, each of the one or more pods having a first script to configure each of the one or more pods as a simulated compute node with its own internet protocol (IP) address, a simulated network stack, and a second script to communicate with the control plane; and

create a plurality of simulated virtual machines on a simulated compute node of the plurality of simulated compute nodes using the modified simulated virtual driver, to simulate network traffic on a control plane, wherein the modified simulated virtual driver uses the virtual switch functionality to simulate a network configuration of each simulated virtual machine that is created on the simulated compute node.

14. The non-transitory computer readable medium of claim 13 , wherein the plurality of processes further includes:

one or more processes to enable the virtual switch functionality and commands within the simulated compute node; and

a network service agent that interacts with the modified simulated virtual driver to simulate the network configuration of each simulated virtual machine that is created on the simulated compute node and thereby simulate network traffic on the control plane, wherein the virtual network switch functionality allows the modified simulated virtual driver to interact with the network service agent.

15. The non-transitory computer readable medium of claim 14 , wherein to simulate the network configuration of each simulated virtual machine that is created on the simulated compute node, the processing device is to:

perform virtual interface (VIF) plugging operations for the simulated virtual machine including creating a open virtual switch (OvS) internal interface for the simulated virtual machine on an internal OpenStack bridge of the simulated compute node;

in response to creation of the OvS internal interface, add corresponding flows and firewall rules to the simulated virtual machine; and

notify a network service on the control plane about the VIF plugging operations.

16. The non-transitory computer readable medium of claim 13 , wherein to generate the plurality of simulated compute nodes, the processing device is further to: define a replicaset object with a specified number of simulated compute nodes to maintain, wherein in response to detecting that one or more simulated compute nodes have been deleted, the replicaset object creates additional simulated compute nodes to maintain the specified number of simulated compute nodes.

17. The non-transitory computer readable medium of claim 13 , wherein each simulated compute node is generated independently of the control plane and self-reports its existence to the control plane.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: MALLENI, SAI SINDHUR; KOMMADDI, VENKATA ANIL
To: RED HAT, INC.
Reel/Frame 065954/0904 →
Continuity (1)
Related Publication 20210288885A1 · Sep 16, 2021
Cited By (2)
US 12,683,884 US 12,711,391