Enable or disable data reduction based on data rewriting metrics

Through the dynamic data reduction management engine and the rewrite statistical computing engine, data reduction is enabled or disabled according to the data rewrite metric, which solves the problem of high data reduction resource consumption in the storage system and improves the storage system when data rewrites efficiency.

CN117591002BActive Publication Date: 2025-01-03HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310990577.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-08-10
Filing Date
2023-08-08
Publication Date
2025-01-03
Estimated Expiration
2043-08-08

AI Technical Summary

Technical Problem

In storage systems, the data reduction process consumes a large amount of resources, especially in the case of large amounts of data rewrites, resulting in inefficiency and waste of resources.

Method used

Through the dynamic data reduction management engine, data reduction is dynamically enabled or disabled based on the rewrite metric of data segments. The rewrite statistical computing engine is used to monitor the data rewrite situation, and determine whether to apply data reduction based on the threshold to avoid unnecessary Resource consumption.

Benefits of technology

Effectively manage resource consumption, improve the efficiency of storage systems when rewriting large amounts of data, avoid the application of data reduction in unnecessary circumstances, and reduce resource waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117591002B_ABST
    Figure CN117591002B_ABST
Patent Text Reader

Abstract

The present disclosure generally relates to enabling or disabling data reduction based on a data rewrite metric. In some examples, a system calculates a data rewrite metric for a data segment stored in a storage structure, wherein the data rewrite metric indicates an amount of data rewrites in the data segment. The system compares the data rewrite metric to a standard. In response to determining that the data rewrite metric has a first relationship relative to the standard, the system disables data reduction for the data segment.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The storage system includes resources that allow the storage system to store data in a storage medium, which may include a collection of storage devices (a single storage device or multiple storage devices). In some examples, the storage system may include storage media and other resources (including processing resources and communication resources). In other examples, the storage system may be in the form of a control system (e.g., a storage server) that includes processing resources and communication resources and manages the storage of data on separate storage media. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Some embodiments of the disclosure are described with respect to the following figures.

[0003] Figure 1 is a block diagram of an arrangement including a dynamic data reduction management engine for managing selective enabling or disabling of data reduction for storage volumes, according to some examples.

[0004] Figure 2 is a flow diagram of a process for dynamically enabling or disabling data reduction for a storage volume according to some examples.

[0005] Figure 3 is a block diagram of a storage medium storing machine-readable instructions according to some examples.

[0006] Figure 4 is a block diagram of a storage system according to some examples.

[0007] Figure 5 is a flow diagram of a process according to some examples.

[0008] Throughout the drawings, the same reference numerals refer to similar, but not necessarily identical, elements. The drawings are not necessarily drawn to scale, and the dimensions of some parts may be exaggerated to more clearly illustrate the examples shown. In addition, the drawings provide examples and / or implementations consistent with the description; however, the description is not limited to the examples and / or implementations provided in the drawings. DETAILED DESCRIPTION

[0009] In the present disclosure, unless the context clearly indicates otherwise, the use of the terms "a", "an" or "the" is intended to include the plural forms as well. Similarly, when used in the present disclosure, the terms "includes / including / comprises / comprising", "have / having" specify the presence of stated elements, but do not exclude the presence or addition of other elements.

[0010] Data reduction may be applied by some workloads executed on storage volumes stored by a storage system. A "storage volume" (or equivalently a "virtual volume") may refer to a logical container or other construct to which data may be added, such as by a write operation. Data may also be retrieved from a storage volume by a read operation.

[0011] Examples of data reduction that may be performed on data may include data compression and / or data deduplication. Data compression may refer to encoding or otherwise transforming data so that the size of the data may be reduced, i.e., the size of the compressed data may be smaller than the size of the uncompressed data. Examples of compression techniques include Lempel-Ziv (LZ) compression, run-length encoding, dictionary encoding, and the like.

[0012] Data deduplication refers to the removal of duplicate data portions that appear in the data. For example, the input data may be divided into data blocks. The deduplication process may identify data blocks that have been previously stored by the storage system - the identified data blocks are duplicate data blocks because the storage system has already stored these data blocks. The deduplication process may avoid storing the identified duplicate data blocks again in the storage system. The deduplication process may store references to previously stored data blocks instead of storing duplicate data blocks. The deduplicated data (e.g., deduplicated files, deduplicated objects, etc.) may contain a collection of data blocks and references, wherein a reference is a reference to a stored data block and is generated by the deduplication process. A "reference" may be a pointer or any other indication of the storage location of a data block.

[0013] More generally, data reduction applied to data refers to any process that reduces the amount of data stored in a storage system in response to receiving input data to be stored in the storage system ("raw data"). The reduced data produced by data reduction may have a smaller size than the input data before the data reduction.

[0014] Performing data reduction may take up a lot of resources. For example, data reduction may consume processing resources (e.g., processors, processor cores, etc.). Data encoding applied by data compression may take some time to execute, especially in the case of a large amount of input data. Data deduplication may involve dividing the input data into data blocks, calculating signature values ​​(e.g., hash values) based on the data blocks, comparing the signature values ​​with a set of signature values ​​representing data blocks that have been stored by the storage system, and identifying data blocks of the input data with signature values ​​that match the set of signature values ​​as duplicate data blocks. In addition to processing resources, other types of resources that may be consumed when performing data reduction may include any one or some combination of the following: input / output (I / O) resources (e.g., resources that support I / O operations (such as read operations and write operations), such as I / O controllers), communication resources (e.g., network interface controllers, switches or routers, etc.), memory resources (e.g., memory devices, such as dynamic random access memory (DRAM) devices, static random access memory (SRAM) devices, flash memory devices, etc.), and the like.

[0015] Resources that may be consumed when performing data reduction may also include logical resources such as virtual machines, virtual processors, virtual communication devices, etc., and / or program resources such as device drivers, operating system (OS) resources, etc., and so on.

[0016] According to some embodiments of the present disclosure, selective enabling and disabling of data reduction is applied to data segments (e.g., storage volumes, data pages, or any other data unit of specified granularity) based on calculating a rewrite metric based on the number of data rewrites in the data segment.

[0017] Figure 1 is a block diagram of an example arrangement that includes a storage control system 102 and a storage subsystem 104. The storage control system 102 may be implemented with a collection of computers (a single computer or multiple computers).

[0018] Storage control system 102 manages access to data stored in storage subsystem 104 , such as in response to input / output (I / O) requests from host system 106 .

[0019] In some examples, the storage control system 102 and the storage subsystem 104 can be integrated into a storage system (e.g., a storage array). In such examples, the storage control system 102 and the storage subsystem 104 can be part of the same physical enclosure. In other examples, the storage control system 102 and the storage subsystem 104 can be physically separated from each other; for example, the storage subsystem 104 can be connected to the storage control system 102 via a link, where the link can include a cable, a network, a wireless connection, etc.

[0020] The storage subsystem 104 includes a storage medium 108, which may be implemented using a collection of storage devices (a single storage device or multiple storage devices). Examples of storage devices may include any one or some combination of the following: a disk-based storage device, a solid-state drive, and the like.

[0021] Storage volumes 110-1 to 110-N (N≥1) may be stored in a storage medium 108. Each storage volume includes a set of pages (a single page or multiple pages). A "page" may refer to any portion of a storage volume, wherein the size of the portion may be less than the total size of the storage volume, or may be the same as the size of the storage volume. A page in a storage volume may be identified using a corresponding page identifier, such as a page number or any other type of identifier that may be used to distinguish between different pages of a storage volume.

[0022] A storage volume may be identified using a storage volume identifier, such as a logical unit number (LUN) or any other type of storage volume identifier that may distinguish between different storage volumes.

[0023] A "host system" may refer to any computing system capable of submitting I / O requests to storage control system 102 (e.g., over network 112). Examples of host systems may include any one or some combination of the following: a desktop computer, a notebook computer, a tablet computer, a smart phone, a server computer, a vehicle, a home appliance, a gaming console, or any type of electronic device.

[0024] The network 112 may include a storage area network (SAN), a local area network (LAN), a wide area network (LAN), a public network (such as the Internet), etc. The network 112 may be a wired network and / or a wireless network.

[0025] The I / O requests may include write requests to write data to the storage subsystem 104 , and / or read requests to read data from the storage subsystem 104 .

[0026] The storage control system 102 includes a storage controller 114 that manages access to the storage subsystem 104 in response to I / O requests received from the host system 106. The storage controller 114 may receive the I / O request, and in response, the storage controller 114 may issue a command to the storage subsystem 104 to perform the I / O operation requested by the I / O request, such as a write operation or a read operation.

[0027] According to some embodiments of the present disclosure, the storage control system 102 further includes a rewrite statistics calculation engine 116 and a dynamic data reduction management engine 118 .

[0028] As used herein, an "engine" or "controller" may refer to one or more hardware processing circuits, which may include any one or some combination of a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or other hardware processing circuits. Alternatively, an "engine" or "controller" may refer to a combination of one or more hardware processing circuits and machine-readable instructions (software and / or firmware) that may be executed on the one or more hardware processing circuits.

[0029] although Figure 1 The rewrite statistics calculation engine 116 and the dynamic data reduction management engine 118 are depicted as being separate from the storage controller 114 , but in other examples, the rewrite statistics calculation engine 116 and / or the dynamic data reduction management engine 118 may be part of the storage controller 114 .

[0030] Moreover, in further examples, the rewrite statistics calculation engine 116 and the dynamic data reduction management engine 118 may be integrated into a single engine, or alternatively, the functionality of the rewrite statistics calculation engine 116 and the dynamic data reduction management engine 118 may be divided into more than two engines.

[0031] The storage controller 114 further includes data reduction logic 120, which, if enabled, can apply data reduction (data compression and / or data deduplication) to the data. The data reduction logic 120 can be implemented using a portion of the hardware processing circuit(s) of the storage controller 114, or alternatively, can be implemented using machine-readable instructions executable by the storage controller 114.

[0032] In some examples, the dynamic data reduction management engine 118 provides a dynamic control directive 122 to the data reduction logic 120 to dynamically enable or disable data reduction on a per storage volume basis. In other words, the dynamic data reduction management engine 118 can selectively enable or disable the application of data reduction for each individual storage volume in the storage subsystem 104.

[0033] In other examples, instead of selectively enabling or disabling data reduction on a per storage volume basis, the dynamic data reduction management engine 118 may dynamically enable or disable the application of data reduction at different granularities, such as for individual pages (wherein data reduction may be selectively applied to each page of a storage volume), or for data units of different granularities.

[0034] More generally, the dynamic data reduction management engine 118 can dynamically enable or disable the application of data reduction for each individual data segment (storage volume, page, or other unit of data).

[0035] The dynamic control indication 122 may take various forms. For example, the dynamic control indication 122 may be in the form of indicators such as flags, where each indicator is associated with a corresponding storage volume. A first indicator is associated with a first storage volume, a second indicator is associated with a second storage volume, and so on. Each indicator may be set to a first value (e.g., 0) to indicate that data reduction is disabled for the corresponding storage volume, and may be set to a different second value (e.g., 1) to indicate that data reduction is enabled for the corresponding storage volume.

[0036] In other examples, the dynamic control indication 122 may be in the form of a “policy”, including a data reduction enabling policy that specifies enabling data reduction for a corresponding storage volume, and a data reduction disabling policy that specifies disabling data reduction for a corresponding storage volume. For example, the data reduction enabling policy may include an information element that indicates enabling data compression and / or data deduplication, and the data reduction disabling policy may include an information element that indicates disabling data compression and data deduplication.

[0037] In some examples, the rewrite statistics calculation engine 116 calculates rewrite statistics for pages of the storage volumes 110-1 to 110-N. When the storage controller 114 processes write requests, the rewrite statistics calculation engine 116 can determine whether each write request results in a rewrite of data in the corresponding page. If the write data of the write request updates the corresponding page that was previously written, then a data rewrite occurs. Note that inserting new data into a page that was not previously written is not considered a rewrite.

[0038] In some examples, the rewrite statistics calculation engine 116 can maintain a page write tracking structure 130 (e.g., a bitmap or other data structure) for each storage volume, which includes a page write tracking indicator to track which pages of the storage volume have been previously written. In some examples, the page write tracking structure 130 can be stored in a memory 132 of the storage control system 102. The memory can be implemented with a collection of memory devices (a single memory device or multiple memory devices). Examples of memory devices include any one or some combination of dynamic random access memory (DRAM) devices, static random access memory (SRAM) devices, flash memory devices, etc.

[0039] The page write tracking indicator, if set to a first value (e.g., set to 0), indicates that the corresponding page has not been written. On the other hand, the page write tracking indicator, if set to a different second value (e.g., set to 1), indicates that the corresponding page was previously written. If a write request results in a write to a given page associated with the page write tracking indicator set to the first value, the write to the given page inserts new data into the given page, which is not considered a data rewrite. If a write request results in a write to a given page associated with the page write tracking indicator set to the second value, the write to the given page overwrites the data of the given page.

[0040] The rewrite statistics calculation engine 116 provides the rewrite statistics 124 to the dynamic data reduction management engine 118. In some examples, the rewrite statistics may include a data rewrite metric that indicates the number of data rewrites in a page. For example, the data rewrite metric may indicate the number of data rewrites in a page within a given time window. During the given time window, the rewrite statistics calculation engine 116 counts the number of data rewrites per page. Note that the number of rewrites counted by the rewrite statistics calculation engine 116 may be zero or greater than zero.

[0041] For each given page, a new data rewrite metric is calculated within a continuous time window. For example, for each given page, a first data rewrite metric is calculated for a first time window, a second data rewrite metric is calculated for a second time window after the first time window, and so on. At the beginning of each continuous time window, the data rewrite metric is reset and recalculated based on the number of data rewrites monitored in the given page during the continuous time window.

[0042] In some examples, the rewrite statistics 124 provided by the rewrite statistics calculation engine 116 to the dynamic data reduction management engine 118 may include a per-page data rewrite metric. In some examples, the per-page data rewrite metric may include metadata identifying the storage volumes to which the pages for which the per-page data rewrite metric is calculated belong.

[0043] In other examples, rather than sending per-page data rewrite metrics, the rewrite statistics calculation engine 116 may instead send storage volume rewrite metrics to the dynamic data reduction management engine 118 , where each storage volume rewrite metric indicates a number of rewrites of pages of a corresponding storage volume.

[0044] In the example where the rewrite statistics calculation engine 116 sends the per-page data rewrite metric to the dynamic data reduction management engine 118, the dynamic data reduction management engine 118 collects the per-page data rewrite metric for each individual storage volume and calculates a mathematical aggregation (e.g., sum, average, median, maximum, etc.) of the data rewrite metrics for the pages in a single storage volume.

[0045] For example, if a given storage volume includes a plurality of pages 1 to M (M ≥ 2), the per-page data rewrite metric in the rewrite statistics 124 may include a page rewrite metric OM2 for page 2 and a page rewrite metric OM5 for page 5. Other pages of the given storage volume may not have been rewritten yet, so the page rewrite metric of each such other page is assumed to be 0 (and in some cases will not be sent to the dynamic data reduction management engine 118 by the rewrite statistics calculation engine 116). The dynamic data reduction management engine 118 applies mathematical aggregation of the page rewrite metrics to generate a storage volume rewrite metric for the given storage volume. Based on the storage volume rewrite metric of the given storage volume, the dynamic data reduction management engine 118 can decide whether to enable or disable data reduction for the given storage volume.

[0046] The dynamic data reduction management engine 118 may aggregate per-page data rewrite metrics for pages of each of the storage volumes 110 - 1 through 110 -N and may independently determine whether to apply data reduction to each corresponding storage volume based on the respective storage volume rewrite metrics.

[0047] In other examples, rather than providing the per-page data rewrite metric to the dynamic data reduction management engine 118, the rewrite statistics calculation engine 116 may perform a mathematical aggregation of the per-page data rewrite metric for each storage volume. In such an example, in the rewrite statistics 124 from the rewrite statistics calculation engine 116 to the dynamic data reduction management engine 118, a per-storage volume rewrite metric calculated based on the per-page data rewrite metric for the pages of the corresponding storage volume is provided.

[0048] Figure 2 is a flow diagram of a process 200 performed by storage control system 102 according to some examples. Storage control system 102 receives (at 202) an incoming write request that overwrites data in a page of a given storage volume (eg, one of 110-1 through 110-N).

[0049] In response to an incoming write request to rewrite data, the rewrite statistics calculation engine 116 or the dynamic data reduction management engine 118 calculates (in 204) an updated storage volume rewrite metric for a given storage volume. The updated storage volume rewrite metric is based on the data rewrite metrics collected for the pages of the given storage volume. In a simple example, assume that the storage volume rewrite metric is based on the sum of the data rewrite metrics of the pages of the given storage volume. The incoming write request will result in another rewrite of the pages of the given storage volume, which will result in the current value of the storage volume rewrite metric being increased, for example, by 1, to produce an updated storage volume rewrite metric.

[0050] Each dynamic data reduction management engine 118 determines (at 206) whether the updated storage volume overwrite metric exceeds a specified threshold. The specified threshold may be a static threshold configured (e.g., using a configuration parameter) in the storage control system 102. In other examples, the storage control system 102 may dynamically change the specified threshold.

[0051] If the updated storage volume rewrite metric does not exceed the specified threshold (the "No" branch of 206), the dynamic data reduction management engine 118 determines (at 208) whether data reduction is active for the given storage volume. For example, the dynamic data reduction management engine 118 may maintain a data reduction tracking structure 134 ( Figure 1 ), the data reduction tracking structure tracks whether data reduction is active for each storage volume. For example, the data reduction tracking structure 134 may be in the form of a bitmap or other data structure, and may include a data reduction tracking indicator for the corresponding storage volume. The data reduction tracking indicator, if set to a first value (e.g., 0), indicates that data reduction is disabled for the corresponding storage volume, and the data reduction tracking indicator, if set to a different second value (e.g., 1), indicates that data reduction is enabled for the corresponding storage volume. For example, the data reduction tracking structure 134 may be stored in the memory 132.

[0052] In other examples, the dynamic data reduction management engine 118 may store (eg, in the memory 132 ) a data reduction policy for each storage volume.

[0053] If the dynamic data reduction management engine 118 determines (at 208) that data reduction is not active for the given storage volume (e.g., the corresponding data reduction tracking indicator for the given storage volume in the data reduction tracking structure 134 has a first value, e.g., 0), the dynamic data reduction management engine 118 activates (at 210) data reduction for the given storage volume. Activation may include sending a dynamic control indication 122 ( ) from the dynamic data reduction management engine 118 to the data reduction logic 120 in the storage controller 114. Figure 1 ), which indicates to the data reduction logic 120 that data reduction is to be enabled for the given storage volume. Activation may also include setting a corresponding data reduction tracking indicator of the given storage volume in the data reduction tracking structure 134 to a second value (eg, 1).

[0054] If the dynamic data reduction management engine 118 determines (at 208) that data reduction is already active for the given storage volume (e.g., the corresponding data reduction tracking indicator for the given storage volume in the data reduction tracking structure 134 has a second value, e.g., 1), the dynamic data reduction management engine 118 maintains (at 212) the active state of data reduction for the given storage volume. In this case, the dynamic data reduction management engine 118 does not need to send the dynamic control indication 122 to the data reduction logic 120 in the storage controller 114 because data reduction is already enabled.

[0055] If the dynamic data reduction management engine 118 determines (at 206) that the storage volume overwrite metric exceeds a specified threshold (the "yes" branch of 206), the dynamic data reduction management engine determines (at 214) whether data reduction is active for the given storage volume. If data reduction for the given storage volume is active, the dynamic data reduction management engine 118 deactivates (at 218) data reduction for the given storage volume. Deactivation may include sending a dynamic control indication 122 ( Figure 1 ), the dynamic control indication indicates to the data reduction logic 120 that data reduction is to be disabled for the given storage volume. The deactivation may also include resetting the corresponding data reduction tracking indicator of the given storage volume in the data reduction tracking structure 134 to a first value (eg, 0).

[0056] On the other hand, if the dynamic data reduction management engine 118 determines (at 214) that data reduction is not active for the given storage volume, the dynamic data reduction management engine 118 maintains (at 216) the inactive state of data reduction for the given storage volume. In this case, the dynamic data reduction management engine 118 does not have to send the dynamic control indication 122 to the data reduction logic 120 in the storage controller 114 because data reduction has been disabled.

[0057] The data reduction logic 120 of the storage controller 114 may process (at 220 ) the incoming write request using the active or inactive state of the data reduction set by the dynamic data reduction management engine 118 .

[0058] Figure 2An example is illustrated in which a determination is performed on each incoming write request to rewrite data whether to enable or disable data reduction. In other examples, rather than performing this determination on each incoming write request, a determination may be performed on each P (P>1) write requests to rewrite data whether to enable or disable data reduction. In other words, once the dynamic data reduction management engine 118 enables or disables data reduction for a given storage volume, the enabled or disabled data reduction is applied to the next P write requests to rewrite data to the given storage volume, and then a dynamic determination of whether to enable or disable data reduction is performed again.

[0059] exist Figure 2 , tasks 208, 210, and 212 enable data reduction for a given storage volume in response to an updated storage volume overwrite metric not exceeding a specified threshold, and tasks 214, 216, and 218 disable data reduction for a given storage volume in response to an updated storage volume overwrite metric exceeding a specified threshold.

[0060] In other examples, tasks 208, 210, and 212 enable data reduction for a given storage volume in response to the updated storage volume rewrite metric not exceeding a first threshold, and tasks 214, 216, and 218 disable data reduction for the given storage volume in response to the updated storage volume rewrite metric exceeding a second threshold that is greater than the first threshold. This provides hysteresis to avoid a ping-pong effect of rapidly enabling and disabling data reduction for a storage volume for consecutive write requests. In such an example, if the updated storage volume rewrite metric is between the first threshold and the second threshold, the data reduction state (enabled or disabled) of the given storage volume is not changed.

[0061] By disabling data reduction for a data volume when a relatively large number of data rewrites to the data volume is observed, more efficient consumption of resources (such as of the storage control system 102) may be achieved. When there are relatively large numbers of data rewrites, performing data reduction may be inefficient. If there are a large number of data rewrites, data reduction work performed for the pages that are being rewritten will be wasted because data reduction will have to be performed again on the newly written data that overwrites the previous data.

[0062] Figure 3 is a block diagram of a non-transitory machine-readable or computer-readable storage medium 300 having stored thereon machine-readable instructions that, when executed, cause a system (e.g., Figure 1 The storage control system 102) performs various tasks.

[0063] The machine-readable instructions include data rewrite metric calculation instructions 302 to calculate a data rewrite metric for a data segment stored in a storage structure, wherein the data rewrite metric indicates an amount of data rewrites in the data segment. In some examples, the storage structure includes a physical storage medium, such as Figure 1The storage medium 108. In other examples, the storage structure includes a virtual storage system.

[0064] In some examples, a data segment includes a storage volume (e.g., Figure 1 In other examples, the data segments are different data units, such as pages, etc.

[0065] The machine-readable instructions include data rewrite metric comparison instructions 304 to compare the data rewrite metric with a standard. For example, the data rewrite metric comparison instructions 304 may compare the data rewrite metric with a threshold value.

[0066] The machine-readable instructions include data reduction dynamic control instructions 306 to disable data reduction for the data segment in response to determining that the data rewrite metric has a first relationship relative to the criterion (eg, the metric is greater than a threshold).

[0067] In some examples, the data rewrite metric is based on the number of data rewrites in the data segment within a specified time window.

[0068] In some examples, the data segment includes a plurality of sub-segments. For example, the data segment may be a storage volume, and the sub-segments may be pages of the storage volume. The machine-readable instructions may obtain a data rewrite metric for each individual sub-segment of the plurality of sub-segments, wherein the calculation of the data rewrite metric is based on the data rewrite metric for each individual sub-segment.

[0069] In some examples, calculation of the data rewrite metric is based on calculating a mathematical aggregation of the data rewrite metrics of individual sub-segments.

[0070] In some examples, in response to determining that the data rewrite metric has a different second relationship relative to the norm, the machine-readable instructions enable data reduction for the data segment.

[0071] In some examples, disabling of data reduction for a data segment includes setting a first policy for the data segment, the first policy specifying that data reduction is not to be applied to data written to the data segment. For example, the first policy may be set by the dynamic data reduction management engine 118 sending a dynamic control indication 122 to the data reduction logic 120 in the storage controller 114 indicating that data reduction is to be enabled for the data segment.

[0072] In some examples, setting a first policy for a data segment includes maintaining the first policy for the data segment if the first policy is already associated with the data segment, or changing from the second policy to the first policy for the data segment if a second policy is associated with the data segment, the second policy specifying that data reduction will be applied to data written to the data segment.

[0073] In some examples, in response to determining that the data rewrite metric has a second, different relationship to the norm, the machine-readable instructions set a second policy for the data segment.

[0074] In some examples, the machine-readable instructions manage whether data reduction is to be applied to incoming write data depending on which of the first policy or the second policy is set for the data segment.

[0075] Figure 4 is a block diagram of a storage system 400 according to some examples. For example, the storage system 400 may include Figure 1 The storage control system 102 may include, as another example, Figure 1 A combination of a storage control system 102 and a storage subsystem 104.

[0076] Storage system 400 includes a hardware processor 402 (or multiple hardware processors). The hardware processor may include a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or another hardware processing circuit.

[0077] The storage system 400 further includes a non-transitory storage medium 404 storing machine-readable instructions executable on the hardware processor 402 to perform various tasks. The machine-readable instructions executable on the hardware processor may refer to instructions executable on a single hardware processor or instructions executable on multiple hardware processors.

[0078] The machine-readable instructions in the storage medium 404 include incoming write request receiving instructions 406 to receive an incoming write request that overwrites data in a data segment stored in a storage structure.

[0079] The machine-readable instructions in the storage medium 404 include updated data rewrite metric calculation instructions 408 to calculate an updated data rewrite metric for the data segment in response to an incoming write request, wherein the updated data rewrite metric indicates an amount of data rewrites in the data segment.

[0080] The machine-readable instructions in the storage medium 404 include updated metric comparison instructions 410 to compare the updated data rewrite metric to a standard.

[0081] The machine-readable instructions in the storage medium 404 include data reduction disabling instructions 412 to disable data reduction for the data segment in response to determining that the updated data rewrite metric has a first relationship with respect to the standard.

[0082] In some examples, in response to determining that the updated data rewrite metric has a different second relationship relative to the norm, the machine-readable instructions enable data reduction for the data segment.

[0083] In some examples, if the updated data rewrite metric exceeds a first threshold, the updated data rewrite metric has a first relationship relative to the standard, and if the updated data rewrite metric does not exceed a second threshold, the updated data rewrite metric has a different second relationship relative to the standard.

[0084] In some examples, the first threshold is the same as the second threshold.

[0085] In some examples, the second threshold is less than the first threshold.

[0086] Figure 5 is a flow chart of process 500 according to some examples. For example, process 500 may be composed of Figure 1 The storage control system 102 executes.

[0087] Process 500 includes calculating (at 502) at a storage system a per-page data rewrite metric for each page of a storage volume. For example, the per-page data rewrite metric may be calculated by Figure 1 The rewritten statistics calculation engine 116 is used to calculate.

[0088] Process 500 includes aggregating (at 504) at the storage system per-page data rewrite metrics to generate a storage volume rewrite metric for the storage volume. For example, the aggregation may be performed by Figure 1 The rewritten statistics calculation engine 116 or the dynamic data reduction management engine 118 is executed.

[0089] Process 500 includes comparing, at the storage system, the storage volume overwrite metric to a standard at 506. For example, the storage volume overwrite metric may be compared to a threshold value.

[0090] Process 500 includes disabling (at 508 ) data reduction at the storage system for the storage volume in response to determining that the storage volume overwrite metric has a first relationship relative to the norm.

[0091] Storage media (e.g. Figure 3 300 or Figure 4404) may include any one or some combination of the following: semiconductor memory devices such as dynamic or static random access memory (DRAM or SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory; magnetic disks, such as fixed disks, floppy disks, and removable disks; another magnetic medium, including tape; optical media, such as compact disks (CDs) or digital video disks (DVDs); or other types of storage devices. Note that the instructions discussed above may be provided on one computer-readable or machine-readable storage medium, or alternatively, may be provided on multiple computer-readable or machine-readable storage media distributed in a large system with possibly multiple nodes. Such one or more computer-readable or machine-readable storage media are considered to be part of an article (or product). An article or product may refer to any manufactured single component or multiple components. One or more storage media may be located in a machine running machine-readable instructions, or at a remote site, from which machine-readable instructions may be downloaded over a network for execution.

[0092] In the foregoing description, many details are set forth to provide an understanding of the subject matter disclosed herein. However, embodiments may be practiced without some of these details. Other embodiments may include modifications and variations of the details discussed above. The appended claims are intended to cover such modifications and variations.

Claims

1. A non-transitory machine-readable storage medium comprising instructions that, when executed, cause a system to: A data rewrite metric is calculated for a data segment stored in a storage structure, where The data rewrite metric indicates an amount of data rewrites in the data segment, wherein the data segment includes a plurality of sub-segments, and calculating the data rewrite metric for the data segment includes: counting the number of data rewrites of each individual sub-segment of the plurality of sub-segments, the counting producing a data rewrite metric for the each individual sub-segment, and calculating a mathematical aggregation of the data rewrite metrics of the individual sub-segments to generate the data rewrite metric of the data segment; comparing the data rewriting metric to a standard; and In response to determining that the data rewrite metric has a first relationship relative to the criterion, data reduction is disabled for the data segment.

2. The non-transitory machine-readable storage medium of claim 1, wherein: The data rewrite metric for the respective individual subsegments is based on a number of data rewrites for the respective individual subsegments within a first time window.

3. The non-transitory machine-readable storage medium of claim 2, wherein: When executed, the instructions cause the system to perform the following operations: For a second time window after the first time window: resetting the data rewrite metrics of the respective individual sub-segments, for the second time window, counting the number of data rewrites of the respective individual subsegments, the count for the second time window generating a data rewrite metric for the respective individual subsegments of the second time window, calculating a mathematical aggregation of the data rewrite metrics for the individual sub-segments of the second time window to generate a data rewrite metric for the data segment in the second time window, and The data rewrite metric in the second time window is compared to the standard.

4. The non-transitory machine-readable storage medium of claim 1, wherein: Calculating the mathematical aggregate includes calculating a sum or an average of the data rewrite metrics of the individual sub-segments to generate the data rewrite metric of the data segment.

5. The non-transitory machine-readable storage medium of claim 1, wherein: The data segment comprises a storage volume, and the plurality of subsegments comprises a plurality of pages in the storage volume.

6. The non-transitory machine-readable storage medium of claim 1, wherein: When executed, the instructions cause the system to perform the following operations: In response to determining that the data rewrite metric has a second, different relationship relative to the criterion, data reduction is enabled for the data segment.

7. The non-transitory machine-readable storage medium of claim 1, wherein: The disabling of data reduction for the data segment includes setting a first policy for the data segment, the first policy specifying that data reduction is not to be applied to data written to the data segment.

8. The non-transitory machine-readable storage medium of claim 7, wherein: The setting of the first policy for the data segment includes: If the first policy is already associated with the data segment, maintaining the first policy for the data segment, or If a second policy is associated with the data segment, then changing from the second policy to the first policy for the data segment, the second policy specifies that data reduction is to be applied to data written to the data segment.

9. The non-transitory machine-readable storage medium of claim 8, wherein: When executed, the instructions cause the system to perform the following operations: In response to determining that the data rewrite metric has a second, different relationship relative to the criterion, the second policy is set for the data segment.

10. The non-transitory machine-readable storage medium of claim 9, wherein: The system includes a storage system, and the first policy or the second policy is set for the data segment at the storage system.

11. The non-transitory machine-readable storage medium of claim 9, wherein: When executed, the instructions cause the system to perform the following operations: Whether data reduction will be applied to incoming write data is managed according to which of the first policy or the second policy is set for the data segment.

12. The non-transitory machine-readable storage medium of claim 1, wherein: The calculating of the data rewrite metric, the comparing of the data rewrite metric with the criterion, and the disabling of data reduction are performed in response to receiving a request to write data to the data segment.

13. A storage system comprising: processor; as well as a non-transitory storage medium storing instructions executable on the processor to: receiving an incoming write request that overwrites data in a data segment stored in a storage structure; In response to the incoming write request, calculating an updated data rewrite metric for the data segment, wherein the updated data rewrite metric indicates an amount of data rewrites in the data segment, wherein the data segment includes a plurality of subsegments, and calculating the updated data rewrite metric for the data segment includes: counting a number of data rewrites for each individual sub-segment of the plurality of sub-segments, the counting producing a data rewrite metric for the each individual sub-segment; and calculating a mathematical aggregation of the data rewrite metrics of the individual sub-segments to generate the updated data rewrite metric for the data segment; comparing the updated data rewrite metric to a standard; and In response to determining that the updated data rewrite metric has a first relationship relative to the criterion, data reduction is disabled for the data segment.

14. The storage system of claim 13, wherein: The instructions are executable on the processor to perform the following operations: In response to determining that the updated data rewrite metric has a second, different relationship relative to the standard, data reduction is enabled for the data segment.

15. The storage system of claim 14, wherein: If the updated data rewrite metric exceeds a first threshold, the updated data rewrite metric has the first relationship relative to the standard, and if the updated data rewrite metric does not exceed a second threshold, the updated data rewrite metric has a different second relationship relative to the standard.

16. The storage system of claim 15, wherein: The first threshold is the same as the second threshold.

17. The storage system of claim 15, wherein: The second threshold is smaller than the first threshold.

18. The storage system of claim 13, wherein: The data rewrite metric for each individual subsegment is based on the number of data rewrites for each individual subsegment within a first time window, and wherein the instructions are executable on the processor to: For a second time window after the first time window: resetting the data rewrite metrics of the respective individual sub-segments, for the second time window, counting the number of data rewrites of the respective individual subsegments, the count for the second time window generating a data rewrite metric for the respective individual subsegments of the second time window, calculating a mathematical aggregation of the data rewrite metrics for the individual sub-segments of the second time window to generate a data rewrite metric for the data segment in the second time window, and The data rewrite metric in the second time window is compared to the standard.

19. A method comprising: counting, at a storage system, a number of data rewrites of respective individual pages of a plurality of pages that are part of a storage volume, the counting producing a per-page data rewrite metric for the respective individual pages in the storage volume; calculating, at the storage system, a mathematical aggregation of the per-page data rewrite metric to produce a storage volume rewrite metric for the storage volume; comparing, at the storage system, the storage volume overwrite metric with a standard; as well as Based on determining that the storage volume overwrite metric has a first relationship relative to the criterion, data reduction is disabled at the storage system for the storage volume.

20. The method of claim 19, comprising: Based on determining that the storage volume overwrite metric has a second, different relationship relative to the standard, data reduction is enabled at the storage system for the storage volume.