Storage device
The storage device manages asynchronous processing by selecting operating modes to conserve power, addressing the challenge of high load in high-availability systems and maintaining power-saving mode.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- HITACHI VANTARA LTD
- Filing Date
- 2024-12-20
- Publication Date
- 2026-07-02
Smart Images

Figure 2026109926000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the control of asynchronous processing in a storage device.
Background Art
[0002] As a means of reducing the cost of the storage medium of a storage system, data volume reduction techniques such as data compression technology and deduplication technology have become widespread. When applying these data volume reduction techniques, a difference occurs between the data size written from the host to the storage system and the data size actually written to the storage medium. Therefore, in order to effectively utilize the storage area of the storage medium, an append-type data storage method (for example, Log-Structured Storage) that writes the data after data volume reduction application into the free area in a front-loading manner is used.
[0003] In the append-type data storage method, when data is updated, access to the pre-update data (valid data) is no longer possible. Data in such a state is called garbage (invalid data). As the host repeats data updates and the storage system continues to append the updated data, that is, write the updated data to the free area, the amount of garbage increases and the free area decreases. The free area is an area that stores neither the pre-update valid data nor the garbage, which is the updated invalid data.
[0004] Therefore, when using the append-type data storage method, in order to delete the generated garbage, the ratio of the garbage contained in a predetermined storage area is calculated as inefficient, and when the inefficiency exceeds a preset inefficiency threshold, a method of performing garbage collection is adopted. Here, garbage collection is a process of copying valid data to another free area and then releasing and reusing the predetermined storage area. For example, as an example, there is Patent Document 1.
[0005] In recent years, there has been a growing demand for reduced power consumption in information processing equipment, including storage systems, from the perspective of environmental impact and operating costs. One power reduction technology for information processing equipment is to suppress the overall power consumption of the equipment by transitioning the hardware devices that make up the equipment (hereinafter referred to as "devices") to a low-power state (hereinafter referred to as "power-saving mode"). For example, Patent Document 2 discloses a technology for an image forming apparatus to which a memory management control device is applied, in which the user detects that the equipment has not been used for at least a predetermined time, and in accordance with the detection result, the devices that make up the equipment are transitioned to a power-saving mode. Furthermore, in this technology, the impact on equipment performance due to the execution of garbage collection in memory is suppressed by executing garbage collection as a memory management function of the operating system (referred to as garbage collection on memory to distinguish it from garbage collection in the data storage method described above) when the equipment has not been used for a predetermined time. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] Japanese Patent Publication No. 2024-60809 [Patent Document 2] Japanese Patent Publication No. 2010-244342 [Overview of the Initiative] [Problems that the invention aims to solve]
[0007] For example, a storage system that applies a data volume reduction function needs to reuse free space by periodically executing the aforementioned garbage collection asynchronously with respect to access requests from the host computer (hereinafter referred to as the host) (hereinafter referred to as access processing). Furthermore, in order to maintain access performance, it may be necessary to execute the data volume reduction process asynchronously with respect to access processing, rather than synchronously with access processing. However, the execution of these asynchronous processes increases the load on devices such as the CPU and drives, making it impossible to switch the devices into power-saving mode, and thus creating a problem where asynchronous processing cannot be performed while considering power consumption.
[0008] Furthermore, when applying the technology described in Patent Document 2 to a storage system, it is assumed that there is a certain period of time when the storage system is not used (no access requests occur) and that the free capacity can be recovered in time. However, in storage systems where high availability is required, the assumption that sufficient time periods without access requests can be secured does not hold true.
[0009] Thus, there are challenges in performing asynchronous processing while considering power consumption in storage systems where high availability is required. [Means for solving the problem]
[0010] One aspect of the present invention is a storage device comprising a host interface for communicating with a host and a processor, wherein the processor performs asynchronous processing, which is a process performed asynchronously with respect to data originating from data received via the host interface, and the operating mode of one or more hardware devices of the storage device is selected from a mode that includes a normal mode and a power-saving mode that consumes less power than the normal mode and continues access processing, and when the operating mode is the power-saving mode, the asynchronous processing is restricted to maintain the power-saving mode. [Effects of the Invention]
[0011] According to one aspect of the present invention, asynchronous processing can be performed in a storage system while taking power consumption into consideration. [Brief explanation of the drawing]
[0012] [Figure 1] A diagram showing the hardware configuration of a storage system in one embodiment. [Figure 2] This figure shows an overview of the control method for asynchronous processing in one embodiment. [Figure 3] A diagram showing the logical configuration of one embodiment. [Figure 4] Figure showing a metadata management table in one embodiment. [Figure 5] Figure showing a page management table in one embodiment. [Figure 6] Figure showing a RAID configuration management table in one embodiment. [Figure 7] Figure showing a pool management table in one embodiment. [Figure 8] Figure showing a device management table in one embodiment. [Figure 9] A diagram showing the light processing in one embodiment. [Figure 10] A diagram showing garbage collection processing in one embodiment. [Figure 11] A diagram showing the asynchronous processing execution determination process in one embodiment. [Figure 12] A diagram showing asynchronous data volume reduction processing in one embodiment. [Modes for carrying out the invention]
[0013] The embodiments of the present invention will be described below with reference to the drawings. In the accompanying drawings, functionally identical elements may be shown with the same number. The accompanying drawings show specific embodiments and examples in accordance with the principles of the present invention. These embodiments and examples are for the purpose of understanding the present invention and should not be used to interpret the present invention in a restrictive manner.
[0014] In the following description, when describing elements of the same type without distinguishing them, common reference signs among the reference signs are used, and when distinguishing elements of the same type, reference signs (or the ID of the element (e.g., identification number)) may be used. For example, when not distinguishing between multiple pages, it may be described as "page 70", and when distinguishing each page, it may be described as "page 70A", "page 70B", etc. The same applies to other elements.
[0015] In this embodiment, the storage device adopts an append-type data storage method. FIG. 1 is a diagram showing an overview of the storage system 100 in this embodiment. The storage system 100 includes a storage device 11, a host computer 40 connected to the storage device 11, and a management computer 42 connected to the storage device 11.
[0016] The storage device 11 receives I / O commands from one or more host computers 40 via a first communication network 41 (e.g., a SAN (Storage Area Network)). The management computer 42 and the storage device 11 can communicate with each other via a second communication network 43 (e.g., a LAN (Local Area Network)).
[0017] The host computer 40 and the management computer 42 may be physical computers or virtual computers executed on a physical computer. The storage device 11 has one or more storage controllers 22 and a plurality of storage drives 29 (also simply referred to as drives) connected to the one or more storage controllers 22. In the configuration example of FIG. 1, the storage device 11 includes two storage controllers 22.
[0018] Each storage controller 22 includes a host interface (I / F) 23 for communication with the host computer 40, a CPU 24 for controlling the entire device, a memory 25 for storing programs and information used by the CPU 24, and a drive I / F 26 for communication with the physical drives 29. The number of these components is arbitrary. In the configuration example shown in Figure 1, multiple drives 29 are housed in a drive enclosure. The drives 29 are, for example, devices having a non-volatile data storage medium, and may be either an SSD (Solid State Drive) or an HDD (Hard Disk Drive). <Overview of asynchronous processing control methods>
[0019] Figure 2 is a diagram illustrating the control method for asynchronous processing in the embodiments described herein. Here, synchronous processing for I / O (Input Output) requests from the host is a series of processes from receiving the I / O request from the host to returning the response (e.g., read data or write completion response) to the host. Asynchronous processing is processing outside of synchronous processing.
[0020] In Figure 2, the vertical axis represents the load on the hardware device (CPU in Figure 2) that makes up the storage system, and the horizontal axis corresponds to time. The storage system operates asynchronous processing, which is asynchronous processing, within the load range that allows the hardware device to maintain its power-saving mode, in addition to processing related to reading and writing host data. Asynchronous processing includes garbage collection processing, and asynchronous data volume reduction processing such as asynchronous compression processing and asynchronous deduplication processing.
[0021] Line 201 shows the load originating from asynchronous processing when it is not restricted. Line 202 shows the load originating from asynchronous processing when it is restricted. Line 203 shows the load threshold to which power saving mode can be applied. Line 204 shows the load originating from host access processing (IO). Line 205 shows the sum of the load originating from host access processing (IO) and the load originating from asynchronous processing when it is not controlled. Line 206 shows the sum of the load originating from host access processing (IO) and the load originating from asynchronous processing when it is restricted.
[0022] Specifically, the storage system controls asynchronous processing based on (A) and (B) below, for example.
[0023] (A) If the load originating from host access processing (IO-derived) remains within the range where the device's power saving mode can be applied, the power saving mode will be turned ON. Asynchronous processing will be limited to a load range that allows the hardware device's power saving mode to remain ON.
[0024] (B) If the load originating from host access processing (IO-derived) exceeds the range within which the device's power saving mode can be applied, the power saving mode will be set to OFF, and the restrictions on asynchronous processing will be removed to allow operation.
[0025] In other words, the storage device's processor selects and sets the hardware device's operating mode to either normal mode or power-saving mode based on the load originating from host access processing (IO). When power-saving mode is selected, it controls asynchronous processing (such as garbage collection processing and asynchronous data volume reduction processing) that is performed separately from host access processing, thereby maintaining the power-saving mode by keeping the hardware device load, including the load originating from host access processing and the load originating from asynchronous processing, below a predetermined threshold. This ensures that the storage system can secure the duration for which the device's power-saving mode is applied, while also securing the execution time for asynchronous processing such as garbage collection processing necessary for the continued operation of the storage system. <Logical Structure>
[0026] Figure 3 illustrates the storage logical configuration in this embodiment. LDEV50 is a logical drive recognized by the host computer 40, and host I / O is performed on the logical address space on LDEV50.
[0027] Pool 60 is a logical storage area (also simply called a logical area) associated with one or more LDEV50s and one or more RAID groups 80. In this embodiment, user data stored in LDEV50 is compressed and / or deduplication and stored in Pool 60. For example, data A, data B, and data C in LDEV50 are compressed to generate data a, data b, and data c, and stored in Pool 60. Data a is stored in page 70A, and data b and data c are stored in page 70B. Note that data volume reduction processing such as compression / deduplication processing may be omitted.
[0028] Pool 60 is managed by page 70. Page 70 is the unit area that manages pool 60 and is associated with the logical storage area within RAID group 80. Compressed data is placed at the front of each page 70. This allows for efficient data storage.
[0029] In both update writes and new writes by the host computer 40, the received user data is stored at the beginning of the free space on page 70. When existing user data is updated by the host computer 40, the new user data is stored at the beginning of the free space on page 70, and the old user data that was originally stored becomes garbage.
[0030] Page 70 is a logical storage area for storing data. Page 70 is associated with a logical storage area within a RAID group 80, which consists of multiple drives 29. In the configuration example in Figure 3, page 70A in pool 60 is assigned to RAID group 80A, and page 70B is assigned to RAID group 80B.
[0031] A RAID group 80 is composed of multiple drives 29. By combining multiple drives 29 to form a logical storage medium, redundancy is ensured in the event of a drive failure within the RAID group 80. The logical storage area of the RAID group 80 is linked to the physical storage area of the drives 29.
[0032] As shown in Figure 3, the storage logical configuration has a hierarchical structure, and the storage device 11 manages data in multiple logical hierarchies. Figure 3 shows the LDEV 50 hierarchy, the RAID group 80 hierarchy, and the pool 60 hierarchy between them. The pool 60 hierarchy is an append hierarchy that writes user data received via the host interface 23 to the free space. Figure 3 shows one LDEV 50 and one pool 60, but multiple LDEVs and multiple pools may be defined in the storage device 11. The storage area in a hierarchy is associated with the storage area of the adjacent hierarchy above and / or below. Figure 3 shows three logical hierarchies, but other hierarchies may be defined. <Metadata Management Table>
[0033] Figure 4 illustrates the metadata management table 202 in this embodiment. The CPU 24 forms the metadata management table 202. The metadata management table 202 is managed by the CPU 24, stored, for example, in drive 29, and loaded into memory 25. The metadata management table 202 is managed, for example, in units of LDEV50. Each entry in the metadata management table 202 is a table that manages the correspondence between the logical address of the user data contained in each LDEV50 and the physical address where the data is stored. The physical address may be an address within RAID group 80 or an address within pool 60.
[0034] The following describes each column in metadata management table 202.
[0035] Column 2021 records the starting address of the corresponding address range within LDEV50.
[0036] Column 2022 records the starting address of the address range within RAID group 80 as the storage address for user data. For the sake of simplicity, addresses within RAID group 80 will be referred to as physical addresses. Alternatively, addresses within pool 60 may be used as the storage address for user data instead of addresses within the RAID group.
[0037] Column 2023 records the uncompressed data size of the corresponding user data.
[0038] Column 2024 records the compressed data size of the corresponding user data. <Page Management Table>
[0039] Figure 5 illustrates the page management table 203 in this embodiment. The CPU 24 forms the page management table 203. The page management table 203 is managed by the CPU 24, stored, for example, in the drive 29, and loaded into the memory 25. Each entry in the page management table 203 records the correspondence between a page 70, which is a logical recording area, the ID of the RAID group 80 associated with the page 70, and the address range within the RAID group 80 that corresponds to the page 70. It also records the amount of garbage contained in the page 70 and the last address (previously added address) where the last append was performed within the page.
[0040] The following describes each column of the page management table 203. Column 2031 records the ID indicating page 70. Column 2032 records the ID indicating the RAID group 80 to which page 70 is assigned. Column 2033 records the address range within the RAID group 80 corresponding to page 70. Column 2034 records the amount of garbage contained in page 70.
[0041] Column 2035 records the position (last address) where data was last appended within page 70. The appending process is performed in a front-loading manner starting from the head address of page 70. Therefore, the area after this last address is an area where no data is stored (i.e., data can be written). <RAID Configuration Management Table>
[0042] FIG. 6 is a diagram for explaining the RAID configuration management table 204 in the present embodiment. The RAID configuration management table 204 is managed by the CPU 24, stored in, for example, the drive 29, and loaded into the memory 25. The RAID configuration management table 204 is a data structure that records, for each RAID group 80 within the storage system, the RAID level of the RAID group 80, a list of IDs corresponding to the drives 29 belonging to the RAID group 80, the type of drives constituting the RAID group 80, the logical capacity of the RAID group 80, and the used capacity of the RAID group 80.
[0043] Hereinafter, each column of the RAID configuration management table 204 will be described. Column 2041 records the ID of the RAID group 80 included in the storage system 100. Column 2042 records the RAID level (e.g., RAID1, RAID5, etc.) of the corresponding RAID group 80. Column 2043 records a list of drive IDs belonging to the corresponding RAID group 80.
[0044] Column 2044 records the power state (power-saving mode or normal mode) of the drives belonging to the corresponding RAID group 80. Column 2045 records the logical capacity of the corresponding RAID group 80. Column 2046 records the used capacity of the corresponding RAID group 80. This used capacity is the total size of the areas used for storing data (e.g., user data and metadata) in the RAID group 80.
[0045] CPU24 obtains the RAID level from the user and stores it in column 2042. CPU24 may obtain the drive ID from the user and store it, or it may generate and store it. If CPU24 generates the drive ID, it may uniquely determine the drive ID from the physical location of drive 29, for example. Information in other columns is generated and stored by CPU24. CPU24 determines the power status of drive 29 based on load information obtained from drive 29 and stores it in column 2044. <Pool Management Table>
[0046] Figure 7 illustrates the pool management table 205 in this embodiment. The pool management table 205 is created and managed by the CPU 24, stored, for example, on the drive 29, and loaded into the memory 25. For each pool in the storage system 100, the pool management table 205 contains the ID of the pool 60, a list of IDs of the RAID group 80 corresponding to the pool 60, the logical capacity of the pool 60, and the used capacity of the pool 60.
[0047] The following describes each column of the pool management table 205. Column 2051 records the ID of pool 90 contained within storage system 100. Column 2052 records a list of IDs of RAID groups 80 that provide pages to the corresponding pool 60. One or more RAID groups are assigned to a single pool. For example, the drive types of the RAID groups assigned to a single pool are assumed to be the same. Column 2053 records the logical capacity of the corresponding pool 60.
[0048] Column 2054 records the usage capacity of the corresponding pool 60. This usage capacity is the sum of the sizes of the areas used in that pool 60 to store data (e.g., user data, metadata). <Device Management Table>
[0049] Figure 8 illustrates the device management table 206 in this embodiment. The pool management table 205 is created and managed by the CPU 24, stored, for example, in the drive 29, and loaded into the memory 25. The device management table 206 is a data structure that records, for each device in the storage system 100, the device ID, the device type representing the type of device (e.g., CPU, drive, etc.), the device utilization rate, the device load, the device power saving threshold, and the device power status.
[0050] The following describes each column of the device management table 206. Column 2061 records the ID of the corresponding device.
[0051] Column 2062 records the device type, which represents the type of device being used. Examples of device types include CPU and drive. Other possible device types include compression accelerators, memory, front-end interfaces, and back-end interfaces.
[0052] Column 2063 records the load of the corresponding device. The device load consists of load derived from host access processing (IO-derived) and load derived from asynchronous processing, and these values are managed by column 2063. For example, the CPU load may be expressed as utilization (the ratio of CPU usage time to total time), and the drive load may be expressed as the ratio of the current value to the specified maximum possible value of the number of accesses or access flow. The loads of memory, interfaces, and accelerators may be similar to those of drives. Note that the device load may be managed on a per-process basis. Alternatively, the device load may not be managed and may be calculated from the value in column 2064 (load derived from host access processing (IO-derived)) and the value in column 2065 (load derived from asynchronous processing).
[0053] Column 2064 manages the load of host-access-derived processing (IO-derived) within the load of the corresponding device. Column 2065 manages the load of asynchronous processing within the load of the corresponding device. Note that the load of asynchronous processing may be managed separately for each type of asynchronous processing (e.g., garbage collection processing, asynchronous data volume reduction processing).
[0054] Column 2066 records the power saving threshold for the corresponding device. The power saving threshold is one of the thresholds used to determine the power state according to the device load. For example, CPU24 periodically monitors the load originating from host access processing (IO-derived) indicated in column 2064, and if the value is below the power saving threshold, it transitions the power state of the device to power saving mode. Multiple power saving thresholds may be set depending on the number of power states of the device.
[0055] Column 2067 records the power state of the corresponding device. The power state can be set to either power-saving mode or normal mode. Furthermore, power-saving mode may be subdivided for more granular power state control (e.g., power-saving mode Lv1, power-saving mode Lv2 with higher power consumption than power-saving mode Lv1, etc.). <Lighting>
[0056] Figure 9 illustrates the processing flow of the write operation in this embodiment. The write operation is the process of receiving a write request from the host computer 40 and recording the data in the storage device 11. In the write request, for example, the LDEV ID and logical address of the write destination are specified by the host computer 40.
[0057] The following describes the processing flow of the write operation in this embodiment using Figure 9.
[0058] S901:CPU24 receives data write requests and data from the host computer 40.
[0059] S902: The CPU 24 applies compression processing to the data received from the host computer 40 to obtain compressed data. This compression processing may be performed by the CPU 24 itself, or if the storage device 11 has hardware capable of performing compression processing, the compression processing may be performed by that hardware.
[0060] S903:CPU24 selects page 70 to store the compressed data.CPU24 refers to page management table 203, RAID configuration management table 204, and pool management table 205.The size from the last appended position on the page to the end of the page is defined as the free space within the page, and page 70 is selected as the data storage page if the free space within the page is larger than the size of the compressed data.
[0061] S904: If CPU24 was able to select a page that satisfies the conditions in step S903 as the storage page, it proceeds to step S905. If no page that satisfies the conditions exists, it proceeds to step S908. S905: CPU24 stores the compressed data in memory 25.
[0062] S906:CPU24 updates the values of page ID 2021 and the physical address 2022 corresponding to logical address 2021 within the page, as well as the pre-compression size information 2023 and post-compression size information 2024 in the metadata management table 202. In the case of an update write, it also increases the garbage amount 2034 in the page management table 203, which corresponds to page 70 where the pre-update data was stored, by the size of the pre-update data. This manages the amount of garbage-collected data. It also updates the value of the previous append position 2035 with the value of the append position where the compressed data was stored this time.
[0063] S907: CPU24 returns a response to the host computer 40 indicating that the write operation is complete and terminates processing. S908: CPU24 returns a response to the host computer 40 indicating that the write operation failed due to insufficient free space and terminates processing.
[0064] In the explanation of Figure 9, compression processing is performed before the write completion response is sent to the host computer 40, but this compression processing may be performed asynchronously with the write processing. For example, after storing the data received from the host computer 40 in memory 25, a write completion response may be sent to the host computer 40, and then the compression processing may be performed asynchronously on the data in memory 25. <Garbage collection process>
[0065] Figure 10 is a diagram illustrating the processing flow of the garbage collection process in this embodiment. The garbage collection process involves moving only the valid data from the valid data and garbage contained in the target page 70 to other pages, and then discarding the target page 70, thereby freeing up the memory area occupied by the garbage and making it reusable.
[0066] CPU24 performs garbage collection on memory areas (e.g., page 70) that have been determined to be targets for garbage collection in the asynchronous processing execution determination process described later.
[0067] CPU24 may periodically perform garbage collection on page 70, which it has determined to be subject to garbage collection, or it may perform garbage collection synchronously or asynchronously with write operations when the amount of garbage in pool 60 or page 70 increases due to write operations.
[0068] Furthermore, garbage collection may be performed when the logical configuration within the storage system 100 changes. For example, it may be performed when the size of LDEV50, pool 60, or RAID group 80 changes.
[0069] Alternatively, this may be performed when the physical configuration within the storage system 100 is changed. For example, it may be performed when drives 29 are added or removed.
[0070] The following describes the processing flow of garbage collection in this embodiment using Figure 10.
[0071] S1001:CPU24 refers to page management table 203 and enumerates the data contained in the address range from the starting address of the target page to the previous edited location.
[0072] S1002: CPU24 selects the first data item from the data enumerated in step S1001 as the item to be processed.
[0073] S1003: CPU24 determines whether there is any unprocessed data remaining among the data enumerated in step S1001. If there is any unprocessed data remaining (S1003: YES), the process proceeds to step S1004. If there is no unprocessed data remaining (S1003: NO), all valid data contained in the current page 70 has been moved to another page 70, and the garbage collection process is completed.
[0074] S1004: CPU24 refers to the physical address information 2022 and logical address information in the metadata management table 202 to determine whether the target data is valid data. If a corresponding logical address exists for the physical address where the target data is located, the target data is determined to be valid data. Otherwise, the target data is determined to be invalid data. If the data is valid (S1004: YES), proceed to step S1005. If the data is not valid (S1004: NO), proceed to step S1006.
[0075] S1005:CPU24 copies the target data to another page 70 in pool 60.
[0076] S1006: CPU24 selects the next data from the data enumerated in step S1001 and proceeds to step S1203.
[0077] S1007:CPU24 refers to page management table 203 and rewrites the garbage amount value 2034 and the last edit position value 2035 of the entry corresponding to target page 70 to their initial values. <Asynchronous processing execution determination process>
[0078] Figure 11 is a diagram illustrating the processing flow of the asynchronous processing execution determination process in this embodiment. The asynchronous processing execution determination process is a process that determines whether or not to perform garbage collection processing or asynchronous data volume reduction processing for each pool 60 in the storage system 100.
[0079] The asynchronous processing execution determination process may be performed periodically by CPU24, or it may be executed at the start trigger set for each asynchronous process. For example, garbage collection may be performed synchronously or asynchronously with the write process when the amount of garbage contained in pool60 or page70 increases by a certain amount due to a write process.
[0080] Furthermore, the asynchronous processing execution determination process may be performed when the logical configuration within the storage system 100 is changed. For example, it may be performed when the size of LDEV50, pool 60, or RAID group 80 is changed. Alternatively, it may be performed when the physical configuration within the storage system 100 is changed. For example, it may be performed when drives 29 are added or removed.
[0081] The following explanation will use Figure 11 to describe the processing flow of the asynchronous processing execution determination process in this embodiment. As an example of asynchronous processing, the garbage collection process will be used in the explanation below.
[0082] S1101:CPU24 determines the urgency of performing asynchronous processing. In determining the urgency of garbage collection processing, for example, it refers to the pool management table 205 to obtain the pool capacity and pool usage capacity of the target pool 60, and calculates the free pool capacity from the difference between the pool capacity and the pool usage capacity.
[0083] Next, CPU24 determines the urgency level of garbage collection (hereinafter referred to as GC urgency) based on the calculated free space (for example, "urgency: medium" or "not urgent"). If there is little free space and there is a high possibility of depletion (for example, free space below a predetermined threshold), the GC urgency level is set high to activate garbage collection and restore free space. On the other hand, if there is ample free space, the GC urgency level is set low to operate garbage collection at a load that can maintain power-saving mode, thus prioritizing power saving.
[0084] The urgency may be determined using one or more fixed thresholds with respect to the free capacity of pool 60, or it may be determined by dynamic thresholds depending on the usage of the storage system. For example, the thresholds may be varied based on the garbage collection processing speed (the amount of free pool capacity that can be generated per unit time by the garbage collection process) and the rate at which pool usage increases due to host writes.
[0085] These values are monitored and managed by CPU24, and for example, average values for predetermined periods or moving averages over time may be calculated. For example, a function or transformation table may be defined such that the threshold is smaller the faster the garbage collection processing speed, and larger the threshold is larger the faster the pool usage increases.
[0086] The higher the urgency, the more actively garbage collection is performed, increasing the pool's free space and making it less likely for the pool to be depleted. On the other hand, the increased utilization of devices due to the active garbage collection process makes it more difficult to transition back to normal mode. The urgency level may be determined not only by the pool's free space, but also by the free space of data storage areas, such as one or more LDEVs or pages other than the pool that are subject to garbage collection, or the free space of physical drives.
[0087] S1102: CPU24 adjusts the load threshold for each device according to the GC urgency level determined in S1101. For example, if the GC urgency level is "not urgent," it can be determined that the execution priority of garbage collection is low. In this case, the power saving threshold set in the device management table 206 is used as the device load threshold.
[0088] On the other hand, if the GC urgency is "medium," it is determined that garbage collection should be prioritized, and a value higher than the power saving threshold in device management table 206 is set as the device load threshold. Similarly, if the GC urgency is "high," the device load threshold is set even higher. This allows garbage collection to be operated more actively. The relationship between GC urgency and the device load threshold may be predetermined, and only the device load thresholds of a select few devices may be changed. Note that GC urgency may not be used. In this case, the device load threshold may be fixed.
[0089] S1103:CPU24 refers to page management table 203 and performs the following determination (X1) on all pages 70 corresponding to target pool 60.
[0090] (X1) The amount of garbage contained in target page 70 is equal to or greater than the page-level garbage amount threshold.
[0091] CPU24 proceeds to S1104 if at least one of the target pages 70 has a positive result for judgment (X1). Otherwise, it proceeds to S1107.
[0092] S1104: CPU24 determines the power mode of the device. If the load originating from host access processing (IO-derived) does not reach the device load threshold determined in S1102, CPU24 determines that power saving mode can be applied and proceeds to S1105.
[0093] On the other hand, if the load originating from host access processing (IO-derived) reaches the device load threshold determined in S1102, it is determined that power saving mode cannot be applied (normal mode). In this case, the subsequent steps (S1105 to S1107) are skipped, and the amount of computing resources determined by an arbitrary criterion within the maximum allowable performance of the device is allocated to asynchronous processing.
[0094] S1105: CPU24 determines the amount of computing resources allocated to each device (e.g., CPU24 and drive29) for asynchronous processing. If the sum of the computing resources allocated to devices already assigned to asynchronous processing and the computing resources allocated to host access processing (total device load) does not reach the device load threshold determined in S1102, CPU24 proceeds to S1106. Otherwise, it proceeds to S1107. The total device load is managed in column 2063 of the device management table 206.
[0095] "Computational resource usage" is expressed as, for example, the utilization rate (the ratio of CPU 24's operating time to the total time) in the case of CPU 24. In the case of drive 29, it is expressed as the ratio of the current access load to the maximum access load that the drive can accept (e.g., number of accesses or access traffic).
[0096] CPU24 controls the load of garbage collection processing to maintain power-saving mode when the device is in power-saving mode. In other words, the upper limit of the amount of computing resources allocated to garbage collection processing is determined so that the overall device load is equal to the device load threshold determined in S1102. For example, if 5% of CPU24's computing resources are already allocated to asynchronous processing, 30% are allocated to host access processing, and the device load threshold determined in S1102 is 40%, the process proceeds to S1106. Then, "10%" is determined as the upper limit of the amount of computing resources allocated to garbage collection processing so that the overall device load is equal to the device load threshold of 40% determined in S1102.
[0097] Furthermore, if, for example, 20% of the computing resources of CPU24 are already allocated to asynchronous processing, 30% of the computing resources are allocated to host access processing, and the device load threshold determined in S1102 is 40%, the process proceeds to S1107. Then, "10%" is determined as the upper limit of the amount of computing resources allocated to garbage collection processing so that the overall device load becomes 40%, which is the device load threshold determined in S1102.
[0098] In the case of garbage collection, the amount of computing resources allocated to the garbage collection process may be set as a target value smaller than the upper limit (for example, a value smaller than the upper limit of 10%, such as 7% in the above example). The target value of computing resources may also be varied according to the available pool capacity.
[0099] On the other hand, drive 29 may not be able to maintain power-saving mode if access occurs (if there are incomplete commands to the drive). In the case of drive 29 with such characteristics, garbage collection may be performed only when drive access occurs to drive 29 due to host access processing (for example, drive access in the synchronization process of host access).
[0100] This ensures that the drive's power-saving mode is applied when there is no host access, and garbage collection is activated when host access occurs (at which point new garbage is generated by host writing). This allows for both power saving and maintenance of free space by reclaiming free space.
[0101] The amount of computing resources allocated to garbage collection processing may be controlled, for example, through the concurrency (number of parallel executions) of the garbage collection processing. In this case, the amount of computing resources increases in proportion to the concurrency. For example, the relationship between the amount of computing resources and the concurrency may be predetermined, and the concurrency may be determined so that the device load is within a threshold. Alternatively, CPU24 may monitor the device load and change the concurrency as needed.
[0102] S1106: CPU24 determines that target pool 60 is subject to garbage collection and terminates processing. In other words, it determines to perform a new garbage collection process in order to increase the amount of computing resources already allocated to asynchronous processing for devices to the amount of computing resources allocated to the garbage collection process determined in S1105, and terminates processing.
[0103] S1107: CPU24 determines that target pool 60 is not subject to garbage collection and terminates processing. In other words, it reduces the amount of computing resources for devices already allocated to asynchronous processing to the amount of computing resources allocated to garbage collection processing determined in S1105, determines that no new garbage collection processing will be performed, and terminates processing.
[0104] As explained above using garbage collection as an example, the asynchronous processing execution determination process allocates computing resources in such a way that the amount of free space decreases (for example, the urgency increases) to increase the garbage collection processing speed (for example, the processing concurrency) in order to prevent the pool capacity from being depleted.
[0105] The asynchronous processing execution determination process described above, using garbage collection as an example, can be applied to data volume reduction processing and other asynchronous processing. For example, the execution determination process for asynchronous data volume reduction processing may determine the urgency and device load threshold in the same way as for garbage collection processing. The target pages for data volume reduction processing may be selected based on the amount of data to be reduced. For example, in S1103, instead of determining the target pages based on the amount of garbage within the page, pages with a data volume to be reduced that is above a predetermined threshold are selected. This allows for appropriate selection of pages to be reduced. <Asynchronous data volume reduction processing>
[0106] Figure 12 is a diagram illustrating the processing flow of the asynchronous data volume reduction process in this embodiment. The asynchronous data volume reduction process applies the data volume reduction process to data included in the target page 70 that has not yet been reduced.
[0107] In the asynchronous processing execution determination process, CPU24 performs asynchronous data volume reduction processing on memory areas (e.g., page 70) that have been determined to be targets for asynchronous data reduction.
[0108] CPU24 may periodically perform asynchronous processing execution determination processing on pages 70 that it has determined should be subjected to asynchronous data volume reduction processing, or it may perform asynchronous processing execution determination processing when the amount of data in pool 60 or page 70 to which data volume reduction processing has not been applied increases due to write processing.
[0109] Furthermore, the asynchronous data volume reduction process may be performed when the logical configuration within the storage system 100 is changed. For example, it may be performed when the size of LDEV50, pool 60, or RAID group 80 is changed.
[0110] Alternatively, this may be performed when the physical configuration within the storage system 100 is changed. For example, it may be performed when drives 29 are added or removed.
[0111] The processing flow of the asynchronous data volume reduction process in this embodiment will be explained below using Figure 12.
[0112] S1201:CPU24 refers to page management table 203 and enumerates the data contained in the address range from the starting address of the target page to the previous edited location.
[0113] S1202: CPU24 selects the first data item from the data enumerated in step S1201 to be processed.
[0114] S1203: CPU24 determines whether there is any unprocessed data remaining among the data enumerated in step S1201. If there is any unprocessed data remaining (S1203: YES), the process proceeds to step S1204. If there is no unprocessed data remaining (S1203: NO), the asynchronous data reduction process is completed because the data reduction has been applied to all data contained in page 70.
[0115] S1204: CPU24 refers to the physical address information 2022 and logical address information in the metadata management table 202 and determines whether or not data volume reduction processing has been applied to the target data. If it has not been applied (S1204: YES), proceed to step S1205. If it has been applied (S1204: NO), proceed to step S1206.
[0116] S1205:CPU24 applies data size reduction processing (compression and deduplication) to the target data. The target data is valid data, and garbage is excluded from the target data. The compressed data is then appended (written) to the free space on the current page or to a new page.
[0117] S1206: CPU24 selects the next data from the data enumerated in step S1201 and proceeds to step S1203.
[0118] S1207:CPU24 refers to page management table 203 and performs the necessary updates to the garbage amount 2034 value and the last appended position 2035 value in the entry corresponding to the target page 70. Specifically, the garbage amount is increased by the amount of old data due to the data volume reduction process. If compressed data is currently written to the page, the last appended position is updated to the end of the current appended section.
[0119] As described above, according to the embodiments of the present invention, asynchronous processing such as garbage collection and asynchronous data volume reduction can be applied while ensuring the application period of the power saving mode of the hardware devices constituting the storage system.
[0120] In this embodiment of the present invention, the storage device manages data in multiple logical hierarchies, but any method that can store and manage data in a storage area does not necessarily require logical hierarchies. Also, in this embodiment of the present invention, the storage system employs an append-only data storage method, but asynchronous processing such as asynchronous data volume reduction processing of data stored in the storage system may be performed without using an append-only data storage method.
[0121] Furthermore, in the embodiments of the present invention, the power state is managed for each device, an operating mode (power state) is selected, and asynchronous processing such as garbage collection and asynchronous data volume reduction is executed within the range that maintains the power saving mode. This allows for more appropriate control for each device. In other examples, the power state may be managed for the entire storage device, an operating mode may be selected, and asynchronous processing such as garbage collection and asynchronous data volume reduction may be executed. For example, the CPU 24 may compare the I / O load from all hosts with a predetermined threshold and set all target devices on the host to a common operating mode. Also, resource allocation for asynchronous processing may be controlled so as not to exceed the load threshold for each device, as in the above example.
[0122] Furthermore, in embodiments of the present invention, asynchronous processing includes garbage collection processing and asynchronous data volume reduction processing such as asynchronous compression processing and asynchronous deduplication processing. However, processing that is executed asynchronously with data reading and writing processing includes processing different from garbage collection processing and asynchronous data volume reduction processing. For example, asynchronous processing may include processing that asynchronously performs staging from drive to cache, asynchronous destaging processing associated with write-back processing, and processing that asynchronously performs compression mode conversion to change the application of multiple compression algorithms.
[0123] Furthermore, if a particular RAID group within the storage system is not experiencing a load, then no writes are occurring to that RAID group, and therefore its free space will not be depleted. For this reason, the priority of garbage collection for that RAID group may be determined to be low, and it may be excluded from garbage collection. This ensures that the power-saving mode is applied to each drive associated with that RAID group for a specified period.
[0124] Furthermore, depending on the length of the power-saving mode application period and the magnitude of the load resulting from asynchronous processing limited by the power-saving mode (e.g., the limit on utilization), the execution of asynchronous processing during periods when the power-saving mode is not applied may be accelerated. For example, if the load caused by the limitation of garbage collection processing exceeds a predetermined threshold and the operating mode is normal mode, CPU 24 increases the concurrency (number of parallel executions) of garbage collection processing beyond a predetermined concurrency in order to accelerate the execution of garbage collection processing.
[0125] Regarding garbage collection, the longer the period during which the load is limited (the larger the absolute value of the load resulting from the limited garbage collection), the greater the amount of uncollected garbage. In such cases, accelerating the garbage collection process during periods when power saving mode is not applied makes it possible to efficiently collect the increased garbage.
[0126] It should be noted that the present invention is not limited to the embodiments described above, and various modifications are included. For example, the embodiments described above are described in detail to make the present invention easier to understand, and are not necessarily limited to those having all the configurations described. Furthermore, it is possible to replace parts of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add configurations from other embodiments to the configuration of one embodiment. In addition, it is possible to add, delete, or replace parts of the configuration of each embodiment with other configurations.
[0127] Furthermore, some or all of the above configurations, functions, and processing units may be implemented in hardware, for example, by designing them as integrated circuits. Alternatively, the above configurations and functions may be implemented in software by having the processor interpret and execute programs that implement each function. Information such as programs, tables, and files that implement each function can be stored in memory, a recording device such as a hard disk or SSD, or a recording medium such as an IC card or SD card.
[0128] Furthermore, the control lines and information lines shown are those deemed necessary for explanatory purposes, and not all control lines and information lines are necessarily shown in the actual product. In reality, it can be assumed that almost all components are interconnected. [Explanation of Symbols]
[0129] 100 Storage Systems 11 Storage devices 22 Storage Controllers 24 CPU 29 Drive 60 pools Page 70
Claims
1. A storage device, A host interface that communicates with the host, Includes a processor, The aforementioned processor, This process is executed asynchronously with the access process, which is the process of reading and writing data via the host interface, and executes an asynchronous process that is the process of processing data originating from the data received via the host interface. The operating mode of one or more hardware devices of the storage device is selected from a mode that includes a normal mode and a power-saving mode that consumes less power than the normal mode. When the operating mode is the power saving mode, the asynchronous processing is restricted to maintain the power saving mode. A storage device characterized by the following features.
2. A storage device according to claim 1, The aforementioned processor, If the access-derived load, which is the load associated with the access processing, is below a predetermined device load threshold, the power saving mode is set as the operating mode. The limitation of the asynchronous processing controls the asynchronous processing so that the device load, including the access-derived load and the asynchronous processing-derived load which is the load related to the asynchronous processing, is less than or equal to the predetermined device load threshold. A storage device characterized by the following features.
3. A storage device according to claim 2, The processor manages the access-derived load and the asynchronous processing-derived load for each of the one or more hardware devices. The one or more hardware devices include the processor and the physical drive. The processor selects the operating mode for each of the one or more hardware devices. When the operating mode is the power saving mode, the asynchronous processing is restricted for each of the one or more hardware devices. A storage device characterized by the following features.
4. A storage device according to claim 1, The aforementioned processor, For physical drives that do not have a load from the aforementioned access process, the asynchronous process is stopped and the power saving mode of the physical drive is maintained. A storage device characterized by the following features.
5. A storage device according to claim 1, The asynchronous processing includes garbage collection processing and asynchronous data volume reduction processing. A storage device characterized by the following features.
6. A storage device according to claim 2, The device load threshold includes a first device load threshold and a second device load threshold that is greater than the first device load threshold. The aforementioned processor, If the free space of the data storage area subject to the asynchronous processing is greater than a predetermined threshold, the first device load threshold is selected as the device load threshold. If the free space in the data storage area is less than or equal to the predetermined threshold, the second device load threshold is selected as the device load threshold. A storage device characterized by the following features.
7. A storage device according to claim 5, The aforementioned processor, The asynchronous data volume reduction process is executed in a storage area where the amount of data subject to the asynchronous data volume reduction process is equal to or greater than a predetermined threshold. A storage device characterized by the following features.
8. A storage device according to claim 1, The area where the asynchronous processing is performed is the storage area of a physical drive with a load exceeding a predetermined threshold. A storage device characterized by the following features.
9. A storage device according to claim 5, The processor accelerates the execution of the garbage collection process if the load caused by the limitations on the garbage collection process exceeds a predetermined threshold and the operating mode is the normal mode. A storage device characterized by the following features.
10. A storage device according to claim 1, In multiple logical hierarchies, it manages the data stored on the memory drives. The aforementioned multiple logical hierarchies include append hierarchies, The aforementioned processor, In the append hierarchy, data originating from data received via the host interface is written to a writable free area. A storage device characterized by the following features.
11. A method for controlling a storage device, This is a process that is executed asynchronously with respect to data originating from data received via the host interface, and is an asynchronous process that is executed on data that originates from data received via the host interface. The operating mode of one or more hardware devices of the storage device is selected from a mode that includes a normal mode and a power-saving mode that consumes less power than the normal mode. When the operating mode is the power saving mode, the asynchronous processing is restricted to maintain the power saving mode. A control method characterized by the following: