IP Library Granted Patent US 10,791,169
Granted Patent B2
US 10,791,169 · App. 16/289,572 · Granted Sep 29, 2020

Role-based command distribution across networks

Inventors: Andrew Brian Cencini (Austin, TX); Steven White (Austin, TX); Cole Malone Crawford (Austin, TX)
Assignee: Vapor IO Inc.
H04L67/1042G06F1/189G06F1/206G06F1/26G06F15/161H04L41/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,791,169
App. No.
16/289,572
Granted
Sep 29, 2020
Kind
B2
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 (135)

1. 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.

2. 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.

3. The method of claim 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.

4. The method of claim 1 , wherein:

determining roles comprises determining roles in a peer-to-peer distributed application having a structured topology.

5. The method of claim 4 , 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 second 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.

6. The method of claim 1 , wherein:

determining roles comprises determining roles in a peer-to-peer distributed application having an unstructured topology.

7. The method of claim 1 , 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.

8. The method of claim 1 , 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.

9. The method of claim 8 , 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.

10. The method of claim 1 , 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.

11. The method of claim 1 , 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 rack-mounted computing devices.

12. The method of claim 1 , 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.

13. The method of claim 1 , 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.

14. The method of claim 1 , 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.

15. The method of claim 1 , 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 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.

16. The method of claim 1 , wherein:

the command is a command to orchestrate containers executing on at least some of the data-center management computing devices.

17. The method of claim 1 , wherein:

the command is a command to configure a network operating system.

18. The method of claim 1 , comprising implementing control and updates of rack controllers at the rack-level, in a distributed, concurrent routine.

19. The method of claim 1 , wherein 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 comprises:

periodically, by each of the respective second plurality of other data-center management computing devices, sending a request to one of the first plurality of other data-center management computing devices for an update; and

receiving an update, from the one of the first plurality of other data-center management computing devices, with each of the respective second plurality of other data-center management computing devices.

20. The method of claim 1 , comprising:

initializing a data center with a computer designated to act as a seed unit to distribute configuration files via the given data-center management computing device and the first plurality of other data-center management computing devices.

21. A tangible, non-transitory, computer readable medium storing instructions that when executed by one or more processors effectuate operations 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.

22. The medium of claim 21 , 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.

23. The medium of claim 22 , 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.

24. The medium of claim 21 , wherein:

determining roles comprises determining roles in a peer-to-peer distributed application having a structured topology.

25. The medium of claim 24 , 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 second 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.

26. The medium of claim 21 , wherein:

determining roles comprises determining roles in a peer-to-peer distributed application having an unstructured topology.

27. The medium of claim 21 , the instructions further 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.

28. The medium of claim 21 , the instructions further 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.

29. The medium of claim 28 , 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.

30. The medium of claim 21 , 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.

31. The medium of claim 21 , 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 rack-mounted computing devices.

32. The medium of claim 21 , 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.

33. The medium of claim 21 , 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.

34. The medium of claim 21 , 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.

35. The medium of claim 21 , 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 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.

36. The medium of claim 21 , wherein the command is a command to orchestrate containers executing on at least some of the data-center management computing devices.

37. The medium of claim 21 , wherein the command is a command to configure a network operating system.

38. The medium of claim 21 , the instructions further comprising implementing control and updates of rack controllers at the rack-level, in a distributed, concurrent routine.

39. The medium of claim 21 , wherein 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 comprises:

periodically, by each of the respective second plurality of other data-center management computing devices, sending a request to one of the first plurality of other data-center management computing devices for an update; and

receiving an update, from the one of the first plurality of other data-center management computing devices, with each of the respective second plurality of other data-center management computing devices.

40. The medium of claim 21 , the instructions further comprising:

initializing a data center with a computer designated to act as a seed unit to distribute configuration files via the given data-center management computing device and the first plurality of other data-center management computing devices.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2024
From: COMERICA BANK
To: VAPOR IO, INC.
Reel/Frame 068856/0755 →
SECURITY INTEREST Recorded Jul 17, 2023
From: VAPOR IO, INC.
To: COMERICA BANK
Reel/Frame 064289/0708 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: CENCINI, ANDREW BRIAN; WHITE, STEVEN; CRAWFORD, COLE MALONE
To: VAPOR IO INC.
Reel/Frame 049554/0169 →
Continuity (6)
Continuation 15366528 · Dec 1, 2016
Continuation In Part 15065212 · Mar 9, 2016
Provisional Application 62130018 · Mar 9, 2015
Provisional Application 62248788 · Oct 30, 2015
Provisional Application 62275909 · Jan 7, 2016
Related Publication 20190260829A1 · Aug 22, 2019