Storage system and communication path control method
The storage system optimizes remote copy pair creation by using a discovery node to facilitate direct communication path setup between owner nodes, addressing CPU overhead and operational complexity while reducing costs and performance issues.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-02-28
- Publication Date
- 2026-03-18
AI Technical Summary
Existing storage systems face challenges in setting up communication paths between nodes with owner rights during remote copy pair creation, leading to increased CPU overhead, network bandwidth usage, and latency, as well as complex operational procedures and higher costs.
A storage system and method that involves a discovery node to provide node information for establishing communication paths between primary and secondary sites, allowing the primary volume owner node to set up paths directly with secondary volume owner nodes based on obtained information, reducing operational costs and performance adverse effects.
This approach reduces operating costs and prevents performance degradation during remote copy processing by optimizing communication path setup between storage nodes.
Smart Images

Figure 0007832904000001 
Figure 0007832904000002 
Figure 0007832904000003
Abstract
Description
Technical Field
[0001] The present invention relates to a storage system and a communication path control method, and is suitable for application to a storage system and a communication path control method for creating a remote copy pair between a primary site and a secondary site.
Background Art
[0002] Conventionally, a storage system composed of a plurality of storage nodes is known. For example, a storage system is provided by executing predetermined software in each storage node (hereinafter referred to as a node).
[0003] In addition, as a technique for replicating a storage system between a plurality of geographically separated data centers in order to continue business even in the event of a disaster, there is a remote copy function. In a storage system composed of a plurality of nodes and equipped with a remote copy function, the site that processes business applications during normal times is called the primary site, and when a site-wide failure occurs on the primary site side and the storage system stops, the site that is switched from the primary site and operated is called the secondary site.
[0004] For example, in Patent Document 1, in a configuration in which the secondary site is composed of a plurality of storage devices, when forming a remote copy pair between the primary site and the secondary site, the storage devices on the secondary site side are selected so as to satisfy the performance and capacity requirements of the primary site, and a technique for constructing a pair is disclosed.
Prior Art Documents
Patent Documents
[0005]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0006] Volumes in a storage system have owner rights to process I / O requests from the host or storage systems at other sites. Volume owner rights are granted to a specific node per site (both primary and secondary sites), and I / O requests to any volume are processed by the node granted owner rights. In other words, if a node receives an I / O request to a volume for which it does not have owner rights, that node forwards the I / O request to the node that has owner rights, and the node with owner rights processes the I / O request.
[0007] In a storage system, the primary and secondary sites establish remote copy pairs using one or more volume units. The volumes at the primary site are referred to as PVOLs (Primary Volumes), and the volumes at the secondary site as SVOLs (Secondary Volumes). When creating a remote copy pair, a communication path is established between the primary and secondary sites to allow for the exchange of I / O requests and various commands. This communication path is established from the primary site node to the secondary site node.
[0008] In setting up the above communication path, from the standpoint of processing performance, it is desirable to set up the communication path between the node that has ownership rights to the PVOL at the primary site and the node that has ownership rights to the SVOL at the secondary site with which it is paired. This is because if a communication path is set up between a node that does not have ownership rights (a non-owner node), when performing remote copy processing, the request will first be received by the non-owner node, then forwarded to the owner node for processing, which will have adverse effects in terms of CPU overhead, network bandwidth, and latency. However, the prior art disclosed in Patent Document 1 has the problem that it is not possible to set up the above communication path because it automatically constructs remote copy pairs between sites.
[0009] Furthermore, when creating a remote copy pair, the operator can verify the information of the primary and secondary sites and establish a communication path between the node with ownership rights to the PVOL (PVOL owner node) and the node with ownership rights to the SVOL (SVOL owner node). However, this complicates the operational procedure and increases both the initial setup and operational costs.
[0010] This invention has been made in consideration of the above points, and aims to propose a storage system and a communication path control method that can reduce the operating costs of the storage system and prevent adverse effects on performance when creating remote copy pairs between the primary and secondary sites of the storage system. [Means for solving the problem]
[0011] To solve the above problems, the present invention provides a storage system comprising a primary site and a secondary site, each having a plurality of storage nodes, each having a processor package including a processor and memory, and one or more drives, wherein the storage nodes constituting the primary site include a primary volume owner node having a primary volume, and the storage nodes constituting the secondary site include a secondary volume owner node having a secondary volume paired with the primary volume, and a discovery node that responds with node information of a node having a volume at its own site in response to an inquiry, wherein when setting up a communication path for remote copying from the primary volume to the secondary volume, the storage node of the primary site queries the discovery node of the secondary site for node information of the node having the secondary volume paired with the primary volume, the discovery node replies with the node information of the node having the secondary volume in response to the received inquiry, and the primary volume owner node sets up a communication path between itself and the secondary volume owner node for remote copying of volume data from the primary volume to the secondary volume based on the node information obtained from the discovery node.
[0012] Furthermore, in order to solve the above problems, the present invention provides a communication path control method for a storage system comprising a primary site and a secondary site, each having a plurality of storage nodes, each having a processor package including a processor and memory, and one or more drives, wherein the storage nodes constituting the primary site include a primary volume owner node having a primary volume, and the storage nodes constituting the secondary site include a secondary volume owner node having a secondary volume paired with the primary volume, and a discovery node that responds with node information of a node having a volume at its own site in response to an inquiry, and when setting a communication path for remote copying from the primary volume to the secondary volume, the storage node of the primary site queries the discovery node of the secondary site for node information of the node having the secondary volume paired with the primary volume, the discovery node replies with the node information of the node having the secondary volume in response to the received inquiry, and the primary volume owner node sets a communication path between itself and the secondary volume owner node for remote copying of volume data from the primary volume to the secondary volume based on the node information obtained from the discovery node. [Effects of the Invention]
[0013] According to the present invention, when creating remote copy pairs between the primary and secondary sites of a storage system, the operating costs of the storage system can be reduced, and furthermore, adverse effects on performance when performing remote copy processing can be prevented. [Brief explanation of the drawing]
[0014] [Figure 1] This is an illustrative diagram showing an overview of storage system 101 according to one embodiment of the present invention. [Figure 2] This figure shows an example of the physical configuration of the storage system 101. [Figure 3]It is an image diagram showing an overview of the remote copy configuration in the storage system 101. [Figure 4] It is an image diagram showing an overview of the I / O request processing in the storage system 101. [Figure 5] It is an image diagram showing an overview of the recovery processing from a node failure in the storage system 101. [Figure 6] It is a diagram showing an example of information held in the memory 212. [Figure 7] It is a diagram showing an example of the system configuration management table 611. [Figure 8] It is a diagram showing an example of the pair configuration management table 612. [Figure 9] It is a sequence diagram showing an example of the processing procedure of the path creation process. [Figure 10] It is a sequence diagram showing an example of the processing procedure of the write process including the first node failure recovery process. [Figure 11] It is a sequence diagram showing an example of the processing procedure of the write process including the second node failure recovery process. [Figure 12] It is a sequence diagram showing an example of the processing procedure of the remote copy process. [Figure 13] It is a sequence diagram showing an example of the processing procedure of the path change process.
Mode for Carrying Out the Invention
[0015] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[0016] In the following description, the “interface device” may be one or more communication interface devices. The one or more communication interface devices may be one or more of the same type of communication interface devices (for example, one or more NICs (Network Interface Cards)), or two or more different types of communication interface devices (for example, a NIC and an HBA (Host Bus Adapter)).
[0017] Furthermore, in the following explanation, "memory" refers to one or more memory devices, which are examples of one or more storage devices, and may typically be main memory devices. At least one memory device in memory may be a volatile memory device or a non-volatile memory device.
[0018] Furthermore, in the following explanation, "persistent storage device" may refer to one or more persistent storage devices, which are examples of one or more storage devices. Persistent storage devices are typically non-volatile storage devices (e.g., auxiliary storage devices), and specifically may be HDDs (Hard Disk Drives), SSDs (Solid State Drives), or NVMe (Non-Volatile Memory Express) drives.
[0019] Furthermore, in the following explanation, "processor" may refer to one or more processor devices. At least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core. At least one processor device may be a broader processor device such as a hardware circuit that performs some 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)).
[0020] Furthermore, in the following explanation, we may use expressions such as "xxx table" to describe information from which an output is obtained for a given input. This information can be data of any structure (for example, structured data or unstructured data), or it can be a neural network that generates an output for a given input, or a learning model such as a genetic algorithm or random forest. Therefore, "xxx table" can be called "xxx information." Also, in the following explanation, the structure of each table is just an example; one table may be divided into two or more tables, or all or part of two or more tables may be a single table.
[0021] Furthermore, in the following explanation, the subject of the process may be "program," but since a program is executed by a processor and performs defined processes using memory and / or interface devices as appropriate, the subject of the process may also be the processor (or a device such as a controller having that processor). A program may be installed from a program source into a device such as a computer. The program source may be, for example, a program distribution server or a computer-readable (e.g., non-temporary) recording medium. Also, in the following explanation, two or more programs may be implemented as a single program, or one program may be implemented as two or more programs.
[0022] Furthermore, in the following explanation, when describing similar elements without distinction, the common part of the reference code including the sub-number (the part excluding the sub-number) is used, and when describing similar elements with distinction, the reference code including the sub-number may be used. For example, when describing nodes without particular distinction, they may be written as "Node 210," and when describing individual nodes with distinction, they may be written as "Node 210a," "Node 210b," and so on. Another way to describe similar elements with distinction is to use the element's ID (e.g., identification number). Specifically, for example, the above-mentioned "Node 210a" and "Node 210b" may be written as "Node 1" and "Node 2." In addition, by adding "v" to the name of an element possessed by node v (where v is a non-negative integer), it is possible to distinguish which node the element belongs to (or which node the element corresponds to).
[0023] (1) System configuration and overview Figure 1 is an illustrative diagram showing an overview of a storage system 101 according to one embodiment of the present invention. Figure 1 shows an overview of setting up a remote copy pair in the storage system 101 between volume 102x in site 201a and volume 102y in site 201b. In the following, referring to Figure 1, we will explain using the example of setting up a remote copy pair 103 with site 201a as the primary site, its volume 102x as the PVOL, site 201b as the secondary site, and its volume 102y as the SVOL.
[0024] The storage system 101 is configured with a primary site 201a and a secondary site 201b. Within each site, an independent storage cluster is constructed, comprising multiple nodes 210 and a shared database 105 that stores configuration information shared among the nodes within the site. The number of nodes constituting the storage cluster may differ between the primary site 201a and the secondary site 201b. Note that in Figure 1, for the sake of the diagram, only the shared database 105 in the secondary site 201b is shown, and the shared database 105 in the primary site 201a is omitted. User 100 constructs a volume pair, which is set up as a remote copy pair between the primary site 201a and the secondary site 201b, following the procedure shown in Figure 1.
[0025] The procedure (1) shown in Figure 1 will now be explained. Although the procedure (1) is described as being performed by user 100, it may also be executed by a program stored in the storage system 101.
[0026] In procedure (1), user 100 instructs primary site 201a to create volume 102x, which will be a PVOL, and secondary site 201b to create volume 102y, which will be an SVOL. The volume creation instruction may be issued to any node within the site, and storage system 101 (more specifically, the active SCS 501 of node 210 (or another node 210 that received the forwarded creation instruction)) will create volume 102 on the most suitable node 210, taking into account the capacity utilization and processing load of each node within the site. For example, storage system 101 will create volume 102 on a node with low capacity utilization and low processing load. In Figure 1, storage system 101 creates PVOL102x on node 210x in primary site 201a and SVOL102y on node 210y in secondary site 201b. SCS501 is Storage Control Software (SCS) in which the processor executes a predetermined program, which includes the storage program 620 shown in Figure 6, described later. Each node 210 has a pair of SCS501, one active and one standby. Details of SCS501 will be described later in the explanation referring to Figure 5.
[0027] The procedure (2) shown in Figure 1 will be explained below.
[0028] In step (2), user 100 first instructs primary site 201a to configure the communication path for the remote copy. At this time, user 100 specifies the identifiers of the PVOL and SVOL to be created as the remote copy pair (PVOL ID, SVOL ID), and the communication destination address (e.g., IP address and port number) of the discovery node (node 210z in Figure 1) at secondary site 201b. The discovery node is a node that has the function of responding with node information of node 210 that owns the volume at its own site in response to a query. For example, when primary site 201a queries discovery node 201z at secondary site 201b for information, discovery node 201z has the function of returning node information of the node that has ownership rights to the SVOL (SVOL owner node). The discovery node may also be the SVOL owner node, and multiple nodes may have the functionality of a discovery node. When node 210x at primary site 201a receives a user instruction, node 210x queries the discovery node (node 210z) at secondary site 201b, as specified by user 100, for information on the node that has ownership (control) rights to the SVOL (procedure (2-a)).
[0029] Furthermore, the storage system 101 may also have a discovery node at the primary site 201a that, like the discovery node at the secondary site 201b, has the function of returning node information of the node that has ownership rights to the PVOL at its own site (primary site) in response to a query. With this configuration, each site can query any node at the other site and obtain node information of the node that has ownership rights to the volume paired with the volume at its own site from the discovery node at the other site.
[0030] Next, node 210z (more specifically, SCS501 of node 210z) in sub-site 201b, which received the query, retrieves the node information that has ownership rights to the SVOL from the shared database 105 which stores the site's configuration information, and returns it to node 210x in primary site 201a (procedure (2-b)).
[0031] Next, node 210x, which has ownership rights to the PVOL at primary site 201a, establishes a communication path 104 with node 210y, which has ownership rights to the SVOL at secondary site 201b, from which node information was obtained in step (2-b) (step (2-c)).
[0032] Finally, the storage clusters at primary site 201a and secondary site 201b register in the shared database 105 within each site that PVOL102x and SVOL102y are remote copy pair 103, completing the remote copy pair configuration between PVOL and SVOL (step (2-d)).
[0033] Furthermore, the procedure (2) described above and the associated processing may also be performed by user 100 instructing secondary site 201b to set up a remote copy communication path, and then by secondary site 201b to primary site 201a. In this case, the node of secondary site 201b queries the node of primary site 201a for information on the node that has ownership rights to the PVOL, and secondary site 201b sets up a communication path between the nodes that have ownership rights to the PVOL and SVOL.
[0034] Figure 2 shows an example of the physical configuration of the storage system 101. As shown in Figure 2, the storage system 101 may be provided with one or more sites 201.
[0035] Each site 201 is connected via network 202 for communication. Network 202 is, for example, a WAN (Wide Area Network), but is not limited to a WAN. Site 201 is a data center or the like, and consists of one or more nodes 210.
[0036] Node 210 may have the configuration of a typical server computer. Node 210 may consist of, 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.
[0037] Processor 211 is, for example, a CPU (Central Processing Unit) and performs various processes.
[0038] Memory 212 stores control information and data necessary for realizing the functions of node 210. Memory 212 also stores programs executed by processor 211, for example. Memory 212 may be volatile DRAM (Dynamic Random Access Memory), non-volatile SCM (Storage Class Memory), or other storage devices.
[0039] Drive 214 stores various data and programs. Drive 214 may be an HDD (Hard Disk Drive) or SSD (Solid State Drive) connected via SAS (Serial Attached SCSI) or SATA (Serial Advanced Technology Attachment), an NVMe (Non-Volatile Memory Express) connected SSD or SCM, or a drive box containing multiple HDDs or SSDs, and is an example of a storage device.
[0040] Port 215 is connected to network 220, which allows the node to communicate with other nodes 210 within site 201. Network 220 is, for example, a LAN (Local Area Network), but is not limited to a LAN.
[0041] The physical configuration of the storage system 101 is not limited to what is described above. For example, networks 202 and 220 may be redundant. Also, for example, network 220 may be separated into a management network and a storage network, the connection standard may be Ethernet®, Infiniband, or wireless, and the connection topology is not limited to the configuration shown in Figure 2. Also, for example, drive 214 may be configured independently of node 210.
[0042] Figure 3 is an illustrative diagram showing an overview of the remote copy configuration in storage system 101. More specifically, Figure 3 shows an overview of the configuration when multiple remote copy pairs are established between primary site 201a and secondary site 201b in storage system 101.
[0043] In Figure 3, two consistency groups 301a and 301b are established between the primary site 201a and the secondary site 201b. A consistency group consists of multiple remote copy pair volumes, and multiple volumes at the primary site within the consistency group are copied to the secondary site while maintaining consistency. Specifically, for multiple volumes 102 within consistency group 301, the update differential data up to the same time is copied to the secondary site 201b. Furthermore, consistency control of the consistency groups is managed by a journal volume (JNL). The journal volume stores the update differential data of multiple PVOLs along with metadata such as their write time. When the storage cluster at primary site 201a transfers PVOL data to secondary site 201b, it transfers the update differential data up to the same time from the multiple PVOL update differential data written to the journal volume to secondary site 201b. This allows the data to be copied to the SVOL at secondary site 201b while maintaining the consistency of update times between multiple PVOLs.
[0044] Specifically, in the configuration shown in Figure 3, consistency group 301a copies data to volumes 102i and 102j (i.e., SVOL102i and 102j of consistency group 301c) on node 210d of secondary site 201b while maintaining the consistency of volumes 102a and 102b on node 210a of primary site 201a. Consistency group 301b copies data to volume 102l on node 210e of secondary site 201b and volume 102n on node 210f (i.e., SVOL102l and 102n of consistency group 301d) on node 210f of secondary site 201b while maintaining the consistency of volume 102d on node 210b of primary site 201a and volume 102f on node 210c.
[0045] As can be seen from the specific configuration described above, consistency group 301 may consist of volumes in a specific node within the site, or it may consist of volumes located in multiple nodes within the site.
[0046] Although not shown in the diagram, in storage system 101, a remote copy pair may be constructed by directly associating PVOLs and SVOLs without a journal volume. In this case, the update differential data to the PVOL is transferred directly to the node with the SVOL without going through the journal volume and written to the SVOL. When PVOLs and SVOLs are directly paired in this way, the update differential data from PVOLs to SVOLs is not reflected via the journal volume, so the update differential data from PVOLs can be reflected to SVOLs at high speed. This is useful in cases where remote copying is performed in synchronization with I / O processing from the host. On the other hand, when PVOLs and SVOLs are directly paired, consistency control, such as reflecting update differential data up to the same time in SVOLs, is not possible because there is no journal volume.
[0047] Figure 4 is an illustrative diagram showing an overview of I / O request processing in storage system 101. More specifically, Figure 4 shows an overview of I / O processing in storage system 101 when a remote copy pair has been established between PVOL102a at primary site 201a and SVOL102d at secondary site 201b.
[0048] First, application 402, running on host 401, issues a write request to node 210a to write data 403a (data A) and data 403b (data B) to PVOL102a. Upon receiving the write request, node 210a writes data A and data B to PVOL102a and also writes data A and data B to journal volume 102b (JNL1) as updated differential data.
[0049] Next, node 210a transfers the update differential data written to journal volume 102b to journal volumes 102c and 102e at secondary site 201b. If multiple communication paths are established between primary site 201a and secondary site 201b, any of these communication paths may be used for data transfer. Normally, node 210a at primary site 201a transfers the update differential data to node 210d, which has ownership rights to SVOL102d paired with PVOL102a. However, if a communication path with ownership rights fails, the update differential data may be transferred to node 210e or another node that does not have ownership rights. For example, when node 210a of primary site 201a transfers update differential data to node 210e of secondary site 201b, which does not have owner rights, node 210e of secondary site 201b transfers the received update differential data to node 210d, which has owner rights, and node 210d writes the transferred update differential data to journal volume 102c.
[0050] Next, node 210d periodically writes the update differential data written to journal volume 102c of sub-site 201b to SVOL102d. Then, data 403a (data A) and 403b (data B) written to SVOL102d are written to drive 214a via storage pool 404a. If drive 214a is configured as DAS (Direct Attached Storage) where nodes (servers) and drives are connected one-to-one, the data is written to the local drive (drive 214a) installed on node 210d. By writing all the data to be written to SVOL102d to drive 214a of node 210d, which has ownership rights to SVOL102d, it becomes unnecessary to read data from another node when reading data from SVOL102d later. As a result, the storage system 101 can eliminate inter-node transfer processing and achieve high-speed read processing.
[0051] Furthermore, storage pool 404 (for example, storage pool 404a) provides storage functions such as thin-provisoning, compression, and deduplication, and performs the necessary storage function processing for the written data. In addition, to protect data from node failure when writing to drive 214a, storage system 101 also writes redundant data of the data to be written (data A, B) to drive 214b on another node (for example, the standby node node 210e). Regarding the writing of redundant data, if the data protection policy is replication, storage system 101 writes a replica of the written data as redundant data to drive 214b. On the other hand, if the data protection policy is erasure coding, storage system 101 calculates parity from the written data and writes the calculated parity as redundant data to drive 214b.
[0052] Furthermore, although the internal configurations of nodes 210b, 210c, and 210f are not described in Figure 4, it can be assumed that each of these nodes 210 also has PVOL and SVOL, similar to nodes 210a, 210d, and 210e described above, and processes I / O from host 401.
[0053] Furthermore, while the I / O processing flow shown in Figure 4 is an example of a push-type I / O processing that distributes data from the primary site 201a to the secondary site 201b, the storage system 101 can also perform a pull-type I / O processing that reads data from the secondary site 201b to the primary site 201a.
[0054] Figure 5 is an illustrative diagram showing an overview of the recovery process from a node failure in the storage system 101. More specifically, Figure 5 shows an overview of the recovery process when a node failure occurs at the secondary site 201b, while a remote copy pair has been established between the volumes at the primary site 201a and the secondary site 201b in the storage system 101. In this explanation, a node failure is one that requires a change in the path configuration.
[0055] In the storage system 101 shown in Figure 5, each node 210 (210d, 210e, 210f) operates storage control software (SCS) 501 for handling various storage functions such as I / O processing, thin-provisoning, compression, and deduplication. Within each node 210, there is an active storage control software 501 that performs processing under normal circumstances, and a standby storage control software 501. Specifically, in Figure 5, the active storage control software 501a and the standby storage control software 501f operate within node 210d, the active storage control software 501b and the standby storage control software 501c operate within node 210e, and the active storage control software 501e and the standby storage control software 501d operate within node 210f. Node 210 running the active storage control software 501 is called the active node, and the node running the standby storage control software 501 is called the standby node.
[0056] The active and standby storage control software 501 are paired (in Figure 5, SCSs with the same subscripts 1, 2, and 3 are paired). Under normal circumstances, the active storage control software 501a, 501c, and 501e handle I / O requests and storage functions. If the active storage control software fails and stops, the paired standby storage control software is promoted to active and takes over processing.
[0057] The recovery process from a node failure will be explained using the specific example shown in Figure 5.
[0058] Node 210d is running storage control software (active) 501a, and its counterpart, storage control software (standby) 501b, is running on node 210e. Additionally, node 210d, located in secondary site 201b, has SVOL102h, which forms a remote copy pair with PVOL102a on node 210a in primary site 201a.
[0059] Node 210e replicates the configuration information of SVOL102h and journal volume 102g held by node 210d in order to take over the remote copy pair information of node 210d. Node 210e also stores redundant data written to drive 214a of node 210d on drive 214a. Furthermore, node 210e establishes a communication path with node 210a at the primary site 201a.
[0060] For example, when node 210d fails and stops, node 210e, which detects the failure, takes over the processing of the storage control software (active) 501a of node 210d, promotes the storage control software (standby) 501b to active, and communicates with node 210a at the primary site 201a to continue the remote copy process between PVOL102a and SVOL102h. In other words, if node 1 (node 210d) at the secondary site 201b fails and stops, the storage system 101 fails over control of SCS1 to the SCS1 (SCS501b) of node 2, which is paired with the SCS1 (SCS501a) of node 1. In this way, the storage system 101 can ensure that even if a node failure occurs within the secondary site 201b, the secondary site 201b can continue the remote copy process with the primary site 201a.
[0061] Figure 6 shows an example of information held in memory 212. The information shown in Figure 6 includes information read from drive 214 to memory 212. Specifically, the various tables included in the control information table 610 and the various programs included in the storage program 620 are loaded onto memory 212 while their respective processes are being executed, but at other times they are stored in a non-volatile storage area such as drive 214 to prepare for power outages, etc.
[0062] The control information table 610 includes the system configuration management table 611 and the pair configuration management table 612. Details of each table will be described later with reference to Figures 7 and 8.
[0063] The storage program 620 includes a path creation processing program 621, a node failure recovery processing program 622, a data transfer processing program 623, a path change processing program 624, an I / O processing program 625, and an owner migration processing program 626. Each program constituting the storage program 620 is an example of a program used when various functions of node 210 (path creation, node failure recovery, data transfer, path change, owner migration processing) are implemented by software (storage control software 501). Specifically, these functions are implemented by the processor 211 reading these programs stored in drive 214 into memory 212 and executing them. In the storage system 101 according to this embodiment, the various functions of node 210 may be implemented by hardware such as dedicated circuits having functions corresponding to each of the above-described programs, or by a combination of software and hardware. Furthermore, some of the various functions of node 210 may be implemented by another computer capable of communicating with node 210.
[0064] Figure 7 shows an example of a system configuration management table 611. The system configuration management table 611 stores information for managing the configuration of node 210, drive 214, and port 215 within site 201.
[0065] The system configuration management table 611 includes the node configuration management table 710, the drive configuration management table 720, and the port configuration management table 730. The storage system 101 manages the node configuration management table 710 for each site 201, for multiple nodes 210 present in each site 201, and each node 210 manages the drive configuration management table 720 and the port configuration management table 730 for multiple drives 214 within its own node 210.
[0066] The node configuration management table 710 is provided for each site 201 and stores information indicating the configuration of node 210 located at site 201 (such as the relationship between node 210 and drive 214). More specifically, the node configuration management table 710 stores information that associates node ID 711, status 712, drive ID list 713, and port ID list 714.
[0067] Node ID 711 is identification information that identifies node 210. Status 712 is status information indicating the status of node 210 (e.g., NORMAL, WARNING, FAILURE, etc.). Drive ID list 713 is identification information that identifies drive 214 located on node 210. Port ID list 714 is identification information that identifies port 215 located on node 210.
[0068] A drive configuration management table 720 is provided for each node 210 and stores information indicating the configuration of the drive 214 installed on node 210. More specifically, the drive configuration management table 720 stores information that associates the drive ID 721, the status 722, and the size 723.
[0069] Drive ID 721 is identification information that identifies drive 214. Status 722 is status information indicating the state of drive 214 (e.g., NORMAL, WARNING, FAILURE, etc.). Size 723 is information indicating the capacity of drive 214 (e.g., TB (terabyte) or GB (gigabyte)).
[0070] A port configuration management table 730 is provided for each node 210 and stores information indicating the configuration of port 215 provided on node 210. More specifically, the port configuration management table 730 stores information that associates port ID 731, status 732, and address 733.
[0071] Port ID 731 is identification information that identifies port 215. Status 732 is status information indicating the status of port 215 (e.g., NORMAL, WARNING, FAILURE, etc.). Address 733 is information indicating the network address (identification information) assigned to port 215. The address can be in the form of IP (Internet Protocol), WWN (World Wide Name), MAC (Media Access Control) address, etc.
[0072] Figure 8 shows an example of a pair configuration management table 612. The pair configuration management table 612 stores information for managing the configuration of volume 102, remote copy pair 103, and communication path 104 of the remote copy pair within site 201.
[0073] The pair configuration management table 612 is composed of the volume management table 810, the pair management table 820, and the path management table 830. In the storage system 101, the node 210 in site 201 stores the information of the volume management table 810, the pair management table 820, and the path management table 830 in the shared database 105, and this information can be retrieved from any node 210 in site 201.
[0074] The volume management table 810 stores information indicating the configuration of volume 102. More specifically, the volume management table 810 stores information that associates volume ID 811, owner node ID 812, back-to-own node ID 813, size 814, and attributes 815.
[0075] Volume ID 811 is identification information that identifies volume 102. Owner node ID 812 is information indicating node 210 that has ownership rights to volume 102. Back-off node ID 813 is information indicating node 210 that will take over processing in the event of a failure of node 210 that has ownership rights to the SVOL. Size 814 is information indicating the capacity of volume 102 (e.g., TB (terabyte) or GB (gigabyte)). Attribute 815 is information indicating the attributes of volume 102, and usually includes VOL (volume), PVOL (Primary Volume), SVOL (Secondary Volume), JNLVOL (Journal Volume), etc.
[0076] The pair management table 820 stores information indicating the configuration of remote copy pair 103. More specifically, the pair management table 820 stores information associating pair ID 821 with primary journal volume ID 822, primary volume ID 823, secondary journal volume 824, secondary volume ID 825, path ID 826, and status 827.
[0077] Pair ID 821 is identification information that identifies the remote copy pair 103. Primary journal volume ID 822 is the ID of volume 102 that records journal information on the primary site 201a side of the remote copy pair 103. Primary volume ID 823 is the ID of volume 102 that is the source of the copy on the primary site 201a side of the remote copy pair 103. Secondary journal volume 824 is the ID of volume 102 that records journal information on the secondary site 201b side of the remote copy pair. Secondary volume ID 825 is the ID of volume 102 that is the destination of the copy on the secondary site 201b side of the remote copy pair. Path ID 826 is identification information that identifies the communication path 104 for executing the remote copy process, and the path management table 830 stores detailed information of the communication path 104 corresponding to it. State 827 is state information that indicates the state of the remote copy pair 103 (e.g., NORMAL, COPYING, SUSPEND, etc.).
[0078] The path management table 830 stores information indicating the configuration of the communication path 104 of the remote copy pair 103. More specifically, the path management table 830 stores information associating the path ID 831, protocol information 832, destination address 833, access policy 834, and preferred path 835.
[0079] Path ID 831 is identification information that can identify communication path 104. Protocol information 832 is information indicating the communication protocol of communication path 104. The communication protocol of communication path 104 may be iSCSI (Internet Small Computer System Interface), FC (Fibre Channel), NVMe-oF (NVMe over Fabrics), or a vendor-specific proprietary protocol. Destination Address 833 is information indicating the address of the communication destination for communication path 104. Access policy 834 is information indicating how to issue requests to multiple communication destinations when multiple communication destinations are recorded in Destination Address 833. For example, in a "symmetric" issuance method, requests are issued to multiple paths in a round-robin manner, while in an "asymmetric" issuance method, a preferred path is set and requests are issued only to the preferred path. Preferred path 835 is information indicating the communication destination to which requests are preferentially issued when access policy 834 is "asymmetric".
[0080] (2) Processing Typical processes performed in the storage system 101 having the above-described configuration will be explained with reference to the sequence diagrams shown in Figures 9 to 13. In the explanation of each sequence diagram, processes described primarily with respect to the storage control software (SCS) 501 can be considered to be processes executed by one of the storage programs 620 called by the SCS 501 (programs called at or before the execution of the target process, as explicitly stated in each explanation).
[0081] (2-1) Path creation process Figure 9 is a sequence diagram showing an example of the processing procedure for path creation. The path creation process corresponds to step (2) in Figure 1. After user 100 creates a remote copy pair, PVOL and SVOL, as shown in step (1) of Figure 1, when the storage system 101 receives an instruction (path creation instruction) from user 100 to set up a communication path between the primary site and the secondary site, the path creation processing program 621 is called in the storage control software 501 (501A~501C) of each node 210 related to the instruction, and the process shown in Figure 9 is executed.
[0082] The path creation process (path creation program 621) shown in Figure 9 consists of processing by the storage control software (SCS) 501A of the primary site's PVOL owner node, processing by the storage control software (SCS) 501C of the secondary site's discovery node, and processing by the storage control software 501B (SCS) of the secondary site's SVOL owner node.
[0083] As shown in Figure 9, first, user 100 instructs the creation of a path including the address of the port to which the discovery node of the secondary site will connect, the IDs of the paired PVOL and SVOL, and the cluster ID of the secondary site (step S901).
[0084] Next, when the node that has ownership rights to the PVOL of the primary site (PVOL owner node) receives a path creation instruction from the user, the SCS501A of that node calls the path creation processing program 621 (step S902).
[0085] Then, SCS501A queries the discovery node of the sub-site, as instructed by the user, for information on the node that has ownership rights to the SVOL (step S903).
[0086] When the discovery node of a sub-site receives the node information query in step S902, the SCS501C of that node calls the path creation processing program 621, which refers to the shared database between nodes to obtain information about the node that has owner rights to the SVOL (step S904).
[0087] Furthermore, the SCS501C responds to the node of the original site that made the inquiry with the node information obtained in step S904 (step S905). The node information in the response may include information for multiple nodes, for example, information for the node that has the ownership rights of the SVOL and information for the standby node that will take over processing if that node fails. The node information also includes information necessary for connection and communication, such as the node ID, the WWN of the destination, the IP address, the port number, and the security key.
[0088] Then, the node with ownership rights to the PVOL at the primary site receives a response from the discovery node at the secondary site (step S906).
[0089] Next, in step S907, a connection (login process) is established between the primary site node and the secondary site node. The login process in step S907 consists of the processes in steps S908 to S913 in detail.
[0090] In step S908, SCS501A issues a login request to the node corresponding to the node information obtained in step S906 (i.e., the owner node of the sub-site's SVOL).
[0091] In step S909, the SVOL owner node of the sub-site receives the login request issued in step S908, and the SCS501B of that node calls the path creation processing program 621.
[0092] In step S910, SCS501B checks the login request received in step S909, and if there are no problems with the parameters, it sends a login completion notification to the PVOL owner node.
[0093] In step S911, the SCS501A, the PVOL owner node of the primary site, receives a login completion notification from the SVOL owner node of the secondary site. The login response includes node information from the SVOL owner node of the secondary site. Specifically, it includes the WWN and IP address of the destination port, the port number, and the cluster ID of the secondary site.
[0094] In step S912, SCS501A compares the input information from user 100 received in step S902 with the login response information received in step S911 and verifies that the information matches.
[0095] In step S913, if the login response information and the input information from user 100 match as a result of the verification in step S912, SCS501A considers that it has successfully logged into the correct destination and activates the established communication path as a communication path for remote copying. On the other hand, if the login response information and the input information from user 100 do not match as a result of the verification in step S912, SCS501A considers it an incorrect destination, logs out, and informs user 100 that the path creation operation was an error.
[0096] As described above, when creating a redundant path in the storage system 101, the login process is also performed on the redundant node of the SVOL that is paired with the PVOL.
[0097] In step S914, after the login process in step S907 (steps S908 to S913) has been successfully completed, SCS501A notifies user 100 that the path creation operation is complete.
[0098] Then, in step S915, user 100 receives confirmation from the PVOL owner node of the primary site that the path creation operation has been completed in step S914, and with that, the path creation process is finished.
[0099] (2-2) Node failure recovery process Referring to Figure 5, the node failure recovery process (node failure recovery process) will be explained in detail by illustrating two processing steps, the first and second. In the node failure recovery process, the storage control software 501 (501A, 501D, 501E) of each node 210 involved in the process calls and executes its respective node failure recovery program 622.
[0100] Figure 10 is a sequence diagram showing an example of a write process procedure including the first node failure recovery process. The first node failure recovery process included in Figure 10 is characterized by switching the command issuance destination to a backup node (SVOL owner node (standby)) using a pre-configured communication path (backward path) between the primary site's PVOL owner node (active) and the secondary site's SVOL owner node (active) when a failure occurs in the secondary site's SVOL owner node (active).
[0101] The processes in steps S1001 to S1005 shown at the top of Figure 10 are write operations that are performed before a node failure occurs (when no node failure has occurred). When data is written from the host to the PVOL at the positive site, the PVOL owner node SCS501A calls the I / O processing program 625 to write the write data to the PVOL, and then calls the data transfer processing program 623 to execute the processes in steps S1001 to S1005.
[0102] The processes in steps S1001-S1002 and S1006-S1014 shown at the bottom of Figure 10 are write processes that are executed when a failure occurs in the SVOL owner node of a sub-site, and a first node recovery process is executed to recover from the node failure. More specifically, the processes in steps S1006-S1009 are executed by the node failure recovery process program 622, and the processes in steps S1010-S1014 are executed by the data transfer process program 623.
[0103] The data transfer processing program 623 shown in Figure 10 and Figure 11 (described later) is a data transfer process that directly pairs the PVOL and SVOL and reflects the updated differential data synchronously with the host's I / O processing. In addition to this data transfer method, the data transfer processing program 623 in this embodiment may also perform asynchronous data transfer processing via the journal volume, the details of which will be described later with reference to Figure 12. Furthermore, the node failure recovery process shown in Figures 10 and 11 can be combined with any of the above data transfer processes.
[0104] In the first node failure recovery process by the node failure recovery program 622, the SVOL processing is transferred to the standby node that will take over the SVOL processing, and the primary site switches the destination of command issuance to the standby node that was previously set as the backward path. This allows remote copy processing to continue even if a node in the secondary site fails.
[0105] The processes (steps S1001 to S1005) that occur before the node failure, as shown at the top of Figure 10, will be explained in detail below.
[0106] First, when the primary site's PVOL owner node receives a write request from the host, the SCS501A on the PVOL owner node writes the write data to the PVOL. Then, in step S1001, the SCS501A transfers the updated differential data to the PVOL to the secondary site's SVOL owner node (active).
[0107] In step S1002, when the SVOL owner node (active) of the secondary site receives the updated differential data sent from the PVOL owner node of the primary site in step S1001, the SCS501D of the SVOL owner node (active) calls the data transfer processing program 623.
[0108] In step S1003, SCS501D writes the update differential data received in step S1002 to SVOL, and in step S1004, SCS501D responds to the PVOL owner node of the primary site that the update differential data has been reflected in SVOL.
[0109] Then, in step S1005, when the PVOL owner node of the primary site receives the response (completion notification) from step S1004, the SCS501A of that PVOL owner node terminates the data transfer process, indicating that the data transfer has been completed successfully.
[0110] Next, we will explain in detail the processing that occurs when a node failure occurs (steps S1001-S1002, S1006-S1014) as shown at the bottom of Figure 10. This shows the processing procedure when an active SVOL owner node fails during the write process from PVOL to SVOL.
[0111] Specifically, in step S1001, when the primary site's PVOL owner node receives a write request from the host, the SCS501A on the PVOL owner node writes the write data to the PVOL, and then forwards the update differential data to the secondary site's SVOL owner node (active). Then, in step S1002, the secondary site's SVOL owner node (active) receives the update differential data sent from the primary site's PVOL owner node. After this, suppose a failure occurs at the SVOL owner node (active) that prevents communication.
[0112] In this case, in step S1006, the SCS501E of the SVOL owner node (standby) associated with the SVOL owner node (active) of the sub-site where the failure occurred detects the failure of the SVOL owner node (active). One method of detecting the failure is for the SVOL owner node (standby) to continuously perform heartbeat communication with the SVOL owner node (active), and to detect the failure when the heartbeat is no longer received.
[0113] In step S1007, the SCS501E performs a failover process to take over processing from the SVOL owner node (active). During the failover process, the redundant processing state of the original node is loaded into the memory of the processes on the standby node, the processing privileges of each process on the standby node are set to be the same as those of the active node, and processing is resumed. Specifically, setting the processing privileges of each process means configuring the standby node to handle owner rights for each SVOL, storage function processing, and redundancy processing.
[0114] In step S1008, the SCS501A, the PVOL owner node of the primary site, fails to receive a notification that the update differential data sent to the secondary site's SVOL in step S1001 has been reflected, and a timeout is detected.
[0115] In this case, in step S1009, SCS501A switches the destination of the updated differential data to the backward path set up between it and the SVOL owner node (standby). In the first node failure recovery process, the backward path is set up in advance before the execution of the path creation processing program 621. That is, the PVOL owner node at the active site has a main path set up between it and the SVOL owner node (active) at the secondary site, and a backward path set up between it and the SVOL owner node (standby) at the secondary site, even before the node failure occurs, and in step S1009, a switch is made from the main path to the backward path.
[0116] Subsequently, when the primary site's PVOL owner node receives a write request from the host, in step S1010, the SCS501A writes the write data to the PVOL, and then, using the backward path switched in step S1009, transfers the update differential data to the secondary site's SVOL owner node (standby). In other words, in step S1010, a retry is performed to transfer the write data (more precisely, the update differential data) to the PVOL.
[0117] In step S1011, the SVOL owner node (standby) of the secondary site receives the update differential data sent from the PVOL owner node of the primary site.
[0118] In step S1012, the SVOL owner node (standby), SCS501E, writes the updated differential data received in step S1011 to the SVOL.
[0119] In step S1013, SCS501E responds to the PVOL owner node of the primary site that the updated differential data has been reflected in the SVOL.
[0120] Then, in step S1014, the PVOL owner node of the primary site receives the response (completion notification) from step S1004, and the SCS501A of the PVOL owner node terminates the data transfer process, indicating that the data transfer has been completed successfully.
[0121] As described above, by performing the node failure recovery process followed by the data transfer process, even if a node failure occurs in the SVOL owner node (active) of the secondary site, the update differential data of the write data written to the PVOL can be written to the SVOL of the SVOL owner node (standby) that has been promoted from standby to active.
[0122] Figure 11 is a sequence diagram showing an example of the processing procedure for write operations, including the second node failure recovery process. The second node failure recovery process included in Figure 11 is characterized by obtaining node information of the SVOL owner node (standby) that took over the processing of the failed SVOL owner node (active) when a failure occurs in the SVOL owner node (active) of the sub-site, dynamically resetting the communication path to the node indicated by the obtained node information (i.e., the backup node), and switching the destination of the command. This allows remote copy operations to continue even if a node in the sub-site fails. The process shown in Figure 11 includes the same processes as the first node failure recovery process described in Figure 10, but a detailed explanation of this is omitted, and only the differences are explained.
[0123] In Figure 11, the processes prior to step S1101 (steps S1001, S1002, S1008) are the same as the processes prior to step S1010 shown at the bottom of Figure 10. Briefly speaking, in this process, the PVOL owner node of the primary site receives a write request from the host, and its SCS501A calls the data transfer processing program 623 to transfer the update differential data to the PVOL to the SVOL owner node (active) of the secondary site (step S1001). Then, at the SVOL owner node (active) of the secondary site, the SCS501D calls the data transfer processing program 623 (step S1002). Subsequently, if a failure occurs at the SVOL owner node (active) that prevents communication, the SCS501A of the PVOL owner node of the primary site detects a timeout (step S1008).
[0124] In Figure 11, the processing in steps S1101 to S1104 (or up to step S907) corresponds to the second node failure recovery process and is executed by the node failure recovery program 622. The processing in step S907 is executed by the path creation program 621, as explained in Figure 9.
[0125] In step S1101, the SCS501A, the PVOL owner node at the primary site, queries the discovery node at the secondary site for node information of the SVOL owner node (standby).
[0126] In step S1102, the discovery node SCS501C at the sub-site, which received the query in step S1101, retrieves node information about the SVOL owner node (standby) from the shared database among the nodes within the sub-site.
[0127] In step S1103, the SCS501C responds to the PVOL owner node of the primary site with the node information of the SVOL owner node (standby) obtained in step S1102.
[0128] In step S1104, the PVOL owner node at the primary site receives node information of the SVOL owner node (standby) as a response from the secondary site.
[0129] Subsequently, in step S907, the PVOL owner node SCS501A at the primary site calls the path creation processing program 621 to establish a communication path with the SVOL owner node (standby). The detailed processing in step S907 is as described in Figure 9.
[0130] Upon completion of step S907, a communication path is established from the PVOL owner node of the primary site to the SVOL owner node (standby), which is the backup node. Therefore, after that, as in the case of Figure 10, steps S1010 to S1014 are performed, so that even if the second node failure recovery process is executed, the updated differential data for PVOL can be reflected in SVOL.
[0131] The first and second node failure recovery processes described above explain the node failure recovery process when a node in the secondary site fails. However, if we swap the primary and secondary sites, the storage system 101 can similarly perform the node failure recovery process when a node in the primary site fails. Swapping the primary and secondary sites can also be considered in the path creation process described above and the path modification process described later.
[0132] (2-3) Remote copy processing Figure 12 is a sequence diagram showing an example of the processing procedure for remote copy processing. Figure 12 illustrates remote copy processing as an asynchronous data transfer process via a journal volume (JNLVOL). The remote copy processing shown in Figure 12 consists of the processing of I / O processing program 625 and data transfer processing program 623.
[0133] In remote copy processing via journal volumes, the update difference data for the primary site's PVOL is recorded in the journal volume. The node with the journal volume for the secondary site's SVOL queries the node with the journal volume for the primary site's PVOL for the update difference data, writes the retrieved update difference data to the SVOL's journal volume, and then reflects the update difference data from the SVOL's journal volume back to the SVOL itself. By using journal volumes, when multiple PVOLs and SVOLs are registered as remote copy pairs and belong to the same consistency group, consistency between multiple SVOLs can be maintained by reflecting the update difference data written to the journal volume to the SVOLs up to the same time.
[0134] The remote copy process will be explained in detail with reference to Figure 12.
[0135] First, when the PVOL owner node of the primary site receives a write request from the host, the SCS501A on the PVOL owner node calls the I / O processing program 625 to execute the processes in steps S1201 to S1202. Steps S1201 to S1202 represent the write process, which is part of the I / O processing program 625. When a write request is received from the host, the write data is written to the PVOL and the updated differential data is written to the JNLVOL.
[0136] In step S1201, the SCS501A writes the write data from the host to the PVOL. In step S1202, the SCS501A writes the write data to the PVOL to the JNLVOL of the PVOL along with metadata. The metadata includes the write time, the destination PVOL ID, the destination LBA (Logical Block Address), and the transfer length of the write data.
[0137] After data has been written to the PVOL at the primary site, the SCS501A calls the data transfer processing program 623, and steps S1203 to S1208 are executed. Steps S1203 to S1208 may be started and executed each time after the completion of I / O processing, or they may be executed periodically.
[0138] In step S1203, SCS501B, the SVOL owner node of the secondary site, sends a journal read request to the corresponding PVOL owner node of the primary site.
[0139] In step S1204, the SCS501A on the primary site's PVOL owner node receives a journal read request from the secondary site's SVOL owner node. In the next step, S1205, the SCS501A reads the update differential data that has not yet been reflected in the SVOL from the journal volume and transfers it, along with the metadata, to the secondary site's SVOL owner node.
[0140] In step S1206, SCS501B receives the update differential data and metadata from the PVOL owner node of the primary site. In the next step, S1207, SCS501B writes the update differential data and metadata received in step S1206 to the journal volume of the SVOL.
[0141] Then, in step S1208, the SCS501B reads the update differential data and metadata from the journal volume of the SVOL and writes the update differential data to the SVOL. When multiple volumes form a remote copy pair, that is, when multiple volumes at each primary and secondary site share a single journal volume to perform remote copy processing, the SCS501B refers to the metadata read from the secondary site's journal volume in step S1208 and writes the update differential data up to the same time to the multiple SVOLs. This enables remote copy processing that maintains consistency across multiple volumes.
[0142] (2-4) Path change process Figure 13 is a sequence diagram showing an example of the processing procedure for path relocation. When an SVOL or journal volume is moved to another node within the same site due to insufficient node capacity or other reasons (or a transfer of ownership), the path relocation program 624 is called and the path relocation process shown in Figure 13 is executed.
[0143] In the path change process, when the ownership of an SVOL is moved from one node (the source SVOL node) to another node (the destination SVOL node), the storage control software (SCS) 501F of the source SVOL node notifies the primary site that ownership has been moved, and the storage control software (SCS) 501A of the node that holds ownership of the PVOL at the primary site (the PVOL owner node) queries the secondary site for node information of the destination SVOL node and reconfigures the communication path to the node indicated by the retrieved node information (i.e., the destination SVOL node).
[0144] The processes in steps S1301 to S1307 are the processes of transferring ownership rights of SVOL located at a sub-site, and are executed by the owner migration processing program 626.
[0145] In step S1301, the SVOL owner node SCS501F at the secondary site initiates an Owner Migration of the SVOL. Owner migration is initiated when the node detects insufficient performance or capacity.
[0146] In step S1302, the SCS501F of the SVOL node that will be the source of the ownership transfer within the sub-site transfers the SVOL data to the SVOL node that will be the destination of the ownership transfer. If a write request is received from the host during the data transfer, the write data is written to both the source and destination SVOL nodes.
[0147] In step S1303, the SCS501G of the destination SVOL node at the sub-site receives the SVOL data from the source SVOL node and writes it to its own node's SVOL.
[0148] In step S1304, when the SCS501F of the source SVOL node of the sub-site has finished transferring all the data from the SVOL, it sends a notification to the destination SVOL node indicating that the transfer of all data is complete.
[0149] In step S1305, the destination SVOL node of the sub-site receives the transfer completion notification sent in step S1304.
[0150] In step S1306, the SCS501F of the source SVOL node of the sub-site updates the control information of its own node's SVOL to the non-owner attribute.
[0151] In step S1307, the SCS501G of the destination SVOL node at the sub-site updates the control information of its own node's SVOL to the owner attribute.
[0152] As a result of the above process, the destination SVOL node acquires ownership rights to the SVOL and processes subsequent I / O requests from hosts. If the source SVOL node, which does not have owner attributes, receives an I / O request from a host, it forwards the I / O request from the source SVOL node to the destination SVOL node, where the I / O request is processed.
[0153] Furthermore, if the cluster at the secondary site is configured using a drive box shared among the nodes, the data transfer process in steps S1302 to S1305 may be skipped. This is because each node has physical access to the data owned by any node, and therefore the transfer of ownership can be achieved simply by updating the control information regarding ownership in steps S1306 to S1307.
[0154] The processes in steps S1308 to S1313 are processes to change the communication path between the PVOL owner node of the primary site and the SVOL node of the secondary site, and are executed by the path change processing program 624.
[0155] In step S1308, the SCS501F of the source SVOL node at the secondary site notifies the PVOL owner node at the primary site that the current communication path is not optimal. Here, "not optimal" means that a communication path has not been established to the new SVOL owner node (destination SVOL node). This notification may be included in the response to the I / O request from the host, or it may be sent asynchronously with the host I / O request. Alternatively, this notification may be replaced by disconnecting the communication path to the source SVOL node.
[0156] In step S1309, the PVOL owner node at the primary site receives notification from the source SVOL node that the current communication path is not optimal.
[0157] In step S1310, SCS501A, the PVOL owner node at the primary site, queries the discovery node at the secondary site for information on the node that has ownership rights to the SVOL.
[0158] In step S1311, the discovery node SCS501C at the sub-site retrieves node information about the node that owns the SVOL (i.e., the destination SVOL node) from the shared database between the sub-site nodes.
[0159] Then, in step S1312, the SCS501C responds to the PVOL owner node of the positive site with the node information obtained in step S1311.
[0160] In step S1313, the PVOL owner node at the primary site receives node information about the SVOL owner node from the discovery node at the secondary site.
[0161] Then, the SCS501A, the PVOL owner node of the primary site, executes the login process in step S907 based on the received node information, thereby logging in to the destination node SVOL node indicated by the node information and establishing a communication path.
[0162] Once the process in step S907 described above is completed, the PVOL owner node at the primary site can then communicate with the destination SVOL node to transfer data for the remote copy. In other words, when the SVOL owner node at the secondary site is changed, the storage system 101 can use the discovery node at the secondary site to change the settings of the communication path between the PVOL owner node and the SVOL owner node.
[0163] By performing the processes described above, the storage system 101 according to this embodiment can query information about the PVOL owner node or SVOL owner node between the primary site and the secondary site when creating a remote copy pair, and automatically set up a communication path between the PVOL owner node and the SVOL owner node. Furthermore, in the storage system 101, each site records information about the ownership rights of the PVOL or SVOL in the shared database 105 between nodes, so that the primary site or the secondary site can obtain information about the node that has ownership rights to the paired volumes by querying any node in the other site.
[0164] Thus, according to the storage system 101 of this embodiment, when creating a remote copy pair between the primary site and the secondary site, a communication path can be automatically set between the nodes that have ownership rights to the paired volumes, thereby reducing the operating costs of the storage system and preventing adverse effects on performance when performing remote copy processing. [Explanation of Symbols]
[0165] 100 users 101 Storage System 102 Volume (PVOL, SVOL, JNLVOL) 103 Remote Copy Pair 104 Communication Pass 105 Shared Databases 201 sites (primary site, secondary site) 202,220 networks 210 nodes 211 processors 212 memory 213 Processor Package 214 Drive 215 ports 216 Internal Bus 401 Host 402 Application 403 Data 404 Storage Pool 501 Storage Control Software (SCS) 610 Control Information Table 611 System Configuration Management Table 612 Pair Configuration Management Table 620 Storage Programs 621 Path creation processing program 622 Node Failure Recovery Program 623 Data Transfer Processing Program 624 Path change processing program 625 I / O Processing Program 626 Owner Migration Processing Program
Claims
1. A storage system comprising a primary site and a secondary site, each having a processor package including a processor and memory, and each having a processor package including a processor and memory, The storage nodes constituting the positive site include a positive volume owner node having a positive volume. The storage nodes constituting the sub-site include a sub-volume owner node having a sub-volume paired with the primary volume, and a discovery node that responds with node information of nodes having volumes in its own site in response to a query. When setting up a communication path for remote copying from the primary volume to the secondary volume, The storage node at the primary site queries the discovery node at the secondary site for node information of the node having the secondary volume paired with the primary volume. The discovery node responds to the received query by returning the node information of the node having the subvolume. The primary volume owner node, based on the node information obtained from the discovery node, sets up a communication path between itself and the secondary volume owner node for remote copying of volume data from the primary volume to the secondary volume. A storage system characterized by the following features.
2. The primary volume owner node and the secondary volume owner node each have an active node that executes processing and a standby node that takes over processing when the active node fails. In setting the communication path, the communication path is set between the active nodes of the primary volume owner node and the secondary volume owner node, and the backward path is set between the active nodes of the primary volume owner node and the secondary volume owner node and the standby node. If a failure occurs in the active node of either the primary volume owner node or the secondary volume owner node, The processing is transferred from the active node where the failure occurred to the standby node. Switch the communication path in the pair to the backward path and continue processing between the pair. The storage system according to feature 1.
3. The primary site and the secondary site each have the discovery node, Each primary site and secondary site has multiple storage nodes, each having an active node that performs processing and a standby node that takes over processing when the active node fails. If a failure occurs in the active node of either the primary volume owner node or the secondary volume owner node, The processing is transferred from the active node where the failure occurred to the standby node. The active node of the site where the failure did not occur queries the discovery node of the site where the failure occurred for node information of the node that took over the processing. The primary volume owner node, based on the node information obtained from the discovery node, reconfigures the communication path to the node that took over the processing from the active node of the site that is not experiencing a failure, and continues processing between the pair. The storage system according to feature 1.
4. If a predetermined volume is moved between storage nodes within the same site, in either the primary site or the secondary site, The owner node of the volume at the other site that forms the pair with the predetermined volume reconfigures the communication path between it and the destination node of the volume at the one site. The storage system according to feature 1.
5. If a predetermined volume is moved between storage nodes within the same site, in either the primary site or the secondary site, The source node of the moved predetermined volume notifies the owner node of the volume at the other site that is paired with the moved predetermined volume that the current communication path is unsuitable. Upon receiving the notification, the owner node of the volume at the other site queries the discovery node at the one site for node information of the destination node having the predetermined volume, and based on the node information obtained from the queried discovery node, reconfigures the communication path between itself and the destination node of the volume. The storage system according to feature 1.
6. The primary site and the secondary site each have a shared database that stores configuration information shared among storage nodes within their respective sites. If a query is made from one of the primary site and the secondary site to any storage node of the other site regarding a node that has a volume at that other site, The storage node that receives the query obtains the node information of the node being queried by referring to the shared database at its own site and responds to the query source. The storage system according to feature 1.
7. The aforementioned positive site has a journal volume in which update differential data from multiple positive volumes is stored along with metadata including write time information. At a predetermined timing, the secondary volume owner node sends a journal read request to the primary volume owner node. Upon receiving the journal read request, the primary volume owner node refers to the journal volume at the primary site and transfers the updated differential data and its metadata to the secondary volume owner node. The secondary volume owner node writes the updated differential data transferred from the primary volume owner node to the corresponding secondary volume, referring to the metadata. The storage system according to feature 1.
8. A method for controlling communication paths in a storage system comprising a primary site and a secondary site, each having The storage nodes constituting the positive site include a positive volume owner node having a positive volume. The storage nodes constituting the sub-site include a sub-volume owner node having a sub-volume paired with the primary volume, and a discovery node that responds with node information of nodes having volumes in its own site in response to a query. When setting up a communication path for remote copying from the primary volume to the secondary volume, The storage node at the primary site queries the discovery node at the secondary site for node information of the node having the secondary volume paired with the primary volume. The discovery node responds to the received query by returning the node information of the node having the subvolume. The primary volume owner node, based on the node information obtained from the discovery node, sets up a communication path between itself and the secondary volume owner node for remote copying of volume data from the primary volume to the secondary volume. A communication path control method characterized by the following.
Citation Information
Patent Citations
Storage system and path setting method
JP2011197920A
Information processing system and path management method
JP2019185328A
Remote copy system
JP2021033782A
Distributed storage system and volume migration method
JP2022169249A
Computer system and management method for computer
US20180032254A1