Information processing system and method

The system addresses increased operational costs by compressing and rerouting I/O requests within the same availability zone, reducing data transfer across zones and communication costs in information processing systems.

JP2026015922AActive Publication Date: 2026-02-03HITACHI VANTARA LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024116842
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-22
Publication Date
2026-02-03
Estimated Expiration
2044-07-22

AI Technical Summary

Technical Problem

The transfer of user data across different availability zones in information processing systems incurs increased operational costs due to communication costs, even when the active storage control software and the host device are initially placed in the same availability zone, as failover can result in them being located in different zones.

Method used

An information processing system and method that includes a front-end unit to identify the storage node for an I/O request and an availability zone detection unit to detect the host node's location, compressing user data before transfer across zones and correcting I/O request destinations to the same availability zone, thereby reducing direct data transfers between zones.

Benefits of technology

This approach reduces operational costs by minimizing data transfer across availability zones and preventing direct user data transfers, thus suppressing communication costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026015922000001_ABST
    Figure 2026015922000001_ABST
Patent Text Reader

Abstract

To provide an information processing system and method for suppressing an increase in operation cost.SOLUTION: Specifying, by a storage node, a storage node in which a logical volume of a I / O destination of a I / O request transmitted from a host node is provided, and when the logical volume is provided in another storage node, compressing and transferring the I / O request to the storage node in which the logical volume is provided, while detecting, by the storage node, an availability zone (AZ) in which the host node that is a transmission source of the I / O request is disposed; When the availability zone in which the detected host node is disposed does not match the availability zone in which the storage node is disposed, the storage node disposed in the same availability zone as that of the host node is notified to the host node as a transmission destination of a I / O request with the logical volume as a I / O destination from the next time.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system and method, and is suitable for application to, for example, an information processing system that transfers user data between availability zones. [Background technology]

[0002] In recent years, development of Software Defined Storage (SDS), which is constructed by installing storage control software on general-purpose server equipment, has been progressing. Demand for SDS is on the rise because it does not require dedicated hardware and is highly scalable.

[0003] Furthermore, in recent years, in order to improve the availability and reliability of information processing systems, an operational method has been widely used in which user data is made redundant by using multiple pieces of storage control software located at different locations.

[0004] In an information processing system that employs such an operational method, storage control software located at one location is set as the active system that processes user data write and read requests (hereinafter collectively referred to as I / O (Input / Output) requests) from a higher-level device, and storage control software located at the remaining locations is set as the standby system.

[0005] If a failure occurs in the storage control software set in the active system or in the server device on which that storage control software is implemented, the state of one of the standby system storage control software is switched to the active system, and a failover is performed in which that storage control software takes over the I / O processing of the original active system storage control software.

[0006] In relation to information processing systems, Patent Document 1 discloses a technology for managing the migration of applications and user data between a private cloud and a public cloud based on the resource utilization rate (server utilization rate and / or storage utilization rate) of the private cloud as a method for improving the return on investment in a hybrid cloud environment. [Prior art documents] [Patent documents]

[0007] [Patent Document 1] U.S. Patent No. 9,081,610 Summary of the Invention [Problem to be solved by the invention]

[0008] Incidentally, when the above-described operating method is applied to an information processing system in which multiple storage control software are placed in different availability zones, it is preferable to place the active storage control software and the upper level device in the same availability zone.

[0009] This is because when the current storage control software and the upper device are placed in different availability zones, user data will be transferred across availability zones. However, such transfer of user data across availability zones incurs communication costs according to the amount of data transferred, which increases operational costs.

[0010] However, even if the active storage control software and the host device are initially placed in the same availability zone, if a failover occurs, the new active storage control software and the host device will be located in a different availability zone, which causes a problem of increased operational costs due to communication costs incurred in transferring user data between the active storage control software and the host device.

[0011] The present invention has been made in consideration of the above points, and aims to propose an information processing system and method that can suppress increases in operational costs. [Means for solving the problem]

[0012] In order to solve this problem, in the present invention, in an information processing system having a plurality of storage nodes arranged in different availability zones, the storage node has a front-end unit that receives an I / O request sent from a host node, identifies the storage node in which a logical volume of the I / O destination of the received I / O request is provided, and if the logical volume is provided in another storage node, transfers the I / O request to the storage node in which the logical volume is provided, and an availability zone detection unit that detects the availability zone in which the host node that is the sender of the I / O request is located, and the front-end unit transfers user data to the other storage node. When transferring the user data to the storage node located in an availability zone, the user data is compressed before transfer, and the availability zone detection unit compares the availability zone in which the detected host node is located with the availability zone in which the storage node in which the availability zone detection unit itself is implemented is located, and if the availability zone in which the host node is located does not match the availability zone in which the storage node in which the availability zone detection unit itself is implemented exists, a detection process is executed to notify the host node of the storage node located in the same availability zone as the host node as the destination of the I / O request for the next and subsequent I / O requests having the logical volume as the I / O destination.

[0013] Also, in the present invention, there is provided an information processing method executed by an information processing system having a plurality of storage nodes arranged in different availability zones, the information processing method comprising: a first step in which the storage node receives an I / O request transmitted from a host node, identifies the storage node in which a logical volume of the I / O destination of the received I / O request is provided, and if the logical volume is provided in another storage node, transfers the I / O request to the storage node in which the logical volume is provided; and a second step in which the storage node detects the availability zone in which the host node that transmitted the I / O request is provided, When the storage node transfers user data to the storage node located in another of the availability zones, the user data is compressed before transfer, and in the second step, the storage node compares the availability zone in which the detected host node is located with the availability zone in which it itself is located, and if the availability zone in which the host node is located does not match the availability zone in which it itself is located, it executes a detection process to notify the host node of the storage node located in the same availability zone as the host node as the destination of the I / O request for the next and subsequent I / O requests having the logical volume as the I / O destination.

[0014] Therefore, this information processing system can prevent user data from being transferred directly across availability zones from a host node to a storage node in which an I / O destination logical volume is provided, and can prevent user data read from an I / O destination logical volume in response to an I / O request from being transferred directly across availability zones to an application. Furthermore, this information processing system can suppress the amount of data transferred between storage nodes across availability zones. [Effects of the Invention]

[0015] According to the present invention, it is possible to realize an information processing system and method that can suppress increases in operational costs. [Brief explanation of the drawings]

[0016] [Figure 1] 1 is a block diagram showing the overall configuration of an information processing system according to an embodiment of the present invention; [Figure 2] FIG. 2 is a block diagram showing a schematic configuration of a storage node. [Figure 3] FIG. 2 is a block diagram showing the logical configuration of the information processing system. [Figure 4] 10 is a diagram showing an example of the configuration of an I / O path history table. [Figure 5] 10 is a diagram illustrating an example of the configuration of a front-end management table. [Figure 6] 10 is a diagram showing an example of the configuration of a storage node management table. [Figure 7] 10 is a diagram illustrating an example of the configuration of an application management table. [Figure 8] 10 is a diagram showing an example of the configuration of a logical volume management table. [Figure 9] 10 is a diagram showing an example of the configuration of a storage control unit management table. [Figure 10] 10 is a flowchart showing a processing procedure for I / O processing. [Figure 11A] 10 is a flowchart showing the processing steps of availability zone match / mismatch detection processing. [Figure 11B] 10 is a flowchart showing the processing steps of availability zone match / mismatch detection processing. [Figure 12] 10 is a diagram illustrating an example of the configuration of a mismatch detection log. [Figure 13] 10 is a diagram illustrating an example of the configuration of an I / O path correction log. [Figure 14] 10 is a flowchart showing the processing steps of an I / O path correction process. DETAILED DESCRIPTION OF THE INVENTION

[0017] An embodiment of the present invention will be described in detail below with reference to the drawings.

[0018] (1) Configuration of the information processing system according to this embodiment 1, the reference numeral 1 denotes an information processing system according to this embodiment as a whole. This information processing system 1 is configured with one or more host nodes 2 and storage nodes 3 arranged in each of multiple availability zones AZ (AZ1, AZ2, AZ3), and a management node 4.

[0019] Each availability zone AZ and management node 4 are connected via a first network 5 configured from, for example, the Internet, Ethernet (registered trademark), or InfiniBand. Furthermore, each host node 2 and each storage node 3 within the same availability zone AZ are connected to each other via a second network 6 such as Fibre Channel (FC), Ethernet (registered trademark), InfiniBand, or a wireless LAN (Local Area Network).

[0020] However, the first and second networks 5 and 6 may be configured as the same network, and each host node 2 and each storage node 3 may be connected to a management network other than the first or second networks 5 and 6.

[0021] The host node 2 is a general-purpose computer device that functions as a host (higher-level device) for the storage node 3. The host node 2 may be a physical computer device with an entity, or a virtual computer device such as a virtual machine.

[0022] An application program (hereinafter simply referred to as an application) 7 is installed in the host node 2, and the application 7 issues I / O requests to the storage node 3 via the first and / or second networks 5 and 6.

[0023] The host node 2 also has an iSCSI (internet SCSI (Small Computer System Interface)) initiator (hereinafter simply referred to as the initiator) 8 that supports ALUA (Asymmetric Logical Unit Access). If there are multiple paths to a logical volume VOL (FIG. 1) created in the storage node 3, the initiator 8 prioritizes these paths and uses the path with the highest priority to send an I / O request issued by the application 7 to that logical volume VOL.

[0024] The storage nodes 3 are general-purpose physical server devices that provide logical volumes VOL for reading and writing data to the host nodes 2. As shown in Fig. 2, the storage nodes 3 are configured with one or more CPUs (Central Processing Units) 10, memory 11, multiple storage devices 12, and one or more first and second communication devices 13, 14. The CPUs 10 and storage devices 12 are connected to the first and second communication devices 13, 14 via an internal network 15.

[0025] The CPU 10 is a processor that controls the overall operation of the storage node 3. The memory 11 is composed of volatile semiconductor memory such as SRAM (Static RAM (Random Access Memory)) or DRAM (Dynamic RAM), and is used as a working memory for the CPU 10 to temporarily store various programs and necessary data. By having at least one or more CPUs 10 execute the programs stored in the memory 11, various processes are executed by the storage node 3 as a whole, as described below.

[0026] The storage device 12 is composed of a large-capacity non-volatile storage device such as an NVMe (Non-Volatile Memory) drive, a SAS (Serial Attached SCSI) drive, a SATA (Serial ATA (Advanced Technology Attachment)), an SSD (Solid State Drive) or an SCM (Storage Class Memory), and provides a physical storage area for actually storing user data stored in the logical volume VOL.

[0027] The first communication device 13 is an interface for the storage node 3 to communicate with the management node 4 or storage nodes 3 arranged in other availability zones AZ via the first network 5, and is configured, for example, by a network interface card (NIC). The first communication device 13 controls protocols during communication with the management node 4 or storage nodes 3 arranged in other availability zones AZ.

[0028] The second communication device 14 is an interface that enables the storage node 3 to communicate with the host node 2 or other storage nodes 3 located in the same availability zone AZ via the second network 6, and is configured, for example, with a NIC, an FC card, or a wireless LAN card. The second communication device 14 controls the protocol when communicating with the host node 2 or other storage nodes 3 located in the same availability zone AZ.

[0029] In this embodiment, as shown in Fig. 1, each storage node 3 is grouped together with other storage nodes 3 arranged in each availability zone AZ into a group called a cluster 9, and is managed in cluster units. The example in Fig. 1 illustrates a case where only one cluster 9 is set, but multiple clusters 9 may be set within the system.

[0030] The management node 4 is a computer device that manages the IP addresses on the first network 5 of the initiators 8 running on each host node 2 located in each availability zone AZ, by associating them with the availability zones AZ in which these host nodes 2 are located.

[0031] When a storage node 3 specifies an IP address and inquires about the availability zone AZ in which the corresponding host node 2 is located, as described below, the management node 4 responds to the storage node 3 with the availability zone AZ in which the host node 2 is located.

[0032] Fig. 3 shows the logical configuration of an information processing system 1 according to this embodiment. As shown in Fig. 3, the host nodes 2 arranged in each availability zone AZ are connected to all storage nodes 3 arranged in each availability zone AZ via first and second networks 5 and 6, respectively.

[0033] As described above, the host node 2 is equipped with an application 7 and an initiator 8, and when necessary, the application 7 sends an I / O request specifying the I / O destination logical volume (hereinafter referred to as the I / O destination logical volume) VOL and the I / O destination address in the I / O destination logical volume VOL to one of the storage nodes 3 via the initiator 8 and the path selected by the initiator 8.

[0034] Each storage node 3 is configured to include a front-end unit 20, one or more storage control units 21, a back-end unit 22, a cluster control unit 23, a node control unit 24, a platform unit 25, a node monitoring unit 26, and a database 27. In the following description, the storage node 3 in which the storage node 3 itself is located as viewed from the front-end unit 20, the storage control unit 21, the back-end unit 22, the cluster control unit 23, the node control unit 24, the platform unit 25, and the node monitoring unit 26 will be referred to as the local storage node 3.

[0035] The front-end unit 20 is software that has the function of, when an I / O request is given from an application 7 of one of the host nodes 2, distributing the I / O request to a storage control unit 21 in the storage node 3 that should process the I / O request, or to another storage node 3 in which a storage control unit 21 that should process the I / O request is located.

[0036] In practice, in the information processing system 1 of this embodiment, each logical volume VOL is created in association with a storage control unit 21 (more precisely, a redundancy group 28 described later), and the storage control unit 21 (more precisely, a redundancy group 28 described later) to which the logical volume VOL is associated is responsible for reading and writing user data to that logical volume VOL.

[0037] When the front-end unit 20 receives an I / O request, it identifies the I / O destination logical volume VOL from the I / O request, and by referring to the management information stored in the database 27 and described later with reference to Figures 5 to 9, identifies the storage control unit 21 to which the I / O destination logical volume VOL is associated and the storage node 3 in which the storage control unit 21 is located.

[0038] If the identified storage control unit 21 is located within its own storage node 3, the front-end unit 20 transfers the I / O request to that storage control unit 21. If the storage control unit 21 is associated with a storage control unit 21 in another storage node 3, the front-end unit 20 transfers (distributes) the I / O request to the front-end unit 20 of that storage node 3.

[0039] The storage control unit 21 is software (storage control software) that functions as a controller for SDS (Software Defined Storage). The storage control unit 21 receives an I / O request from the front-end unit 20 and issues an I / O command corresponding to the received I / O request to the back-end unit 22.

[0040] In this embodiment, each storage control unit 21 implemented in a storage node is managed as a group that configures a redundancy configuration together with other storage control units 21 implemented in other storage nodes 3 arranged in other availability zones AZ. Hereinafter, this group will be referred to as a redundancy group 28.

[0041] 3 shows a case where one redundancy group 28 is configured by three storage control units 21 arranged in storage nodes 3 that are arranged in different availability zones AZ, and the following description will be given assuming that the redundancy group 28 is configured in a similar manner. However, the redundancy group 28 may be formed by two or four or more storage control units 21 depending on the number of availability zones AZ.

[0042] In the redundancy group 28, one storage control unit 21 is set to a state in which it can accept I / O requests from the host node 2 (the active system state, hereinafter referred to as active mode), and the other storage control unit 21 is set to a state in which it cannot accept I / O requests from the host node 2 (the standby system state, hereinafter referred to as passive mode).

