Stateful services on stateless clustered edge
First Claim
1. For a network comprising a plurality of host computers, each host computer executing a set of virtual machines (VMs), wherein different groups of VMs on different hosts are connected by different logical networks, a method comprising:
- performing a stateful service that requires state information for a particular flow that is entering or exiting a particular logical network at a first edge service node of a particular cluster of edge service nodes that are designated for the particular logical network, wherein the first edge service node is selected from the particular cluster of edge service nodes based on a first hash of identifiers of the particular flow;
receiving, at the first edge service node, a packet belonging to the particular flow from a second edge service node, wherein the second edge service node is selected from the particular cluster after at least one edge service node is added to or removed from the particular cluster, the selection based on a second hash of identifiers of the particular flow, wherein at least one edge service node in the cluster executes on a same host computer as a compute VM that is a source or destination of a flow; and
performing the stateful service on the received packet at the first edge service node.
1 Assignment
0 Petitions
Accused Products
Abstract
In order to enable dynamic scaling of network services at the edge, novel systems and methods are provided to enable addition of add new nodes or removal of existing nodes while retaining the affinity of the flows through the stateful services. The methods provide a cluster of network nodes that can be dynamically resized to handle and process network traffic that utilizes stateful network services. The existing traffic flows through the edge continue to function during and after the changes to membership of the cluster. All nodes in the cluster operate in active-active mode, i.e., they are receiving and processing traffic flows, thereby maximizing the utilization of the available processing power.
99 Citations
21 Claims
-
1. For a network comprising a plurality of host computers, each host computer executing a set of virtual machines (VMs), wherein different groups of VMs on different hosts are connected by different logical networks, a method comprising:
-
performing a stateful service that requires state information for a particular flow that is entering or exiting a particular logical network at a first edge service node of a particular cluster of edge service nodes that are designated for the particular logical network, wherein the first edge service node is selected from the particular cluster of edge service nodes based on a first hash of identifiers of the particular flow; receiving, at the first edge service node, a packet belonging to the particular flow from a second edge service node, wherein the second edge service node is selected from the particular cluster after at least one edge service node is added to or removed from the particular cluster, the selection based on a second hash of identifiers of the particular flow, wherein at least one edge service node in the cluster executes on a same host computer as a compute VM that is a source or destination of a flow; and performing the stateful service on the received packet at the first edge service node. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. For a network comprising a plurality of host computers, each host computer executing a set of virtual machines (VMs), wherein different groups of VMs on different hosts are connected by different a plurality of logical networks, a method comprising:
-
performing, at a cluster of edge service nodes, a stateful service that requires state information for flows that are entering or exiting a particular logical network, wherein a state of a particular flow is maintained by a first edge service node in the cluster; adding an edge service node to the cluster while the cluster is performing the stateful service for the particular flow; forwarding packets belonging to the particular flow from a second edge service node to the first edge service node when the second edge service node is initially identified to perform the stateful service by a consistent hash function of flow identifiers of the particular flow over the cluster of edge service nodes used by each node in the cluster after an addition of the edge service node, wherein at least one edge service node in the cluster executes on a same host computer as a compute VM that is a source or destination of a flow; and performing the stateful service on the forwarded packet at the first edge service node. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. For a network comprising a plurality of host computers, each host computer executing a set of virtual machines (VMs), wherein different groups of VMs on different hosts are connected by different of logical networks, a non-transitory machine readable medium storing a program for execution by a set of processing units, the program comprising sets of instructions for:
-
performing, at a cluster of edge service nodes, a stateful service that requires state information for flows that are entering or exiting a particular logical network, wherein a state of a particular flow is maintained by a first edge service node in the cluster; adding an edge service node to the cluster while the cluster is performing the stateful service for the particular flow; forwarding packets belonging to the particular flow from a second edge service node to the first edge service node when the second edge service node is initially identified to perform the stateful service by a consistent hash function of flow identifiers of the particular flow over the cluster of edge service nodes used by each node in the cluster after an addition of the edge service node, wherein at least one edge service node in the cluster executes on a same host computer as a compute VM that is a source or destination of a flow; and performing the stateful service on the forwarded packet at the first edge service node. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification