WO2016038722A1 - ストレージシステム及びデータ書込み方法 - Google Patents

ストレージシステム及びデータ書込み方法 Download PDF

Info

Publication number
WO2016038722A1
WO2016038722A1 PCT/JP2014/074094 JP2014074094W WO2016038722A1 WO 2016038722 A1 WO2016038722 A1 WO 2016038722A1 JP 2014074094 W JP2014074094 W JP 2014074094W WO 2016038722 A1 WO2016038722 A1 WO 2016038722A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
processor
memory
command
Prior art date
Application number
PCT/JP2014/074094
Other languages
English (en)
French (fr)
Inventor
尚 長尾
智大 川口
良徳 大平
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2014/074094 priority Critical patent/WO2016038722A1/ja
Priority to US15/119,860 priority patent/US9952805B2/en
Publication of WO2016038722A1 publication Critical patent/WO2016038722A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Definitions

  • the present invention relates to a storage system.
  • the SWA command is a SCSI (Small Computer System Interface) command that is being standardized.
  • the SWA command is transmitted to the transmission destination together with the parameter list.
  • the parameter list is a list of the data, the data length of the data, and the start address of the storage area to which the data is written, for a plurality of dependent data to be written.
  • the conventional storage device does not support the SWA command. Assuming that the storage device receives the SWA command, the storage device writes all the data specified by the parameter list to the specified storage area, and then responds to the transmission end of the SWA command as a normal end. . However, when a plurality of data write processing based on the SWA command is completed due to a failure or the like between the time when the SWA command is received and the response to normal termination, the storage system It is not possible to guarantee that the state before writing or after writing, that is, the consistency of a plurality of data is maintained.
  • a storage system includes a first storage device, a server computer, a first processor connected to the first storage device, a first memory connected to the first processor, Have The first processor provides the first logical volume to the server computer based on the first storage device.
  • the first memory stores first volume information indicating association between a plurality of logical storage areas in the first logical volume and a plurality of first device storage areas in the first storage device.
  • the first storage device stores a plurality of retained data in a plurality of first device storage areas.
  • the first memory stores a plurality of retained data
  • the first processor designates a plurality of addresses indicating the plurality of logical storage areas from the server computer, and stores a plurality of write data in the plurality of logical storage areas, respectively.
  • a storage area that is different from the storage area that receives a plurality of write data based on the command from the server computer and stores a plurality of retained data in the first memory
  • a data reception process for writing a plurality of write data is executed.
  • the first processor determines whether or not all of the plurality of write data has been written to the first memory.
  • the host computer A first success response is transmitted to When the plurality of write data satisfy a predetermined condition, the first processor writes the plurality of write data in the first memory to the plurality of first device storage areas, respectively. If the first processor determines that at least a part of the plurality of data is not written in the first memory, the first processor transmits a first failure response to the host computer.
  • the consistency of these data can be maintained for a plurality of data based on the SWA command.
  • FIG. 1 is a configuration diagram of a computer system according to Embodiment 1.
  • FIG. 4 is an example of a volume management table 14; 3 is an example of a cache management table 19; 3 is an example of a temporary area management table 30.
  • FIG. 6 is a diagram illustrating an overview of data write processing by a SWA command according to the first embodiment. 6 is a flowchart of data write processing based on the SWA command according to the first embodiment. It is a flowchart of a data reception process. It is a flowchart of a data confirmation process. It is a figure explaining the outline
  • FIG. 10 is a diagram for explaining an overview of a data writing process in a computer system according to a second embodiment. 10 is a flowchart of data write processing according to the second embodiment. It is a figure explaining the outline
  • FIG. It is an example of the cache management table 19a of Example 3.
  • FIG. 14 is a flowchart of data write processing performed by a storage apparatus that is a transfer destination of a SWA command according to the third embodiment.
  • 14 is a flowchart of data write processing according to the fourth embodiment.
  • 2 is an example of a journal 26;
  • FIG. 10 is a diagram illustrating an outline of a data write process based on a SWA command by the storage system according to the fifth embodiment. It is a flowchart of the difference registration process which the primary storage apparatus 2a performs. It is a flowchart of the difference update process which the secondary storage apparatus 2c performs. This is another example of the journal 26. It is a flowchart which shows the 1st modification of a difference update process.
  • kkk table information may be described using the expression “kkk table”, but the information may be expressed using a data structure other than the table. In order to show that it does not depend on the data structure, the “kkk table” can be called “kkk information”.
  • the process may be described using “program” as a subject.
  • the program is executed by the processor, so that the determined process can be appropriately performed with storage resources (for example, memory) and / or Alternatively, since the processing is performed using a communication interface device (for example, a communication port), the subject of processing may be a processor. On the contrary, the processing whose subject is the processor can be interpreted as being executed by executing one or more programs.
  • the processor is typically a microprocessor such as a CPU (Central Processing Unit), but may include a hardware circuit that executes a part of the processing (for example, encryption / decryption, compression / decompression). .
  • the “logical volume” may be a real logical volume or a virtual logical volume.
  • a real logical volume is a logical volume based on one or more drives.
  • the “drive” is a non-volatile physical storage device, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive). Multiple drives may form one or more RAID groups (Redundant Array of Independent (or Inexpensive) Disks) (RAID groups may also be called parity groups).
  • RAID groups Redundant Array of Independent (or Inexpensive) Disks
  • Examples of the virtual logical volume may include an externally connected logical volume, a TP (Thin Provisioning) -logical volume, and a snapshot logical volume.
  • the externally connected logical volume is a logical volume based on storage resources (for example, logical volume) of an external storage system connected to the storage system and conforming to storage virtualization technology.
  • the TP-logical volume is a logical volume that conforms to capacity virtualization technology (typically Thin Provisioning).
  • the snapshot logical volume is a logical volume provided as a snapshot of the original logical volume.
  • the storage system may be composed of one or more storage devices.
  • FIG. 1 is a configuration diagram of a computer system according to the first embodiment.
  • the computer system includes a server 1 and a storage system.
  • the storage system includes the storage device 2, but is not limited to this configuration.
  • the server 1 and the storage device 2 are connected by a network 3.
  • the server 1 is a computer that provides a service such as e-mail, for example, and includes a workstation or a mainframe.
  • the storage device 2 stores data necessary for services provided by the server 1.
  • the server 1 reads / writes data stored in the storage device 2 by transmitting a data access command to the storage device 2.
  • commands for data access include a SCSI standard Read command, Write command, SWA command, and the like.
  • the network 3 is a communication path for exchanging commands and data between the server 1 and the storage device 2, and is composed of, for example, a SAN (Storage Area Network).
  • SAN Storage Area Network
  • the storage device 2 includes a storage controller 4 that executes processing according to a command, and a drive 5 as an auxiliary storage device.
  • the storage controller 4 includes a server I / F (Interface) 6, a processor 7, a main memory 8, a cache memory 9, and a drive I / F 10. Each unit is connected to each other by an internal network.
  • the server I / F 6 receives a command transmitted from the server 1.
  • the processor 7 and the main memory 8 are calculation resources.
  • the processor 7 executes various processes according to the command by executing a program stored in the main memory 8.
  • main memory 8 for example, a data writing program, a volume management table 14, a cache management table 19, a temporary area management table 22 and the like are stored.
  • the cache memory 9 stores a cache of data in the drive 5.
  • the drive I / F 10 transmits / receives data to / from the drive 5.
  • the drive 5 is a non-volatile storage device, and is composed of a hard disk device such as a SAS disk or a semiconductor memory such as SSD.
  • the storage controller 4 constructs a logical volume 11 from physical storage areas of a plurality of drives 5 and provides it to the server 1 for the purpose of improving reliability by data redundancy and improving performance by parallel operation of the drives 5.
  • the processor 7 executes various programs according to the command by executing the program in the main memory 8, but hereinafter, the storage device 2 is the main subject of processing for the sake of simplicity of explanation. It describes as.
  • FIG. 2 is an example of the volume management table 14.
  • the volume management table 14 is a table that associates a storage area in the drive 5 with a storage area in the logical volume 11 provided to the server 1 based on the drive 5 by an address.
  • the volume management table 14 has an entry for each storage area in the logical volume 11.
  • Each entry includes a volume ID 15 that is an identifier of the logical volume 11, a storage area address 16 in the logical volume 11, and a storage area in the drive 5 corresponding to the storage area in the logical volume 11 indicated by the volume ID 15 and address 16. It has a drive ID 17 and a physical address 18 of the storage area. Specifically, for example, the storage area in the logical volume 11 indicated by the volume ID “0” and the address “1024” is changed to the storage area in the drive 5 indicated by the drive ID “1” and the physical address “1234”. It shows that it corresponds.
  • FIG. 3 is an example of the cache management table 19.
  • the cache management table 19 is a table that associates a storage area in the cache memory 9 with a storage area in the logical volume 11 by an address. An entry is created when data is stored in the storage area of the cache memory 9 and is deleted when data is deleted from the storage area of the cache memory 9.
  • the cache management table 19 has an entry for each storage area in the logical volume 11. Each entry is stored in the cache memory 9 corresponding to the storage area in the logical volume 11 indicated by the volume ID 22 which is the identifier of the logical volume 11, the address 23 of the storage area in the logical volume 11, the volume ID 15 and the address 16. And the exclusive flag 25 indicating whether or not the exclusiveness of the storage area of the logical volume 11 is to be secured. Specifically, for example, the storage area in the logical volume 11 indicated by the volume ID “0” and the address “1024” corresponds to the storage area on the cache memory 9 indicated by the cache address “128” and is exclusive. It indicates that the flag is “ON”.
  • FIG. 4 is an example of the temporary area management table 30.
  • the temporary area management table 30 is a table for managing the temporary area 12 generated in the cache memory 9.
  • the temporary area management table 30 has an entry for each storage area in the temporary area 12.
  • Each entry includes a temporary area address 31 that is an identifier of the storage area, a volume ID 32 and an address 33 of a logical volume corresponding to the storage area, and a command ID 34 that is an identifier of a command corresponding to data in the storage area.
  • a temporary area address 31 that is an identifier of the storage area
  • a command ID 34 that is an identifier of a command corresponding to data in the storage area.
  • FIG. 5 is a diagram for explaining the outline of the data writing process by the SWA command according to the first embodiment.
  • the storage area 13a on the logical volume 11, the storage area 13b on the cache memory 9, and the storage area 13c on the drive 5 are associated with each other.
  • the server 1 can read and write data in the storage area 13c by sending a write command or a read command designating each storage area 13a to the storage device 2. Further, the storage apparatus 2 improves the input / output performance by temporarily caching the data stored in the storage area 13c in the storage area 13b having a higher performance than the drive 5 during the processing based on these commands. ing.
  • the two data to be written based on the SWA command are data for updating data stored in the two storage areas 13a and 13a of the logical volume 11.
  • the data based on the SWA command is not limited to two, and may be data newly stored in the storage area of the logical volume 11.
  • the SWA command is a command for instructing writing of a plurality of target data designated by the parameter list.
  • the data length, the volume ID of the logical volume that is the write destination, and the start address of the storage area in the logical volume are described for each of the plurality of target data that are mutually dependent.
  • a storage apparatus to which the present invention is not applied receives a SWA command from a server, it is assumed that the same operation as when a plurality of Write commands are received is performed. This is because a storage apparatus to which the present invention is not applied does not have a function corresponding to the SWA command. In other words, the storage apparatus repeats the process of writing the data received from the server to the drive for each data based on the parameter list.
  • the writing or reading of data with respect to the target storage area in the logical volume designated by the SWA command is also designated by another command received during the execution of the writing process based on the SWA command.
  • a case is assumed. In this case, for example, when the other command is a read command, both the data before writing and the data after writing based on the SWA command may be acquired from the target storage area.
  • the storage apparatus 2 of this embodiment aligns the state in the storage area where all data is written based on the SWA command with the state before writing or the state after writing.
  • the server 1 transmits the SWA command specifying a plurality of addresses indicating the two storage areas 13a in the logical volume 11 to the storage apparatus 2, the storage area 13c is transmitted by a single command transmission. Can read and write data.
  • a temporary area 12 is provided in the cache memory 9, and when the storage apparatus 2 receives the SWA command, the storage apparatus 2 secures two storage areas 13 d in the temporary area 12 and stores them in the storage area 13 a in the logical volume 11. Associate. In the data writing process based on the SWA command, the storage device 2 temporarily stores a plurality of data based on the SWA command in the storage area 13d in the temporary area 12.
  • the storage apparatus 2 receives from the server 1 an SWA command specifying an address indicating each storage area 13a on the logical volume 11 (1). At this time, the storage apparatus 2a ensures exclusion of the storage area 13a with respect to other commands of the SWA command. This means that, for example, during execution of the SWA command, access from other commands to the storage area 13a of the plurality of write destination logical volumes 11 based on the SWA command is excluded.
  • the storage device 2 requests the server 1 to transmit the target data to be written for each storage area 13a designated by these addresses.
  • the storage device 2a performs data reception processing of the target data based on the SWA command (2). Specifically, for example, the storage apparatus 2 stores the target data in the storage area 13d in the temporary area 12 via the buffer of the server I / F 6.
  • the storage apparatus 2a performs data confirmation processing when all the target data is stored in the storage area 13d in the temporary area 12. Specifically, for example, the storage apparatus 2 releases the exclusion of the storage area 13a based on the SWA command and copies all target data in the storage area 13d in the temporary area 12 to the storage area 13b (3). Thereafter, the storage apparatus 2 stores the target data in the storage area 13d in the storage area 13c of the drive 5 at an appropriate timing.
  • the plurality of target data specified by the SWA command are all stored in the storage area 13d of the temporary area 12 different from the storage area 13b of the cache memory 9 corresponding to the storage area 13a in the logical volume 11.
  • the data before the update of the storage area 13b of the cache memory 9 is updated with the target data.
  • the data in the storage area 13b of the cache memory 9 is not updated with the target data.
  • all of the plurality of target data can be written or not written. That is, the consistency of all data based on the SWA command can be maintained.
  • exclusion of the storage area designated by the SWA command is ensured. While exclusion is secured, data cannot be read from or written to the storage area (target storage area) of the logical volume specified by the SWA command. For this reason, even during execution of the SWA command, the consistency of all data based on the SWA command can be maintained.
  • FIG. 6 is a flowchart of data write processing based on the SWA command of the first embodiment.
  • the data writing process is executed when the storage apparatus 2 receives the SWA command from the server 1. This process is performed by the processor 7 executing the data writing program stored in the main memory 8.
  • the storage device 2 performs command analysis of the received SWA command (S1). Specifically, for example, the storage apparatus 2 has a plurality of addresses indicating the storage area 13a of the logical volume 11 as a write destination for a plurality of target data specified by the SWA command based on the parameter list received together with the SWA command. (Volume ID and address) are specified. At this time, the storage apparatus 2 attaches a command ID to the transmitted SWA command in order to identify other commands.
  • the specified volume ID and address are referred to as a write destination address
  • the storage area indicated by the address is referred to as a write destination storage area.
  • the storage apparatus 2 ensures exclusion of the storage area 13a designated by the SWA command (S2). Specifically, for example, the storage apparatus 2 refers to the cache management table 19 in ascending order for the write destination storage area 13a specified based on the parameter list, and checks its exclusive flag 25. For example, if the exclusion flag 25 is “OFF” for the write destination storage area 13 a, the storage apparatus 2 sets the exclusion flag 25 of the entry to “ON” to ensure exclusion. On the other hand, if the exclusion flag 25 is “ON” for the write destination storage area 13a, it means that the exclusion of the storage area 13a is ensured by another command, so the storage area 13b corresponding to the storage area 13a and Data in 13d cannot be read or written.
  • the storage apparatus 2 waits for the exclusive flag 21 to be “OFF”. That is, when the exclusive flag 25 is “ON”, the storage apparatus 2 waits for processing by other commands other than the data writing processing by the SWA command being executed.
  • the order in which the storage apparatus 2 refers to the exclusion flag only needs to be unified within the storage apparatus 2, and is not limited to the ascending order. For example, descending order may be used.
  • the storage device 2 performs data reception processing (S3).
  • the data reception process will be described in detail later.
  • the storage device 2 performs data confirmation processing (S4).
  • the data confirmation process will be described in detail later.
  • the storage apparatus 2 releases the exclusion of the storage area 13a designated by the SWA command (S5). Specifically, for example, the storage apparatus 2 sets the exclusive flag 25 of the cache management table 19 to “OFF” for the storage area 13a of the write destination.
  • the storage apparatus 2 transmits a response to the SWA command to the server 1 and ends the process (S6).
  • this response is a response indicating whether the write processing of a plurality of target data based on the SWA command has succeeded (success response) or has failed (failure response).
  • the data in the storage area 13b in the cache memory 9 corresponding to the write destination storage area 13a is updated with the target data.
  • the data in the storage area 13c in the drive 5 corresponding to the storage area 13b is also updated with the target data.
  • the target data in the storage area 13 d in the temporary area 12 is not copied to the storage area 13 b in the cache memory 9. That is, it is not updated with the target data. That is, the write destination storage area 13a is maintained in a state before the target data is written based on the SWA command.
  • the writing and reading of data in other commands are prohibited, so that all writing specified by the SWA command is executed during the execution of the SWA command.
  • the consistency of data in the storage area can be maintained.
  • the data writing process of the target data based on the SWA command can be performed without being affected by other commands.
  • the storage apparatus 2 stores the target data in the data confirmation process (S4) only when the target data has been received in the data reception process (S3) of FIG. It will be stored in. As a result, all of the plurality of data based on the SWA command can be written into the drive 5 or not written.
  • FIG. 7 is a flowchart of data reception processing.
  • the data reception process is the process of S3 of the data writing process.
  • the storage device 2 secures a storage area 13d for storing a plurality of target data based on the SWA command in the temporary area 12 of the cache memory 9 (S7).
  • the storage apparatus 2 refers to the temporary area management table 22, and if there is an entry (empty entry) that does not correspond to any temporary area address 31, the address of the write destination is included in the empty entry.
  • the storage apparatus 2 refers to the parameter list and requests the server 1 to transmit one target data among a plurality of target data based on the SWA command (S8).
  • the server I / F 6 of the storage device 2 receives the target data from the server 1 and stores the target data in its own buffer.
  • the storage device 2 determines whether or not the target data has been successfully received into the buffer of the server I / F 6. In the case of failure (S9; No), the storage apparatus 1 sets "data rewind" to the variable "update availability” (hereinafter referred to as update availability information) on the program (S13), and ends the processing.
  • the storage system 2 refers to the temporary area management table 22 and writes the received data to the storage areas 13d and 13d in the temporary area 12 of the entry secured in S7 (S10). Specifically, for example, the storage apparatus 2 acquires the target data in the buffer of the server I / F 6 and stores the target data in the storage areas 13 d and 13 d of the temporary area 12.
  • the storage apparatus 2 refers to the parameter list and determines whether there is target data that has not yet been received among a plurality of target data based on the SWA command (S11). If there is unreceived target data (S11; Yes), the storage apparatus 2 returns the process to S7. When there is no unreceived target data (S11; No), the storage apparatus 2 sets “data write” in the update availability information (S12), and ends the process.
  • the target data received in the buffer of the server I / F 6 can be temporarily stored in the temporary area 12.
  • the case where all the target data based on the SWA command can be stored in the temporary area 12 and the case where the target data cannot be stored can be identified by the updatable information.
  • FIG. 8 is a flowchart of the data confirmation process.
  • the data confirmation process is the process of S4 of the data writing process.
  • the storage apparatus 2 determines whether or not “data write” is set in the update availability information (S14). When “data write” is not set in the update availability information (S14; No), the storage system 2 advances the process to S16.
  • the storage apparatus 2 refers to the temporary area management table 22 and the cache management table 19 and sets the command ID 34 given to the SWA command. For all matching entries, the target data in the storage area 13d indicated by the temporary area address 31 is copied to the storage area 13b indicated by the cache address 24 corresponding to the volume ID 32 (22) and the address 33 (23) (S15). Thereafter, the storage apparatus 2 refers to the cache management table 19 and the volume management table 14 by destage, for example, and stores the target data stored in the storage area 13b in the storage area 13d on the drive 5.
  • the storage apparatus 2 secures an unused storage area on the cache memory 9 before copying the target data in the storage area 13dd indicated by the temporary area address 31. Then, the address of the secured storage area is set in the cache address 24 of the cache management table 19. Then, the entry of the volume management table 14 in which the volume ID 22 (15) and the address 23 (16) of the cache management table 19 match is specified, and the storage area 13c of the drive 5 indicated by the drive ID 17 and the physical address 18 of the specified entry, The data before the update of the target data stored in 13c is read into the secured storage area of the cache memory 9.
  • the storage apparatus 2 refers to the temporary area management table 22 and sets all entries that match the command ID assigned to the SWA command as empty entries by initializing the volume ID 15, address 16, and command ID 24.
  • the storage area 13d in 12 is released (S16), and the process ends.
  • the data write processing based on the SWA command is not limited to the method described above, as long as the data reception process (S3) and the data confirmation process (S4) are separated. There may be.
  • a modification of the data writing process based on the SWA command will be described below.
  • FIG. 9 is a diagram for explaining the outline of the first modification of the data writing process based on the SWA command.
  • the first modification is a method in which the data before update of the target data stored in the storage area 13b on the cache memory 9 is saved in advance in the storage area 13d in the temporary area 12.
  • the data writing process in this method will be described.
  • part of the data reception process (S3) and the data confirmation process (S4) is changed in the data writing process. Description of parts other than the part being changed may be omitted.
  • the storage device 2 reserves a storage area 13d in the temporary area 12 of the cache memory 9 in S7. Then, the storage apparatus 2 refers to the parameter list and the cache management table 19, and the target data stored in the storage area 13b of the cache memory 9 corresponding to the storage area 13a to which the plurality of target data is written based on the SWA command. Is copied to the reserved storage area 13d (2). At this time, the storage apparatus 2 does not ensure exclusion of the storage area specified by the SWA command. Specifically, for example, the storage apparatus 2 sets the exclusive flag 25 corresponding to the write destination storage area 13 a to “OFF” in the cache management table 19. In the temporary area management table 30, a flag may be set to ensure exclusion for the temporary area address 31 of the storage area 13d.
  • the storage apparatus 2 writes a plurality of target data based on the SWA command into the storage area 13b on the cache memory 9.
  • the subsequent processing (S11, S12, S13) is as described above.
  • the storage apparatus 2 copies all the data before update of the plurality of target data stored in the storage area 13 d in the temporary area 12 to the storage area 13 b on the cache memory 9.
  • the pre-update data temporarily saved in the storage area 13d on the temporary area 12 can be returned to the original storage area 13b.
  • the storage apparatus 2 may release the exclusion in S16.
  • the target data can be determined only when all the target data is stored in the storage area 13b on the cache memory 9 in the data reception process (S3).
  • the data reception process (S3) when reception of at least one target data fails, all the data in the storage area 13d on the temporary area 12 is copied to the storage area 13b on the cache memory 9, Can be returned to the state before the data is written based on the SWA command.
  • data can be directly written to the storage area 13 b of the cache memory 9 without going through the temporary area 12. For this reason, when data reception processing of all data based on the SWA command is successful, the efficiency is high.
  • FIG. 10 is a diagram for explaining the outline of the second modification of the data writing process based on the SWA command.
  • a storage area 13e different from the storage area 13b is dynamically secured on the cache memory 9.
  • the secured storage area 13e is associated with the storage area 13a on the logical volume 11.
  • part of the data reception process (S3) and the data confirmation process (S4) is changed in the data writing process. Description of parts other than the part being changed may be omitted.
  • the storage apparatus 2 replaces the storage area 13d in the temporary area 12 of the cache memory 9 with the storage area 13b of the cache memory 9 corresponding to the storage area 13a of the logical volume 11 (see the cache management table 19).
  • a storage area 13e is secured on another cache memory 9.
  • the storage device 2 refers to the parameter list and stores a plurality of target data based on the SWA command in the secured storage area 13e (2).
  • the storage apparatus 2 adds an entry corresponding to the write destination address designated by the SWA command to the cache management table 19. Then, the storage system 2 adds the address of the storage area 13e to the column of the cache address 24 of the added entry.
  • the cache management table 19 there are two entries of the storage area 13b and the storage area 13e on the cache memory 9 for one write destination address specified by the SWA command. For the two entries corresponding to the address indicating the write destination storage area 13a based on the SWA command, the exclusive flag “ON” is set in the cache address 24 of the storage area 13b (see S2). That is, the exclusive flag “OFF” is set in the cache address 24.
  • the storage apparatus 2 writes a plurality of target data based on the SWA command into the storage areas 13e and 13e on the cache memory 9.
  • the subsequent processing (S11, S12, S13) is as described above.
  • the storage apparatus 2 determines the cache address of the entry in which the cache address 24 is the storage area 13e out of the two entries corresponding to the address corresponding to the write destination storage area 13a of the cache management table 19, and the storage area 13b. Rewrite to address. Specifically, for example, the storage device 2 rewrites the cache address 24 indicating the storage area 13e in the two entries corresponding to the write destination address based on the SWA command to the storage area 13b.
  • the storage apparatus 2 deletes the entry added in S7, that is, the entry in which the storage area 13b is described in the cache address 24 and the exclusive flag is set to “OFF”.
  • the target data can be determined only when all of the target data is stored in the storage area 13e on the cache memory 9 in the data reception process (S3).
  • the address of the storage area in which the target data is stored may be changed to the address of the storage area in which the data before update of the target data is stored. For this reason, it is not necessary to copy the target data to another storage area.
  • reception of at least one target data fails in the data reception process (S3), the address of the storage area 13b in which the data before update of the target data is stored is not changed. Use it. In either case, the target data is not copied to another area of the cache memory 9, and the processing efficiency is good.
  • FIG. 11 is a diagram illustrating a first modification of the system configuration of the computer system according to the first embodiment.
  • the computer system in the first modification has a server 1 and a storage system.
  • the storage system has a storage device 2x instead of the storage device 2.
  • the storage device 2x is different from the storage device 2 in that it has a nonvolatile memory inside the storage controller 4x.
  • a nonvolatile memory a flash memory 30 or the like is assumed as an example of a nonvolatile semiconductor memory.
  • other non-volatile memories may be used.
  • Other configurations are the same as those of the storage apparatus 2.
  • the flash memory 30 is a non-volatile semiconductor memory having a lower speed and a larger capacity than the volatile memory used for the cache memory 9. Since the storage device 2x includes the flash memory 30 inside the storage controller 4x, a new cache hierarchy can be provided between the cache memory 9 and the drive 5.
  • the data write processing of this embodiment is also effective in this storage device 2x. For example, in this embodiment, the data writing process to the storage area on the cache memory 9 is described, and the temporary area 12 is also generated on the cache memory 9. However, even if the storage area on the cache memory 9 and the storage area on the temporary area 12 respectively corresponding to the storage area of the write destination are generated on the flash memory 30, the data writing process of this embodiment is affected. It is not a thing. Even if a storage area on the cache memory 9 and a storage area on the temporary area 12 corresponding to the write destination storage area are generated on the drive 5, the data writing process of this embodiment is affected. is not.
  • FIG. 12 is a diagram illustrating a second modification of the system configuration of the computer system according to the first embodiment.
  • the computer system in the second modification has a server 1 and a storage system.
  • the storage system has a storage controller 4y and a drive management device 32.
  • the storage controller 4y and the drive management device 32 are separate devices.
  • the drive management device 32 has a drive I / F 10Y for communicating with the storage controller 4y.
  • a plurality of drives 5 are connected to the drive I / F 10Y.
  • the storage controller 4y has a drive device I / F 31 connected to the drive I / F 10Y in order to communicate with the drive management device 32. Even the configuration of this computer system (storage system) does not affect the data write processing of this embodiment.
  • the remote copy function is a function for copying data in the primary storage apparatus synchronously or asynchronously to a secondary storage apparatus arranged at a remote location.
  • the secondary storage device In a storage system having a primary storage device and a secondary storage device to which the present invention is not applied, in remote copying, the secondary storage device automatically receives and automatically receives the latest data for a plurality of data written in the primary storage device. Writing to the device. For this reason, when a failure occurs during remote copying, the state before writing or after writing is maintained for the plurality of data specified by the parameter list of the SWA command, that is, the consistency of the plurality of data There is a problem that it can not be guaranteed to maintain.
  • FIG. 13 is a diagram for explaining the outline of the data writing process in the computer system according to the second embodiment.
  • the computer system includes a server 1 and a storage system.
  • the storage system has two storage devices 2a and 2b.
  • the configurations of the storage devices 2a and 2b are the same as the configurations of the storage devices 2 and 2x described in the first embodiment or the combination of the storage controller 4y and the drive management device 32 (FIGS. 1 and 11). 12 etc.).
  • the server 1 and the storage devices 2a and 2b are connected by a network 3a.
  • the storage apparatuses 2a and 2b are connected to each other via a network 3b.
  • a network 3b different from the network 3a is provided so that the communication between the storage devices 2a and 2b does not adversely affect the network 3a used by the server 1, but the networks 3a and 3b It may be the same.
  • the storage device 2a is referred to as a primary storage device 2a
  • the storage device 2b is referred to as a secondary storage device 2b.
  • the logical volume provided to the server 1 by the primary storage apparatus 2a is referred to as a primary volume 11a
  • the logical volume provided to the server 1 by the secondary storage apparatus 2b is referred to as a secondary volume 11b.
  • the storage system of this embodiment is an active-standby type storage system in which only the primary storage device 2a operates in a normal state.
  • This is a storage system in which the primary volume 11a and the secondary volume 11b form a synchronous remote copy pair. Accordingly, the server 1 transmits an access command only to the primary volume 11a when the primary volume 11a of the primary storage apparatus 2a can be used, and accesses the secondary volume 11b of the secondary storage apparatus 2b only when the primary volume 11a cannot be used. Send a command.
  • the primary storage apparatus 2a receives write data based on the Write command from the server 1 will be described.
  • the primary storage apparatus 2a writes the write data to the primary volume 11a and writes the write data to the same address as the primary volume 11a in the secondary volume 11b that forms a remote copy pair with the primary volume 11a.
  • the instructed Write command is transferred to the storage apparatus 2b.
  • the storage apparatus 2b receives the write command and write data, writes the write data to the secondary volume 11b based on the write command, and transmits a write completion response to the storage apparatus 2a. After receiving the write completion response, that is, after the write data has been written to both the primary volume 11a and the secondary volume 11b, the storage device 2a responds to the server 1 with the completion of the data write process.
  • the data of the primary volume 11a and the secondary volume 11b are synchronized. For this reason, even when the storage apparatus 2a becomes unusable due to a failure or the like, the access from the server 1 can be continued using the data of the secondary volume 11b of the storage apparatus 2b.
  • the primary storage apparatus 2a when the server 1 instructs the primary storage apparatus 2a to write a plurality of data based on the SWA command, the primary storage apparatus 2a is based on the SWA command to the primary volume 11a. Perform data write processing. Then, the primary storage apparatus 2a transfers the SWA command to the secondary storage apparatus 2b. As a result, the secondary storage apparatus 2b performs data write processing based on the SWA command to the secondary volume 11b.
  • the same program and table as those stored in the main memory 8 of the primary storage apparatus 2a are also stored in the main memory 8 of the secondary storage apparatus 2b.
  • the same volume ID and address are assigned to the two logical volumes and storage areas forming the remote copy pair, but the present invention is not limited to this. It is only necessary that the two logical volumes and storage areas forming the remote copy pair have some correspondence.
  • FIG. 13 is a diagram for explaining the outline of the data writing process by the SWA command according to the second embodiment.
  • FIG. 14 is a flowchart of data write processing according to the second embodiment.
  • the data writing process is executed when the primary storage apparatus 2a receives the SWA command from the server 1.
  • the processor 7 of the primary storage device 2a executes the data write program stored in its own main memory 8
  • the processor 7 of the secondary storage device 2b is stored in its own main memory 8. This is done by executing a data writing program.
  • the same steps as those in the first embodiment are given the same reference numerals.
  • the primary storage apparatus 2a receives from the server 1 a SWA command specifying addresses indicating two storage areas on the primary volume 11a, and performs command analysis of the received SWA command (S1) (FIG. 13 (1)). .
  • the primary storage apparatus 2a ensures exclusion of the storage area specified by the SWA command (S2) (FIG. 13 (2)). Specifically, for example, in the cache management table 19, the exclusive flag corresponding to the storage area of the primary volume write destination is set to “ON”.
  • the primary storage apparatus 2a transfers the SWA command to the secondary storage apparatus 2b (S17) (FIG. 13 (3)).
  • SWA command an address indicating the storage area of the secondary volume 11b corresponding to the storage area of the primary volume 11a is designated.
  • the primary storage device 2a performs data reception processing (S3) (FIG. 13 (4)).
  • the data reception process is as described in FIG.
  • the primary storage apparatus 2a determines whether or not the data reception process is successful (S18). In the case of success, “data write” is set in the update availability information. In the case of failure, “data rewind” is set in the update availability information. In the case of failure (S18; No), the primary storage apparatus 2a advances the process to S4. On the other hand, if successful (S18; Yes), the primary storage apparatus 2a waits for a response to the command transfer from the secondary storage apparatus 2b (S19).
  • the secondary storage device 2b receives the SWA command from the primary storage device 2a and performs command analysis of the received SWA command (S1a). Specifically, for example, the secondary storage apparatus 2b, based on the parameter list received together with the SWA command, writes the write destination address indicating the write destination storage area of the secondary volume 11b for a plurality of target data specified by the SWA command. (Volume ID and address) are specified. At this time, the secondary storage apparatus 2b attaches a command ID to the transmitted SWA command in order to identify other commands. Then, the secondary storage apparatus 2b requests the primary storage apparatus 2a to transmit the target data to be written for each storage area of the secondary volume 11b based on the SWA command.
  • S1a command analysis of the received SWA command
  • the secondary storage device 2b performs data reception processing (S3b) (FIG. 13 (5)).
  • the data reception process performed by the secondary storage apparatus 2b is as follows.
  • the secondary storage device 2 b receives the target data according to the request via the buffer of the server I / F 6 and stores it in the storage area of the cache memory 9. This is because the storage system of the present embodiment is an active-standby type storage system, so that the secondary storage apparatus 2b is not directly accessed until a failure occurs in the primary storage apparatus 2a.
  • the secondary storage device 2b makes a response to the command transfer to the primary storage device 2a (S22).
  • the secondary storage device 2b sends a success response when all the target data based on the SWA command is received (FIG. 13 (6)), and sends a failure response when all the target data based on the SWA command cannot be received.
  • the secondary storage apparatus 2b makes a success response when all of a plurality of target data based on the SWA command is stored in the storage area of the cache memory 9. In this case, the secondary storage apparatus 2b waits for a data confirmation instruction from the primary storage apparatus 2a (S23).
  • the primary storage system 2a determines whether the command transfer is successful, that is, whether the received response is a successful response (S20). When the command transfer is successful (S20; Yes), the primary storage system 2a advances the process to S4. In this case, it means that each of the primary storage apparatus 2a and the secondary storage apparatus 2b has succeeded in data reception processing, and “data write” is set in the updatable information. On the other hand, when the command transfer is not successful (S20; No), it means that the data reception process of either or both of the primary storage apparatus 2a and the secondary storage apparatus 2b has failed. Therefore, the primary storage apparatus 2a sets “data rewind” anew in the update availability information (S13a), and advances the process to S4.
  • the primary storage apparatus 2a performs data confirmation processing (S4) (FIG. 13 (7)).
  • the data confirmation process is as described with reference to FIG.
  • the primary storage apparatus 2a transmits an instruction for data confirmation processing to the secondary storage apparatus 2b (S21) (FIG. 13 (8)). Then, the primary storage apparatus 2a releases the exclusion of the storage area designated by the SWA command (S5) (FIG. 13 (9)). Specifically, for example, the primary storage apparatus 2a sets the exclusive flag 25 of the cache management table 19 to “OFF” for the write destination storage area of the primary volume 11a.
  • the primary storage system 2a transmits a response to the SWA command to the server 1 (S6) and ends the process. Regarding this response, the primary storage apparatus 2a makes a success response when all the processes are successful (FIG. 13 (10)), and if any of the processes fails, it makes a process failure response.
  • the secondary storage device 2b receives the data confirmation instruction in S21, performs the data confirmation process (FIG. 13 (11)), and ends the process. Specifically, for example, the secondary storage device 2 b releases the exclusion of the storage area specified by the SWA command, and copies all target data in the storage area in the temporary area 12 to the storage area of the cache memory 9.
  • the primary storage apparatus 2a accessed from the server 1 secures exclusion of the storage area specified by the SWA command, thereby prohibiting writing and reading of the storage area by other commands from the server 1.
  • the SWA command it is possible to maintain data consistency in all the write destination storage areas designated by the SWA command.
  • the data writing process of the target data based on the SWA command can be performed without being affected by other commands.
  • the storage system of this embodiment is an active-standby type storage system in which only the primary storage device 2a operates in a normal state, and the storage in which the primary volume 11a and the secondary volume 11b form a synchronous remote copy pair. System.
  • the primary storage apparatus 2a receives the SWA command from the server 1
  • all of a plurality of target data based on the SWA command is written or written to the drives 5 of the storage apparatuses 2a and 2b. It can be in either state that does not fall.
  • the data confirmation process of the primary storage apparatus 2a and the secondary storage 2b is performed.
  • a plurality of target data based on the SWA command is written to both the drives 5 of the storage apparatuses 2a and 2b.
  • a plurality of target data based on the SWA command is written to both drives 5 of the storage apparatuses 2a and 2b by rewinding the data. Absent.
  • the server when the server performs data write processing based on the SWA command for the primary storage apparatus, the following problem occurs.
  • the primary storage apparatus in order to synchronize the primary volume and the secondary volume, the primary storage apparatus must transmit a plurality of Write commands to the secondary storage apparatus using conventional remote copy processing. For this reason, when the secondary storage device writes the target data to the secondary volume, if the storage device fails to receive some write commands due to a failure, the data write state cannot be aligned as follows.
  • the data write process in the secondary storage apparatus 2b is performed as the data reception process and the data confirmation process by using the SWA command between the primary storage apparatus 2a and the secondary storage apparatus 2b.
  • the above (C) can be prevented.
  • each storage device 2a, 2b determines whether the reception of all data based on the SWA command is successful or unsuccessful by performing the data reception process based on the update availability information. For this reason, the data write state between the primary volume 11a and the secondary volume 11b can be made uniform, and the above (D) can be prevented.
  • the secondary volume at the time of communication failure is set by setting data rewind to the update availability information and aligning the data to the state before update.
  • the condition in the secondary volume 11b may be relaxed by guaranteeing the data in 11b to the state before the update. For example, if the storage apparatus 2a determines that data rewinding is performed in S13, the data in the primary volume 11a and the secondary volume 11b is prepared before the update even if communication with the storage apparatus 2b is not possible in S21, so the secondary volume 11b is disconnected. It is not necessary.
  • the secondary storage apparatus 2b may not be able to receive a part of the target data. For example, if the storage area specified by the SWA command on the primary storage device 2a side is secured by S2, an operation relating to remote copy may be waited until the exclusion is released.
  • the storage system according to this embodiment is an active-active storage system in which both the primary storage apparatus 2a and the secondary storage apparatus 2b are operating at normal times, and the primary volume 11a and the secondary volume 11b are synchronous remote copy pairs. Is a storage system. Accordingly, the server 1 can transmit an access command to both the primary volume 11a of the primary storage apparatus 2a and the secondary volume 11b of the secondary storage apparatus 2b, and can read and write data from both volumes 11a and 11b.
  • differences from the first and second embodiments will be mainly described, and description of different portions may be omitted.
  • the configuration of the storage system of this embodiment is the same as that of the second embodiment.
  • the storage system of this embodiment is an active-active storage system. Therefore, compared with the storage system of the second embodiment, not only between the server 1 and the primary storage system 2a, but also the communication path between the server 1 and the secondary storage device 2b, and the resources of the secondary storage device 2b Can be used for reading and writing data by the server 1 even under normal conditions, and there is an advantage that the processing efficiency of the entire storage system is improved.
  • FIG. 15 is a diagram for explaining the outline of the data writing process by the SWA command of the third embodiment.
  • a plurality of target data based on the SWA command is data for updating data stored in the storage area in the logical volume 11 is described, but the present invention is not limited to this. .
  • the secondary storage apparatus 2b when the secondary storage apparatus 2b receives the SWA command transferred from the primary storage apparatus 2a (4), the storage area specified by the SWA command is secured (5). Then, a data confirmation instruction is received from the primary storage apparatus 2a (10), and after performing data confirmation processing (13), the exclusion of the storage area designated by the SWA command is released (14). As a result, during execution of the SWA command, it is possible to avoid the influence of other commands, and the above (E) can be prevented.
  • the above-mentioned repair (F) is performed to prevent the above (F).
  • the SWA command is being executed.
  • the repair process is, for example, remote copy between the primary volume 11a and the secondary volume 11b. Details will be described later. If the repair process fails, the primary volume 11a or the secondary volume 11b is disconnected.
  • the storage apparatuses 2a and 2b hold information indicating whether or not the consistency between the logical volumes 11a and 11b is established. For example, this information is held by the cache management table 19a, but may be held by other information.
  • FIG. 16 is an example of the cache management table 19a of the third embodiment.
  • the cache management table 19a is stored in the main memory 8 of the primary storage device 2a and the main memory 8 of the secondary storage device 2b, respectively.
  • the cache management table 19a has an entry for each storage area of the logical volume of each storage device 2.
  • Each entry has a repair flag 25 corresponding to the storage area in the logical volume 11 in addition to the volume ID 15, address 16, cache address 20, and exclusion flag 21 corresponding to the storage area in the logical volume 11.
  • the repair flag is “ON”, it indicates that the repair is necessary because the storage area of the primary volume 11a and the data of the corresponding secondary volume 11b storage area do not match.
  • the present invention is not limited to this.
  • the data writing process by the SWA command of the third embodiment will be described.
  • the data writing process of the third embodiment is almost the same as the data writing process of the second embodiment. For this reason, it demonstrates centering on the difference with Example 2.
  • FIG. In the following, a case where the primary storage apparatus 2a receives a SWA command from the server 1 will be described.
  • the primary storage apparatus 2a that has received the SWA command passes the command analysis (S1), secures the exclusion of the storage area specified by the SWA command (S2), and before performing the command transfer (S17) (see FIG. 12). ), Repair processing between the primary volume 11a and the secondary volume 11b is performed.
  • the primary storage apparatus 2a refers to the cache memory management table 19a and sets the restoration flag 25 corresponding to the volume ID 15 and the address 16 that match the storage area address of the primary volume 11a specified by the SWA command. refer.
  • the primary storage apparatus 2a transmits the data in the storage area of the primary volume 11a to the secondary storage apparatus 2b by the Write command.
  • the secondary storage device 2b writes the data in the storage area of the primary volume 11a to the storage area of the corresponding secondary volume 11b.
  • the primary storage apparatus 2a and the secondary storage apparatus 2b set OFF to the repair flag 25 corresponding to the storage area of its own cache memory management table 19a.
  • the secondary storage device 2b reads the data in the storage area of the primary volume 11a and writes it in the corresponding storage area of the secondary volume 11b by the Read command.
  • the primary storage system 2a executes the processes after S17 shown in FIG.
  • the repair flag 25 in the cache management table 19a By setting the repair flag 25 in the cache management table 19a to “ON”, it is stored that the data between the logical volumes 11a and 11b forming the remote copy pair is inconsistent and needs to be repaired. Can do.
  • the SWA command is received from the server 1
  • the consistency between the logical volumes 11a and 11b can be maintained by performing the above-described repair processing.
  • the primary storage apparatus 2a or the secondary storage apparatus 2b receives a command that requires reading / writing of data other than the SWA command, the logical volume specified by the received command before reading / writing the target data
  • the repair flag 25 of the cache management table 19a may be referred to.
  • the repair flag 25 When the repair flag 25 is “ON”, the data in the storage area of the primary volume 11a is copied to the corresponding storage area of the secondary volume 11b, and after the repair flag 25 is set to OFF, the secondary storage apparatus 2b Read / write data in the volume 11b. When the repair flag 25 is “OFF”, the secondary storage apparatus 2b reads / writes data in the secondary volume 11b as it is.
  • FIG. 17 is a flowchart of the data write process performed by the storage apparatus that is the transfer destination of the SWA command according to the third embodiment.
  • the case where the SWA command transfer destination is the secondary storage apparatus 2b will be described below.
  • the secondary storage device 2b performs the following processing in addition to the write processing of the second embodiment.
  • the secondary storage device 2b receives the SWA command and parameter list transferred from the primary storage device 2a, performs command analysis of the SWA command (S1b), refers to the cache management table 19a, and designates with the SWA command
  • S1b command analysis of the SWA command
  • S2b refers to the cache management table 19a
  • S2b exclusive storage area
  • the method of securing the exclusive SWA command is the same as S2.
  • the secondary storage device 2b After the data reception processing (S3b), the secondary storage device 2b responds to the command transfer to the primary storage device 2a (S22), and waits for a data confirmation instruction from the primary storage device 2a (S23). This is also the same as in the second embodiment.
  • the secondary storage apparatus 2b determines whether or not the data confirmation instruction has been successfully received after S23 (S24).
  • the data confirmation instruction includes update availability information. Assume that the data confirmation instruction has been successfully received when the data confirmation instruction is received and the update availability information is “data write”. On the other hand, if the data confirmation instruction has not been received for a certain period of time, or if the data confirmation instruction has been received but the update availability information is “data rewind”, it is assumed that the reception of the data confirmation instruction has failed. Therefore, this determination may be triggered by reception of a data confirmation instruction, or may be triggered by a state in which a data confirmation instruction cannot be received for a certain period of time. If the data confirmation instruction has been successfully received, the process proceeds to S4b.
  • the secondary storage apparatus 2b sets “ON” to the repair flag 25 corresponding to the storage areas of all target data based on the SWA command of the cache management table 19a (S25). . Then, the secondary storage apparatus 2b sets data rewinding again in the update availability information (S13b), and advances the process to S4b.
  • the secondary storage apparatus 2b After performing the data confirmation process (S4), the secondary storage apparatus 2b releases the exclusion of the storage area specified by the SWA command and ends the process (S5b).
  • the method of releasing the exclusion is the same as S5.
  • the primary storage apparatus 2a receives the SWA command from the server 1 in the storage system, all the plurality of target data based on the SWA command are written to the drives 5 of the storage apparatuses 2a and 2b. , It can be in any state of not being written. Specifically, when both the data reception process of the primary storage apparatus 2a and the data reception process of the secondary storage apparatus 2b are successful, the data confirmation process of the primary storage apparatus 2a and the secondary storage 2b is performed. In this case, a plurality of target data based on the SWA command is written to both the drives 5 of the storage apparatuses 2a and 2b.
  • the storage system of the present embodiment is an active-active storage system in which both the primary storage apparatus 2a and the secondary storage apparatus 2b are operating in a normal state, and the primary volume 11a and the secondary volume 11b are This is a storage system that forms a synchronous remote copy pair.
  • the primary storage apparatus 2a accessed from the server 1 secures the exclusion of the storage area specified by the SWA command, thereby prohibiting the writing and reading of data in other commands from the server 1,
  • execution of the SWA command it is possible to maintain data consistency in all the write destination storage areas designated by the SWA command.
  • the data writing process of the target data based on the SWA command can be performed without being affected by other commands.
  • the secondary storage apparatus 2b also receives commands from the server 1. For this reason, the secondary storage device 2b also prohibits writing and reading of data in other commands from the server 1 by ensuring exclusion of the storage area specified by the SWA command. Thereby, the consistency of data in all the write destination storage areas specified by the SWA command can be maintained during the execution of the SWA command. In addition, the data writing process of the target data based on the SWA command can be performed without being affected by other commands.
  • the storage system of this example has the same configuration as that of Example 2.
  • the storage system of the present embodiment is an active-standby type storage system in which only the primary storage device 2a operates in a normal state, and the primary volume 11a and the secondary volume 11b form a synchronous remote copy pair. It is a storage system.
  • the secondary storage device is a conventional storage device, and write processing based on the SWA command cannot be performed. Therefore, there is an advantage that the cost for constructing the storage system for performing the remote copy process can be saved.
  • FIG. 18 is a flowchart of data write processing according to the fourth embodiment.
  • the data writing process is executed when the primary storage apparatus 2a receives the SWA command from the server 1. This process is performed by the processor 7 of the primary storage apparatus 2a executing a data write program stored in its own main memory 8. In the following, only the processing on the primary storage device 2a side will be described. The same steps as those in the second embodiment are given the same reference numerals.
  • the primary storage apparatus 2a After executing S1 (command analysis) and S2 (exclusive reservation), the primary storage apparatus 2a performs data reception processing without transferring the SWA command to the secondary storage apparatus 2b (S3).
  • S1 to S3 The processing of S1 to S3 is the same as that of the second embodiment (FIG. 6).
  • the primary storage apparatus 2a determines whether or not the data reception process is successful (S18). In the case of success, “data write” is set in the update availability information. In the case of failure, “data rewind” is set in the update availability information. In the case of failure (S18; No), the primary storage apparatus 2a advances the process to S4.
  • the primary storage apparatus 2a designates any one of a plurality of target data based on the SWA command and transmits a Write command to the secondary storage apparatus ( S34). Then, the primary storage system 2a waits for a response to the Write command. The primary storage apparatus 2a determines whether or not the Write command is successful, that is, whether or not the response from the secondary storage apparatus 2b is a successful response. When the Write command is successful (S35; Yes), it is determined whether there is target data that has not transmitted the Write command to the secondary storage apparatus 2b among the plurality of target data based on the SWA command. When there is untransmitted target data (S36; Yes), the primary storage apparatus 2a returns the process to S34. On the other hand, when there is no untransmitted target data (S36; No), the primary storage apparatus 2a advances the process to S4.
  • the primary storage apparatus 2a designates the data before the update for any one of the plurality of target data based on the SWA command, and the secondary storage A Write command is transmitted to the device 2b (S37). Then, the primary storage system 2a waits for a response to the Write command. The primary storage apparatus 2a determines whether there is pre-update data that has not been transmitted to the primary storage apparatus 2a among the pre-update data corresponding to the plurality of target data based on the SWA command. When there is unsent data before update (S38; Yes), the primary storage apparatus 2a returns the process to S37. On the other hand, when there is no unsent data before update (S38; No), the primary storage apparatus 2a advances the process to S4.
  • the primary storage apparatus 2a executes the data confirmation process (S4), releases the exclusion secured in S2 (S5), and sends a process completion response (success response or failure response) to the server (S6), and ends the process. To do.
  • the remote copy pairs in the primary volume 11a and the secondary volume 11b can be unified to be updated with a plurality of target data or in a state before the update.
  • the primary storage apparatus 2a manages the data write state of the secondary volume 11b, and can operate the data write state of the secondary volume 11b by sending a Write command to the secondary storage apparatus.
  • the storage systems of Examples 2 to 4 are storage systems in which the primary volume 11a and the secondary volume 11b form a synchronous remote copy pair. For this reason, in the data write processing based on the SWA command, the primary storage apparatus 2a that has received the SWA command performs a series of data write to its own primary volume 11a and remote copy to the secondary volume 11b of the secondary storage apparatus 2b. It is executed as a process.
  • the expression “data is written to the logical volume 11” is used, but this is to write data to the storage area on the cache memory 9 corresponding to the storage area on the logical volume 11. It means that.
  • the expression that data is received in the logical volume 11 corresponds to the storage area of the logical volume 11 in a state where the data to be written to the logical volume 11 can be written to the temporary area or returned to the data before writing. This means that data is written to the storage area of the cache memory 9.
  • the configuration of the storage system of this embodiment is the same as that of Embodiments 2 and 3 except that the primary storage apparatus 2a and the secondary storage apparatus 2b have journals 26a and 26b, respectively (see FIG. 20 described later).
  • the journals 26a, 26b may be stored in a storage area such as the main memory 8 or the cache memory 9 of each storage device 2a, 2b, for example.
  • the storage system of this embodiment is an active-standby type storage system in which only the primary storage device 2a operates in a normal state, and the asynchronous storage system in which the primary volume 11a and the secondary volume 11b form an asynchronous remote copy pair. It is.
  • asynchronous means an arbitrary trigger, for example, it may be triggered by internal information of the primary storage device or the secondary storage device at regular intervals, and the frequency of receiving operations and commands by the administrator is constant. It may be triggered by a storage device that is less than the value or an external factor that can be determined.
  • the primary storage apparatus identifies the address of the storage area of the primary volume where the write data is stored, stores the write data in the storage area, and then creates a new entry in the journal. And the address of the storage area for storing the write data and the size of the write data are stored. Thereafter, at an appropriate timing, the primary storage device refers to the journal, and if there is an entry in the journal, the information included in the entry, the write data in the storage area specified by the volume ID and address of the entry, Is sent to the secondary storage device.
  • the journal in the asynchronous storage system, information related to data writing for separating data writing and remote copying, that is, data difference information stored in the remote copy pair is recorded. It is a list.
  • the secondary storage device receives the entry information and the write data, and adds the received entry information to its own journal. Thereafter, the secondary storage device refers to its own journal, stores the write data in the corresponding storage area of the secondary volume, and deletes the entry.
  • the primary storage device can reduce the impact of remote copy on command-based processing by separating the writing of write data to the primary volume and the remote copy trigger for the secondary volume. There is. For example, when the primary storage device frequently receives commands such as write commands, remote copy is not executed, and remote copy is executed when the frequency of receiving these commands is low. Can be prevented from decreasing.
  • the information in the primary storage device journal entry is not sent from the primary storage device to the secondary storage device, but the secondary storage device You may make it acquire from a storage apparatus. Further, the secondary storage device does not store the received entry information and write data in the journal 26b and the temporary area, but can specify the storage area indicated by the received entry and write the received data during the reception process. good.
  • the storage system of this embodiment has a function for managing a plurality of target data based on the SWA command as a group of data.
  • FIG. 19 is an example of the journal 26.
  • the journal 26 is a list in which information related to data writing for separating data writing and remote copying in an asynchronous storage system, that is, differential information of data stored in a remote copy pair is recorded.
  • the journal 26 has an entry for each storage area in which data written to the primary volume 11a is stored. Each entry identifies, for example, a volume ID 261 that is an identifier of the primary volume 11a, a storage area address 263 in the primary volume 11a, a size 265 of the storage area, and a command that specifies data stored in the storage area. It has a command ID 267 and an entry number 269 indicating the number of data specified by the command.
  • a plurality of target data based on the SWA command can be managed as a group of data.
  • FIG. 20 is a diagram for explaining the outline of the data writing process based on the SWA command by the storage system of the fifth embodiment.
  • the primary storage apparatus 2a receives the SWA command and performs the data write process of the first embodiment (see FIG. 6).
  • the primary storage apparatus 2a stores a plurality of target data based on the SWA command in the storage area of the primary volume 11a in the data writing process, and registers entries of the plurality of target data in the journal 26a in the difference registration process. .
  • the difference registration process may be performed during the data confirmation process (S4) or at an appropriate timing thereafter.
  • the primary storage system 2a assigns an identifier for managing the target data as one data group to a plurality of target data entries based on the SWA command of the journal 26a. This is, for example, the command ID 268 and the number of entries 269 assigned to the aforementioned journal 26 entries. Thereafter, the primary storage apparatus 2a asynchronously transmits information on entries in the journal 26a and data corresponding to these entries to the secondary storage apparatus 2c (1).
  • the secondary storage device 2c receives information on entries in the journal 26a and data corresponding to the entries.
  • the secondary storage device 2 c registers the entry information in the journal 26 b and stores the received data in the temporary area 12 of the cache memory 9. Thereafter, in the differential update process, the secondary storage apparatus 2c refers to the journal 26b, detects all of the plurality of target data based on the SWA command based on the identifier (2), and writes them collectively to the storage area of the secondary volume 11b. (3).
  • the storage apparatus 2a may not transmit the information of the entry in the journal 26a to the storage apparatus 2b, but the storage apparatus 2b may acquire the information of the entry in the journal 26b.
  • the storage device 2b does not store the received entry information and target data in the journal 26b and the temporary area, and writes the received data by specifying the storage area indicated by the received entry during the reception process. But you can.
  • FIG. 21 is a flowchart of the difference registration process performed by the primary storage apparatus 2a.
  • the primary storage system 2a calculates the number of addresses to be written based on the SWA command, that is, the number of entries to be added based on the number of target data (S26).
  • the primary storage apparatus 2a adds the calculated number of entries (S27).
  • the primary storage system 2a sets the write destination address of the target data, the command ID 24, and the number of entries in each added entry (S28). The primary storage system 2a determines whether there is an entry for which these values are not set in the added entry (S29). If there is an unset entry (S29; Yes), the primary storage system 2a returns the process to S28. On the other hand, when there is no unset entry (S29; No), the primary storage apparatus 2a ends the process.
  • FIG. 22 is a flowchart of the difference update process performed by the secondary storage apparatus 2c.
  • the difference update process is a process of writing the target data to the secondary volume 11b performed by the secondary storage apparatus 2c. This will be specifically described below.
  • the secondary storage device 2c refers to the journal 26b and determines whether there is an entry that has not been searched yet (S30). If there is no unsearched entry (S30; No), the secondary storage system 2c advances the process to S33. On the other hand, when there is an unsearched entry (S30; Yes), the secondary storage apparatus 2c selects the entry (S31), and the journal 26b in which the command ID 24 of the selected entry and the command ID indicating the SWA command are set. It is determined whether or not the first entry matches (S32).
  • the secondary storage device 2c When the command IDs 24 of these entries match (S32; Yes), the secondary storage device 2c means that the selected entry is a target entry based on the SWA command. Accordingly, in order to refer to the next entry, the secondary storage system 2c returns the process to S30. On the other hand, if the command IDs 24 of these entries do not match (S32; No), the secondary storage apparatus 2c means that the selected entry is not the target entry, so that the selected entry is processed as an unsearched entry in S33. To proceed.
  • the secondary storage system 2c compares the entry number of the target entry with the entry number 28 of the first entry of the journal 26b in which the command ID indicating the SWA command is set (S33). If the number of entries matches (S33; Yes), the secondary storage apparatus 2c determines that all the entry information and the target data based on the SWA command have been received, and the data confirmation process (S4) for these target data Execute. On the other hand, if the number of entries does not match (S33; No), it is determined that all the entry information and the target data based on the SWA command have been received, and the process ends.
  • the data write process in the active-standby type storage system in which only the primary storage apparatus 2a operates normally and the primary volume 11a and the secondary volume 11b form an asynchronous remote copy pair.
  • the data write process in the asynchronous storage system is not limited to the above example.
  • the data write process may be performed by a method other than the above if both the primary storage apparatus 2a and the secondary storage apparatus 2c can recognize all of the plurality of target data based on the SWA command as a group of data.
  • the 1st and 2nd modification of the difference update process in a data writing process is demonstrated. Even in these modified examples, the same effect as that of the writing process in the present embodiment described above can be obtained.
  • the storage apparatus 2b determines whether there is an unsearched entry (S30), selects the entry (S31), and the journal 26b in which the command ID 24 of the selected entry and the command ID indicating the SWA command are set. It is determined whether or not the first entry matches (S32).
  • the secondary storage apparatus 2c When the command IDs 24 of these entries match (S32; Yes), the secondary storage apparatus 2c means that the selected entry is a target entry based on the SWA command. Accordingly, in order to refer to the next entry, the secondary storage system 2c returns the process to S30. On the other hand, if the command IDs 24 of these entries do not match (S32; No), the secondary storage device 2c means that the selected entry is not the target entry and that a group of entries based on the SWA command has ended. This means that the selected entry is an unsearched entry, and the process ends without executing S33.
  • the items of the command ID 267 and the number of entries 269 may be excluded from each entry of the journals 26a and 26b.
  • a continuous entry is added as an entry based on the SWA command, and an end indicating the end of the entry based on the SWA command is added to the next entry after the continuous entry.
  • You may set the guard 290 which is a marker.
  • FIG. 24 is a flowchart showing a second modification of the difference update process.
  • the storage apparatus 2b determines whether there is an unsearched entry (S30), and selects the entry (S31). Next, it is determined whether the selected entry is sentinel 290 or not.
  • the guard 290 is, for example, an entry having an invalid value and distinguishable from a normal entry. If the selected entry is not the sentinel 290 (S32; No), the secondary storage system 2c returns the process to S30.
  • the secondary storage apparatus 2c assumes that the entries selected immediately before the sentinel 290 are a group of entries based on the SWA command, and information on entries based on the SWA command and It is determined that all the target data has been received, and a data confirmation process (S4) is executed for these target data.
  • the first processor, the first memory, and the first storage device correspond to the processor 7, the main memory 8, the drive 5, and the like in the storage apparatuses 2, 2a according to the first to fifth embodiments.
  • the second processor, the second memory, and the second storage device correspond to the processor 7, the main memory 8, the drive 5, and the like in the secondary storage device 2b of the synchronous remote storage system according to the second to fourth embodiments.
  • the third processor, the third memory, and the third storage device correspond to the processor 7, the main memory 8, the drive 5, and the like in the secondary storage device 2c of the asynchronous remote storage system according to the fifth embodiment.
  • retained data corresponds to data before update
  • write data corresponds to target data.
  • the first logical volume corresponds to the primary volume 11a and the like
  • the second logical volume corresponds to the secondary volume 11b and the like.
  • the logical storage area corresponds to the storage area 13a and the like
  • the first or second device storage area corresponds to the storage area 13c and the like
  • the first storage area corresponds to the cache memory 9 in the storage device 2 or the primary storage device 2a.
  • the second storage area corresponds to the storage area 13d in the temporary area 12, and the third storage area is dynamically generated separately from the storage area 13a in the cache memory 9.
  • the fourth storage area corresponds to the storage area in the cache memory 9 in the secondary storage device 2b
  • the fifth storage area corresponds to the storage area in the temporary area 12
  • the sixth storage area corresponds to (fourth storage area). It corresponds to a storage area dynamically generated in the cache memory 9 (different from the area).
  • the first, second, and third volume information correspond to the volume management table 14 and the like
  • the first, second cache information, and first memory information correspond to the cache management table 19.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 第1プロセッサは、前記サーバ計算機から、複数の論理記憶領域をそれぞれ示す複数のアドレスを指定し、複数の論理記憶領域に複数のライトデータをそれぞれ書込むことを指示するコマンドを受信した場合、複数のライトデータを受信し、かつ、第1メモリ内の複数の保持データが格納されている記憶領域とは別の記憶領域に、複数のライトデータを書込む。第1プロセッサは、第1メモリに複数のライトデータが全て書込まれたか否かを判定し、第1プロセッサは、第1メモリに複数のライトデータが全て書込まれたと判定した場合、ホスト計算機に第1成功応答を送信し、複数のライトデータが所定の条件を満たす場合、第1メモリ内の複数のライトデータを、複数の第1デバイス記憶領域にそれぞれ書込む。第1プロセッサは、第1メモリに複数のデータの少なくとも一部が書込まれていないと判定した場合、ホスト計算機に第1失敗応答を送信する。

Description

ストレージシステム及びデータ書込み方法
 本発明は、ストレージシステムに関する。
 SWA(Scatter Write Atomic)コマンドが知られている。SWAコマンドは、標準化活動中のSCSI(Small Computer System Interface)コマンドである。SWAコマンドは、パラメータリストと共に送信先に送信される。パラメータリストは、書込み対象となる依存関係のある複数のデータについて、データ、データのデータ長、及びデータの書込み先の記憶領域の先頭アドレスをリスト化したものである。
 しかしながら、従来のストレージ装置は、SWAコマンドに対応していない。SWAコマンドをストレージ装置が受信すると仮定した場合、ストレージ装置は、パラメータリストによって指定された全てのデータについて、指定された記憶領域に書込んだ後、SWAコマンドの送信元に正常終了を応答すると考える。しかし、SWAコマンドを受信したときから正常終了の応答までに、障害が発生したなどの理由により、SWAコマンドに基づく複数のデータの書込み処理が終了する場合、ストレージシステムは、それら全てのデータについて、書込み前又は書込み後のいずれかの状態を維持すること、つまり、複数のデータの整合性を維持することを保証できない。
 かかる課題を解決するために本発明に係るストレージシステムは、第1記憶デバイスとサーバ計算機及び前記第1記憶デバイスに接続された第1プロセッサと、前記第1プロセッサに接続された第1メモリと、を有する。第1プロセッサは、第1記憶デバイスに基づきサーバ計算機に第1論理ボリュームを提供する。第1メモリは、第1論理ボリューム内の複数の論理記憶領域と、第1記憶デバイス内の複数の第1デバイス記憶領域との関連づけを示す第1ボリューム情報を記憶する。第1記憶デバイスは、複数の第1デバイス記憶領域に複数の保持データをそれぞれ格納する。第1メモリは、複数の保持データを格納し、第1プロセッサは、前記サーバ計算機から、複数の論理記憶領域をそれぞれ示す複数のアドレスを指定し、複数の論理記憶領域に複数のライトデータをそれぞれ書込むことを指示するコマンドを受信した場合、サーバ計算機からコマンドに基づく複数のライトデータを受信し、かつ、第1メモリ内の複数の保持データが格納されている記憶領域とは別の記憶領域に、複数のライトデータを書込むデータ受信処理を実行する。第1プロセッサは、第1メモリに複数のライトデータが全て書込まれたか否かを判定し、第1プロセッサは、第1メモリに複数のライトデータが全て書込まれたと判定した場合、ホスト計算機に第1成功応答を送信する。第1プロセッサは、複数のライトデータが所定の条件を満たす場合、第1メモリ内の複数のライトデータを、複数の第1デバイス記憶領域にそれぞれ書込む。第1プロセッサは、第1メモリに複数のデータの少なくとも一部が書込まれていないと判定した場合、ホスト計算機に第1失敗応答を送信する。
 本発明によれば、SWAコマンドに基づく複数のデータについて、これらのデータの整合性を維持することができる。
