As reliance on computing systems continues to grow, so too does the demand for reliable power systems and back-up schemes for these computing systems. Servers, for example, may provide architectures for backing up data to flash or persistent memory as well as back-up power sources for powering this back-up of data after the loss of power. Backup power sources may sometimes include energy components such as capacitors or batteries.
A data storage system can include a number of nodes that support a number of loads. A data storage system can include a backup power system operatively coupled to the at least the number of nodes to support the number of loads in an event of a removal of a primary power supply. The power system can include a battery module and a backup power controller module that determines a backup power demand of at least one load to the number of loads and selectively provide backup power from the battery module to the number of loads in parallel.
The nodes can represent a number of servers, for example. Furthermore, the loads can represent cache memory.
A removal of a primary power supply can be a scheduled and/or an un-scheduled primary power supply removal. A scheduled removal of a primary power supply can be a scheduled removal of the primary power supply. For instance, a scheduled removal of the primary power supply can be the result of scheduled maintenance on the number of nodes and/or the number of loads. A scheduled removal of the primary power supply can be an intentional power down of the number of nodes and/or the number of loads to add and/or remove nodes to a chassis and/or network connected to a primary power supply.
An un-scheduled primary power supply removal can be an failure in the primary power supply. An un-scheduled primary power supply removal can occur when, for example, the primary power supply fails momentarily and/or permanently.
There can be a need to move data from cache memory in the number of loads to non-volatile memory upon the removal of a primary power supply. However, moving data from cache memory to non-volatile memory can require a power supply. A backup power supply can be a secondary power supply that is used to provide power for moving data from cache memory to non-volatile memory.
In a number of previous examples, the backup power for moving data from cache memory to non-volatile memory may include providing each node with a separate backup power supply. That is, if there are two nodes then each node is coupled to a separate backup power supply.
However, in the present disclosure, a backup power supply can provide backup power for a number of nodes. Providing a backup power supply for a number of nodes can save costly space and overhead over providing multiple backup power supplies for multiple nodes. In a number of examples, less costly components can be used in the backup power supply due to the added amount of time provided for supplying backup power as compared to providing multiple backup power supplies for multiple nodes. Providing a backup power for a number of nodes can reduce the costs associated with providing the multiple backup power supplies and maintaining the multiple backup power supplies. Furthermore, selectively providing a backup power can afford a greater amount of time and support a greater number of nodes and/or loads as compared to multiple backup power supplies that provide backup power to multiple nodes.
The number of engines 223, 224, 225, and 226 shown in
Further, the engines and/or modules described in connection with
In the embodiment of
The battery module 108 and/or the battery engine 225 in
In a number of examples, the backup power supply 330 that can control the power supplied to a number of nodes and identify the state of the nodes 336 that are coupled to the backup power supply 330.
The power supply 330 can be coupled to a signal clock line (SOL) 340 and a signal data line (SDA) 342, and an install line. The SOL 340 and the SDA 342 can connect the backup power supply 330 to the chassis/host controller 332 and to the MUX 334. The MUX 334 can be coupled to the nodes 336. In a number of examples, the backup power supply 330 can be coupled to the chassis/host controller 332 via the install line. The chassis/host controller 332 can be coupled to the nodes 336 via SCL1, SDA1, SCL2, SDA2, SCL3, SDA3, SCL4, and SDA4. The chassis/host controller 332 can also be coupled to the nodes 336 via install1 line 1, install line 2, install line 3, and install line 4. In a number of examples, the install lines can provide for the registering of the nodes with the chassis/host controller 332.
The chassis/host controller 332 can be separate from the chassis supporting the number of nodes and the MUX 334. In a number of examples, the nodes 336 can be connected in parallel on one chassis and can be serially chained to the backup power supply 330 on multiple different chassis.
A node engine 223 in
The number of loads can be volatile and/or non-volatile memory. For example, the loads can include cache memory, e.g., volatile memory.
If the main power supply is removed, then data can be transferred from the cache memory in the loads to persistent memory, e.g., to a number of non-volatile (NV) dual in-line memory modules (DIMMs) having flash memory, persistent dynamic random access memory (DRAM), etc. For example, data can be moved from cache memory to at least sixteen (16) NV DIMMs having flash memory. In a number of examples, the flash memory of the at least 16 DIMMS can include flash memory having multilevel cells (MLCs). Moving the data can include moving the data to non-volatile memory that is local to the nodes 336, external to the nodes 336, and/or external to the power management system.
In a number of examples, a backup power supply can support nodes on different chassis. That is, a backup power supply can support different chassis/host controllers, e.g., not shown, and different MUXs, e.g., not shown, to support a plurality of nodes on the different chassis.
The SCL 340, the SDA 342 and the MUX 334 can be part of chassis/host controller 332 interface with the backup power supply 330 and the nodes 336. The SCL 340 and the SDA 342 can be used by the chassis/host controller 332 to clock the nodes 336 and/or transfer data from the nodes 336 and to communicate this information to the backup power supply 330. For example, the chassis/host controller 332 can clock the nodes 336 in communication with the backup power supply 330 via the SOL 340. The chassis/host controller 332 can control management of the nodes 336 under both primary and backup power supply. The chassis/host controller's 332 control management function for the nodes 336 can include the addition and/or removal of the node connections. Adding and/or removing the nodes 336 can include dynamically coupling the nodes 336 to a chassis.
In the example management interface between the chassis/host controller 332 and the backup power supply 330 shown in
As stated, the chassis/host controller 332 includes circuitry that can be used to control, add, remove, and/or register nodes with the chassis. The chassis/host controller 332 can also control operation of the nodes 336 such as the movement of data from volatile memory (e.g., cache) to persistent memory, e.g., to non-volatile memory (persistent DRAM, flash, etc).
In a number of examples, the chassis/host controller 332 can be coupled to array control logic 338. Backup power control module 109 and backup power control engine 226 in
The chassis/host controller 332 can be coupled to the number of nodes via a number of signal control lines. For example, the chassis/host controller 332 can be coupled to the array control logic 338 via the backup energy node enabled line (Vbat_Node1_EN) 334-1 to signal the backup power supply is enabled for NODE 1. The signal lines (P12V_PGD_Node1) 346-1 can communicate the primary power supply status between the chassis/host controller 332 and the array control logic 338 for each of the respective nodes 336. The (MC_OUT_N_NODE1) 348-1 signal line between the chassis/host controller 332 and the array control logic 338 for NODE 1 can signal a “dirty” (e.g., data present and not previously backed up) or “clean” (e.g., data not present or previously backed up) non-volatile (e.g., cache) memory status. In a similar manner, the chassis/host controller 332 can be coupled to array control logic 338-2 via the Vbat_Node2_EN 334-2, the P12V_PGD_Node2346-2, and the MC_OUT_N_NODE2348-2. The chassis/host controller 332 can be coupled to array control logic 338-3 via the Vbat_Node3_EN 334-3, the P12V_PGD_Node3346-3, and the MC_OUT_N_NODE3348-3. The chassis/host controller 332 can be coupled to array control logic 338-4 via the Vbat_Node4_EN 334-4, the P12V_PGD_Node4346-4, and the MC_OUT_N_NODE4348-4.
The Vbat_Node1_EN 334-1, Vbat_Node2_EN 334-2, Vbat_Node3_EN 334-3, and Vbat_Node4_EN 334-4 are generally referred to as Vbat_Node_EN 334. The Vbat_Node_EN 334 is a signal that is used to control an e-fuze to provide backup power from the backup power source 330. An e-fuse is an electronically controlled fuze, e.g., transistor controlled fuse.
The P12V_PGD_Node1346-1, P12V_PGD_Node2346-2, P12V_PGD_Node3346-3, and P12V_PGD_Node4346-4 are referred to generally as P12V_PGD_Node 346. The P12V_PGD_Node3346-3 is a signal that identifies whether the main power source is active.
The MC_OUT_N_NODE1348-1, the MC_OUT_N_NODE2348-2, the MC_OUT_N_NODE3348-3, and the MC_OUT_N_NODE4348-4 are referred to generally as the MC_OUT_N_NODE 348. The MC_OUT_N_NODE 348 is a signal that identifies whether the nodes 336 have dirty cache. Dirty cache can reference cache that contains data that has not been moved to non-volatile memory. That is, dirty cache identifies if there is data that needs to be backed-up.
In a number of examples, the array control logic 338 can be coupled to the nodes via MC_OUT_N_NODE 348. For example, the nodes 336 can provide a voltage to the MC_OUT_N_NODE 348 when data needs to be backed up to non-volatile memory. The MC_OUT_N_NODE 348 can also couple the chassis/host controller 332 to the nodes 336 and the array control logic 338.
In a number of examples, the backup power supply 330 can provide a power to the array control logic 338 and the nodes 336 via a backup power control line (Vctrl) 354. The Vctrl 354 can be coupled to both the main power line (P12V) and the backup power line (Vbat) 350. That is, the Vctrl 353 can provide power to the array control logic 338 via a main power supply and/or a backup power supply 330. In a number of examples, the backup power supply 330 can provide power to the array control logic 338 which in turn can be used to activate the Vbat 350 to supply power to the nodes 336.
In a number of examples, the P12V can provide a same voltage and/or a different voltage, e.g., power, to the array control logic 338 and the nodes 336, than a voltage provided by the backup power supply 330 via Vbat 350 and/or Vctrl 354. For example, the main power source can provide 12 volts via the P12V while the backup power supply can provide a different voltage via the Vbat 350 and/or Vctrl 354.
In
The following truth table, e.g., Table 1, is an example of a first part of a function that in part defines the array control logic 438:
The first part of a function that in part defines the array control logic 438 receives as input MC_OUT_N_NODE 448 and P12V_PGD_NODE 446. The result of the first part of the function is given in VBAT_EN_SUB 458. For example, MC_OUT_N_NODE can hold a high voltage, e.g., 1, if there is no data that needs to be backed-up or a low voltage, e.g., 0, if there is data that needs to be backed-up, e.g., dirty cache. The P12V_PGD_NODE can hold a high voltage, e.g., 1, if the main power supply is active and a low voltage, e.g., 0, if the main power supply is not active.
In the first truth table, e.g., Table 1, the VBAT_EN_SUB 458 provides a low voltage if there is no dirty cache, e.g., MC_OUT_N_NODE 448 provides a high voltage (1), and the main power supply is active, e.g., P12V_PGD_NODE provides a high voltage (1). VBAT_EN_SUB 458 can provide a low voltage (0) if there is no dirty cache, e.g., MC_OUT_N_NODE 448 provides a high voltage (1), and the main power supply is inactive, e.g., P12V_PGD_NODE provides a low voltage (0). VBAT_EN_SUB 458 can provide a high voltage (1) if there is dirty cache, e.g., MC_OUT_N_NODE 448 provides a low voltage (0), and the main power supply is active, e.g., P12V_PGD_NODE provides a high voltage (1). VBAT_EN_SUB 458 can provide a high voltage (1) if there is dirty cache, e.g., MC_OUT_N_NODE 448 provides a low voltage (0), and the main power supply is inactive, e.g., P12V_PGD_NODE provides a low voltage (0).
The following truth table, e.g., Table 2, is an example of a second part of a function that in part defines the array control logic 438:
In the second truth table, e.g., Table 1, Vbat_EN_NODE 460 provides a high voltage (1) if Vbat_EN_SUB 458 provides a high voltage (1), Vbat_NODE_EN 438 provides a high voltage (1), and Vbat_PGD_NODE 462 provides a high voltage (1). Vbat_EN_NODE 460 provides a high voltage (1) if Vbat_EN_SUB 458 provides a high voltage (1). Vbat_NODE_EN 438 provides a high voltage (1), and Vbat_PGD_NODE 462 provides a low voltage (1). Vbat_EN_NODE 460 provides a high voltage (1) if Vbat_EN_SUB 458 provides a high voltage (1), Vbat_NODE_EN 438 provides a low voltage (0), and Vbat_PGD_NODE 462 provides a high voltage (1). Vbat_EN_NODE 460 provides a low voltage (0) if Vbat_EN_SUB 458 provides a high voltage (1), Vbat_NODE_EN 438 provides a low voltage (0), and Vbat_PGD_NODE 462 provides a low voltage (0). Vbat_EN_NODE 460 provides a low voltage (0) if Vbat_EN_SUB 458 provides a low voltage (0), Vbat_NODE_EN 438 provides a high voltage (1), and Vbat_PGD_NODE 462 provides a high voltage (1). Vbat_EN_NODE 460 provides a low voltage (0) if Vbat_EN_SUB 458 provides a low voltage (0), Vbat_NODE_EN 438 provides a high voltage (1), and Vbat_PGD_NODE 462 provides a low voltage (0). Vbat_EN_NODE 460 provides a low voltage (0) if Vbat_EN_SUB 458 provides a low voltage (0), Vbat_NODE_EN 438 provides a low voltage (0), and Vbat_PGD_NODE 462 provides a high voltage (1). Vbat_EN_NODE 460 provides a low voltage (0) if Vbat_EN_SUB 458 provides a low voltage (0), Vbat_NODE_EN 438 provides a low voltage (0), and Vbat_PGD_NODE 462 provides a low voltage (0). Vbat_EN_NODE 460 can provide a high voltage to provide backup power to a node. Vbat_EN_Node 460 can provide a low voltage to restrict backup power to the node.
At 572, an output from a battery module to the at least two nodes can be selectively enabled. Selectively enabling the output can include providing power from the backup power supply to a portion of the number of nodes that are coupled to the backup power supply. For, example, a determination can be made to provide power from the backup power supply to a first node and to not provide power from the backup power supply to a second node, both the first node and the second node being coupled to the backup power supply. A determination to provide power to the first node can be, for example, made because the first node has cache that needs to be backed-up. Furthermore, a determination not to provide power to the second node can be made because the second node has cache that does not need to be backed-up. In a number of examples, selectively enabling the output can be performed in a number of array control logic units that control whether the nodes receive power from the backup power supply.
In a number of embodiments, a backup power supply can support more than a fixed number of loads in parallel by sequentially enabling the backup power supply to provide power to the nodes 336. For example, if a particular fixed number of loads that a backup power supply can support is 24 loads, then by sequentially enabling a connection of the backup power supply to the nodes the backup power supply may support a number of loads greater than 24, e.g., 36 loads, 48 loads, etc., on the nodes 336 via sequencing. The sequencing can be performed via a chassis/host controller 332 in communication with the backup power supply 330. That is, the chassis/host controller can control sequencing a backup power to according received input for a plurality of loads greater than 24 loads. In one example, a backup power supply can support more than 24 loads by sequencing backup power to first group of loads, e.g., 24 loads, and not a second group of loads, e.g., another 24 loads on a same or different chassis. In this example, after a predetermined amount of time, the backup power supply can provide backup power to the second group of loads and not the first group of loads.
In this example, providing power by sequencing can include alternating the enabling of connections between the backup power supply 330 and the nodes 336. For example, during a first time interval the first group of loads can receive backup power supply connection but not the second group of loads. During a second time interval the second group of loads can receive backup power supply connection but not the first group of loads. During a third time interval the first group of loads can again receive backup power but not the second group of loads. In a number of examples, providing power by sequencing can include providing power by alternating power between individual nodes.
In a number of examples, a separate array control logic unit can determine whether to provide power from the backup power supply to each of the nodes. A first array control logic unit can determine to provide power to a first node while a second array control logic unit can determine to provide power to a second node, the first node being separate from the second node.
In a number of examples, nodes can be added, e.g., coupled to, or removed, e.g., decoupled, from the backup power supply. Adding or removing nodes from the backup power supply can include signaling a chassis/host controller for the at least two nodes upon an addition or a removal of a node from the chassis. In a number of examples, signaling a chassis/host controller can include signaling a MUX that functions as a chassis/host controller. The chassis/host controller can signal the node by clocking the node. Adding or removing the backup power supply can enable the backup power supply to provide power to a first quantity of nodes at a first time and a second quantity of nodes at a second time.
Determining the backup power demand of the at least two nodes supporting the multiple loads can include determining a backup power demand to transfer data from volatile, e.g., cache, memory in the multiple loads to each of multiple array controllers and to persistent memory, e.g., to non-volatile memory. Non-volatile memory may include by way of example, and not by way of limitation, multiple non-volatile dual in-line memory modules (NV-DIMMs) having multilevel cell (MLC) flash memory. Embodiments, however, are not so limited. The transfer of data can occur, for example, when a main power supply becomes inactive, for example, based on a failure of the main power supply. A signal can be provided to the array control logic indicating removal of a primary power supply. Removal of the main power supply can trigger a determination, by the array control logic, to provide power from the backup power supply to the number of nodes.
In a number of examples, a determination to provide power form the backup power supply to the number of nodes can include providing the output of power from the battery module to each of the selected nodes in parallel. Providing the output of power form the battery module to each of the selected nodes in parallel can enable the nodes to perform backup functions in parallel.
In a number of examples, a backup power supply can provide power to a plurality of nodes and a plurality of chassis array controllers that are coupled to different chassis. For example, a backup power supply can provide power to a first number of nodes and a first number of array controllers via a first chassis and a second number of nodes and a second number of array controllers via a second chassis.
In a number of examples, the backup power supply can provide the output of power to each of six (6) array controllers and to each of sixteen (16) NV-DIMMs on one chassis in parallel and to another number of nodes supporting multiple loads on a different chassis sequentially for more than a specified time period. For example, backup power can be provided for more than a 90 second time period, more than a 60 second time period, and/or more than a 30 second time period. In a number of examples, the backup power supply can provide up to 160 second of power.
In the present disclosure, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration how a number of examples of the disclosure can be practiced. These examples are described in sufficient detail to enable those of ordinary skill in the art to practice the examples of this disclosure, and it is to be understood that other examples can be used and that process, electrical, and/or structural changes can be made without departing from the scope of the present disclosure.
The figures herein follow a numbering convention in which the first digit corresponds to the drawing figure number and the remaining digits identify an element or component in the drawing. Elements shown in the various figures herein can be added, exchanged, and/or eliminated so as to provide a number of additional examples of the present disclosure. As used herein, the designators “N” and “M”, among others, indicate that a number of the particular feature so designated can be included with a number of examples of the present disclosure. In addition, the proportion and the relative scale of the elements provided in the figures are intended to illustrate the examples of the present disclosure, and should not be taken in a limiting sense.
The specification examples provide a description of the applications and use of the system and method of the present disclosure. Since many examples can be made without departing from the spirit and scope of the system and method of the present disclosure, this specification sets forth some of the many possible example configurations and implementations.
As used herein, “a” or “a number of” something can refer to one or more such things. For example, “a number of widgets” can refer to one or more widgets.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2014/032480 | 4/1/2014 | WO | 00 |