Storage system and memory control method

By dynamically increasing the number of DSVOLs in response to I/O load thresholds, the storage system addresses performance degradation issues in snapshot technology, ensuring stable performance for PVOLs and SVOLs.

JP7835666B2Active Publication Date: 2026-03-25HITACHI VANTARA LTD
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-11-30
Publication Date
2026-03-25

AI Technical Summary

Technical Problem

The existing snapshot technology, particularly the RoW method, leads to increased I/O load on the Data Store Volume (DSVOL) when multiple snapshots (SVOLs) are created for a Primary Volume (PVOL), potentially degrading the performance of both PVOLs and SVOLs.

Method used

The storage system determines the I/O load on a snapshot group and increases the number of DSVOLs if the load exceeds a threshold, distributing the I/O load across multiple DSVOLs to prevent performance degradation.

Benefits of technology

This approach effectively prevents performance degradation of both PVOLs and SVOLs by distributing the I/O load across multiple DSVOLs, even as the number of snapshots increases.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007835666000001
    Figure 0007835666000001
  • Figure 0007835666000002
    Figure 0007835666000002
  • Figure 0007835666000003
    Figure 0007835666000003
Patent Text Reader

Abstract

To avoid deterioration in performance of a PVOL and SVOLs (snapshots) even when the number of SVOLs for the same PVOL increases.SOLUTION: A DSVOL for a snapshot group, which is a group of PVOL and one or more SVOLs for the PVOL, is a data storage region where data to be stored in one VOL of the snapshot group and meta-information of the data are stored. The meta-information includes address mapping between a reference source address which is an address of a position of the data in the snapshot group and a reference destination address which is an address of a position of the data in the DSVOL. A processor of a storage system increases the number of DSVOLs in the snapshot group when an input / output (I / O) load on the snapshot group exceeds a threshold.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to memory control of a storage system.

Background Art

[0002] As one of the functions of a storage system, a snapshot function is known. For example, there is a need for a snapshot function that can take backups frequently and recover quickly from failures.

[0003] Regarding the snapshot function, for example, the technology disclosed in Patent Document 1 is known. Patent Document 1 discloses a technology related to a snapshot function of the RoW (Redirect on Write) method. Specifically, it discloses a technology for achieving both the operation performance of a snapshot and the I / O performance. The RoW method is a method of writing data by appending. Appending means that when writing data to a storage system, instead of overwriting the data stored before writing, the write target data is stored in a new area, and the meta information is rewritten so as to refer to the data stored in the new area.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] Hereinafter, a replicated volume created by the RoW method for a PVOL (Primary Volume) will be referred to as an SVOL (Secondary Volume) for convenience. The SVOL is a snapshot of the PVOL.

[0006] According to the technology disclosed in Patent Document 1, there is a Data Store Volume (DSVOL) which is a data storage area where metadata and the data itself are stored, and PVOLs and SVOLs share the same DSVOL. Therefore, whether I / O (Input / Output) is performed on a PVOL or an SVOL, the I / O is performed on the same DSVOL. As a result, I / O may be concentrated on the DSVOL, potentially degrading the performance of both PVOLs and SVOLs. If the number of SVOLs (snapshots) for the same PVOL increases, the likelihood of performance degradation of both PVOLs and SVOLs increases. [Means for solving the problem]

[0007] The storage system determines whether the I / O (input / output) load on a snapshot group, which is a group consisting of a PVOL and one or more SVOLs related to that PVOL, exceeds a threshold. If this determination is true, the storage system increases the number of DSVOLs for that snapshot group. [Effects of the Invention]

[0008] According to the present invention, it is expected that performance degradation of both PVOL and SVOL can be avoided even if the number of SVOLs (snapshots) increases for the same PVOL. Other issues, configurations, and effects not mentioned above will be clarified by the following description of the embodiments. [Brief explanation of the drawing]

[0009] [Figure 1] An explanatory diagram illustrating the overview of the storage system according to the embodiment. [Figure 2] A diagram illustrating an example of a storage system configuration. [Figure 3] An explanatory diagram of an example memory area configuration. [Figure 4] Diagram illustrating the structure of the VOL management table. [Figure 5] A diagram illustrating the configuration of the performance management table. [Figure 6]A diagram illustrating the configuration of the mapping management table. [Figure 7] A diagram illustrating the structure of the logic-object transformation table. [Figure 8] A diagram illustrating the structure of the available search table. [Figure 9] A diagram illustrating the structure of the allocation management table. [Figure 10] A diagram illustrating the configuration of the pool allocation management table. [Figure 11] A diagram illustrating the configuration of the drive assignment management table. [Figure 12] An explanatory diagram of an example of a memory hierarchy. [Figure 13] A flowchart illustrating the lead processing flow. [Figure 14] A flowchart illustrating the light processing flow. [Figure 15] A flowchart showing the destaging process. [Figure 16] A flowchart illustrating the DSVOL extension process. [Figure 17] A diagram illustrating the overview of a modified storage system. [Modes for carrying out the invention]

[0010] In the following explanation, "interface device" may refer to one or more interface devices. These one or more interface devices may be at least one of the following: • One or more I / O (Input / Output) interface devices. An I / O (Input / Output) interface device is an interface device to at least one of the following: an I / O device and a remote display computer. The I / O interface device to the display computer may be a communication interface device. The at least one I / O device may be either a user interface device, such as an input device like a keyboard and a pointing device, or an output device like a display device. · One or more communication interface devices. The one or more communication interface devices may be one or more homogeneous communication interface devices (e.g., one or more network interface cards (NICs)), or may be two or more heterogeneous communication interface devices (e.g., a NIC and a host bus adapter (HBA)).

[0011] Also, in the following description, "memory" is one or more memory devices, which is an example of one or more storage devices, and typically may be a main memory device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.

[0012] Also, in the following description, "persistent storage device" may be one or more persistent storage devices, which is an example of one or more storage devices. The persistent storage device is typically a non-volatile storage device (e.g., an auxiliary storage device), and specifically, for example, may be a hard disk drive (HDD), a solid state drive (SSD), a non-volatile memory express (NVME) drive, or a storage class memory (SCM).

[0013] Also, in the following description, "storage device" may be at least the memory of the memory and the persistent storage device.

[0014] Furthermore, in the following explanation, "processor" may refer to one or more processor devices. At least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core. At least one processor device may be a broad-sense processor device such as a circuit that is a collection of gate arrays according to a hardware description language that performs some or all of the processing (e.g., FPGA (Field-Programmable Gate Array), CPLD (Complex Programmable Logic Device), or ASIC (Application Specific Integrated Circuit)).

[0015] Furthermore, in the following explanation, the term "xxx table" may be used to describe information from which an output is obtained for a given input. This information can be data of any structure (for example, structured or unstructured data), or it can be a neural network that generates an output for a given input, or a learning model such as a genetic algorithm or random forest. Therefore, "xxx table" can be referred to as "xxx information." Also, in the following explanation, the structure of each table is just an example; one table may be divided into two or more tables, or all or part of two or more tables may be a single table.

[0016] Furthermore, in the following explanation, the subject of the process may be "program," but since a program is executed by a processor and performs defined processes using memory and / or interface devices as appropriate, the subject of the process may also be the processor (or the device or system having that processor). A program may be installed from a program source into a device such as a computer. The program source may be, for example, a program distribution server or a recording medium readable by a computer (e.g., a non-temporary recording medium). Also, in the following explanation, two or more programs may be implemented as a single program, or one program may be implemented as two or more programs.

[0017] Furthermore, in the following explanation, "VOL" is an abbreviation for logical volume and may refer to a logical storage area. A VOL may be a physical VOL (RVOL) or a virtual VOL (VVOL). An "RVOL" may be a VOL based on the physical storage resources (e.g., one or more RAID groups) of the storage system that provides the RVOL. A "VVOL" may be an externally connected VOL (EVOL), a capacity expansion VOL (TPVOL), or a snapshot VOL (SSVOL). An EVOL may be a VOL based on the storage space (e.g., a VOL) ​​of an external storage system and conforming to storage virtualization technology. A TPVOL may be a VOL composed of multiple virtual areas (virtual storage areas) and conforming to capacity virtualization technology (typically Thin Provisioning). An SSVOL may be a VOL provided as a snapshot of the original VOL. An SSVOL may also be an RVOL. Typically, an SSVOL is positioned as a secondary VOL with the original VOL as the primary VOL (PVOL). A "pool" is a logical storage area (e.g., a collection of multiple pool VOLs) and may be provided for each purpose. For example, there may be at least one of the following pools: a TP pool and a snapshot pool. A TP pool may be a storage area composed of multiple physical areas (physical storage areas). If the storage system does not have a physical area allocated to the virtual area (the virtual area of ​​the TPVOL) to which the address specified by the write request received from the host system belongs, it may allocate a physical area from the TP pool to that virtual area (the write destination virtual area) (even if another physical area has already been allocated to the write destination virtual area, a new physical area may be allocated to the write destination virtual area). The storage system may write the data to be written associated with the write request to the allocated physical area. A snapshot pool may be a storage area where data evacuated from a PVOL is stored. A single pool may be used as both a TP pool and a snapshot pool. A "pool VOL" may be a VOL that is a component of the pool. A pool VOL may be an RVOL or an EVOL.

[0018] Furthermore, the "storage system" may be a system equipped with a controller that performs I / O of data to multiple persistent storage devices (or a device having multiple persistent storage devices), or it may be a system that includes one or more physical computers. In the latter system, for example, one or more physical computers may be configured as an SDx (Software-Defined anything) by having each of them run predetermined software. As an SDx, for example, an SDS (Software-Defined Storage) or an SDDC (Software-Defined Data Center) can be adopted.

[0019] Furthermore, in the following explanation, an ID is used as an example of element identification information, but any information that can identify an element, such as a name, is acceptable as identification information.

[0020] Furthermore, in the following explanation, when describing similar elements without distinction, a common reference code will be used, and when describing similar elements with distinction, a reference code will be used. For example, when multiple storage controllers are not distinguished, they will be written as "storage controller 22," and when each storage controller is distinguished, they will be written as "storage controller 22-1," "storage controller 22-2," and so on.

[0021] Embodiments of the present invention will be described below with reference to the drawings. [Embodiment 1]

[0022] Figure 1 shows an overview of the storage system according to Embodiment 1.

[0023] The storage system 11 has a processor 24 that creates SVOL1000S, which is a snapshot of PVOL1000P. The processor 24 creates SVOL1000S of PVOL1000P using the Row of Work (RoW) method.

[0024] For a snapshot group that is a group of PVOL1000P and one or more SVOL1000S for PVOL1000P, DSVOL1000D is a data storage area where data stored in one of the VOLs of the snapshot group and metadata for that data are stored. This metadata includes address mapping between the source address, which is the address of the data's location in the snapshot group, and the destination address, which is the address of the data's location in the DSVOL.

[0025] In a write operation, which is the processing of a write request to update data to one of the VOLs in the snapshot group, the processor 24 performs I / O to update the metadata of the data to DSVOL1000D, which stores the metadata.

[0026] The processor 24 determines whether the I / O (Input / Output) load on the snapshot group exceeds a threshold. If this determination is true (if the load is determined to have exceeded the threshold), the processor 24 increases the number of DSVOL1000D for the snapshot group. This is expected to distribute the I / O load on the snapshot group across multiple DSVOL1000D, including the increased number of DSVOL1000D. Therefore, even if the number of SVOL1000S for PVOL1000D increases, it is expected that a performance degradation of each VOL1000 in the snapshot group can be avoided. In this embodiment, increasing the number of DSVOL1000D for a snapshot group is referred to as "DSVOL expansion". An example of DSVOL expansion is as follows.

[0027] Assume that data A is stored in PVOL1000P. Assume that for the snapshot group including PVOL1000P, DSVOL1000D is only DSVOL1000D1. Therefore, data A is stored in DSVOL1000D1 and also in pool 1003. In the metadata of data A, the source address is the address of its location in PVOL1000P (the location of data A), and the destination address is the address of its location in DSVOL1000D1 (the location of data A). The storage system 11 also manages the mapping between the destination address (the address of its location in DSVOL1000D1 (the location of data A)) and its location in pool 1003 (the location of data A).

[0028] Suppose SVOL1000S is created as a snapshot of PVOL1000P in this state. Then, the I / O load on PVOL1000P and SVOL1000S increases, and as a result, the I / O load exceeds the threshold. For this reason, processor 24 adds two more DSVOL1000D for the snapshot group, and as a result, the number of DSVOL1000D for the snapshot group becomes DSVOL1000D1 to 1000D3.