実施例1に係る計算機システムの構成図である。 ボリューム管理テーブル14の一例である。 キャッシュ管理テーブル19の一例である。 一時領域管理テーブル30の一例である。 実施例1のSWAコマンドによるデータ書込み処理の概要を説明する図である。 実施例1のSWAコマンドに基づくデータ書込み処理のフローチャートである。 データ受信処理のフローチャートである。 データ確定処理のフローチャートである。 SWAコマンドに基づくデータ書込処理の第1の変形例の概要を説明する図である。 SWAコマンドに基づくデータ書込み処理の第2の変形例の概要を説明する図である。 実施例1の計算機システムのシステム構成の第1の変形例を示す図である。 実施例1の計算機システムのシステム構成の第2の変形例を示す図である。 実施例2に係る計算機システムにおけるデータ書込み処理の概要を説明する図である。 実施例2のデータ書込み処理のフローチャートである。 実施例3のSWAコマンドによりデータ書込み処理の概要を説明する図である。 実施例3のキャッシュ管理テーブル19aの一例である。 実施例3における、SWAコマンドの転送先のストレージ装置が行うデータ書込み処理のフローチャートである。 実施例4のデータ書込み処理のフローチャートである。 ジャーナル26の一例である。 実施例5のストレージシステムによるSWAコマンドに基づくデータ書込み処理の概要を説明する図である。 正ストレージ装置2aが行う差分登録処理のフローチャートである。 副ストレージ装置2cが行う差分更新処理のフローチャートである。 ジャーナル26の他の一例である。 差分更新処理の第1の変形例を示すフローチャートである。
 以下の説明では、「kkkテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「kkkテーブル」を「kkk情報」と呼ぶことができる。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶資源(例えば、メモリ)及び/又は通信インターフェイスデバイス(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。逆に、プロセッサが主語となっている処理は、1以上のプログラムを実行することにより行われると解釈することができる。プロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、処理の一部(例えば、暗号化/復号化、圧縮/伸張)を実行するハードウェア回路を含んでもよい。
 また、以下の説明では、「論理ボリューム」は、実論理ボリュームであっても良いし、仮想論理ボリュームであっても良い。実論理ボリュームは、1以上のドライブに基づく論理ボリュームである。「ドライブ」は、不揮発性の物理的な記憶デバイスであり、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。複数のドライブで1以上のRAIDグループ(Redundant Array of Independent (or Inexpensive) Disks)が構成されてよい(RAIDグループはパリティグループと呼ばれてもよい)。仮想論理ボリュームとしては、例えば、外部接続論理ボリュームと、TP(Thin Provisioning)-論理ボリュームと、スナップショット論理ボリュームとがあってよい。外部接続論理ボリュームは、ストレージシステムに接続されている外部のストレージシステムの記憶資源(例えば論理ボリューム)に基づいておりストレージ仮想化技術に従う論理ボリュームである。TP-論理ボリュームは、容量仮想化技術(典型的にはThin Provisioning)に従う論理ボリュームである。スナップショット論理ボリュームは、オリジナルの論理ボリュームのスナップショットとして提供される論理ボリュームである。ストレージシステムは、1以上のストレージ装置で構成されてよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別して説明する場合には、その要素の参照符号に代えて、その要素に割り振られた識別子(例えば番号及び符号のうちの少なくとも1つ)を使用することがある。
 本実施例では、1つのストレージ装置を有する計算機システムにおいて、SWAコマンドに基づく複数のデータを、ストレージ装置に書込む前の状態か又は書込んだ後の状態に統一するデータ書込み処理を説明する。
 図1は、実施例1に係る計算機システムの構成図である。
 実施例1に係る計算機システムは、サーバ1とストレージシステムとを有する。本実施例では、ストレージシステムはストレージ装置2を有するが、この構成に限定されない。サーバ1とストレージ装置2が、ネットワーク3によって接続されている。図では、ネットワーク3に接続されるサーバ1が2つであるが、1つであってもよいし3つ以上であってもよい。サーバ1は、例えば、メール等のサービスを提供する計算機であり、ワークステーション又はメインフレーム等から構成される。ストレージ装置2は、サーバ1によって提供されるサービスに必要なデータを格納する。
 サーバ1は、ストレージ装置2に対してデータアクセス用のコマンドを送信することで、ストレージ装置2に格納されたデータを読み書きする。データアクセス用のコマンドとしては、例えば、SCSI規格であるReadコマンド、Writeコマンド、SWAコマンド等がある。
 ネットワーク3は、サーバ1とストレージ装置2との間でコマンドやデータをやり取りするための通信路であり、例えば、SAN(Storage Area Network)等から構成される。
 ストレージ装置2は、コマンドに応じた処理を実行するストレージコントローラ4と、補助記憶装置としてのドライブ5を有する。
 ストレージコントローラ4は、サーバI/F(Interface)6と、プロセッサ7と、メインメモリ8と、キャッシュメモリ9と、ドライブI/F10とを有する。各部は、内部ネットワークによって相互に接続される。サーバI/F6は、サーバ1から送信されるコマンドを受信する。プロセッサ7及びメインメモリ8は演算資源である。プロセッサ7は、メインメモリ8に格納されたプログラムを実行することで、コマンドに応じた各種の処理を実行する。メインメモリ8には、例えば、データ書込みプログラム、ボリューム管理テーブル14、キャッシュ管理テーブル19、及び、一時領域管理テーブル22等が格納される。キャッシュメモリ9は、ドライブ5内のデータのキャッシュを格納する。ドライブI/F10は、ドライブ5とデータの送受信を行う。
 ドライブ5は、不揮発性の記憶装置であり、例えばSASディスク等のハードディスク装置又はSSD等の半導体メモリから構成される。データ冗長化による信頼性向上やドライブ5の並列動作による性能向上等を目的として、ストレージコントローラ4は複数ドライブ5の物理的な記憶領域から論理ボリューム11を構築し、サーバ1に提供する。
 なお、上記の通り、プロセッサ7がメインメモリ8内のプログラムを実行することで、コマンドに応じた各種の処理を実行するが、以降では、説明の簡単化のためにストレージ装置2を処理の主体として記載する。
 メインメモリ8に格納された各種のテーブルを、以下に説明する。
 図2は、ボリューム管理テーブル14の一例である。
 ボリューム管理テーブル14は、ドライブ5内の記憶領域と、ドライブ5に基づきサーバ1に提供される論理ボリューム11内の記憶領域とをアドレスにより対応づけるテーブルである。
 ボリューム管理テーブル14は、論理ボリューム11内の記憶領域毎のエントリを有する。各エントリは、当該論理ボリューム11の識別子であるボリュームID15、当該論理ボリューム11内の記憶領域のアドレス16、当該ボリュームID15及びアドレス16で示される論理ボリューム11内の記憶領域に対応するドライブ5内の記憶領域のドライブID17及び物理アドレス18を有する。具体的には、例えば、ボリュームID「0」及びアドレス「1024」で示される論理ボリューム11内の記憶領域は、ドライブID「1」及び物理アドレス「1234」で示されるドライブ5内の記憶領域に対応することを示している。
 図3は、キャッシュ管理テーブル19の一例である。
 キャッシュ管理テーブル19は、キャッシュメモリ9内の記憶領域と、論理ボリューム11内の記憶領域とをアドレスにより対応づけるテーブルである。あるエントリは、キャッシュメモリ9の記憶領域にデータが格納されるときに作成され、キャッシュメモリ9の記憶領域からデータが削除されるときに削除される。
 キャッシュ管理テーブル19は、論理ボリューム11内の記憶領域毎のエントリを有する。各エントリは、当該論理ボリューム11の識別子であるボリュームID22、当該論理ボリューム11内の記憶領域のアドレス23、当該ボリュームID15及びアドレス16で示される論理ボリューム11内の記憶領域に対応するキャッシュメモリ9内の記憶領域のキャッシュアドレス24と、当該論理ボリューム11の記憶領域の排他性を確保するか否かを示す排他フラグ25と、を有する。具体的には、例えば、ボリュームID「0」及びアドレス「1024」で示される論理ボリューム11内の記憶領域は、キャッシュアドレス「128」で示されるキャッシュメモリ9上の記憶領域に対応し、その排他フラグが「ON」であることを示している。
 図4は、一時領域管理テーブル30の一例である。
 一時領域管理テーブル30は、キャッシュメモリ9内に生成された一時領域12を管理するテーブルである。
 一時領域管理テーブル30は、一時領域12内の記憶領域毎のエントリを有する。各エントリは、当該記憶領域の識別子である一時領域アドレス31と、当該記憶領域に対応する論理ボリュームのボリュームID32及びアドレス33と、当該記憶領域内のデータに対応するコマンドの識別子であるコマンドID34と、を有する。具体的には、例えば、一時領域アドレス「1000」で示される一時領域12内の記憶領域は、コマンドID「1」によりボリュームID「0」及びアドレス「1024」を指定されたデータが格納されていることを示している。また、一時領域アドレス「1001」で示される一時領域12内の記憶領域にはデータが格納されていないことを示している。つまり、一時領域アドレス「1001」のエントリは、空きエントリである。
 図5は、実施例1のSWAコマンドによるデータ書込み処理の概要を説明する図である。
 上記の通り、ボリューム管理テーブル14、キャッシュ管理テーブル19において、論理ボリューム11上の記憶領域13a、キャッシュメモリ9上の記憶領域13b、及びドライブ5上の記憶領域13cが、関連づけられている。サーバ1は、各記憶領域13aを指定したライトコマンド又はリードコマンドをストレージ装置2に送信することで、記憶領域13cのデータを読み書きできる。また、ストレージ装置2は、これらのコマンドに基づく処理の際に、記憶領域13cに格納されるデータを、ドライブ5よりも高性能な記憶領域13bに一旦キャッシュすることで、入出力性能を向上させている。
 本実施例のストレージ装置2が、SWAコマンドを受信した場合のデータ書込み処理の概要を説明する。以降の説明においては、SWAコマンドに基づく2つの書込みの対象データが、論理ボリューム11の2つの記憶領域13a、13aに格納されているデータを更新するためのデータである場合を説明する。しかし、SWAコマンドに基づくデータは、2つに限られないし、また、論理ボリューム11の記憶領域に新しく格納されるデータであってもよい。
 SWAコマンドは、パラメータリストにより指定された複数の対象データの書込みを指示するコマンドである。パラメータリストには、互いに依存関係のある複数の対象データの各データについて、データ長、書込み先となる論理ボリュームのボリュームID、及び、論理ボリューム内の記憶領域の先頭アドレスが記載されている。例えば、本発明を適用しないストレージ装置がサーバからSWAコマンドを受信した場合、複数のWriteコマンドを受信した場合と同じ動作を行うこととなると想定される。本発明を適用しないストレージ装置はSWAコマンドに応じた機能を有していないためである。つまり、このストレージ装置は、パラメータリストに基づき、各データについて、サーバから受信したデータのドライブへの書込み処理を繰り返すこととなる。この場合、以下(A)、(B)のいずれかの問題がデータの書込み処理の間に発生すると、SWAコマンドに基づく全てのデータの書込み先の記憶領域内の状態を、それらのデータの書込み前の状態又は書込み後の状態に揃えることができない。
(A)書込み先の記憶領域に対して、他のコマンドに基づくデータ読み書きが発生した。
(B)SWAコマンドに基づく複数のデータを受信するときに、その一部のデータの受信に失敗した。
 (A)の一例として、SWAコマンドで指定された論理ボリューム内の対象の記憶領域に対するデータの書込み又は読み出しが、そのSWAコマンドに基づく書込み処理の実行中に受信した他のコマンドでも指定されている場合が想定される。この場合、例えば、他のコマンドがリードコマンドの場合、そのSWAコマンドに基づく書込み前のデータ及び書込み後のデータの両方のデータが、対象の記憶領域から取得されてしまう可能性がある。本実施例のストレージ装置2は、SWAコマンドに基づく全てのデータの書込み先の記憶領域内の状態を、書込み前の状態又は書込み後の状態に揃える。
 本実施例のストレージ装置2は、サーバ1が、論理ボリューム11内の2つの記憶領域13aを示す複数のアドレスを指定したSWAコマンドをストレージ装置2に送信した場合、一度のコマンド送信により記憶領域13cのデータを読み書きできる。
 さらに、キャッシュメモリ9に一時領域12を設けており、ストレージ装置2は、SWAコマンドを受信した場合に、一時領域12内の2つの記憶領域13dを確保し、論理ボリューム11内の記憶領域13aに対応づける。ストレージ装置2は、SWAコマンドに基づくデータ書込み処理において、SWAコマンドに基づく複数のデータを、一旦一時領域12内の記憶領域13dに格納する。
 ストレージ装置2は、サーバ1から、論理ボリューム11上の各記憶領域13aを示すアドレスを指定したSWAコマンドを受信する(1)。このとき、ストレージ装置2aは、SWAコマンドの他のコマンドに対する記憶領域13aの排他を確保する。これは、例えば、SWAコマンドの実行中に、そのSWAコマンドに基づく複数の書込み先の論理ボリューム11の記憶領域13aに対して、他のコマンドからのアクセスを排除するという意味である。
 そして、ストレージ装置2は、これらのアドレスにより指定された記憶領域13a毎に、サーバ1に対して書込みの対象となる対象データの送信を要求する。
 ストレージ装置2aは、SWAコマンドに基づく対象データのデータ受信処理を行う(2)。具体的には、例えば、ストレージ装置2は、対象データをサーバI/F6のバッファを介して、一時領域12内の記憶領域13dに格納する。
 ストレージ装置2aは、一時領域12内の記憶領域13dに、対象データが全て格納された場合、データ確定処理を行う。具体的には、例えば、ストレージ装置2は、SWAコマンドに基づく記憶領域13aの排他を解除し、一時領域12内の記憶領域13dの全ての対象データを記憶領域13bにコピーする(3)。その後、適切なタイミングで、ストレージ装置2は、記憶領域13dの対象データを、ドライブ5の記憶領域13cに格納する。
 上記処理により、SWAコマンドが指定した複数の対象データは、論理ボリューム11内の記憶領域13aに対応するキャッシュメモリ9の記憶領域13bとは別の一時領域12の記憶領域13dに全て格納される。全ての対象データが、一時領域12の記憶領域13dに格納された場合には、キャッシュメモリ9の記憶領域13bの更新前のデータを、対象データにより更新する。全ての対象データが、一時領域12の記憶領域13dに格納されなかった場合には、それらの対象データによりキャッシュメモリ9の記憶領域13bのデータを更新しない。これにより、これら複数の対象データ全てが、書込まれるか、書込まれないかのいずれかの状態を維持できる。つまり、SWAコマンドに基づく全てのデータの整合性を維持できる。加えて、SWAコマンドの実行中においては、そのSWAコマンドで指定された記憶領域の排他が確保される。排他が確保されている間は、そのSWAコマンドが指定する論理ボリュームの記憶領域(対象記憶領域)に対して、データの読み書きができなくなる。このため、SWAコマンドの実行中であっても、SWAコマンドに基づく全てのデータの整合性を維持できる。
 図6は、実施例1のSWAコマンドに基づくデータ書込み処理のフローチャートである。
 データ書込み処理は、ストレージ装置2がサーバ1からSWAコマンドを受信したことを契機に実行される。なお、この処理は、メインメモリ8に格納されたデータ書込みプログラムをプロセッサ7が実行することによって行われる。
 ストレージ装置2は、受信したSWAコマンドのコマンド解析を行う(S1)。具体的には、例えば、ストレージ装置2は、SWAコマンドと共に受信したパラメータリストに基づき、SWAコマンドで指定された複数の対象データについて、書込み先となる論理ボリューム11の記憶領域13aを示す複数のアドレス(ボリュームID及びアドレス)を特定する。このとき、ストレージ装置2は、他のコマンドを識別するために、送信されたSWAコマンドにコマンドIDを付す。なお、この説明において、特定されたボリュームID及びアドレスを書込み先アドレスといい、そのアドレスが示す記憶領域を書込み先の記憶領域という。
 ストレージ装置2は、SWAコマンドで指定された記憶領域13aの排他を確保する(S2)。具体的には、例えば、ストレージ装置2は、パラメータリストに基づき特定された書込み先の記憶領域13aについて、キャッシュ管理テーブル19を昇順に参照し、その排他フラグ25をチェックする。例えば、書込み先の記憶領域13aついて、排他フラグ25が「OFF」の場合、ストレージ装置2は、そのエントリの排他フラグ25に「ON」を設定して排他を確保する。一方、書込み先の記憶領域13aについて、排他フラグ25が「ON」の場合、他のコマンドにより記憶領域13aの排他が確保されていることを意味するので、記憶領域13aに対応する記憶領域13b及び13d内のデータの読み書きはできない。このため、ストレージ装置2は、その排他フラグ21が「OFF」になるのを待つ。つまり、排他フラグ25が「ON」の場合、ストレージ装置2は、実行中のSWAコマンドによるデータ書込み処理以外の、他のコマンドによる処理を待機させる。なお、ストレージ装置2が排他フラグを参照する順番は、ストレージ装置2内で統一されていれば良く、昇順に限定されない。例えば、降順でも良い。
 ストレージ装置2は、データ受信処理を行う(S3)。データ受信処理については、後に詳述する。
 ストレージ装置2は、データ確定処理を行う(S4)。データ確定処理については、後に詳述する。
 ストレージ装置2は、SWAコマンドで指定された記憶領域13aの排他を解除する(S5)。具体的には、例えば、ストレージ装置2は、書込み先の記憶領域13aについて、キャッシュ管理テーブル19の排他フラグ25を「OFF」に設定する。
 ストレージ装置2は、SWAコマンドに対する応答をサーバ1に送信し、処理を終了する(S6)。具体的には、例えば、この応答は、SWAコマンドに基づく複数の対象データの書込み処理が成功したか(成功応答)、又は失敗したか(失敗応答)のいずれかの応答である。書込み処理が成功した場合、書込み先の記憶領域13aに対応するキャッシュメモリ9内の記憶領域13bのデータが対象データにより更新される。従って、記憶領域13bに対応するドライブ5内の記憶領域13c内のデータも対象データにより更新されることとなる。一方、書込み処理が失敗した場合、一時領域12内の記憶領域13dの対象データは、キャッシュメモリ9内の記憶領域13bにコピーされない。つまり対象データにより更新されない。つまり、書込先の記憶領域13aは、SWAコマンドに基づく対象データの書込前の状態に維持される。
 上記処理により、SWAコマンドで指定された記憶領域の排他を確保することにより、他のコマンドにおけるデータの書込み及び読出しを禁止することで、SWAコマンドの実行中、SWAコマンドで指定された全ての書込先記憶領域内のデータの整合性を維持できる。加えて、他のコマンドの影響を受けずに、SWAコマンドに基づく対象データのデータ書込み処理を行うことができる。
 また、上記処理においては、SWAコマンドに基づくデータの書込み処理を、データ受信処理とデータ確定処理に分離している。このため、ストレージ装置2は、図6のデータ受信処理(S3)にて対象データを全て受信できた場合にのみ、データ確定処理(S4)にて対象データを、キャッシュメモリ9上の記憶領域13bに格納することとなる。これにより、SWAコマンドに基づく複数のデータの全てが、ドライブ5に書込まれるか、書込まれないかのいずれかの状態にすることができる。
 図7は、データ受信処理のフローチャートである。
 データ受信処理は、データ書込み処理のS3の処理である。
 ストレージ装置2は、キャッシュメモリ9の一時領域12に、SWAコマンドに基づく複数の対象データを格納する記憶領域13dを確保する(S7)。具体的には、例えば、ストレージ装置2は、一時領域管理テーブル22を参照し、一時領域アドレス31が何も対応づいていないエントリ(空きエントリ)があれば、その空きエントリに、書込み先のアドレスであるボリュームID32とアドレス33、及び、S1のコマンド解析においてSWAコマンドに付与されたコマンドID34を書込む。
 ストレージ装置2は、パラメータリストを参照し、サーバ1に対して、SWAコマンドに基づく複数の対象データのうちの1つの対象データの送信を要求する(S8)。要求に応じて、サーバ1から対象データが送信された場合、ストレージ装置2のサーバI/F6が、サーバ1から対象データを受信し、その対象データを自身のバッファに格納する。
 ストレージ装置2は、サーバI/F6のバッファへの対象データの受信が成功したか否かを判定する。失敗した場合(S9;No)、ストレージ装置1は、プログラム上の変数「更新可否」(以下、更新可否情報という)に“データ巻戻し”を設定(S13)し、処理を終了する。
 成功した場合(S9;Yes)、ストレージ装置2は、一時領域管理テーブル22を参照し、S7で確保したエントリの一時領域12内の記憶領域13d、13dに、受信データを書込む(S10)。具体的には、例えば、ストレージ装置2は、サーバI/F6のバッファ内の対象データを取得し、一時領域12の記憶領域13d、13dに対象データを格納する。
 ストレージ装置2は、パラメータリストを参照し、SWAコマンドに基づく複数の対象データのうち、未だ受信していない対象データがあるか否かを判定する(S11)。未受信の対象データが有る場合(S11;Yes)、ストレージ装置2は、S7に処理を戻す。未受信の対象データが無い場合(S11;No)、ストレージ装置2は、更新可否情報に“データ書込み”を設定し(S12)、処理を終了する。
 上記処理により、サーバI/F6のバッファに受信した対象データを、一旦、一時領域12に格納できる。SWAコマンドに基づく複数の対象データを全て一時領域12に格納できた場合と、できなかった場合とを更新可否情報により識別する事ができる。
 図8は、データ確定処理のフローチャートである。
 データ確定処理は、データ書込み処理のS4の処理である。
 ストレージ装置2は、更新可否情報に”データ書込み”が設定されているか否かを判定する(S14)。更新可否情報に”データ書込み“が設定されていない場合(S14;No)、ストレージ装置2は、S16に処理を進める。
 一方、更新可否情報に“データ書込み”が設定されている場合(S14;Yes)、ストレージ装置2は、一時領域管理テーブル22及びキャッシュ管理テーブル19を参照し、SWAコマンドに付与されたコマンドID34と合致する全てのエントリについて一時領域アドレス31が示す記憶領域13d内の対象データを、ボリュームID32(22)とアドレス33(23)に対応するキャッシュアドレス24が示す記憶領域13bにコピーする(S15)。なおその後、ストレージ装置2は、例えばデステージにより、キャッシュ管理テーブル19及びボリューム管理テーブル14を参照し、記憶領域13bに格納された対象データをドライブ5上の記憶領域13dに格納する。
 なお、キャッシュアドレス24が無効な値の場合、ストレージ装置2は、一時領域アドレス31が示す記憶領域13dd内の対象データをコピーする前に、キャッシュメモリ9上の未使用の記憶領域を確保する。そして、確保した記憶領域のアドレスをキャッシュ管理テーブル19のキャッシュアドレス24に設定する。そして、キャッシュ管理テーブル19のボリュームID22(15)とアドレス23(16)が合致するボリューム管理テーブル14のエントリを特定し、特定したエントリのドライブID17と物理アドレス18が示すドライブ5の記憶領域13c、13cに格納されている対象データの更新前のデータを、確保したキャッシュメモリ9の記憶領域に読み出す。
 ストレージ装置2は、一時領域管理テーブル22を参照し、SWAコマンドに付与されたコマンドIDに合致する全てのエントリを、ボリュームID15とアドレス16とコマンドID24を初期化することで空きエントリとし、一時領域12内の記憶領域13dを解放して(S16)、処理を終了する。
 上記処理により、SWAコマンドに基づく複数の対象データ全てが、ドライブ5上の記憶領域13cに書込まれるか、書込まれないかのいずれかの状態を維持できる。
 以上、SWAコマンドに基づくデータ書込み処理の一方式を説明した。しかしながら、SWAコマンドに基づくデータ書込み処理は、データ受信処理(S3)とデータ確定処理(S4)とを分離した方式であれば、上記で説明した方式には限定されることなく、いずれの方式であっても良い。以下にSWAコマンドに基づくデータ書込み処理の変形例を説明する。
 図9は、SWAコマンドに基づくデータ書込処理の第1の変形例の概要を説明する図である。
 第1の変形例は、キャッシュメモリ9上の記憶領域13bに格納された対象データの更新前のデータを、一時領域12内の記憶領域13dに予め退避させる方式である。以下、この方式におけるデータ書込み処理を説明する。なお、この変形例は、データ書込み処理のうち、データ受信処理(S3)及びデータ確定処理(S4)の一部を変更している。変更している部分以外の部分については、説明を省略する場合がある。
 まず、第1の変形例のデータ受信処理(S3)を説明する。ストレージ装置2は、S7で、キャッシュメモリ9の一時領域12に記憶領域13dを確保する。そして、ストレージ装置2は、パラメータリスト及びキャッシュ管理テーブル19を参照し、SWAコマンドに基づく複数の対象データの書込み先の記憶領域13aに対応するキャッシュメモリ9の記憶領域13bに格納されている対象データの更新前のデータを、確保した記憶領域13dにコピーする(2)。このとき、ストレージ装置2は、SWAコマンドで指定された記憶領域の排他は確保しない。具体的には、例えば、ストレージ装置2は、キャッシュ管理テーブル19において、書込み先の記憶領域13aに対応する排他フラグ25を、「OFF」にしておく。なお、一時領域管理テーブル30において、記憶領域13dの一時領域アドレス31に排他を確保する旨のフラグを設定してもよい。
 S10で、ストレージ装置2は、SWAコマンドに基づく複数の対象データをキャッシュメモリ9上の記憶領域13bに書込む。その後の処理(S11、S12、S13)は、上述の通りである。
 次に、第1の変形例のデータ確定処理(S4)を説明する。S14において、更新可否情報に“データ書込み”が設定されている場合(S14;Yes)、キャッシュメモリ9上の記憶領域13bは、複数の対象データの全てが書込まれた状態であるため、ストレージ装置2は、S15を省略し、S16に処理を進める。
 一方、S14において、更新可否情報に”データ書込み“が設定されていない場合(S14;No)、キャッシュメモリ9上の記憶領域13bには、複数の対象データのうちの少なくとも1つの対象データが書込まれていない可能性がある。このため、ストレージ装置2は、一時領域12内の記憶領域13dに格納されている複数の対象データの更新前のデータを、全て、キャッシュメモリ9上の記憶領域13bにコピーする。一時領域12上の記憶領域13dに一時的に退避させている更新前のデータを、もとの記憶領域13bに戻すことができる。
 なお、一時領域管理テーブル30において、一時領域12上の記憶領域13dの排他が確保されている場合、ストレージ装置2は、S16でその排他を解放してよい。
 上記処理により、データ受信処理(S3)にて、対象データが全てキャッシュメモリ9上の記憶領域13bに格納された場合にのみ、対象データを確定できる。また、データ受信処理にて(S3)にて少なくとも1つの対象データの受信に失敗した場合、一時領域12上の記憶領域13dのデータをキャッシュメモリ9上の記憶領域13bにコピーすることで、全ての対象データを、SWAコマンドに基づくデータの書込み前の状態に戻す事ができる。本実施例では、一時領域12を介さずに直接データをキャッシュメモリ9の記憶領域13bに書込むことができる。このため、SWAコマンドに基づく全てのデータのデータ受信処理に成功した場合に、効率がよい。
 図10は、SWAコマンドに基づくデータ書込み処理の第2の変形例の概要を説明する図である。
 第2の変形例は、論理ボリューム11上の記憶領域13aに対応するキャッシュメモリ9上の記憶領域13bに代えて、記憶領域13bとは別の記憶領域13eをキャッシュメモリ9上に動的に確保し、確保した記憶領域13eを論理ボリューム11上の記憶領域13aに対応づける方式である。以下、この方式におけるデータ書込み処理を説明する。なお、第2の変形例は、データ書込み処理のうち、データ受信処理(S3)及びデータ確定処理(S4)の一部を変更している。変更している部分以外の部分については、説明を省略している場合がある。
 まず、第2の変形例のデータ受信処理(S3)を説明する。ストレージ装置2は、S7で、キャッシュメモリ9の一時領域12内の記憶領域13dに代えて、論理ボリューム11の記憶領域13aに対応するキャッシュメモリ9の記憶領域13b(キャッシュ管理テーブル19参照)とは別のキャッシュメモリ9上に記憶領域13eを確保する。
 ストレージ装置2は、パラメータリストを参照し、SWAコマンドに基づく複数の対象データを、確保した記憶領域13eに格納する(2)。
 このとき、ストレージ装置2は、キャッシュ管理テーブル19に、SWAコマンドで指定された書込み先のアドレスに対応するエントリを追加する。そして、ストレージ装置2は、追加したエントリのキャッシュアドレス24の欄に、記憶領域13eのアドレスを追加する。これにより、キャッシュ管理テーブル19において、SWAコマンドで指定された1つの書込み先のアドレスに対して、キャッシュメモリ9上の記憶領域13bと、記憶領域13eとの2つのエントリが存在することとなる。そして、SWAコマンドに基づく書込み先の記憶領域13aを示すアドレスに対応する2つのエントリについて、記憶領域13bのキャッシュアドレス24には排他フラグ「ON」が設定されており(S2参照)、記憶領域13eのキャッシュアドレス24には排他フラグ「OFF」が設定されていることとなる。
 S10で、ストレージ装置2は、SWAコマンドに基づく複数の対象データをキャッシュメモリ9上の記憶領域13e、13eに書込む。その後の処理(S11、S12、S13)は、上述の通りである。
 次に、第2の変形例のデータ確定処理(S4)を説明する。S15で、ストレージ装置2は、キャッシュ管理テーブル19の書込み先の記憶領域13aに対応するアドレスに対応する2つのエントリのうち、キャッシュアドレス24が記憶領域13eのエントリのキャッシュアドレスを、記憶領域13bのアドレスに書き換える。具体的には、例えば、ストレージ装置2は、SWAコマンドに基づく書込み先のアドレスに対応する2つのエントリのうち、記憶領域13eを示すキャッシュアドレス24を、記憶領域13bに書き換える。そして、S16にて、ストレージ装置2は、S7で追加したエントリ、つまりキャッシュアドレス24に記憶領域13bが記載されており、排他フラグに「OFF」が設定されているエントリを削除する。
 上記処理により、データ受信処理(S3)にて対象データの全てがキャッシュメモリ9上の記憶領域13eに格納された場合にのみ、対象データを確定できる。このとき、対象データを確定する場合は、対象データが格納されている記憶領域のアドレスを、対象データの更新前のデータが格納されている記憶領域のアドレスに変更すればよい。このため、対象データを他の記憶領域にコピーする必要がない。また、データ受信処理にて(S3)にて少なくとも1つの対象データの受信に失敗した場合には、対象データの更新前のデータが格納されている記憶領域13bのアドレスを変更せずに、そのまま使用すればよい。いずれの場合においても、対象データをキャッシュメモリ9の他の領域にコピーすることが無く、処理効率がよい。
 図11は、実施例1の計算機システムのシステム構成の第1の変形例を示す図である。
 第1の変形例における計算機システムは、サーバ1とストレージシステムとを有する。そして、ストレージシステムが、ストレージ装置2に代えて、ストレージ装置2xを有する。ストレージ装置2xは、ストレージコントローラ4xの内部に不揮発性のメモリを有する点でストレージ装置2と異なる。不揮発性のメモリとして、具体的には、不揮発性の半導体メモリの一例としてフラッシュメモリ30等が想定される。しかし、その他の不揮発性のメモリであってもよい。その他の構成は、ストレージ装置2と同様である。
 フラッシュメモリ30は、キャッシュメモリ9に使用される揮発性メモリよりも低速かつ大容量の不揮発性の半導体メモリである。ストレージ装置2xは、ストレージコントローラ4x内部にフラッシュメモリ30を備えたことにより、キャッシュメモリ9とドライブ5の間に、新たなキャッシュ階層を設けることができる。本実施例のデータ書込み処理は、このストレージ装置2xにおいても有効である。例えば、本実施例では、キャッシュメモリ9上の記憶領域へのデータ書込み処理を説明しており、一時領域12もキャッシュメモリ9上に生成される事としている。しかし、書込み先の記憶領域にそれぞれ対応する、キャッシュメモリ9上の記憶領域及び一時領域12上の記憶領域がフラッシュメモリ30上に生成されたとしても、本実施例のデータ書込み処理に影響を及ぼすものではない。なお、書込み先の記憶領域にそれぞれ対応する、キャッシュメモリ9上の記憶領域及び一時領域12上の記憶領域がドライブ5上に生成されたとしても、本実施例のデータ書込み処理に影響を及ぼすものではない。
 図12は、実施例1の計算機システムのシステム構成の第2の変形例を示す図である。
 第2の変形例における計算機システムは、サーバ1とストレージシステムを有する。ストレージシステムが、ストレージコントローラ4yとドライブ管理装置32とを有する。ストレージコントローラ4yとドライブ管理装置32とは別個の装置である。ドライブ管理装置32は、ストレージコントローラ4yと通信を行うためのドライブI/F10Yを有する。ドライブI/F10Yに、複数のドライブ5が接続されている。ストレージコントローラ4yは、ドライブ管理装置32と通信を行うために、ドライブI/F10Yと接続されるドライブ装置I/F31を有する。この計算機システム(ストレージシステム)の構成であっても、本実施例のデータ書込み処理に影響を及ぼすものではない。
 以下の実施例においては、正ストレージ装置及び副ストレージ装置を有し、リモートコピー機能を備えたストレージシステムを説明する。リモートコピー機能は、正ストレージ装置内のデータを遠隔地に配置した副ストレージ装置に同期又は非同期にコピーする機能である。これにより、一方のストレージ装置に障害が発生しても、他方のストレージ装置によってデータへのアクセスを継続することを可能とする。
 正ストレージ装置及び副ストレージ装置を有し本発明を適用しないストレージシステムは、リモートコピーにおいて、副ストレージ装置は、正ストレージ装置内の書込みがあった複数のデータについて、個別に最新データの受信と自装置への書込みを行っている。このため、リモートコピーのときに障害が発生すると、SWAコマンドのパラメータリストによって指定された複数のデータについて、書込み前又は書込み後のいずれかの状態を維持すること、つまり、複数のデータの整合性を維持することが保証できないという問題がある。
 本実施例では、複数のストレージ装置の間で同期リモートコピーを構成する場合において、複数のデータを書込み前又は書込み後に統一するために実行するデータ書込み処理を説明する。
 図13は、実施例2に係る計算機システムにおけるデータ書込み処理の概要を説明する図である。
 まず、実施例2に係る計算機システムの構成を説明する。計算機システムは、サーバ1とストレージシステムを有する。本実施例では、ストレージシステムは、2つのストレージ装置2a、2bを有する。ストレージ装置2a、2bの構成は、それぞれ、実施例1で説明したストレージ装置2、2x、又は、ストレージコントローラ4y及びドライブ管理装置32との組み合わせの構成と同様であるとする(図1、11、12等参照)。サーバ1とストレージ装置2a、2bとが、それぞれネットワーク3aによって接続されている。また、ストレージ装置2aと2bは、ネットワーク3bによって相互に接続されている。本実施例では、サーバ1が利用するネットワーク3aに対してストレージ装置2a、2b間の通信が悪影響を与えないように、ネットワーク3aとは別のネットワーク3bを設けているが、ネットワーク3aと3bが同一であっても良い。なお、以下の説明においては、ストレージ装置2aを正ストレージ装置2aといい、ストレージ装置2bを副ストレージ装置2bという。また、正ストレージ装置2aがサーバ1に提供する論理ボリュームを、正ボリューム11aといい、副ストレージ装置2bがサーバ1に提供する論理ボリュームを、副ボリューム11bという。
 本実施例のストレージシステムは、通常時において正ストレージ装置2aのみが稼働するアクティブ-スタンバイ型のストレージシステムである。そして、これは、正ボリューム11aと副ボリューム11bが同期リモートコピーペアを形成するストレージシステムである。従って、サーバ1は、正ストレージ装置2aの正ボリューム11aを使用できる場合に正ボリューム11aのみにアクセスコマンドを送信し、正ボリューム11aを使用できない場合に限り、副ストレージ装置2bの副ボリューム11bにアクセスコマンドを送信する。
 まず、正ストレージ装置2aが、サーバ1からWriteコマンドに基づくライトデータを受信した場合を説明する。この場合、正ストレージ装置2aは、正ボリューム11aにライトデータを書込むとともに、そのライトデータを、正ボリューム11aとリモートコピーペアを形成する副ボリューム11bにおいて正ボリューム11aと同じアドレスに書込むことを指示するWriteコマンドを、ストレージ装置2bに転送する。
 ストレージ装置2bは、Writeコマンド及びライトデータを受信し、そのWriteコマンドに基づき副ボリューム11bにライトデータを書込み、ストレージ装置2aに対して書込み完了の応答を送信する。ストレージ装置2aは、書込み完了の応答を受信した後、つまり、正ボリューム11aと副ボリューム11bの両方にライトデータの書込みが完了した後、サーバ1にデータ書込み処理の完了を応答する。
 上記により、正ボリューム11aと副ボリューム11bのデータは、同期される。このため、ストレージ装置2aが障害等により使用不能となった場合でも、ストレージ装置2bの副ボリューム11bのデータを用いてサーバ1からのアクセスを継続できる。
 また、本実施例のストレージシステムは、サーバ1から正ストレージ装置2aに対してSWAコマンドに基づく複数のデータの書込み指示があった場合、正ストレージ装置2aが、正ボリューム11aへのSWAコマンドに基づくデータ書込み処理を行う。そして、正ストレージ装置2aが、副ストレージ装置2bに対してSWAコマンドを転送する。これにより、副ストレージ装置2bが、副ボリューム11bへのSWAコマンドに基づくデータ書込み処理を行う。
 このため、本実施例のストレージシステムにおいては、正ストレージ装置2aのメインメモリ8に記憶されるプログラム及びテーブルと同様のプログラム及びテーブルが、副ストレージ装置2bのメインメモリ8にも記憶される。そして、各テーブル14、19、30においては、リモートコピーペアを形成する2つの論理ボリューム及び記憶領域について、同一のボリュームID及びアドレスが付与されるとするが、これに限られない。リモートコピーペアを形成する2つの論理ボリューム及び記憶領域について、何らかの対応づけがされていればよい。
 以下、図13及び14を用いて、実施例2のSWAコマンドによるデータ書込み処理の概要を説明する。図13は、実施例2のSWAコマンドによるデータ書込み処理の概要を説明する図である。図14は、実施例2のデータ書込み処理のフローチャートである。
 この説明においては、実施例1との差異を主に説明し、異なる部分については説明を省略する場合がある。なお、以降の説明においては、SWAコマンドに基づく複数の対象データが、論理ボリューム11内の記憶領域に格納されているデータを更新するためのデータである場合を説明するが、これに限られず新規のデータであってもよい。
 データ書込み処理は、正ストレージ装置2aがサーバ1からSWAコマンドを受信したことを契機に実行される。なお、この処理は、正ストレージ装置2aのプロセッサ7が、自身のメインメモリ8に格納されたデータ書込みプログラムを実行し、かつ、副ストレージ装置2bのプロセッサ7が、自身のメインメモリ8に格納されたデータ書込みプログラムを実行することによって行われる。なお、実施例1と同じステップについては、同じ参照番号を付与している。
 正ストレージ装置2aは、サーバ1から、正ボリューム11a上の2つの記憶領域を示すアドレスを指定したSWAコマンドを受信し、受信したSWAコマンドのコマンド解析を行う(S1)(図13(1))。
 正ストレージ装置2aは、SWAコマンドで指定された記憶領域の排他を確保する(S2)(図13(2))。具体的には、例えば、キャッシュ管理テーブル19において、正ボリュームの書込み先の記憶領域に対応する排他フラグを「ON」に設定する。
 正ストレージ装置2aは、SWAコマンドを副ストレージ装置2bに転送する(S17)(図13(3))。SWAコマンドでは、正ボリューム11aの記憶領域に対応する副ボリューム11bの記憶領域を示すアドレスが指定される。
 正ストレージ装置2aは、データ受信処理を行う(S3)(図13(4))。データ受信処理は、図7で説明したとおりである。そして、正ストレージ装置2aは、データ受信処理が成功か否かを判定する(S18)。成功の場合、更新可否情報には、”データ書込み”が設定されている。失敗の場合、更新可否情報には、”データ巻き戻し”が設定されている。失敗の場合(S18;No)、正ストレージ装置2aは、S4に処理を進める。一方、成功の場合(S18;Yes)、正ストレージ装置2aは、副ストレージ装置2bからのコマンド転送に対する応答を待つ(S19)。
 副ストレージ装置2bは、正ストレージ装置2aからSWAコマンドを受信し、受信したSWAコマンドのコマンド解析を行う(S1a)。具体的には、例えば、副ストレージ装置2bは、SWAコマンドと共に受信したパラメータリストに基づき、SWAコマンドで指定された複数の対象データについて、副ボリューム11bの書込み先の記憶領域を示す書込み先のアドレス(ボリュームID及びアドレス)を特定する。このとき、副ストレージ装置2bは、他のコマンドを識別するために、送信されたSWAコマンドにコマンドIDを付す。そして、副ストレージ装置2bは、SWAコマンドに基づく副ボリューム11bの記憶領域毎に、正ストレージ装置2aに対して書込みの対象となる対象データの送信を要求する。
 副ストレージ装置2bは、データ受信処理を行う(S3b)(図13(5))。本実施例において、副ストレージ装置2bが行うデータ受信処理は、以下である。例えば、副ストレージ装置2bは、要求に応じた対象データをサーバI/F6のバッファを介して受信し、キャッシュメモリ9の記憶領域に格納する。これは、本実施例のストレージシステムが、アクティブ-スタンバイ型のストレージシステムであるため、正ストレージ装置2aに障害が発生するまでは、直接副ストレージ装置2bにアクセスが行われないためである。
 副ストレージ装置2bは、正ストレージ装置2aに対して、コマンド転送に対する応答を行う(S22)。副ストレージ装置2bは、SWAコマンドに基づくすべての対象データを受信した場合、成功応答を行い(図13(6))、SWAコマンドに基づく全ての対象データを受信できなかった場合、失敗応答を行う。例えば、副ストレージ装置2bは、キャッシュメモリ9の記憶領域に、SWAコマンドに基づく複数の対象データが全て格納された場合に成功応答を行う。この場合、副ストレージ装置2bは、正ストレージ装置2aからのデータ確定指示を待つ(S23)。
 正ストレージ装置2aは、コマンド転送が成功したか、つまり、受信した応答が成功応答であったか否かを判定する(S20)。コマンド転送が成功した場合(S20;Yes)、正ストレージ装置2aは、S4に処理を進める。この場合、正ストレージ装置2a及び副ストレージ装置2bのそれぞれが、データ受信処理に成功していることを意味しており、更新可否情報には、“データ書込み”が設定されている。一方、コマンド転送が成功しなかった場合(S20;No)、正ストレージ装置2a又は副ストレージ装置2bのいずれか又は両方のデータ受信処理が失敗したことを意味する。このため、正ストレージ装置2aは、更新可否情報に”データ巻き戻し“を改めて設定し(S13a)、S4に処理を進める。
 正ストレージ装置2aは、データ確定処理を行う(S4)(図13(7))。データ確定処理は、図8で説明したとおりである。
 正ストレージ装置2aは、副ストレージ装置2bに対してデータ確定処理の指示を送信する(S21)(図13(8))。そして、正ストレージ装置2aは、SWAコマンドで指定された記憶領域の排他を解除する(S5)(図13(9))。具体的には、例えば、正ストレージ装置2aは、正ボリューム11aの書込み先の記憶領域について、キャッシュ管理テーブル19の排他フラグ25を「OFF」に設定する。
 正ストレージ装置2aは、SWAコマンドに対する応答をサーバ1に送信し(S6)、処理を終了する。ここの応答について、正ストレージ装置2aは、全ての処理に成功した場合、成功応答を行い(図13(10))、いずれかの処理が失敗した場合、処理失敗の応答を行う。
 副ストレージ装置2bは、S21のデータ確定指示を受信し、データ確定処理を行い(図13(11))、処理を終了する。具体的には、例えば、副ストレージ装置2bは、SWAコマンドで指定された記憶領域の排他を解除し、キャッシュメモリ9の記憶領域に一時領域12内の記憶領域の全ての対象データをコピーする。
 上記処理により、サーバ1からのアクセスのある正ストレージ装置2aがSWAコマンドで指定された記憶領域の排他を確保することにより、サーバ1からの他のコマンドによる当該記憶領域の書込み及び読出しを禁止することで、SWAコマンドの実行中、SWAコマンドで指定された全ての書込先記憶領域内のデータの整合性を維持できる。加えて、他のコマンドの影響を受けずに、SWAコマンドに基づく対象データのデータ書込み処理を行うことができる。
 上述の通り、本実施例のストレージシステムは、通常時において正ストレージ装置2aのみが稼働するアクティブ-スタンバイ型のストレージシステムであって、正ボリューム11aと副ボリューム11bが同期リモートコピーペアを形成するストレージシステムである。このストレージシステムにおいて、正ストレージ装置2aが、サーバ1からSWAコマンドを受信した場合に、SWAコマンドに基づく複数の対象データ全てが、各ストレージ装置2a、2bのドライブ5に書込まれるか、書込まれないかのいずれかの状態にすることができる。具体的には、正ストレージ装置2aのデータ受信処理及び副ストレージ装置2bのデータ受信処理がともに成功した場合に、正ストレージ装置2a及び副ストレージ2bのデータ確定処理を行っている。この場合、SWAコマンドに基づく複数の対象データは、ストレージ装置2a、2bの両方のドライブ5に書込まれることとなる。一方、ストレージ装置2a、2bのいずれか一方のデータ受信処理が失敗した場合、データの巻き戻しにより、SWAコマンドに基づく複数の対象データは、ストレージ装置2a、2bの両方のドライブ5に書込まれない。
 本発明を適用しないストレージシステムにおいては、サーバが正ストレージ装置に対して、SWAコマンドに基づくデータ書込み処理を行う場合、以下の問題が生じる。この場合、例えば、正ボリュームと副ボリュームとの同期をとるために、正ストレージ装置が従来のリモートコピー処理を用いて、副ストレージ装置に対して複数のWriteコマンドを送信しなければならない。このため、副ストレージ装置が副ボリュームに対象データを書込む場合、障害によってストレージ装置が一部のWriteコマンドの受信に失敗すると、以下のようにデータの書込み状態を揃えることができない。
 (C)副ボリューム11b内の複数の書込み先記憶領域のそれぞれにおいて対象データの書込み状態が異なる。
 (D)正ボリューム11aと副ボリューム11bとで、同じアドレスを示す書込み先記憶領域の対象データの書込み状態が異なる。
 本実施例のストレージシステムでは、リモートコピーにおいても、正ストレージ装置2aと副ストレージ装置2bとの間でSWAコマンドを使用することで、副ストレージ装置2bにおけるデータ書込み処理をデータ受信処理とデータ確定処理に分離することにより、前記(C)を防ぐことができる。
 また、各ストレージ装置2a、2bが、それぞれデータ受信処理を行うことにより、SWAコマンドに基づく全てのデータの受信が成功したか失敗したかを、更新可否情報によりそれぞれ判定している。このため、正ボリューム11aと副ボリューム11bとの間のデータの書込み状態を揃えることができ、前記(D)を防ぐことができる。
 なお、正ストレージ装置2aは、S17、S19、S21において、ストレージ装置2bと通信できない場合、副ボリューム11bのデータを保証できないと判断して副ボリューム11bを切り離して正ボリューム11aのみで入出力処理を継続してもよい。
 また、副ストレージ装置2bは、S22、S23において、正ストレージ装置2aと通信できない場合、更新可否情報にデータ巻戻しを設定してデータを更新前の状態に揃えることで、通信失敗時の副ボリューム11b内のデータを更新前の状態に保証して、副ボリューム11b切り離しの条件を緩和しても良い。例えば、ストレージ装置2aがS13にてデータ巻戻しと判断した場合、S21にてストレージ装置2bと通信できなくとも、正ボリューム11aと副ボリューム11bのデータは更新前に揃うため、副ボリューム11bを切り離さなくても良い。
 また、正ストレージ装置2aが副ストレージ装置2bに対して対象データを送信しているときに、リモートコピーに関する操作を行うと、副ストレージ装置2bが対象データの一部を受信できない場合がある。例えば、S2によって正ストレージ装置2a側のSWAコマンドで指定された記憶領域の排他が確保されている場合には、排他が解除されるまで、リモートコピーに関する操作を待ってもよい。
 本実施例のストレージシステムは、通常時において正ストレージ装置2a及び副ストレージ装置2bのいずれも稼働しているアクティブ-アクティブ型のストレージシステムであって、正ボリューム11aと副ボリューム11bが同期リモートコピーペアを形成するストレージシステムである。従って、サーバ1は、正ストレージ装置2aの正ボリューム11a及び副ストレージ装置2bの副ボリューム11bのいずれにもアクセスコマンドを送信することができ、いずれのボリューム11a、11bからもデータの読み書きができる。なお、本実施例においては、実施例1及び2との差異を主に説明し、異なる部分については説明を省略する場合がある。
 本実施例のストレージシステムの構成は、実施例2と同様である。前述の通り、本実施例のストレージシステムは、アクティブ-アクティブ型のストレージシステムである。このため、実施例2のストレージシステムと比較して、サーバ1と正ストレージシステム2aとの間だけでなく、サーバ1と副ストレージ装置2bとの間の通信路、及び、副ストレージ装置2bの資源を正常時にもサーバ1によるデータの読み書きに使用でき、ストレージシステム全体の処理効率が向上するという利点がある。
 しかし、実施例2で指摘した(C)、(D)の問題に加えて、次の問題を防止する必要がある。
 (E)副ボリューム11bから、あるデータの更新前のデータと更新後のデータが読み出されてしまう可能性がある。
 (F)あるコマンドにより正ボリューム11aと副ボリューム11bとの整合性が保てなくなった場合、副ストレージ装置2bに対する次のコマンドを送信するまでに、ストレージシステムから正ボリューム11aまたは副ボリューム11bを切り離さなければならない。この場合、サーバ1は、切り離された正ボリューム11aまたは副ボリューム11b宛てに送信されるコマンドの宛先を、切り離されずに機能している副ボリューム11bまたは正ボリューム11aに切り替えなければならない。
 図15は、実施例3のSWAコマンドによりデータ書込み処理の概要を説明する図である。なお、以降の説明においては、SWAコマンドに基づく複数の対象データが、論理ボリューム11内の記憶領域に格納されているデータを更新するためのデータである場合を説明するが、これに限られない。
 本実施例では、副ストレージ装置2bが、正ストレージ装置2aから転送されたSWAコマンドを受信した場合に(4)、そのSWAコマンドで指定された記憶領域の排他を確保する(5)。そして、正ストレージ装置2aからデータ確定指示を受信し(10)、データ確定処理を行った後に(13)、SWAコマンドで指定された記憶領域の排他を解除する(14)。これにより、SWAコマンドの実行中は、他のコマンドの影響を受けずにすみ、上記(E)を防止することができる。
 また、サーバ1からSWAコマンドを受信した正ストレージ装置2aが、SWAコマンドで指定された記憶領域の排他を確保した(2)後、後述の修復処理を行うことにより、上記(F)を防止する事ができる。具体的には、正ストレージ装置2aと副ストレージ装置2bとの間の通信に失敗し、正ボリューム11aと副ボリューム11bとの整合性がとれていない場合であっても、SWAコマンドの実行中に修復処理(3)を行うことにより、ストレージシステムから正ボリューム11aまたは副ボリューム11bを切り離さず、その使用を継続することができる。修復処理は、例えば、正ボリューム11aと副ボリューム11bとの間のリモートコピーである。詳細は後述する。なお、修復処理に失敗した場合には正ボリューム11aまたは副ボリューム11bを切り離す。修復処理のために、ストレージ装置2a、2bは、論理ボリューム11a、11b間の整合性がとれているか否かの情報を保持する。例えば、この情報は、キャッシュ管理テーブル19aによって保持されるが、他の情報によって保持されていてもよい。
 図16は、実施例3のキャッシュ管理テーブル19aの一例である。
 キャッシュ管理テーブル19aは、正ストレージ装置2aのメインメモリ8及び副ストレージ装置2bのメインメモリ8に、それぞれ記憶される。キャッシュ管理テーブル19aは、各ストレージ装置2が有する論理ボリュームの記憶領域毎のエントリを有する。各エントリは、当該論理ボリューム11内の記憶領域に対応する、ボリュームID15、アドレス16、キャッシュアドレス20、排他フラグ21の他に、当該論理ボリューム11内の記憶領域に対応する修復フラグ25を有する。具体的には、例えば、修復フラグが「ON」の場合は、正ボリューム11aの記憶領域と、対応する副ボリューム11b記憶領域のデータが不一致のため修復が必要であることを示す。なお、ここでは、対応する記憶領域に同一のボリュームID及びアドレスが付与されるとするが、これに限られない。
 以下、実施例3のSWAコマンドによるデータ書込み処理を説明する。実施例3のデータ書込み処理は、概ね実施例2のデータ書込み処理と同様である。このため、実施例2との差異を中心に説明する。なお、以下では、正ストレージ装置2aが、サーバ1からSWAコマンドを受信した場合を説明する。
 SWAコマンドを受信した正ストレージ装置2aは、コマンド解析(S1)を経て、SWAコマンドで指定された記憶領域の排他を確保した後(S2)、コマンド転送(S17)を行う前に(図12参照)、正ボリューム11aと副ボリューム11bとの間の修復処理を行う。修復処理では、正ストレージ装置2aは、キャッシュメモリ管理テーブル19aを参照して、SWAコマンドで指定された正ボリューム11aの記憶領域のアドレスに合致するボリュームID15及びアドレス16に対応する、修復フラグ25を参照する。修復フラグ25がONのエントリがある場合、正ストレージ装置2aは、正ボリューム11aの当該記憶領域のデータをWriteコマンドによって副ストレージ装置2bに送信する。そして、副ストレージ装置2bは、正ボリューム11aの当該記憶領域のデータを、対応する副ボリューム11bの記憶領域に書込む。正ストレージ装置2a及び副ストレージ装置2bは、自身のキャッシュメモリ管理テーブル19aの当該記憶領域に対応する修復フラグ25にOFFを設定する。なお、正ストレージ装置2aが、サーバ1からSWAコマンドを受信した場合を説明したが、副ストレージ装置2bがサーバ1からSWAコマンドを受信された場合も同様である。ただし、この場合、副ストレージ装置2bは、Readコマンドによって、正ボリューム11aの当該記憶領域のデータを読み出し、副ボリューム11bの対応する記憶領域に書込む。修復処理の実行後、正ストレージ装置2aは、図14に示すS17以降の処理を実行する。
 なお、キャッシュ管理テーブル19a内の修復フラグ25を「ON」に設定することで、リモートコピーペアを形成する論理ボリューム11a、11b間のデータが不一致であり、修復が必要である旨を記憶することができる。これは、サーバ1からSWAコマンドを受信した場合には、上述の修復処理を行うことで、論理ボリューム11a、11b間の整合性を維持できる。また、正ストレージ装置2a又は副ストレージ装置2bが、SWAコマンド以外のデータの読み書きを必要とするコマンドを受信した場合、対象となるデータを読み書きする前に、受信したコマンドが指定する自身の論理ボリューム11の記憶領域について、キャッシュ管理テーブル19aの修復フラグ25を参照するようにしてもよい。修復フラグ25が「ON」の場合、正ボリューム11aの当該記憶領域のデータを副ボリューム11bの対応する記憶領域にコピーし、修復フラグ25にOFFを設定してから、副ストレージ装置2bは、副ボリューム11b内のデータの読み書きを実行する。また、修復フラグ25が「OFF」の場合には、副ストレージ装置2bは、そのまま副ボリューム11b内のデータの読み書きを実行する。
 図17は、実施例3における、SWAコマンドの転送先のストレージ装置が行うデータ書込み処理のフローチャートである。SWAコマンドの転送先が副ストレージ装置2bの場合を以下に説明する。副ストレージ装置2bは、実施例2の書込み処理に加えて以下の処理を行う。
 副ストレージ装置2bは、正ストレージ装置2aから転送されたSWAコマンド及びパラメータリストを受信し、そのSWAコマンドのコマンド解析を行った後(S1b)、キャッシュ管理テーブル19aを参照し、そのSWAコマンドで指定された記憶領域の排他を確保する(S2b)。SWAコマンドの排他確保の方法は、S2と同様である。
 副ストレージ装置2bは、データ受信処理の後(S3b)、正ストレージ装置2aに対して、コマンド転送に対する応答を行い(S22)、正ストレージ装置2aからのデータ確定指示を待つ(S23)。この点も、実施例2と同様である。
 副ストレージ装置2bは、S23の後、データ確定指示の受信に成功したか否かを判定する(S24)。データ確定指示には、更新可否情報が含まれる。データ確定指示を受信し、かつ更新可否情報が“データ書込み”である場合に、データ確定指示の受信が成功したものとする。一方、データ確定指示が一定時間受信できなかったか、又は、データ確定指示は受信したが更新可否情報が“データ巻き戻し”であった場合、データ確定指示の受信が失敗したものとする。従って、この判定は、データ確定指示の受信を契機にしても良いし、データ確定指示を受信できない状態が一定時間続いたことを契機にしても良い。データ確定指示の受信に成功した場合、S4bに処理を進める。一方、データ確定指示の受信に失敗した場合、副ストレージ装置2bは、キャッシュ管理テーブル19aのSWAコマンドに基づくすべての対象データの記憶領域に対応する修復フラグ25に「ON」を設定する(S25)。そして、副ストレージ装置2bは、更新可否情報にデータ巻き戻しを改めて設定し(S13b)、S4bに処理を進める。
 副ストレージ装置2bは、データ確定処理(S4)を行った後、SWAコマンドで指定された記憶領域の排他を解除し、処理を終了する(S5b)。排他解除の方法は、S5と同様である。
 上記処理により、ストレージシステムにおいて、正ストレージ装置2aが、サーバ1からSWAコマンドを受信した場合に、SWAコマンドに基づく複数の対象データ全てが、各ストレージ装置2a、2bのドライブ5に書込まれるか、書込まれないかのいずれかの状態にすることができる。具体的には、正ストレージ装置2aのデータ受信処理及び副ストレージ装置2bのデータ受信処理がともに成功した場合に、正ストレージ装置2a及び副ストレージ2bのデータ確定処理を行っている。この場合、SWAコマンドに基づく複数の対象データは、ストレージ装置2a、2bの両方のドライブ5に書込まれることとなる。一方、ストレージ装置2a、2bのいずれか一方のデータ受信処理が失敗した場合、データの巻き戻しにより、SWAコマンドに基づく複数の対象データは、ストレージ装置2a、2bの両方のドライブ5に書込まれない。
 上述の通り、本実施例のストレージシステムは、通常時において正ストレージ装置2a及び副ストレージ装置2bのいずれも稼働しているアクティブ-アクティブ型のストレージシステムであって、正ボリューム11aと副ボリューム11bが同期リモートコピーペアを形成するストレージシステムである。このため、サーバ1からのアクセスのある正ストレージ装置2aがSWAコマンドで指定された記憶領域の排他を確保することにより、サーバ1からの他のコマンドにおけるデータの書込み及び読出しを禁止することで、SWAコマンドの実行中、SWAコマンドで指定された全ての書込先記憶領域内のデータの整合性を維持できる。加えて、他のコマンドの影響を受けずに、SWAコマンドに基づく対象データのデータ書込み処理を行うことができる。加えて、このストレージシステムは、サーバ1から副ストレージ装置2bもコマンドを受信する。このため、副ストレージ装置2b側でも、SWAコマンドで指定された記憶領域の排他を確保することにより、サーバ1からの他のコマンドにおけるデータの書込み及び読出しを禁止する。これにより、SWAコマンドの実行中、SWAコマンドで指定された全ての書込み先記憶領域内のデータの整合性を維持できる。加えて、他のコマンドの影響を受けずに、SWAコマンドに基づく対象データのデータ書込み処理を行うことができる。
 本実施例のストレージシステムは、実施例2と同様の構成を有する。具体的には、本実施例のストレージシステムは、通常時において正ストレージ装置2aのみが稼働するアクティブ-スタンバイ型のストレージシステムであって、正ボリューム11aと副ボリューム11bが同期リモートコピーペアを形成するストレージシステムである。ただし、本実施例のストレージシステムは、副ストレージ装置が従来のストレージ装置であり、SWAコマンドに基づく書込み処理を行うことができない。従って、リモートコピー処理を行うストレージシステムの構築にかかる費用を節約できるという利点がある。
 図18は、実施例4のデータ書込み処理のフローチャートである。
 この説明においては、実施例2との差異を主に説明し、異なる部分については説明を省略する場合がある。なお、以降の説明においては、SWAコマンドに基づく複数のデータが、論理ボリューム11内の記憶領域に格納されているデータを更新するための対象データである場合を説明するが、これに限られず新規のデータであってもよい。
 データ書込み処理は、正ストレージ装置2aがサーバ1からSWAコマンドを受信したことを契機に実行される。なお、この処理は、正ストレージ装置2aのプロセッサ7が、自身のメインメモリ8に格納されたデータ書込みプログラムを実行することにより行われる。以下では、正ストレージ装置2a側の処理のみを説明する。なお、実施例2と同じステップについては、同じ参照番号を付与している。
 正ストレージ装置2aは、S1(コマンド解析)、S2(排他確保)を実行した後、副ストレージ装置2bにSWAコマンドの転送を行わずに、データ受信処理を行う(S3)。S1~3の処理は、実施例2と同様である(図6)。
 正ストレージ装置2aは、データ受信処理が成功か否かを判定する(S18)。成功の場合、更新可否情報には、”データ書込み”が設定されている。失敗の場合、更新可否情報には、”データ巻き戻し”が設定されている。失敗の場合(S18;No)、正ストレージ装置2aは、S4に処理を進める。
 一方、成功の場合(S18;Yes)、正ストレージ装置2aは、SWAコマンドに基づく複数の対象データの内の任意の1つのデータを指定して、副ストレージ装置に対してWriteコマンドを送信する(S34)。そして、正ストレージ装置2aは、Writeコマンドに対する応答を待つ。正ストレージ装置2aは、Writeコマンドが成功したか否か、つまり、副ストレージ装置2bからの応答が成功応答であったか否かを判定する。Writeコマンドが成功した場合(S35;Yes)、SWAコマンドに基づく複数の対象データのうち、副ストレージ装置2bに対してWriteコマンドを送信していない対象データがあるか否かを判定する。未送信の対象データがある場合(S36;Yes)、正ストレージ装置2aは、S34に処理を戻す。一方、未送信の対象データがない場合(S36;No)、正ストレージ装置2aは、S4に処理を進める。
 S35で、Writeコマンドが失敗した場合(S35;No)、正ストレージ装置2aは、SWAコマンドに基づく複数の対象データのうちの任意の1つについて、その更新前のデータを指定して、副ストレージ装置2bに対してWriteコマンドを送信する(S37)。そして、正ストレージ装置2aは、Writeコマンドに対する応答を待つ。正ストレージ装置2aは、SWAコマンドに基づく複数の対象データに対応する更新前のデータのうち、正ストレージ装置2aに対して未送信の更新前のデータがあるか否かを判定する。未送信の更新前のデータがある場合(S38;Yes)、正ストレージ装置2aは、S37に処理を戻す。一方、未送信の更新前のデータがない場合(S38;No)、正ストレージ装置2aは、S4に処理を進める。
 正ストレージ装置2aは、データ確定処理(S4)を実行し、S2で確保した排他を解除(S5)してサーバに処理完了の応答(成功応答又は失敗応答)をし(S6)、処理を終了する。
 上記処理により、SWAコマンドによる書込み処理を実行できない副ストレージ装置を有するストレージシステムであっても、サーバ1からSWAコマンドを受信した場合に、SWAコマンドに基づく複数の対象データ全てが、更新されるか、更新されないかのいずれかの状態を維持できる。加えて、正ボリューム11a及び副ボリューム11b内のリモートコピーペアについても、複数の対象データで更新されるか更新前の状態かのどちらかに統一できる。
 つまり、本実施例では、正ストレージ装置2aが、副ボリューム11bのデータ書込み状態を管理し、Writeコマンドを副ストレージ装置に送信することによって、副ボリューム11bのデータ書込み状態を操作することができる。
 以上、リモートコピー先のストレージ装置2bがSWAコマンドに対応していない場合におけるSWAコマンドの処理の概要を説明した。
 上述のように、実施例2~4のストレージシステムは、正ボリューム11aと副ボリューム11bが同期リモートコピーペアを形成するストレージシステムである。このため、SWAコマンドに基づくデータ書込み処理において、SWAコマンドを受信した正ストレージ装置2aが、自身の正ボリューム11aへのデータの書込みと、副ストレージ装置2bの副ボリューム11bに対するリモートコピーとを、一連の処理として実行している。
 本実施例においては、実施例1~4との差異を主に説明し、異なる部分については説明を省略する場合がある。以降では説明の簡単化のために、論理ボリューム11にデータを書込む、という表現を用いるが、これは、論理ボリューム11上の記憶領域に対応するキャッシュメモリ9上の記憶領域にデータを書込むという意味である。同様に、論理ボリューム11にデータを受信する、という表現は、論理ボリューム11への書込み対象のデータを一時領域に書込む、又は書込み前のデータに戻せる状態で論理ボリューム11の記憶領域に対応するキャッシュメモリ9の記憶領域にデータを書込むという意味である。
 本実施例のストレージシステムの構成は、正ストレージ装置2a及び副ストレージ装置2bが、それぞれジャーナル26a、26bを有する以外は、実施例2及び3と同様である(後述する図20参照)。ジャーナル26a、26bは、例えば、各ストレージ装置2a、2bのメインメモリ8又はキャッシュメモリ9等の記憶領域に記憶されていてよい。本実施例のストレージシステムは、通常時において正ストレージ装置2aのみが稼働するアクティブ-スタンバイ型のストレージシステムであって、正ボリューム11aと副ボリューム11bが非同期リモートコピーペアを形成する非同期型のストレージシステムである。
 本実施例のストレージシステムによるSWAコマンドに基づくデータ書込み処理を説明する前に、従来の非同期型のストレージシステムを説明する。
 従来のストレージシステムにおいて、正ストレージ装置が、Writeコマンドを受信した場合、Writeコマンドに基づくライトデータを自身の正ボリュームへ書込み、Writeコマンドに対する応答をサーバ1に対して行う。そして、正ストレージ装置は、自身の正ボリュームへのライトデータの書込みとは非同期に、副ストレージ装置の副ボリュームに対するリモートコピーを行う。ここで、非同期とは、任意の契機という意味であり、例えば、一定時間おきといった正ストレージ装置又は副ストレージ装置の内部情報を契機にしても良いし、管理者による操作やコマンドの受信頻度が一定値以下といったストレージ装置又は判断可能な外部要因を契機としても良い。
 具体的には、例えば、Writeコマンドを受信した場合、正ストレージ装置は、ライトデータの格納先の正ボリュームの記憶領域のアドレスを特定し、ライトデータを記憶領域に格納した後、ジャーナルに新規エントリを追加し、ライトデータを格納する記憶領域のアドレスと、ライトデータのサイズを格納する。その後、適切なタイミングで、正ストレージ装置は、ジャーナルを参照し、ジャーナルにエントリがあれば、当該エントリに含まれる情報と、当該エントリのボリュームIDとアドレスが指定する記憶領域内のライトデータと、を副ストレージ装置に送信する。なお、ここで、ジャーナルは、非同期型のストレージシステムにおいて、データの書込みとリモートコピーとを分離するための、データの書込みに関する情報、すなわちリモートコピーペアに格納されるデータの差分情報が記録されるリストである。
 副ストレージ装置は、エントリの情報とライトデータとを受信し、受信したエントリの情報を自身のジャーナルに追加する。その後、副ストレージ装置は、自身のジャーナルを参照し、ライトデータを、副ボリュームの該当する記憶領域に格納し、そのエントリを削除する。
 非同期型のストレージシステムでは、正ストレージ装置が、正ボリュームへのライトデータの書込みと、副ボリュームに対するリモートコピーの契機を分離することにより、リモートコピーが、コマンドに基づく処理に与える影響を小さくできる利点がある。例えば、正ストレージ装置がライトコマンドなどのコマンドを頻繁に受信しているときにはリモートコピーを実行せず、これらのコマンドの受信頻度が少ないときにリモートコピーを実行することで、ストレージシステム全体の処理性能が低下することを防止することができる。
 なお、正ボリュームと副ボリュームが非同期リモートコピーペアを形成するストレージシステムにおいては、正ストレージ装置のジャーナルのエントリの情報は、正ストレージ装置が副ストレージ装置に送信するのではなく、副ストレージ装置が正ストレージ装置から取得するようにしてもよい。また、副ストレージ装置は、受信したエントリの情報とライトデータをジャーナル26bと一時領域に格納せず、受信処理の中で、受信したエントリが示す記憶領域を特定して受信したデータを書込んでも良い。
 本発明を適用しない非同期型のストレージシステムにおいて、例えば、サーバ1からSWAコマンドを送信した場合、SWAコマンドに基づく書込み対象となる複数の対象データのエントリをジャーナルに登録することになるが、これらの複数のエントリの情報を副ストレージ装置2bに送信するときになんらかの障害が発生すると、これらの対象データにより更新される副ボリューム11b内の複数の記憶領域の状態が、その更新前か更新後のいずれかの状態に揃わなくなる可能性がある。この問題を解決するため、本実施例のストレージシステムにおいては、SWAコマンドに基づく複数の対象データを一群のデータとして管理するための機能を有する。
 図19は、ジャーナル26の一例である。
 ジャーナル26は、非同期型のストレージシステムにおいて、データの書込みとリモートコピーとを分離するための、データの書込みに関する情報、すなわちリモートコピーペアに格納されるデータの差分情報が記録されるリストである。ジャーナル26は、正ボリューム11aに書込まれたデータが格納される記憶領域毎のエントリを有する。各エントリは、例えば、正ボリューム11aの識別子であるボリュームID261、当該正ボリューム11a内の記憶領域のアドレス263、当該記憶領域のサイズ265、当該記憶領域に格納されるデータを指定したコマンドを識別するコマンドID267、及び、当該コマンドで指定されたデータの数を示すエントリ数269を有する。
 各ボリュームの記憶領域にコマンドID268及びエントリ数269を付与することにより、SWAコマンドに基づく複数の対象データを一群のデータとして管理できる。
 図20は、実施例5のストレージシステムによるSWAコマンドに基づくデータ書込み処理の概要を説明する図である。
 正ストレージ装置2aは、SWAコマンドを受信し、実施例1のデータ書込み処理を行う(図6参照)。正ストレージ装置2aは、データ書込み処理において、SWAコマンドに基づく複数の対象データを、正ボリューム11aの記憶領域に格納するとともに、差分登録処理において、これら複数の対象データのエントリをジャーナル26aに登録する。なお、差分登録処理は、データ確定処理(S4)のときに、またはその後の適切なタイミングで行ってよい。差分登録処理において、正ストレージ装置2aは、ジャーナル26aのSWAコマンドに基づく複数の対象データのエントリに、これら対象データを1つのデータ群として管理するための識別子を付与しておく。これは、例えば、前述のジャーナル26エントリに付与されたコマンドID268及びエントリ数269である。正ストレージ装置2aは、その後非同期に、ジャーナル26aのエントリの情報及びそれらのエントリに対応するデータを副ストレージ装置2cに送信する(1)。
 副ストレージ装置2cは、ジャーナル26aのエントリの情報及びそれらのエントリに対応するデータを受信する。そして、副ストレージ装置2cは、エントリの情報をジャーナル26bに登録するとともに、キャッシュメモリ9の一時領域12に受信したデータを記憶する。その後、副ストレージ装置2cは、差分更新処理において、ジャーナル26bを参照し、識別子に基づきSWAコマンドに基づく複数の対象データ全て検出し(2)、一括して、副ボリューム11bの記憶領域に書込む(3)。
 なお、上記では、ストレージ装置2aがジャーナル26a内のエントリの情報をストレージ装置2bに送信せず、ストレージ装置2bがジャーナル26b内のエントリの情報を取得するとしてもよい。また、ストレージ装置2bは、受信したエントリの情報と対象データとをジャーナル26bと一時領域に格納せず、受信処理の中で、受信したエントリが示す記憶領域を特定して受信したデータを書込んでもよい。
 図21は、正ストレージ装置2aが行う差分登録処理のフローチャートである。
 正ストレージ装置2aは、SWAコマンドに基づく書込み先のアドレスの数、つまり対象データの数に基づき追加するエントリの数を算出する(S26)。正ストレージ装置2aは、算出した数のエントリを追加する(S27)。
 正ストレージ装置2aは、追加した各エントリに、対象データの書込み先アドレスと、コマンドID24と、エントリ数を設定する(S28)。正ストレージ装置2aは、追加したエントリにこれらの値を設定していないエントリがあるか否かを判定する(S29)。未設定のエントリがある場合(S29;Yes)、正ストレージ装置2aは、S28に処理を戻す。一方、未設定のエントリがない場合(S29;No)、正ストレージ装置2aは、処理を終了する。
 図22は、副ストレージ装置2cが行う差分更新処理のフローチャートである。
 差分更新処理は、副ストレージ装置2cが行う対象データの副ボリューム11bへの書込み処理である。以下、具体的に説明する。
 副ストレージ装置2cは、ジャーナル26bを参照し、未だ検索していないエントリの有無を判定する(S30)。未検索のエントリがない場合(S30;No)、副ストレージ装置2cは、S33に処理を進める。一方、未検索のエントリがある場合(S30;Yes)、副ストレージ装置2cは、当該エントリを選択し(S31)、選択したエントリのコマンドID24と、SWAコマンドを示すコマンドIDが設定されたジャーナル26bの先頭のエントリとが一致するか否かを判定する(S32)。
 これらのエントリのコマンドID24が一致する場合(S32;Yes)、副ストレージ装置2cは、選択したエントリがSWAコマンドに基づく対象エントリであることを意味する。従って、次のエントリを参照するため、副ストレージ装置2cは、S30に処理を戻す。一方、これらのエントリのコマンドID24が一致しない場合(S32;No)、副ストレージ装置2cは、選択したエントリが対象エントリでないことを意味するので、選択したエントリを未検索のエントリとして、S33に処理を進める。
 副ストレージ装置2cは、対象エントリのエントリ数とSWAコマンドを示すコマンドIDが設定されたジャーナル26bの先頭エントリが持つエントリ数28とを比較する(S33)。これらのエントリ数が一致する場合(S33;Yes)、副ストレージ装置2cは、SWAコマンドに基づくエントリの情報及び対象データを全て受信できたと判断し、これらの対象データについて、データ確定処理(S4)を実行する。一方、これらのエントリ数が一致しない場合(S33;No)、SWAコマンドに基づくエントリの情報及び対象データを全て受信できたと判断し、処理を終了する。
 上記処理により、非同期型のストレージシステムであっても、SWAコマンドに基づく複数の対象データ全てが、正ボリューム11aの記憶領域と、これとリモートペアをなす副ボリューム11bの記憶領域の両方に書込まれるか、書込まれないかのいずれかの状態を維持できる。
 以上、通常時において正ストレージ装置2aのみが稼働するアクティブ-スタンバイ型のストレージシステムであって、正ボリューム11aと副ボリューム11bが非同期リモートコピーペアを形成する非同期型のストレージシステムにおける、データ書込み処理の一例を説明した。しかし、非同期型のストレージシステムにおけるデータ書込み処理は、上記の例には限られない。例えば、データ書込み処理について、正ストレージ装置2a及び副ストレージ装置2cの両方が、SWAコマンドに基づく複数の対象データの全てを一群のデータと認識できるならば、上記以外の方法で行われてもよい。以下に、データ書込み処理における差分更新処理の第1及び第2変形例を説明する。これらの変形例であっても、上記に説明した本実施例における書込み処理の効果と同様の効果を得られるものである。
 次に差分更新処理の第1の変形例を説明する。
 例えば、図19に示すジャーナル26a、26bの各エントリについて、エントリ数269の項目を除いてもよい。この場合、例えば、エントリを追加するときに(図21、S27)、連続するエントリをSWAコマンドに基づくエントリとして追加する。これにより、連続した同じコマンドID267を示すエントリが、SWAコマンドに基づく一群のエントリである。
 再び図22を用いて、差分更新処理の第1の変形例のフローを説明する。
 ストレージ装置2bは、未検索のエントリがあるか否かを判定(S30)し、当該エントリを選択し(S31)、選択したエントリのコマンドID24と、SWAコマンドを示すコマンドIDが設定されたジャーナル26bの先頭のエントリとが一致するか否かを判定する(S32)。
 これらのエントリのコマンドID24が一致する場合(S32;Yes)、副ストレージ装置2cは、選択したエントリが、SWAコマンドに基づく対象エントリであることを意味する。従って、次のエントリを参照するため、副ストレージ装置2cは、S30に処理を戻す。一方、これらのエントリのコマンドID24が一致しない場合(S32;No)、副ストレージ装置2cは、選択したエントリが対象エントリでないことを意味し、かつ、SWAコマンドに基づく一群のエントリが終了したことを意味するので選択したエントリを未検索のエントリとし、S33を実行せずに処理を終了する。
 次に、差分更新処理の第2の変形例を説明する。
 例えば、図23に示すように、ジャーナル26a、26bの各エントリについて、コマンドID267及びエントリ数269の項目を除いてもよい。この場合、例えば、エントリを追加するときに(図21、S27)、連続するエントリをSWAコマンドに基づくエントリとして追加するとともに、連続するエントリの次のエントリにSWAコマンドに基づくエントリの終了を示すエンドマーカである番兵290を設定してもよい。
 図24は、差分更新処理の第2の変形例を示すフローチャートである。
 ストレージ装置2bは、未検索のエントリがあるか否かを判定(S30)し、当該エントリを選択する(S31)。次に、選択したエントリが番兵290か否かを判定する。番兵290は、例えば、無効な値を持ち通常のエントリと区別できるエントリである。選択したエントリが番兵290でない場合(S32;No)、副ストレージ装置2cは、S30に処理を戻す。一方、選択したエントリが番兵の場合(S32;Yes)、副ストレージ装置2cは、番兵290の直前に選択したエントリまでがSWAコマンドに基づく一群のエントリであるとして、SWAコマンドに基づくエントリの情報及び対象データを全て受信できたと判断し、これらの対象データについて、データ確定処理(S4)を実行する。
 なお、第1プロセッサ、第1メモリ及び第1記憶デバイスは、実施例1~5に係るストレージ装置2、2a内のプロセッサ7、メインメモリ8及びドライブ5等に対応する。第2プロセッサ、第2メモリ及び第2記憶デバイスは、実施例2~4に係る同期型リモートストレージシステムの副ストレージ装置2b内のプロセッサ7、メインメモリ8及びドライブ5等に対応する。第3プロセッサ、第3メモリ及び第3記憶デバイスは、実施例5に係る非同期型リモートストレージシステムの副ストレージ装置2c内のプロセッサ7、メインメモリ8及びドライブ5等に対応する。
 また、保持データは、更新前のデータなどに対応し、ライトデータは、対象データなどに対応する。第1論理ボリュームは、正ボリューム11a等に対応し、第2論理ボリュームは、副ボリューム11b等に対応する。論理記憶領域は、記憶領域13aなどに対応し、第1又は第2デバイス記憶領域は、記憶領域13cなどに対応し、第1記憶領域は、ストレージ装置2又は正ストレージ装置2aにおける、キャッシュメモリ9内の記憶領域13bに対応し、第2記憶領域は、一時領域12内の記憶領域13dに対応し、第3記憶領域は、キャッシュメモリ9内の記憶領域13aとは別の動的に生成される記憶領域13eなどに対応する。第4記憶領域は、副ストレージ装置2bにおける、キャッシュメモリ9内の記憶領域に対応し、第5記憶領域は、一時領域12内の記憶領域に対応し、第6記憶領域は、(第4記憶領域とは別の)キャッシュメモリ9内に動的に生成される記憶領域などに対応する。第1、第2及び第3ボリューム情報は、ボリューム管理テーブル14等に対応し、第1、第2キャッシュ情報及び第1メモリ情報は、キャッシュ管理テーブル19に対応する。
 以上、幾つかの実施例を説明したが、本発明は、それらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
1:サーバ、2,2a,2b:ストレージ装置、3,3a,3b:ネットワーク、4:ストレージコントローラ、5:ドライブ、6:サーバI/F、7:プロセッサ、8:メインメモリ、9:キャッシュメモリ、10:ドライブI/F、11,11a,11b:論理ボリューム、12:一時領域、13a,13b,13c,13d:記憶領域、14:ボリューム管理テーブル、19,19a:キャッシュ管理テーブル、22:一時領域管理テーブル、26,26a,26b,26c:ジャーナル、30:フラッシュメモリ、31:ドライブ装置I/F、32:ドライブ管理装置
 

 

Claims (14)

  1.  第1記憶デバイスと
     サーバ計算機及び前記第1記憶デバイスに接続された第1プロセッサと、
     前記第1プロセッサに接続された第1メモリと、
    を有し、
     前記第1プロセッサは、前記第1記憶デバイスに基づき前記サーバ計算機に第1論理ボリュームを提供し、
     前記第1メモリは、前記第1論理ボリューム内の複数の論理記憶領域と、前記第1記憶デバイス内の複数の第1デバイス記憶領域との関連づけを示す第1ボリューム情報を記憶し、
     前記第1記憶デバイスは、前記複数の第1デバイス記憶領域に複数の保持データをそれぞれ格納し、
     前記第1メモリは、前記複数の保持データを格納し、
     前記第1プロセッサは、前記サーバ計算機から、前記複数の論理記憶領域をそれぞれ示す複数のアドレスを指定し、前記複数の論理記憶領域に複数のライトデータをそれぞれ書込むことを指示するコマンドを受信した場合、前記サーバ計算機から前記コマンドに基づく前記複数のライトデータを受信し、かつ、前記第1メモリ内の前記複数の保持データが格納されている記憶領域とは別の記憶領域に、前記複数のライトデータを書込むデータ受信処理を実行し、
     前記第1プロセッサは、前記第1メモリに前記複数のライトデータが全て書込まれたか否かを判定し、
     前記第1プロセッサは、前記第1メモリに前記複数のライトデータが全て書込まれたと判定した場合、前記ホスト計算機に第1成功応答を送信し、
     前記第1プロセッサは、前記複数のライトデータが所定の条件を満たす場合、前記第1メモリ内の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込み、
     前記第1プロセッサは、前記第1メモリに前記複数のデータの少なくとも一部が書込まれていないと判定した場合、前記ホスト計算機に第1失敗応答を送信する、
    ストレージシステム。
  2.  請求項1に記載のストレージシステムであって、
     前記第1プロセッサは、前記コマンドを受信してから前記判定が終了するまで、前記複数の論理記憶領域を指定する他のコマンドの処理を待機させる、
    ストレージシステム。
  3.  請求項2に記載のストレージシステムであって、
     第2記憶デバイスと、
     前記サーバ計算機、前記第1プロセッサ及び前記第2記憶デバイスに接続された第2プロセッサと、
     前記第2プロセッサに接続された第2メモリと、
    をさらに有し、
     前記第2プロセッサは、前記第2記憶デバイスに基づき第2論理ボリュームを提供し、
     前記第2メモリは、前記複数の論理記憶領域と、前記第2記憶デバイス内の複数の第2デバイス記憶領域との関連づけを示す第2ボリューム情報を記憶し、
     前記第2記憶デバイスは、前記複数の第2デバイス記憶領域に複数の保持データをそれぞれ格納し、
     前記第2メモリは、前記複数の保持データを格納し、
     前記第1プロセッサは、前記コマンドを前記第2プロセッサに転送し、
     前記第2プロセッサは、前記コマンドを受信した場合に、前記第1プロセッサから前記コマンドに基づく前記複数のライトデータを受信し、かつ、前記第2メモリ内の前記複数の保持データが格納されている記憶領域とは別の記憶領域に、前記複数のライトデータを書込み、
     前記第2プロセッサは、前記第2メモリに前記複数のライトデータが全て書込まれたか否かを判定し、
     前記第2プロセッサは、前記第2メモリに前記複数のライトデータが全て書込まれたと判定した場合、前記第1プロセッサに第2成功応答を送信し、前記第2メモリに前記複数のデータの少なくとも一部が書込まれていないと判定した場合、前記第1プロセッサに第2失敗応答を送信し、
     前記第1プロセッサは、前記第1メモリに前記複数のライトデータが全て格納されたと判定した場合であって、かつ、前記第2プロセッサから前記第2成功応答を受信した場合、その旨を前記第2プロセッサに通知し、前記サーバ計算機に前記第1成功応答を送信し、
     前記第1プロセッサは、前記複数のライトデータが所定の条件を満たす場合、前記第1メモリ内の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込み、
     前記第2プロセッサは、前記通知を受信した場合、前記複数のライトデータが所定の条件を満たす場合、前記第2メモリ内の前記複数のライトデータを、前記複数の第2デバイス記憶領域にそれぞれ書込む、
    ストレージシステム。
  4.  請求項3に記載のストレージシステムであって、
     前記第2プロセッサは、前記コマンドを受信してから前記判定が終了するまで、前記コマンドに基づく前記複数の第1論理記憶領域に対応する前記第2論理ボリュームの複数の第2論理記憶領域を指定する他のコマンドの処理を待機させる、
    ストレージシステム。
  5.  請求項4に記載のストレージシステムであって、
     前記第1メモリは、前記複数の論理記憶領域と前記第1メモリ内の複数の第1キャッシュ領域との関連付けを示す第1キャッシュ情報を記憶し、
     前記第2メモリは、前記複数の論理記憶領域と前記複数の第2キャッシュ領域との関連付けを示す第2キャッシュ情報を記憶し、
     前記第1プロセッサは、前記コマンドを受信した後であって、前記コマンドを転送する前に、前記複数の第1キャッシュ領域と、前記複数の第2キャッシュ領域とに格納されたデータがそれぞれ一致しているか否かを判定し、
     前記第1プロセッサは、一致しないと判定された第1キャッシュ領域に格納されたデータを、対応する第2キャッシュ領域にコピーする、
    ストレージシステム。
  6.  請求項2に記載のストレージシステムであって、
     第2記憶デバイスと、
     前記サーバ計算機、前記第1プロセッサ及び前記第2記憶デバイスに接続された第2プロセッサと、
     前記第2プロセッサに接続された第2メモリと、
    をさらに有し、
     前記第2プロセッサは、前記第2記憶デバイスに基づき第2論理ボリュームを提供し、
     前記第2メモリは、前記第1論理ボリューム内の複数の論理記憶領域と、前記第2記憶デバイス内の複数の第2デバイス記憶領域との関連づけを示す第2ボリューム情報を記憶し、
     前記第2記憶デバイスは、前記複数の第2デバイス記憶領域に複数の保持データをそれぞれ格納し、
     前記第2メモリは、前記複数の保持データを格納し、
     前記第1プロセッサは、前記第1メモリに前記複数のライトデータが全て書込まれたと判定した場合、前記複数のアドレスと、前記コマンドを示すコマンド情報とを含むジャーナルを生成し、
     前記第1プロセッサは、前記ジャーナル及び前記複数のライトデータを、前記第2プロセッサに送信し、
     前記第2プロセッサは、前記ジャーナル及び前記複数のライトデータを受信し、前記ジャーナル及び前記第2ボリューム情報に基づき、前記コマンドにより指定された前記複数のアドレスに対応する前記第2メモリ内の前記複数の記憶領域に、前記複数のライトデータを全て書込む、
    ストレージシステム。
  7.  請求項6に記載のストレージシステムであって、
     前記第1プロセッサは、前記第1メモリに前記複数のライトデータが全て書込まれたと判定した場合、前記ジャーナルに、前記複数のアドレスの数を示す情報をさらに登録し、
     前記第2プロセッサは、前記ジャーナル及び前記複数のライトデータを受信した場合、前記前記ジャーナル及び前記第2ボリューム情報に基づき、前記複数のライトデータの数と、前記複数のアドレスの数とが一致するかを判定し、
     前記第2プロセッサは、前記複数のライトデータの数と、前記複数のアドレスの数とが一致する場合、前記コマンドにより指定された前記複数のアドレスに対応する前記第2メモリ内の前記複数の記憶領域に、前記複数のライトデータを全て書込む、
    ストレージシステム。
  8.  請求項2に記載のストレージシステムであって、
     第3記憶デバイスと、
     前記サーバ計算機、前記第1プロセッサ及び前記第3記憶デバイスに接続された第3プロセッサと、
     前記第3プロセッサに接続された第3メモリと、
    をさらに有し、
     前記第3メモリは、前記複数の論理記憶領域と、前記第3記憶デバイス内の複数の第3デバイス記憶領域との関連づけを示す第3ボリューム情報を記憶し、
     前記第3記憶デバイスは、前記複数の第3デバイス記憶領域に複数の保持データをそれぞれ格納し、
     前記第3メモリは、前記複数の保持データを格納し、
     前記第1プロセッサは、前記データ受信処理の後、前記複数のライトデータをそれぞれ指定した複数のライトコマンドを前記第2プロセッサに送信し、
     前記第3プロセッサは、前記複数のライトコマンドに基づく前記複数のライトデータを、それぞれ、前記第3メモリに書込み、前記複数のライトデータが所定の条件を満たす場合、前記第3メモリ内の前記複数のライトデータを、前記複数の第3デバイス記憶領域にそれぞれ書込み、
     前記第1プロセッサは、前記第3プロセッサに送信する未送信のライトコマンドがある否かを判定し、
     前記第1プロセッサは、前記未送信のライトコマンドがない場合に、前記第1メモリに前記複数のライトデータが全て書込まれたか否かを判定する、
    ストレージシステム。
  9.  請求項2に記載のストレージシステムであって、
     前記第1メモリは、前記複数の保持データを前記第1メモリ内の複数の第1記憶領域に格納し、
     前記第1メモリは、前記複数の論理記憶領域と前記複数の第1記憶領域との関連付けを示す第1メモリ情報を記憶し、
     前記第1プロセッサは、前記コマンドを受信した場合、前記複数の第1記憶領域とは別の前記第1メモリ内の複数の第2記憶領域に、前記複数のライトデータをそれぞれ書込み、
     前記第1プロセッサは、前記複数の第2記憶領域に前記複数のライトデータが全て書込まれたか否かを判定し、
     前記第1プロセッサは、前記複数の第2記憶領域に前記複数のライトデータが全て書込まれたと判定した場合、前記複数の2記憶領域内の前記複数のライトデータを、前記複数の第1記憶領域にそれぞれコピーし、前記ホスト計算機に第1成功応答を送信し、
     前記第1プロセッサは、前記複数のライトデータが所定の条件を満たす場合、前記第1ボリューム情報及び前記第1メモリ情報に基づき、前記複数の第1記憶領域内の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込む、
    ストレージシステム。
  10.  請求項2に記載のストレージシステムであって、
     前記第1メモリは、前記複数の保持データを前記第1メモリ内の複数の第1記憶領域に格納し、
     前記第1メモリは、前記複数の論理記憶領域と前記複数の第1記憶領域との関連付けを示す第1メモリ情報を記憶し、
     前記第1プロセッサは、前記コマンドを受信した場合に、前記複数の第1記憶領域に書込まれた前記複数の保持データを、前記複数の第1記憶領域とは別の前記第1メモリ内の複数の第2記憶領域へコピーし、
     前記第1プロセッサは、前記サーバ計算機から前記コマンドに基づく前記複数のライトデータを受信し、かつ、前記複数の第1記憶領域に、前記複数のライトデータを書込み、
     前記第1プロセッサは、前記複数の第1記憶領域に前記複数のライトデータが全て書込まれたか否かを判定し、
     前記第1プロセッサは、前記複数の第1記憶領域に前記複数のライトデータが全て書込まれたと判定した場合、前記第1ボリューム情報及び前記第1メモリ情報に基づき、前記複数の第1記憶領域内の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込み、
     前記第1プロセッサは、前記複数の第1記憶領域に前記複数のデータの少なくとも一部が書込まれていないと判定した場合、前記複数の第2記憶領域内の前記複数の保持データを、前記複数の第1記憶領域にそれぞれコピーする、
    ストレージシステム。
  11.  請求項2に記載のストレージシステムであって、
     前記第1メモリは、前記複数の保持データを前記第1メモリ内の複数の第1記憶領域に格納し、
     前記第1メモリは、前記複数の論理記憶領域と前記複数の第1記憶領域との関連付けを示す第1メモリ情報を記憶し、
     前記第1プロセッサは、前記コマンドを受信した場合、前記第1記憶領域とは別の前記第1メモリ内の第3記憶領域に、前記複数のライトデータを書込み、
     前記第1プロセッサは、前記複数の第3記憶領域に前記複数のライトデータが全て書込まれたか否かを判定し、
     前記第1プロセッサは、前記複数の第3記憶領域に前記複数のライトデータが全て書込まれたと判定した場合、前記第1ボリューム情報及び前記第1メモリ情報とにおける、前記複数の第1デバイス記憶領域と前記複数の第1記憶領域との関連付けを、前記複数の第1デバイス記憶領域と前記複数の第3記憶領域との関連付けに変更し、前記変更された前記第1ボリューム情報及び前記第1メモリ情報に基づき、前記複数の第3記憶領域内の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込む、
    ストレージシステム。
  12.  請求項2に記載のストレージシステムであって
     前記第1メモリは、不揮発性の半導体メモリである、
    ストレージシステム。
  13.  請求項5に記載のストレージシステムであって、
     前記第1メモリは、前記複数の保持データを前記第1メモリ内の複数の第1記憶領域に格納し、
     前記第2メモリは、前記複数の保持データを前記第2メモリ内の複数の第4記憶領域に格納し、
     前記第1メモリは、前記複数の論理記憶領域と前記複数の第1記憶領域との関連付けを示す第1メモリ情報を記憶し、
     前記第2メモリは、前記複数の論理記憶領域と前記複数の第4記憶領域との関連付けを示す第2メモリ情報を記憶し、
     前記第1プロセッサは、前記コマンドを受信した場合、前記コマンドを前記第2プロセッサに転送し、かつ、前記第1記憶領域とは別の前記第1メモリ内の第2記憶領域に、前記複数のライトデータを書込み、
     前記第2プロセッサは、前記コマンドを受信した場合、前記複数の第4記憶領域とは別の前記複数の第5記憶領域に、前記複数のライトデータを書込み、
     前記第2プロセッサは、前記複数の第5記憶領域に前記複数のライトデータが全て書込まれた場合、前記第1プロセッサに第2成功応答を送信し、
     前記第1プロセッサは、前記複数の第2記憶領域に前記複数のライトデータが全て書込まれたか否かを判定し、
     前記第1プロセッサは、前記複数の第2記憶領域に前記複数のライトデータが全て格納されたと判定した場合、前記複数の2記憶領域内の前記複数のライトデータを、前記複数の第1記憶領域にそれぞれコピーし、
     前記第1プロセッサは、前記複数のライトデータが所定の条件を満たす場合、前記デバイス関連情報及び前記第1メモリ情報に基づき、前記複数の第1記憶領域の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込み、
     前記第2プロセッサは、前記通知を受信した場合であって、前記複数のライトデータが所定の条件を満たす場合、前記デバイス関連情報及び前記第1メモリ情報に基づき、前記複数の第5記憶領域の前記複数のライトデータを、前記複数の第2デバイス記憶領域にそれぞれ書込む、
    ストレージシステム。
  14.  第1記憶デバイスと
     サーバ計算機及び前記第1記憶デバイスに接続された第1プロセッサと、
     前記第1プロセッサに接続された第1メモリと、
    を有するストレージシステムが行うデータ書込み方法であって、
     前記第1記憶デバイスは、前記第1記憶デバイス内の複数の第1デバイス記憶領域に複数の保持データをそれぞれ格納し、
     前記第1メモリは、前記複数の保持データを格納し、
     前記第1メモリは、前記第1論理ボリューム内の複数の論理記憶領域と、前記第1記憶デバイス内の複数の第1デバイス記憶領域との関連づけを示す第1ボリューム情報を記憶し、
     第1プロセッサは、
      前記第1記憶デバイスに基づき前記サーバ計算機に第1論理ボリュームを提供し、
      前記サーバ計算機から、前記複数の論理記憶領域をそれぞれ示す複数のアドレスを指定し、前記複数の論理記憶領域に複数のライトデータをそれぞれ書込むことを指示するコマンドを受信した場合、前記サーバ計算機から前記コマンドに基づく前記複数のライトデータを受信し、かつ、前記第1メモリ内の前記複数の保持データが格納されている記憶領域とは別の記憶領域に、前記複数のライトデータを書込むデータ受信処理を実行し、
      前記第1メモリに前記複数のライトデータが全て書込まれたか否かを判定し、
      前記第1メモリに前記複数のライトデータが全て書込まれたと判定した場合、前記ホスト計算機に第1成功応答を送信し、前記複数のライトデータが所定の条件を満たす場合、前記第1メモリ内の前記複数のライトデータを、前記複数の第1デバイス記憶領域にそれぞれ書込み、
      前記第1メモリに前記複数のデータの少なくとも一部が書込まれていないと判定した場合、前記ホスト計算機に第1失敗応答を送信する、
    データ書込み方法。

     
     
PCT/JP2014/074094 2014-09-11 2014-09-11 ストレージシステム及びデータ書込み方法 WO2016038722A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2014/074094 WO2016038722A1 (ja) 2014-09-11 2014-09-11 ストレージシステム及びデータ書込み方法
US15/119,860 US9952805B2 (en) 2014-09-11 2014-09-11 Storage system and data write method using a logical volume to either store data successfully onto a first memory or send a failure response to a server computer if the storage attempt fails

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/074094 WO2016038722A1 (ja) 2014-09-11 2014-09-11 ストレージシステム及びデータ書込み方法

Publications (1)

Publication Number Publication Date
WO2016038722A1 true WO2016038722A1 (ja) 2016-03-17

Family

ID=55458510

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/074094 WO2016038722A1 (ja) 2014-09-11 2014-09-11 ストレージシステム及びデータ書込み方法

Country Status (2)

Country Link
US (1) US9952805B2 (ja)
WO (1) WO2016038722A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220113146A (ko) 2021-02-05 2022-08-12 에스케이하이닉스 주식회사 호스트 및 이에 연결되는 메모리 시스템의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347909A (ja) * 1999-06-07 2000-12-15 Hitachi Ltd トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ
JP2006004407A (ja) * 2004-05-03 2006-01-05 Microsoft Corp 不揮発性メモリ・キャッシュの性能改善
JP2008004090A (ja) * 2006-06-21 2008-01-10 Hitachi Ltd トランザクションモニタリング能力を有するストレージシステム
WO2008156682A1 (en) * 2007-06-19 2008-12-24 Sandisk Corporation Memory device and method for writing data of an atomic transaction
JP2009282752A (ja) * 2008-05-22 2009-12-03 Hitachi Systems & Services Ltd ストレージデバイス及びファイルシステムの記録方法
JP2012507097A (ja) * 2008-10-30 2012-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム
JP2012508428A (ja) * 2008-12-22 2012-04-05 インテル コーポレイション 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム
US20130166855A1 (en) * 2011-12-22 2013-06-27 Fusion-Io, Inc. Systems, methods, and interfaces for vector input/output operations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266391B2 (en) 2007-06-19 2012-09-11 SanDisk Technologies, Inc. Method for writing data of an atomic transaction to a memory device
EP2648104B1 (en) * 2010-11-30 2016-04-27 Japan Science and Technology Agency Dependability maintenance system for maintaining dependability of a target system in an open environment, corresponding method, computer control program achieving the same and computer readable recording medium recording the same
US20130074065A1 (en) * 2011-09-21 2013-03-21 Ibm Corporation Maintaining Consistency of Storage in a Mirrored Virtual Environment
WO2014118776A1 (en) * 2013-01-31 2014-08-07 Technion Research & Development Foundation Limited Management and recovery of distributed storage of replicas

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347909A (ja) * 1999-06-07 2000-12-15 Hitachi Ltd トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ
JP2006004407A (ja) * 2004-05-03 2006-01-05 Microsoft Corp 不揮発性メモリ・キャッシュの性能改善
JP2008004090A (ja) * 2006-06-21 2008-01-10 Hitachi Ltd トランザクションモニタリング能力を有するストレージシステム
WO2008156682A1 (en) * 2007-06-19 2008-12-24 Sandisk Corporation Memory device and method for writing data of an atomic transaction
JP2009282752A (ja) * 2008-05-22 2009-12-03 Hitachi Systems & Services Ltd ストレージデバイス及びファイルシステムの記録方法
JP2012507097A (ja) * 2008-10-30 2012-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム
JP2012508428A (ja) * 2008-12-22 2012-04-05 インテル コーポレイション 単一のコマンドにより複数の非連続アドレス範囲の転送をキューイングするための方法及びシステム
US20130166855A1 (en) * 2011-12-22 2013-06-27 Fusion-Io, Inc. Systems, methods, and interfaces for vector input/output operations

Also Published As

Publication number Publication date
US9952805B2 (en) 2018-04-24
US20170060478A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
US10002048B2 (en) Point-in-time snap copy management in a deduplication environment
CN114341792B (zh) 存储集群之间的数据分区切换
WO2018040591A1 (zh) 一种远程数据复制方法及系统
US8788878B2 (en) Data migration without interrupting host access
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
US9678686B2 (en) Managing sequentiality of tracks for asynchronous PPRC tracks on secondary
JP6344798B2 (ja) データ送信方法、データ受信方法、及びストレージデバイス
US8447941B2 (en) Policy based data migration control method for storage device
US8204858B2 (en) Snapshot reset method and apparatus
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
US10496674B2 (en) Self-describing volume ancestry for data synchronization
US20140115390A1 (en) Power failure management in components of storage area network
US20120159232A1 (en) Failure recovery method for information processing service and virtual machine image generation apparatus
JP2004252686A (ja) 情報処理システム
US8332601B2 (en) Storage controller having virtual volume
US7451283B2 (en) Method, system, and program for copying tracks between a primary storage and secondary storage
US9875059B2 (en) Storage system
US10503426B2 (en) Efficient space allocation in gathered-write backend change volumes
WO2016038722A1 (ja) ストレージシステム及びデータ書込み方法
JP7179810B2 (ja) クラスタシステム、クラスタシステムのフェイルオーバー制御方法
JP2012022645A (ja) データ記憶システムおよび非同期レプリケーション方法
JP4294692B2 (ja) 情報処理システム
US20190073128A1 (en) Computer system, data management method, and data management program
US11513900B2 (en) Remote replication of snapshots taken while replication was inactive

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14901534

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15119860

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14901534

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP