Abstract
Provided is a process, including: receiving, with a rack-controller, via a first network, an application program interface (API) request; based on the API request, selecting, with the rack-controller, one of a plurality of routines to effectuate control via the second network of at least some of the plurality of rack-mounted computing devices; executing, with the rack-controller, the selected routine and, as a result, sending one or more commands via the second network encoded in a second protocol different from the first protocol to effectuate an action indicated by the API request.
Claims
-
A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors of a rack-controller effectuate operations to control a plurality of rack-mounted computing devices, the operations comprising:
receiving, with a rack-controller, via a first network, an application program interface (API) request, wherein:
the rack-controller is configured to control a plurality of rack-mounted computing devices mounted in a plurality of different rack units of one or more racks;
the rack-controller is configured to control the rack-mounted computing devices via a second network, different from the first network;
the rack-controller includes a gateway between the first network and the second network;
the second network is an out-of-band network distinct from an in-band network with which data is conveyed between rack-mounted computing devices or between rack-mounted computing devices and the internet; and
the API request is encoded in a first protocol;
based on the API request, selecting, with the rack-controller, one of a plurality of routines to effectuate control via the second network of at least some of the plurality of rack-mounted computing devices, the plurality of routines including:
a first routine that reads a sensor via the second network on one of the rack-mounted computing devices;
a second routine that reads a sensor via the second network on the rack but not on one of the rack-mounted computing devices;
a third routine that scans computing devices on the second network and produces an inventory of the scanned computing devices on the second network;
a fourth routine by which a configuration of an extensible firmware interface (EFI) of a given one of the rack-mounted computing device is adjusted; and
executing, with the rack-controller, the selected routine and, as a result, sending one or more commands via the second network encoded in a second protocol different from the first protocol to effectuate an action indicated by the API request.
-
The medium of claim 1, wherein:
the rack-controller is an out-of-band computer having a processor, memory, an operating system stored in persistent memory;
the rack-controller is coupled to a rack in which the rack-mounted computing devices are disposed;
the number of rack-mounted computing devices controlled by the rack-controller exceeds seven;
the rack-controller is not on the in-band network;
the first network is an out-of-band Ethernet network;
the second network is a direct-current (DC) power-line network with which both power and data are conveyed via a DC power bus;
the first protocol is a hypertext transport protocol and the API is a representational state transfer API;
the sensor is a temperature sensor;
the configuration of the EFI specifies a boot device of the given rack-mounted computing device;
at least some of the routines do not use a baseboard management controller of the rack-mounted computing devices;
the selected routine is the first routine;
the operations comprise:
receiving, with the rack-controller, a response from the temperature sensor in units other than units of temperature;
converting, with the rack-controller, the response into units of temperature; and
sending, with the rack-controller, via the first network, an HTTP response including the converted response in units of temperature.
-
The medium of claim 1, wherein:
the second network connects a control plane of a rack over which a plurality of servers mounted in the rack are controlled; and
the first network is an out-of-band network over which a data center is managed based on workload and environmental data gathered from a plurality of racks via a plurality of respective instances of the first network.
-
The medium of claim 1, wherein:
the plurality of routines comprises a fifth routine by which a rack-mounted computing device is power cycled;
the fifth routine is selected; and
the operations comprise:
sending, with the rack-controller, via the second network, an instruction that causes a given rack-mounted computing device to power cycle;
receiving, with the rack-controller, via the second network, one or more power-on-self-test (POST) codes; and
sending, with the rack-controller, via the first network, an indication of the one or more POST codes.
-
The medium of claim 1, wherein:
the third routine is selected;
the operations comprise:
sending, with the rack-controller, via the second network, to each device on the second network, a command to send an identifier;
receiving, with the rack-controller, during each of a plurality of durations of time reserved for respective ones of the devices to use a shared physical medium of the second network, an identifier from the respective devices.
-
The medium of claim 1, wherein:
the third routine is selected;
the operations comprise:
sending, with the rack-controller, via the second network, and a modem coupled a mid-plane of a server, a command to a computing device coupled to the server and the modem, the command causing the computing device to execute a scan of other computing devices coupled to a system management bus of server;
receiving, with the rack-controller, from the modem, via the second network, identifiers of at least some computing devices detected in scan.
-
The medium of claim 1, wherein:
the fourth routine is selected;
the operations comprise:
receiving, with the rack-controller, via the first network, an a new version of the EFI;
sending, with the rack-controller, via the second network, the new version of the EFI to a given one of the rack-mounted computing devices and instructions to store the new version of the EFI at given boot target of a plurality of candidate boot targets of the given one of the rack-mounted computing devices;
sending, with the rack-controller, via the second network, to the given rack-mounted computing device, an instruction to change a boot target of the EFT to the given boot target; and
sending, with the rack-controller, via the second network, an instruction reboot the given one of the rack-mounted computing devices.
-
The medium of claim 1, wherein:
the fourth routine is selected; and
the operations comprise:
changing a boot target of an EFI of at least one of the rack-mounted computing devices without making the change via an Intelligent Platform Management Interface (IPMI) of at least one of the rack-mounted computing devices.
-
The medium of claim 1, wherein the operations comprise:
gathering, with the rack-controller, via the second network, agentless monitoring metrics from each of the rack-mounted computing devices, the metrics including processor utilization of the respective rack-mounted computing devices.
-
The medium of claim 9, wherein:
wherein the agentless monitoring metrics are not reported by an operating system or a process running within the operating system of the rack-mounted computing devices, and wherein the metrics include memory utilization and an indication of processor temperature.
-
The medium of claim 1, wherein:
the second network is power-line network by which both electrical power is supplied to the rack-mounted computing devices and by which data is exchanged.
-
The medium of claim 1, wherein:
the second network is an Ethernet network.
-
The medium of claim 1, wherein:
at least two of the routines are not effectuated via a baseboard management controller of the rack-mounted computing devices.
-
The medium of claim 1, wherein the operations comprise:
causing a component identifier of a component of one of the rack-mounted computing devices to be read from a register of the component and conveyed via a system management bus of the one of the rack-mounted computing devices before being sent to the rack-controller via the second network.
-
The medium of claim 14, wherein the operations comprise:
receiving, with the rack-controller, the component identifier;
selecting a command corresponding to a capability of the component based on the component identifier; and
sending, with the rack-controller, via the second network, the selected command.
-
The medium of claim 14, wherein:
reading from the register comprises incrementing an address through an address space of the system management bus until an address of the component is found.
-
The medium of claim 1, wherein:
the routines comprise a routine by which TTY access to a remote console executing on one of the rack-mounted computing devices is provided, wherein the rack-controller operates as a web proxy in the TTY access.
-
The medium of claim 1, wherein:
the first routine is selected with means for selecting a routine based on an API request;
the sensor comprises means for sensing; and
the rack-controller comprises means for controlling a rack.
-
The medium of claim 1, wherein:
the rack controller is 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;
the rack controller is configured to manage rack-mounted computing devices via the second network with a power-line communication network.
-
The medium of claim 1, wherein:
the rack controller is configured to be executed in a rack-mounted computing device; and
the second network is an Ethernet network.
-
The medium of claim 1, wherein:
the rack controller is configured to be executed in a rack-mounted computing device; and
the rack controller is configured to manage rack-mounted computing devices via the second network with a power-line communication network.
-
The method of claim 1, wherein:
the rack controller is 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
the second network is an Ethernet network.
-
A method, comprising:
receiving, with a rack-controller, via a first network, an application program interface (API) request, wherein:
the rack-controller is configured to control a plurality of rack-mounted computing devices mounted in a plurality of different rack units of one or more racks;
the rack-controller is configured to control the rack-mounted computing devices via a second network, different from the first network;
the rack-controller includes a gateway between the first network and the second network;
the second network is an out-of-band network distinct from an in-band network with which data is conveyed between rack-mounted computing devices or between rack-mounted computing devices and the internet; and
the API request is encoded in a first protocol;
based on the API request, selecting, with the rack-controller, one of a plurality of routines to effectuate control via the second network of at least some of the plurality of rack-mounted computing devices, the plurality of routines including:
a first routine that reads a sensor via the second network on one of the rack-mounted computing devices;
a second routine that reads a sensor via the second network on the rack but not on one of the rack-mounted computing devices;
a third routine that scans computing devices on the second network and produces an inventory of the scanned computing devices on the second network;
a fourth routine by which a configuration of an extensible firmware interface (EFI) of a given one of the rack-mounted computing device is adjusted; and
executing, with the rack-controller, the selected routine and, as a result, sending one or more commands via the second network encoded in a second protocol different from the first protocol to effectuate an action indicated by the API request.
-
A data center, comprising:
a data center management computing device communicatively coupled to an out-of-band network; and
a plurality of racks, each rack comprising:
a plurality of rack-mounted computing devices within the plurality of racks and communicatively coupled to an in-band network;
a rack-controller communicatively coupled to the data center management computing device via the out-of-band network;
a powerline network having a rack-specific network address space independent of address spaces of other powerline networks of other racks;
a plurality of powerline modems each associated with a respective one or more of the rack-mounted computing devices; and
a tangible, non-transitory, machine-readable medium of the rack controller storing instructions that when executed by the rack-controller effectuate operations comprising:
receiving, with a rack-controller, via the out-of-band network, a request;
based on the request, selecting, with the rack-controller, one of a plurality of routines to effectuate control via the second network of at least some of the plurality of rack-mounted computing devices, the plurality of routines including at least two of the following:
a first routine that reads a sensor via the second network on one of the rack-mounted computing devices;
a second routine that reads a sensor via the second network on the rack but not on one of the rack-mounted computing devices;
a third routine that scans computing devices on the second network and produces an inventory of the scanned computing devices on the second network; or
a fourth routine by which a configuration of an extensible firmware interface (EFI) of a given one of the rack-mounted computing device is adjusted; and
executing, with the rack-controller, the selected routine and, as a result, sending one or more commands via the powerline network to effectuate an action in response to the request.
Owners (US)
-
Vapor Io Inc
(Dec 06 2016)
Explore more patents:
Applicants
-
Vapor Io Inc
Explore more patents:
Inventors
-
Cencini Andrew Brian
Explore more patents:
-
White Steven
Explore more patents:
-
Crawford Cole Malone
Explore more patents:
Download PDF
Document Preview
Document History
- Publication: Mar 23, 2017
-
Application:
Dec 1, 2016
US 201615366554 A
-
Priority:
Dec 1, 2016
US 201615366554 A
-
Priority:
Mar 9, 2016
US 201615065212 A
-
Priority:
Jan 7, 2016
US 201662275909 P
-
Priority:
Oct 30, 2015
US 201562248788 P
-
Priority:
Mar 9, 2015
US 201562130018 P