Storage system
The storage system optimizes data transfer by selecting methods based on processor loads to maintain performance and RPO, addressing processor load fluctuations in remote copying.
Patent Information
- Application Number
- JP2024128128
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-02
- Publication Date
- 2026-02-16
AI Technical Summary
Existing remote data copying technologies incur high processor load fluctuations due to compression and decompression overhead, leading to reduced copy performance and an inability to maintain a short Recovery Point Objective (RPO).
A storage system that selects transfer methods based on processor load, using compression only when loads are below a threshold, and omits compression when loads are high, thereby maintaining performance and RPO.
This approach suppresses performance decreases and maintains a short RPO by optimizing data transfer based on processor loads, ensuring efficient data copying.
Smart Images

Figure 2026025394000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention generally relates to remote copying of data from a primary storage system to a secondary storage system. [Background technology]
[0002] There are known technologies for remotely copying data from a primary storage system to a secondary storage system. It is preferable to minimize the amount of data transferred between storage systems for remote copying. This is because, for example, it can contribute to reducing the resources that form the basis of the communication bandwidth between storage systems.
[0003] For example, Japanese Patent Application Laid-Open Publication No. 2022-133058 discloses a technique for compressing transfer data and copying it to a remote location. Specifically, in order to increase the compression rate, multiple target data are always compressed together and transferred from the primary storage to the secondary storage. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Publication No. 2022-133058 Summary of the Invention [Problem to be solved by the invention]
[0005] The technology disclosed in JP 2022-133058 A always compresses transfer data before transferring it to a remote location. When transfer data is compressed, compression processing overhead is added to the primary storage, increasing the processor load. Decompression processing overhead is added to the secondary storage, increasing the processor load. The storage processes I / O from the host, and the processor load fluctuates between high and low. When the processor load on the storage is high, compression and decompression processing of the transfer data can reduce copy performance, making it impossible to maintain a short RPO (Recovery Point Objective). [Means for solving the problem]
[0006] The present invention provides a storage system for transmitting copy data to a destination storage system, the storage system including a controller and a storage drive for storing user data, wherein the controller acquires processor load information of the controller and processor load information of the destination storage system, and selects one transfer method from a plurality of transfer methods for transferring the user data to the destination storage system based on the processor load of the controller and the processor load of the destination storage system, the plurality of transfer methods including a first transfer method that performs a compression process on the transfer data, and a second transfer method that omits the compression process on the transfer data or performs a compression process on the transfer data with a lower processor load than the first transfer method, wherein a selection condition for the first transfer method includes each of the processor load of the controller and the processor load of the destination storage system being equal to or less than a threshold, and a selection condition for the second transfer method includes at least one of the processor load of the controller and the processor load of the destination storage system being higher than the threshold. [Effects of the Invention]
[0007] According to one aspect of the present invention, it is possible to suppress a decrease in copy performance and maintain a short RPO. [Brief explanation of the drawings]
[0008] [Figure 1] An example of the overall system configuration is shown below. [Figure 2] 1 shows an example of the configuration of a storage system and a maintenance terminal. [Figure 3] 1 shows an example of an overview of remote copying from a primary storage system to a secondary storage system. [Figure 4] 1 shows an example of the configuration of a memory in a storage system. [Figure 5] An example of the structure of a SEQ# table is shown below. [Figure 6] An example of JNCB configuration is shown below. [Figure 7] 10 shows an example of the configuration of a distance table. [Figure 8] 10 shows an example of the configuration of a required multiplicity table. [Figure 9] 10 shows an example of the configuration of a compression information table. [Figure 10] 10 shows the processing flow of write processing performed by the primary storage system. [Figure 11] The processing flow of JNL transfer processing is shown below. [Figure 12] The processing flow of the JNL lead schedule program is shown below. [Figure 13] 10 shows the processing flow of a restore program. [Figure 14] 10 shows an example of the configuration of a compression algorithm table. [Figure 15] An example of the configuration of a PVOL table is shown below. DETAILED DESCRIPTION OF THE INVENTION
[0009] In the following description, an "interface apparatus" may refer to one or more interface devices, which may be at least one of the following:
[0010] One or more I / O (Input / Output) interface devices. The I / O (Input / Output) interface devices are interface devices to at least one of the I / O devices and a remote display computer. The I / O interface device to the display computer may be a communications interface device. The at least one I / O device may be a user interface device, for example, either an input device such as a keyboard and a pointing device, or an output device such as a display device.
[0011] 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 NICs (Network Interface Cards)) or two or more heterogeneous communication interface devices (e.g., a NIC and an HBA (Host Bus Adapter)).
[0012] In the following description, "memory" refers to one or more memory devices, which are an example of one or more storage devices, and may typically be a primary storage device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
[0013] In the following description, a "persistent storage device" may refer to one or more persistent storage devices, which are an example of one or more storage devices. A persistent storage device may typically be a non-volatile storage device (e.g., an auxiliary storage device), and specifically may be, for example, a hard disk drive (HDD), a solid state drive (SSD), a non-volatile memory express (NVME) drive, or a storage class memory (SCM).
[0014] In the following description, the term "storage device" may refer to at least one of memory and persistent storage device.
[0015] Furthermore, in the following description, a "processor" may refer to one or more processor devices. The at least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also be another type of processor device such as a GPU (Graphics Processing Unit). The at least one processor device may be a single-core or multi-core. The at least one processor device may also be a processor core. The at least one processor device may also be a processor device in a broader sense, such as a circuit that is a collection of gate arrays written in a hardware description language that performs some or all of the processing (for example, an FPGA (Field-Programmable Gate Array), a CPLD (Complex Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit)).
[0016] In the following description, information that provides an output for an input may be described using expressions such as "xxx table." However, this information may be data of any structure (for example, structured data or unstructured data), or may be a neural network that generates an output for an input, or a learning model such as a genetic algorithm or random forest. Therefore, the "xxx table" may be referred to as "xxx information." In the following description, the structure of each table is an example, and one table may be divided into two or more tables, or all or part of two or more tables may be one table.
[0017] In the following description, processing may be described using a "program" as the subject; however, since a program is executed by a processor to perform a predetermined process using a storage device and / or an interface device as appropriate, the subject of the processing may also be the processor (or a device or system having the processor). A program may be installed in a device such as a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable recording medium (e.g., a non-transitory recording medium). In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
[0018] Furthermore, a "volume" (VOL) is a logical storage area. A volume may be a physical volume (RVOL) or a virtual volume (VVOL). An "RVOL" may be a VOL based on a storage device, and a "VVOL" may be a volume that complies with capacity virtualization technology (typically Thin Provisioning).
[0019] Furthermore, a "storage system" may be a system equipped with multiple storage devices and a controller that performs data I / O for the multiple storage devices, or a system including one or more physical computers. The latter system may be constructed as SDx (Software-Defined anything) by each of the one or more physical computers executing predetermined software. As SDx, for example, SDS (Software-Defined Storage) or SDDC (Software-Defined Datacenter) may be adopted.
[0020] In addition, in the following description, when describing elements of the same type without distinguishing between them, common reference symbols will be used, and when describing elements of the same type with distinction between them, reference symbols will be used.
[0021] An embodiment of this specification describes a copy data transfer method that takes into account the load on a destination storage system. This embodiment controls compression processing for data transfer based on processor load information on the source storage system and the destination storage system. By omitting compression processing or selecting a compression processing with a lower processor load, it is possible to prevent a decrease in copy performance. A compression processing with a lower processor load, for example, selectively compresses a portion of the transfer data or selects a compression algorithm with a lower processor load. [Example]
[0022] FIG. 1 shows an example of the overall configuration of a system according to the first embodiment.
[0023] A primary host 100A is connected to a primary storage system 200A via a network 220A (for example, a front-end network). A secondary host 100B is connected to a secondary storage system 200B via a network 220B (for example, a front-end network).
[0024] The primary storage system 200A and secondary storage system 200B are connected via a network 220C (for example, a back-end network). Two or more of the networks 220A to 220C may be common networks, or at least one of the networks 220A to 220C may be a dedicated line.
[0025] The primary site (the site including the primary host 100A and primary storage system 200A) and the secondary site (the site including the secondary host 100B and secondary storage system 200B) may be geographically separated. The primary host 100A is a computer having an interface device 51A, memory 52A, and a CPU (Central Processing Unit) 53A. The secondary host 100B is a computer having an interface device 51B, memory 52B, and a CPU 53B.
[0026] Furthermore, the primary host 100A may be a virtual device (for example, a VM (Virtual Machine) or a container). Similarly, the secondary host 100B may be a virtual device. Furthermore, the primary host 100A may be a virtual device provided in the primary storage system 200A, and similarly, the secondary host 100B may be a virtual device provided in the secondary storage system 200B (in other words, at least one of the storage systems 200A and 200B may be a so-called hyper-converged storage system). Furthermore, the secondary host 100B may not be present.
[0027] Furthermore, for example, if the distance between storage systems 200A and 200B is short, primary host 100A may be connected to secondary storage system 200B in addition to primary storage system 200A. Secondary host 100B may be connected to primary storage system 200A in addition to secondary storage system 200B. Either or both of storage systems 200A and 200B may be systems installed in a collocation, or may be systems on a cloud that provides cloud computing services (storage services).
[0028] The primary host 100A executes software that executes business processing (for example, a DBMS (DataBase Management System)), and sends a data write request to the primary storage system 200A. The primary storage system 200A stores the data in accordance with this write request.
[0029] Remote copying is performed between storage systems 200A and 200B. In other words, the secondary storage system 200B receives data from the primary storage system 200A and stores the received data. Disaster recovery is performed when a failure occurs in the primary host 100A or the primary storage system 200A. This allows the secondary host 100B to continue business processing of the primary host 100A by using the data in the secondary storage system 200B. The remote copy system is a system that includes storage systems 200A and 200B.
[0030] There is a maintenance terminal 270 connected to network 220C. The maintenance terminal 270 communicates with at least one of storage systems 200A and 200B for maintenance or management of the storage systems. The maintenance terminal 270 may be connected to network 220A and may maintain primary storage system 200A. Another maintenance terminal 270 may be connected to network 220B and may maintain storage system 200B.
[0031] 2 shows an example of the configuration of the storage system 200 and the maintenance terminal 270. Note that a reference numeral with some or all of the alphabets of another reference numeral removed means any one or more components of the other reference numeral.
[0032] The storage system 200 includes a group of storage drives (plurality of drives 218) and a redundant controller 210 that performs data I / O for the group of storage drives. The storage drives are also simply referred to as drives. The drives 218 are an example of persistent storage devices. The group of drives may configure one or more RAID (Redundant Array of Independent (or Inexpensive) Disks) groups. Volumes 26 are provided based on the group of drives.
[0033] The controller 210 includes a FE-IF (front-end interface) 211, a BE-IF (back-end interface) 214, an M-IF (management interface) 215, a memory 213, and a processor 212 connected thereto. The IFs 211, 214, and 215 are examples of interface devices.
[0034] The FE-IF211 is an interface device that communicates with the host 100. The FE-IF211 may have multiple ports (for example, a Fibre Channel port, an iSCSI port). The remote copy path (the path through which the data to be transferred passes) may be a path that includes the port of the FE-IF211 in the primary storage system 200A and the port of the FE-IF211 in the secondary storage system 200B. An interface device for remote copy may be provided separately from the FE-IF200.
[0035] The BE-IF 214 is an interface device that communicates with each drive 218 .
[0036] The M-IF 215 is an interface device that communicates with the maintenance terminal 270. A port that the M-IF 215 has may be included in the path of the remote copy in place of a port that the FE-IF 211 has.
[0037] The memory 213 stores programs and data. The memory 213 may have, for example, a cache memory area in which data is temporarily stored. The processor 212 executes the programs stored in the memory 213.
[0038] The maintenance terminal 270 is a computer equipped with an IF 275, an I / O unit 274, a memory 272, and a CPU 271 connected to these. The IF 275 is an interface device having a port connected to the network 220. The I / O unit 274 is a user interface device such as a keyboard, a pointing device, and a display device.
[0039] The memory 272 stores programs (for example, a maintenance program 273) and data. The CPU 271 performs maintenance of the storage system 200 by executing the maintenance program 273. For example, the CPU 271 that executes the maintenance program 273 may receive information from a user via the I / O unit 274 (for example, information indicating the distance between the storage systems 200A and 200B, or information indicating the required multiplicity, which will be described later), and set the received information in the storage system 200 via the IF 275.
[0040] FIG. 3 shows an example of an overview of remote copying from the primary storage system 200A to the secondary storage system 200B.
[0041] The remote copy in this example is an asynchronous remote copy that is performed asynchronously with the processing according to the write request that specifies PVOL (Primary Volume) 26A. In asynchronous remote copy, the write request is completed even if the write-targeted data accompanying the write request has not been copied to SVOL 26B. In asynchronous remote copy, a JNL (journal), which will be described later, is used.
[0042] The primary storage system 200A has volumes 26 such as PVOL26A and JVOL (Journal Volume) 26JA in which data stored in PVOL26A is stored as JNL data. The secondary storage system 200B has volumes 26 such as JVOL26JB, which is a transfer destination of the JNL stored in JVOL26JA, and SVOL (Secondary Volume) 26B in which the JNL data in the JNL stored in JVOL26JB is stored.
[0043] A VOL pair is configured with PVOL 26A and SVOL 26B. Remote copying of data stored in PVOL 26A to SVOL 26B is achieved via JVOLs 26JA and 26JB. Either volume 26 may be based on a group of drives, but at least a portion of JVOL 26J may be based on memory 213 (for example, a cache memory area) in the controller 210. Furthermore, one JVOL 26J may exist for multiple VOL pairs in at least one of storage systems 200A and 200B. Furthermore, multiple JVOLs 26J may exist for one VOL pair. Furthermore, the number of JVOLs 26J for one VOL pair may differ between storage systems 200A and 200B.
[0044] The JNL consists of JNL data 2524 and a JNCB (Journal Control Block) 2523.
[0045] The JNL data 2524 is the same data as the write-targeted data written to the PVOL 26A (a copy of the write-targeted data).
[0046] The JNCB 2523 is an example of metadata for the JNL data 2524. Specifically, for example, the JNCB 2523 includes information such as the address of the storage destination of the JNL data 2524 (for example, LBA (Logical Block Address)), the storage address of the original write-targeted data of the JNL data 2524 (address in PVOL 26A), the ID of the PVOL in which the original write-targeted data is stored (and / or the ID of the SVOL that configures a VOL pair with the PVOL), and a sequence number (the order of the write request accompanied by the original write-targeted data). The sequence number (hereinafter, SEQ#) is an example of a write order. Another example of the write order may be a timestamp.
[0047] JVOL26J has a JNCB area 2521, which is an area where JNCBs 2523 are stored, and a JNL data area 2522, which is an area where JNL data 2524 is stored. As shown in Figure 3, the storage location of the JNL data 2524 can be identified from the JNCB 2523 (see the arrow extending from the JNCB 2523 to the JNL data 2524). For example, the JNCBs 2523 are stored in the JNCB area 2521 in the order of SEQ#. A portion of the area may be unused area 2527.
[0048] An overview of remote copying is as follows, for example: In response to a write request from the primary host 100A, the primary storage system 200A stores the write-targeted data associated with the write request in PVOL 26A. The primary storage system 200A stores the JNL, which includes JNL data as a copy of the write-targeted data and JNCB, which is metadata for the JLN data, in JVOL 26JA, and reports write completion to the primary host 100A.
[0049] The primary storage system 200A transfers the JNL to be transferred to the secondary storage system 200B in response to a JNL read request from the secondary storage system 200B (or spontaneously without the JNL read request), asynchronously with the processing performed in response to the write request.
[0050] The secondary storage system 200B receives the JNL and stores the received JNL in JVOL26JB. The secondary storage system 200B stores the JNL data in the JNL in SVOL26B based on the JNCB in the JNL. This results in data being remote copied from PVOL26A of the primary storage system 200A to SVOL26B of the secondary storage system 200B.
[0051] In the following explanation, for convenience, "JNL data" is considered a countable noun. This is because JNL data is a block of data contained in the countable noun "JNL" (journal). For example, if there are N JNLs (N is an integer greater than or equal to 2), there will be N pieces of JNL data. In this embodiment, if there are N JNLs to be transferred, the N pieces of JNL data are compressed by the primary storage system 200A. Note that, because JNL data is considered a countable noun, the write-target data, which is the original data of the JNL data, can also be considered a countable noun. Furthermore, hereinafter, compressing N pieces of JNL data may be referred to as "bulk compression."
[0052] FIG. 4 shows an example of the configuration of the memory 213.
[0053] The memory 213 includes a management area 221 , a program area 222 , and a cache memory area 223 .
[0054] Management information is stored in the management area 221. The management information includes a SEQ# table 2210, a distance table 2211, a required multiplicity table 2212, a pair table 2213, a compression information table 2214, a compression algorithm table 2215, and a PVOL table 2216. Information 2210 to 2212 and information 2214 to 2216 will be described later. The pair table 2213 includes, for each VOL pair, the ID of the PVOL, the ID of the SVOL, and the ID of the storage system 200 that is the copy partner. The pair table 2213 may also manage pair statuses for managing whether the copy process is paused, normal, abnormal, etc.
[0055] Programs are stored in the program area 222. The programs stored include, for example, an I / O program 2221 for performing data I / O to the PVOL (or SVOL) in response to an I / O request from the host, a JNL creation program 2222 for creating JNL data, a primary JNL read program 22A for transferring JNL, a secondary JNL read program 22B for receiving the transferred JNL, a JNL read schedule program 2226 for determining a read schedule for JNL data, a restore program 2229 for restoring data, and a management program 2230 for acquiring the processor load of the storage.
[0056] The management program 2230 periodically stores and updates the processor load information of its own storage in the own storage processor load 22141 of the compression information table 2214. The value to be stored may be an average value over a certain period of time, or an instantaneous value.
[0057] The cache memory area 223 temporarily stores data.
[0058] A storage system 200 having memory 213 can function as either or both of a primary storage system 200A and a secondary storage system 200B. For example, if this storage system 200 has PVOL 26A but no SVOL 26B, this storage system 200 functions as primary storage system 200A.
[0059] If this storage system 200 does not have PVOL 26A but has SVOL 26B, then this storage system 200 functions as secondary storage system 200B. If this storage system 200 has SVOL 26B in a first VOL pair and PVOL 26A in a second VOL pair, then this storage system 200 functions as both primary storage system 200A and secondary storage system 200B.
[0060] FIG. 5 shows an example of the configuration of the SEQ# table 2210.
[0061] For the copy source, the SEQ# table 2210 contains information indicating the SEQ# of the latest JNL (the JNL created most recently). This makes it possible to identify the SEQ# to be included in the next JNL to be created. For example, the SEQ# to be included in the next JNL to be created is the next number (e.g., a number incremented by 1) of the SEQ# indicated by the current SEQ# table 2210.
[0062] Furthermore, for the copy source, the SEQ# table 2210 may include information indicating the SEQ# of the oldest JNL (the JNL containing the JNL data of the write target data with the oldest write reception time) among the JNLs that have not yet been transferred to the copy destination. This makes it possible to identify the JNL to be transferred next.
[0063] On the other hand, for the copy destination, the SEQ# table 2210 contains information indicating the SEQ# of the oldest JNL among the JNLs that have not yet been reflected in the SVOL. This makes it possible to identify the SEQ# to be included in the next JNL to be reflected. Note that for the copy destination, the SEQ# table 2210 may also contain information indicating the SEQ# of the oldest JNL among the JNLs that have not yet been received from the copy source. This makes it possible to identify the next JNL that should be requested from the primary storage system 200A.
[0064] FIG. 6 shows an example of the configuration of JNCB2523.
[0065] The JNCB 2523 includes information such as a SEQ# 2240 , a PVOL address 2241 , a JNL data size 2242 , a JVOL storage start address 2243 , a compression bit 2244 , a post-compression size 2245 , and a compression algorithm type 2251 .
[0066] SEQ# 2240 indicates the SEQ# assigned to the JNL managed by the JNCB 2523. PVOL address 2241 indicates the address of PVOL 26A (for example, the ID of PVOL 26A and the LBA of the area of PVOL 26). JNL data size 2242 indicates the size of the JNL data 2524 in the same JNL as the JNCB 2523. JVOL storage start address 2243 is the address of an area in JVOL 26JA and indicates the start address of the area where the JNL data 2524 is stored.
[0067] The compression bit 2244 indicates whether the JNL data 2524 stored in JVOL26JA has been compressed. If compression (compression of individual JNL data or bulk compression) is performed constantly, the compression bit 2244 is not necessary. Furthermore, if the primary storage system 200A and secondary storage system 200B mutually recognize that compression will be performed, there is no need to provide the compression bit 2244 in the JNCB 2242.
[0068] The compressed size 2245 is valid information when the compression bit 2244 is "ON" (a value indicating compression), and indicates the size of the JNL data after compression. In the case of bulk compression, the compressed size 2245 indicates the bulk compressed size, which is the data size of the bulk compressed data (N pieces of JNL data that have been bulk compressed). The compression bit 2244 "ON" and the same bulk compressed size may be stored in each of the N JNCBs corresponding to the N pieces of bulk compressed JNL data. The information 2251 is valid information when the compression bit 2244 is "ON", and indicates information for identifying the compression algorithm that compressed the JNL data.
[0069] Information 2251 is valid when the compression bit 2244 is "ON" (a value indicating compression), and indicates which compression algorithm was used to compress the JNL data. If the compression algorithms used in the primary storage and secondary storage are the same, information 2251 may not be necessary.
[0070] FIG. 7 shows an example of the configuration of the distance table 2211.
[0071] The distance table 2211 holds information such as a copy source ID 22111, a copy destination ID 22112, a distance 22113, and a bandwidth 22114 for each pair of primary and secondary storage systems 200A and 200B.
[0072] The copy source ID 22111 represents the ID of the primary storage system 200A. The copy destination ID 22112 represents the ID of the secondary storage system 200B. The distance 22113 represents the geographical distance between the primary and secondary storage systems 200A and 200B. The bandwidth 22114 represents the data transfer bandwidth between the primary storage systems 200A and 200B. This value is information for calculating the required multiplicity of data transfer processing between the primary storage system 200A and the secondary storage system 200B. For this reason, the round-trip communication time between the primary storage system 200A and the secondary storage system 200B can also be used as a substitute.
[0073] FIG. 8 shows an example of the configuration of the required multiplicity table 2212.
[0074] The required multiplicity table 2212 holds information such as a copy source ID 22121, a copy destination ID 22122, and a required multiplicity 22123 for each pair of primary and secondary storage systems 200A and 200B.
[0075] The copy source ID 22121 indicates the ID of the primary storage system 200A. The copy destination ID 22122 indicates the ID of the secondary storage system 200B. The required multiplicity 22123 indicates the multiplicity of data transfer processing required between the primary and secondary storage systems 200A and 200B.
[0076] FIG. 9 shows an example of the configuration of the compression information table 2214.
[0077] The local storage processor load 22141 indicates information about the processor load of the storage where the compression information table 2214 is located. The management program 2230 stores this information. The secondary storage processor load 22142 indicates the processor load of the secondary storage. The primary JNL read program 22A stores this information. The processor load may be calculated, for example, from the load of one or more processors executing the remote copy or from the load of all processors in the storage system. The processor load may be, for example, an average value for one or more target processors over a recent specified period, or a weighting coefficient for time or processor may be used.
[0078] The processor load threshold 22143 indicates a reference value used when determining whether the local storage processor load 22141 or the secondary storage processor load 22142 is high. A default value may be stored in advance, or may be input by the administrator via the maintenance terminal 270, or may be dynamically updated by referencing other information, for example, host IO information. The same or different processor load thresholds may be specified for the local storage and the secondary storage.
[0079] The compression algorithm ID 22144 indicates the identifier of the compression algorithm used when compressing JNL data. Any compression algorithm ID in the compression algorithm table 2215 is stored. ARG1, which has a medium load, is stored as the default value.
[0080] The compression target ratio 22145 is not used in the first embodiment, but indicates the ratio of the number of JNL data or PVOL to be compressed as a measure to reduce the processor load. A default value may be stored in advance, or may be input by the administrator via the maintenance terminal 270.
[0081] The bandwidth 22146 stores the maximum bandwidth (transfer speed) of the line used for transfer in remote copy. The management program 2230 acquires information about the ports used in remote copy, and periodically stores and updates this information.
[0082] FIG. 10 shows the processing flow of the write processing carried out by the primary storage system 200A.
[0083] The I / O program 2221 receives a write request from the primary host 100A (S101). The I / O program 2221 writes the write target data associated with the received write request to PVOL 26A (S102), calls the JNL creation program 2222 (S103), and waits for the JNL creation program 2222 to complete (S104). The write target data may be temporarily stored in the cache memory area 223 and then written to PVOL 26A, or may be written to PVOL 26A without being stored in the cache memory area 223.
[0084] The called JNL creation program 2222 secures the latest SEQ# (SEQ# after incrementing the current latest SEQ#) (S201). The JNL creation program 2222 determines the storage address of the JNL data (for example, the JVOL storage start address) (S202), creates JNL data as a copy of the data written in S102 (for example, data in the cache memory area 223), and stores the JNL data in the area pointed to by the address determined in S202 (for example, the cache memory area 223 or the JNL data area 2522) (S203).
[0085] The JNL creation program 2222 also determines the storage address of the JNCB (S204), creates a JNCB including the SEQ# allocated in S201, and stores the JNCB in the area pointed to by the address determined in S204 (for example, the cache memory area 223 or the JNCB area 2521) (S205). The JNL creation program 2222 notifies the I / O program 2221 of the completion of processing (S206).
[0086] When the I / O program 2221 receives a completion notification from the JNL creation program 2222, it reports the completion of the write to the primary host 100A (an example of the sender of the write request) (S105). The report of the write completion is made without waiting for the storage of the journal data or the completion of the bulk compression. In other words, the bulk compression is performed asynchronously with the write processing.
[0087] In this write process, when the JNCB and JNL data is stored in the cache memory area 223 of the primary storage system 200A, the JNCB and JNL data may later be stored in JVOL 26A from the cache memory area 223. When JVOL 26A is an area based on the cache memory area 223, storage in the cache memory area 223 may correspond to storage in JVOL 26A.
[0088] In this embodiment, the JNL data is transferred from the primary storage system 200A to the secondary storage system 200B in accordance with the processing flow shown in FIG.
[0089] FIG. 11 shows the processing flow of the JNL transfer process.
[0090] In this processing flow, N pieces of JNL data that have been collectively compressed are to be transferred.
[0091] The secondary JNL read program 22B of the secondary storage system 200B obtains the processor load 22141 of the secondary storage system from the compression information table 2214 and sends an RDJNL (journal read request), which is a read request for the stored JNL, to the primary storage system 200A (S601), and waits for a response from the primary storage system 200A (S602).
[0092] In response to the RDJNL received from the secondary storage system 200B, the primary JNL read program 22A of the primary storage system 200A reads the N untransferred JNCBs 2523 from the JVOL 26JA (S501) and identifies (S502) the JVOL storage start address 2243 of each of the N JNCBs 2523. The primary JNL read program 22A reads the JNL data from each address identified in S502 (S503).
[0093] The primary JNL read program 22A stores the processor load acquired from the RDJNL in the secondary storage processor load 22142 of the compression information table 2214 (S507).
[0094] The primary JNL read program 22A references the local storage processor load 22141, secondary storage processor load 22142 and processor load threshold 22143 in the compression information table 2214, and compares whether the local storage processor load 22141 or secondary storage processor load 22142 is greater than the processor load threshold 22143.
[0095] If either processor load is greater than the processor load threshold, the primary JNL read program 22A executes S510. If both processor loads are equal to or less than the processor load threshold (S508: NO), the primary JNL read program 22A executes S504. In the first embodiment, S509 is skipped without processing. In the judgment of S508, no judgment may be made for a certain period of time so that the judgment result does not change frequently, and the same processing as the immediately previous judgment result may be continued.
[0096] In the first embodiment, the main JNL read program 22A always determines that compression will not be performed (S510: NO) and executes S505. The main JNL read program 22A performs bulk compression of the N pieces of JNL data that have been read (S504).
[0097] The primary JNL read program 22A updates each of the N JNCBs 2523 corresponding to the N JNL data (S505). In each JNCB 2523 after being updated in S505, the compression bit 2244 is "ON" and the compressed size 2245 indicates the size after collective compression.
[0098] If the primary JNL read program 22A determines in S510 that compression is not to be performed, it sets the compression bit 2244 to "OFF" when updating the JNCB 2523. The primary JNL read program 22A transfers the collectively compressed data (N pieces of collectively compressed JNL data) and the updated N JNCBs 2523 to the secondary storage system 200B (S506).
[0099] Instead of updating the compression bit 2244 and compressed size 2245 of each JNCB 2523, it is possible to update, for example, only the information of the JNCB 2523 having the smallest SEQ# among the JNLs to be transferred. The primary JNL read program and secondary JNL read program process each JNL using the information of the JNCB 2523 having the smallest SEQ#.
[0100] The secondary JNL read program 22B of the secondary storage system 200B receives N JNCBs 2523 and the bulk compressed data from the primary storage system 200A (S603). The secondary JNL read program 22B identifies the compression bit 2244 "ON" from each of the N JNCBs 2523 (S604) and decompresses the bulk compressed data into N pieces of JNL data (S605). The decompression may be performed by the secondary JNL read program 22B, or may be performed by an accelerator in the secondary storage system 200B. When an accelerator is used, the processor load information of the accelerator is also included in the calculation of the processor load.
[0101] The secondary JNL read program 22B determines a storage destination address (for example, a JVOL storage start address) for each JNL data, and stores the JNL data in the area pointed to by the determined address (for example, the cache memory area 223 or the JNL data area 2522) (S606). By using the decompressed data and the JNL data sizes 2242 stored in the N JNCBs 2523, it is possible to identify the JNL data corresponding to each JNCB 2523. Specifically, the decompressed data is divided by the JNL data sizes 2242 in ascending order of SEQ#.
[0102] The secondary JNL read program 22B updates each of the N JNCBs 2523 (S607). In each JNCB 2523 after being updated in S607, the JVOL storage start address 2243 is the address of an area in the JVOL 26JB, the compression bit 2244 is "OFF", and the compressed size 2245 is an invalid value. The secondary JNL read program 22B determines the storage address of each JNCB updated in S607 (S608), and stores each JNCB in the area pointed to by the address determined in S607 (for example, the cache memory area 223 or the JNCB area 2521) (S609).
[0103] Alternatively, decompression of compressed data may be performed in the restore program described in Fig. 13. In this case, S604 and S605 are skipped, and the compressed data is stored in S606. In S607, the JVOL storage start address 2243 is changed to the address of an area in JVOL26JB. The compression bits 2244 and post-compression size 2245 are not changed.
[0104] With the above process, all write target data is transferred, maintaining a short RPO (Recovery Point Objective). Furthermore, because the data being transferred is the N JNL data items that have been collectively compressed, it is expected that the reduction in data to be transferred will be improved. Furthermore, when the processor of the primary or secondary storage is under high load, data is transferred without compression, preventing a decline in copy performance due to the overhead of compression and decompression processes, and maintaining a short RPO is expected.
[0105] At least one of the following may be adopted:
[0106] Instead of S604 to S609, the collectively compressed data and N JNCBs may be stored in JVOL26JB. When JNL is reflected in SVOL26B (i.e., during restore processing), the collectively compressed data may be decompressed into N JNL data, and the decompressed N JNL data may be written to SVOL26B.
[0107] Furthermore, the process of reflecting JNL to SVOL26B must process the JNL transferred by one JNL read program. For example, consider a case where a JNL read program transfers JNL of SEQ#1 to 50 in the first process, and transfers SEQ#51 to 100 in the second process. The restore process must also process SEQ#1 to 50. This is because the JNL data of SEQ#1 to 50 is compressed together. By storing the compression start SEQ#2248 and compression end SEQ#2250 in JNCB2523, the restore process can recognize that SEQ#1 to 50 have been compressed together.
[0108] The initial copy according to asynchronous remote copy (the copy for initially matching PVOL 26A and SVOL 26B) may also include processing similar to the processing illustrated in Fig. 11. In this case, in S503, the JNL data is read from PVOL 26A instead of JVOL 26JA.
[0109] FIG. 12 shows the processing flow of the JNL read schedule program 2226.
[0110] In the secondary storage system 200B (or primary storage system 200A), the JNL read schedule program 2226 references the required multiplicity table 2212 and determines whether the number of RDJNLs (the number of RDJNLs being processed) is less than the required multiplicity (S711).
[0111] If the determination result in S711 is true (S711: Yes), the JNL read schedule program 2226 calls the secondary JNL read program 22B (S712). As a result, the secondary JNL read program 22B sends an RDJNL, and as a result, the number of RDJNLs increases. The determination in S711 is realized by accessing the required multiplicity table 2212 and obtaining the required multiplicity.
[0112] FIG. 13 shows the processing flow of the restore program 2229.
[0113] In the secondary storage system 200B, the restore program 2229 checks the JNCB stored in JVOL26JB (S300), identifies the range of consecutive SEQ#s from the oldest SEQ# among the JNLs not yet reflected in SVOL26B (S301), and identifies the latest SEQ# in the identified range (S302).
[0114] When decompression of compressed data is performed in the restore program, the restore program 2229 determines, for each SEQ# in the continuous range of SEQ#, whether the compression bit 2244 is “ON” and the split bit 2246 is “ON” in the JNCB containing that SEQ#.
[0115] If the determination result is false, the restore program 2229 performs SVOL write (S308). In S308, the following is performed.
[0116] If the compression bit 2244 is "ON", the restore program 2229 identifies N JNCBs that support bulk compression (for example, N JNCBs with the same compression start SEQ# and compression end SEQ#), and obtains N pieces of JNL data by reading and decompressing the bulk-compressed data from the JVOL 26B based on the N JNCBs. For each of the N JNCBs, the restore program 2229 writes the JNL data corresponding to that JNCB to an area within the SVOL indicated by an address corresponding to the PVOL address indicated by that JNCB.
[0117] If the compression bit 2244 is "OFF" or if the restore program 2229 does not decompress the compressed data but instead decompresses it using the secondary JNL read program, the restore program 2229 identifies the JNCB in the oldest JNL that has not been reflected in SVOL 26B, and reads the JNL data from JVOL 26JB based on that JNCB. The restore program 2229 writes the read JNL data to an area in the SVOL indicated by an address corresponding to the PVOL address indicated by that JNCB.
[0118] This concludes the description of the first embodiment. In this embodiment, the "remote copy process" refers to the process up to when JNL data, which is a copy of data written to PVOL 26A, is reflected in SVOL 26B via JVOLs 26JA and 26JB. The remote copy process includes JNL transfer processing and restore processing.
[0119] "JNL transfer processing" is processing from the start of processing for transferring JNL to the end of storing the transferred JNL, and in this embodiment, it is processing from the start of the secondary storage system 200B sending an RDJNL to the time when the JNL included in the response to that RDJNL (the response from the primary storage system 200A) is stored in the secondary storage system 200B. "Restore processing" is processing in which JNL data is written to SVOL26B in the secondary storage system 200B, and specifically, for example, is the processing shown in Fig. 13.
[0120] Furthermore, in this embodiment, data is transferred in response to an RDJNL from the secondary storage system 200B, but a WRJNL (a write request for a JNL) may be sent from the primary storage system 200A to the secondary storage system 200B, and in response to the WRJNL, data associated with the WRJNL (a plurality of JNCBs and at least a portion of the bulk compressed data) may be stored.
[0121] In this case, the processor load information of the secondary storage may be included in the WRJNL response from the secondary storage, or the processor load information of the secondary storage may be obtained via a maintenance terminal before the WRJNL from the primary storage, or a processor acquisition request may be sent to the secondary storage to obtain the processor load information individually. Also, compression may be specified in the RDJNL, and because compression is specified in the RDJNL, bulk compression may be performed.
[0122] If compression is not specified in RDJNL, uncompressed JNL data may be transferred. The information shown in Figure 6 is stored in the JNCB, but it may also be stored and transferred as a parameter of the WRJNL or RDJNL command. Also, while the JNCB is an example of journal metadata, the metadata may be associated as a parameter of the WRJNL or RDJNL command.
[0123] As described above, this embodiment selects one data transfer method from multiple data transfer methods based on the processor load of the primary storage system and the processor load of the secondary storage system. The multiple data transfer methods differ in the compression processing for the transferred data. In one configuration example, the multiple data transfer methods are composed of two data transfer methods, where a first data transfer method compresses all transferred data and a second data transfer method omits the compression processing for the transferred data. In other words, the processor load for compression in the second data transfer method is smaller than the processor load for compression in the first data transfer method. By selecting one data transfer method from data transfer methods with different processor loads for compression processing in accordance with the processor loads of the primary storage system and the secondary storage system, it is possible to suppress a decrease in copy performance. [Example]
[0124] A second embodiment will now be described. In doing so, differences from the first embodiment will be mainly described, and explanations of points in common with the first embodiment will be omitted or simplified (this also applies to the embodiments described below other than the second embodiment). In this embodiment, multiple compression algorithms with different processor loads are provided as options, and when the processor load of the primary storage or secondary storage is high, a compression algorithm with a smaller processor load is selected.
[0125] 14 shows an example of the configuration of the compression algorithm table 2215. The compression algorithm ID 22151 indicates an ID that identifies the compression algorithm. The load 22152 indicates the load added to the processor when the compression algorithm performs processing. A compression algorithm with a higher load achieves a higher compression ratio.
[0126] In the second embodiment, it is always determined in S510 that compression is to be performed (S510: YES).
[0127] The primary JNL read program 22A references information about a low-load compression algorithm from the compression algorithm table 2215, and stores, for example, ARG2 in the compression algorithm ID 22144 (S511). The primary JNL read program 22A holds all algorithms in the compression algorithm table 2215, and when processing S504, compresses the JNL data using the compression algorithm indicated by the ID stored in the compression algorithm ID 22151.
[0128] With the above process, all write target data is transferred, maintaining a short RPO. Also, because the data to be transferred is the data after N JNL data have been collectively compressed, it is expected that the reduction in the data to be transferred will be improved. Furthermore, when the processor of the primary or secondary storage is under high load, a low-load compression algorithm is used to compress and transfer the data, which reduces the degradation of copy performance due to the overhead of compression and decompression processing, and is expected to maintain a short RPO.
[0129] The compression algorithm table 2215 shown in Fig. 14 shows three types of compression algorithms. Each compression algorithm may be associated with a different range of processor load. For example, medium-load, low-load, and high-load processor load ranges can be defined by two thresholds. The medium-load, high-load, and low-load algorithms may be associated with the medium-load, low-load, and high-load processor load ranges, respectively. The number of types of compression algorithms used is arbitrary, and may be two or more. [Example]
[0130] A third embodiment will now be described. In this embodiment, multiple data transfer methods are provided as options, one of which performs compression processing on all of the transfer data, while the other transfer methods selectively compress the target data, which is part of the transfer data. By reducing the target data for compression, the processor load for compression can be reduced.
[0131] In the third embodiment, it is always determined that compression will be executed in S510 (S510: YES). The primary JNL read program 22A processes the number of RDJNL to be compressed so as to approach the compression target ratio 22145 as a processor load reduction measure S511.
[0132] The main JNL read program 22A acquires the compression target ratio 22145 (S511). If the compression target ratio 22145 is 20%, for example, the main JNL read program 22A performs processing such that when one RDJNL is compressed, the next four are not compressed (S504).
[0133] In another example, the primary JNL read program 22A may perform processing so that the number of JNL data 2524 to be compressed approaches the compression target ratio 22145. For example, for each RDJNL target JNL data 2524, compression target JNL data 2524 is selected from the beginning so that the compression number is closest to 20. If the size of the RDJNL or JNL data is constant, control is performed so that the ratio of the amount of data to be compressed approaches a predetermined value. If the size is not constant, control is performed so that the number of data to be compressed approaches the predetermined value by adjusting the amount of data to be compressed.
[0134] The compression target ratio 22145 may be changed according to the processor load. For example, a different compression target ratio is assigned to each of three or more different ranges of processor load. The higher the processor load, the smaller the compression target ratio. An algorithm is selected according to the higher processor load in the primary storage and secondary storage. Some of the compression target data may be selected based on a criterion different from the number of data items to be compressed, for example, so that the ratio of the amount of compressed data approaches a predetermined value.
[0135] With the above process, all write target data is subject to transfer, maintaining a short RPO. Also, because the data to be transferred is the data after N JNL data items have been collectively compressed, it is expected that the reduction in the data to be transferred will be improved. Furthermore, when the processor of the primary or secondary storage is under high load, data is compressed and transferred according to the compression target ratio 22145, which is expected to reduce the degradation of copy performance due to the overhead of compression and decompression processes and maintain a short RPO. [Example]
[0136] A fourth embodiment will now be described. In this embodiment, multiple data transfer methods are provided as options, one of which executes compression processing on the transfer data of all copy source volumes, while the other transfer methods selectively compress the transfer data of some copy source volumes. By reducing the number of volumes to be compressed, the processor load for compression can be reduced.
[0137] In the fourth embodiment, it is always decided that compression will be performed in S510 (S510: YES). Fig. 15 shows an example of the configuration of the PVOL table 2216. PVOL ID 22161 shows the ID that identifies the PVOL. I / O ratio shows the ratio of I / O processed by that PVOL out of I / O from the host to all PVOLs. Compression 22163 shows whether compression will be performed in S504. If ON, compression will be performed, and if OFF, compression will not be performed.
[0138] The primary JNL read program 22A acquires the compression target ratio 22145 (S511). If the compression target ratio 22145 is 20%, the primary JNL read program 22A selects a PVOL so that the total I / O ratio of the PVOLs to be compressed is closest to 20%, and processes the compression of the JNL data (S504).
[0139] The compression target ratio 22145 may be changed according to the processor load. For example, a different compression target ratio is assigned to each of three or more different ranges of processor load. The higher the processor load, the smaller the compression target ratio. The compression target ratio is selected according to the higher processor load in the primary storage and secondary storage. Furthermore, some volumes to be compressed may be selected based on criteria different from host I / O, for example, so that the amount of user data stored in the volumes approaches a specified ratio.
[0140] With the above process, all write target data is transferred, maintaining a short RPO. Also, because the data to be transferred is the data after N JNL data items have been collectively compressed, it is expected that the reduction in the data to be transferred will be improved. Furthermore, when the processor of the primary or secondary storage is under high load, only a portion of the PVOLs is compressed and transferred, which reduces the degradation of copy performance due to the overhead of compression and decompression processes and is expected to maintain a short RPO. [Example]
[0141] A fifth embodiment will now be described. In the fifth embodiment, the determination conditions in S508 also include whether there is free line bandwidth available in the line bandwidth used for remote copying. The data transfer method selection conditions in this embodiment include a line bandwidth item in addition to the processor load item in any of the first to fourth embodiments.
[0142] The main JNL read program 22A refers to the bandwidth 22146 and the bandwidth 22114, and determines whether there is free space of, for example, 2 / 3 or more of the line bandwidth, and if there is free space and the processor load is greater than the threshold, determines YES in S508. S510 determines that compression will not be performed, and then S505 is executed.
[0143] The threshold (reference standard) for the available bandwidth is not particularly limited. When three or more compression modes, such as compression algorithms or compression target ratios, are set for the processor load, the minimum required available bandwidth may be set for each of them. A common minimum value may be set for multiple compression modes, or different minimum values may be set.
[0144] With the above process, all write target data is transferred, maintaining a short RPO. Furthermore, because the data being transferred is the N JNL data items that have been collectively compressed, it is expected that the reduction in data to be transferred will be improved. Furthermore, because data is transferred without compression only when the processor of the primary or secondary storage is under heavy load and there is sufficient free line bandwidth, it is expected that the overhead of compression and decompression processes and the degradation of copy performance due to line bandwidth bottlenecks can be reduced, and a short RPO can be maintained.
[0145] The present invention is not limited to the above-described embodiments and includes various modifications. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, it is possible to replace part of the configuration of one embodiment with the configuration of another embodiment, or to add the configuration of another embodiment to the configuration of one embodiment. Furthermore, it is possible to add, delete, or replace part of the configuration of each embodiment with other configurations.
[0146] Furthermore, the above-mentioned components, functions, processing units, etc. may be realized in part or in whole by hardware, for example, by designing them as integrated circuits. Furthermore, the above-mentioned components, functions, etc. may be realized in software by a processor interpreting and executing a program that realizes each function. Information such as the programs, tables, and files that realize each function can be stored in memory, a storage device such as a hard disk or SSD, or a storage medium such as an IC card or SD card.
[0147] In addition, the control lines and information lines shown are those that are considered necessary for the explanation, and do not necessarily show all the control lines and information lines in the product. In reality, it can be assumed that almost all components are interconnected. [Explanation of symbols]
[0148] 200A: primary storage system, 200B: secondary storage system, 100A: primary host, 100B: secondary host, 270: maintenance terminal, 211: FE-IF, 212: processor, 213: memory, 214: BE-IF, 215: M-IF
Claims
1. A storage system that transmits copy data to a copy destination storage system, A controller; a storage drive for storing user data; The controller processor load information of the controller; Acquire processor load information of the copy destination storage system; selecting one transfer method from a plurality of transfer methods for transferring the user data to the destination storage system based on a processor load of the controller and a processor load of the destination storage system; The multiple transfer method includes: a first transfer method for performing a compression process on the transfer data; a second transfer method that omits compression processing on the transfer data or performs compression processing on the transfer data with a lower processor load than the first transfer method; a selection condition for the first transfer method including that each processor load of the controller and the processor load of the copy destination storage system is equal to or less than a threshold; A storage system, wherein the selection conditions for the second transfer method include at least one of the processor load of the controller and the processor load of the copy destination storage system being higher than the threshold value.
2. 2. The storage system according to claim 1, A storage system, wherein the selection conditions for the second transfer method include an available bandwidth between the storage system and the copy destination storage system being greater than a threshold.
3. 2. The storage system according to claim 1, the second transfer method performs a compression process on the transfer data; A storage system, wherein a processor load of a compression algorithm in the second transfer method is smaller than a processor load of a compression algorithm in the first transfer method.
4. 2. The storage system according to claim 1, the first transfer method performs a compression process on all of the transfer data; The second transfer method selectively compresses compression target data that is part of the transfer data.
5. 5. The storage system according to claim 4, The second transfer method selects the compression target data so that a ratio of the compression target data in the transfer data approaches a predetermined value.
6. 2. The storage system according to claim 1, the first transfer method performs a compression process on all of the transfer data; The second transfer method selectively compresses data in a target volume that is a part of a copy source volume of the transfer data.
7. 7. The storage system according to claim 6, The second transfer method selects the target volume so that the ratio of the total host I / O of the target volume to the total host I / O of the copy source volume approaches a predetermined value.
8. A method for transferring data from a source storage system to a destination storage system, comprising: The copy source storage system, Acquiring processor load information of the copy source storage system and processor load information of the copy destination storage system; selecting one transfer method from a plurality of transfer methods from the source storage system to the destination storage system based on a processor load of the source storage system and a processor load of the destination storage system; The multiple transfer method includes: a first transfer method for performing a compression process on the transfer data; a second transfer method that omits compression processing on the transfer data or performs compression processing on the transfer data with a lower processor load than the first transfer method; a selection condition for the first transfer method including that each processor load of the source storage system and the destination storage system is equal to or less than a threshold; A data transfer method, wherein the selection conditions for the second transfer method include at least one of the processor load of the copy source storage system and the processor load of the copy destination storage system being higher than the threshold value.
Citation Information
Patent Citations
Remote copy system and method
JP2022133058A