Storage system and data rearrangement method

The first storage apparatus includes a transmission unit for sending to a host computer, if data rearrangement in a volume is executed, a data transmission switching request for switching the transmission destination of write data, and a rearrangement unit for rearranging data in the volume. The host computer includes a data transmission switching unit for switching, after receiving the data transmission switching request from the transmission unit, the transmission destination of the write data from a first virtual volume in the first storage apparatus to a second virtual volume in a second storage apparatus. The rearrangement unit rearranges data in the first volume after the data transmission switching unit switches the transmission destination of the write data from the first virtual volume in the first storage apparatus to the second virtual volume in the second storage apparatus.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application relates to and claims priority from Japanese Patent Application No. 2007-241280, filed on Sep. 18, 2007, the entire disclosure of which is incorporated herein by reference.

BACKGROUND

The invention relates generally to a storage system and a data rearrangement method suitable for use in, for example, a storage system where data is backed up between storage systems.

A method managing plural hard disks utilizing RAID (Redundant Array of Independent/inexpensive Disks) format is conventionally used in storage systems that store data using storage apparatuses. At least one logical volume is formed in a physical storage area provided by a number of hard disks.

Recently, a “dynamic storage area allocation” technique, i.e., a technique of not creating a logical volume with a fixed capacity using a storage area in hard disks, but providing a host computer with a virtual volume using plural logical volumes and dynamically allocating a storage area in the logical volumes to the virtual volume in response to a request from a host computer has been proposed (for example, see Japanese Patent Laid-Open Publication No. 2003-015915).

However, if a new storage area in a logical volume is added to a virtual volume using the “dynamic storage area allocation” technique, the amount of data stored may vary depending on the logical volumes used for the virtual volume, and, as a result, access will possibly concentrate in some specific logical volumes and the performance when responding to requests from a host computer may deteriorate as a whole.

In that regard, for example, a data rearrangement technique for improving the performance when responding to requests from a host computer by averaging the data amounts stored in logical volumes used by a virtual volume and rearranging data stored in those logical volumes has been proposed. However, when implementing that data rearrangement technique, the data rearrangement is executed after temporarily stopping the host computer from sending requests. Accordingly, requests from the host computer cannot be received during the data rearrangement process, and the response performance deteriorates.

SUMMARY

The present invention has been made in light of the circumstances described above, and its object is to provide a storage system and a data rearrangement method that can improve the entire system performance.

To achieve the above object, in an aspect of the invention, a storage system includes: a host computer for sending various kinds of requests and write data; a first storage apparatus having a first virtual volume that can be dynamically extended and that is provided to the host computer, and a first volume allocated to the first virtual volume, the first volume being a volume where data sent from the host computer is written; and a second storage apparatus having a second virtual volume for backing up data stored in the first virtual volume, and a second volume allocated to the second virtual volume, the second volume being a volume where data sent from the first storage apparatus is written. In that storage system, the first storage apparatus further includes: a first transmission unit for sending to the host computer, if data rearrangement in the first volume is executed, a data transmission switching request for switching the transmission destination of the write data; and a first rearrangement unit for rearranging data in the first volume. The host computer includes a data transmission switching unit for switching, after receiving the data transmission switching request sent from the first transmission unit, the data transmission destination so that write data, which was originally directed to the first virtual volume in the first storage apparatus, is sent to the second virtual volume in the second storage apparatus. The first rearrangement unit rearranges data in the first volume after the data transmission switching unit switches the transmission destination of the write data from the first virtual volume in the first storage apparatus to the second virtual volume in the second storage apparatus.

With that configuration, the storage system the host computer sends data to is different from the storage system in which data rearrangement is executed. Accordingly, the data rearrangement does not affect the write data transmission from the host computer, and can be executed without temporarily stopping the host computer sending data. By doing so, the situation where data sent from the host computer cannot be received during the data rearrangement and the response performance deteriorates can be effectively prevented.

In another aspect of the invention, a data rearrangement method for a storage system includes: a host computer for sending various kinds of requests and write data; a first storage apparatus having a first virtual volume that can be dynamically extended and that is provided to the host computer, and a first volume allocated to the first virtual volume, the first volume being a volume where data sent from the host computer is written; and a second storage apparatus having a second virtual volume for backing up data stored in the first virtual volume, and a second volume allocated to the second virtual volume, the second volume being a volume where data sent from the first storage apparatus is written, the data rearrangement method including: a first step of sending, to the host computer, a data transmission switching request for switching a transmission destination of the write data if the data rearrangement in the first volume is executed; a second step of switching, after the host computer receives the data transmission switching request sent in the first step, the transmission destination of the write data from the first virtual volume in the first storage apparatus to the second virtual volume in the second storage apparatus; and a third step of rearranging data in the first volume after, in the second step, the transmission destination of the write data is switched from the first virtual volume in the first storage apparatus to the second virtual volume in the second storage apparatus.

With that configuration, the storage system the host computer sends data to is different from the storage system in which data rearrangement is executed. Accordingly, the data rearrangement does not affect the write data transmission from the host computer, and can be executed without temporarily stopping the host computer sending data. By doing so, the situation where data sent from the host computer cannot be received during the data rearrangement and the response performance deteriorates can be effectively prevented.

With the above described invention, a storage system and a data rearrangement method capable of improving the entire system performance can be achieved.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

An embodiment of the invention will be described below with reference to the drawings.

1. Hardware Configuration for Storage System1in this Embodiment

FIG. 1shows a hardware configuration for a storage system1in this embodiment. The storage system1includes an operation server(s) (host computer(s))2, a first storage apparatus3, and a second storage apparatus4, mutually connected via an FC (Fibre Channel) switch5. In the storage system1, the operation server2, the first storage apparatus3, and the second storage apparatus4are connected to a management server6via a network7such as a LAN (Local Area Network).

The operation server2is a computer device having information processing resources (not shown) such as a CPU (Central Processing Unit) and memory, and examples of such a computer device include a personal computer, a workstation, and a mainframe. The operation server2also has a Fibre Channel host bus adapter (FC HBA) (not shown) for connecting the FC switch5, information input devices (not shown) such as a keyboard, a switch, a pointing device, and a microphone, and information output devices (not shown) such as a monitor display and a speaker.

The FC switch5exchanges commands and data with the operation server2via the Fibre Channel host bus adapter in units of blocks, which are data management units for storage resources provided by the operation server2. In this storage system1, the protocol used in the communication between the operation server2, the first storage apparatus3, and the second storage apparatus4is Fibre Channel protocol.

The operating server2and the first and second storage apparatuses3and4do not necessarily have to be connected via a SAN (Storage Area Network) using the FC switch5, and may alternatively be connected via LAN or similar. For example, in the case of connection via a LAN, commands and data are exchanged in accordance with TCP/IP (Transmission Control Protocol/Internet Protocol). When using a LAN, a LAN-compliant network card or similar may be used, instead of the host bus adapter3. In this invention, the operation server2may be directly connected to the first and second storage apparatuses3and4, not via the FC switch5.

The first storage apparatus3includes a storage device unit11A including plural disk devices12A for storing data, and a control unit21A for controlling data I/O to/from the storage device unit11A.

Examples of the disk devices12A in the storage device unit11A include an expensive disk such as an SCSI (Small Computer System Interface) disk, or an inexpensive disks such as an SATA (Serial AT Attachment) disk or an optical disk.

The disk devices12A in the storage device unit11A are operated in RAID format by the control unit12A. One or several logical volumes are set in a physical storage area provided by one or several disk devices12A. Data is stored in the logical volumes in units of blocks of a predetermined size (hereinafter referred to as a “logical block”).

Each logical volume is provided with a specific identifier (hereinafter referred to as an “LU (Logical Unit Number)”). In this embodiment, data is input/output by specifying an address, which is a combination of the LU and a specific number given to each logical block (LBA: Logical Block Address).

The control unit21includes plural channel adapters22A, a connector23A, shared memory24A, cache memory25A, plural disk adapters26A, and a management terminal27A.

Each channel adapter22is configured as a microcomputer including a microprocessor, memory, and a communication interface and the like, and has a port for connecting the FC switch5and the second storage apparatus4. The channel adapter22interprets various commands sent from the operation server2via the FC switch5and executes relevant processing. A network address (for example, an IP address or WWN) is allocated to a port in each channel adapter22A to identify each of the ports. That network address enables each channel adapter22to act individually as NAS (Network Attached Storage).

The connector23A is connected to the channel adapters22A, the shared memory24A, the cache memory25, and the disk adapters26A. Data and commands are exchanged, via the connector23A, between the channel adapters22A, shared memory24A, cache memory25A, and disk adapters26A. The connector23A is a bus or a switch such as a super high-speed cross bus switch that transmits data via high-speed switching.

The shared memory24A and the cache memory25A are storage memory shared by the channel adapters22A and the disk adapters26A. The shared memory24A is used mainly to store commands and system configuration information about the entire configuration of the first storage apparatus3. Various programs and tables stored in the shared memory24A will be described later.

The cache memory25A is used mainly to temporarily store data input/output to/from the first storage apparatus3.

Each disk adapter26A is configured as a microcomputer system having microprocessor and memory, or similar, and functions as an interface that controls the protocol during communication with the disk devices12A in the storage device unit11A. A disk adapter26A is connected via, for example, a Fibre Channel cable, with a corresponding disk device12A in the storage device unit11A, and exchanges data with that disk device12A in accordance with FC protocol.

The management terminal27A is a terminal device for controlling the entire operation of the first storage apparatus3, and examples of the management terminal27A include a notebook personal computer. The management terminal27A is connected to each channel adapter22A via the LAN28A, and each disk adapter26A via the LAN29A. The management terminal27A, for example, monitors the first storage apparatus3for the occurrence of failures. If a failure occurs, the management terminal27indicates the failure occurrence on its own display, and executes processing for blocking the relevant disk device12A in the storage device unit11A in accordance with operation by an operator. An operator can define the system configuration information using the management terminal27A, and store the thus-defined system configuration information in the shared memory24A via the channel adapters22A or the disk adapters26A and the connector23A.

The second storage apparatus4has the same configuration as the first storage apparatus3. InFIG. 1, the components in the second storage apparatus4the same as those in the first storage apparatus3are provided with the same reference numbers, followed by a suffix “B” instead of “A”. In the second storage apparatus4, a channel adapter22B is connected to one of the channel adapters22A in the first storage apparatus3via a signal line30such as a Fibre Channel cable or a LAN cable, and the required commands and data are exchanged with the first storage apparatus3via the signal line30.

The management terminal27B in the second storage apparatus4is connected to the management terminal27A in the fist storage system3via the network7, and the management terminal27B in the second storage apparatus4can exchange, via the network7, necessary information with the management terminal27A in the first storage apparatus3.

The management server6is a computer device having information processing resources (not shown) such as a CPU and memory, and examples of the management server6include a personal computer and a workstation. The management server6has information input devices (not shown) such as a keyboard, switch, pointing device, and a microphone, and information output devices (not shown) such as a monitor display and speaker. The management server6is a terminal device for controlling the entire operation in the storage system1. For example, the management server6monitors the operation server2and the first and second storage apparatuses3and4, and sends various requests to control the operation server2and the first and second storage apparatuses3and4.

2. Software Configuration for Storage System1and Logical Configuration for Disk Device12

FIG. 2shows a software configuration for the storage system1and a logical configuration for the disk devices12.

First, the software configuration for the storage system1will be described.

The memory in the operation server2stores an operation server communication program31for controlling communication between the operation server2and other devices, a host I/O switching program32, and a host I/O processing program33for controlling requests and data exchange between the first storage apparatus3and second storage apparatus4. The CPU in the operation server2executes various kinds of processing by running those programs. The specific sequence based on the host I/O switching program32will be described later.

The memory in the management server6stores a management server communication program41for controlling communication between the management server6and other devices, and a data rearrangement control program42. The CPU in the management server6executes various kinds of processing by running those programs. The specific sequences based on the data rearrangement control program42will be described later.