[0029] The processor 24 equalizes the amount of data stored in multiple DSVOL1000D for the snapshot group. As a result, the data and metadata for which the snapshot group is stored are distributed across multiple DSVOL1000D, and the I / O load on the snapshot group is distributed across multiple DSVOL1000D, thereby preventing performance degradation of each VOL1000 in the snapshot group.

[0030] Leveling may be achieved, for example, as follows: When processing a write request for any VOL1000 in a snapshot group, the processor 24 selects a DSVOL1000D to store the data to be written, which is the data associated with the write request, so that the amount of data stored in multiple DSVOL1000Ds is leveled, and stores the data to be written in the selected DSVOL1000D. This ensures that the data is distributed across multiple DSVOL1000Ds each time a write request for VOL1000P or 1000S is processed. For example, when the processor 24 processes a write request specifying PVOL1000P for new data B, the processor 24 selects DSVOL1000D2 as the storage location for the new data B and stores the new data B in DSVOL1000D2. Subsequently, for example, when processor 24 processes a write request specifying SVOL1000S for new data C, processor 24 selects DSVOL1000D3 as the storage location for the new data C to be written and stores the new data C to be written in DSVOL1000D3. As a result, data A, B, and C are distributed across multiple DSVOL1000D1 to 1000D3. Note that for PVOL1000P and SVOL1000S, "new data" can be any data that has not yet been designated as a write target for the VOL1000, and "updated data" can be any updated data of data that has already been designated as a write target and written to the VOL1000.

[0031] Leveling may be implemented, for example, as follows, instead of or in addition to the method described above. That is, leveling includes the movement of data between DSVOL1000D, and the processor 24 performs leveling, including the movement of data between DSVOL1000D, asynchronously with the processing of I / O requests (write requests or read requests) to any of the VOLs in the snapshot group. This is expected to enable leveling without degrading the processing performance of I / O requests for the purpose of leveling.

[0032] This embodiment will now be described in detail.

[0033] Figure 2 shows the configuration of the storage system 11.

[0034] The storage system 11 includes one or more storage controllers 22 and various drives 29 connected to one or more storage controllers 22.

[0035] The storage controller 22 includes an FE_I / F (front-end interface device) 23 that communicates with the host computer 30 via a network 31 (e.g., the Internet or a WAN (Wide Area Network)), a storage I / F (storage interface device) 28 for communication between storage systems, a processor 24 that controls the entire storage system 11, a memory 25 that stores programs and information used by the processor 24, a BE_I / F (back-end interface device) 27 that communicates with the drive 29, and an internal network 26 connecting them. The FE_I / F 23, BE_I / F 27, and storage I / F 28 are examples of interface devices. The drive 29 is a device having a non-volatile data storage medium and is an example of a persistent storage device.

[0036] The memory 25 includes a program area 201 for managing programs, a buffer area 202 which is a temporary storage area for data transfer and copying, a table management area 203 for storing various tables, and a cache area 204 for temporarily storing data to be written from the host computer 30 (data written in response to a write request) and data to be read from the drive 29 (data read in response to a read request).

[0037] The storage controller 22 receives an I / O request with VOL1000 specified from the host computer 30 and performs data I / O according to the I / O request. The host computer 30 is an example of a source of an I / O request. The source of an I / O request may be an element other than the host computer 30, for example, an application program running inside or outside the storage system 11.

[0038] In this embodiment, DSVOL1000D is a VOL based on memory 25 (e.g., cache area 204), but it may be replaced by other types of VOLs, such as an externally connected VOL (EVOL).

[0039] Figure 3 shows the configuration of the memory area.

[0040] The cache area 204 on memory 25 has a data storage area 213 for temporarily storing data to be written or read.

[0041] The table management area 203 stores the VOL management table 205 which holds information about VOL1000, the performance management table 206 which holds information about the I / O performance of the snapshot group, the mapping management table 207 which holds information representing the correspondence between logical addresses in the snapshot group and logical addresses in DSVOL1000D, the logic-to-physical address conversion table 208 which manages physical addresses to logical addresses, the free space search table 209 which holds information about the free space in DSVOL100D, the allocation management table 210 which holds information about the allocation of logical addresses in DSVOL100D, the pool allocation management table 211 which holds information about the pool, and the drive allocation management table 212 which holds information about drive allocation.

[0042] Figure 4 shows the structure of the VOL management table 205. In the following explanation, to avoid redundancy, VOL1000, whose VOL ID is "n", may be referred to as "VOLn". Similarly, a snapshot group whose snapshot group ID is "m" may be referred to as "snapshot group m".

[0043] The VOL management table 205 has an entry for every 1000 VOLs. The entry contains information such as VOL ID 41, VOL attribute 42, VOL capacity 43, physical address range 44, snapshot group ID 45, root VOL ID 46, generation # 47, pool ID 48, and DSVOL ID 49.

[0044] VOL ID 41 represents the ID of VOL1000. VOL attribute 42 represents the attributes of VOL1000. VOL capacity 43 represents the capacity of VOL1000. Physical address range 44 is valid information for DSVOL1000D and represents the range of physical addresses corresponding to DSVOL1000D (the address range of the area allocated to DSVOL1000D within pool 1003). Snapshot group ID 45 is valid information for PVOL1000P or SVOL1000S and represents the ID of the snapshot group to which PVOL1000P or SVOL1000S belongs.

[0045] The root VOL ID 46 represents the ID of the root VOL of VOL1000. "Root VOL" means the root VOL in a set of VOLs. Specifically, for PVOL1000P and SVOL1000S, the root VOL is PVOL1000P in the snapshot group that includes VOL1000. For DSVOL1000D, the root VOL is PVOL1000P in the snapshot group to which DSVOL1000D is assigned (connected).

[0046] Generation #47 represents the generation number of VOL1000 (excluding DSVOL1000D). The older the generation number, the older the generation of VOL1000. For example, in snapshot group 0, SVOL1 is the oldest generation, and SVOL2 is the second oldest. If SVOL1000S is created for PVOL1, the generation #47 of the newly created SVOL1000S will be "0x0003", and the generation #47 of PVOL1 will be incremented to "0x0004".

[0047] Pool ID 48 represents the ID of pool 1003 assigned to VOL1000. As shown in the example in Figure 4, there are two or more pools 1003 in the storage system 11. There may also be only one pool 1003.