[0043] In the redundancy group 28, if a failure occurs in a storage control unit (hereinafter, appropriately referred to as an active storage control unit) 21 that is set to active mode or in the storage node 3 in which the active storage control unit 21 is located, the state of the storage control unit (hereinafter, appropriately referred to as a passive storage control unit) 21 that was previously set to passive mode will be switched to active mode.

[0044] This means that if the active storage control unit 21 becomes unable to operate, the I / O processing that was being performed by that active storage control unit 21 can be taken over by the passive storage control unit 21 that constitutes the same redundancy group 28 (failover function).

[0045] For this reason, each storage node 3 holds, as management information, configuration information of the redundancy group 28 (not shown), such as which storage control units 21 constitute the redundancy group 28 and which storage control unit 21 of the storage control units 21 constituting the redundancy group 28 is the active storage control unit 21. When transferring an I / O request, the front-end unit 20 refers to this management information and transfers the I / O request to the active storage control unit 21 of the storage control units 21 constituting the corresponding redundancy group 28.

[0046] The backend unit 22 is software that functions as a backend for I / O processing in the storage node 3. The backend unit 22 allocates a physical storage area provided by the storage device 12 (FIG. 2) in its own storage node 3 and / or a physical storage area provided by the storage device 12 in another storage node 3 in the same availability zone AZ to a logical volume VOL associated with a redundancy group 28 configured by the active storage control unit 21 arranged in its own storage node 3.

[0047] Furthermore, in accordance with the above-mentioned I / O command provided from the active storage control unit 21, the backend unit 22 writes user data to a storage area allocated to the logical volume VOL associated with the active storage control unit 21, or reads the written user data from the storage area and transfers it to the storage control unit (active storage control unit) 21 that sent the I / O command. The user data read from the storage area and transferred to the storage control unit 21 is then transferred as read data to the host node 2 that sent the I / O request via the storage control unit 21 and the frontend unit 20 in that order.

[0048] The cluster control unit 23 is software having a function of executing control processing for the entire cluster 9 to which the own storage node 3 belongs (hereinafter referred to as the own cluster) and control processing for scaling out the cluster 9. In the case of the information processing system 1 of this embodiment, the state of one of the cluster control units 23 implemented in each storage node 3 in the cluster 9 is set to primary mode, and only the cluster control unit 23 set to primary mode (hereinafter referred to as the primary cluster control unit) 23 executes various control processing while maintaining the consistency of the entire cluster 9. For example, the primary cluster control unit 23 sets the above-mentioned redundancy group 28 in the cluster 9 in response to a request from the management node 4, and registers and manages the set redundancy group 28 in a redundancy group management table (not shown).

[0049] In addition, the cluster control units 23 other than the primary cluster control unit 23 are set to either the master mode or the secondary mode in preparation for a failure of the primary cluster control unit 23.

[0050] The master mode is an operating mode in which the cluster controller 23 remains in a standby state activated so that it can immediately take over the processing that had been performed by the primary cluster controller 23 in the event of a failure in the primary cluster controller 23 or the storage node 3 in which the primary cluster controller 23 is implemented. At least one cluster controller 23 in the master mode (hereinafter referred to as the master cluster controller) is arranged in each availability zone AZ.

[0051] The master cluster control unit 23 stores and holds in database 27 management information with the same content as all the management information that the primary cluster control unit 23 stores and manages in database 27 (for example, the information stored in each table described later with reference to Figures 4 to 9) so that it can immediately take over the processing that was being executed by the primary cluster control unit 23.

[0052] When the management information held by the primary cluster control unit 23 is updated, the difference before and after the update is provided as differential data from the primary cluster control unit 23 to all master cluster control units 23 via the first or second network 5, 6, and based on the differential data, the management information held by that master cluster control unit 23 is updated by that master cluster control unit 23 in the same way as the management information held by the primary cluster control unit 23.

[0053] In this way, by the master cluster control unit 23 always holding the same management information as the primary cluster control unit 23, even if a failure occurs in the primary cluster control unit 23, etc., and the state of the cluster control unit 23 that was previously set to master mode is switched to primary mode, the control processing that had been performed by the original primary cluster control unit 23 can be taken over by the cluster control unit 23 that has been newly switched to primary mode.

[0054] To prevent a situation in which there are two or more primary cluster control units 23, three or more cluster control units 23 are operated, and one cluster control unit 23 selected by majority vote from among these operating cluster control units 23 is set as the primary cluster control unit 23. The remaining operating cluster control units 23 are then set to the master mode.

[0055] The secondary mode is an operation mode in which no control processing is performed for the entire cluster 9. When the number of cluster control units 23 set to the master mode within the same cluster 9 falls below a preset threshold, the state of any of the cluster control units 23 set to the secondary mode is switched to the master mode.

[0056] The cluster control unit 23 in secondary mode also stores and holds in its database 27 management information with the same content as all the management information stored and managed in the database 27 by the master cluster control unit 23 in the same availability zone AZ.

[0057] When the management information held by the same master cluster control unit 23 is updated, the difference before and after the update is provided as differential data from the master cluster control unit 23 to all secondary mode cluster control units 23 within the same availability zone AZ via the second network 6, and based on the differential data, the management information held by that cluster control unit 23 is updated by that cluster control unit 23 in the same way as the management information held by the master cluster control unit 23.

[0058] The node control unit 24 is software having the function of executing various control processes that are completed within its own storage node 3 in response to a request from the primary cluster control unit 23. In practice, the primary cluster control unit 23 requests the node control unit 24 of each storage node 3 to execute processes that are completed within that storage node 3, so as not to concentrate the load on itself. When such a request is given, the node control unit 24 executes control processes for the front-end unit 20, storage control unit 21, and / or back-end unit 22 within its own storage node 3 in accordance with the request.

[0059] The platform unit 25 is software that controls the start and end of each piece of software within its own storage node 3. For example, the platform unit 25 starts each piece of software such as the front-end unit 20 when the storage node 3 is started, and ends the operation of each piece of software such as the front-end unit 20 when the operation of the storage node 3 is ended.

[0060] The node monitoring unit 26 is software that has the function of monitoring the aliveness of storage nodes 3 in the same availability zone AZ. In practice, in each availability zone AZ, the node monitoring unit 26 of the storage node 3 in which the primary cluster control unit 23 or the master mode cluster control unit 23 is located exchanges heartbeat signals with other storage nodes 3 in the same availability zone AZ, and determines the aliveness of the corresponding storage node 3 based on whether or not a heartbeat signal is received.

[0061] When the node monitoring unit 26 detects a failure in a storage node 3, the result is notified to the primary cluster control unit 23. At this time, the primary cluster control unit 23 blocks the storage node 3 and, if necessary, issues an instruction to the cluster control unit 23 of the corresponding storage node 3 to execute a failover.

[0062] (2) Data compression and transfer function and I / O request destination correction function of this embodiment Next, a data compression and transfer function installed in the front-end unit 20 of the storage node 3 of this embodiment and an I / O request destination correction function installed in the cluster control unit 23 will be described.

[0063] The data compression function is a function that compresses user data as necessary before transferring it to a storage node 3 in a different availability zone AZ. The I / O request destination correction function is a function that switches the destination of the next and subsequent I / O requests that target a logical volume VOL in the host node 2 (more specifically, the application 7) that has issued an I / O request specifying one of the logical volumes VOL in its own cluster 9 as the I / O destination logical volume VOL, to one of the storage nodes 3 that belong to (are located in) the same availability zone AZ as the host node 2 (more specifically, the application 7).

[0064] In practice, in the case of the information processing system 1 of this embodiment, the user can set, for each logical volume VOL, whether to prioritize cost or I / O performance when processing I / O for that logical volume VOL.

[0065] Here, "cost" refers to the communication fee incurred according to the amount of data transferred when transferring data across availability zones AZ. If "cost" is set as a priority for a logical volume VOL, the front-end unit 20 compresses and transfers user data to be written to that logical volume VOL or read from that logical volume VOL to a storage node 3 located in another availability zone AZ in order to reduce the communication cost between availability zones AZ.

[0066] Furthermore, "I / O performance" here refers to the performance of I / O processing as seen from the application 7 that issued the I / O request. When user data is compressed and transferred, a considerable amount of time is required for the data compression process. For this reason, when "I / O performance" is set as a priority for a logical volume VOL, the front-end unit 20 transfers user data written to or read from that logical volume VOL between availability zones AZ without compressing the data.

[0067] On the other hand, the primary cluster control unit 23 collects and manages information regarding I / O requests received up to that point by each storage node 3 in the same cluster 9, such as the initiator name and IP address on the first network 5 of the sending initiator 8 obtained from the I / O request, the front-end unit 20 that received the I / O request, and the I / O destination logical volume VOL of the I / O request, as I / O path information from these storage nodes 3.

[0068] Furthermore, based on the collected I / O path information, the primary cluster control unit 23 inquires of the management node 4, for each I / O request, about the availability zone AZ in which the host node 2 that issued the I / O request is located (more specifically, the availability zone AZ in which the application 7 implemented on the host node 2 exists; the same applies below), and determines whether the availability zone AZ in which the host node 2 thus obtained is located matches the availability zone AZ in which the storage node 3 in which the I / O destination logical volume VOL of the I / O request is located is located.

[0069] If these availability zones AZ do not match and "cost" has been set as the priority aspect for the I / O destination logical volume VOL, the primary cluster control unit 23 notifies the host node 2 (more specifically, the application 7) of the front-end unit 20 of one of the storage nodes 3 that is in the same availability zone AZ as the host node 2 (more specifically, the application 7) as the destination for future I / O requests targeting the same logical volume VOL.

[0070] Thus, the host node 2 (more specifically, its application 7) thereafter changes the setting of the initiator 8 so that the destination of an I / O request directed to the logical volume VOL is the notified front-end unit 20. Furthermore, if the I / O request is a write request, the front-end unit 20 that receives this I / O request compresses the write-target user data provided along with the write request and transfers it to the front-end unit 20 in the storage node 3 in which the I / O destination logical volume VOL of the I / O request is located.

[0071] Furthermore, if the I / O request is a read request, the front-end unit 20 of the storage node 3 in which the I / O destination logical volume VOL is provided compresses the user data read from the I / O destination logical volume VOL and transfers it to the storage node 3 that is the source of the I / O request (the storage node 3 that is located in the same availability zone AZ as the application 7 that issued the I / O request).

[0072] In this way, in the information processing system 1, when the priority set for the I / O destination logical volume VOL is "cost," the amount of user data transferred between availability zones AZ is reduced, thereby reducing communication charges incurred according to the amount of data transferred.

[0073] As means for realizing the data compression and transfer function and the I / O request destination correction function of this embodiment as described above, an availability zone detection unit 23A is provided in the cluster control unit 23 of each storage node 3, and a compression necessity determination unit 20A is provided in the front-end unit 20. Furthermore, the database 27 of the storage node 3 stores, as part of management information, the I / O path history table shown in Fig. 4, the front-end unit management table shown in Fig. 5, the storage node management table shown in Fig. 6, the application management table shown in Fig. 7, the logical volume management table shown in Fig. 8, and the storage control unit management table shown in Fig. 9.

[0074] The availability zone detection unit 23A is a functional unit that has the function of inquiring of the management node 4 about the availability zone AZ in which the application 7 exists, based on the IP address of the sending application 7 contained in the I / O request received by each storage node 3 in its own cluster 9.

[0075] The compression necessity determination unit 20A is a functional unit that has the function of determining whether or not to compress user data when transferring the user data between availability zones AZ as described above. The compression necessity determination unit 20A makes such a determination by checking the priority setting set for the logical volume VOL to / from which the user data to be transferred is read / written.

[0076] On the other hand, the I / O path history table 30 is a table used by each front-end unit 20 implemented in each storage node 3 within the cluster 9 to which the storage node 3 holding the I / O path history table 30 belongs to manage the I / O requests that have been received up to that point.

[0077] In this embodiment, when the front-end unit 20 in its own storage node 3 receives an I / O request, the cluster control unit 23 notifies the primary cluster control unit 23 directly or via the master cluster control unit 23 in its own availability zone AZ of the initiator name and IP address of the initiator 8 that issued the I / O request, the UUID (Universally Unique Identifier) ​​of the front-end unit 20 that received the I / O request, and the UUID of the I / O destination logical volume VOL of the I / O request.

[0078] The primary cluster control unit 23 then registers and manages this information notified from the master cluster control unit 23 in other availability zones AZ, as well as similar information regarding I / O requests received by the front-end unit 20 in its own storage node 3, in this I / O path history table 30.

[0079] 4, this I / O path history table 30 is configured to include an I / O time column 30A, an initiator name column 30B, an IP address column 30C, a request receiving front-end unit column 30D, and an I / O destination logical volume column 30E. In the I / O path history table 30, one record (row) corresponds to one I / O request received by one front-end unit 20 in the same cluster 9.

[0080] The I / O time column 30A stores the date and time when the corresponding storage node 3 received the corresponding I / O request. The initiator name column 30B stores the identifier (here, the initiator name) of the initiator 8 used by the application 7 that is the sender of the I / O request, recognized based on the I / O request, and the IP address column 30C stores the IP address of the initiator 8, recognized based on the I / O request. Note that, hereinafter, the IP address of the initiator 8 may be referred to as the IP address of the application 7 that uses the initiator 8.

[0081] Furthermore, the request receiving front end unit column 30D stores a UUID (Universally Unique Identifier) ​​assigned to the front end unit 20 that received the I / O request and unique to that front end unit 20. Furthermore, the I / O destination logical volume column 30E stores a UUID assigned to the I / O destination logical volume VOL of that I / O request and unique to that I / O destination logical volume VOL.

[0082] Therefore, in the example of Figure 4, it is shown that the front-end unit 20 with the UUID "computeport1" received an I / O request at "2024 / 2 / 1 12:00:00" specifying the logical volume with the UUID "VOL1" as the I / O destination logical volume VOL, which was sent from an initiator 8 with the initiator name "initiator1" having an IP address of "192.168.1.11" (more precisely, an application 7 that uses that initiator 8).

[0083] The front-end unit management table 31 is a table for managing the front-end units 20 arranged in each storage node 3 existing in the same cluster 9, and is configured with a UUID column 31A and a storage node column 31B. In the front-end unit management table 31, one record corresponds to one front-end unit 20 existing in the same cluster 9.

[0084] The UUID column 31A stores the UUID of the corresponding front end unit 20, and the storage node column 31B stores the UUID of the storage node 3 in which the front end unit 20 is located.

[0085] Therefore, in the example of FIG. 5, it is shown that the front-end unit 20 to which the UUID "computeport1" is assigned is located in the storage node 3 to which the storage node UUID "StorageNode1" is assigned.

[0086] The storage node management table 32 is a table for managing the availability zone AZ to which each storage node 3 existing in the same cluster 9 belongs (is placed), and is configured with a UUID column 32A and an associated availability zone column 32B, as shown in Fig. 6. In the storage node management table 32, one record corresponds to one storage node 3.

[0087] The UUID column 32A stores the UUID of the corresponding storage node 3, and the associated availability zone column AZ stores the identification number (hereinafter referred to as the availability zone number) of the availability zone AZ to which the storage node 3 belongs (is located).

[0088] Therefore, in the example of Figure 6, it is shown that storage node 3, which has been assigned the UUID "StorageNode1", belongs to (is located in) availability zone AZ, which has been assigned the availability zone number "1".

[0089] The application management table 33 is a table for managing the applications 7 implemented in each host node 2 within the same cluster 9, and as shown in Fig. 7, is configured with an initiator name column 33A, an associated availability zone column 33B, and a previous detected execution time column 33C. In the application management table 33, one record corresponds to one application 7.

[0090] The initiator name field 33A stores the initiator name of the initiator 8 used by the corresponding application 7, and the associated availability zone field 33B stores the identification number of the availability zone AZ in which the application 7 exists (more precisely, the availability zone AZ to which the host node 2 on which the application 7 is implemented belongs). The previous detection execution time field 33C stores the date and time when the availability zone match / mismatch detection process, which will be described later with reference to Figures 11A and 11B, was last executed for the application 7.

[0091] Therefore, in the example of Figure 7, the application 7 that uses the initiator 8 with the initiator name "initiator1" is the application 7 implemented on the host node 2 that belongs to (is located in) the availability zone AZ that has been assigned the identification number "1", and the date and time when the availability zone mismatch detection process was last executed is "2024 / 2 / 1 12:00:00".

[0092] The logical volume management table 34 is a table for managing logical volumes VOL that exist in the same cluster 9, and is configured with a UUID column 34A, a storage control unit column 34B, and an important viewpoint column 34C, as shown in Fig. 8. In the logical volume management table 34, one record corresponds to one logical volume VOL that exists in the same cluster 9.

[0093] The UUID column 34A stores a UUID that is unique to the corresponding logical volume VOL and that is assigned to that logical volume VOL, and the storage control unit column 34B stores the UUID of the storage control unit 21 that corresponds to that logical volume VOL.

[0094] Furthermore, the priority viewpoint column 34C stores information indicating whether cost or I / O performance is to be prioritized when performing I / O processing for that logical volume VOL (information indicating the priority viewpoint). This setting is performed in advance by the user. The example in Fig. 8 shows an example in which, for example, if cost is to be prioritized, "cost" is stored in the priority viewpoint column 34C, and if I / O performance is to be prioritized, "I / O performance" is stored in the priority viewpoint column 34C.

[0095] As described above, user data read from and written to a logical volume VOL whose priority is set to "cost" is compressed and transferred between availability zones AZ, and user data read from and written to a logical volume VOL whose priority is set to "I / O performance" is transferred between availability zones AZ without being compressed.

[0096] Therefore, in the example of Figure 8, the logical volume VOL assigned the UUID "Volume1" is set to prioritize "cost", and it is indicated that the storage control unit 21 assigned the UUID "StorageController1" is responsible for I / O processing.

[0097] The storage control unit management table 35 is a table for managing the storage control units 21 arranged in each storage node 3 existing in the same cluster 9, and is configured with a UUID column 35A and a storage node column 35B, as shown in Fig. 9. In the storage control unit management table 35, one record corresponds to one storage control unit 21 existing in the same cluster 9.

[0098] The UUID column 35A stores a UUID that is unique to the corresponding storage control unit 21 and is assigned to that storage control unit 21, and the storage node column 35B stores the UUID of the storage node 3 to which that storage control unit 21 belongs (is located).

[0099] Therefore, in the example of FIG. 9, it is shown that the storage control unit 21 assigned the UUID "StorageController1" belongs to (is located in) the storage node 3 assigned the UUID "StorageNode1".

[0100] (3) Various processes executed in relation to the functions of this embodiment Next, we will explain the details of various processes related to the data compression and transfer function and I / O request destination correction function according to this embodiment, which are executed within each storage node 3. Note that, although the various processes will be explained below as being performed by software (functional units), it goes without saying that in reality, the CPU 10 (FIG. 2) of the storage node 3 executes the processes based on the software.

[0101] (3-1) I / O processing Fig. 10 shows the flow of a series of I / O processes executed by the front-end unit 20 of the storage node 3 that has received an I / O request from the application 7. When the front-end unit 20 receives the I / O request, the I / O process shown in Fig. 10 starts.

[0102] First, the front-end unit (hereinafter referred to as the request receiving front-end unit) 20 executes a process to record the necessary information regarding the I / O request in the I / O path history table 30 (Figure 4) held by each storage node 3 in the same cluster 9 (S1).

[0103] Specifically, the front-end unit 20 extracts from the I / O request the initiator name of the initiator 8 used by the application 7 that sent the I / O request, the IP address of that initiator 8, and the UUID of the I / O destination logical volume of the I / O request.

[0104] The front-end unit 20 also transmits the extracted information and the date and time when the I / O request was received as I / O path history information to the front-end unit 20 of the storage node 3 where the primary cluster control unit 23 is located (hereinafter referred to as the primary storage node) 3 directly (if the cluster control unit 23 of the storage node 3 where the front-end unit 20 is located is in master mode) or via a cluster control unit 23 in master mode within the same availability zone AZ (if the cluster control unit 23 of the storage node 3 where the front-end unit 20 is located is in secondary mode).

[0105] Thus, the master front-end unit 20 of the primary storage node 3 that receives this I / O path history information registers this I / O path history information in the I / O path history table 30. Furthermore, the front-end unit 20 transfers the I / O path history information registered in the I / O path history table 30 to the storage node 3 in which the master cluster control unit 23 of each availability zone AZ is located (hereinafter, this will be referred to as the master storage node) and to the front-end units 20 of other storage nodes 3 via the master storage node 3.

[0106] Then, the master storage node 3 or the front-end unit 20 of another storage node 3 that receives the I / O path history information records the I / O path history information in its own I / O path history table 30. In this way, the I / O path history information is recorded in the I / O path history table 30 held by each storage node 3 in the cluster 9.

[0107] Next, the request receiving front-end unit 20 determines whether or not it is necessary to transfer (distribute) the received I / O request to another storage node 3 (S2).

[0108] Specifically, the request receiving front-end unit 20 identifies a record from among the records in the logical volume management table 34 (Figure 8) in which the UUID of the I / O destination logical volume VOL extracted from the I / O request in step S1 is stored in the UUID column 34A, and obtains the UUID of the storage control unit 21 stored in the storage control unit column 34B of that record.

[0109] The request receiving front-end unit 20 also identifies the record in the storage control unit management table 35 (Figure 9) in which the UUID of the storage control unit 21 obtained from the logical volume management table 34 as described above is stored in the UUID column 35A, and obtains the UUID of the storage node 3 stored in the storage node column 35B of that record.

[0110] Furthermore, the request receiving front-end unit 20 identifies the record in the storage node management table 32 (Figure 6) in which the UUID of the storage node 3 obtained from the storage control unit management table 35 as described above is stored in the UUID column 32A, and obtains the availability zone number of the availability zone AZ stored in the associated availability zone column 32B of that record.

[0111] The request receiving front-end unit 20 then determines whether the acquired identification number matches the availability zone number of the availability zone AZ to which the storage node 3 belongs (is located), and thereby determines whether the received I / O request needs to be transferred (distributed) to another storage node 3.

[0112] A negative result in this determination means that the I / O destination logical volume VOL is provided within the own storage node 3, and therefore there is no need to transfer (distribute) the received I / O request to another storage node 3.

[0113] Thus, at this time, the request receiving front end unit 20 transfers the I / O request to the storage control unit 21 in its own storage node 3 to which the I / O destination logical volume VOL in the same storage node 3 is associated (S3). At this time, if the I / O request is a write request, the request receiving front end unit 20 also transfers the write-target user data sent from the application 7 together with the write request to the storage control unit 21 without compressing it. Then, the request receiving front end unit 20 then ends this I / O processing.

[0114] After receiving this I / O request, the storage control unit 21 executes I / O processing for the I / O destination logical volume VOL in accordance with the I / O request.

[0115] In contrast, obtaining a positive result in the judgment of step S2 means that the I / O destination logical volume VOL is located in another storage node 3, and therefore the received I / O request needs to be forwarded (distributed) to that storage node 3.