The shared memory24A in the first storage apparatus3stores a data synchronization program51A, a host I/O processing program52A, a host I/O switching program53A, a data rearrangement program54A, a rearrangement effect check program55A, a data synchronization/I/O switching request program56A, a data rearrangement request program57A, a volume information management table58A, a difference management table59A, and a host I/O management table60A.

The disk adapters26A in the first storage apparatus3execute various kinds of processing by referring to those tables and running those programs. The specific sequences based on the data synchronization program51A, the host I/O processing program52A, the host I/O switching program53A, the data rearrangement program54A, the rearrangement effect check program55A, the data synchronization/I/O switching request program56A, and the data rearrangement request program57A will be described later. The specific configurations of the volume information management table58A, the difference management table59, and the host I/O management table60A will also be described later.

The shared memory24B in the second storage apparatus4stores the same programs and tables as those stored in the shared memory24A in the first storage apparatus3. InFIG. 2, the programs and tables stored in the shared memory24B in the second storage apparatus4the same as those stored in the first storage apparatus3are provided with the same reference numbers, followed by a suffix “B,” instead of “A.”

Next, the logical configuration for the disk devices12A in the first storage apparatus3in the storage system1will be described below.

In the first storage apparatus3, the logical volumes can be broadly divided into virtual volumes61A that are logical volumes accessed by the host computer2, pool volumes62A that are logical volumes set in the real volumes used for mapping to the virtual volume60A, and difference management volumes63A that are logical volumes set in the real volumes used to store difference data for the virtual volume60A. In the first storage apparatus3, a pool area64A is formed by the plural pool volumes62A, and a difference management area65A is formed by the plural difference management volumes63A.

When a pool volume62A in the pool area64A is allocated to the virtual volume61A, the storage area for this pool volume62A in the disk device12is dynamically allocated, and therefore provided to the virtual volume61A.

Since the logical configuration for the disk devices12B in the second storage apparatus4is the same as the logical configuration for the disk devices12A in the first storage apparatus3, inFIG. 2the types of logical volume in the second storage apparatus4the same as those in the first storage apparatus3are provided with the same reference numbers, followed by a suffix “B,” instead of “A.”

In the storage system1, the first storage apparatus3sends, when receiving data from the operation server2, the data to the second storage apparatus4at a time other than that of the reception from the operation server2, and the second storage apparatus4, when receiving data from the operation server2, sends the data to the first storage apparatus3at a time other than that of the reception from the operation server2, mutually backing up data between the first and second storage apparatuses3and4.

More specifically, the first storage apparatus3writes, via the channel adapters22A, connector23A, cache memory25A, and disk adapters26A, data received from the operation server2to the storage area in the disk device12A for a pool volume62A used by the virtual volume61.

Next, the first storage apparatus3sends, at a time other than that of the data writing, the data written to the disk device12A to the second storage apparatus4via the disk adapters26A, the cache memory25A, the connector23A, the channel adapters22A, and the signal line30.

The second storage apparatus4writes, via the channel adapters22B, the connector23B, the cache memory25B, and the disk adapter26B, the data received from the first storage apparatus3to the storage area in the disk device12B for the pool volume62B used by the virtual volume61B corresponding to the virtual volume61A.

Meanwhile, in the same way, the second storage apparatus4writes data received from the operation server2to a storage area in the disk device12B for a pool volume62B used by the virtual volume61B, and then writes, at a time other than that of the above data writing, that data to the storage area in the disk device12A for a pool volume62A used by the virtual volume61A corresponding to the virtual volume61B.

3. Summary of Data Rearrangement Processing in Storage System1

FIG. 3shows a specific example of the summary of the data rearrangement processing in the storage system1. In this example, the same data is stored in the virtual volumes61A and61B. In other words, as shown inFIG. 3, it is assumed that the virtual volumes61A and61B use the same capacity and the same number of the pool volumes62A and62B, and the pool volumes62A and62B store the same data.

Note that the following description is merely an example, and the present invention is not based on the premise that the virtual volumes61A and61B use the same capacity and the same number of the pool volumes62A and62B and that the pool volumes62A and62B store the same data. The invention can be used when the first and second storage apparatuses3and4store the same data.

In this example, the operation server2and the first storage apparatus3exchange requests or data (hereinafter referred to as “I/O access”) by having the operation server2and the first storage apparatus3execute the host I/O processing. In this embodiment, exchange of requests or data between the operation server2and the second storage apparatus5is also referred to as “I/O access.”

The first storage apparatus3writes, when writing data by executing the host I/O processing, data sent from the operation server2to the storage area for a pool volume62A used by the virtual volume61A in accordance with a data write request sent from the operation server2(AC1), and writes difference data for the data sent from the operation server2to the storage area for the difference management volume63A.

The first storage apparatus3adds a pool volume62to the pool area64in accordance with a request from the management terminal27A (AC3), allocates the above added pool volume62A to a volume used by the virtual volume61A, and executes, when receiving a data rearrangement request from the management server6, data synchronization processing to synchronize the data stored in the pool volume62A used by the virtual volume61A with the data stored in the pool volume62B used by the virtual volume61B (AC4).

In other words, the first storage apparatus3sends the difference data stored in the difference management volume64A to the second storage apparatus4. The second storage apparatus4then writes the difference data sent from the first storage apparatus3to the storage area for the pool volume62B used by the virtual volume61B corresponding to the virtual volume61A (AC5).

After that, the first storage apparatus3sends a host I/O switching request to the operation server2by executing the host I/O switching processing. The operation server2switches, when receiving the host I/O switching request from the first storage apparatus3, the I/O access target by executing the host I/O switching processing so that the operation server2, which I/O accessed the first storage apparatus3, instead I/O accesses the second storage apparatus4. The operation server2then I/O accesses the second storage apparatus4by executing the host I/O processing.

When writing data by executing the host I/O processing, the second storage apparatus4writes, in accordance with a data write request sent from the operation server2, the data sent from the operation server2to the storage area for the pool volume62B used by the virtual volume61B (AC6), and writes the difference data for the data sent from the operation server2to the operation area for the difference management volume63B (AC7).

After that, the first storage apparatus3executes, after finishing the host I/O switching processing, the data rearrangement execution processing to move, for example, the difference data stored in the pool volume62A to the above added pool volume62A, thereby rearranging the data stored in the pool volume62A used by the virtual volume61A (AC8).

The first storage apparatus3executes, after finishing the data rearrangement execution processing, the rearrangement effect check processing to estimate its performance, i.e., calculates an I/O access performance value after the data rearrangement by, for example, I/O accessing with the operation server2a predetermined number of times (AC9).

After that, the first storage apparatus3sends a rearrangement effect check request to the second storage apparatus4. The second storage apparatus4estimates, after receiving the rearrangement effect check request from the first storage apparatus3, its performance, i.e., calculates a current I/O access performance value by, for example, I/O accessing the operation server2a predetermined number of times (AC10), and sends the resultant current I/O access performance value to the first storage apparatus3.

After that, the first storage apparatus3compares the above calculated I/O access performance value in the first storage apparatus3with the I/O access performance value in the second storage apparatus4sent above, and determines whether or not to switch the I/O access target so that the operation server2, which I/O accessed the second storage apparatus4, instead I/O accesses the first storage apparatus3(AC11).

If the first storage apparatus3decides to switch the I/O access target to have the operation server2I/O accesses the first storage apparatus3, the first storage apparatus3sends a data synchronization/I/O switching request to the second storage apparatus4by executing the data synchronization/I/O switching request processing (AC12). The second storage apparatus4executes, after receiving the data synchronization/I/O switching request from the first storage apparatus3, the data synchronization processing to synchronize the data stored in the pool volume62B used by the virtual volume61B with the data stored in the pool volume62A used by the virtual volume61A (AC13).

In other words, the second storage apparatus4sends the difference data stored in the difference management volume64B to the first storage apparatus3. The first storage apparatus3writes the difference data sent from the second storage apparatus4to the storage area for the pool volume62A used by the virtual volume61A corresponding to the virtual volume61B (AC14).

The second storage apparatus4then sends a host I/O switching request to the operation server2by executing host I/O switching processing. The operation server2executes, after receiving the host I/O switching request from the second storage apparatus4, the host I/O switching processing to switch the I/O access target so that the operation server2, which I/O accessed with the second storage apparatus4, instead I/O accesses the first storage apparatus3. The operation server2and the first storage apparatus3I/O accesses each other by executing the host I/O processing.

If the first storage apparatus3writes data by executing the host I/O processing, the first storage apparatus3writes, in accordance with the data write request sent from the operation server2, the data sent from the operation server2to the storage area for the pool volume62A used by the virtual volume61A (AC15), and writes the difference data for the data sent from the operation server2to the storage area for the difference management volume63A (AC16).

The second storage apparatus4executes, after finishing the host I/O switching processing, the data rearrangement execution processing to, for example, move the difference data stored in the pool volume62B to another pool volume62B and rearrange the data stored in the pool volume62B used by the virtual volume61B (AC17).

After step AC17, the second storage apparatus4is configured to execute, if necessary, the rearrangement effect check processing and the data synchronization/I/O switching request processing as those executed above in the first storage apparatus3.

Note that the operation server2and the second storage apparatus4also I/O accesses each other, and the second storage apparatus4may execute the same processing as the above described processing executed by the first storage apparatus3too.

4. Configurations for Various Tables

FIG. 5shows a configuration for the volume information management table58A. The volume information management table58A contains information necessary for calculating an I/O access performance value.

The volume information management table58A includes: a storage apparatus ID column71A for managing storage apparatus IDs, which uniquely specify a storage apparatus, for the storage apparatus holding this volume information management table58A; a pool volume ID column72A for managing pool volume IDs each uniquely specifying a pool volume62A; a RAID level column73A for managing the RAID level of the pool volumes62; a drive type management column74A for managing the drive type of the disk devices12A used for the pool volume62A; a number-of-drive-rotation column75A for managing the number of drive rotations of the disk devices12used for the pool volume62A; a used capacity column76A for managing the used capacity in the pool volume62A; and a usage status column77A for managing the usage status of the pool volumes62A.

For example, the pool volume62A with the pool volume ID “LU001” stored in the volume information management table58A for the storage apparatus ID “00100A” has a RAID level of “3D+1 P,” uses the disk device12A of drive type “HDDxxxx” with a drive rotation of “15000 rpm,” the used capacity in this pool volume62A being “100 GB,” and its usage status being “normal.” In the invention, the storage apparatus ID “00100A” is an ID for the first storage apparatus3, and the storage apparatus ID “00100B,” which will be mentioned later, is an ID for the second storage apparatus4.

FIG. 6shows a configuration for the difference management table59A. The difference management table59A contains information necessary for managing difference data stored in a difference management volume.

The difference management table59includes: a storage apparatus ID column81A for managing the storage apparatus ID for the storage apparatus holding this difference management table59A; a difference data ID column82A for managing difference data IDs each uniquely specifying the difference data; an update time column83A for managing the time when the data in the virtual volume61A is updated and the difference data is stored in the difference management volume63A; a data size column84A for managing data size of the difference data; a start LBA column85A for managing start LBAs for the stored difference data; and an last LBA column86A for managing last LBAs for the stored difference data.

For example, the difference data with the difference data ID “001” stored in the difference management table59A for the storage apparatus ID “00100A” is stored at “8:11:36:38,” and has a data size of “32. 1414,” a start LBA of “784A5D,” and last LBA of “864AAE.”

FIG. 7shows a configuration for the host I/O management table60A. The host I/O management table60A contains information necessary for managing the storage apparatus that I/O accesses the operation server2.

The host I/O management table60A includes: a storage apparatus ID column91A for managing the storage apparatus ID for the storage apparatus holding this host I/O management table60A; a connected storage apparatus ID column92A for managing the storage apparatus IDs for the storage apparatus connected to the management server2; an I/O access column93A for managing whether or not the relevant storage apparatus is I/O accessing the management server2; and a performance value column94A for managing performance values in the storage apparatus.

In the table, “ON” or “OFF” is registered in the I/O access column93A. If “ON” is registered in the I/O access column93A, the relevant storage apparatus is I/O accessing the management server2. If “OFF” is registered in the I/O access column93A, the relevant storage apparatus is not I/O accessing with the management server2.

For example, the storage apparatus with the storage apparatus ID “00100A” stored in the host I/O management table60A for the storage apparatus ID “00100A” is I/O accessing the management server2, and its performance value is “38392.”

The volume information management table58B, difference management table59B, and host I/O management table60B have the same configuration respectively as the volume information management table58A, the difference management table59A, and the host I/O management table60A. Accordingly, the same columns in the volume management table58B, the difference management table59B, and the host I/O management table60B as the columns in the volume management table58A, the difference management table59A, and the host management table60A shown inFIGS. 5 to 7have the same reference number followed by a suffix “B.” instead of “A.”

5. Processing Based on Various Programs

5-1. Data Rearrangement Processing

Next, data rearrangement processing that takes place in accordance with the data rearrangement program54A in the storage system1in this embodiment will be described.

FIGS. 8 and 9are flowcharts showing an example of a specific sequence concerning that data rearrangement processing in the first storage apparatus3in the storage system1when it is executed by the disk adapter26A.

In this example, when the management server6runs the data rearrangement control program42when a pool volume62A is added to the pool area64A, or in accordance with the operation of the management server6by an administrator, and sends a request for data rearrangement in a predetermined virtual volume61A to the disk adapter26A in the first storage apparatus3, the disk adapter26A, after receiving the above data rearrangement request and in accordance with the data rearrangement processing routine RT1shown inFIGS. 8 and 9, runs the data rearrangement program54A and judges whether or not data has been synchronized between the first and second storage apparatuses3and4, (SP1).

More specifically, in this example, the disk adapter26A in the first storage apparatus3refers to the difference management table59A, and determines, if any difference data ID is held, that the data is not synchronized, or determines, if no difference data ID is held, that the data is synchronized.

If the data has been synchronized (SP1: YES), the disk adapter26A in the first storage apparatus3proceeds to step SP2. Meanwhile, if the data has not been synchronized (SP1: NO), the disk adapter26A in the first storage apparatus3synchronizes the data by running the data synchronization program51(RT2), which will be described later.

After that, the disk adapter26A in the first storage apparatus3judges whether or not the host I/O processing program52A is being run and I/O access is taking place at present to the storage apparatus that is the current target of the data rearrangement (SP2).

More specifically, in this example, the disk adapter26A in the first storage apparatus3refers to the host I/O management table60A. If “ON” is registered in the entry for the storage apparatus ID “00100A” in the I/O access column93A, the disk adapter26A determines that the host I/O access program52A is being run and I/O access is taking place. Meanwhile, if “OFF” is registered in the entry for the storage apparatus ID “00100A” in the I/O access column93A, the disk adapter26A determines that no host I/O access is taking place.

If no “I/O” access is taking place (SP2: NO), the disk adapter26A in the first storage apparatus3proceeds to step SP3. If I/O access is taking place (SP2: YES), the disk adapter26A in the first storage apparatus3executes the host I/O switching processing by running the host I/O switching program53A (RT3), which will be described later.

After that, in this example, the disk adapter26A in the first storage apparatus3runs the data rearrangement execution program in the data rearrangement program54A to rearrange the data stored in that pool volume62A by averaging the amount of data stored in the pool volumes62A used by the virtual volume61A and executing data rearrangement in the first storage apparatus3(SP3).

Next, the disk adapter26A in the first storage apparatus3executes the rearrangement effect check processing by running the rearrangement effect check program55A (RT4), which will be described later.

Next, the disk adapter26A in the first storage apparatus3determines whether or not to switch the I/O access target so that the operation server2, which I/O accessed the second storage apparatus4, instead I/O accesses the first storage apparatus3(SP4).

If the I/O access target is not switched to the first storage apparatus3(SP4: NO), i.e., if the I/O access is continuously made between the operation server2and the second storage apparatus4, the disk adapter26A in the first storage apparatus3proceeds to step SP6. Meanwhile, if the I/O access target is switched to have the operation server2I/O access the first storage apparatus3(SP4: YES), the disk adapter26A in the first storage apparatus3executes the data synchronization/I/O switching request processing by running the data synchronization/I/O switching request program56A (RT5), which will be described later.

Next, the disk adapter26A in the first storage apparatus3judges, in accordance with the data rearrangement request received from the management server6, whether or not to execute data rearrangement in the second storage apparatus4(SP5).

If the data rearrangement in the second storage apparatus is not executed (SP5: NO), the disk adapter26A in the first storage apparatus3proceeds to step SP6. Meanwhile, if the data rearrangement in the second storage apparatus4is executed (SP5: YES), the disk adapter26A in the first storage apparatus3executes the data rearrangement request processing by running the data rearrangement request program57A (RT6), which will be described later.

Next, the disk adapter26A in the first storage apparatus3sends, to the management server6, a data rearrangement processing end notice indicating that the data rearrangement processing routine has finished without incident (SP6), and ends the data rearrangement processing routine RT1shown inFIGS. 8 and 9by terminating the data rearrangement program54A (SP7).

5-2. Data Synchronization Processing

Data synchronization processing that takes place in accordance with the data synchronization program51in the storage system1in this embodiment will be described.

FIG. 10is an flowchart showing an example of a specific sequence concerning that data synchronization processing in the first storage apparatus3in the storage system1when it is executed by the disk adapter26A.

In this example, if data is not synchronized (SP1: NO), the disk adapter26A in the first storage apparatus3runs the data synchronization program51A, sends, in accordance with the data synchronization processing routine RT2shown inFIG. 10, a response request to the second storage apparatus4via the connector23A, the channel adapter22A, and the signal line30, and judges, based on the response—or lack thereof—to the request, whether or not connection with the second storage apparatus4has been established (SP11).

If connection with the second storage apparatus4has not been established (SP11: NO), the disk adapter26A in the first storage apparatus3proceeds to step SP14. Meanwhile, if connection with the second storage apparatus4has been established (SP11: YES), the disk adapter26in the first storage apparatus3refers to the difference management table59A, selects a predetermined difference data ID, and sends the difference data corresponding to that difference data ID to the second storage apparatus4via the connector23A, the channel adapter22A, and the signal line30(SP12).

The disk adapter26B in the second storage apparatus4stores, after receiving the difference data via the channel adapter22B and the connector23B, the received difference data in the disk device12B for the pool volume62B used by the corresponding virtual volume61B, and sends a data transmission end notice to the first storage apparatus3via the connector23B, the channel adapter22B, and the signal line30.

Next, the disk adapter26A in the first storage apparatus3judges whether or not the data transmission end notice has been received from the second storage apparatus4via the channel adapter22A and the connector23A (SP13).

More specifically, in this example, the disk adapter26A in the first storage apparatus3waits for the data transmission end notice from the second storage apparatus4for a predetermined period of time, and determines, if the data transmission end notice is not received within the predetermined period of time, that the notice has not been received from the second storage apparatus4, or determines, if the data transmission end notice is received within that period of time, that the notice has not been received from the second storage apparatus4.

If the data transmission end notice has not been received from the second storage apparatus4(SP13: NO), the disk adapter26A in the first storage apparatus3sends an error message to the management server6(SP14), and ends the data synchronization processing routine RT2shown inFIG. 10by terminating the data synchronization program51A (SP17). After that, the disk adapter26A in the first storage apparatus3ends the data rearrangement processing routine RT1shown inFIGS. 8 and 9by terminating the data rearrangement program54A (SP7).

Meanwhile, if the data transmission end notice has been received from the second storage apparatus4(SP13: YES), the disk adapter26A in the first storage apparatus3deletes the above sent difference data ID from the difference management table59A (SP15).

Next, the disk adapter26A in the first storage apparatus3judges whether or not all difference data has been sent to the second storage apparatus4(SP16).

More specifically, in this example, the disk adapter26A in the first storage apparatus3refers to the difference management table59A, and determines, if any difference data IDs are still held, that not all difference data has been sent, or determines, if no difference data IDs are held, that all difference data has been sent.

If not all difference data has been sent (SP16: NO), the disk adapter26A in the first storage apparatus3returns to step SP11and judges again whether or not connection with the second storage apparatus4has been established (SP11). After that, the above described steps are repeated (SP11-SP16).

Meanwhile, if all difference data has been sent (SP16: YES), the disk adapter26A in the first storage apparatus3ends the data synchronization processing routine RT2shown inFIG. 10by terminating the data synchronization program51A (SP17).

Next, host I/O switching processing that takes place in accordance with the host I/O switching program53A in the storage system1in this embodiment will be described.

FIG. 11is a flowchart showing an example of a specific sequence concerning that host I/O switching processing in the first storage apparatus3in the storage system1when it is executed by the disk adapter26A.

If I/O access is taking place (SP2: YES), the disk adapter26A in the first storage apparatus3runs the host I/O switching processing53A and judges, in accordance with the host I/O switching processing routine RT3shown inFIG. 11, whether or not connection with the second storage apparatus4has been established (SP21).

If connection with the second storage apparatus4has not been established (SP21: NO), the disk adapter26A in the first storage apparatus3proceeds to step SP24. Meanwhile, if connection with the second storage apparatus4has been established (SP21: YES), the disk adapter26A in the first storage apparatus3sends, to the operation server2via the connector23A, the channel adapter22A, and the FC switch5, a host I/O switching request for switching the I/O access target from the first storage apparatus3to the second storage apparatus4(SP22). In the present invention, if more than two storage apparatuses are used, the above request may be a request that the I/O access target is switched from the first storage apparatus3to any of the other storage apparatuses.

The CPU in the operation server2runs, after receiving the host I/O switching request, the host I/O switching program32to switch the I/O access target so that the operation server2, which I/O accessed the first storage apparatus3, instead I/O accesses the second storage apparatus4, and send a host I/O switching end notice to the first storage apparatus3via the FC switch5.

The disk adapter26A in the first storage apparatus3judges whether or not the host I/O switching end notice has been received from the operation server2via the channel adapter22A and the connector23A (SP23).

More specifically, in this example, the disk adapter26A in the first storage apparatus3waits for the host I/O switching end notice from the operation server2for a predetermined period of time, and determines, if the host I/O switching end notice is not received within the predetermined period of time, that the notice has not been received from the operation server2, or determines, if the host I/O switching end notice is received within that period of time, that the notice has been received from the operation server2.

If the host I/O switching end notice has not been received from the operation server2(SP23: NO), the disk adapter26A in the first storage apparatus3sends an error message to the management server6(SP24), and ends the host I/O switching processing routine RT3shown inFIG. 11by terminating the data synchronization program51A (SP26). After that, the disk adapter26A in the first storage apparatus3ends the data rearrangement processing sequence RT1shown inFIGS. 8 and 9by terminating the data rearrangement program54A (SP7).

Meanwhile, if the host I/O switching end notice has been received from the operation server2(SP23: YES), the disk adapter26A in the first storage apparatus3updates the host I/O management table60A (SP26).

More specifically, in this example, the disk adapter26A in the first storage apparatus3refers to the host I/O management table60A, and changes the entry for the storage apparatus ID “00100A” in the I/O access column93A from “ON” to “OFF,” and the entry for the storage apparatus ID “00100B” in the I/O access column93A from “OFF” to “ON.”

After that, the disk adapter26A in the first storage apparatus3ends the data synchronization processing routine RT2shown inFIG. 10by terminating the host I/O switching program53A (SP26).

5-4. Rearrangement Effect Check Processing

Next, rearrangement effect check processing that takes place in accordance with the rearrangement effect check program54A in the storage system1in this embodiment will be described.

FIG. 12is a flowchart showing an example of a specific sequence concerning that rearrangement effect check processing in the first storage apparatus3in the storage system1when it is executed by the disk adapter26A.

The disk adapter26A in the first storage apparatus3runs, after executing the data rearrangement in the first storage apparatus3, the rearrangement effect check program54A, and calculates, in accordance with the rearrangement effect check processing routine RT4shown inFIG. 12, a performance value indicating performance concerning data response to the operation server2and updates the host I/O management table60A (SP31).

More specifically, in this example, the disk adapter26A in the first storage apparatus3refers to the volume information management table58A, calculates an I/O access performance value in the first storage apparatus3based on the RAID level in each pool volume62A, the drive type, the number of drive rotations, the used capacity, and the usage status of the disk device12A, or similar, and registers the calculated performance value in the entry for the storage apparatus ID “00100A” in the performance value column94A in the host I/O management table60A.

Next, the disk adapter26A in the first storage apparatus3sends a performance value calculation request to the storage apparatus the operation server2is I/O accessing (SP32).

More specifically, in this example, the disk adapter26A in the first storage apparatus3sends the performance value calculation request to the second storage apparatus4the operation server2is currently I/O accessing after the completion of the host I/O switching processing, via the connector23A, the channel adapter22A, and the signal line30.

The disk adapter26B in the second storage apparatus4runs, after receiving the performance value calculation request via the channel adapter22B and the connector23B, the rearrangement effect check program54A, then, for example, refers to the volume information management table58B, calculates the I/O access performance value in the second storage apparatus4based on the RAID level in each pool volume62A, and the drive type, the number of drive rotations, the used capacity, and the usage status of the disk device12B, and sends the thus-calculated performance value to the first storage apparatus3via the connector23B, the channel adapter22B, and the signal line30.

Next, the disk adapter26A in the first storage apparatus3judges whether or not the performance value in the second storage apparatus4has been received from the second storage apparatus4via the channel adapter22A and the connector23A (SP33).

More specifically, in this example, the disk adapter26A in the first storage apparatus3waits for the performance value from the second storage apparatus4for a predetermined period of time, and determines, if the performance value is not received within the predetermined period of time, that the performance value has not been received from the second storage apparatus4, or determines, if the performance value is received within that period of time, that the performance value has been received from the second storage apparatus4.

If the performance value has not been received from the second storage apparatus4(SP33: NO), the disk adapter26A in the first storage apparatus4sends an error message to the management server6(SP34), and ends the rearrangement effect check processing routine RT4shown inFIG. 12by terminating the rearrangement effect check program54A (SP36). After that, the disk adapter26A in the first storage apparatus3ends the data rearrangement processing routine RT1shown inFIGS. 8 and 9by terminating the data rearrangement program54A (SP7).

Meanwhile, if the performance value has been received from the second storage apparatus4(SP33: YES), the disk adapter26A in the first storage apparatus3updates the host I/O management table60A and compares two performance values (SP35).

More specifically, in this example, the disk adapter26A in the first storage apparatus3stores the performance value sent from the second storage apparatus4in the entry for the storage apparatus ID “00100B” in the performance value column94A in the host I/O management table60A. The disk adapter26A in the first storage apparatus3then refers to the host I/O management table60A and compares the calculated performance value in the first storage apparatus3with the received performance value in the second storage apparatus4. If the performance value in the second storage apparatus4is higher than the performance value in the first storage apparatus3, the disk adapter26A decides to not switch the I/O access target to the first storage apparatus3. Meanwhile, if the performance value in the first storage apparatus3is higher than the performance value in the second storage apparatus4, the disk adapter26A decides to switch the I/O access target to the first storage apparatus3.

After that, the disk adapter26A in the first storage apparatus3ends the rearrangement effect check processing routine RT4shown inFIG. 12by terminating the rearrangement effect check program54A (SP36).

Next, data synchronization/host I/O switching request processing that takes place in accordance with the data synchronization/host I/O switching request program56A in the storage system1in this embodiment will be described.

FIG. 13is a flowchart showing an example of a specific sequence concerning that data synchronization/host I/O switching request processing in the first storage apparatus3in the storage system1when it is executed by the disk adapter26A.

If the disk adapter26A in the first storage apparatus3switches the I/O access target to the first storage apparatus3(SP4: YES), the disk adapter26A runs the data synchronization/host I/O switching request program56A, and judges, in accordance with the data synchronization/host I/O switching request processing routine RT5shown inFIG. 13, whether or not connection with the second storage apparatus4has been established (SP41).

If no connection with the second storage apparatus4has been established (SP41: NO), the disk adapter26A in the first storage apparatus3proceeds to step SP44. Meanwhile, if connection with the second storage apparatus4has been established (SP41: YES), the disk adapter26A in the first storage apparatus3sends a data synchronization/host I/O switching request to the second storage apparatus4via the connector23A, the channel adapter22A, and the FC switch5(SP42).

The disk adapter26B in the second storage apparatus4runs, after receiving the host synchronization/host I/O switching request via the channel adapter22B and the connector23B, the data synchronization program51B and executes the same processing as the above described data synchronization processing routine RT2shown inFIG. 10. After that, the disk adapter26B in the second storage apparatus4runs the host I/O switching program53B and executes the same processing as the above described host I/O switching processing routine RT3shown inFIG. 11.

If the same processing as the data synchronization processing routine RT2and the host I/O switching processing routine RT3is finished without incident, the disk adapter26B in the second storage apparatus4sends the data synchronization/host I/O switching end notice to the first storage apparatus3via the connector23B, the channel adapter22B, and the signal line30. In the same processing as that in the data synchronization processing routine RT2and the host I/O switching processing routine RT3above, the components in the first storage apparatus3are replaced with those in the second storage apparatus4, and the components in the second storage apparatus4are replaced with those in the first storage apparatus3.

After that, the disk adapter26A in the first storage apparatus3judges whether or not the data synchronization/host I/O switching end notice has been received from the second storage apparatus4via the channel adapter22A and the connector23A (SP43).

More specifically, in this example, the disk adapter26A in the first storage apparatus3waits for the data synchronization/host I/O switching end notice from the second storage apparatus4for a predetermined period of time, and determines, if the data synchronization/host I/O switching end notice is not received within the predetermined period of time, that the notice has not been received from the second storage apparatus4, or determines, if the data synchronization/host I/O switching end notice is received within that period of time, that the notice has been received from the second storage apparatus4.

If the disk adapter26A in the first storage apparatus3has not received the data synchronization/host I/O switching end notice from the second storage apparatus4(SP43: NO), the disk adapter26A sends an error message to the management server6(SP44), and ends the data synchronization/host I/O switching request processing routine RT5shown inFIG. 13by terminating the data synchronization/host I/O switching request program56A (SP46). After that, the disk adapter26A in the first storage apparatus3ends the data rearrangement processing routine RT1shown inFIGS. 8 and 9by terminating the data rearrangement program54A (SP7).