[0048] DSVOL ID49 represents the ID of one or more DSVOL1000D assigned to VOL1000. As shown in Figure 4, for PVOL1000P and SVOL1000S, DSVOL1000D is assigned to the snapshot group. Also, in the example shown in Figure 4, only DSVOL8 is assigned to snapshot group 1, but multiple DSVOL1000D (DSVOL9, 10, ..., k) are assigned to snapshot group 2.

[0049] Figure 5 shows the configuration of the performance management table 206.

[0050] The performance management table 206 has an entry for each snapshot group. The entry contains information such as snapshot group ID 51, inflow by VOL 52, total inflow 53, expected inflow 54, and number of DSVOLs 55.

[0051] Snapshot group ID 51 represents the ID of the snapshot group. Volume-specific inflow 52 represents the inflow volume for each volume 1000 in the snapshot group. Note that "inflow volume" is an example of I / O load, and is the amount of data written per unit time. As an I / O load, in place of or in addition to inflow volume, other types of I / O load may be used, such as outflow volume (amount of data read per unit time), write frequency (number of write requests per unit time), and read frequency (number of read requests per unit time), with at least write frequency being used.

[0052] The total inflow of 53 represents the sum of the inflows from all VOL1000 in the snapshot group.

[0053] The expected inflow of 54 is an example of an I / O load threshold, and is the threshold for the total inflow of 53. The number of DSVOLs, 55, represents the number of DSVOLs assigned to the snapshot group. The expected inflow of 54 is determined based on the number of DSVOLs, 55, for example, the expected inflow of 54 is equal to or lower than the product of the performance (inflow) of the DSVOLs (55) and the number of DSVOLs.

[0054] Figure 6 shows the configuration of the mapping management table 207.

[0055] The mapping management table 207 has an entry for each address mapping. An address mapping is a mapping between the logical address of a location in a snapshot group and the logical address of a location in DSVOL1000D. The entry contains information such as the source VOL ID 61, source address 62, destination VOL ID 63, destination address 64, and generation # 65. The metadata of the data stored in DSVOL1000D includes information representing the address mapping of that data (information contained in the entry in the mapping management table 207).

[0056] The source VOL ID 61 represents the ID of PVOL1000P or SVOL1000S that has a position in the snapshot group. The source address 62 represents the logical address of the position in PVOL1000P or SVOL1000S identified from the source VOL ID 61. The set of source VOL ID 61 and source address 62 represents the logical address of the position in the snapshot group.

[0057] The referenced VOL ID 63 represents the ID of DSVOL1000D. The referenced address 64 represents the logical address of the location in DSVOL1000D identified from the referenced VOL ID 63. The set of referenced VOL ID 63 and referenced address 64 represents the logical address of the location in DSVOL1000D.

[0058] Generation #65 represents the generation number of the PVOL1000P or SVOL1000S identified from the reference VOL ID61. Generation #65 contains the same information as generation #47, which corresponds to the PVOL1000P or SVOL1000S.

[0059] Figure 7 shows the structure of the logic transformation table 208.

[0060] The logic-to-physical conversion table 208 has an entry for each piece of data stored in DSVOL1000D. Each entry contains information such as VOL ID 71, logical address 72, pool ID 73, and physical address 74.

[0061] VOL ID71 represents the ID of DSVOL1000D where the data is stored. Logical address72 represents the logical address of the data's location in DSVOL1000D. Pool ID73 represents the ID of pool 1003 where the data is stored. Physical address74 represents the physical address of the data's location in pool 1003.

[0062] Figure 8 shows the structure of the available search table 209.

[0063] The free space search table 209 has an entry for each DSVOL1000D. Each entry contains information such as VOL ID 81, free space 82, and free space search pointer 83.

[0064] VOL ID81 represents the ID of DSVOL1000D. Free space82 represents the free space in DSVOL1000D. Free space search pointer83 represents the logical address of the beginning of the area corresponding to the free space.

[0065] In this embodiment, the free space search pointer 83 initially points to the beginning of the data area of ​​DSVOL1000D (for example, an area other than the metadata area where metadata is stored), and is updated each time an area is allocated and data is stored in that area. Also, when updated data is stored in DSVOL1000D, the data before the update becomes unnecessary. Garbage collection of DSVOL1000D deletes the unnecessary data, creating free space, and the latest data (new data or updated data) is moved to the free space, and the metadata of that data (entry in the mapping management table 207) may be updated. In other words, as a result, the free capacity of DSVOL1000D increases, and the area with that free capacity may become a contiguous free area.

[0066] Figure 9 shows the configuration of the allocation management table 210.

[0067] The allocation management table 210 has an entry for each area in DSVOL1000D. Each entry contains information such as VOL ID 91, logical address 92, and allocation status 93.

[0068] VOL ID91 represents the ID of DSVOL1000D. Logical address92 represents the logical address of the area in DSVOL1000D. Allocation status93 indicates whether the area is allocated or not. Areas corresponding to "Not allocated" are free areas.

[0069] Figure 10 shows the configuration of the pool allocation management table 211.

[0070] The pool allocation management table 211 has an entry for each pool 1003. The entry contains information such as pool ID 101, pool capacity 102, pool free capacity 103, and RAID group ID 104.

[0071] Pool ID 101 represents the ID of pool 1003. Pool Capacity 102 represents the capacity of pool 1003. Pool Free Capacity 103 represents the free capacity of pool 1003. At least a portion of the free capacity can be allocated as the capacity of DSVOL1000D. RAID Group ID 104 represents the ID of each of the one or more RAID groups on which pool 1003 is based.

[0072] Figure 11 shows the configuration of the drive assignment management table 212.

[0073] The drive allocation management table 212 has an entry for each RAID group. The entry contains information such as RAID group ID 111, RAID level 112, drive ID 113, drive type 114, capacity 115, and used capacity 116.

[0074] RAID group ID 111 represents the ID of the RAID group. RAID level 112 represents the RAID level of the RAID group. Drive ID 113 represents the ID of one or more drives that make up the RAID group. Drive type 114 represents the type of drive that makes up the RAID group (e.g., HDD or SSD). Capacity 115 represents the capacity of the RAID group. Used capacity 116 represents the amount of the RAID group's capacity that is currently being used.

[0075] Figure 12 shows an example of a memory hierarchy.

[0076] PVOL1000P and SVOL1000S are provided to the host computer 30. In a write request from the host computer 30, either PVOL1000P or SVOL1000S may be specified. The data to be written associated with the write request is stored in DSVOL1000D and then stored in pool 1003.

[0077] In the example in Figure 8, pool 1003 is a logical storage space to which address space 1005 of RAID group 1004 is allocated. The allocation from pool 1003 to address space 1005 is managed based on the drive allocation management table 212. The RAID level of RAID group 1004 is RAID 5 (3D+1P). Data A and B, which are written to PVOL1000P, and data C, which is written to SVOL1000S, are written to three different drives, and parity P based on data A-C is written to a drive different from the three drives to which data A-C are written.

[0078] DSVOL1000D may store compressed data in place of or in addition to the data (e.g., data A). Furthermore, data stored in multiple DSVOL1000Ds may be deduplified, and the addresses of multiple locations in the multiple DSVOL1000Ds may be mapped to the addresses of the data stored in pool 1003.

[0079] The following describes an example of the processing performed in this embodiment. The processing described below is performed by the processor 24 executing a computer program stored in the program area 201. In the following description, the address of the location (area) in PVOL1000P or SVOL1000S is referred to as the "VOL address," and the address of the location (area) in DSVOL1000D is referred to as the "DSVOL address."

[0080] Figure 13 shows the flow of the read process.

[0081] The read process begins when the storage system 11 receives a read request from the host computer 30 via the network 31. The read request specifies, for example, the VOL ID (ID of PVOL1000P or SVOL1000S), the VOL address (logical address), and the data size.

[0082] Processor 24 secures an exclusive lock on the VOL address specified in the read request (S1301). If an exclusive lock on the VOL address has already been secured for another I / O request, processor 24 may wait for a certain period of time before performing S1301. Furthermore, securing this exclusive lock may also include securing an exclusive lock on metadata representing an address mapping that includes the specified VOL address as the source address.

[0083] The processor 24 determines whether the data to be read for the VOL address for which exclusive access has been secured exists in the cache area 204 (S1302). If the result of the determination in S1302 is true (S1302: Yes), the process proceeds to S1307.

[0084] If the result of the determination in S1302 is false (S1302: No), the processor 24 refers to the mapping management table 207 (S1303), identifies the referenced VOL ID 63 and referenced address 64 corresponding to the specified VOL address, and secures an exclusive lock on the referenced VOL ID 63 and referenced address 64 (i.e., the DSVOL address) (S1304). This securing of an exclusive lock may also include securing an exclusive lock on metadata representing an address mapping that includes the specified VOL address as the source address. The processor 24 determines whether the data to be read exists in the cache area 204 for the DSVOL address for which an exclusive lock has been secured (S1305). If the result of the determination in S1305 is true (S1305: Yes), the process proceeds to S1307.

[0085] If the result of the judgment in S1305 is false (S1305: No), the processor 24 refers to the logic-object transformation table 208 (S1306).

[0086] After S1302:Yes, S1305:Yes, or S1306, the processor 24 reads the data to be read and transfers the data to the host computer 30 (S1307). In S1307 after S1302:Yes or S1305:Yes, the data to be read is read from the cache area 204. In S1307 after S1306, the data to be read is read from the area of ​​physical addresses corresponding to the DSVOL address for which exclusive access has been secured (the area in pool 1003).

[0087] After S1307, processor 24 releases the exclusive lock on the VOL address (the exclusive lock secured in S1301) (S1308). If S1308 is processed via S1304, the exclusive locks to be released are the exclusive lock on the DSVOL address in addition to the exclusive lock on the VOL address (the exclusive lock secured in S1304).

[0088] Figure 14 shows the flow of the light processing.

[0089] The write process begins when the storage system 11 receives a write request from the host computer 30. The write request specifies, for example, the VOL ID (the ID of PVOL1000P or SVOL1000S), the VOL address (logical address), and the data size.

[0090] Processor 24 secures an exclusive lock on the VOL address specified in the write request (S1401). If an exclusive lock on the VOL address has already been secured for another I / O request, processor 24 may wait for a certain period of time before performing S1401. Furthermore, securing this exclusive lock may also include securing an exclusive lock on metadata representing an address mapping that includes the specified VOL address as the source address.

[0091] When processor 24 has secured an exclusive lock on the VOL address, it responds to host computer 30 with "Ready" to indicate that it is ready to perform the write operation (S1402). Upon receiving "Ready" from host computer 30, processor 24 receives the data to be written and transfers (stores) the data to be written to cache area 204 (S1403). Subsequently, processor 24 releases the exclusive lock on the VOL address (the exclusive lock secured in S1401) (S1404).

[0092] The processor 24 determines whether destaging is necessary (S1405). Here, "destaging" means the transition of the data storage location on the cache area 204 from the snapshot group (PVOL1000P and / or SVOL1000S) to DSVOL1000D. Note that "destaging" may also include storing dirty data (data not stored on drive 29) for DSVOL1000D from the cache area 204 to drive 29. Furthermore, when selecting dirty data in the cache area 204 to be stored on drive 29, priority may be given to data that has not been subjected to I / O for a certain period of time.

[0093] If the result of the S1405 determination is true (S1405:Yes), the processor 24 performs destaging (S1406). If the result of the S1405 determination is false (S1405:No), the processor 24 issues an asynchronous destaging request (a request to perform destaging asynchronously with I / O processing (write processing and read processing)) (S1407).

[0094] After S1406 or S1407, the processor 24 responds to the host computer 30 that the write is complete (S1408).

[0095] An example of the details of S1405 is as follows: In other words, in S1405, the result of the determination of whether or not destaging is necessary is true if at least one of the following (x) and (y) is true. (x) Determining whether the amount of dirty data on cache area 204 is greater than or equal to a predetermined amount. (y) Determining whether the cache hit rate is less than a predetermined cache hit rate and whether the processor utilization rate is equal to or greater than a predetermined processor utilization rate.

[0096] If the result of (x) is true, it is determined that destaging is required. In this case, the amount of dirty data that can be newly stored in cache area 204 increases, and thus an improvement in I / O performance can be expected. Note that "amount of dirty data on cache area 204" may be, for example, the amount of dirty data on cache area 204 that includes the snapshot group containing VOL1000 specified in the write request.

[0097] If the result of (y) is true, it is determined that destaging is required, then an improvement in at least one of the cache hit rate and processor utilization rate can be expected.

[0098] Figure 15 shows the flow of the destaging process.

[0099] Destaging is performed either in S1406 of the write process shown in Figure 14, or in response to an asynchronous destaging request issued in S1407.

[0100] Processor 24 secures an exclusive lock on the VOL address (S1501). The VOL address secured here is one or more VOL addresses corresponding to one or more data not stored in DSVOL1000D among the VOL addresses of each VOL1000 in one or more snapshot groups. For the sake of simplicity, we will use one snapshot group as an example below.

[0101] The processor 24 refers to the performance management table 206 (S1502) and updates the VOL-specific inflow amount 52 and total inflow amount 53 of the snapshot group based on the VOL address for which exclusive access has been secured and the data corresponding to that VOL address (S1503).

[0102] The processor 24 determines whether DSVOL extension is necessary (S1504). If the result of the determination in S1504 is true (S1504: Yes), the processor 24 issues a DSVOL extension processing request (a request to perform DSVOL extension processing) (S1505).

[0103] If the result of S1504 is false (S1504: No), or after S1505, the processor 24 refers to the mapping management table 207 (S1506).

[0104] If the data corresponding to the VOL address for which exclusive access was secured in S1501 is new data (S1507: Yes), the processor 24 allocates new storage space (S1509). In S1509, for example, the processor 24 selects a DSVOL1000D corresponding to the snapshot group from the VOL management table 205, identifies the free space of the selected DSVOL1000D from the free space search table 209, allocates the identified free space to the VOL address, and updates the free capacity 82 and free space search pointer 83 of the DSVOL1000D.

[0105] If the data corresponding to the VOL address for which exclusive access was secured in S1501 is the updated data (S1507: No), the processor 24 determines whether distributed allocation is necessary (S1508). If the result of the determination in S1508 is true (S1508: Yes), the processor 24 performs S1509. In S1509, an empty area to be used as the storage location for the updated data is identified from a DSVOL1000D different from the DSVOL1000D where the pre-update data is stored.

[0106] If the result of S1508 is false (S1508: No), or after S1509, processor 24 secures exclusive access to the DSVOL address (S1510). The DSVOL address for which exclusive access is secured in S1510 is one of the following: • The DSVOL address of the free space identified in S1509. • The DSVOL address of the free space identified based on the free space search table 209 for DSVOL1000D, to which the DSVOL address of the pre-update data belongs.

[0107] After S1510, processor 24 performs a cache transfer (S1511). In S1511, processor 24 transfers the data at the VOL address for which exclusive access was secured in S1501 (data in cache area 204) to the area at the DSVOL address for which exclusive access was secured in S1510. In other words, destaging is performed from VOL1000 to DSVOL1000D in the snapshot group. In S1511, processor 24 stores the data transferred to DSVOL1000D in drive 29 (pool 1003), and as a result, the data may be changed from dirty data to clean data (data already stored in drive 29).

[0108] Furthermore, after S1511, the processor 24 updates the mapping information (S1512). In S1512, the processor 24 updates the referenced VOL ID 63 and referenced address 64 corresponding to the VOL address for which exclusive access was secured in S1501 to information representing the ID of DSVOL1000D having the DSVOL address for which exclusive access was secured in S1510, and the DSVOL address itself. In addition, in S1512, the processor 24 may update the metadata representing the address mapping that includes the VOL address for which exclusive access was secured in S1501 as the source address (metadata in DSVOL1000D) so that the referenced address of the source address becomes the DSVOL address for which exclusive access was secured in S1510.

[0109] After S1511 and S1512, processor 24 releases the exclusive lock on the VOL address (secured in S1501) and the exclusive lock on the DSVOL address (secured in S1510) (S1513). Also, if via S1507:No, processor 24 frees the old storage area (storage area for pre-update data) in DSVOL1000D (S1514). The capacity of the freed old storage area may be immediately treated as free space, or it may be treated as free space after garbage collection.

[0110] An example of the details of S1504 is as follows: The I / O performance (e.g., data storage speed) of the DSVOL1000D assigned to the snapshot group is divided among all VOLs within that snapshot group. Therefore, if the total inflow 53 of the snapshot group is greater than the expected inflow 54 of the snapshot group, the processor 24 determines in S1504 that DSVOL expansion is necessary.

[0111] Furthermore, for snapshot groups, the expected inflow of 54 may be the sum of the I / O performance of all DSVOL1000D assigned to the snapshot group (for example, the product of the I / O performance of a single DSVOL1000D (e.g., expected inflow) and the number of DSVOL1000Ds), or it may be a value smaller than this sum. Therefore, an appropriate determination of whether DSVOL expansion is necessary is expected. Also, for snapshot groups, the expected inflow is provided for each DSVOL assigned to the snapshot group, and the determination of whether DSVOL expansion is necessary may be a first determination for each DSVOL, checking whether the inflow of that DSVOL exceeds the expected inflow of that DSVOL. Alternatively, or in addition to this determination, the determination of whether DSVOL expansion is necessary may be a second determination for each of N or more DSVOLs (where N is a natural number) among all DSVOLs assigned to the snapshot group, checking whether the inflow of that DSVOL (an example of I / O load) exceeds the expected inflow of that DSVOL (an example of expected I / O performance). If either or both of the first and second checks are true, it may be determined that DSVOL expansion is necessary. As a result of such a check, DSVOL expansion is performed, which is expected to avoid both unnecessarily increasing the DSVOL and degrading the I / O performance of PVOL1000P and SVOL1000S.

[0112] Furthermore, because the I / O performance of DSVOLs is divided within a snapshot group, if a large amount of I / O occurs in a particular VOL (resulting in an I / O imbalance), the I / O performance of that VOL will decrease. Therefore, by avoiding an I / O imbalance in a particular VOL through I / O QoS management, it is expected that the I / O performance across VOLs will be homogenized.

[0113] Furthermore, the determination of whether DSVOL expansion is necessary may include a determination of whether the free capacity of DSVOL1000D allocated to the snapshot group is less than a predetermined percentage of the capacity of DSVOL1000. If the result of this determination is true, it may be determined that DSVOL expansion is necessary.

[0114] An example of a detailed explanation of S1508 is as follows: In a snapshot group to which multiple DSVOLs are allocated, if data is concentrated in a particular DSVOL1000D, update writes (writing of updated data) may be concentrated in that particular DSVOL1000D, potentially causing a performance bottleneck. Therefore, in this embodiment, to ensure that data is evenly distributed across the multiple allocated DSVOLs, the processor 24 compares the amount of data stored in each DSVOL1000D allocated to the snapshot group (in other words, the allocated amount, which is the total storage capacity of the logical address area where the allocation status 93 for that DSVOL1000D is "allocated") with the amount of data stored in the other DSVOL1000D allocated to the snapshot group. The processor 24 stores the data to be written (new data and updated data) (and its metadata) in the DSVOL1000D with the smallest amount of data. Such leveling ensures that, for example, if the amount of data stored in DSVOL1000D for X (where X is an integer greater than or equal to 2) allocated to a snapshot group is Y, then the amount of data stored in each DSVOL1000D is Y / X. In other words, leveling determines the amount of data stored in each DSVOL1000D based on, for example, the number of DSVOL1000D allocated to the snapshot group and the total amount of valid data (new data and updated data) stored in all DSVOL1000D allocated to the snapshot group.

[0115] Furthermore, in order to avoid the determination of whether or not distributed allocation is necessary being repeatedly switched, a certain margin may be provided in the amount of data stored in each DSVOL1000D. As an example, the following leveling may be adopted. That is, if the number of DSVOL1000D allocated to the snapshot group is 4, the acceptable bias is ±2%, and the 73GB address range is updated without new writes (writing of new data), the following may be adopted. Before distribution: 100GB, 0GB, 0GB, 0GB Total: 100GB After distribution: 27GB, 25GB, 24GB, 24GB total 100GB

[0116] Data rearrangement (leveling) may be performed asynchronously with respect to the processing of I / O requests (e.g., write requests). For example, the processor 24 may periodically move a fixed amount of data between DSVOL1000D in address order (ascending order) within DSVOL1000D, or it may perform data movement between DSVOL1000D for leveling purposes during periods when the utilization rate of the storage system 11 is low.

[0117] Figure 16 shows the flow of the DSVOL extension process.

[0118] DSVOL extension processing is performed in response to the DSVOL extension processing request issued in S1505.

[0119] The processor 24 refers to the performance management table 206 (S1601) and determines whether the number of DSVOLs 55 corresponding to the snapshot group is less than the target number (S1602). If the result of the determination in S1602 is true (S1602: Yes), the processor 24 creates a new DSVOL1000D for that snapshot group (S1603). In other words, the number of DSVOL1000D increases. The number of newly created DSVOL1000D is greater than or equal to the difference between the original number of DSVOLs and the target number. For example, if the original number of DSVOLs is 1 and the target number is 3, two or more new DSVOL1000D will be created.

[0120] If the result of the S1602 determination is false (S1602: No), the processor 24 updates the performance management table 206 (for example, expected inflow 54 and DSVOL count 55) (S1604). The processor 24 also updates the VOL management table 205 (for example, DSVOL ID 49 for each VOL in the snapshot group) (S1605).

[0121] An example of the details of S1602 is as follows: The "target number" refers to the number of DSVOLs that no longer require expansion in the determination of S1504 in Figure 15. For example, if setting the number of DSVOLs to K (where K is an integer greater than or equal to 2) makes the total inflow of 53 less than or equal to the expected inflow of 54 (in other words, if the total inflow of 53 remains above the expected inflow of 54 when the number of DSVOLs is less than K), then K is the target number. In S1603, the processor 24 determines the number of DSVOL1000D to be newly added based on the difference between the number of DSVOLs 55 and the target number, and creates the determined number of DSVOL1000D. This allows for an appropriate number of DSVOL1000D to be added.

[0122] As shown in the first entry in Figure 5, the total inflow is 53 "210 MB / s", and the expected inflow 54 according to the number of DSVOLs 55 "1" is "150 MB / s". Therefore, the number of DSVOLs that do not need to be expanded in S1504 is 2 (expected inflow of 300 MB / s against an inflow of 210 MB / s). For this reason, one new DSVOL1000D is created. This DSVOL1000D does not yet have any data stored in it. Therefore, in order to distribute the allocation (leveling), S1509 (the DSVOL that will be the source of the newly allocated area) will be concentrated in the newly created DSVOL. Since the expected inflow of one DSVOL1000D is 150 MB / s, it is not possible for one DSVOL1000D to handle writes of 210 MB / s. As a way to avoid this, one can consider storing the data evenly in two DSVOL1000Ds, including the newly created DSVOL1000D. However, this would result in the data not being distributed evenly among the DSVOL1000D units.

[0123] Therefore, the number of newly created DSVOLs is set to be greater than the difference between the current number of DSVOLs and the target number K. For example, the number of newly created DSVOLs may be determined based on the difference between the current number of DSVOLs and the target number K, and the current number of DSVOLs. Specifically, for example, P (the number of newly created DSVOLs) is L times the difference D between C (the current number of DSVOLs) and K (the target number) (the value of L is 1 or greater), and the value of L may be determined based on C. For example, if C=1, K=2, and D=1, then L=4, and therefore P=D*L=1*4=4. Also, for example, if C=4, K=6, and D=2, then L=4 (or 8), and therefore P=D*L=2*4 (or 8)=8 (or 16). The number of DSVOLs to be increased is the number expected to maintain the inflow rate of each DSVOL1000D for the snapshot group below the expected inflow rate of that DSVOL.

[0124] Furthermore, with respect to S1508, the processor 24 may use the pre-extension (existing) DSVOL1000D as the storage location for some of the data. In other words, the processor 24 may use a portion (e.g., x%) of the source of the allocated area (logical address) as the pre-extension DSVOL1000D, and the remaining portion (e.g., (100-x)%) of the source of the allocated area (logical address) as the newly created DSVOL1000D. In other words, after increasing the number of DSVOL1000D for the snapshot group, the processor 24 may control the amount of data stored in the pre-extension DSVOL1000D (DSVOL1000D that existed before increasing the number of DSVOL1000D) and the amount of data stored in the extended DSVOL1000D (the newly added DSVOL1000D) (this control may be a control to maintain the inflow amount to a single DSVOL at or below the expected inflow amount for that single DSVOL). This is expected to achieve both avoiding a decrease in the I / O performance of PVOL1000P and SVOL1000S and saving resources based on DSVOL1000D. Furthermore, the allocation of the allocated amount (capacity of the allocated area) between the pre-expansion DSVOL1000D and the expanded (newly created) DSVOL1000D by the processor 24 may be performed in cases where there is an upper limit on the number of DSVOLs for a snapshot group due to resource constraints based on DSVOL1000D (e.g., the capacity of memory 25) or other reasons. This is expected to avoid a decrease in the I / O performance of PVOL1000P and SVOL1000S within limited resources.

[0125] Although one embodiment has been described above, this is merely an example for the purpose of explaining the present invention, and is not intended to limit the scope of the present invention to this embodiment alone. The present invention can be implemented in various other forms.

[0126] For example, the multiple storage controllers 22 may be multiple storage nodes in a storage system composed of multiple storage nodes (e.g., multiple general-purpose computers).

[0127] Furthermore, as shown in Figure 17, for each of the multiple DSVOL1000Ds, the owner rights (I / O rights) of that DSVOL1000D may be assigned to one of the multiple storage controllers 22. Each storage controller 22 can perform I / O on DSVOL1000Ds for which it has I / O rights, but it does not need to be able to perform I / O on DSVOL1000Ds for which it does not have I / O rights. In other words, the I / O rights of multiple DSVOL1000Ds are distributed among multiple storage controllers 22, and therefore, load balancing of the storage controllers 22 is expected. For example, since the storage controller 22 that has the I / O rights to store in DSVOL1000D2 is storage controller 22-2, storage controller 22-1 transfers data B to storage controller 22-2, and storage controller 22-2 stores data B in DSVOL1000D2. Information indicating which storage controller 22 has I / O rights for which DSVOL may be stored, for example, in a VOL management table 205, and each storage controller 22 may maintain this information. Furthermore, when a new DSVOL1000D is created, the I / O rights for that DSVOL1000D may be determined by one of the storage controllers 22 so that the I / O rights for multiple DSVOL1000Ds are distributed equally among the multiple storage controllers 22. [Explanation of symbols]

[0128] 11: Storage System

Claims

1. A storage system having a processor that creates an SVOL (Secondary Volume), which is a snapshot of a PVOL (Primary Volume), A DSVOL (Data Store Volume) for a snapshot group which is a group of PVOLs and one or more SVOLs for said PVOL is a data storage area in which data to which any VOL (Volume) of the snapshot group is stored and metadata for said data is stored, and the metadata includes an address mapping between a source address, which is the address of the data's location in the snapshot group, and a destination address, which is the address of the data's location in the DSVOL. The processor, in a write operation which is the processing of a write request to update data to one of the VOLs in the snapshot group, performs I / O to update the metadata of the data to the DSVOL that stores the metadata. The aforementioned processor, Determine whether the I / O (Input / Output) load on the snapshot group exceeds a threshold. If the result of the determination is true, increase the number of DSVOLs for the snapshot group. Storage system.

2. The processor equalizes the amount of data stored in multiple DSVOLs for the snapshot group. The storage system according to claim 1.

3. In processing a write request for any of the VOLs in the snapshot group, the processor selects a DSVOL to store the data to be written, which is the data associated with the write request, so that the amount of data stored in the multiple DSVOLs is equalized, and stores the data to be written in the selected DSVOL. The storage system according to claim 2.

4. The equalization of the amount of data stored in the aforementioned multiple DSVOLs includes the movement of data between DSVOLs. The processor performs the leveling asynchronously with the processing of I / O requests for any of the VOLs in the snapshot group. The storage system according to claim 2.

5. After increasing the number of DSVOLs for the snapshot group, the processor controls the amount of data stored in the DSVOLs that existed before the increase in the number of DSVOLs, and the amount of data stored in the newly added DSVOLs. The storage system according to claim 1.

6. If there is an upper limit on the number of DSVOLs for the snapshot group, the processor controls the amount of data stored in the DSVOLs that existed before the number of DSVOLs was increased, and the amount of data stored in the newly added DSVOLs. The storage system according to claim 5.

7. When the I / O load on the snapshot group exceeds the threshold, it means that either or both of the following conditions are met: - The total I / O load for all VOLs in the snapshot group exceeds the I / O load threshold defined for the snapshot group. - For each of N or more DSVOLs (where N is a natural number) among all DSVOLs assigned to the snapshot group, the I / O load of the DSVOL exceeds the expected I / O performance of the DSVOL. The storage system according to claim 1.

8. The I / O load threshold defined for the snapshot group is the product of the I / O performance expected for a single DSVOL and the current number of DSVOLs, which is the number of DSVOLs allocated to the snapshot group, or a value smaller than this product. The storage system according to claim 7.

9. The processor determines the number of DSVOLs to be added based on the difference between the current number of DSVOLs and the target number for the snapshot group. The current number of DSVOLs is the number of DSVOLs assigned to the snapshot group. The target number is the number of DSVOLs when the I / O load on the snapshot group falls below the threshold. The storage system according to claim 1.

10. The number of newly added DSVOLs is a number based on the difference and the current number of DSVOLs, and is greater than the difference. The storage system according to claim 9.

11. The number of newly added DSVOLs is the number expected to maintain that the I / O load of each DSVOL in the snapshot group remains below the expected I / O performance of that DSVOL. The storage system according to claim 10.

12. Equipped with multiple storage controllers, Each of the plurality of storage controllers has the processor, The multiple storage controllers have the I / O rights of multiple DSVOLs for the snapshot group distributed among them. Each of the aforementioned storage controllers is: The storage controller stores data in the DSVOL for which it has I / O rights. If the DSVOL to which the data will be stored does not have I / O rights, the data will be transferred to the storage controller that does have those I / O rights. The storage system according to claim 1.

13. A storage system memory control method for creating an SVOL (Secondary Volume), which is a snapshot of a PVOL (Primary Volume), A DSVOL (Data Store Volume) for a snapshot group which is a group of PVOLs and one or more SVOLs for said PVOL is a data storage area in which data to which any VOL (Volume) of the snapshot group is stored and metadata for said data is stored, and the metadata includes an address mapping between a source address, which is the address of the data's location in the snapshot group, and a destination address, which is the address of the data's location in the DSVOL. The storage system, in a write operation which is the processing of a write request to update data in one of the VOLs in the snapshot group, performs I / O to update the metadata of the said data on the DSVOL that stores the said metadata. The memory control method described above is: Determine whether the I / O (Input / Output) load on the snapshot group exceeds a threshold. If the result of the determination is true, increase the number of DSVOLs for the snapshot group. Memory control method.

Citation Information

Patent Citations

  • Storage device and control method for storage device

    JP2007328734A

  • Storage system and data duplication method in storage system

    JP2022026812A

  • US10,963,485

  • Accelerated volumes

    US10452296B1

  • Storage system and processing method

    WO2015111135A1