Management apparatus, path setting method, and computer-readable recording medium
The management device ensures adequate path settings and failover mechanisms for remote copying between storage systems, addressing communication inefficiencies and controller failures to facilitate seamless journal group transfers.
Patent Information
- Application Number
- JP2024112019
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-11
- Publication Date
- 2026-01-23
AI Technical Summary
Insufficient path settings in path groups for remote copying between storage systems can lead to inadequate communication requirements, hindering proper remote copying of journal groups (JNLGs).
A management device calculates the required number of paths based on network quality and performance requirements, ensuring sufficient paths are set between storage systems to meet communication needs, and includes mechanisms for failover in case of controller failures.
Appropriate path settings enable effective remote copying of journal groups without interruptions, even in the event of controller failures, by dynamically adjusting paths to maintain communication performance.
Smart Images

Figure 2026011428000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a technique for setting a path between storage systems that perform remote copying. [Background technology]
[0002] To protect data, remote copying is performed between a storage system at a primary site (primary storage system) and a storage system at a secondary site (secondary storage system). Remote copying is performed, for example, in units of journal groups (JNLGs). A journal group includes one or more data volumes that store data and one or more journal volumes that store journals that show the history of changes made to the data volumes. Consistency is guaranteed for multiple data volumes that belong to the same JNLG.
[0003] When copying JNLG between the primary storage system and the secondary storage system, a path is selected and used from a path group that includes one or more data communication paths (paths) between the primary storage system and the secondary storage system.
[0004] As a technology relating to remote copying between a primary storage system and a secondary storage system, for example, the technology described in Patent Document 1 is known. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] International Publication No. 2016 / 194096 Summary of the Invention [Problem to be solved by the invention]
[0006] For example, if a sufficient number of paths are not set in the path group to be used to copy JNLG, the amount of communication required for remote copying of JNLG may not be realized, and the remote copying of JNLG may not be performed properly.
[0007] The present invention has been made in view of the above circumstances, and its purpose is to provide a technique that can appropriately set a path between a primary storage system and a secondary storage system. [Means for solving the problem]
[0008] In order to achieve the above-mentioned object, a management device according to one aspect is a management device that manages paths between a first storage system and a second storage system in a computer system comprising the first storage system and the second storage system that is the copy destination of a specified copy unit of the first storage system, wherein the second storage system includes a first node having a first controller that processes the copying of the copy unit, and a second node having a second controller that performs the copying process on behalf of the first controller when a failure occurs in the first controller, and the management device has a processor that calculates a required number of paths, which is the number of paths required for performance requirements, based on the quality of the network between the first storage system and the second storage system and performance requirements related to the amount of communication required to copy the copy unit, and causes paths equal to or greater than the required number to be set between the first storage system and the first node. [Effects of the Invention]
[0009] According to the present invention, paths between storage systems performing remote copying can be set appropriately. [Brief explanation of the drawings]
[0010] [Figure 1] FIG. 1 is a schematic diagram showing an overview of one embodiment. [Figure 2]FIG. 2 is a hardware configuration diagram of a computer system according to an embodiment. [Figure 3] FIG. 3 is a schematic diagram showing an overview of a remote copy configuration according to one embodiment. [Figure 4] FIG. 4 is a schematic diagram showing an overview of a remote copy process according to an embodiment. [Figure 5] FIG. 5 is a schematic diagram showing an overview of a process for recovering from a node failure according to an embodiment. [Figure 6] FIG. 6 is a configuration diagram of a memory of a storage node according to an embodiment. [Figure 7] FIG. 7 is a diagram illustrating the configuration of a system configuration management table according to an embodiment. [Figure 8] FIG. 8 is a diagram showing the configuration of a pair configuration management table according to one embodiment. [Figure 9] FIG. 9 is a diagram showing the configuration of a path management table according to one embodiment. [Figure 10] FIG. 10 is a configuration diagram of a remote copy processing performance management table according to an embodiment. [Figure 11] FIG. 11 is a configuration diagram of an operating environment constraint management table according to an embodiment. [Figure 12] FIG. 12 is a configuration diagram of a memory of a management node according to an embodiment. [Figure 13] FIG. 13 is a diagram showing the configuration of a NW quality and path performance management table according to an embodiment. [Figure 14] FIG. 14 is a diagram showing the configuration of a path number management table according to an embodiment. [Figure 15] FIG. 15 is a flowchart of a remote copy preparation process according to one embodiment. [Figure 16] FIG. 16 is a configuration diagram of copy target volume information according to one embodiment. [Figure 17] FIG. 17 is a flowchart of a remote copy configuration construction process according to one embodiment. [Figure 18] FIG. 18 is a diagram illustrating an example of a JNLG layout design according to an embodiment. [Figure 19] FIG. 19 is a flowchart of a remote copy process according to one embodiment. [Figure 20] FIG. 20 is a flowchart of a failover process according to one embodiment. [Figure 21] FIG. 21 is a flowchart of a path number update process according to an embodiment. [Figure 22] FIG. 22 is a schematic diagram illustrating a state after a failover according to one embodiment. [Figure 23] FIG. 23 is a schematic diagram showing an overview of dynamic addition of a standby path according to one embodiment. [Figure 24] FIG. 24 is a schematic diagram showing a state after a standby path has been dynamically added according to an embodiment. [Figure 25] FIG. 25 is a schematic diagram illustrating an overview of a process for updating the number of paths when the NW quality changes according to an embodiment. [Figure 26] FIG. 26 is a schematic diagram showing an overview of a process for updating the number of paths according to the actual IO load according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0011] The following description of the embodiments will be given with reference to the drawings. Note that the embodiments described below do not limit the scope of the invention as claimed, and not all of the elements and combinations thereof described in the embodiments are necessarily essential to the solution of the invention.
[0012] In the following description, an "interface apparatus" may refer to 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., an NIC and an HBA (Host Bus Adapter)).
[0013] 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.
[0014] In the following description, a "persistent storage device" may be 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), or a non-volatile memory express (NVMe) drive.
[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 hardware circuit that performs part or all of the processing (e.g., 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 may be described using the expression "AAA table," but the information may be expressed in any data structure. In other words, to indicate that the information is independent of the data structure, the "AAA table" may be referred to as "AAA information." In the following description, the configuration 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 addition, in the following description, processing may be described with a "program" as the operating entity, but since a program is executed by a processor unit to perform a predetermined process while appropriately using at least one of a memory unit and an interface unit, the processing entity may also be the processor unit (or a computer or computer system having a processor unit). A program may be installed on a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable 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] In the following description, when describing elements of the same type without distinguishing between them, common parts of the reference symbols will be used, and when describing elements of the same type with distinction between them, reference symbols or element identifiers will be used. For example, a PVOL may be distinguished from other PVOLs using an identifier such as "PVOL1."
[0019] FIG. 1 is a schematic diagram showing an overview of one embodiment.
[0020] The computer system 101 includes a primary storage system 100P (an example of a first storage system) arranged at the primary site 201P, a secondary storage system 100S (an example of a second storage system) arranged at the secondary site 201S, and a management node 230 (an example of a management device) arranged at the management site 201M. The primary storage system 100P, the secondary storage system 100S, and the management node 230 are capable of communicating via a network (NW). Each site may be on-premise or cloud-based. In this embodiment, for example, the primary site 201P is on-premise, and the secondary site 201S is cloud-based. The management node 230 may be arranged at the primary site 201P or the secondary site 201S, or may be configured by a node 210 at the primary site 201P or the secondary site 201S.
[0021] The primary storage system 100P includes a plurality of nodes 210 (primary nodes 210P1, 210P2). The primary storage system 100P may be a so-called disk array system.
[0022] The secondary storage system 100S includes a plurality of nodes 210 (secondary nodes 210S1, 210S2, 210S3). The number of nodes in the primary storage system 100P and the secondary storage system 100S is not limited to the example shown in the figure.
[0023] The node 210 is typically a general-purpose computer, but may be a physical computer other than a general-purpose computer, or may be a virtual computer. The node 210 has one or more ports 215, JNLG (journal group) 402 (402a, 402b, 402c), and SCS (Storage Control Software) 730. Note that in FIG. 1, the SCS is not shown in the primary storage system 100P for the sake of convenience. The JNLG 402 is a copy unit for remote copying, and includes one or more data volumes that store data, and one or more journal volumes that store journals that show the change history for the data volumes. Here, the functional unit constituted by a processor that executes the SCS 730 corresponds to the controller.
[0024] The management node 230 may be a physical computer or a virtual computer. The management node 230 manages a NW quality and path performance management table 301 (see FIG. 13) that stores the communication quality (NW quality) of the network between the primary storage system 100P and the secondary storage system 100S and the performance of the paths in the network.
[0025] The primary node 210P1 (Node1) has ports P1 to P4 as the port 215. The primary node 210P1 stores JNLG1, JNLG2, and JNLG3 as the JNLG 402.
[0026] The primary node 210P2 (Node2) has ports P5 to P8 as the port 215. The primary node 210P2 stores copies of JNLG1, JNLG2, and JNLG3 of the primary node 210P1.
[0027] The primary storage system 100P and the secondary storage system 100S each have one or more SCS groups. An SCS group is composed of one active SCS 730 (active SCS, denoted as SCS(A): an example of a first controller) and one or more standby SCSs 730 (standby SCS, denoted as SCS(S): an example of a second controller). The SCS(A) and SCS(S) in the same SCS group are located in different nodes 210. In each storage system, if a failure occurs in the node 210 that has the SCS(A), a failover is performed that enables one of the SCS(S) belonging to the same SCS group to operate as the SCS(A) in place of the SCS(A). For example, in the secondary storage system 100S, SCSx(A) (x is a natural number) and SCSx(S) constitute SCS group x, and if a failure occurs in the node 210 that has SCSx(A), a failover occurs from SCSx(A) in that node 210 to one of the SCSx(S) in another node 210.
[0028] Secondary node 210S1 (Node 1: an example of a first node) has port S1 as port 215, secondary node 210S2 (Node 2: an example of a second node) has port S2 as port 215, and secondary node 210S3 (Node 3) has port S3 as port 215.
[0029] In the example of Figure 1, JNLG1, JNLG2, and JNGL3 of the primary node 210P1 are remote copied to the secondary node 210S1. In this case, a path is set for transmitting data JNLG1, JNGL2, and JNGL3 from the secondary storage system 100S to the primary storage system 100P. The network connection protocol between the secondary storage system 100S and the primary storage system 100P may be any of iSCSI, FC (Fibre Channel), NVMe-oF (NVMe over Fabrics), or a vendor-specific proprietary protocol. For example, in the case of iSCSI, the path may be an iSCSI session.
[0030] The management node 230 acquires the communication performance requirements (total performance requirements) required for remote copy for JNLG1, JNGL2, and JNGL3, which are the targets of remote copy, references the NW quality and path performance management table 301, acquires the NW quality (e.g., RTT: Round Trip Time), identifies the communication performance per path based on the NW quality, and determines the number of paths (required number) required to meet the total performance requirements. Here, take an example where the protocol is iSCSI / TCP and the window size is 256 KB (0.256 MB). If the RTT is 10 ms, the performance per path is window size / RTT = 0.256 MB / 0.010 s = 25.6 MB / s. If the total performance requirement is 66 MB / s, the number of required paths is 66 / 25.6 = 2.578, i.e., three.
[0031] Here, when one path group is assigned to JNLG1, JNGL2, and JNGL3, if the maximum number of paths per path group in the storage system is eight, it is possible to set three paths, so the management node 230 sets three paths from node 210S1 of SCS1(A) that processes the remote copy to the primary storage system 100P. This makes it possible to set paths that allow remote copying of JNLG1, JNGL2, and JNGL3 to be performed without any problems.
[0032] Furthermore, in this example, even if three paths are set, there is still a spare of five, so the management node 230 sets three paths from node 210S2, which has SCS1(S) in the same SCS group as SCS1(A), to the primary storage system 100P. As a result, after a failure occurs in SCS1(A) and failover occurs to SCS1(S), remote copy can be immediately performed using the set paths.
[0033] FIG. 2 is a hardware configuration diagram of a computer system according to an embodiment.
[0034] The computer system 101 has a plurality of sites 201. The sites 201 are communicatively connected via a network 202. The network 202 is, for example, a wide area network (WAN), but is not limited to a WAN. The site 201 is a data center or the like, and includes one or more nodes 210. The site 210M includes a management node 230.
[0035] The node 210 may be a general-purpose computer. The node 210 includes, for example, one or more processor packages 213 including a processor 211 and memory 212, one or more drives 214, and one or more ports 215. These components are connected via an internal bus 216. The drive 214 is an example of a persistent storage device.
[0036] The processor 211 is, for example, a CPU (Central Processing Unit) and performs various types of processing.
[0037] The memory 212 is typically a volatile memory, and stores control information and data necessary to realize the functions of the node 210. The memory 212 also stores, for example, programs executed by the processor 211. The drive 214 stores various types of data, programs, etc.
[0038] The port 215 is connected to a network 220 within the site 201, and connects the node to other nodes 210 and management node 230 within the same site 201 or other sites 201 so that they can communicate with each other via the network 220. The network 220 is, for example, a LAN (Local Area Network), but is not limited to a LAN.
[0039] The physical configuration of the system is not limited to the above-described configuration. For example, the networks 202 and / or 220 may be redundant. For example, the network 220 may be separated into a management network and a storage network, and the connection standard may be Ethernet (registered trademark), Infiniband, or wireless. The connection topology is not limited to the configuration shown in Fig. 2. For example, the drive 214 may be configured independent of the node 210, i.e., may be an externally connected drive.
[0040] The management node 230 may be a general-purpose computer. The management node 230 includes, for example, a processor 231 and a memory 232.
[0041] The processor 231 is, for example, a CPU, and performs various processes.
[0042] The memory 232 is typically a volatile memory, and stores control information and data necessary to realize the functions of the management node 230. The memory 232 also stores, for example, a program executed by the processor 231.
[0043] FIG. 3 is a schematic diagram showing an overview of a remote copy configuration according to one embodiment.
[0044] A plurality of remote copy pairs are established between the primary site 201P and the secondary site 201S. Specifically, for example, two consistency groups 401 (401a, 401b) are established between the primary site 201P and the secondary site 201S. The consistency group 401 is composed of one or more remote copy pair JNLGs 402 that guarantee consistency. The JNLGs 402 include one or more PVOLs and one or more PJVOLs 403. In the consistency group 401, a plurality of PVOLs are copied to an SVOL while maintaining consistency. More specifically, for example, in the consistency group 401, update differential data up to the same time for a plurality of PVOLs 102 is copied to a plurality of SVOLs. Furthermore, control of the consistency group 401 (consistency control) is managed by the PJVOL. The update differential data of one or more PVOLs is stored in the PJVOL together with metadata such as the write time. When the primary site 201P transfers data from the PVOL to the secondary site 201S, it transfers the update differential data written to the PJVOL up to the same time to the secondary site 201S. This makes it possible to copy data to the SVOL while maintaining consistency in the update times between multiple PVOLs.
[0045] For example, according to consistency group 401a, data is copied to SVOL1 and 2 of JNGL1 in secondary node 210S1 via PJVOL1 and SJVOL1 while maintaining the consistency of PVOL1 and 2 contained in JNGL1 in primary node 210P1.
[0046] Furthermore, according to consistency group 401b, while maintaining the consistency of PVOL3 of JNGL2 and PVOL4 of JNGL3 in primary node 210P2, data is copied to SVOL3 of JNLG2 in secondary node 210S2 and SVOL4 of JNGL3 in secondary node 210S3 via PJVOL2 of JNGL2 and PJVOL3 of JNGL3 in primary node 210P2, SJVOL2 of JNLG2 in secondary node 210S2, and SJVOL3 of JNLG3 in secondary node 210S3. PJVOLs and SJVOLs do not necessarily have a one-to-one correspondence; for example, they may have a one-to-many, many-to-one, or many-to-many correspondence. PJVOLs may be areas on memory 212.
[0047] Furthermore, the consistency group 401 may be configured by the JNLG 402 in one node 210 in the site 201 , or may be configured by the JNLG 402 in multiple nodes 210 in the site 201 .
[0048] FIG. 4 is a schematic diagram showing an overview of a remote copy process according to an embodiment.
[0049] First, the application 502 running on the host 51 issues a write request specifying PVOL1 to the primary node 210P1. Upon receiving the write request, the primary node 210P1 writes data A and B associated with the write request to PVOL1, and further writes a JNL including data A and B as update differential data to PJVOL1.
[0050] Next, the primary node 210P1 transfers the JNL (update differential data) written to PJVOL1 to SJVOL1 and SJVOL1(S) of the secondary site 201S. At this time, if multiple paths have been established between the primary site 201P and the secondary site 201S, any path may be used to transfer the JNL. Normally, the primary node 210P1 transfers the JNL to the secondary node 210S1 that has ownership of SVOL1 paired with PVOL1. However, if a failure occurs on the path that has ownership, the primary node 210P1 may transfer the JNL to a secondary node 210S2 or the like that does not have ownership. For example, when primary node 210P1 transfers a JNL to secondary node 210S2 which does not have ownership, secondary node 210S2 transfers the received JNL to secondary node 210S1 which does have ownership, and secondary node 210S1 writes the JNL to SJVOL1.
[0051] Next, secondary node 210S1 writes data A and B from the JNL written to SJVOL1 to SVOL1. Data A and B written to SVOL1 are then written to drive 214a via storage pool 504a. If drive 214a is configured as a Direct Attached Storage (DAS) in which the node 210 and drive 214 are connected one-to-one, the JNL is written to drive 214a installed in secondary node 210S1. By writing all of the data to be copied to SVOL1 to drive 214a of secondary node 210S1, which has ownership of SVOL1, in this way, when data is later read from SVOL1, there is no need to read the data from another node. This eliminates inter-node transfer processing and enables high-speed read processing.
[0052] The storage pool 504 may be an area based on one or more drives 214. Storage functions such as thin-provisioning, compression, or deduplication are provided, and processing of the storage functions required for data written to the storage pool 504 is performed.
[0053] When writing data to drive 214a, secondary node 210S1 also writes redundant data of the written data to drive 214b of secondary node 210S2 to protect the data from node failure. When writing redundant data, if the data protection policy is replication, a replica of the data is written to drive 214b as redundant data. On the other hand, if the data protection policy is erasure coding, parity is calculated from the data, and the calculated parity is written to drive 214b as redundant data.
[0054] Although not shown, the primary node 210P1 transfers the write-target data to be written to PVOL1 to the primary node 210P2 (redundancy), and the primary node 210P2 receives the data and writes it to PVOL1(S). The primary node 210P2 also writes JNL to PJVOL1(S). The JNL written to PJVOL1(S) may be JNL transferred from the primary node 210P1, or may be JNL generated based on the data written to PVOL1(S). In this way, JNLG1 is maintained, which includes PVOL1(S) as a copy of PVOL1, and PJVOL1(S) as a copy of PJVOL1.
[0055] FIG. 5 is a schematic diagram showing an overview of a process for recovering from a node failure according to an embodiment.
[0056] SCS730 is running in secondary nodes 210S1, 210S2, and 210S3. Each secondary node has an SCS(A) and an SCS(S) that belongs to the same CSC group as the SCS(A) of another secondary node. For example, secondary node 210S1 has SCS1(A) and SCS3(S), secondary node 210S2 has SCS2(A) and SCS1(S), and secondary node 210S3 has SCS3(A) and SCS2(S). SCSx(A) and SCSx(S) belong to SCS group x, and there may be more than one SCSx(S).
[0057] In order to take over the remote copy pair information of the secondary node 210S1, the secondary node 210S2 has a copy of the configuration information of SVOL1 and SJVOL1 contained in JNLG1 owned by the secondary node 210S1. The secondary node 210S2 also stores redundant data of the data written to the drive 214a of the secondary node 210S1 in the drive 214d. Furthermore, the secondary node 210S2 has established a path (communication path) with the primary node 210P1.
[0058] For example, if secondary node 210S1 stops due to a failure, secondary node 210S2, which detects the failure of secondary node 210S1, takes over the processing of SCS1(A) of secondary node 210S1, and SCS1(S) becomes SCS1(A). Secondary node 210S2 communicates with primary node 210P1 and continues remote copy processing with JNLG1. In other words, a failover occurs from SCS1(A) of secondary node 210S1 to SCS1(S) of secondary node 210S2. As a result, even if a node failure occurs in one of the secondary nodes 210S, another secondary node 210S can continue remote copying from the primary site 201P.
[0059] FIG. 6 is a configuration diagram of a memory of a storage node according to an embodiment.
[0060] The memory 212 stores a control information table 710 and an SCS 730. The control information table 710 includes a system configuration management table 711, a pair configuration management table 712, a path management table 713, a remote copy processing performance management table 714, and an operating environment constraints management table 715. For example, the various tables and the SCS 730 included in the control information table 710 are expanded in the memory 212 while the processes in which they are used are being executed, and may be stored in the drive 214 at other times as a precaution against power outages or the like.
[0061] FIG. 7 is a diagram illustrating the configuration of a system configuration management table according to an embodiment.
[0062] The system configuration management table 711 includes a node configuration management table 810, a drive configuration management table 820, and a port configuration management table 830. Each site 201 has a node configuration management table 810 for the multiple nodes 210 present in that site 201, and each node 210 has a drive configuration management table 820 and a port configuration management table 830 for the drives 214 within its own node 210.
[0063] The node configuration management table 810 is provided for each site 201, and stores information indicating the configuration of the nodes 210 provided in the site 201 (such as the relationship between the nodes 210 and the drives 214). The node configuration management table 810 stores an entry corresponding to each node 210. The entry of the node configuration management table 810 includes fields for a node ID 811, a status 812, a drive ID list 813, and a port ID list 814.
[0064] The node ID 811 stores the ID (node ID) of the node 210 corresponding to the entry. The status 812 stores information indicating the status of the node 210 corresponding to the entry. The status of the node 210 may be, for example, "Normal", "Warning", or "Failure". The drive ID list 813 stores the IDs (drive IDs) of one or more drives 214 provided in the node 210 corresponding to the entry. The port ID list 814 stores the IDs of the ports 215 provided in the node 210 corresponding to the entry.
[0065] The drive configuration management table 820 is provided for each node 210, and stores information indicating the configuration of the drives 214 provided in the node 210. The drive configuration management table 820 stores an entry corresponding to each drive 214. The entry of the drive configuration management table 820 includes fields for a drive ID 821, a status 822, and a size 823.
[0066] The drive ID of the drive 214 corresponding to the entry is stored in the drive ID 821. Information indicating the state of the drive 214 corresponding to the entry is stored in the status 822. The capacity of the drive 214 corresponding to the entry is stored in the size 823.
[0067] The port configuration management table 830 is provided for each node 210, and stores information indicating the configuration of the ports 215 provided in the node 210. The port configuration management table 830 stores an entry corresponding to each port. An entry in the port configuration management table 830 stores fields for a port ID 831, a state 832, and an address 833.
[0068] The port ID 831 stores the ID of the port 215 corresponding to the entry. The status 832 stores information indicating the status of the port 215 corresponding to the entry. The address 833 stores an address on the network assigned to the port 215 corresponding to the entry. The address may be in the form of an IP (Internet Protocol), a WWN (World Wide Name), a MAC (Media Access Control) address, or the like.
[0069] FIG. 8 is a diagram showing the configuration of a pair configuration management table according to one embodiment.
[0070] The pair configuration management table 712 includes a VOL management table 910 , a pair management table 920 , and a JNL management table 930 .
[0071] The VOL management table 910 stores information indicating the configuration of a VOL 403. The VOL management table 910 stores an entry corresponding to each VOL 403. An entry in the VOL management table 910 includes fields for a VOL ID 911, an owner node ID 912, a retreat node ID 913, a size 914, and an attribute 915.
[0072] The VOL ID 911 stores the ID of the VOL 403 corresponding to the entry. The owner node ID 912 stores the ID of the node 210 (owner node) that has ownership of the VOL 403 corresponding to the entry. The fallback node ID 913 stores the ID of the node 210 (backup destination node) that takes over processing in the event of a failure of the node 210 that has ownership of the VOL (SVOL) corresponding to the entry. The size 914 stores the capacity of the VOL 403 corresponding to the entry.
[0073] The attribute of the VOL 403 corresponding to the entry is stored in the attribute 915. The attributes of the VOL 403 include "NML_VOL" indicating a normal VOL not used for remote copy, "PVOL" meaning a primary VOL, "PJVOL" meaning a JVOL that stores update differential data of the PVOL, "SVOL" meaning a secondary VOL, and "SJVOL" meaning a JVOL that stores update differential data of the SVOL.
[0074] The pair management table 920 stores information indicating the configuration of a remote copy pair. The pair management table 920 stores entries corresponding to each JNLG group. The entries in the pair management table 920 include fields for a JNLG ID 921, a CTG ID 922, a PJVOL ID 923, a PVOL ID 924, an SJVOL ID 925, an SVOL ID 926, a PG-ID 927, and a status 928.
[0075] The JNLG ID 921 stores the ID of the JNLG corresponding to the entry. The CTG ID 922 stores the ID (CTG ID) of the consistency group that includes the JNLG corresponding to the entry. The PJVOL ID 923 stores the ID of one or more PJVOLs that belong to the JNLG corresponding to the entry. The PVOL ID 924 stores the ID of one or more PVOLs that belong to the JNLG corresponding to the entry. The SJVOL ID 925 stores the ID of one or more SJVOLs that belong to the JNLG corresponding to the entry. The SVOL ID 926 stores the ID of one or more SVOLs that belong to the JNLG corresponding to the entry. The PG-ID 927 stores the ID of the path group used by the remote copy pair that belongs to the JNLG corresponding to the entry. The status 926 stores the status of the remote copy pair in the JNLG corresponding to the entry. The copy pair states include "PAIR," which indicates that writes to the PVOL are periodically reflected in the SVOL; "COPY," which indicates that initial copying is in progress; and "SUSPEND," which indicates that synchronization between the PVOL and SVOL is not occurring (pair suspended state).
[0076] The JNL management table 930 stores information about JNLs. The JNL management table 930 stores entries corresponding to each JNL. An entry in the JNL management table 930 includes fields for a JNLG ID 931, a JNL ID 932, a P / SVOL ID 933, a P / SVOL address 934, a size 935, and a cache segment ID 936.
[0077] The JNLG ID 931 stores the ID of the JNLG to which the JNL corresponding to the entry belongs. The JNL ID 932 stores the ID of the JNL corresponding to the entry. The JNL ID corresponds to SEQ# and is, for example, a consecutive number in the JNLG. In other words, the JNL ID indicates the order of writing, and the data in the JNL is stored in the SVOL in the JNLG in the order of the JNL IDs.
[0078] The ID of the PVOL to which the data in the JNL corresponding to the entry is written and the ID of the SVOL to which the data in the JNL is written are stored in the P / SVOL ID 933. The storage address of the data in the PVOL to which the data in the JNL corresponding to the entry is written and the storage address of the data in the SVOL to which the data in the JNL is written are stored in the P / SVOL address 934.
[0079] The size of the JNL corresponding to the entry is stored in the size 935. The cache segment ID 936 stores the ID of the cache segment to which the data in the JNL corresponding to the entry is written, that is, the ID of an area in the cache provided in the memory 212.
[0080] Fig. 9 is a diagram showing the configuration of a path management table according to one embodiment. Each value in the path management table in Fig. 9 corresponds to a case where the paths shown in Fig. 1 are set in the computer system 101.
[0081] The path management table 713 stores information about the paths 60. The path management table 713 stores an entry corresponding to each path 60. The entry of the path management table 713 includes fields for a PG-ID 1031, a P-ID 1032, protocol information 1033, a status 1034, an active / standby type 1035, a local address 1036, and a destination address 1037.
[0082] The PG-ID 1031 stores the ID of the path group to which the path 60 corresponding to the entry belongs. The P-ID 1032 stores the ID of the path 60 corresponding to the entry. The protocol information 1033 stores information indicating the communication protocol of the path 60 corresponding to the entry. The status 1036 stores the status of the path 60 corresponding to the entry. The path status may be "Normal", which indicates normal, or "Failure", which indicates that a failure has occurred.
[0083] The Active / Standby type 1035 stores the type of the path corresponding to the entry, whether it is an active path or a standby path. The Local Address 1036 stores the port ( In this embodiment, the port on the secondary storage system 100S side is the initiator port, and the Destination Address 1037 stores the address of the port (target port) that is the target of the path 60 corresponding to the entry.
[0084] FIG. 10 is a configuration diagram of a remote copy processing performance management table according to an embodiment.
[0085] The remote copy processing performance management table 714 is provided for each node and stores information relating to the specifications of processing performance related to remote copy processing. The remote copy processing performance management table 714 includes fields for 1JNLG processing performance 1101 and 1 node processing performance 1102.
[0086] The 1JNLG processing performance 1101 stores the value of the processing performance that can be achieved in the remote copy processing for one JNLG at the node. The 1 node processing performance 1102 stores the value of the processing performance that can be achieved in the remote copy processing at the node. In the example of Fig. 10, the processing performance value in the remote copy processing for one JNLG is 24 MB / s, and the processing performance value in the remote copy processing at the node is 96 MB / s. From this, it can be seen that four JNLGs can be placed at this node.
[0087] FIG. 11 is a configuration diagram of an operating environment constraint management table according to an embodiment.
[0088] The operating environment constraint management table 715 is provided for each node and stores information about constraints in the operating environment. The operating environment constraint management table 715 includes fields for operating environment information 1103 and one-node on-premises network restriction 1104.
[0089] The operating environment information 1103 stores information indicating the environment in which the node is operating. Examples of environmental information include on-premise and cloud. The single-node on-premise NW limit 1104 stores the limit value of the communication volume for the network (NW) between the node and on-premise. The operating environment constraint condition management table 715 in FIG. 11 indicates that in cloud A, the communication volume is limited to 625 MB / s per node. The example entries in the operating environment constraint condition management table 715 are merely examples, and other constraint conditions may be stored.
[0090] Next, the configuration of the memory 232 of the management node 230 will be described.
[0091] FIG. 12 is a configuration diagram of a memory of a management node according to an embodiment.
[0092] The memory 232 stores a NW quality and path performance management table 301, a path number management table 302, a remote copy processing performance management table 303, an operating environment constraint condition management table 304, and a management control program 310 as an example of a path setting program.
[0093] The remote copy processing performance management table 303 and the operating environment constraints management table 304 can be determined as the table with the strictest constraints by obtaining the remote copy processing performance management table 714 and the operating environment constraints management table 715 from the nodes 210 of the primary site 201P and the secondary site 201S.
[0094] FIG. 13 is a diagram showing the configuration of a NW quality and path performance management table according to an embodiment.
[0095] The NW quality and path performance management table 301 stores information regarding the quality of the network and the performance of the paths between the primary site 201P and the secondary site 201S. The NW quality and path performance management table 301 includes fields for a window size 1301, a round trip time 1302, a single path performance 1303, and an upper limit performance for the number of paths 1304.
[0096] Window size 1301 stores a window size indicating the amount of data that can be transmitted at one time in communication between the primary site 201P and the secondary site 201S. Round trip time 1302 stores the RTT from when data is transmitted until an acknowledgement is received in communication between the primary site 201P and the secondary site 201S. Single path performance 1303 stores a performance value of the transmission amount for one path between the primary site 201P and the secondary site 201S. Number of path upper limit performance 1304 stores a performance value (upper limit performance value) indicating the upper limit of the transmission amount for multiple paths belonging to one path group. In this embodiment, each field stores a previous value and a current value. Here, if the network connection protocol is iSCSI, the performance value of one path is calculated by window size / RTT, and the upper limit performance value is calculated by the performance value of one path x the maximum number of paths in the path group (e.g., 8 in this example).
[0097] FIG. 14 is a diagram showing the configuration of a path number management table according to an embodiment.
[0098] The number of paths management table 302 manages information regarding the number of active paths and the number of standby paths in a path group. The number of paths management table 302 stores an entry for each path group. One path group may be assigned to each node, or multiple path groups may be assigned to one node. An entry in the number of paths management table 302 includes fields for an owner node 1401, a JNLG placement 1402, a total JNLG required performance 1403, a total actual IO load [previous value] 1404, a total actual IO load [current value] 1405, a PG-ID 1406, a number of active paths 1407, and a number of standby paths 1408. The entry may also include fields for storing the address of the initiator port (local address) and the address of the target port (destination address) of a path belonging to the path group corresponding to the entry.
[0099] The owner node 1401 stores identification information (e.g., node name) of the node that is the owner of the JNLG that uses the path group corresponding to the entry. The JNLG allocation 1402 stores identification information (e.g., JNLG name) of one or more JNLGs that use the path group for the entry. The JNLG required performance total 1403 stores the total value of performance required for remote copying of the JNLG that uses the path group corresponding to the entry (total required performance). The actual IO load total [previous value] 1404 stores the total value of the actual IO load at the previous time by the JNLG that uses the path group corresponding to the entry. The actual IO load total [current value] 1405 stores the total value of the actual IO load at the current time by the JNLG that uses the path group corresponding to the entry. The total actual IO load can be acquired, for example, from the node 210 of the primary site 201P. The PG-ID 1406 stores the ID of the path group corresponding to the entry. The number of paths (active paths) set in a node including an active SCS 730 that performs remote copy processing of JNLG using the path group corresponding to the entry is stored in the number of active paths 1407. The number of standby paths 1408 stores the number of paths (standby paths) set in a node including a standby SCS 730 that performs remote copy processing of JNLG using the path group corresponding to the entry.
[0100] Next, the processing operation in the computer system 101 will be described.
[0101] 15 is a flowchart of a remote copy preparation process according to one embodiment. It is assumed that before the remote copy preparation process is executed, each node 210 of the primary site 201P and the secondary site 201S has already been started up.
[0102] The management control program 310 of the management node 230 (strictly speaking, the processor 231 that executes the management control program 310) acquires connection information (for example, IP addresses) for connecting the nodes 210 of the primary site 201P and secondary site 201S (S11). Here, the connection information may be acquired by having the user (administrator) enter it interactively, or by reading text created in advance by the user.
[0103] Next, the management control program 310 acquires information on the volume to be copied (volume information to be copied, see FIG. 16) from the user (S12). Here, the volume information to be copied may be acquired by having the user enter the information interactively, or by reading text created in advance by the user.
[0104] FIG. 16 is a configuration diagram of copy target volume information according to one embodiment.
[0105] The copy target volume information 305 includes an entry for each JNLG. An entry of the copy target volume information 305 includes fields for a JNLG ID 1601, a CTG ID 1602, and a VOL ID 1603. The JNLG ID 1601 stores the ID of the JNLG corresponding to the entry. The CTG ID 1602 stores the ID of the CTG to which the JNLG corresponding to the entry belongs. The VOL ID 1603 stores the ID of the VOL belonging to the JNLG.
[0106] For example, the second entry in the copy target volume information 305 means that a JNLG with a JNLG ID of 2 belongs to a CTG with a CTG ID of 2, and that the JNLG includes PVOLs with PVOL IDs of 5 and 6. In this case, the PVOLs with PVOL IDs 5 and 6 are copied to the secondary site with consistency maintained so that the write order is guaranteed.
[0107] 15, the management control program 310 performs a network quality check process (S13). Specifically, the management control program 310 acquires the window size and RTT for communication between the primary storage system 100P and the secondary storage system 100S, stores the current values as the previous values in the window size 1301 and round trip time 1302 of the NW quality and path performance management table 301, and stores the acquired window size and RTT as the current values.
[0108] Next, the management control program 310 performs a single path performance calculation process to calculate a performance value for one path (S14). Specifically, the management control program 310 calculates a performance value for one path by dividing the window size by the RTT, and stores the current value as the previous value in the single path performance 1303 of the NW quality and path performance management table 301, and stores the calculated performance value as the current value.
[0109] Next, the management control program 310 performs an upper limit performance calculation process to calculate a performance value (upper limit performance value) when all configurable paths in the path group are used (S15). Specifically, the management control program 310 calculates the upper limit performance value by multiplying the performance value of one path by the maximum number of paths in the path group, and stores the current value as the previous value in the path number upper limit performance 1304 of the NW quality and path performance management table 301, and stores the calculated upper limit performance value as the current value.
[0110] Next, the management control program 310 performs device performance acquisition processing (S16). Specifically, the management control program 310 acquires information from the remote copy processing performance management table 714 from each node 210 of the primary site 201P and secondary site 201S, and stores the information of the node with the lowest performance from the acquired information of the remote copy processing performance management table 714 in the remote copy processing performance management table 303. For example, in this embodiment, since the performance of the node of the secondary site 201S is low, information of the node of the secondary site 201S is stored in the remote copy processing performance management table 303.
[0111] Next, the management control program 310 performs operating environment constraint acquisition processing (S17). Specifically, the management control program 310 acquires information from the operating environment constraint management table 715 from each node 210 of the primary site 201P and the secondary site 201S, and stores the information with the strictest constraints among the acquired information from the remote copy processing performance management table 714 in the operating environment constraint management table 304. For example, in this embodiment, there are constraints on the secondary site 201S side and no constraints on the primary site 201P side, so information about the secondary site 201S is stored in the operating environment constraint management table 304.
[0112] Next, the management control program 310 executes a remote copy configuration construction process (see FIG. 17) that sets the remote copy configuration (VOLs and paths) (S18).
[0113] Next, the management control program 310 issues a remote copy pair creation instruction to the primary storage system 100P of the primary site 201P (S19), and ends the processing. This enables communication between the primary storage system of the primary site and the secondary storage system of the secondary site, and the remote copy processing (see FIG. 19) begins.
[0114] Next, the remote copy configuration construction process in step S18 will be described in detail.
[0115] FIG. 17 is a flowchart of a remote copy configuration construction process according to one embodiment.
[0116] The management control program 310 executes the processing of loop A (S21 to S27) for each JNLG in the primary site 201P. Here, the JNLG to be processed is called the target JNLG.
[0117] In the processing of loop A, the management control program 310 performs a 1JNLG required performance check to check the performance required by the target JNLG (S21). Specifically, the management control program 310 checks the performance value required by the target JNLG (1JNLG required performance value) from IO statistics managed by the node of the primary site 201P or from input by the user.
[0118] Next, the management control program 310 checks whether the 1JNLG required performance value is within the upper limit performance value for the number of paths, which is the upper limit performance of the path group (1), and performs an upper limit performance check for the number of paths (S22).
[0119] Next, the management control program 310 checks whether the 1JNLG required performance value is within the 1JNL processing performance value of the copy source and copy destination nodes (S23), and performs (2) device performance check processing. Here, if the 1JNLG required performance value is not within the 1JNL processing performance value, an error occurs in which the JVOL JNL overflows, so in (2) device performance check processing, it is checked whether such a situation will occur.
[0120] Next, the management control program 310 performs an operating environment constraint condition check process (3) to check whether or not constraint conditions in the operating environment are met (S24).
[0121] Next, the management control program 310 determines whether any of the constraints in the check processes (1), (2), and (3) have been exceeded (S25). As a result, if the constraints in all of the check processes (1), (2), and (3) have not been exceeded (S25: NO), the management control program 310 changes the JNLG to be processed to the next JNLG and executes the processing of loop A.
[0122] On the other hand, if the constraints of any of the check processes (1), (2), and (3) are exceeded (S25: YES), the management control program 310 divides the JNLG so that it fits within the constraints of all of the check processes (1), (2), and (3) (S26), sets the divided JNLGs into one CTG (S27), changes the JNLG to be processed to the next JNLG, and executes the processing of loop A. Note that step S27 does not have to be executed.
[0123] When the processing of loop A has been executed for all JNLGs to be processed, the management control program 310 exits loop A and performs JNLG placement determination processing to determine the placement of the JNLGs (S28). In the JNLG placement determination processing, the management control program 310 refers to the information in the table and determines the node on which to place the JNLG so that the total required performance value of the JNLGs to be placed on each node does not exceed the processing performance of one node.
[0124] Next, in step S28, if JNLG cannot be arranged with the existing number of nodes, the management control program 310 determines the number of nodes to be added and, for example, instructs the user to add nodes (S29).
[0125] Next, the management control program 310 refers to the NW quality and path performance management table 301, determines the number of paths that meet the performance requirements, and stores the determined details in the path number management table 302 (S30).
[0126] Specifically, for example, when one path group is assigned to one node, the management control program 310 calculates the minimum number of paths required for the active SCS (integer value: required number) by dividing the total performance requirement value of the JNLGs to be placed on one node by the performance value of one path. In this case, the number of paths for the active SCS that are actually constructed should be equal to or greater than the calculated number of paths; for example, if the calculated number of paths is used, the number of paths used can be reduced or more paths can be set for the standby SCS.
[0127] Furthermore, the management control program 310 determines the number of paths for the standby SCS that belongs to the same SCS group as the active SCS to be one of the following:
[0128] For example, if it is possible to set the same number of paths as the active SCS within the maximum number of paths in the path group, the number of paths for the standby SCS is determined to be the same as the number of paths for the active SCS. In this way, it is possible to quickly achieve the same performance as before the failover without having to set up paths after the failover.
[0129] Furthermore, if it is not possible to set the same number of paths as the active SCS within the maximum number of paths in the path group, the number of paths for the standby SCS is determined to be the remaining number that can be set in the path group. In this case, after a failover, the number of paths can be set to the same number of paths as the original active SCS. In this way, paths are set in the standby SCS in advance, meaning that a state where communication is possible is ensured, so paths can be used quickly after a failover.
[0130] Furthermore, the number of paths for the standby SCS may be set to 1. In this way, a path is set in advance to the standby SCS, i.e., a state in which communication is possible is ensured, so that the path can be used quickly after a failover, and the number of paths at the source and destination nodes of the path can be reduced, and when the number of paths that can be set at a port or node is limited, the capacity for setting paths to other destinations can be increased.
[0131] Also, the number of paths for the standby SCS may be set to 0. In this case, the number of paths at the source and destination nodes of the path can be reduced, and when the number of paths that can be set at a port or node is limited, the allowable number of paths that can be set to other destinations can be increased.
[0132] Furthermore, if the total performance requirement value of multiple JNLGs on one node exceeds the upper limit performance value of one path group, multiple path groups can be assigned to one node and the path groups used can be divided by JNLG. This allows for the addition of more path groups and the setting of paths that meet the performance requirements of the JNLGs when one path group is not sufficient.
[0133] Next, the management control program 310 executes system configuration processing to configure a system based on the determined number of nodes, JNLG arrangement, and number of paths (S31), and terminates the remote copy configuration configuration processing. In the system configuration processing, configuration is performed in the primary storage system 100P and the secondary storage system 100S under the control of the management control program 310, and information according to the configuration status is registered in the system configuration management table 711, pair configuration management table 712, and path management table 713. Here, the connection destinations of the paths in the primary storage system 100P may be distributed to multiple ports of multiple nodes. In the system configuration processing, the management control program 310 creates not only the PVOLs and PJVOLs of the primary site 201P, but also the SVOLs and SJVOLs of the secondary site 201S.
[0134] 18 is a diagram showing an example of a JNLG layout design according to an embodiment. The JNLG layout design example in Fig. 18 corresponds to the settings of the number of paths management table 302 in Fig. 14.
[0135] In the example of Figure 18, JNLG1, JNLG2, and JNLG3 are allocated to Node1. The required performance of JNLG1, JNLG2, and JNLG3 is 21MB / s, 22MB / s, and 23MB / s, respectively, and the total required performance of these is 66MB / s. Here, the required performance of each JNLG is 24MB / s or less, which is the processing performance of one JNLG, and the total required performance is 96MB / s or less, which is the processing performance of one node, and these JNLGs are allocated so that processing can be executed appropriately.
[0136] JNLG4, JNLG5, and JNLG6 are located on Node 2. The required performance of JNLG4, JNLG5, and JNLG6 is 16MB / s, 18MB / s, and 16MB / s, respectively, and the total required performance is 50MB / s. Here, the required performance of each JNLG is 24MB / s or less, which is the processing performance of one JNLG, and the total required performance is 96MB / s or less, which is the processing performance of one node, and the JNLGs are located so that processing can be performed appropriately.
[0137] JNLG7, JNLG8, JNLG9, and JNLG10 are located on Node3. The required performance of JNLG7, JNLG8, JNLG9, and JNLG10 is 22MB / s, 22MB / s, 22MB / s, and 24MB / s, respectively, and the total required performance is 90MB / s. Here, the required performance of each JNLG is 24MB / s or less, which is the processing performance of one JNLG, and the total required performance is 96MB / s or less, which is the processing performance of one node, and the JNLGs are located so that processing can be performed appropriately.
[0138] Next, the remote copy process will be explained.
[0139] 19 is a flowchart of a remote copy process according to an embodiment. The remote copy process is repeatedly executed, for example, triggered by the remote copy pair creation instruction in step S19 of FIG.
[0140] SCS1(A) issues an RDJNL command (S41). Next, SCS1(A) selects a path to use (S42). Here, SCS1(A) selects and uses from the paths set for the active SCS. Here, if multiple paths are set, the path to send from is selected using, for example, round robin. In this embodiment, the number of paths that satisfies the required performance of JNLG is set, so that remote copying is carried out appropriately.
[0141] Next, SCS1(A) sends an RDJNL command to the primary storage system 100P using the selected path 60 (S43). SCS1(A) receives the JNL sent from the primary storage system 100P via path 60 in response to the RDJNL command (S44). SCS1(A) stores the received JNL in SJVOL1 (S45).
[0142] SCS1(A) reflects the unreflected JNL in SJVOL1 to SVOL1 in the order of SEQ# (S46). As a result, the data in the unreflected JNL is stored in SVOL1.
[0143] Although details are omitted, in remote copy processing, the state of the pair group that includes the remote copy pair and the values in various other tables are updated as appropriate.
[0144] Next, a failover process will be described in which a failure occurs in the active SCS and a failover to the standby SCS occurs.
[0145] 20 is a flowchart of a failover process according to one embodiment. The failover process is executed when the standby SCS detects that a failure has occurred in the active SCS. Although the process is described as being executed by the standby SCS, at least part of the process may also be executed by the management node.
[0146] The standby SCS determines whether the number of paths for the active SCS and the number of paths for the standby SCS are different (S51).
[0147] As a result, if the number of paths for the active SCS and the number of paths for the standby SCS are the same (S51: NO), this means that failover can be performed without setting up paths, so the standby SCS proceeds to step S53.
[0148] On the other hand, if the number of paths for the active SCS and the number of paths for the standby SCS are not the same (S51: YES), the standby SCS dynamically creates paths so that the number of paths for the standby SCS matches the number of paths for the active SCS before the failure occurred (S52), and the process proceeds to step S53.
[0149] In step S53, the standby SCS executes a process to take over the processing of the active SCS, and then ends the failover process.
[0150] Next, the path number update process will be described.
[0151] 21 is a flowchart of a path number update process according to an embodiment. The path number update process is executed, for example, periodically.
[0152] The management control program 310 acquires path information from the secondary site 201S and determines whether or not any of the paths has a failure (S61). If the result shows that no path has a failure (S61: NO), the management control program 310 advances the processing to step S63.
[0153] On the other hand, if a failure has occurred in any of the paths (S61: YES), the management control program 310 dynamically generates a new path for the path in which the failure has occurred (S62), and proceeds to step S63.
[0154] In step S63, the management control program 310 acquires information on NW quality from the secondary site 201S and determines whether there has been a change in NW quality. As a result, if there has been no change in NW quality (S63: NO), the management control program 310 proceeds to step S65.
[0155] On the other hand, if there is a change in the network quality (S63: YES), the management control program 310 performs processing to change the main path so that it is appropriate for the new network quality, and proceeds to step S65. Note that the processing to change the number of paths is similar to the processing in step S30 of FIG. 17.
[0156] In step S65, the management control program 310 acquires information on the IO load of JNLG from the primary site 201P, and determines whether or not there has been a change in the IO load status. If the result is that there has been no change in the IO load (S65: NO), the management control program 310 ends the processing.
[0157] On the other hand, if there is a change in the IO load status (S65: YES), the process changes the main path to suit the current IO load, and then ends the process. Note that the process of changing the number of paths can be performed by calculating using the current IO load instead of the performance requirements in the process of step S30 in Figure 17.
[0158] According to the above-described path number update process, if a failure occurs in a path, if there is a change in the network quality, or if there is a change in the IO load situation, the number of paths can be updated to an appropriate number depending on each situation.
[0159] Fig. 22 is a schematic diagram showing the state after a failover according to one embodiment. Fig. 22 shows the state in which, after a path is set as shown in Fig. 1, a failure occurs in Node 1, and SCS1(S) of Node 2 becomes SCS1(A) as a result of a failover.
[0160] As shown in Figure 1, Node2, which stores SCS1(S), has the same number of paths (three) set for SCS1(S) as SCS1(A). Therefore, the failover process results in the state shown in Figure 22 without setting up new paths, and SCS1(S) on Node2 can quickly become capable of processing as SCS1(A).
[0161] FIG. 23 is a schematic diagram showing an overview of dynamic addition of a standby path according to one embodiment.
[0162] Here, in the state shown in FIG. 23, it is assumed that the RTT indicating the NW quality is 20 ms and the total performance requirement of JNLG is 66 MB / s.
[0163] In this case, the number of paths to be set in the active SCS is calculated to be six, and six paths are set as paths for SCS1(A) in Node1 that stores SCS1(A). Here, if the maximum number of paths in one path group is eight, it is not possible to set the same number of paths as SCS1(A) in Node2 that stores SCS1(S). Therefore, two paths are set in Node2, which is the maximum number of remaining paths that can be set in a path group.
[0164] FIG. 24 is a schematic diagram showing a state after a standby path has been dynamically added according to an embodiment.
[0165] Fig. 24 is a schematic diagram showing the state after dynamic addition of a standby path according to one embodiment. Fig. 24 shows the state in which, after the path is set as shown in Fig. 23, a failure occurs in Node 1, and SCS1(S) of Node 2 becomes SCS1(A) due to a failover.
[0166] In the state shown in Figure 23, if a failure occurs in Node1, a failover process is performed to fail over to SCS1(S). In the failover process, four paths are dynamically created so that the number of paths becomes six, the same as the number of paths in the original SCS1(A). In this case, four paths from Node1 that stored SCS1(A) are deleted.
[0167] In this way, even if the failover process does not allow the same number of paths as SCS1(A) to be set to the node that initially stores SCS1(S), the failover process makes it possible to set the same number of paths, and processing can be performed with the same processing performance as SCS1(A).
[0168] Next, the process of updating the number of paths when the network quality changes will be described.
[0169] Fig. 25 is a schematic diagram showing an overview of a process for updating the number of paths when the network quality changes according to an embodiment. Fig. 25 shows a state in which the network quality changes after a path is established as shown in Fig. 1, and the number of paths is updated.
[0170] Here, FIG. 25 shows an example in which the RTT, which indicates the network quality, has deteriorated to 15 ms.
[0171] When the RTT deteriorates to 15 ms, a change in network quality is detected in step S63 of Fig. 21, and the number of paths is determined in step S64. In this example, since the RTT is 15 ms, the number of paths required at that time (the latest required number) is determined to be four. Based on this, Node 1, which stores SCS1(A), adds one missing path, and Node 2, which stores SCS1(S), also adds one path. This makes it possible to increase the number of paths that SCS1(A) can use, and update the number of paths to one appropriate for the changed network quality.
[0172] Next, the process of updating the number of paths when the IO load changes will be described.
[0173] Fig. 26 is a schematic diagram showing an overview of the process of updating the number of paths according to the actual IO load according to one embodiment. Fig. 26 shows a state in which the IO load has changed and the number of paths has been updated after a path has been set, as shown in Fig. 1.
[0174] Here, FIG. 26 shows an example in which the IO load has increased to 90 MB / s.
[0175] When the IO load increases to 90 MB / s, a change in the IO load is detected in step S65 of Fig. 21, and the number of paths is determined in step S66. In this example, since the IO load is 90 MB / s, the required number of paths (load-considered number) is determined to be four. Based on this, Node1, which stores SCS1(A), adds one missing path, and also adds one path to Node2, which stores SCS1(S). This makes it possible to increase the number of paths that SCS1(A) can use, and update the number of paths to one appropriate for the changed IO load.
[0176] The present invention is not limited to the above-described embodiment, and can be modified appropriately without departing from the spirit of the present invention. [Explanation of symbols]
[0177] 100P...primary storage system, 100S...secondary storage system, 101...computer system, 201...site, 201P...primary site, 201S...secondary site, 210...node, 230...management node
Claims
1. 1. A management device for managing paths between a first storage system and a second storage system in a computer system comprising: a first storage system; and a second storage system that is a copy destination of a predetermined copy unit of the first storage system, the management device comprising: the second storage system includes a first node having a first controller that processes copying of the copy units, and a second node having a second controller that performs copy processing in place of the first controller when a failure occurs in the first controller; the management device has a processor; The processor: calculate a required number of paths, which is the number of paths required for the performance requirements, based on the quality of the network between the first storage system and the second storage system and the performance requirements related to the communication volume required for copying in the copy unit; Setting up more than the required number of paths between the first storage system and the first node Management device.
2. The processor: The required number of paths is set between the first storage system and the first node. The management device according to claim 1 .
3. The maximum number of paths in a path group that are recognized as the same path is limited. The processor: If the number of paths established between the first storage system and the first node is less than the maximum number, one or more paths are established between the first storage system and the second node. The management device according to claim 1 .
4. The processor: If there is a margin of more than the required number up to the maximum number, the required number of paths is set between the first storage system and the second node. The management device according to claim 3 .
5. The processor: If there is not enough space for the required number of paths up to the maximum number, a failure occurs in the first controller, and after failing over the processing of the first controller to the second controller, additional paths are added so that the number of paths between the first storage system and the second node reaches the required number. The management device according to claim 4 .
6. The processor: sequentially checking the quality of the network between the first storage system and the second storage system, and calculating the latest required number of paths, which is the number of paths required for the performance requirements at that time, based on the checked network quality and the performance requirements related to the communication volume required for copying in units of copy; The number of paths between the first storage system and the first node is adjusted so that it is equal to or greater than the latest required number. The management device according to claim 1 .
7. The processor: Checking the status of the path between the first storage system and the first node, and if a failure occurs in the path, setting up another path between the first storage system and the first node. The management device according to claim 1 .
8. The processor: confirming an actual IO load from the first storage system to the first controller, and calculating a load-considered number, which is the number of paths that can accommodate the IO load, based on the IO load; The number of paths between the first storage system and the first controller is adjusted so that it is equal to or greater than the load-considered number. The management device according to claim 1 .
9. The maximum number of paths in a path group that are recognized as the same path is limited. The processor: When the required number exceeds the maximum number, when the node of the first storage system or the node of the second storage system does not satisfy the processing performance required for copying the copy unit, or when the node of the second storage system does not satisfy the constraints on communication in the network, the copy unit is divided into a plurality of copy units to resolve the situation. The management device according to claim 1 .
10. The processor: The divided copy units are set in one consistency group. The management device according to claim 9 .
11. The maximum number of paths in a path group that are recognized as the same path is limited. The processor: If the performance requirement regarding the amount of communication required for copying a plurality of copy units arranged in one node of the first storage system exceeds the performance of the maximum number of paths in one path group, different path groups are assigned to the plurality of copy units. The management device according to claim 1 .
12. The processor: The connection destinations of the paths set between the first storage system and the first node are distributed to a plurality of ports of a plurality of nodes of the first storage system. The management device according to claim 1 .
13. The processor: For a plurality of copy units, the copy units are arranged in each node of the second storage system so that the processing performance required for copying the copy units arranged in each node is equal to or less than the performance of each node, and a path is set between each node and the first storage system. The management device according to claim 1 .
14. 1. A path setting method for a computer system comprising a first storage system and a second storage system that is a copy destination of a predetermined copy unit of the first storage system, the method being performed by a management device that manages paths between the first storage system and the second storage system, the method comprising: the second storage system includes a first node having a first controller that processes copying of the copy units, and a second node having a second controller that performs copy processing in place of the first controller when a failure occurs in the first controller; The management device calculate a required number of paths, which is the number of paths required for the performance requirements, based on the quality of the network between the first storage system and the second storage system and the performance requirements related to the communication volume required for copying in the copy unit; Setting up more than the required number of paths between the first storage system and the first node How to set the path.
15. 1. A path setting program executed by a computer that manages a path between a first storage system and a second storage system in a computer system comprising the first storage system and a second storage system that is a copy destination of a predetermined copy unit of the first storage system, the program comprising: the second storage system includes a first node having a first controller that processes copying of the copy units, and a second node having a second controller that performs copy processing in place of the first controller when a failure occurs in the first controller; The computer, calculates a required number of paths, which is the number of paths required for the performance requirements, based on the quality of the network between the first storage system and the second storage system and the performance requirements related to the communication volume required for copying in the copy unit; Setting up more than the required number of paths between the first storage system and the first node Path setting program.
Citation Information
Patent Citations
Computer system and management method for computer system
WO2016194096A1