[0116] Thus, at this time, when transferring the I / O request and the data if the I / O request is a write request to the storage node 3 in which the I / O destination logical volume VOL is provided, the request receiving front-end unit 20 inquires of the compression necessity determination unit 20A (FIG. 3) as to whether or not the user data needs to be compressed (S4).

[0117] Upon receiving this inquiry, the compression necessity determination unit 20A refers to the logical volume management table 34 (FIG. 8) to determine whether or not the user data needs to be compressed (S5). This determination is made by referring to the logical volume management table 34 to determine whether the emphasis set for the I / O destination logical volume VOL is "cost" and whether or not the I / O destination logical volume VOL exists in an availability zone AZ other than the availability zone AZ to which its own storage node 3 belongs (is located).

[0118] If the compression necessity determination unit 20A obtains a negative result in this determination, it responds to the request receiving front end unit 20 that data compression is unnecessary (S6). Thus, the request receiving front end unit 20 that receives this response does not compress the user data to be written, even if the I / O request is a write request, and transfers the user data to the front end unit 20 of the storage node 3 in which the active storage control unit 21 to which the I / O destination logical volume VOL of the user data is associated is located (S7). The request receiving front end unit 20 then terminates this I / O processing.

[0119] Furthermore, if the compression necessity determination unit 20A obtains a positive result in the determination of step S5, it responds to the request receiving front-end unit 20 that data compression is necessary (S8). Thus, the request receiving front-end unit 20 that has received this response compresses the user data to be written if the I / O request is a write request, and transfers the compressed data thus obtained to the front-end unit 20 of the storage node 3 in which the active storage control unit 21 associated with the I / O destination logical volume VOL of that user data is located (S9). Then, the request receiving front-end unit 20 then ends this I / O processing.

[0120] (3-2) Availability Zone Match / Mismatch Detection Process On the other hand, FIGS. 11A and 11B show availability zone match / mismatch detection processing that is executed by the availability zone detection unit 23A of the primary cluster control unit 23 asynchronously with I / O processing and at regular intervals.

[0121] In accordance with the processing procedures shown in Figures 11A and 11B, the availability zone detection unit 23A notifies each application 7 that has issued an I / O request targeting any logical volume VOL in the cluster 9 of one of the storage nodes 3 that belongs to (is located in) the same availability zone AZ as the application 7 as the destination for future I / O requests targeting that logical volume VOL.

[0122] In practice, when the availability zone detection unit 23A starts this availability zone match / mismatch detection process, it first selects one record from the I / O path history table 30 (Figure 4) that has not been processed from step S11 onwards (S10).

[0123] Then, the availability zone detection unit 23A obtains from the record selected in step S10 the initiator name of the initiator 8 that sent the corresponding I / O request, the IP address of that initiator 8 on the first network 5, and the UUID of the I / O destination logical volume VOL of that I / O request (S11).

[0124] Next, the availability zone detection unit 23A obtains from the application management table 33 (Figure 7) the time when the processing of steps S11 to S21 was last executed (hereinafter referred to as the last detected execution time) for the application 7 (hereinafter referred to as the target application) that issued the corresponding I / O request via the initiator 8 whose initiator name was obtained in step S11 (S12).

[0125] Specifically, the availability zone detection unit 23A identifies a record among the records in the application management table 33 in which the initiator name obtained in step S11 is stored in the initiator name column 33A, and obtains the time stored in the last detected execution time column 33C of that record as the last detected execution time of the target application.

[0126] Next, the availability zone detection unit 23A determines whether a predetermined period of time has elapsed since the previous detection execution time acquired in step S12 until the present (S13). This determination is made to prevent the frequent execution of the processes from step S14 onward from having a corresponding adverse effect on I / O processing. If the availability zone detection unit 23A obtains a negative result in this determination, it proceeds to step S22.

[0127] In response to this, if the determination in step S13 is affirmative, the availability zone detection unit 23A queries the management node 4 about the availability zone AZ in which the target application 7 exists (S14). Thereafter, the availability zone detection unit 23A determines whether or not the information about the availability zone AZ in which the target application 7 exists has been acquired by the query in step S14 (S15).

[0128] If the availability zone detection unit 23A obtains a negative result in this determination, the availability zone detection unit 23A proceeds to step S22. Note that a negative result may be obtained in step S15 when communication with the management node 4 fails due to a setting error, a network failure, or the like.

[0129] In response to this, if the availability zone detection unit 23A obtains a positive result in the judgment of step S15, it stores the initiator name of the initiator 8 used by the target application 7 obtained in step S11, the availability zone number of the availability zone AZ in which the target application 7 exists, and the current time as new or overwrite data in the initiator name column 33A, associated availability zone column 33B, or last detection execution time column 33C of the application management table 33, respectively (S16).

[0130] Furthermore, the availability zone detection unit 23A determines whether the availability zone AZ in which the target application 7 exists matches the availability zone AZ of the storage node 3 that received the I / O request from the target application 7 (S17).

[0131] Specifically, the availability zone detection unit 23A refers to the I / O path history table 30 and acquires the UUID of the front-end unit 20 that is the destination of the latest I / O request of the target application 7. The availability zone detection unit 23A also acquires the UUID of the storage node 3 in which the front-end unit 20 to which the acquired UUID is assigned is located from the front-end unit management table 31 (FIG. 5).

[0132] Furthermore, the availability zone detection unit 23A acquires from the storage node management table 32 (FIG. 6) the availability zone number of the availability zone AZ in which the storage node 3 to which the acquired UUID is assigned is located.

[0133] Furthermore, the availability zone detection unit 23A acquires the availability zone number of the availability zone AZ in which the target application 7 exists from the application management table 33 (FIG. 7).

[0134] The availability zone detection unit 23A then compares the availability zone number of the availability zone AZ in which the target application 7 exists, obtained as described above, with the availability zone number of the availability zone AZ of the storage node 3 that received the I / O request from the target application 7, and determines whether they match (S17).

[0135] If the availability zone detection unit 23A obtains a positive result in this determination, it proceeds to step S22. On the other hand, if the availability zone detection unit 23A obtains a negative result in the determination in step S17, it determines whether the I / O target logical volume VOL is set to cost-oriented (S18). This determination is made by determining whether "cost" is stored in the priority viewpoint column 34C of the record corresponding to the I / O target logical volume VOL in the logical volume management table 34 (FIG. 8).

[0136] If the availability zone detection unit 23A obtains a negative result in this determination, it generates a log to that effect (hereinafter referred to as a mismatch detection log) and stores it in the database 27 (FIG. 3) (S19), and then proceeds to step S22.

[0137] An example of the configuration of the inconsistency detection log created in step S19 is shown in Fig. 12. This inconsistency detection log 40 includes a time field 40A, an event ID field 40B, a message field 40C, an event name field 40D, and a solution field 40E.

[0138] The time field 40A stores the time when the inconsistency detection log 40 was created, and the event ID field 40B stores identification information unique to the inconsistency detection log 40 that has been assigned to the inconsistency detection log 40.

[0139] In addition, the message field 40C stores a message indicating that an application 7 has been detected sending an I / O request to a front-end unit 20 located in a different availability zone AZ during this availability zone match / mismatch detection process.

[0140] Furthermore, the event name field 40D stores the event name ("APP-FE AZ mismatch detected") of the event that detected an application 7 sending an I / O request to a front-end unit 20 located in a different availability zone AZ.

[0141] Furthermore, the solution field 40E stores a solution to the problem of increased communication costs that occurs when the availability zone AZ in which the application 7 that issued the I / O request is located does not match the availability zone AZ in which the front-end unit 20 to which the I / O request is sent is located.

