Unified replication mechanism for fault-tolerance of state
First Claim
1. For a first controller instance that manages a first set of forwarding elements implementing logical datapath sets of a network control system, a machine-readable medium storing a program executable by at least one processing unit of the first controller instance, the program comprising sets of instructions for:
- maintaining a first set of forwarding state data that represents a forwarding state of the first set of forwarding elements;
receiving a second set of forwarding state data that represents a forwarding state of a second set of forwarding elements from a second controller instance;
propagating the first set of forwarding state data to the first set of forwarding elements;
upon detecting a failure of the second controller instance, merging the second set of forwarding state data into the first set of forwarding state data to produce a third set of forwarding state data; and
propagating the third set of forwarding state data to the first and second sets of forwarding elements.
1 Assignment
0 Petitions
Accused Products
Abstract
A network control system that achieves high availability for forwarding state computation within a controller cluster by replicating different levels of table state between controllers of the controller cluster. To build a highly available controller cluster, the tables for storing the forwarding state are replicated across the controllers. In order to take responsibility for a slice, the slave controller of some embodiments performs merging of replicated state on a slice-by-slice basis. The merging is performed in a manner to prevent disruptions to the network state while the slave controller is updated.
-
Citations
20 Claims
-
1. For a first controller instance that manages a first set of forwarding elements implementing logical datapath sets of a network control system, a machine-readable medium storing a program executable by at least one processing unit of the first controller instance, the program comprising sets of instructions for:
-
maintaining a first set of forwarding state data that represents a forwarding state of the first set of forwarding elements; receiving a second set of forwarding state data that represents a forwarding state of a second set of forwarding elements from a second controller instance; propagating the first set of forwarding state data to the first set of forwarding elements; upon detecting a failure of the second controller instance, merging the second set of forwarding state data into the first set of forwarding state data to produce a third set of forwarding state data; and propagating the third set of forwarding state data to the first and second sets of forwarding elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. For a first controller instance that manages a first set of forwarding elements implementing logical datapath sets of a network control system, a machine-readable medium storing a program executable by at least one processing unit of the first controller instance, the program comprising sets of instructions for:
-
generating, from a first set of input tuples for a first logical datapath set, a first set of output tuples; receiving a second set of input tuples for a second logical datapath set from a second controller instance that manages a second set of forwarding elements; propagating the first set of output tuples to the first set of forwarding elements in order to define a first state for the first logical datapath set, wherein the first state comprises a set of forwarding rules to implement the first logical datapath set; upon detecting a failure of the second controller instance, generating, from the first and second sets of input tuples, a second set of output tuples while maintaining the first state for the first logical datapath set; and upon completion of said generating, propagating the second set of output tuples to the first and second sets of forwarding elements in order to define a second state for the first and second logical datapath sets. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. For a first controller instance that manages a first set of forwarding elements implementing logical datapath sets of a network control system, a method comprising:
-
generating, from a first set of input tuples for a first logical datapath set, a first set of output tuples; receiving a second set of input tuples for a second logical datapath set from a second controller instance that manages a second set of forwarding elements; propagating the first set of output tuples to the first set of forwarding elements in order to define a first state for the first logical datapath set, wherein the first state comprises a set of forwarding rules to implement the first logical datapath set; upon detecting a failure of the second controller instance, generating, from the first and second sets of input tuples, a second set of output tuples while maintaining the first state for the first logical datapath set; and upon completion of said generating, propagating the second set of output tuples to the first and second sets of forwarding elements in order to define a second state for the first and second logical datapath sets. - View Dependent Claims (19, 20)
-
Specification