Auto-scaling virtual switches
AssigneeVMware, Inc.
InventorsSanthosh Sundararaman, Jia Yu, Mark Pariente, Ganesan Chandrashekhar
Life of this patent
Estimating the term…
Abstract
A port is dynamically added to and removed from a virtual switch. The new port may be allocated when there is sufficient free memory in a pool of memory associated with the virtual switch. When an existing port is deallocated, the portion of the pool of memory allocated to that existing port is freed up. As a result, a virtual machine that requires one or more ports on the virtual switch may be provisioned on a host so long as the pool of memory is sized properly and memory usage on the host is not excessive.
Claims20
A system comprising:
- one or more hosts, each host having virtual machines executing therein and a plurality of virtual switches configured to transmit data to and from the virtual machines, a virtual switch from the plurality of virtual switches having ports allocated thereto from a pool of port memory associated with the virtual switch, wherein each of the ports includes software for forwarding network traffic to and from the corresponding virtual machine, the pool of port memory having a maximum pool size allocable to ports and one or more processors configured to:
- allocate a new port to the virtual switch by:
- determining a size of unused portions of the pool of port memory;
- determining that the size of unused portions of the pool of port memory for allocating the new port that is not allocated to any of the plurality of virtual switches is a above a threshold;
- allocating an unused portion of the pool of port memory for the new port when the size of unused portions of the pool of port memory for allocating the new port is above the threshold;
- instantiating the new port in the allocated portion of the pool of port memory;
- associating the new port to the virtual switch;
- and
- configuring the virtual switch to include the new port.
A non-transitory computer-readable medium comprising instructions executable by a host in a virtualized computing environment, the host having virtual machines executing therein and a plurality of virtual switches configured to transmit data to and from the virtual machines executing therein, and a plurality of virtual switches configured to transmit data to and from the virtual machines, a virtual switch from the plurality of virtual switches having ports allocated thereto from a pool of port memory associated with the virtual switch, wherein each of the ports includes software for forwarding network traffic to and from the corresponding virtual machine, the pool of port memory having a maximum pool size allocable to ports, where the instructions, when executed, cause the host to perform operations comprising:
- allocate a new port to the virtual switch by:
- determining a size of unused portions of the pool of port memory;
- determining that the size of unused portions of the pool of port memory for allocating the new port that is not allocated to any of the plurliaty of virtual switches is above a threshold;
- allocating an unused portion of the pool of port memory for the new port when the size of unused portions of the pool of port memory for allocating the new port is above the threshold;
- instantiating the new port in the allocated portion of the pool of port memory;
- associating the new port to the virtual switch;
- and
- configuring the virtual switch to include the new port.
A method of provisioning a virtual machine on a host computer having virtual switches configured therein, a virtual switch from the one or more virtual switches having ports allocated thereto from a pool of port memory associated with the virtual switch, the pool of port memory having a maximum pool size allocable to ports, wherein each of the ports includes software for forwarding network traffic to and from the corresponding virtual machine, the method comprising:
- allocate a new port to the virtual switch by:
- determining a size of unused portions of the pool of port memory, wherein the pool of port memory comprises a maximum pool size for port memory;
- determining that the size of unused portions of the pool of port memory for allocating the new port that is not allocated to any of the virtual switches is above a threshold;
- allocating an unused portion of the pool of port memory for the new port when the size of the unused portions of the pool of port memory for allocating the new port is above the threshold;
- instantiating the new port in the allocated portion of the pool of port memory;
- associating the new port to the virtual switch;
- configuring the virtual switch to include the new port;
- and
- configuring the virtual machine to access the new port.
Dependencies are inferred from the claim text.