[0142] This inconsistency detection log 40 can be read from the storage node 3 by accessing the storage node 3 using a computer device such as a user terminal, and its contents can be displayed on the computer device. This allows the user to check whether there is an application 7 that is sending an I / O request to a storage node 3 in a different availability zone AZ, and to find a solution to prevent the increase in communication costs that occurs due to such a situation.

[0143] On the other hand, if the availability zone detection unit 23A obtains a positive result in the judgment of step S18, it executes an I / O path correction process (S20) to notify the target application 7 of the storage node 3 located in the same availability zone AZ as the target application 7 as the destination of the I / O request targeting the I / O target logical volume VOL.

[0144] The availability zone detection unit 23A then generates a log indicating that the I / O path correction process has been performed (hereinafter referred to as an I / O path correction log) and stores it in the database 27 (Figure 3) (S21), and then proceeds to step S22.

[0145] An example of the configuration of the I / O path correction log created in step S21 is shown in Fig. 13. Like the inconsistency detection log 40 described above with reference to Fig. 12, this I / O path correction log 41 also includes a time field 41A, an event ID field 41B, a message field 41C, an event name field 41D, and a solution field 41E.

[0146] The time field 41A stores the time when the I / O path correction log 41 was created, and the event ID field 41B stores identification information unique to the I / O path correction log 41 that has been assigned to the I / O path correction log 41.

[0147] In addition, the message field 41C stores a message indicating that an application 7 has been detected in this availability zone match / mismatch detection process sending an I / O request to a front-end unit 20 located in a different availability zone AZ.

[0148] Furthermore, the event name field 41D stores the event name ("App-FE AZ mismatch correction") of the event that corrects the mismatch between the availability zone AZ in which the application 7 that issued the I / O request is located and the availability zone AZ in which the front-end unit 20 to which the I / O request is sent is located.

[0149] Furthermore, the solution field 41E stores a solution to the problem of a decrease in I / O performance that occurs when the availability zone AZ in which the application 7 that issued the I / O request is located and the availability zone AZ in which the front-end unit 20 to which the I / O request is sent is corrected to match.

[0150] This I / O path correction log 41 can be read from the storage node 3 by accessing the storage node 3 using a computer device such as a user terminal, and the contents can be displayed on the computer device, thereby allowing the user to confirm a solution to the degradation of I / O performance that occurs as a result of correcting the I / O path.

[0151] Returning to the explanation of FIG. 11B, the availability zone detection unit 23A then determines whether or not the processing of steps S11 to S21 has been completed for all records in the I / O path history table 30 (S22).

[0152] If the availability zone detection unit 23A obtains a negative result in this determination, it returns to step S10, and thereafter repeats the processes of steps S10 to S22 while sequentially switching the record selected in step S10 to other records that have not been processed in steps S11 and onwards.

[0153] When the availability zone detection unit 23A eventually completes the processing of steps S11 to S21 for all records in the I / O path history table 30 and obtains a positive result in step S22, it terminates this availability zone match / mismatch detection processing.

[0154] (3-3) I / O path correction process FIG. 14 shows specific processing contents of the I / O path correction processing executed by the availability zone detection unit 23A in step S20 of the availability zone match / mismatch detection processing described above with reference to FIGS. 11A and 11B.

[0155] When the availability zone detection unit 23A proceeds to step S20 of the availability zone match / mismatch detection process, it starts the I / O path correction process shown in Fig. 14. Then, the availability zone detection unit 23A first compares the availability zone AZ in which the target application 7 exists with the availability zone AZ in which the I / O target logical volume VOL exists (S30).

[0156] Specifically, the availability zone detection unit 23A acquires the UUID of the I / O target logical volume VOL by referring to the I / O path history table 30 (FIG. 4). Furthermore, the availability zone detection unit 23A identifies a record in the logical volume management table 34 (FIG. 8) in which the UUID of the I / O target logical volume VOL acquired as described above is stored in the UUID column 34A, and acquires the UUID of the storage control unit 21 stored in the storage control unit column 34B of that record.

[0157] Furthermore, the availability zone detection unit 23A identifies a record in the storage control unit management table 35 (Figure 9) in which the UUID of the storage control unit 21 obtained as described above is stored in the UUID column 35A, and obtains the UUID of the storage node 3 stored in the storage node column 35B of that record.

[0158] The availability zone detection unit 23A then identifies a record in the storage node management table 32 (FIG. 6) in which the UUID of the storage node 3 acquired as described above is stored in the UUID column 32A, and acquires the availability zone number stored in the associated availability zone column 32B of that record. The availability zone number acquired in this way is the availability zone number of the availability zone AZ in which the I / O target logical volume VOL exists.

[0159] The availability zone detection unit 23A then compares the availability zone number of the availability zone AZ in which the I / O target logical volume VOL obtained in this manner exists with the availability zone number of the availability zone AZ in which the target application 7 exists obtained in step S14 of the availability zone match / mismatch detection process.

[0160] Thereafter, the availability zone detection unit 23A determines whether or not the availability zone AZ in which the target application 7 exists matches the availability zone AZ in which the I / O target logical volume VOL exists as a result of the comparison in step S30 (S31).

[0161] Obtaining a negative result in this determination means that the target application 7 and the I / O target logical volume VOL are in different availability zones AZ. Thus, at this time, the availability zone detection unit 23A selects one front-end unit 20 that is in the same availability zone AZ as the target application 7, and acquires the UUID of that front-end unit 20 (S32).

[0162] Specifically, the availability zone detection unit 23A refers to the storage node management table 32 and arbitrarily selects one storage node 3 that is located in the same availability zone AZ as the target application 7.

[0163] Then, the availability zone detection unit 23A selects one record from the records in the front-end management table 31 (Figure 5) in which the UUID of the storage node 3 selected as described above is stored in the storage node column 31B, and obtains the UUID stored in the UUID column 31A of that record.

[0164] Next, the availability zone detection unit 23A requests the front-end unit 20 in which it is installed to send a notification to the target application 7 that it should change the destination of I / O requests for the next I / O target logical volume VOL to the front-end unit 20 with the UUID acquired in step S32 (S33).

[0165] Thus, the front-end unit 20 that receives this request sends a notification to the target application 7 that the destination of I / O requests for the next I / O target logical volume VOL should be changed to the front-end unit 20 assigned the UUID selected by the availability zone detection unit 23A in step S32 (S34).

[0166] Then, the target application 7 that receives this notification changes the settings of the initiator 8 so as to change the destination of the I / O request for the next I / O target logical volume VOL to the front-end unit 20 to which the UUID notified in step S34 has been assigned.

[0167] This completes the I / O path correction process. The availability zone detection unit 23A then returns to the availability zone match / mismatch detection process.

[0168] On the other hand, obtaining a positive result in the determination of step S31 means that the target application 7 and the I / O target logical volume VOL are present in the same availability zone AZ. Thus, at this time, the availability zone detection unit 23A identifies the front-end unit 20 arranged in the storage node 3 in which the I / O target logical volume VOL is provided (S35).

[0169] Specifically, the availability zone detection unit 23A identifies a record from among the records in the front-end unit management table 31 (Figure 5) in which the UUID of the storage node 3 obtained in the series of processes described above for step S30 is stored in the storage node column 31B, and reads out the UUID of the front-end unit 20 stored in the UUID column 31A of that record.

[0170] Next, the availability zone detection unit 23A requests the front-end unit 20 in which it is installed to send a notification to the target application 7 that it should change the destination of I / O requests for the next I / O target logical volume VOL to the front-end unit 20 to which the UUID acquired in step S35 has been assigned (S36).

[0171] Thus, the front-end unit 20 that receives this request sends a notification to the target application 7 that the destination of I / O requests for the next I / O target logical volume VOL should be changed to the front-end unit 20 to which the UUID acquired by the availability zone detection unit 23A in step S35 has been assigned (S37).

[0172] Then, the target application 7 that receives this notification changes the settings of the initiator 8 so as to change the destination of the I / O request for the next I / O target logical volume VOL to the front-end unit 20 to which the UUID notified in step S36 has been assigned.

[0173] This completes the I / O path correction process. The availability zone detection unit 23A then returns to the availability zone match / mismatch detection process.

[0174] (4) Effects of this embodiment As described above, in the information processing system 1 of this embodiment, the availability zone detection unit 23A of the cluster control unit 23 determines, for each I / O request issued up to that point, whether the availability zone AZ in which the application 7 that issued the I / O request is located matches or does not match the availability zone in which the I / O destination logical volume VOL is located, based on the I / O path history information stored in the I / O path history table 30.

[0175] If these availability zones AZ do not match, the availability zone detection unit 23A notifies the storage node 3 located in the same availability zone AZ as the availability zone AZ in which the application 7 exists as the destination for subsequent I / O requests with the I / O destination logical volume VOL as the I / O destination.

[0176] Therefore, according to the present information processing system 1, it is possible to prevent user data from being directly transferred from an application 7 across availability zones AZ to a storage node 3 in which an I / O destination logical volume VOL is provided, and to prevent user data read from an I / O destination logical volume VOL in response to an I / O request from being directly transferred across availability zones AZ to an application 7.

[0177] In addition, in this information processing system 1, the compression necessity determination unit 20A of the front-end unit 20 determines whether data compression is necessary, and if it is determined that data compression is necessary for user data to be read or written to the I / O destination logical volume VOL of an I / O request, the user data is compressed when transferred across availability zones AZ.

[0178] Therefore, according to this information processing system 1, when the priority set for the I / O destination logical volume VOL is "cost," the amount of user data transferred between availability zones AZ can be reduced, thereby reducing communication charges incurred according to the amount of data transferred, thereby preventing an increase in operating costs.

[0179] (5) Other embodiments In the above-described embodiment, the availability zone match / mismatch detection process described above with reference to Figures 11A and 11B and the I / O path correction process described above with reference to Figure 14 are performed by the availability zone detection unit 23A of the primary storage node 3. However, the present invention is not limited to this, and it is also possible to provide an information processing device that executes the availability zone match / mismatch detection process and the I / O path correction process separately from the storage node 3 without providing the availability zone detection unit 23A in the cluster control unit 23 of the storage node 3.

[0180] In the above embodiment, an application 7 that has issued an I / O request specifying a certain logical volume VOL as the I / O destination is notified of an arbitrary storage node 3 located in the same availability zone AZ as the application 7, as the destination for subsequent I / O requests specifying that logical volume VOL as the I / O destination. However, the present invention is not limited to this, and it is also possible to notify a storage node 3 that satisfies a specific condition, such as notifying the storage node 3 with the least load, from among the storage nodes 3 located in the same availability zone AZ as the application 7. [Industrial Applicability]

[0181] The present invention can be applied to, for example, an information processing system having a plurality of storage nodes arranged in different availability zones. [Explanation of symbols]

[0182] 1...Information processing system, 2...Host node, 3...Storage node, 4...Management node, 7...Application, 8...Initiator, 10...CPU, 20...Front-end unit, 20A...Compression necessity determination unit, 21...Storage control unit, 22...Back-end unit, 23...Cluster control unit, 23A...Availability zone detection unit, 27...Database, 30...I / O path history table, 31...Front-end unit management table, 32...Storage node management table, 33...Application management table, 34...Logical volume management table, 35...Storage control unit management table, 40...Inconsistency detection log, 41...I / O path correction log, AZ, AZ1, AZ2, AZ3...Availability zone, VOL...Logical volume.

Claims

1. In an information processing system having a plurality of storage nodes each located in a different availability zone, The storage node a front-end unit that receives an I / O request sent from a host node, identifies the storage node in which a logical volume that is an I / O destination of the received I / O request is provided, and, if the logical volume is provided in another storage node, transfers the I / O request to the storage node in which the logical volume is provided; an availability zone detection unit that detects the availability zone in which the host node that is the sender of the I / O request is located; Equipped with The front end portion is When transferring user data to the storage node located in another availability zone, the user data is compressed and transferred; The availability zone detection unit The availability zone in which the detected host node is located is compared with the availability zone in which the storage node in which the host node is implemented is located, and if the availability zone in which the host node is located does not match the availability zone in which the storage node in which the host node is implemented exists, a detection process is executed to notify the host node of the storage node located in the same availability zone as the host node as the destination of the I / O request for the logical volume in question from the next time onwards. An information processing system comprising:

2. The host nodes and the storage nodes are connected to each other via a network, a management node that manages the address of each of the host nodes on the network and the availability zone in which the host nodes are located; The availability zone detection unit The front-end unit specifies an address on the network of a sender of the I / O request received by the front-end unit, and inquires of the management node about the availability zone in which the host node of the sender of the I / O request is located, thereby detecting the availability zone in which the host node is located.

2. The information processing system according to claim 1, wherein:

3. A viewpoint of whether to prioritize cost or I / O performance is set in advance for each of the logical volumes, The front end portion is When the priority set for the logical volume that is the I / O destination of the user data is cost, the user data is compressed and transferred between the availability zones; If the priority set for the logical volume that is the I / O destination of the user data is performance, the user data is transferred between the availability zones without being compressed.

2. The information processing system according to claim 1, wherein:

4. The availability zone detection unit The detection process is performed asynchronously with the process of the front end unit.

2. The information processing system according to claim 1, wherein:

5. The availability zone detection unit Generate and store a log including information on the result of matching between the availability zone in which the host node is located and the availability zone in which the storage node in which the host node is located is located.

2. The information processing system according to claim 1, wherein:

6. 1. An information processing method executed by an information processing system having a plurality of storage nodes arranged in different availability zones, the method comprising: a first step in which the storage node receives an I / O request transmitted from a host node, identifies the storage node in which a logical volume that is an I / O destination of the received I / O request is provided, and, if the logical volume is provided in another storage node, transfers the I / O request to the storage node in which the logical volume is provided; a second step in which the storage node detects the availability zone in which the host node that sent the I / O request is located; Equipped with In the first step, the storage node When transferring user data to the storage node located in another availability zone, the user data is compressed and transferred; In the second step, the storage node The availability zone in which the detected host node is located is compared with the availability zone in which the host node itself is located, and if the availability zone in which the host node is located does not match the availability zone in which the host node itself is located, a detection process is executed to notify the host node of the storage node located in the same availability zone as the host node as the destination of the I / O request having the logical volume as the I / O destination from the next time onwards. An information processing method comprising:

7. The information processing system includes: The host nodes and the storage nodes are connected to each other via a network, a management node that manages the address of each of the host nodes on the network and the availability zone in which the host nodes are located; In the second step, the storage node The address on the network of the sender of the received I / O request is specified, and the availability zone in which the host node that sent the I / O request is located is inquired of by the management node, thereby detecting the availability zone in which the host node is located.

7. The information processing method according to claim 6,

8. A viewpoint of whether to prioritize cost or I / O performance is set in advance for each of the logical volumes, In the first step, the storage node When the priority set for the logical volume that is the I / O destination of the user data is cost, the user data is compressed and transferred between the availability zones; If the priority set for the logical volume that is the I / O destination of the user data is performance, the user data is transferred between the availability zones without being compressed.

7. The information processing method according to claim 6,

9. The storage node The first step and the second step are executed asynchronously.

7. The information processing method according to claim 6,

10. In the second step, the storage node Generate and store a log including information on the result of matching between the availability zone in which the host node is located and the availability zone in which the node itself is located.

7. The information processing method according to claim 6,

Citation Information

Patent Citations

  • Method and apparatus to maximize return on investment in hybrid cloud environment

    US9081610B2