System and method for redundant object storage
09746900 · 2017-08-29
Assignee
Inventors
- Seth Feder (Austin, TX, US)
- Farzad Khosrowpour (Pflugerville, TX, US)
- Kevin Marks (Round Rock, TX, US)
Cpc classification
G06F3/0632
PHYSICS
G06F11/2043
PHYSICS
G06F1/3209
PHYSICS
G06F1/3203
PHYSICS
G06F2201/84
PHYSICS
Y02D10/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
G06F11/2017
PHYSICS
International classification
Abstract
Systems and methods for redundant object storage are disclosed. A method may include storing at least two copies of each of a plurality of objects among a plurality of nodes communicatively coupled to one another in order to provide redundancy of each of the plurality of objects in the event of a fault of one of the plurality of nodes. The method may also include monitoring access to each object to determine a frequency of access for each object. The method may additionally include redistributing one or more of the copies of the objects such that at least one particular node of the plurality of nodes includes copies of only objects accessed at a frequency below a predetermined frequency threshold based on the determined frequency of access for each object. The method may further include placing the at least one particular node in a reduced-power mode.
Claims
1. A method for redundant data object storage, comprising: monitoring respective access to at least two copies of a data object stored among a plurality of information handling systems communicatively coupled together; determining a frequency of access for each copy of the data object based on the monitoring; including the data object in a first set if the frequency of access is below a predetermined frequency threshold, otherwise including the data object in a second set; for data objects stored on a first information handling system in the plurality of information handling systems, determining a ratio of a first size of the first set to a second size of the second set; and setting, by a microcontroller of a processor of the first information handling system, a reduced-power mode for the first information handling system based on the determined ratio.
2. The method of claim 1, wherein setting the reduced-power mode for the first information handling system further comprises: determining that the ratio exceeds a predetermined value; and redistributing the second set from the first information handling system to a second information handling system included in the plurality of information handling systems if the ratio exceeds the predetermined value.
3. The method of claim 1, wherein the first size of the first set includes data objects for which a copy is stored on a different one of the plurality of information handling systems than the first information handling system.
4. The method of claim 1, wherein setting the reduced-power mode for the first information handling system further comprises redistributing the second set from the first information handling system to a second information handling system included in the plurality of information handling systems in response to a command received from a system administrator.
5. The method of claim 1, wherein setting the reduced-power mode for the first information handling system further comprises: determining a first available storage capacity of the first information handling system; and redistributing the second set from the first information handling system to a second information handling system included in the plurality of information handling systems if the first available storage capacity is below a predetermined capacity threshold.
6. The method of claim 1, wherein the predetermined frequency threshold is based on a number of access events for the data object within a time period.
7. The method of claim 1, wherein the reduced-power mode specifies reducing power consumption of a storage resource.
8. The method of claim 1, wherein the reduced-power mode specifies reducing power consumption of a processor.
9. The method of claim 1, wherein the plurality of information handling systems are a redundant array of independent nodes.
10. A system for redundant object storage, comprising a plurality of nodes communicatively coupled to one another, wherein each of the plurality of nodes further comprises: a processor; a network interface communicatively coupled to the processor; and a non-transitory computer-readable medium communicatively coupled to the processor and having stored thereon instructions executable by the processor to: monitor respective access to at least two copies of a data object stored among the plurality of nodes; determine a frequency of access for each copy of the data object based on the monitored access; include the data object in a first set if the frequency of access is below a predetermined frequency threshold, otherwise include the data object in a second set; for data objects stored on a first node in the plurality of nodes, determine a ratio of a first size of the first set to a second size of the second set; and set a reduced-power mode for the first node based on the determined ratio by a microcontroller of the processor.
11. The system of claim 10, wherein the instructions to set the reduced-power mode for the first node further comprise instructions to: determine that the ratio exceeds a predetermined value; and redistribute the second set from the first node to a second node included in the plurality of nodes if the ratio exceeds the predetermined value.
12. The system of claim 10, wherein the first size of the first set includes data objects for which a copy is stored on a different node of the plurality of nodes than the first node.
13. The system of claim 10, wherein the instructions to set the reduced-power mode for the first node further comprise instructions to: redistribute the second set from the first node to a second node included in the plurality of nodes in response to a command received from a system administrator.
14. The system of claim 10, wherein the instructions to set the reduced-power mode for the first node further comprise instructions to: determine a first available storage capacity of the first node; and redistribute the second set from the first node to a second node included in the plurality of nodes if the first available storage capacity is below a predetermined capacity threshold.
15. The system of claim 10, wherein the predetermined frequency threshold is based on a number of access events for the data object within a time period.
16. The system of claim 10, wherein the reduced-power mode specifies reducing power consumption of a storage resource.
17. The system of claim 10, wherein the reduced-power mode specifies reducing power consumption of a processor.
18. The system of claim 10, wherein the plurality of nodes are a redundant array of independent nodes.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
(2)
(3)
(4)
DETAILED DESCRIPTION
(5) Preferred embodiments and their advantages are best understood by reference to
(6) For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a PDA, a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic. Additional components or the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
(7) For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive, floppy disk, solid-state storage device), a sequential access storage device (e.g., a tape drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
(8)
(9) Each node 102 may comprise an information handling system and may generally be operable to communicate data via network 110 to other nodes 102 or other information handling systems. As depicted in
(10) Each processor 103 may include any system, device, or apparatus configured to interpret and/or execute program instructions and/or process data, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, a processor 103 may interpret and/or execute program instructions and/or process data stored and/or communicated by one or more of memory 104, storage resource 106, and/or another component of node 102.
(11) Each memory 104 may be communicatively coupled to its corresponding processor 103 and may comprise any system, device, or apparatus configured to retain program instructions or data for a period of time (e.g., computer-readable media). A memory 104 may comprise random access memory (RAM), electrically erasable programmable read-only memory (EEPROM), a PCMCIA card, flash memory, magnetic storage, opto-magnetic storage, solid state storage, or any suitable selection and/or array of volatile or non-volatile memory that retains data after power to information handling system 102 is turned off.
(12) Each storage resource 106 may be communicatively coupled to its associated processor 103 and may include any system, device, or apparatus configured to retain program instructions or data for a period of time (e.g., a computer-readable medium). In some embodiments, a storage resource 106 may include a hard disk drive, a magnetic tape library, an optical disk drive, a magneto-optical disk drive, a compact disk drive, a compact disk drive, a solid state storage drive, a FLASH drive and/or any other suitable computer-readable medium.
(13) As shown in
(14) In addition, storage resource 106 of one or more nodes 102 may have stored thereon a redundancy manager 114. A redundancy manager 114 may include one or more computer-readable instructions that may, when retrieved from storage resource 106 and executed by processor 103, manage the redundancy, replication, and distribution of redundant data among storage resources 106 of the various nodes 102, and/or monitor accesses to objects 112 stored on its local storage resource, as explained in greater detail below.
(15) Each network interface 108 may include any suitable system, apparatus, or device operable to serve as an interface between its corresponding node 102 and network 110. A network interface 108 may enable its corresponding node 102 to communicate over network 110 using any suitable transmission protocol and/or standard, including without limitation all transmission protocols and/or standards enumerated below with respect to the discussion of network 110. Network interface 108 and its various components may be implemented using hardware, software, or any combination thereof.
(16) Network 110 may be a network and/or fabric configured to communicatively couple nodes 102 to each other, other information handling systems and/or other devices. In certain embodiments, network 110 may include a communication infrastructure, which provides physical connections, and a management layer, which organizes the physical connections of nodes 102 and other devices coupled to network 110. Network 110 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). Network 110 may transmit data using any storage and/or communication protocol, including without limitation, Fibre Channel, Frame Relay, Ethernet Asynchronous Transfer Mode (ATM), Internet protocol (IP), or other packet-based protocol, and/or any combination thereof. Network 110 and its various components may be implemented using hardware, software, or any combination thereof.
(17) In operation, a redundancy manager 114 may monitor objects 112 with copies local to the node 102 associated with the redundancy manager 114 to determine a frequency at which individual objects 112 are accessed. Based on such determined frequencies, a node 102 may redistribute its copies of certain objects 112 local to such node 102 to one or more other nodes 102, and/or may receive copies of other certain objects 112 from one or more other nodes 102. For example, based on determined frequencies, a node 102 may redistribute copies of frequently-accessed objects 112 (e.g., objects 112 accessed with a frequency above a predetermined frequency threshold) to one or more other nodes 102, and may receive copies of rarely-accessed objects 112 (e.g., objects 112 accessed with a frequency below a predetermined frequency threshold) from one or more other nodes 102. In addition, based on determined frequencies, a node 102 may redistribute copies of rarely-accessed objects 112 (e.g., objects 112 accessed with a frequency below a predetermined frequency threshold) to one or more other nodes 102, and may receive copies of frequently-accessed objects 112 (e.g., objects 112 accessed with a frequency above a predetermined frequency threshold) from one or more other nodes 102.
(18) The predetermined frequency threshold may be set by a manufacturer, system administrator, and/or in any other suitable manner. The predetermined frequency threshold may be defined by a number of accesses, a time of one or more accesses, or any combination thereof (e.g., no accesses within past month, 100 accesses since installation, 40 accesses within last week, etc.).
(19) After the redistribution of copies of objects 112 described above, one or more nodes 102 may have copies of only rarely-accessed objects 112 remaining stored thereon. Accordingly, such one or more nodes 102 may enter a reduced-power state (e.g., a “sleep” or “slumber” mode). For example, in a reduced-power state, storage resources 106 of such one or more nodes 102 may be “spun down,” processors 103 of such nodes 102 may be placed in a lower-power state (e.g., wherein minimal processing takes place but the processor 103 continues to monitor traffic), and/or other components of such one or more nodes 102 may be set into a reduced-power mode. Alternatively or in addition, network interface 108 of a reduced-power node 102 may continue to listen to network traffic, and may cause node 102 to “wake” or leave the reduced-power state upon receiving a message or indication that an object 112 having a copy stored on the reduced-power node could not be provided by another node 102 (e.g., by reason of failure or fault of a node 102 including another copy of the object 112, network bandwidth constraints, or other fault or failure preventing another node 102 to provide such copy). Accordingly, power consumed by system 100 may be reduced while still maintaining desired redundancy.
(20) In some embodiments, objects 112 may be redistributed among nodes 102 such that each object 112 having a copy stored on reduced-power nodes 102 may also have at least copy of such object stored on a node 102 that is not placed in a reduced-power state (e.g., a node 102 that remains “active”) such that least one copy of each object 112 exists on an active (e.g., not placed in reduced-power mode) node 102.
(21) In some embodiments, a node 102 may initiate redistribution and receipt of objects 112 in response to a triggering event. For example, a triggering event may include a command initiated by a system administrator to redistribute objects 112 and enter a reduced-power state as described above.
(22) As another example, a node 102 may begin redistribution of objects 112 in response to a determination (e.g., by redundancy manager 114 or another element of a node 102) that a ratio of copies of rarely-accessed objects 112 to copies of frequently-accessed objects 112 stored on the node 102 exceeds a predetermined ratio. Such predetermined ratio may be set by a manufacturer, system administrator, and/or in any other suitable manner.
(23) As a further example, a node may begin redistribution of copies of objects 112 in response to a determination (e.g., by redundancy manager 114 or another element of a node 102) that a remaining available capacity of a storage resource 106 local to the node has decreased below a predetermined capacity threshold. Such predetermined capacity threshold may be set by a manufacturer, system administrator, and/or in any other suitable manner.
(24) Although system 100 is depicted as having four nodes 102, system 100 may include any number of nodes 102.
(25)
(26) At step 202, redundancy managers 114 of nodes 102 may monitor accesses to each object 112.
(27) At step 204, redundancy managers 114 may monitor for a triggering event. A triggering event may include any of the triggering events described above or any other suitable event.
(28) At step 206, redundancy mangers 114 may determine if a triggering event has occurred. If a triggering event has occurred, method 200 may proceed to step 208. Otherwise, if a triggering event has not occurred, method 200 may proceed again to step 204.
(29) At step 208, in response to a triggering event, nodes 102 may redistribute copies of objects 112 such that at least one node 102 includes only copies of objects 112 accessed at a frequency below a predetermined frequency threshold and such that desired redundancy of system 100 is maintained.
(30) At step 210, the at least one node 102 including only copies of objects 112 accessed at a frequency below the predetermined frequency threshold is placed in a reduced-power state.
(31) Although
(32) Method 200 may be implemented using system 100 or any other system operable to implement method 200. In certain embodiments, method 200 may be implemented partially or fully in software and/or firmware embodied in computer-readable media.
(33)
(34) In
(35) Before execution of method 200, node 102d of this example may include copies of rarely-accessed objects C and D (C.sub.2 and D.sub.1)and copies of frequently-accessed objects E and F (E.sub.2 and F.sub.1), as shown in
(36) For the purposes of illustration,
(37) Using the methods and systems disclosed herein, problems associated with conventional approaches to data storage of redundant data may be reduced or eliminated. For example, the methods and systems disclosed may allow for desired data redundancy to be maintained while lowering system power requirements.
(38) Although the present disclosure has been described in detail, it should be understood that various changes, substitutions, and alterations can be made hereto without departing from the spirit and the scope of the disclosure as defined by the appended claims.