Unified replication mechanism for fault-tolerance of state
First Claim
1. A network control system for managing a plurality of forwarding elements that forward data messages in a network, the system comprising:
- a first controller instance executing on a first computing device and maintaining forwarding state data that represents a forwarding state of a set of forwarding elements of the plurality of forwarding elements, the first controller instance for (1) managing the set of forwarding elements, and (2) modifying the forwarding state data when the first controller instance receives configuration data that modifies the forwarding state of at least one forwarding element in the set of forwarding elements; and
a second controller instance executing on a second computing device, said second controller instance for (1) receiving from the first controller instance, when the modification of the forwarding state data at the first controller instance reaches a fixed point, backup data comprising only a first portion of the modified forwarding state data, (2) computing a second portion of the modified forwarding state data from the received first portion, and (3) storing the second portion of the modified forwarding state data in order to serve as a backup controller instance to the first controller instance for managing the set 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 reduce network traffic between the controllers, fewer tables are replicated to slave controllers, which then recompute the forwarding state of the master controller in order to have a replicate copy of the master controller'"'"'s forwarding state for possible failover. In other embodiments, more tables are replicated to minimize the recomputations and processor load on the slave controller. The network control system of some embodiments performs continuous snapshotting to minimize downtime associated with reaching a fixed point and replicating the state.
121 Citations
21 Claims
-
1. A network control system for managing a plurality of forwarding elements that forward data messages in a network, the system comprising:
-
a first controller instance executing on a first computing device and maintaining forwarding state data that represents a forwarding state of a set of forwarding elements of the plurality of forwarding elements, the first controller instance for (1) managing the set of forwarding elements, and (2) modifying the forwarding state data when the first controller instance receives configuration data that modifies the forwarding state of at least one forwarding element in the set of forwarding elements; and a second controller instance executing on a second computing device, said second controller instance for (1) receiving from the first controller instance, when the modification of the forwarding state data at the first controller instance reaches a fixed point, backup data comprising only a first portion of the modified forwarding state data, (2) computing a second portion of the modified forwarding state data from the received first portion, and (3) storing the second portion of the modified forwarding state data in order to serve as a backup controller instance to the first controller instance for managing the set of forwarding elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. For a first controller instance of a network control system that manages a plurality of forwarding elements forwarding data messages in a network, 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 forwarding state data that represents a forwarding state of a set of forwarding elements of the plurality of forwarding elements; receiving configuration data that modifies the forwarding state of the set of forwarding elements; modifying the forwarding state data according to the received configuration data as a single transaction; and after reaching a fixed point in modifying the forwarding state data and performing a commit operation that signifies completion of the single transaction, sending backup data comprising at least a portion of the modified forwarding state data to a second controller instance of the network control system for the second controller instance to store the portion of the modified forwarding state data. - View Dependent Claims (11, 12, 13, 14)
-
-
15. For a first controller instance that serves as a backup controller instance to a second controller instance of a network control system for managing a plurality of forwarding elements that forward data messages in a network, a machine-readable medium storing a program that when executed by at least one processing unit of the first controller instance provides fault tolerance for the second controller instance, the program comprising sets of instructions for:
-
receiving from the second controller instance when a modification of forwarding state data at the second controller instance reaches a fixed point, backup data comprising a first portion of the forwarding state data that represents a forwarding state of a set of forwarding elements of the plurality of forwarding elements; from the received first portion, computing a second portion of the forwarding state data of the set of forwarding elements; and storing the first and second portions of the forwarding state data as the backup data for the first controller. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification