IP Library › Granted Patent US 11,924,044
Granted Patent B2
US 11,924,044 · App. 17/656,353 · Granted Mar 5, 2024

Organizing execution of distributed operating systems for network devices

Inventors: David M. Katz (Santa Cruz, CA); Ross W. Callon (Westford, MA); Scott Mackie (Santa Cruz, CA); Dennis C. Ferguson (Palo Alto, CA)
Assignee: Juniper Networks, Inc.
H04L41/12G06F9/4843G06F9/5061G06F11/2097H04L45/02H04L45/48G06F11/2023G06F2201/81
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 11,924,044
App. No.
17/656,353
Granted
Mar 5, 2024
Kind
B2
Abstract

In general, techniques are described for organizing execution of distributed operating systems for network devices. A device comprising hardware computing nodes may be configured to perform the techniques. The hardware computing nodes may execute a protocol by which to discover a topology of the plurality of hardware computing nodes, and determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system. The determined subset of the plurality of hardware computing nodes may execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes. The hardware computing nodes may further execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute.

Claims (66)

1. A device comprising:

a plurality of hardware computing nodes configured to:

execute a protocol by which to discover a topology of the plurality of hardware computing nodes;

determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system, wherein the determined subset of the plurality of hardware computing nodes are further configured to execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes; and

execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute,

wherein the plurality of hardware computing nodes are configured to exchange announcements between the plurality of hardware computing nodes, the announcements indicating whether each of the plurality of hardware computing nodes are capable of executing as a manager hardware computing node, the manager hardware computing node configured to manage execution of the distributed operating system;

wherein the determined subset of the plurality of hardware computing nodes are further configured to elect one of the determined subset of the plurality of hardware computing nodes as a manager master hardware computing node,

wherein the manager master hardware computing node designates each of one or more of the subset of the plurality of hardware computing nodes as a manager hardware computing nodes, and

wherein the one or more manager hardware computing nodes form a quorum in which operating system state information pertinent to the execution of the distributed operating system is synchronized between the one or more manager hardware computing nodes.

2. The device of claim 1 ,

wherein the manager master hardware computing node is further configured to:

determine whether connectivity between one or more of the manager hardware computing nodes has failed;

determine whether a number of remaining manager hardware computing nodes exceeds a quorum threshold; and

restart, when a number of remaining manager hardware computing nodes is less than the quorum threshold, the distributed operating system.

3. The device of claim 2 , wherein the manager master hardware computing node is further configured to:

set an epoch value to denote a current version of the distributed operating system; and

increment, after restarting the distributed operating system, the epoch value by one so that the plurality of hardware computing nodes avoid executing two different versions of the distributed operating system.

4. The device of claim 2 , wherein the quorum threshold is equal to a number of the manager hardware computing nodes participating in the quorum divided by two plus one ((N/2)+1), where N denotes the number of the manager hardware computing nodes participating in the quorum.

5. The device of claim 2 , wherein the manager hardware computing nodes execute, when the number of remaining manager hardware computing nodes exceed the quorum threshold, the distributed operating system at a current version.

6. The device of claim 2 , wherein the manager hardware computing nodes are further configured to elect one of the manager hardware computing nodes as a system manager master hardware computing node,

wherein the system master hardware computing node indicates which of the plurality of hardware computing nodes are to execute the one or more applications; and

wherein the indicated ones of the plurality of hardware computing nodes execute the one or more applications.

7. The device of claim 1 ,

wherein the device comprising a multi-chassis router having multiple chassis housing the plurality of hardware computing nodes, and

wherein the plurality of hardware computing nodes comprises a master routing engine, one or more local routing engines, and one or more forwarding units.

8. A method comprising:

executing, by a plurality of hardware computing nodes, a protocol by which to discover a topology of the plurality of hardware computing nodes;

determining, by at least one of the plurality of hardware computing nodes and based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system,

executing, by the determined subset of the plurality of hardware computing nodes, a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes;

executing, by the plurality of hardware computing nodes and based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute, wherein executing the protocol comprises exchanging announcements between the plurality of hardware computing nodes, the announcements indicating whether each of the plurality of hardware computing nodes are capable of executing as a manager hardware computing node, and

wherein the determined subset of the plurality of hardware computing nodes are further configured to elect one of the determined subset of the plurality of hardware computing nodes as a manager master hardware computing node, and

wherein the method further comprises:

designating, by the manager master hardware computing node, each of one or more of the subset of the plurality of hardware computing nodes as a manager hardware computing node;

forming, by the one or more manager hardware computing nodes, a quorum in which operating system state information pertinent to the execution of the distributed operating system is synchronized between the one or more manager hardware computing nodes; and

managing, by the manager hardware computing node, execution of the distributed operating system.

9. The method of claim 8 , further comprising:

determining, by the manager master hardware computing node, whether connectivity between one or more of the manager hardware computing nodes has failed;

determining, by the manager master hardware computing node, whether a number of remaining manager hardware computing nodes exceeds a quorum threshold; and

restarting, by the manager master hardware computing node, when a number of remaining manager hardware computing nodes is less than the quorum threshold, the distributed operating system.

10. The method of claim 9 , further comprising:

setting, by the manager master hardware computing node, an epoch value to denote a current version of the distributed operating system; and

incrementing, by the manager master hardware computing node, after restarting the distributed operating system, the epoch value by one so that the plurality of hardware computing nodes avoid executing two different versions of the distributed operating system.

11. The method of claim 9 , wherein the quorum threshold is equal to a number of the manager hardware computing nodes participating in the quorum divided by two plus one ((N/2)+1), where N denotes the number of the manager hardware computing nodes participating in the quorum.

12. The method of claim 9 , further comprising executing, by the manager master hardware computing node, when the number of remaining manager hardware computing nodes exceed the quorum threshold, the distributed operating system at a current version.

13. The method of claim 9 , further comprising:

electing, by the manager hardware computing nodes, one of the manager hardware computing nodes as a system manager master hardware computing node,

indicating, by the system master hardware computing node, which of the plurality of hardware computing nodes are to execute the one or more applications; and

executing, by the indicated ones of the plurality of hardware computing nodes, the one or more applications.

14. The method of claim 8 ,

wherein a device comprising a multi-chassis router having multiple chassis housing the plurality of hardware computing nodes, and

wherein the plurality of hardware computing nodes comprises a master routing engine, one or more local routing engines, and one or more forwarding units.

15. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause one or more of a plurality of hardware computing nodes to:

execute a protocol by which to discover a topology of the plurality of hardware computing nodes;

determine, based on the topology, a subset of the plurality of hardware computing nodes to manage execution of a distributed operating system;

execute a communication bus by which to synchronize operating system state information between the subset of the plurality of hardware computing nodes;

execute, based on the operating system state information, the distributed operating system to provide an execution environment in which one or more applications execute;

exchange announcements between the plurality of hardware computing nodes in accordance with the protocol, the announcements indicating whether each of the plurality of hardware computing nodes are capable of executing as a manager hardware computing node;

manage, by the manager hardware computing node, execution of the distributed operating system; and

elect one of the determined subset of the plurality of hardware computing nodes as a manager master hardware computing node,

wherein the manager master hardware computing node designates each of one or more of the subset of the plurality of hardware computing nodes as a manager hardware computing nodes, and

wherein the one or more manager hardware computing nodes form a quorum in which operating system state information pertinent to the execution of the distributed operating system is synchronized between the one or more manager hardware computing nodes.

16. The non-transitory computer-readable storage medium of claim 15 ,

wherein the manager master hardware computing node: determines whether connectivity between one or more of the manager hardware computing nodes has failed;

determines whether a number of remaining manager hardware computing nodes exceeds a quorum threshold; and

restarts, when a number of remaining manager hardware computing nodes is less than the quorum threshold, the distributed operating system.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the manager master hardware computing node: sets an epoch value to denote a current version of the distributed operating system; and increments, after restarting the distributed operating system, the epoch value by one so that the plurality of hardware computing nodes avoid executing two different versions of the distributed operating system.

Assignments (2)
CONFIRMATORY ASSIGNMENT Recorded May 3, 2024
From: KATZ, DAVID M.; CALLON, ROSS W.; MACKIE, SCOTT; FERGUSON, DENNIS C.
To: JUNIPER NETWORKS, INC.
Reel/Frame 067310/0369 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2023
From: KATZ, DAVID M.; CALLON, ROSS W.; MACKIE, SCOTT; FERGUSON, DENNIS C.
To: JUNIPER NETWORKS, INC.
Reel/Frame 064747/0377 →
Continuity (4)
Continuation 15637809 · Jun 29, 2017
Provisional Application 62479804 · Mar 31, 2017
Provisional Application 62437369 · Dec 21, 2016
Related Publication 20220217053A1 · Jul 7, 2022