Unified replication mechanism for fault-tolerance of state
AssigneeNicira, Inc.
InventorsTeemu Koponen, Alan Shieh, Igor Ganichev
Life of this patent
Estimating the term…
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.
Claims20
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.
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.
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.
Dependencies are inferred from the claim text.