Abstract
Provided is a process of managing rack-mounted computing devices in a data center with a distributed peer-to-peer management system, the process including: determining roles of data-center management computing devices in a distributed peer-to-peer data-center management system; receiving, via an out-of-band network, a data-center management command at a given data-center management computing device; distributing, based on at least some of the roles, via the out-of-band network, the data-center management command.
Claims
- A method of managing rack-mounted computing devices in a data center with a distributed peer-to-peer management system, the method comprising:
- determining roles of data-center management computing devices in a distributed peer-to- peer data-center management system;
- receiving, via an out-of-band network, a data-center management command at a given data-center management computing device;
- distributing, based on at least some of the roles, via the out-of-band network, the data- center management command from the given data-center management computing device to a first plurality of other data-center management computing devices; and
- for each of the first plurality of other data-center management computing devices, distributing, based at least some of the roles, via the out-of-band network, the data-center management command to a respective second plurality of other data-center management computing devices, wherein:
- the given data-center management computing device, the first plurality of other data-center management computing devices, and the respective second pluralities of other data- center management computing devices are each configured to manage a respective plurality of rack-mounted computing devices;
- each of the pluralities of respective rack-mounted computing devices executes an in-band application that communicates on an in-band network different from the out-of-band network; and
- the data-center management command is a command to update or otherwise configure a microkernel, a virtual machine, a container, an operating system, or an application executing on one or more data-center management computing devices.
- The method of claim 1, wherein:
- determining roles of data-center management computing devices in a distributed peer-to- peer data-center management system comprises: selecting a primary data-center management computing device;
- selecting a plurality of leader data-center management computing devices by concurrently executing a plurality of respective instances of a distributed algorithm by which the respective leader is determined by consensus, each instance being executed by one of the second pluralities of other data-center management computing devices to select a respective leader for the respective one of the second pluralities of other data-center management computing devices.
- The method of any one of claims 1-2, wherein selecting a plurality of leader data-center management computing devices by concurrently executing a plurality of respective instances of a distributed algorithm by which the respective leader is determined by consensus comprises: detecting with a first one of the data-center management computing devices that a signal has not been received from a leader within a threshold duration of time;
- incrementing or decrementing a count with the with first one of the data-center management computing devices;
- sending, with the first one of the data-center management computing devices, a request to vote for a new leader along with the incremented or decremented count to other data-center management computing devices in the same second plurality of other data-center management computing devices;
- receiving the request with a second one of the data-center management computing devices;
- determining, with the second one of the data-center management computing devices, to vote for the first one of the data-center management computing devices, at least in part, by:
- determining that the second one of the data-center management computing devices has not yet submitted a vote associated with the incremented or decremented count; and determining that the request is the first request received by the second one of the data-center management computing devices in a given round of voting;
- sending, with the second one of the data-center management computing devices, the vote to other data-center management computing devices in the same second plurality of other data- center management computing devices;
- selecting a leader based on amounts of votes received by candidate data-center management computing devices.
- The method of any one of claims 1-3, wherein:
- determining roles comprises determining roles in a peer-to-peer distributed application having a structured topology, wherein:
- the structured topology is a tree topology having at least three levels, wherein:
- the given data-center management computing device is at a first level of the tree topology;
- the first plurality of other data-center management computing devices is at a second level of the tree topology, each being adjacent to the given data-center management computing device in the tree topology;
- the second pluralities of other data-center management computing devices are at a third level of the tree topology, each respective plurality of other data-center management computing devices being adjacent to a respective one of the first plurality of other data-center management computing devices in the tree topology.
- The method of any one of claims 1-4, comprising:
- determining, with at least one of the first plurality of other data-center management computing devices, that the given data-center management computing device has failed;
- electing, with at least one of the first plurality of other data-center management computing devices, one of the first plurality of other data-center management computing devices to serve as a replacement to the given data-center management computing device in at least some roles filled by the given data-center management computing device; and
- distributing a result of the election to each the first plurality of other data-center management computing devices.
- The method of any one of claims 1-5, comprising:
- obtaining a file with configuration information from a distributed file system stored with cross-computing-device redundancy by at least a plurality of the first plurality of other data- center management computing devices, the second pluralities of other data-center management computing devices, or both, wherein:
- the file is stored with consensus-based replication based on a consensus protocol, and wherein the consensus protocol is used to determine at least some roles of the data center management computing devices.
- The method of any one of claims 1-6, wherein:
- at least some of the data-center management computing devices are a rack controller executed in an out-of-band computer having a processor and memory storing instructions that when executed effectuate at least some of the operations of claim 1;
- at least some of the data-center management computing devices manage rack-mounted computing devices via respective ones of a plurality of different power-line communication networks; and
- the out-of-band network is a different network from the power-line communication networks.
- The method of any one of claims 1-7, wherein:
- at least some of the data-center management computing devices are rack-mounted computing devices executing a rack controller; and
- at least some of the data-center management computing devices manage rack-mounted computing devices via an Ethernet network, without a power-line communication network connecting the at least some of the data-center management computing devices to the rackmounted computing devices.
- The method of any one of claims 1-8, wherein:
- at least some of the data-center management computing devices are a rack-mounted computing device executing a rack controller; and
- at least some of the data-center management computing devices manage rack-mounted computing devices via a power-line communication network.
- The method of any one of claims 1-9, wherein:
- at least some of the data-center management computing devices are a rack controller executed in an out-of-band computer having a processor and memory storing instructions that when executed effectuate at least some of the operations of claim 1; and
- at least some of the data-center management computing devices manage rack-mounted computing devices via a non-power-line communication network.
- The method of any one of claims 1-10, wherein:
- at least some of the data-center management computing devices execute rack controllers, each configured to manage a plurality of rack-mounted computing devices on a respective rack, a sensor on the respective rack, and an actuator on the respective rack, wherein the sensor and actuator are not on a chassis of one of the rack-mounted computing devices on the respective rack, wherein controlling the rack-mounted computing devices comprises:
- changing a boot target in an extensible firmware interface of a given one of the rack-mounted computing devices on the respective rack;
- reading a value indicative of temperature from the sensor or a sensor of a given one of the rack-mounted computing devices on the respective rack; and
- actuating the actuator.
- The method of any one of claims 1-11, wherein:
- the command includes a disk image containing an operating system, an application, and dependencies of the application to be installed on each of the first data-center management computing device, the first plurality of other data-center management computing devices, and the respective pluralities of other data-center management computing devices.
- The method of any one of claims 1-12, wherein:
- the command is a command to orchestrate containers executing on at least some of the data-center management computing devices; or
- the command is a command to configure a network operating system.
- The method of any one of claims 1-13, wherein distributing, based at least some of the roles, via the out-of-band network, the data-center management command to a respective plurality of other data-center management computing devices comprises:
- periodically, by each of the plurality of other data-center management computing devices, sending a request to one of the plurality of other data-center management computing devices for an update; and
- receiving an update, from the one of the plurality of other data-center management computing devices, with each of the plurality of other data-center management computing devices.
- A system, comprising:
- a plurality of racks, each rack comprising:
- a plurality of rack-mounted computing devices; and
- a medium storing instructions configured to instantiate a rack controller coupled to each of the rack-mounted computing devices via a network, wherein each rack controller is configured to effectuate operations comprising:
- determining roles of the rack controllers in a distributed peer-to-peer data- center management system;
- receiving a data-center management command at a first rack controller; distributing, based on at least some of the roles, the data-center management command from the first rack controller to a first plurality of other rack controller; and
- for each of the first plurality of other rack controllers, distributing, based at least some of the roles, the data-center management command to a respective plurality of other rack controllers.
Applicants
-
Vapor Io Inc
Explore more patents:
Inventors
-
Cencini Andrew Brian
Explore more patents:
-
White Steven
Explore more patents:
-
Crawford Colton Malone
Explore more patents:
CPC Classifications
-
G06F11/3065
Explore more patents:
-
G06F3/06
Explore more patents:
-
G06F11/184
Explore more patents:
-
G06F11/187
Explore more patents:
-
G06F11/3006
Explore more patents:
-
G06F11/3058
Explore more patents:
-
H04L41/044
Explore more patents:
-
H04L41/082
Explore more patents:
-
H04L41/0853
Explore more patents:
Document Preview
- Publication: Jul 13, 2017
-
Application:
Jan 6, 2017
US 2017/0012579 W
-
Priority:
Dec 1, 2016
US 201615366528 A
-
Priority:
Mar 9, 2016
US 201615065212 A
-
Priority:
Jan 7, 2016
US 201662275909 P