Meanwhile, if the data synchronization/host I/O switching end notice has been received from the second storage apparatus4(SP43: YES), the disk adapter26A in the first storage apparatus3updates the host I/O management table60A (SP45).

More specifically, in this example, the disk adapter26A in the first storage apparatus3refers to the host I/O management table60A, changes the entry for the storage apparatus ID “00100B” in the I/O access column93A from “ON” to “OFF” and the entry for the storage apparatus ID “00100A” in the I/O access column93A from “OFF” to “ON.”

After that, the disk adapter26A in the first storage apparatus3ends the data synchronization/host I/O switching request processing routine RT5shown inFIG. 13by terminating the data synchronization/host I/O switching request program56A (SP46).

5-6. Data Rearrangement Request Processing

Next, data rearrangement request processing that takes place in accordance with the data rearrangement request program57A in the storage system1in this embodiment will be described.

FIG. 14is a flowchart showing an example of a specific sequence concerning that data rearrangement request processing in the first storage apparatus3in the storage system1when it is executed by the disk adapter26A in the first storage apparatus3.

If the data rearrangement is executed in the second storage apparatus4(SP5: YES), the disk adapter26A in the first storage apparatus3runs the data rearrangement request program57A and judges, in accordance with the data rearrangement request processing routine RT6shown inFIG. 14, whether or not connection with the second storage apparatus4has been established (SP51).

If connection with the second storage apparatus4has not been established (SP51: NO), the disk adapter26A in the first storage apparatus3proceeds to step SP54. Meanwhile, if connection with the second storage apparatus4has been established (SP51: YES), the disk adapter26A sends a data rearrangement request to the second storage apparatus4via the connector23A, the channel adapter22A, and the FC switch5(SP52).

When doing so, the disk adapter26B in the second storage apparatus4, after receiving the data rearrangement request via the channel adapter22B and the connector23B, executes the same processing as in step SP3shown inFIG. 8described above by running the data rearrangement execution program in the data rearrangement program54B.

If the same processing as step SP3above is finished without incident, the disk adapter26B in the second storage apparatus4sends a data rearrangement end notice to the first storage apparatus3via the connector23B, the channel adapter22B, and the signal line30. In the same processing as to that in step SP3above, the components in the first storage apparatus3are replaced with those in the second storage apparatus4, and the components in the second storage apparatus4are replaced with those in the first storage apparatus3.

Next, the disk adapter26A in the first storage apparatus3judges whether or not the data rearrangement end notice has been received from the second storage apparatus4via the channel adapter22A and the connector23A (SP53).

More specifically, in this example, the disk adapter26A in the first storage apparatus3waits for the data rearrangement end notice from the second storage apparatus4for a predetermined period of time, and determines, if the data rearrangement end notice is not received within the predetermined period of time, that the notice has not been received from the second storage apparatus4, or determines, if the data rearrangement end notice is received within that period of time, that the notice has been received from the second storage apparatus4.

If the data rearrangement end notice has not been received from the second storage apparatus4(SP53: NO), the disk adapter26A in the first storage apparatus3sends an error message to the management server6(SP54), and ends the data rearrangement request processing routine RT6shown inFIG. 14by terminating the data rearrangement request program57A (SP55). After that, the disk adapter26A in the first storage apparatus3ends the data rearrangement processing routine RT1shown inFIGS. 8 and 9by terminating the data rearrangement program54A (SP7).

Meanwhile, if the data rearrangement end notice has been received from the second storage apparatus4(SP53: YES), the disk adapter26A in the first storage apparatus3ends the data rearrangement request processing routine RT6shown inFIG. 14by terminating the data rearrangement request program57A (SP55).

After that, if necessary, the disk adapter26B in the second storage apparatus4may execute the same processing as the rearrangement effect check processing routine RT4shown inFIG. 12described above by running the rearrangement effect check program55B, and execute the same processing as the data synchronization/host I/O switching request processing routine RT5shown inFIG. 13described above by running the data synchronization/host I/O switching request program56B. In that case, in the same processing as the rearrangement effect check processing routine RT4and the data synchronization/host I/O switching request processing routine RT5described above, the components in the first storage apparatus3are replaced with those in the second storage apparatus4, and the components in the second storage apparatus4are replaced with those in the first storage apparatus3.

In the above described manner, in the storage system1, the disk adapter26A sends the host I/O switching request to the operation server2when executing the data rearrangement in the pool volumes62A. In the storage system1, the operation server2switches, after receiving the host I/O switching request, the data transmission target so that the write data, which has been directed to the virtual volume61A in the first storage apparatus3, is then directed to the virtual volume61B in the second storage apparatus4. After that, in the storage system1, the disk adapter26A rearranges data in the pool volume62A after switching the data transmission target from the virtual volume in the first storage apparatus to the virtual volume in the second storage apparatus.

With that configuration, requests from the operation server2are received by a storage apparatus other than the storage apparatus in which the data rearrangement is being executed, so the data rearrangement does not affect the I/O access and can be executed without temporarily stopping the operation server2from sending requests. Accordingly, it is possible to effectively prevent a deterioration in response performance occurring when requests from the operation server2cannot be received during data rearrangement.

In the storage system1, the disk adapter26A calculates, after executing the data rearrangement in the pool volume62A, a performance value that indicates the data response performance in the first storage apparatus3, and compares the calculated performance value with a performance value that indicates the data response performance in the second storage apparatus4. If the data response performance value in the first storage apparatus3is higher than the data response performance value in the second storage apparatus4, the operation server2in the storage system1switches data transmission target so that the write data originally directed to the virtual volume61B in the second storage apparatus4is sent to the virtual volume61A in the first storage apparatus3.

With that configuration, a storage apparatus with performance improved by the data rearrangement can be used, and accordingly, the entire system performance can be further improved.

Moreover, in the storage system1, free resources in the pool areas64A and64B can be effectively used by having the disk adapter26A/26B rearrange data in the pool volume62A/62B in the pool area64A/64B.

The present invention can be applied to a wide range of storage systems for backing up data between storage apparatuses.