Storage system
The storage system employs a distributed RAID method to manage power consumption by transitioning drives between active and low-power states, addressing inefficiencies in existing power management and enhancing energy efficiency in storage devices.
Patent Information
- Application Number
- JP2024123569
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-30
- Publication Date
- 2026-02-12
AI Technical Summary
Existing storage systems face challenges in effectively reducing power consumption, particularly in mission-critical storage devices with large-capacity drives, as current pool power control methods do not efficiently manage power usage across drives.
A storage system utilizing a distributed RAID method that configures virtual parity groups and transitions physical drives between active and low-power states based on capacity and performance needs, allowing for dynamic power management without data relocation during state changes.
This approach effectively reduces power consumption by transitioning drives to low-power states based on usage demands, optimizing power usage while maintaining data integrity and performance.
Smart Images

Figure 2026022143000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to power saving in storage systems. [Background technology]
[0002] In recent years, growing environmental awareness in the IT industry has led to calls for reducing the power consumption of servers and storage devices operated in data centers. In particular, for mission-critical storage devices equipped with large-capacity drives, the power consumption of the drives accounts for a large proportion of the overall power consumption of the storage device, so reducing the power consumption of the drives is important for reducing the power consumption of the entire storage device. Examples of drives include solid-state drives (SSDs) and hard disk drives (HDDs).
[0003] Generally, storage devices with thin provisioning (capacity virtualization) functionality combine physical storage areas distributed across multiple drives to provide a virtual storage area called a thin provisioning pool. Hereafter, the virtual storage area provided by a storage device with thin provisioning functionality will be simply referred to as a pool.
[0004] Data stored in a pool is distributed among the drives that make up the pool, and data protection may be configured among the drives that make up the pool using RAID (Redundant Array of Inexpensive Disks).
[0005] Pools are usually designed with ample capacity, so it is possible to reduce drive power consumption by biasing data allocation within the pool to a few drives and transitioning drives that no longer have data allocated to them into a low-power state. This type of power control method is hereinafter referred to as pool power control.
[0006] To achieve pool power control, the storage device is required to have the following functions: evacuate data from drives included in the pool, remove the drives from pool management, and transition the drives into a low-power consumption state; and cancel the low-power consumption state of a hibernated drive, incorporate the drives into pool management, and make the drives available for data placement.
[0007] Hereinafter, the former function and the operation to realize the former function will be referred to as "suspending the drive," and the latter function and the operation to realize the latter function will be referred to as "restoring the drive." Also, a suspended drive will be referred to as a suspended drive, and a non-suspended or resumed drive will be referred to as an operating drive.
[0008] Note that pool power control does not necessarily have to be performed on a drive-by-drive basis. For example, if RAID data protection is applied to the data stored on the drives, the drives that make up the data protection group may be simultaneously paused and resumed.
[0009] Patent Document 1 discloses a pool power control method. The pool power control method disclosed in this document suspends some drives when it detects that the free space in the pool has reached a threshold or above, or when a command is input. On the other hand, it resumes suspended drives when the free space in the pool falls below the threshold. [Prior art documents] [Patent documents]
[0010] [Patent Document 1] Japanese Patent Application Laid-Open No. 2010-33261 Summary of the Invention [Problem to be solved by the invention]
[0011] A pool power control method that can effectively reduce power consumption in a storage device is desired. [Means for solving the problem]
[0012] One aspect of the present invention is a storage system including a plurality of physical drives that physically store data and a storage controller that controls access to the plurality of physical drives, wherein the plurality of physical drives constitute a distributed parity group, and the storage controller provides the storage area of the plurality of physical drives that constitute the distributed parity group to a host device as a pool, which is a virtual storage area, and the pool is composed of one or more virtual parity groups consisting of a plurality of virtual drives, and the number of the plurality of virtual drives that constitute the virtual parity group is less than or equal to the number of physical drives that constitute the distributed parity group, and the states of each of the plurality of physical drives include a first state in which data input / output is possible and a second state in which data input / output is not possible and which consumes less power than the first state, and the storage controller transitions one or more physical drives that have been removed from the pool from the first state to the second state, and adds the one or more physical drives that are in the second state to the first state after transitioning them to the first state.
[0013] One aspect of the present invention is a storage system including a plurality of physical drives and a storage controller that controls access to the plurality of physical drives, wherein the plurality of physical drives constitute a plurality of parity groups, and the storage controller provides the storage areas of the plurality of parity groups to a host device as a pool that is a virtual storage area, and wherein the states of each of the plurality of physical drives include a first state in which data input / output is possible and a second state in which data input / output is not possible and which consumes less power than the first state, and the storage controller transitions a first parity group that has been removed from the pool from the first state to the second state, identifies components of a type different from physical drives that can be transitioned from a normal state to a low-power state by transitioning the first parity group to the second state, transitions the components to the low-power state, and adds the first parity group to the pool after transitioning the first parity group from the second state to the first state, and transitions the components to the normal state. [Effects of the Invention]
[0014] According to a representative embodiment of the present invention, it is possible to effectively control the power consumption of a storage device. Problems, configurations, and effects other than those described above will become clear from the following description of the embodiment. [Brief explanation of the drawings]
[0015] [Figure 1] Configuration examples of storage devices in embodiments 1, 2, and 3 [Figure 2] Example of a parity group configuration using the distributed RAID method in the first embodiment [Figure 3] Example of parcel mapping configuration in Example 1 [Figure 4A] Example of cycle configuration in Example 1 [Figure 4B] Example of cycle configuration in Example 1 [Figure 5] Example of adding drives to a distributed parity group one unit at a time in Example 1 [Figure 6] Example of drive addition processing with RAID width to distributed parity group in embodiment 1 [Figure 7] Configuration example of pool power control using distributed RAID method in embodiment 1 [Figure 8] Example of pool state transition in Example 1 [Figure 9] Configuration example of pool power control setting screen in embodiment 1 [Figure 10] Operation example of pool power control in the first embodiment [Figure 11] Implementation example of pool power control using distributed RAID in Example 2 [Figure 12] Example of pool state transition in Example 2 [Figure 13] Configuration example of cycle management table in embodiment 2 [Figure 14] Example of data storage logic based on appending in the second embodiment [Figure 15] Process flow of drive suspend process in the second embodiment [Figure 16] Processing flow of drive recovery processing in the second embodiment [Figure 17] Implementation example of pool power control using conventional RAID in Example 3 [Figure 18] Example of pool state transition in Example 3 [Figure 19] Configuration example of pool power control setting screen in embodiment 3 DETAILED DESCRIPTION OF THE INVENTION
[0016] The following description of the embodiments will be given with reference to the accompanying drawings. First, the prerequisites for the following description will be described.
[0017] First, the embodiments described below do not limit the invention according to the claims, and not all combinations of elements described in the embodiments are necessarily essential to the solution of the invention.
[0018] Second, in the following description, data structures such as "tables" and "lists" are used to describe how data and control information are stored, but other data structures that can provide equivalent representations may also be used. Also, in the following description, integer IDs are sometimes assigned to each item in a table or list to distinguish them, but these IDs may be expressed in other unique ID formats. Examples of other ID formats include GUIDs (Globally Unique IDs) and character strings.
[0019] Third, in the following explanation, we may use the term "program" to describe processing. However, a program is interpreted and executed by a CPU (Central Processing Unit), which controls components such as memory and ports as necessary to execute the processing described in the program. Furthermore, instead of executing the processing described in the program itself, the CPU may use an appropriate hardware accelerator to execute the processing, depending on the content of the processing. Examples of hardware accelerators include a compression accelerator that compresses and decompresses data on behalf of the CPU, and a DMA engine that performs data communication on behalf of the CPU.
[0020] Fourth, in the following explanation, the operation of physical components and the operation of logical data structures may be described without distinguishing between them. However, operations on logical data structures are performed by the operation of physical components abstracted by those data structures, while the operation of physical components also involves appropriate operations on the logical data structures that abstract those components. For example, when a storage controller inputs or outputs data to or from a drive, the storage controller not only sends and receives data to and from the drive, but also updates the control information area in memory and the metadata in non-volatile memory so that the status changes associated with the data input / output are appropriately reflected in logical data structures such as the thin provisioning pool that abstracts the drive and the parity group to which the drive belongs. [Example]
[0021] FIG. 1 shows an example of the configuration of a storage device according to this embodiment.
[0022] The storage device 120 includes one or more storage controllers 114 and one or more drives 102. The storage controller 114 is connected to the host 103 via one or more front-end ports 105, and is capable of receiving various commands from the host 103 and transmitting data to and from the host 103. The storage controller 114 is connected to the drives 102 via one or more back-end ports 112, and is capable of issuing various commands to the drives 102 and transmitting data to and from the drives 102.
[0023] The host 103 is an information processing device whose main function is to execute application programs. Examples of the host 103 include a mainframe and a server.
[0024] The drive 102 is a non-volatile storage device. Examples of the drive 102 include a solid state drive (SSD) and a hard disk drive (HDD). The drive 102 may be built into the storage controller 114, or may be stored in a drive box 119 independent of the storage controller 114.
[0025] In this embodiment, the drive 102 has a normal state in which data input / output to / from the controller 114 is possible, and a low power consumption state in which data input / output is not possible but power consumption is low. The drive 102 may have a low power consumption state in which data input / output is possible but power consumption is low, or the drive 102 may not have a low power consumption state, and the low power consumption state may be achieved by stopping the power supply to the drive 102 using an external circuit that supplies power to the drive 102. The state in which the power supply is stopped is one of the low power consumption states of the drive 102.
[0026] The connection between the storage controller 114 and the host 103, and the connection between the storage controller 114 and the drive 102 do not need to be direct, as long as a logical communication path is secured that allows commands and data to be exchanged.
[0027] The connection between the storage controller 114 and the host 103 may be, for example, a SAN (Storage Area Network) 104 .
[0028] On the other hand, an example of a connection between the storage controller 114 and the drives 102 is a backend switch 100 that can connect multiple NVMe drives to a single PCIe port. Hereinafter, components necessary for access from the CPU 106 to the drives 102, including the backend switch 100, drive box 119, and backend port 112, will be referred to as upstream components.
[0029] Furthermore, the connections between the storage controllers 114 and the hosts 103, and the connections between the storage controllers 114 and the drives 102 do not necessarily require logical communication paths to be secured between all storage controllers 114 and all hosts 103, and between all storage controllers 114 and all drives 102; each storage controller 114 may have logical communication paths secured only between some of the hosts 103 and some of the drives 102.
[0030] The storage controllers 114 are connected to each other by an inter-controller bus 115, and commands and data can be exchanged via the inter-controller bus 115. For hosts 103 and drives 102 with which no logical communication path is established, each storage controller 114 can exchange commands and data with other storage controllers 114 via the inter-controller bus 115, thereby indirectly exchanging commands and data with the host 103 or drive 102.
[0031] Hereinafter, when describing the exchange of commands and data between the host 103, storage controller 114, and drive 102, it is assumed that the exchange of commands and data is carried out indirectly by each storage controller 114 exchanging commands and data with other storage controllers 114 via the inter-controller bus 115 as necessary.
[0032] When the storage controller 114 receives a read command from the host 103, it reads out the data stored in the drive 102 and transfers it to the host 103, and when it receives a write command from the host 103, it stores the data received from the host 103 in the drive 102.
[0033] The storage controller 114 includes a CPU 106 and a memory 113, and the CPU 106 has the function of executing a control program stored in a program area 107 on the memory 113. The CPU 106 uses a cache area 109 on the memory 113 as a storage area for temporary data, and also uses a control information area 108 on the memory 113 as a storage area for control information.
[0034] The control programs and control information in the memory 113 and the data in the cache area 109 are made nonvolatile as necessary. The storage controller 114 may be equipped with a dedicated nonvolatile memory 110 for making the control programs and control information in the memory 113 and the data in the cache area 109 nonvolatile. Examples of nonvolatile memory include an SSD (Solid State Drive) and an SCM (Storage Class Memory).
[0035] The CPU 106 exchanges data and commands with the host 103 and the drive 102 in accordance with the description of the control program.
[0036] The management device 116 is either built into the storage device 120 or connected to the storage device 120, and has a function of accepting operations by the user 118 and a function of storing settings made by the user 118.
[0037] The management device 116 does not have to be physical hardware, but may be, for example, management software that runs on a client PC connected to the storage device 120 via a network.
[0038] In this embodiment, data protection using a distributed RAID method is applied to the data on the drives 102. The storage apparatus 120 of this embodiment has a power consumption reduction function using pool power control.
[0039] The distributed RAID method is a data protection method in which parity groups made up of physical drives in general RAID methods (hereinafter referred to as conventional RAID) are replaced with virtual parity groups 200 made up of virtual drives, and the data of the virtual parity groups is distributed and stored on the physical drives, making it possible to determine the number of physical drives independently of the RAID redundancy.
[0040] FIG. 2 shows an example of the configuration of a parity group using a distributed RAID method according to this embodiment.
[0041] In the distributed RAID method, virtual parity groups 200 are configured from virtual drives 203, and pools 202 are configured by combining the virtual parity groups 200. The capacity of a pool is managed using the virtual parity group 200 as the smallest unit. In other words, the capacity of a pool is expanded by adding a virtual parity group 200 to the pool 202, and the capacity of a pool is reduced by deleting a virtual parity group 200 from the pool 202.
[0042] Data stored on the virtual drive 203 is distributed among the physical drives 102 in units called parcels 300. The one-to-one correspondence that assigns a storage location on the physical drive 102 to each parcel 300 on the virtual drive 203 is called parcel mapping 205.
[0043] Here, a set of physical drives 102 consisting of physical drives 102 in which data of virtual parity groups 200 constituting the same pool 202 is distributed and stored is called a distributed parity group 201. Parcel mapping 205 gives data storage locations on physical drives 102 within distributed parity group 201 to virtual drives 203 on virtual parity group 200, and configures distributed parity group 201 so that it has redundancy at least equal to or greater than that of the virtual parity groups 200 that constitute it.
[0044] Here, the redundancy of the virtual parity group 200 is expressed by dividing the virtual drives 203 that make up the virtual parity group into virtual data drives 204 that store data, and virtual parity drives 206 .
[0045] In other words, a virtual parity group 200 consisting of m virtual data drives 204 and n virtual parity drives 206 has the same redundancy as a parity group consisting of m physical data drives and n physical parity drives. Hereinafter, the redundancy of such a virtual parity group 200 will be referred to as mDnP. For example, a virtual parity group consisting of six virtual data drives and two virtual parity drives has a redundancy of 6D2P.
[0046] Here, if the number of physical drives 102 belonging to the distributed parity group (physical parity group) 201 is p, then m+n≦p is assumed to hold. Also, all physical drives 102 are assumed to have a capacity capable of storing all parcels of all virtual drives 203.
[0047] Hereinafter, the configuration of a distributed parity group 201 to which p virtual parity groups 200 of mDnP belong will be expressed as mDnP×p.
[0048] FIG. 3 shows an example of the configuration of parcel mapping according to this embodiment.
[0049] The parcel mapping 205 provides a storage location on the physical drives 102 that make up the distributed parity group 201 for each parcel 300 on the virtual drives 203 included in each virtual parity group 200 associated with the distributed parity group 201 .
[0050] 3 shows an example of the configuration of parcel mapping 205 between a distributed parity group 201 consisting of five physical drives and five 3D1P virtual parity groups. However, due to space limitations, only two of the five virtual parity groups 200 are shown in the figure.
[0051] Hereinafter, the notation x_y[z] will be used to identify an individual parcel 300. Here, x is an ID for distinguishing between virtual parity groups 200 belonging to the same distributed parity group 201 or the same pool 202, y is the ID of a virtual drive 203 belonging to the virtual parity group 200, and z is the position of a stripe 401 (see FIG. 4A) in the virtual drive 203. FIGS. 4A and 4B show configuration examples of stripes 401 and cycles 400 according to this embodiment. A stripe 401 is a fixed-length unit of data stored in a virtual drive to which RAID is applied.
[0052] Hereinafter, the value of x will be called the virtual parity group ID, the value of y will be called the virtual drive ID, and the value of z will be called the stripe ID.
[0053] For example, Parcel 1_D1[1] refers to a parcel 300 that belongs to the first virtual parity group 200 associated with the same distributed parity group 201 or the same pool 202, belongs to virtual drive D1 within the virtual parity group 200, and belongs to the first stripe 401 in virtual drive 203.
[0054] The parcel mapping 205 is determined to satisfy the redundancy of the virtual parity group 200. For example, in a virtual parity group 200 with a redundancy of 6D2P, parcels 300 belonging to the same stripe 401 are stored in different physical drives 102 so that the virtual parity group 200 can tolerate the simultaneous failure of two physical drives. This is called a redundancy requirement.
[0055] Furthermore, it is assumed that the parcel mapping 205 is repeated at a fixed period. Hereinafter, the period in which the parcel mapping 205 is repeated is referred to as a cycle 400. All parcels 300 in each cycle 400 on the virtual drive 203 are associated with one of the parcels 300 in the corresponding cycle on the physical drive 102, and are not associated with any other cycle 400. It is also assumed that multiple parcels 300 on the virtual drive 203 are not associated with a single parcel 300 on the physical drive 102. In other words, the parcel mapping 205 in a certain cycle 400 is bijective. This is called a periodicity requirement.
[0056] The parcel mapping 205 may be configured in any way as long as it satisfies the redundancy and periodicity requirements.
[0057] 4A and 4B show an example of parcel mapping 205 from a 3D1P virtual parity group 200 to a distributed parity group 201 including five physical drives in a 3D1P x 5 configuration of the distributed parity group 201. Note that for space reasons, only one of the five virtual parity groups 200 is shown, and the rest are omitted.
[0058] In the parcel mapping shown in FIGS. 4A and 4B, for the five virtual parity groups 200 included in the distributed parity group 201, five stripes 401 having the same stripe ID are considered to be one cycle 400.
[0059] FIG. 5 shows an example of the process of adding drives to a distributed parity group in units of one drive according to this embodiment.
[0060] 5 shows an example in which one physical drive is added to a distributed parity group 201 with a 3D1P x 4 configuration, changing the configuration to 3D1P x 5. As mentioned above, in the distributed RAID method, the number of physical drives in a distributed parity group 201 always matches the number of virtual parity groups 200 in the distributed parity group 201, so Fig. 5 can also be said to show an example in which one virtual parity group is added to a distributed parity group 201 with a 3D1P x 4 configuration, changing the configuration to 3D1P x 5.
[0061] However, due to space limitations, Fig. 5 shows only the expansion process of a single cycle 400, and omits the process for the remaining cycles 400. The method for configuring the cycle 400 is similar to Figs. 4A and 4B.
[0062] The method of adding physical drives 102 in the distributed RAID system as shown in FIG. 5 will be hereinafter referred to as normal addition.
[0063] FIG. 6 shows an example of a process for adding drives to a distributed parity group with a RAID width according to this embodiment.
[0064] In the distributed RAID method, depending on the number of physical drives 102 added to the distributed parity group 201 at one time, it is possible to change the parcel mapping 205 without moving the data existing in the existing virtual parity group 200. For example, in the example shown in Fig. 6, four 3D1P virtual parity groups, i.e., four physical drives, are added to a distributed parity group made up of four 3D1P virtual parity groups, i.e., four physical drives.
[0065] In this case, the parcel mapping 205 after the change is configured so that the positions of the parcels 300 in the four existing virtual parity groups 200 are not changed at all, and the drive addition can be completed without moving any data. This operation is called instantaneous addition. Instantaneous addition is usually only possible when simultaneously adding the same number of physical drives 102 as the RAID width.
[0066] In this embodiment, from now on, depending on the number of drives to be added at one time, immediate addition will be selected if possible, and normal addition will be selected if not, and no distinction will be made between immediate addition and normal addition.
[0067] The process of removing a physical drive 102 from the distributed parity group 201 is the reverse of the operations shown in FIGS. 5 and 6, and therefore a detailed description thereof will be omitted in this embodiment.
[0068] FIG. 7 shows an example of the configuration of pool power control using the distributed RAID method in this embodiment.
[0069] In the distributed RAID method, data 703 stored in a pool 202 is distributed and stored among the physical drives 102 that make up the pool 202. At this time, a redundant code (parity) is generated from the stored data 703 so that the data 703 is not lost even if some of the physical drives 102 fail, and the parity is also distributed and stored among the physical drives 102 in the same way as the data 703.
[0070] Methods for generating parity from the data 703 include, for example, RAID5 and RAID6.
[0071] The method for distributing data 703 stored in pool 202 among drives 102 involves dividing the logical storage area on pool 202 into fixed-length parcels and creating a parcel mapping that gives the location of the physical storage area on physical drive 102. Data 703 stored in pool 202 is distributed across drives 102 based on the parcel mapping.
[0072] Furthermore, the method of providing the storage area of the pool 202 to the host 103 may be, for example, to define one or more logical volumes on the pool 202 and provide the logical volumes to the host 103 .
[0073] The management information on the usage status of the pool 202 as a storage area includes the total capacity 702 of the pool 202 , the amount of data 701 stored in the pool 202 , and the free capacity 700 of the pool 202 .
[0074] As described above, the distributed RAID method uses the virtual parity group 200, making it possible to add or remove physical drives 102 that make up the pool 202 one by one without losing the redundancy of the stored data 703.
[0075] In pool power control based on the distributed RAID method, the power consumption of the physical drives 102 can be reduced by putting each of the physical drives 102 constituting the pool 202 into a low power consumption state (including power supply suspension) on a unit-by-unit basis.
[0076] It should be noted that in order to put the physical drives 102 that make up the pool 202 into a low power consumption state, it is not necessary to complete the removal of the physical drives 102 in the distributed RAID system, and vice versa. Removal in distributed RAID refers to the operation of saving data 703 stored on the physical drives 102 to other physical drives 102 that make up the same pool 202, stopping the physical drives 102, and dissociating them from the pool 202. However, in order to put the physical drives 102 that make up the pool 202 into a low power consumption state, it is sufficient that the data 703 has been saved and the physical drives 102 have been stopped, and there is no need to dissociate them from the pool 202.
[0077] In this embodiment, the pause / activation operation of the physical drive 102 in the pool power control is clearly defined and distinguished from the removal / addition operation in the distributed RAID. That is, in the removal operation of the drive 102 in the distributed RAID, the removed physical drive 102 is disassociated from the pool 202, and becomes available for addition to another pool 202.
[0078] On the other hand, the "pause" operation in this embodiment evacuates data from the physical drive 102 included in the pool 202, removes it from the pool 202, and transitions the physical drive 102 to a low power consumption state. The paused physical drive 102 is not accessed. In the "pause" operation for the drive 102 in this embodiment, the paused physical drive 102 maintains its association with the pool 202 to which it belonged before being paused, even while it is in the paused state. Therefore, for example, a paused physical drive 102 that constituted pool A will not be added to another pool B by the pool power control function described below, nor will it be added to pool B by a user operation, unless it is removed from pool A by a user operation.
[0079] The "operate" operation cancels the low power consumption state of the paused physical drive 102, incorporates the physical drive 102 into the pool 202, and puts the physical drive 102 into a state where data can be allocated to the physical drive 102. Note that a paused drive is a drive in a paused state, while a drive that is not paused or has resumed operation is a drive in an active state.
[0080] In the following explanation, the terms "delete and add" may be used as drive operations different from "pause and operation" and "reduction and expansion," but "delete" of a physical drive 102 refers to an operation in which data 703 stored in the physical drive 102 is evacuated to another physical drive 102, and the physical drive 102 is put into a state in which it is not recognized as pool capacity, but does not transition to a low power consumption state. Deleting a physical drive 102 and then transitioning the physical drive 102 to a low power consumption state is equivalent to pausing the physical drive, and deleting a physical drive 102 and then dissociating the physical drive 102 from the pool 202 is equivalent to reducing the physical drive.
[0081] FIG. 7 shows an example in which two drives 102 are suspended in a pool 202 that is configured with five drives 102.
[0082] In the pool power control of this embodiment, the timing of suspending and waking up the drives 102 and the number of drives to suspend and waking up are determined from two perspectives: the free capacity 700 of the pool 202 and the write performance of the pool. Note that drive suspend and waking up may be controlled based on only either the pool free capacity or the pool write performance.
[0083] That is, when there is a margin in the free capacity 700 of the pool 202, some of the drives 102 are paused, and when the free capacity 700 of the pool 202 becomes tight, the paused drives 102 are restored to prevent the pool capacity from being depleted. Also, when the write performance of the drives constituting the pool has margin for the amount of writing to the pool 202 requested by the host device 103, the drives are paused, and when the write performance becomes tight, the paused drives 102 are temporarily restored even if there is a margin in the free capacity 700 of the pool, and when the write performance becomes marginal again, these drives 102 are paused.
[0084] A pool power control method based on the free capacity of the pool is hereinafter referred to as capacity-based pool power control, and a pool power control method based on the performance of the pool is hereinafter referred to as performance-based pool power control.
[0085] An example of implementation of pool power control in this embodiment will be described below.
[0086] FIG. 8 shows an example of the state transition of a pool according to this embodiment.
[0087] The pool 202 in this embodiment has three states: normal mode 802 , power saving mode 801 , and burst mode 800 .
[0088] Normal mode 802 is defined as a state in which pool power control is disabled by setting. Power saving mode 801 is defined as a state in which pool power control is enabled by setting and some of the drives that make up the pool are idle. Burst mode 800 is defined as a state in which pool power control is enabled by setting, but the drives 102 that were idled are temporarily restored due to tight write performance.
[0089] The transition between normal mode 802 and power saving mode 801 occurs through capacity-based pool power control, and the transition between power saving mode 801 and burst mode 800 occurs through performance-based pool power control.
[0090] FIG. 9 shows an example of the configuration of a pool power control setting screen in this embodiment.
[0091] When the user 118 selects one of the pools 202 provided in the storage device 120 from the pool list 905, the display 900 provided in the management device 116 displays a setting screen 911 for that pool 202.
[0092] The setting screen 911 for each pool 202 includes a switch 910 for switching the enable / disable state of pool power control for that pool, an indicator 914 for displaying the status of that pool, a drive status table 908 for displaying the status of the drives 102 that make up that pool, and a power control parameter table 909 for setting the pool power control parameters for that pool.
[0093] The function for selecting the drives 102 that constitute the pool 202 is not limited in this embodiment, and it is assumed that there is an interface that allows the user 118 to select from the drives 102 provided in the storage device 120 and configure the pool 202. For example, the pool setting screen 911 may be provided with a button 906 for adding drives to the pool and a button 907 for removing drives from the pool.
[0094] The drive status table 908 indicates whether each drive 102 that constitutes the pool 202 is in an active state or an idle state.
[0095] The power control parameter table 909 allows at least four parameters to be set: a pool usage rate lower limit 901 , a pool usage rate upper limit 902 , a pool usage rate target 903 , a drive load rate upper limit 904 , and a drive load rate lower limit 913 .
[0096] The pool setting screen 911 may also include a pool optimization button 912 .
[0097] The transition between the normal mode 802 and the power saving mode 801 is controlled by the power control switch 910. That is, when the power control switch 910 is switched from OFF to ON, the pool transitions from the normal mode 802 to the power saving mode 801, and when the power control switch 910 is switched from ON to OFF, the pool transitions from the power saving mode 801 to the normal mode 802.
[0098] Capacity-based pool power control refers to the settings of the management device 116 to determine when to suspend the drive 102 and when to resume the drive 102. Note that only one of the user operation and the capacity criterion may be the trigger.
[0099] For example, if the pool usage rate exceeds the pool usage rate upper limit 902, or the pool optimization button 912 is pressed by the user, or the pool power control switch 910 is switched from ON to OFF by a user operation, and there is a dormant drive in the pool, the storage device 120 determines the drive to be restored based on the pool usage rate target 903, and restores the drive.
[0100] The drives to be restored are selected from among the hibernated drives so that the pool usage rate after the drives are restored will be below the value set as the pool usage rate target 903 and the number of drives to be restored will be the smallest. In other words, if the pool usage rate target 903 is set to UT [%], the current pool usage rate is UC [%], the total pool capacity is P [TB], and the effective capacity per drive is C [TB], then the number of drives to be restored, NR, can be calculated as NR = CF ((P × (UC-UT) ÷ 100) ÷ C), where CF(x) is an operator that returns the smallest integer greater than or equal to x.
[0101] Due to the constraints of the distributed RAID method, all drives that make up the same pool must have the same capacity, so when selecting a drive to restore, drives with a different capacity than the drives already making up the pool will not be available as options.
[0102] On the other hand, when the pool usage rate falls below the pool usage rate lower limit 901, or the pool optimization button 912 is pressed by the user, or the pool power control switch 910 is switched from OFF to ON by user operation, the storage controller 114 (CPU 106) determines the number of drives to be put into sleep mode based on the pool usage rate target 903, puts the drives into sleep mode, and transitions the pool to power saving mode 801.
[0103] The drives to be suspended are selected from among the active drives so that the pool usage rate after suspension falls below the value set as the pool usage rate target 903 and the number of drives to be suspended is the largest. In other words, if the pool usage rate target 903 is set to UT [%], the current pool usage rate is UC [%], the total pool capacity is P [TB], and the effective capacity per drive is C [TB], then the number of drives to be suspended NS can be calculated as NS = FF ((P × (UT - UC) ÷ 100) ÷ C), where FF(x) is an operator that returns the largest integer less than or equal to x.
[0104] Due to the constraints of the distributed RAID method, all drives that make up the same pool have the same capacity, so when selecting drives to put into sleep mode, there is no need to consider the possibility that drives of different capacities may be mixed within the pool.
[0105] In performance-based pool power control, in addition to the settings of the management device 116, the indication values of the performance monitor 117 are referenced to determine when to suspend and resume the drives 102. Note that the settings of the management device 116 may be omitted.
[0106] For example, the storage controller 114 uses the performance monitor 117 of the storage device 120 to monitor the load rate of the drives 102, and when the load rate of any one drive or the statistical value (for example, the average) of the load rates of all drives exceeds the drive load rate upper limit 904, if there are any idle drives 704 in the pool, the storage controller 114 resumes all of the idle drives 704 and transitions the pool to burst mode 800. The load rate of one drive and the statistical value of the load rates of multiple drives are values that represent the drive load of the pool.
[0107] However, even if the load rate of the drive 102 exceeds the drive load rate upper limit 904, if, for example, the load rate of the CPU 106 is higher than a predetermined standard (for example, higher than a specified threshold), or if the load rate of the front-end port 105 connecting the host device 103 and the storage device 120 is higher than a predetermined standard (for example, higher than a specified threshold), it is conceivable that performance pressure will not be alleviated even if the drive is restored. The load rate of the CPU 106 may be, for example, the load rate of any one of the CPUs 106 accessing the pool, or a statistical value of the load rates of all the CPUs 106 accessing the pool. This is also true for the load rate of the front-end port 105. These values represent the load of each component.
[0108] The storage device 120 may use the performance monitor 117 to monitor the load rates of components other than the drives, and if it is determined that the performance pressure will not improve even if the drive is restored because the value representing the drive load of the pool is high but the value representing the load of other specified components is higher than a specified standard, the storage device 120 may be implemented in such a way that it denies the restoration of the drive (does not restore the drive) and does not transition the pool from power saving mode.
[0109] Furthermore, the drive load rate is a parameter that fluctuates greatly over time, and the load is normally low but may increase instantaneously. For example, the performance monitor 117 may present the average value over a certain period as the drive load rate, so that pool power control is not terminated due to an instantaneous increase in load. The same applies to the load rates of other types of components displayed by the performance monitor 117.
[0110] The storage device 120 uses a performance monitor 117 to monitor the load rate of the drives 102, and when the drive load rate falls below the drive load rate lower limit 913, determines the number of drives to be put into sleep mode based on the pool usage rate target 903, puts the drives into sleep mode, and transitions the pool to power saving mode 801.
[0111] The drives to be suspended are selected from among the active drives so that the pool usage rate after suspension falls below the value set as the pool usage rate target 903 and the number of drives to be suspended is the largest. In other words, if the pool usage rate target 903 is set to UT [%], the current pool usage rate is UC [%], the total pool capacity is P [TB], and the effective capacity per drive is C [TB], then the number of drives to be suspended NS can be calculated as NS = FF ((P × (UT - UC) ÷ 100) ÷ C), where FF(x) is an operator that returns the largest integer less than or equal to x.
[0112] FIG. 10 shows an example of the operation of pool power control in this embodiment.
[0113] The capacity-based pool power control 1000 activates the idle drives 704 when the pool usage rate 1002 falls below the pool usage rate lower limit 901 while the pool 202 is in power saving mode 801, and suspends the active drives 705 when the pool usage rate 1002 exceeds the pool usage rate upper limit 902.
[0114] On the other hand, while the pool 202 is in power saving mode, the performance-based pool power control 1001 activates all dormant drives 704 and transitions the pool 202 to burst mode when the drive load rate 1003 of any drive exceeds the drive load rate upper limit 904. After that, the burst mode 800 is not released until the drive load rates 1003 of all drives fall below the drive load rate lower limit 913, and while the pool 202 is in burst mode 800, the capacity-based pool power control 1000 is inhibited.
[0115] It should be noted that the pool power control does not need to react instantaneously to indicators such as the pool usage rate 1002 and the drive load rate 1003, and may instead be implemented, for example, by periodically checking the target indicators and, if the indicators deviate at the timing of the periodic check, suspending operation of the drives 102. Only one of the capacity-based pool power control and the performance-based pool power control may be implemented in the storage device.
[0116] As described above, the storage device provides the host device with a thin provisioning pool that virtualizes the storage space of drives that have been made redundant by RAID. Based on conditions regarding the pool's free space or user actions, drives in the pool can be removed one by one from the pool and placed into a low-power state, thereby reducing drive power consumption. [Example]
[0117] When pool power control is realized for each drive using distributed RAID in the method shown in the first embodiment, data migration when a drive is restored can become an issue.
[0118] In distributed RAID, data stored in a pool is distributed across drives, so when a drive is put to sleep or resumed, the mapping from the virtual storage area on the pool to the physical storage area on the drive is changed, and as a result of the mapping change, data whose storage location on the drive has changed is moved to the new storage location.
[0119] In performance-based pool power control, even if an increase in drive load rate is detected, the pool 202 is transitioned to burst mode 800, and the dormant drive 102 is restored, the data movement associated with the restoration of the drive 102 may actually increase the drive load, worsening the strain on write performance.
[0120] For example, in a storage device for mission-critical applications, it is unacceptable for pool power control aimed at reducing power consumption to have a negative impact on application operation, so measures are needed to prevent the impact on applications even in the above scenario.
[0121] 2 to 4B, in this embodiment, the pool 202 configured by distributed RAID is divided into fixed-length cycles 400, and when transitioning from power saving mode 801 to burst mode 800, only cycles 400 with a small amount of stored data are selected to partially expand the pool 202, while other cycles 400 are not expanded. This reduces the amount of data movement that accompanies the transition to burst mode 800. Note that cycles are associated between the pool 202, virtual parity group 200, and distributed parity group 201 by parcel mapping 205.
[0122] The configuration example of the storage device according to this embodiment is the same as that shown in FIG.
[0123] FIG. 11 shows an example of implementation of pool power control using distributed RAID in this embodiment.
[0124] In this embodiment, the pool 202 in the distributed RAID is divided into cycles 400, which are fixed-length areas. Regarding the method of configuring the cycles 400, Fig. 11 shows an example in which the areas of the active drives 102 that make up the pool 202 are divided into fixed lengths, and the cycles 400 are configured by collecting areas evenly from each active drive.
[0125] In the power saving mode 801, all cycles 400 are evenly shortened and some of the drives 102 are in a quiesced state, which is no different from the first embodiment.
[0126] When the pool 202 transitions from power saving mode 801 to burst mode 800, all drives 102 are restored, but unlike in the first embodiment, only the cycles 400 with a small amount of data stored are selectively expanded, and only a portion of the area of the restored drives 102 becomes available as pool capacity. In burst mode 800, the selectively expanded cycles 400 are referred to as burst cycles 1100. In this way, the fixed length of the cycle is a size that is maintained unless drives are added to or removed from the pool 202 (distributed parity group 201), and is expanded or reduced as drives are added or removed.
[0127] When transitioning to burst mode 800, one method for selecting the cycle to be extended is to provide a table in the control information area that records the amount of data stored in each cycle, and by referring to the table, extend only cycles whose amount of data stored is below a threshold and make them burst cycles.
[0128] As described above, by extending a cycle in which the amount of data stored is equal to or less than the threshold, the drive load due to data movement accompanying the cycle extension can be reduced. Also, by extending a cycle in which the amount of data stored is equal to or less than the threshold, the data migration time can be shortened compared to extending a cycle in which the amount of data stored is greater than the threshold.
[0129] In this embodiment, when transitioning from power saving mode 801 to burst mode 800, only cycles 400 with a small amount of data stored are selectively extended, but it is also possible to selectively extend only cycles 400 with a small amount of data stored regardless of the pool mode.
[0130] FIG. 13 shows an example of the configuration of a cycle management table according to this embodiment.
[0131] The cycle management table 1302 for each pool in this embodiment has three columns, for example, a cycle number 1300, a data storage amount 1303, and a cycle status 1301, and is always sorted in ascending order of data storage amount.
[0132] When a pool 202 transitions from power saving mode 801 to burst mode 800, the storage device 120 refers to the cycle management table 1302 of the pool, selects cycles from the top, and expands them, stopping the expansion when the data storage amount 1303 exceeds a threshold.
[0133] The cycle state 1301 of the expanded cycle 400 is recorded as being in burst state when the expansion is performed, and when the pool 202 transitions from burst mode 800 to power saving mode 801, the storage device 120 refers to the cycle state 1301 column and reduces the cycle 400 whose cycle state 1301 is in burst state.
[0134] In this embodiment, it is assumed that in performance-based pool power control, it is possible to reduce the drive load rate by selectively extending cycles 400 in which the amount of data stored is small. However, for example, it is also possible to adopt an append-based data storage logic for storing data in pool 202, maximize the imbalance in the amount of data stored between cycles, suppress the amount of data movement that accompanies the transition to burst mode 800, and maximize the effect of reducing the drive load during burst mode.
[0135] FIG. 14 shows an example of data storage logic based on appending according to this embodiment.
[0136] 14, when data 1400 stored in pool 202 is overwritten by the host device, instead of directly updating the data 1400, a new storage area is allocated each time and the overwritten data is stored there. This is called log-structured write.
[0137] For example, when reserving storage space for overwrite data 1401, cycle management table 1302 is referenced, and if burst cycle 1100 exists, new space is reserved there as much as possible to store overwrite data 1401; if no burst cycle 1100 exists, cycle management table 1302 is also referenced and new space is reserved in cycle 400, which has the largest amount of data stored. This maximizes data imbalance between cycles 400, reduces the amount of data movement associated with transition to burst mode 800, and maximizes the drive load distribution effect in burst mode 800.
[0138] FIG. 12 shows an example of the state transition of a pool according to this embodiment.
[0139] The example of state transition of the pool according to this embodiment differs from the first embodiment in that there is a transition from burst mode 800 to normal mode 802.
[0140] In burst mode 800, the amount of data stored in burst cycle 1100 increases as data is written to burst cycle 1100, but if the amount of data stored in burst cycle 1100 exceeds a certain level, it may become impossible to reduce burst cycle 1100 again and transition to power saving mode 801.
[0141] In such a case, when the burst mode 800 is released, instead of transitioning to the power saving mode, the pool 202 is transitioned to the normal mode 802 and pool power control is disabled.
[0142] Below, examples of the process flow for drive suspend and resume processing in the pool power control of this embodiment will be shown.
[0143] FIG. 15 shows a processing flow of the drive suspend processing according to this embodiment.
[0144] The drive halt program 1501 is a program stored in the program area 107 and executed by the CPU 106. In this embodiment, the drive halt process when capacity-based pool power control is activated during power saving mode and the drive halt process when transitioning from burst mode to power saving mode are both performed by the drive halt program 1501.
[0145] In step 1500, the drive suspending program 1501 determines the number of drives to be suspended and creates a list of drives to be suspended. Here, the number of drives to be suspended is determined based only on the pool usage rate when capacity-based pool power control is applied in power saving mode. Specifically, the drives to be suspended are selected so that the pool usage rate after suspension falls below the pool usage rate target and the number of drives to be suspended is maximized.
[0146] On the other hand, when burst mode is released, it is necessary to suspend at least all drives that were restored when the system transitioned to burst mode. If suspending all drives that were restored when the system transitioned to burst mode would cause the pool usage rate to exceed the upper limit of the pool usage rate, capacity-based pool power control may be implemented again after the burst mode is released.
[0147] In step 1503, the drive halt program 1501 creates a list of cycles to be reduced. Here, the cycles to be reduced are all cycles when capacity-based pool power control is applied in power saving mode. On the other hand, when burst mode is released, the cycles to be reduced are cycles that are in the burst state in the cycle management table 1302.
[0148] In step 1504, the drive halt program 1501 determines whether the list of cycles to be reduced is empty. If the list of cycles to be reduced is empty, the program proceeds to step 1507; if not, the program proceeds to step 1505.
[0149] In step 1505, the drive halt program 1501 selects one cycle from the list of cycles to be reduced. For example, it may select the cycle with the least amount of data stored in the list of cycles to be reduced.
[0150] In step 1506, the drive halt program 1501 executes a reduction process for the cycle selected in step 1505. Here, the reduction process for the cycle involves rearrangement of data within the cycle.
[0151] In step 1510, if the cycle to be reduced is a burst cycle, the drive halt program 1501 cancels the burst state of the cycle in the cycle management table 1302.
[0152] In step 1507, the drive halt program 1501 deletes the cycle that was reduced in step 1506 from the list of cycles to be reduced, and returns to step 1504.
[0153] In step 1502, the drive halt program 1501 sets all drives in the list of halt target drives created in step 1500 to a low power consumption state.
[0154] In step 1508, the drive halt program 1501 determines whether it is possible to transition to a low power consumption state for upstream components that supply power to the drives that transitioned to the low power consumption state in step 1502. If transition is possible, the program proceeds to step 1509, and if transition is not possible, the process of the drive halt program 1501 ends.
[0155] An upstream component can transition to a low power consumption state if it does not affect access to active drives other than the dormant drive. For example, an upstream component such as a drive box 119, a backend switch 100, or a backend port 112 can transition to a low power consumption state if all of the drives 102 connected downstream of that component are in a low power consumption state.
[0156] In step 1509, the drive halt program 1501 transitions the upstream components that were determined in step 1508 to be able to transition to a low power consumption state to a low power consumption state.
[0157] FIG. 16 shows the processing flow of the drive recovery processing according to this embodiment.
[0158] The drive recovery program 1601 is a program stored in the program area 107 and executed by the CPU 106. In this embodiment, the drive recovery process when capacity-based pool power control is activated during power saving mode and the drive recovery process when transitioning from power saving mode 801 to burst mode 800 are both performed by the drive recovery program 1601.
[0159] In step 1600, the drive recovery program 1601 determines the number of drives to be recovered and creates a list of drives to be recovered. When capacity-based pool power control is activated during power saving mode, the drives to be recovered are determined so that the pool usage rate falls within the target pool usage rate range as much as possible. When transitioning from power saving mode 801 to burst mode 800, all of the dormant drives 704 that make up the pool are recovered.
[0160] In step 1609, the drive recovery program 1601 determines whether the upstream component that supplies power to the drives in the recovery target drive list created in step 1600 is in a low power consumption state. If the upstream component is in a low power consumption state, the program proceeds to step 1610; if not, the program proceeds to step 1602.
[0161] In step 1610, the drive recovery program 1601 releases the low power consumption state for the upstream components that were determined to be in the low power consumption state in step 1609.
[0162] In step 1602 , the drive recovery program 1601 releases all drives included in the recovery target drive list created in step 1600 from the low power consumption state.
[0163] In step 1603, the drive recovery program 1601 determines the number of expansion cycles and creates a list of cycles to be expanded. When capacity-based pool power control is activated during power saving mode, all cycles that make up the pool are subject to expansion. On the other hand, when transitioning from power saving mode 801 to burst mode 800, all cycles in which the amount of data stored is equal to or less than the threshold are subject to expansion.
[0164] In step 1604, the drive recovery program 1601 determines whether the list of extension target cycles is empty. If the list of extension target cycles is empty, the process of the drive recovery program 1601 ends; if not, the process proceeds to step 1605.
[0165] In step 1605, the drive recovery program 1601 selects one cycle from the list of cycles to be extended. Here, the cycle may be selected by selecting the cycle with the least amount of data stored in the list of cycles to be extended.
[0166] In step 1606, the drive recovery program 1601 extends the cycle selected in step 1605. Here, the cycle extension process involves rearranging the data stored in the cycle.
[0167] In step 1608, the drive recovery program 1601 updates the cycle management table for the cycle extended in step 1606 when transitioning from the power saving mode 801 to the burst mode 800, and sets the cycle in question to the burst state.
[0168] In step 1607, the drive recovery program 1601 deletes the cycle extended in step 1606 from the list of cycles to be extended, and returns to step 1604. [Example]
[0169] The pool power control method described in the first embodiment can also be applied to pools configured using methods other than distributed RAID. In this embodiment, as an example of such a method, a pool power control method based on a conventional RAID method in which a pool is configured from parity groups is described. The explanation regarding the addition and deletion of physical drives in the first embodiment, which is not mentioned in this embodiment, may be applied by replacing physical drives with parity groups.
[0170] The configuration example of the storage device according to this embodiment is the same as that shown in FIG.
[0171] In this embodiment, data protection based on the conventional RAID method is applied to data stored in the drives 102, and power consumption reduction is performed based on pool power control.
[0172] In the conventional RAID method, a parity group 1700 is configured by combining m data drives 1701 that store data and n parity drives 1702 that store redundant codes (parity) for the data stored in the data drives 1701.
[0173] A pool 202 in a conventional RAID method is made up of one or more parity groups 1700. In a conventional RAID method, the parity group 1700 is the smallest unit of pool capacity management, and the capacity of the pool 202 is controlled only by adding parity groups 1700 to the pool 202 and removing parity groups 1700 from the pool 202.
[0174] In conventional RAID methods, RAID redundancy is provided by combining data drives 1701 and parity drives 1702 within a parity group 1700. For example, a parity group 1700 consisting of two data drives 1701 and one parity drive 1702, a total of three drives, is said to have a redundancy of 2D1P. The RAID redundancy method is not limited to this embodiment, but redundancy using RAID5 or RAID6, for example, may also be used.
[0175] FIG. 17 shows an example of implementation of pool power control using conventional RAID in this embodiment.
[0176] For example, the example in FIG. 17 shows an example in which pool power control is applied to a pool consisting of five 2D1P parity groups, and two parity groups are suspended.
[0177] Here, suspending a parity group 1700 refers to an operation of deleting the parity group 1700 from the pool 202 and transitioning all of the drives 102 that make up the parity group 1700 to a low power consumption state. Furthermore, restoring a parity group 1700 refers to an operation of canceling the low power consumption state of all of the drives 102 that make up the parity group 1700 and adding the parity group to the pool.
[0178] Hereinafter, a paused parity group will be referred to as a paused parity group, and a parity group that is not paused or has been restored will be referred to as an active parity group.
[0179] FIG. 18 shows an example of the state transition of a pool according to this embodiment.
[0180] The pool 202 of this embodiment has three modes: a normal mode 802, a power saving mode 801, and a burst mode 800, just like the first and second embodiments.
[0181] Normal mode 802 is a mode in which all parity groups 1700 are in operation.
[0182] The power saving mode 801 is a mode in which some parity groups 1700 are in a dormant state.
[0183] Burst mode 800 is a mode in which all parity groups 1700 are in operation. The difference between normal mode 802 and burst mode 800 is whether or not the amount of data stored between parity groups 1700 is being equalized.
[0184] In conventional RAID, a rebalancing process is sometimes implemented to equalize the amount of data stored between the parity groups 1700 that make up the pool 202, but a parity group that has recovered in burst mode is empty immediately after recovery, and there is a difference in the amount of data stored between it and the parity group that was in operation from the beginning. As a result, data is moved from the latter parity group to the former parity group to equalize the amount of data stored, but if the drive load rate increases due to the data movement, the effect of suppressing the drive load rate by burst mode 800 will be reduced.
[0185] For this reason, in this embodiment, while the pool is in burst mode 800, rebalancing processing between the parity groups 1700 that make up the pool is stopped.
[0186] The transitions between the normal mode, the power saving mode, and the burst mode are triggered in the same manner as in the first and second embodiments.
[0187] FIG. 19 shows an example of the configuration of a pool power control setting screen according to this embodiment.
[0188] When the user 118 selects one of the pools 202 provided in the storage device 120 from the pool list 905, the display 900 provided in the management device displays a setting screen 911 for that pool 202.
[0189] The setting screen 911 for each pool 202 includes a switch 910 for switching the enable / disable state of pool power control for that pool, an indicator 914 for displaying the status of that pool, a parity group status table 1902 for displaying the status of the parity groups 1700 that make up that pool, and a power control parameter table 909 for setting the pool power control parameters for that pool.
[0190] The function for selecting the parity groups 1700 that constitute the pool 202 is not limited in this embodiment, and it is assumed that there is an interface that allows the user 118 to select from the parity groups 1700 set in the storage device 120 and configure the pool 202. For example, the pool setting screen 911 may be provided with a button 1900 for adding a parity group 1700 to the pool and a button 1901 for removing a parity group 1700 from the pool.
[0191] The parity group status table 1902 displays whether each parity group 1700 that makes up the pool 202 is in an active state or an inactive state.
[0192] The power control parameter table 909 allows at least four parameters to be set: a pool usage rate lower limit 901 , a pool usage rate upper limit 902 , a pool usage rate target 903 , a drive load rate upper limit 904 , and a drive load rate lower limit 913 .
[0193] The upper and lower limits can be set as scalar values, and the target can be set as a range, for example, 40 to 60%.
[0194] The pool setting screen 911 may also include a pool optimization button 912 .
[0195] The transition between the normal mode 802 and the power saving mode 801 is controlled by the power control switch 910. That is, when the power control switch 910 is switched from OFF to ON, the pool transitions from the normal mode 802 to the power saving mode 801, and when the power control switch 910 is switched from ON to OFF, the pool transitions from the power saving mode 801 to the normal mode 802.
[0196] In capacity-based pool power control, the setting of the management device 116 is referenced to determine when to pause the parity group 1700 and when to resume the parity group 1700.
[0197] For example, if the pool usage rate exceeds the pool usage rate upper limit 902, or the pool optimization button 912 is pressed by the user, or the pool power control switch 910 is switched from ON to OFF by user operation, and there are dormant parity groups 1801 in the pool, the storage apparatus 120 determines the number of parity groups to be restored so that the pool usage rate falls within the range of the pool usage rate target 903, and restores the parity groups.
[0198] On the other hand, when the pool usage rate falls below the pool usage rate lower limit 901, or the pool optimization button 912 is pressed by the user, or the pool power control switch 910 is switched from OFF to ON by user operation, the storage device 120 determines the number of parity groups to be suspended so that the pool usage rate falls within the pool usage rate target 903, suspends the parity groups, and transitions the pool to power saving mode 801.
[0199] Depending on the number of parity groups in the pool and the state of the parity groups, it may be impossible to suspend or resume parity groups so as to fall within the pool usage target 903. In such cases, an error message may be displayed to the user.
[0200] In performance-based pool power control, in addition to the settings of the management device 116, the indication value of the performance monitor 117 is referenced to determine when to pause the parity group 1700 and when to resume the parity group 1700.
[0201] For example, the storage device 120 uses the performance monitor 117 to monitor the load rate of the drives 102, and when the load rate of the drives that make up the pool 202 exceeds the drive load rate upper limit 904, if there are any dormant parity groups 1801 in the pool, the storage device 120 restores all of the dormant parity groups 1801 and transitions the pool to burst mode 800.
[0202] However, even if the load rate of the drive 102 exceeds the drive load rate upper limit 904, it is conceivable that operating the drive will not alleviate performance pressure if, for example, the load rate of the CPU 106 is high or the load rate of the front-end port connecting the host device and the storage device is high. The storage device 120 may be implemented to use the performance monitor 117 to monitor the load rates of components other than the drive, and to deny the return of the drive if it is determined that the performance pressure will not improve even if the drive load rate is high because the load of other specified components exceeds a threshold.
[0203] Furthermore, the drive load rate is a parameter that fluctuates greatly over time, and the load is normally low but may increase instantaneously. For example, the performance monitor 117 may present the average value over a certain period as the drive load rate, so that pool power control is not released due to an instantaneous increase in load. Note that the explanation in the first embodiment regarding the drive load rate, which is a value representing the drive load of the pool, and the load rates, which are values representing the load of a specific component (e.g., a CPU or a front-end port) different from the drive, may be applied to this embodiment.
[0204] The storage device 120 uses the performance monitor 117 to monitor the load rate of the drive 102, and when the drive load rate falls below the drive load rate lower limit 913, determines the number of parity groups to be suspended based on the pool usage rate target 903, suspends the parity groups, and transitions the pool to power saving mode 801.
[0205] The parity groups to be suspended are selected from a combination of parity groups that will cause the pool usage rate after suspension to fall below the pool usage rate target 903 and will maximize the total number of drives included in the parity groups to be suspended.
[0206] The present invention is not limited to the above-described embodiments and includes various modifications. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.
[0207] Furthermore, the above-mentioned components, functions, processing units, etc. may be realized in part or in whole by hardware, for example, by designing them as integrated circuits. Furthermore, the above-mentioned components, functions, etc. may be realized in software by a processor interpreting and executing a program that realizes each function. Information such as the programs, tables, and files that realize each function can be stored in memory, a storage device such as a hard disk or SSD, or a storage medium such as an IC card or SD card.
[0208] In addition, the control lines and information lines shown are those that are considered necessary for the explanation, and do not necessarily show all the control lines and information lines in the product. In reality, it can be assumed that almost all components are interconnected. [Explanation of symbols]
[0209] 102 physical drives 105 Front End Ports 107 Program Area 108 Control Information Area 109 Cache Area 112 backend port 114 Storage Controller 120 Storage Device 200 Virtual Parity Groups 201 Distributed Parity Groups 203 Virtual Drive 300 parcels 400 cycles 401 Stripe
Claims
1. 1. A storage system, comprising: a plurality of physical drives for physically storing data; a storage controller that controls access to the plurality of physical drives; Including, The plurality of physical drives constitute a distributed parity group, The storage controller providing the storage areas of the plurality of physical drives constituting the distributed parity group to a host device as a pool that is a virtual storage area; The pool is composed of one or more virtual parity groups each consisting of a plurality of virtual drives, the number of the virtual drives constituting the virtual parity group is equal to or less than the number of physical drives constituting the distributed parity group, The state of each of the plurality of physical drives is a first state in which data input / output is possible; a second state in which data input / output is disabled and power consumption is lower than that of the first state; The storage controller transitioning one or more physical drives removed from the pool from the first state to the second state; the one or more physical drives in the second state are transitioned to the first state, and then added to the pool.
2. 2. The storage system according to claim 1, The distributed parity group is divided into cycles; The storage controller performing cycle expansion to add the storage area of the physical drive that is transitioned from the second state to the first state to the distributed parity group as the capacity of the pool; A storage system that performs the cycle extension for a cycle in which the amount of stored data is equal to or less than a threshold.
3. 3. The storage system according to claim 2, The mode of the pool includes a normal mode, a power saving mode, and a burst mode; The normal mode is a state in which pool power control is disabled and all of the plurality of physical drives are in the first state, The power saving mode is a state in which the pool power control is enabled and some of the physical drives are in the second state, The burst mode is a state in which the pool power control is enabled and a physical drive that was in the second state is temporarily returned to the pool in the first state, The storage controller transitioning the pool to the power saving mode when the pool is in the normal mode and the pool power control is enabled; transitioning the pool to the normal mode when the pool is in the power saving mode and the pool power control is disabled; transitioning the pool to the burst mode when the pool is in the power saving mode, a value representing the drive load of the pool exceeds a threshold, and a value representing the load of a predetermined component of a type different from the physical drive falls below a threshold; transitioning the pool to the power saving mode when the pool is in the burst mode and a value representing the drive load of the pool is below a threshold; The storage controller When the pool is in the power saving mode, a value representing the drive load of the pool exceeds a threshold, and a value representing the load of the specified component falls below a threshold, the cycle extension is performed in the power saving mode and the pool is transitioned to the burst mode; When the pool is in the burst mode and a value representing the drive load of the pool is below a threshold, the storage system removes the added physical drive from the pool and transitions the pool to the power saving mode.
4. 2. The storage system according to claim 1, the storage controller identifies a component of a type other than a physical drive that can be transitioned from a normal state to a low power state by transitioning the one or more physical drives to the second state; The storage system transitions the component to the low power state in response to the transition of the one or more physical drives to the second state.
5. 2. The storage system according to claim 1, The storage controller selecting physical drives to be deleted from the pool so that the free capacity of the pool falls within a preset range; a storage system that selects a physical drive to be added to the pool from one or more physical drives in the second state so that the free capacity of the pool falls within a preset range.
6. 6. The storage system according to claim 5, The trigger for selecting a physical drive to be deleted from the pool includes at least one of a user instruction and a value representing the free capacity of the pool exceeding a threshold value, A storage system in which the trigger for selecting a physical drive to be added to the pool includes at least one of a user instruction and a value indicating the free capacity of the pool falling below a threshold.
7. 2. The storage system according to claim 1, The storage controller removing a physical drive from the pool when a value representing a drive load of the pool falls below a threshold; A storage system that adds a physical drive to the pool when a value representing the drive load of the pool exceeds a threshold.
8. 2. The storage system according to claim 1, The storage system, wherein the storage controller denies the addition of the physical drive if a value representing the load of a predetermined component of a type different from the physical drive exceeds a threshold.
9. 2. The storage system according to claim 1, The mode of the pool includes a normal mode, a power saving mode, and a burst mode; The normal mode is a state in which pool power control is disabled and all of the plurality of physical drives are in the first state, The power saving mode is a state in which the pool power control is enabled and some of the physical drives are in the second state, The burst mode is a state in which the pool power control is enabled and a physical drive that was in the second state is temporarily returned to the pool in the first state, The storage controller transitioning the pool to the power saving mode when the pool is in the normal mode and the pool power control is enabled; transitioning the pool to the normal mode when the pool is in the power saving mode and the pool power control is disabled; transitioning the pool to the burst mode when the pool is in the power saving mode, a value representing the drive load of the pool exceeds a threshold, and a value representing the load of a predetermined component of a type different from the physical drive falls below a threshold; The storage system transitions the pool to the power saving mode when the pool is in the burst mode and a value representing the drive load of the pool falls below a threshold.
10. 10. The storage system according to claim 9, The storage system, wherein the storage controller stops rebalancing, which equalizes the amount of data stored among the parity groups that make up the pool, while the pool is in burst mode.
11. 1. A storage system, comprising: Multiple physical drives, a storage controller that controls access to the plurality of physical drives; Including, The plurality of physical drives constitute a plurality of parity groups, The storage controller providing the storage areas of the plurality of parity groups to a host device as a pool that is a virtual storage area; The state of each of the plurality of physical drives is a first state in which data input / output is possible; a second state in which data input / output is disabled and power consumption is lower than that of the first state; The storage controller transitioning the first parity group deleted from the pool from the first state to the second state; identifying a component of a type other than a physical drive that can be transitioned from a normal state to a low power state by transitioning the first parity group to the second state, and transitioning the component to the low power state; a storage system that transitions the first parity group from the second state to the first state, adds the first parity group to the pool, and transitions the component to the normal state.
12. 12. The storage system according to claim 11, The storage controller selecting a parity group to be deleted from the pool so that the free capacity of the pool falls within a preset range; a storage system that selects a parity group to be added to the pool from one or more parity groups in the second state so that the free capacity of the pool falls within a preset range.
13. 13. The storage system according to claim 12, The trigger for selecting a parity group to be deleted from the pool includes at least one of a user instruction and a value representing the free capacity of the pool exceeding a threshold value; A storage system in which the trigger for selecting a parity group to be added to the pool includes at least one of a user instruction and a value indicating the free capacity of the pool falling below a threshold.
14. 12. The storage system according to claim 11, The storage controller When a value representing the drive load of the pool falls below a threshold, a parity group is deleted from the pool; A storage system that adds a parity group to the pool when a value representing the drive load of the pool exceeds a threshold.
15. 12. The storage system according to claim 11, The storage system, wherein the storage controller denies the addition of a parity group if a value representing the load of a predetermined component of a type different from the physical drive exceeds a threshold.
Citation Information
Patent Citations
Storage device and control method
JP2010033261A