WO2019003416A1 - ストレージシステム及び記憶制御方法 - Google Patents

ストレージシステム及び記憶制御方法 Download PDF

Info

Publication number
WO2019003416A1
WO2019003416A1 PCT/JP2017/024147 JP2017024147W WO2019003416A1 WO 2019003416 A1 WO2019003416 A1 WO 2019003416A1 JP 2017024147 W JP2017024147 W JP 2017024147W WO 2019003416 A1 WO2019003416 A1 WO 2019003416A1
Authority
WO
WIPO (PCT)
Prior art keywords
attribute
data
storage device
copy
storage
Prior art date
Application number
PCT/JP2017/024147
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/JP2017/024147 priority Critical patent/WO2019003416A1/ja
Priority to JP2019526093A priority patent/JP6643524B2/ja
Priority to US16/331,776 priority patent/US10732901B2/en
Publication of WO2019003416A1 publication Critical patent/WO2019003416A1/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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]

Definitions

  • the present invention relates to a storage system.
  • a storage system generally comprises one or more storage devices.
  • Each of the one or more storage devices generally includes, for example, a hard disk drive (HDD) or a solid state drive (SSD) as a storage device.
  • a storage system is accessed from one or more upper level devices (for example, host computers) via a network such as a storage area network (SAN) or a local area network (LAN).
  • SAN storage area network
  • LAN local area network
  • RAID Redundant Array of Independent (or Inexpensive) Disks
  • Patent Document 1 discloses an information system capable of improving the availability. According to Patent Document 1, the first volume of the first storage device and the second volume of the second storage are provided to the host computer as the same volume. From the host computer, the first volume and the second volume are recognized as the same volume with different paths.
  • Patent Document 2 discloses an HA (High Availability) pair configuration in which a first volume of a first storage device and a second volume of a second storage device each respond to the host computer with the same virtual ID. According to Patent Document 2, when the first storage device or the second storage device receives an offload data copy instruction specifying a virtual ID as a copy destination from a host computer, according to the storage device in which the copy destination volume exists, Either the first volume or the second volume is selected as the copy source volume, and data is copied from the selected copy source volume to the copy destination volume.
  • HA High Availability
  • Data transfer occurs between volumes or between storage devices for offload data copy. In such cases, the processing speed of offload data copy is limited by the bandwidth of the data transfer.
  • allocation information indicating a data storage location in the storage apparatus instead of the data to be copied itself.
  • allocation information indicating a data storage location in the storage apparatus instead of the data to be copied itself.
  • allocation information is transferred to the volume forming the HA pair configuration, there is a possibility that data mismatch (mismatch) may occur between the HA pair without being aware of the passing of data update from the host computer.
  • Such a problem may occur not only in a storage system having an HA pair configuration, but also in other storage systems that provide two or more different volumes in different two or more storage devices as the same volume to the host computer.
  • a storage system has a plurality of storage devices connected to a host computer.
  • One of the plurality of storage devices is a first storage device having a primary volume of a primary volume and a secondary volume that make up a pair.
  • One of the plurality of storage devices is a second storage device having the secondary volume. Both the primary volume and the secondary volume are volumes that can be updated.
  • each of the first storage device and the second storage device is: (A) Change the data attribute of the data area assigned to the copy source address according to the offload data copy instruction to the second attribute if the data attribute is an attribute other than the second attribute, (B) When performing allocation information copying, which is to allocate a data area to a copy destination address in accordance with the object data copy instruction, If the data attribute of the data area is the second attribute, the allocation information is copied, If the data attribute of the data area is the first attribute, the offload data copying process is aborted (for example, the process is repeated as described later).
  • FIG. 1 is a diagram showing the procedure of offload data copy in a storage system in an HA pair configuration.
  • FIG. 2 is a diagram showing the configuration of the storage apparatus.
  • FIG. 3 is a diagram showing the configuration of an FMD (flash module device).
  • FIG. 4 is a diagram showing an example of the configuration of a VOL (volume) management table.
  • FIG. 5 is a diagram showing an example of the configuration of the pool configuration management table.
  • FIG. 6 is a diagram showing an example of the configuration of a RAID configuration management table.
  • FIG. 7 is a diagram showing an example of the configuration of the pool allocation management table.
  • FIG. 8 is a diagram showing an example of the configuration of the drive assignment management table.
  • FIG. 9 is a diagram showing an example of the configuration of the real drive assignment management table.
  • FIG. 10 is a diagram showing an example of the configuration of the logical storage hierarchy.
  • FIG. 11 is a diagram showing a configuration example of a management table of HA pair configuration.
  • FIG. 12 is a flowchart showing the read process.
  • FIG. 13 is a flowchart showing the write process.
  • FIG. 14 is a flowchart showing the XCOPY process.
  • FIG. 15 is a flowchart showing allocation information copy processing.
  • FIG. 16 is a flowchart showing data attribute change processing.
  • FIG. 17 is a flowchart showing VOL copy processing.
  • FIG. 18 illustrates an example of two or more cascaded HA pairs.
  • the “interface unit” may include at least one of a user interface unit and a communication interface unit.
  • the user interface unit includes at least one I / O device of one or more I / O devices (eg, input devices (eg, keyboard and pointing device), output devices (eg, display devices)), and a display computer.
  • the communication interface unit may include one or more communication interface devices.
  • the one or more communication interface devices may be one or more same type communication interface devices (for example, one or more NICs (Network Interface Card)) or two or more different type communication interface devices (for example, NIC and HBA (Host Bus) Adapter)).
  • the “memory unit” includes one or more memories.
  • the at least one memory may be volatile memory or non-volatile memory.
  • the memory unit is mainly used in processing by the processor unit.
  • processor unit includes one or more processors. At least one processor is typically a CPU (Central Processing Unit).
  • CPU Central Processing Unit
  • the processor may include hardware circuitry that performs some or all of the processing.
  • information may be described by an expression such as “xxx table”, but the information may be expressed by any data structure. That is, the "xxx table” can be called “xxx information” to indicate that the information does not depend on the data structure.
  • the configuration of each table is an example, and one table may be divided into two or more tables, or all or part of two or more tables may be one table. Good.
  • the storage device 11 when the same kind of element is described without distinction, the common code among the reference numerals is used, and when the same kind of element is distinguished, the reference code (or the ID of the element (for example, identification)
  • storage device 11 when the storage device is not distinguished, it is referred to as “storage device 11”, and when the storage device is distinguished, “storage device 11A”, “storage device 11B”, or , “Storage device 1", “storage device 2" and so on.
  • the "storage system” includes one or more storage devices.
  • the at least one storage device may be a general purpose physical computer.
  • at least one storage device may be a virtual storage device or may execute software-defined anything (SDx).
  • SDx software-defined anything
  • SDS Software Defined Storage
  • SDDC Software-defined Datacenter
  • FIG. 1 is a diagram showing the procedure of offload data copy in a storage system in an HA pair configuration.
  • the storage system 100 having the HA pair configuration has two or more storage devices 11 that the host computer 13 accesses via the network 14.
  • the storage system 100 includes storage devices 1 and 2.
  • the storage system 100 is managed by a management computer (not shown).
  • Each storage device 11 has one or more volumes (logical storage areas).
  • the host computer 13 may be a physical computer or a virtual computer executed by the physical computer.
  • the host computer 13 may be a virtual computer executed in the storage system.
  • the storage system 100 provides the host computer 13 with two or more different volumes in two or more different storage devices 11 as the same volume. Specifically, for example, according to the HA configuration, PVOL (Primary Volume) 111 P and SVOL (Secondary Volume) 111 S are provided to the host computer 13 as one virtual VOL 15 (virtual VOL-A).
  • PVOL Primary Volume
  • SVOL Secondary Volume
  • PVOL 111A and SVOL 111B data is synchronously replicated in two volumes (PVOL 111A and SVOL 111B).
  • the host computer 13 can access both the PVOL 111A and the SVOL 111B. That is, an Active-Active configuration is realized in which both volumes (VOLs) (both storage devices 1 and 2) are in charge of I / O processing simultaneously.
  • VOLs volumes
  • each of the storage devices 1 and 2 responds with the same virtual ID (for example, virtual device ID and virtual VOL ID). Therefore, the host computer 13 can access both the PVOL 111 A of the storage device 1 and the SVOL 111 B of the storage device 2 by specifying the virtual ID assigned to the VOL of the one HA pair configuration.
  • both PVOL 111A and SVOL 111B are accessed with the same VOL ID "VOL-A".
  • the offload data copy is basically that the storage system 1 and the storage system 2 execute not the host computer 13 but the copy that the host computer 13 performs.
  • the offload data copy function the copy is executed without the host computer 13 inputting / outputting the copy target data. For this reason, it can be expected to reduce the amount of resources (for example, CPU and memory) used by the host computer 13 and to reduce the amount of communication between the host computer 13 and the storage device 11.
  • FIG. 1A shows an example in which the host computer 13 sends an XCOPY command, which is one of iSCSI commands, to the storage apparatus 1.
  • the XCOPY instruction is adopted as an example of the offload data copy instruction in FIG. 1A, the offload data copy instruction is not limited to the XCOPY instruction (for example, it may be an ODX instruction for offloading copy processing) ).
  • each of the storage devices 1 and 2 manages an attribute for each data area in order to detect that data update has occurred in response to a write command from the host computer 13.
  • the attributes of the data area include an attribute "common” indicating that an update has not occurred, and an attribute "only” indicating that an update has occurred (even if there are attributes other than "common” and "only” Good).
  • the storage device 1 When the storage device 1 receives from the host computer 13 an XCOPY instruction specifying the address 1 of the allocation destination of the data area storing data A, the attribute of the data area 113A storing data A is updated. "Common" to indicate that it is not Next, the allocation information is copied, and the XCOPY process (an example of the offload data copy process) is completed.
  • the storage device 1 receives an XCOPY command from the host computer 13 via the network 14.
  • the XCOPY instruction includes the address 1 (copy source address 1) of the allocation destination of the data area 113A of the data A and the copy destination address 2.
  • the XCOPY process from S2 starts.
  • the storage device 1 secures exclusion of the slot indicated by the copy source address 1 of the PVOL 111. This prevents the data A in that slot from being updated from the host computer 13.
  • the "slot” is an area in the VOL. “Ensure exclusion of slot” is an operation to prevent read and write to the slot indicated by the address specified by the read instruction and write instruction from the host computer 13, and the host computer 13 recognizes that the exclusion is ensured. Manage the information of. The type of this information is not limited as long as it can be identified as a bit map or time information.
  • slot is an area in a VOL (for example, TP-VOL which is a VOL according to thin provisioning), while "data area” is an area allocated to a slot (for example, in a pool). (Pool area) which is an area of
  • the storage device 1 transmits, to the storage device 2, a data attribute change request for the copy source address 1 of the SVOL 111B.
  • the address n (n is a natural number) of the PVOL 111A and the address n of the SVOL 111B may be the same address.
  • the storage device 2 that has received the data attribute change request has the data attribute of the data area (data area storing data A) 113B allocated to the copy source address 1 of SVOL 111B, and the data attribute is “ If it is other than "common” (for example, "only”), change to "common”.
  • the storage device 1 secures exclusion of the slot indicated by the copy destination address 2 of the PVOL 111.
  • the storage device 1 determines whether the data attribute of the data area 113A is "common”. If the determination result is false (if the data attribute is “independent”), the storage device 1 cancels the offload data copying process. Specifically, for example, the storage device 1 starts over from (S2) (an error may be returned to the host computer 13 to start over from (S1)). For example, after (S5), when the storage device 1 has received a write command specifying copy source address 1 of PVOL, if the data attribute of the data area 113A is other than "only” Change to "only” (for example, if "common”). In such a case, the determination result of (S9) is false.
  • the storage device 1 copies allocation information from copy source address 1 to copy destination address 2 (that is, adds copy destination address 2 as an allocation destination of data area 113A). ). As a result, the data A can be read or updated via the copy destination address 2 as well. Since allocation information copying is performed while exclusion is secured for copy destination address 2, the copy target data A is updated even if a write instruction specifying copy destination address 2 is received during allocation information copying. It can prevent.
  • the storage device 1 transmits, to the storage device 2, an allocation copy request which is a request for copying allocation information from the copy source address 1 to the copy destination address 2 of the SVOL 111B.
  • (S12) The storage system 2 that has received the allocation copy request determines whether the data attribute of the data area 113B is “common”. If the determination result is false (if the data attribute is "only"), the storage system 2 returns an error to the storage system 1, and the storage system 1 restarts from (S2) (returns an error to the host computer 13 You may redo from S1)). For example, after (S5), when the storage apparatus 2 receives a write command specifying copy source address 1 of SVOL, if the data attribute of the data area 113B is other than "only” Change to "only” (for example, if "common”). In such a case, the determination result of (S12) is false.
  • the storage system 2 copies allocation information from the copy source address 1 to the copy destination address 2 of the SVOL 111B (that is, copy destination address 2 as an allocation destination of the data area 113B). to add). As a result, the data A can be read out via the copy destination address 2 as well.
  • FIG. 2 is a diagram showing the configuration of the storage device 11.
  • the storage device 11 includes one or more storage controllers 22 and a plurality of drives 28 connected to the one or more storage controllers 22.
  • the storage controller 22 controls an FE I / F (front end interface device) 23 for communicating with the host computer 13, a storage I / F (storage interface device) 29 for communicating between storage devices, and the entire device.
  • the memory 25 also includes a program area 201 for managing a program, a buffer area 202 which is a temporary storage area at the time of data transfer or copy, write data from the host computer 13 (data written in response to a write command And a cache area 203 for temporarily storing read data from the drive 28 (data read in response to a read command), and a table management area 204 for storing various tables.
  • the table management area 204 includes a VOL management table 205 for holding information on VOL, a pool configuration management table 206 for holding information on pool, a RAID configuration management table 207 for holding information on RAID configuration, and a pool for holding information on pool allocation.
  • Allocation management table 208, drive allocation management table 209 holding information on drive allocation, real drive allocation management table 210 holding information on real drive allocation, and HA pair management table 211 holding information on HA pair are stored. .
  • the drive 28 may be a solid state drive (SSD) or a hard disk drive (HDD), but may be an FMD (flash module device) 31 (see FIG. 3) described later.
  • a plurality of drives 28 may constitute a plurality of RAID groups (also called parity groups). Each RAID group is composed of one or more drives 28.
  • the storage device 1 is connected to another storage device (for example, the storage device 2) via the storage I / F 29 of the storage device 1.
  • An FC (Fibre Channel) network for example, SAN
  • an IP (Internet Protocol) network for example, LAN
  • FC Fibre Channel
  • IP Internet Protocol
  • the FE I / F 23, the BE I / F 27, and the storage I / F 29 are examples of the interface unit.
  • the memory 25 is an example of the memory unit.
  • the processor 24 is an example of a processor unit.
  • FIG. 3 shows the configuration of the FMD 31. As shown in FIG. 3
  • the FMD 31 includes one or more FMD controllers 32 and one or more FMs (flash memories) 39 connected to the one or more FMD controllers 32.
  • the FMD controller 32 includes an FE I / F 33 that communicates with the storage controller 22, a processor 34 that controls input and output of data to the FM, a compression / decompression circuit 35 that performs compression and decompression, and a memory 36 that stores data management information And a BE I / F 38 in communication with the FM 39.
  • the FM 39 is configured of one or more FM chips.
  • the FM chip is composed of a plurality of physical areas.
  • the FM chip is a NAND flash and is configured of a plurality of physical blocks.
  • the FMD controller 32 provides a host system (storage controller 22) with a drive address space 301 which is a virtual address space.
  • the FMD controller 32 manages the correspondence between the allocation management information 303 of the drive address space 301 and the allocation management information 304 of the real drive address space 302 that manages the physical area (for example, the data size changes by the compression / decompression circuit 35) Management of assigned information).
  • the FMD controller 32 assigns allocation management information 304 of the real drive address space 302 corresponding to the allocation management information 303 of the drive address space 301 specified by the I / O (read or write) instruction from the upper system (storage controller 22). Identify the physical area indicated by and perform I / O on the identified physical area.
  • the assignment management information 303 is, for example, an LBA (Logical Block Address), and the assignment management information 304 is, for example, a PBA (Physical Block Address). That is, the FMD controller 32 performs address conversion between the logical address (LBA) and the physical address (PBA).
  • LBA Logical Block Address
  • PBA Physical Block Address
  • FIG. 4 is a diagram showing an example of the configuration of the VOL management table 205. As shown in FIG.
  • the VOL management table 205 has an entry for each VOL. Each entry stores information such as VOL ID 41, VOL attribute 42, allocation copy flag 43, VOL capacity 44, and pool ID 45.
  • VOL ID 41 VOL ID 41
  • VOL attribute 42 allocation copy flag 43
  • VOL capacity 44 VOL capacity 44
  • pool ID 45 pool ID 45
  • the VOL ID 41 is an ID of a target VOL.
  • the VOL attribute 42 indicates the attribute of the target VOL.
  • the allocation copy flag 43 indicates whether or not there is an allocation copy function (whether copying of allocation information can be performed).
  • the VOL capacity 44 indicates the capacity of the target VOL.
  • the pool ID 45 is an ID of a pool associated with the target VOL.
  • the processor 24 can determine whether allocation information copying that does not require data transfer can be performed by referring to the allocation copy flag 43 of the VOL management table 40 in the XCOPY process. For example, if the allocation copy flag 43 is "present", allocation information copy is selected. However, since the allocation copy function is required for both the data copy source VOL and the copy destination VOL, it is necessary to determine each of the copy source VOL and the copy destination VOL.
  • FIG. 5 is a diagram showing a configuration example of the pool configuration management table 206.
  • a pool is a logical storage area configured based on one or more RAID groups.
  • the pool configuration management table 206 has an entry for each pool. Each entry stores information such as pool ID 51, RAID group ID 52, pool capacity 53, and pool capacity 54.
  • pool ID 51 RAID group ID 52
  • pool capacity 53 pool capacity 53
  • pool capacity 54 pool capacity 54
  • the pool ID 51 is an ID of a target pool.
  • the RAID group ID 52 is an ID of each of one or more RAID groups on which the target pool is based.
  • the pool capacity 53 indicates the capacity of the target pool.
  • the pool usage capacity 54 indicates the total amount of the area allocated to the VOL among the pool capacities of the target pool.
  • FIG. 6 is a diagram showing an example of the configuration of the RAID configuration management table 207. As shown in FIG. 6
  • the RAID configuration management table 207 has an entry for each RAID group. Each entry stores information such as RAID group ID 61, drive ID 62, drive type 63, capacity 64, and used capacity 65.
  • RAID group ID 61 a RAID group
  • drive ID 62 a RAID group
  • drive type 63 a RAID group
  • capacity 64 a capacity 64
  • used capacity 65 a RAID group
  • the RAID group ID 61 is an ID of a target RAID group.
  • the drive ID 62 is an ID of each of one or more drives constituting the target RAID group.
  • the drive type 63 indicates the type of drive constituting the target RAID group.
  • the capacity 64 indicates the capacity of the target RAID group.
  • the used capacity 65 indicates the used capacity of the capacity of the target RAID group.
  • FIG. 7 is a diagram showing a configuration example of the pool allocation management table 208.
  • the pool allocation management table 208 has an entry for each VOL address (address indicating a slot). Each entry stores information such as VOL ID 71, VOL address 72, pool ID 73, pool address 74, and data attribute 75.
  • VOL address indicating a slot
  • VOL address 72 indicating a slot
  • pool ID 73 indicating a slot
  • data attribute 75 indicating a slot
  • VOL address 72 indicating a slot
  • target VOL address in the description of FIG. 7
  • the VOL ID 71 is the ID of the VOL to which the target VOL address belongs.
  • the VOL address 72 is a target VOL address.
  • the pool ID 73 is an ID of a pool including a data area allocated to the target VOL address.
  • the pool address 74 is an address (address belonging to a pool) of the data area allocated to the target VOL address.
  • Data attribute 75 indicates the data attribute of the data area allocated to the target VOL address.
  • FIG. 8 is a diagram showing a configuration example of the drive assignment management table 209. As shown in FIG.
  • the drive assignment management table 209 has an entry for each pool address. Each entry stores information such as pool ID 81, pool address 82, RAID group ID 83, drive ID 84 and drive address 85.
  • pool ID 81 pool address
  • pool address 82 RAID group ID 83
  • drive ID 84 drive address 85.
  • target pool address one pool address
  • the pool ID 81 is an ID of a pool to which the target pool address belongs.
  • the pool address 82 is a target pool address.
  • the RAID group ID 83 is an ID of a RAID group that is the basis of the data area indicated by the target pool address.
  • the drive ID 84 is an ID of a drive that is the basis of the data area indicated by the target pool address.
  • the drive address 85 is a drive address corresponding to the target pool address (for example, an address (for example, LBA) belonging to the drive address space 301).
  • FIG. 9 is a diagram showing a configuration example of the real drive assignment management table 210. As shown in FIG.
  • the actual drive assignment management table 210 has an entry for each drive address. Each entry stores information such as drive ID 91, drive address 92, size before compression 93, actual drive ID 94, actual drive address 95, size after compression 96, and compression ratio 97.
  • drive address (“target drive address” in the description of FIG. 9) will be taken as an example.
  • the drive ID 91 is an ID of the drive 28 to which the target drive address belongs.
  • the drive address 92 is a target drive address.
  • the size before compression 93 indicates the size before compression of data according to the write instruction specifying the target drive address.
  • the actual drive ID 94 is an ID of a storage medium (for example, FM) in the drive 28 to which the target drive address belongs.
  • the real drive address 95 is a real drive address (for example, an address belonging to the real drive address space 302) assigned to the target drive address.
  • the size after compression 96 indicates the size after compression of data according to the write instruction specifying the target drive address.
  • the compression ratio 97 is a value of size after compression 96 / size before compression 93.
  • FIG. 10 is a diagram showing an example of the configuration of the logical storage hierarchy.
  • the VOL 111 is provided to the host computer 13. Also, the VOL 111 may point to one pool address from a plurality of slots (or a plurality of VOLs) in the VOL due to copy processing and deduplication processing. In the example of FIG. 10, two different slots (VOL addresses) 1006 and 1007 point to the same pool address.
  • the allocation of the VOL 111 to the pool 1002 is managed based on the pool allocation management table 208. Further, allocation from the pool 1002 to the drive address space 1004 (a plurality of drive address spaces provided by a plurality of drives constituting the RAID group 1003) is managed based on the drive allocation management table 209.
  • the drive address space 1004 becomes a storage destination of data.
  • the real drive address space below the drive address space 1004 is adopted.
  • data a after compression of data A is stored in the real drive address space 1005.
  • FIG. 11 is a diagram showing an example of the configuration of the HA pair management table 211.
  • the HA pair management table 211 has an entry for each VOL. Each entry stores information such as storage controller ID 1101, VOL ID 1102, HA pair attribute 1103, partner ID 1104 and virtual ID 1105.
  • VOL storage controller ID 1101, VOL ID 1102, HA pair attribute 1103, partner ID 1104 and virtual ID 1105.
  • VOL target VOL
  • the storage controller ID 1101 is an ID of the storage controller 22 in the storage apparatus having the target VOL.
  • VOL ID 1102 is the ID of the target VOL.
  • the HA pair attribute 1103 indicates the attribute of the target VOL. If the target VOL constitutes an HA pair, the HA pair attribute 1103 is "PVOL" or "SVOL". If the target VOL does not constitute an HA pair, the HA pair attribute 1103 is "none”.
  • the partner ID 1104 is an ID of the storage controller 22 in the storage apparatus having a VOL that forms an HA pair with the target VOL.
  • the other party ID 1104 may include the ID of the other party's VOL of the HA pair.
  • the virtual ID 1105 is a virtual ID to which the target VOL belongs.
  • FIG. 12 is a flowchart showing the read process.
  • the read process starts when the storage device 11 receives a read command from the host computer 13 via the network 14.
  • a virtual ID for example, virtual VOL ID
  • an address for example, an address
  • a data size are specified.
  • the virtual ID is the PVOL ID (for the storage device 2)
  • the virtual ID is the SVOL ID).
  • the processor 24 ensures exclusion of the slot specified from the read command. Note that if another process secures slot exclusion at the time of slot exclusion securing, the processor 24 waits for a certain period of time and then executes S1201.
  • the processor 24 determines whether read data exists in the cache area 203. If the determination result in S1202 is true, the process proceeds to S1204. If the determination result in S1202 is false, the processor 24 transfers read data from the RAID group to the cache area 203 in S1203. At this time, the processor 24 specifies the pool ID 73 and the pool address 74 of the pool allocation management table 208 from the VOL ID and VOL address specified by the host computer 13, and the drive ID 84 and the drive address 85 from the drive allocation management table 209. Refer to Finally, the processor 24 refers to the real drive ID 94 and the real drive address 95 from the real drive assignment management table 210 to specify the data storage location. The data transferred from the actual drive address is present in the cache area 203 until it is written out again to the drive, and if read again, S1203 is skipped.
  • the processor 24 transfers the read data on the cache area 203 to the host computer 13.
  • the host computer 13 recognizes that the read processing is completed when the data transfer of S1204 is completed.
  • the processor 24 cancels the reserved slot exclusion at S1205.
  • FIG. 13 is a flowchart showing the write process.
  • the write process starts when the storage device 11 receives a write command from the host computer 13.
  • the following cases may exist as a write command to be received.
  • “A” is added to the reference numerals of the elements of the storage device 1 (for example, the processor 24 is referred to as “processor 24A”).
  • Reference numerals of elements of the storage device 2 are attached with “B” (for example, the processor 24 is referred to as “processor 24 B”).
  • Case 1 Write command for VOL other than HA pair configuration
  • Case 2 Write command for PVOL 111A in HA pair configuration (write command specifying virtual ID to which PVOL 111A belongs and write command for storage device 1)
  • Case 3 A write command for SVOL 111 B in an HA pair configuration (a write command specifying a virtual ID to which SVOL 111 B belongs and a write command for storage device 2)
  • a VOL whose HA pair attribute 1103A is "none" is specified in the HA pair management table 211A of the storage device 1.
  • the processor 24A refers to the HA pair management table 211A and determines whether the write destination VOL configures an HA pair (whether the HA pair attribute 1103A is “PVOL” or “SVOL”) Determine In Case 1, the determination result of S1301 is false. Therefore, in S1314, the processor 24A secures exclusion of the slot indicated by the address specified by the host computer 13. At the same time as securing the slot exclusion, the processor 24A assigns a CM slot (a part of the CM area 203A) to which data is to be written.
  • the processor 24A responds to the host computer 13 with "Ready” indicating that preparation for write processing is complete.
  • the processor 24A receives write data from the host computer 13 that has received "Ready”.
  • the processor 24A returns a write completion response to the host computer 13.
  • the host computer 13 considers that the write process is completed.
  • the processor 24A cancels the secured slot exclusion at S1317.
  • the processor 24A writes the data stored in the CM area 203A to the drive 28A (destaging).
  • the processor 24A For writing to the drive 28A, the processor 24A allocates a pool, a drive, and a real drive, and registers allocation information in the pool allocation management table 208A, the drive allocation management table 209A, and the real drive allocation management table 210A. . Note that writing of this data is not necessarily performed because it is not synchronized with the writing process.
  • the VOL having the HA pair attribute 1103A of "PVOL", that is, the PVOL 111A is specified.
  • the determination result of S1301 is true.
  • the processor 24A determines whether the write destination VOL is PVOL.
  • the determination result of S1302 is true.
  • the processor 24A secures exclusion of the slot indicated by the address specified by the host computer 13.
  • the processor 24A responds "Ready.”
  • the processor 24A receives the write data from the host computer 13 that has received "Ready”.
  • the processor 24A transfers the write command and the write data to the SVOL 111B (the storage apparatus 2 having the SVOL 111B) which forms an HA pair with the PVOL 111A.
  • the processor 24B of the storage device 2 temporarily stores the write data in the received buffer area 202B, secures the CM slot from the CM area 203B, and then transfers the write data to the CM slot (CM area 203B).
  • the processor 24B returns a completion response to the storage device 1.
  • the processor 24A of the storage device 1 returns a write processing completion response to the host computer 13. Thereafter, in S1317, the processor 24A cancels the reserved slot exclusion.
  • the processor 24A (and 24B) writes the data on the CM area 203A (and 203B) to the drive 28A (and 28B).
  • the processor 24A (and 28B) allocates a pool, a drive, and a real drive, and the pool allocation management table 208A (208B) and the drive allocation management table 209A (209B) Allocation information is registered in each table of the real drive allocation management table 210A (210B).
  • the processor 24A (and 28B) allocates a pool, a drive, and a real drive
  • the pool allocation management table 208A (208B) and the drive allocation management table 209A (209B) Allocation information is registered in each table of the real drive allocation management table 210A (210B).
  • data writing to the drive is performed in each of the PVOL 111A and the SVOL 111B. Note that writing of this data is not necessarily performed because it is not synchronized with the writing process.
  • a VOL having “SVOL” as the HA pair attribute 1103 B, that is, SVOL 111 B is specified.
  • the determination result of S1301 is true.
  • the determination result of S1302 is false.
  • the processor 24B of the storage system 2 responds "Ready”.
  • the processor 24B receives the write data from the host computer 13 that has received "Ready”.
  • the processor 24 temporarily stores the received data in the buffer area 202B.
  • the processor 24B transfers the write command and the write data to the PVOL 111A (the storage device 1 having the PVOL 111A) that forms an HA pair with the SVOL 111B.
  • the processor 24A of the storage device 1 stores the transferred write data in the buffer area 202A.
  • the processor 24A ensures exclusion of the slot indicated by the VOL address specified in the write instruction. Further, simultaneously with the slot exclusion, the processor 24A secures a CM slot (a partial area of the CM area 203A). At S1311, the processor 24A transfers data from the buffer area 202A to the CM slot. After the data transfer is completed, the processor 24A returns a completion response to the storage device 2. In S1312, the processor 24B secures a CM slot (a partial area of the CM area 203B), and transfers data from the buffer area 202B to the CM slot. After the data transfer is completed, the processor 24B returns a write process completion response to the host computer 13. At this point, the host computer considers that the write process is complete.
  • the processor 24B requests the storage device 1 to release the write destination slot exclusion.
  • the processor 24A releases the reserved slot exclusion in response to the request.
  • the processor 24B (and 24A) writes the data on the CM area 203B (and 203A) to the drive 28B (and 28A).
  • the processor 24B (and 24A) allocates a pool, a drive, and a real drive for writing to the drive 28B (and 28A), and the pool allocation management table 208B (208A), Allocation information is registered in each of the drive allocation management table 209B (209A) and the real drive allocation management table 210B (210A).
  • FIG. 14 is a flowchart showing the XCOPY process.
  • the following cases may exist as an XCOPY command to be received.
  • Case 1 XCOPY instruction specifying copying from PVOL to identical PVOL
  • Case 2 XCOPY instruction specifying copying from PVOL to another PVOL
  • Case 3 XCOPY specifying copying from SVOL to identical SVOL Instruction
  • Case 4 XCOPY instruction specifying copy from SVOL to another SVOL
  • Case 5 XCOPY instruction specifying copy of VOL without allocation copy function
  • Case 6 XCOPY instruction specifying copy from PVOL to SVOL
  • Case 7 XCOPY instruction specifying copying from SVOL to PVOL
  • Case 8 XCOPY instruction specifying copying from PVOL to VOL other than HA pair configuration
  • Case 9 Copy from SVOL to VOL other than HA pair configuration Command specifying XPD
  • Case 10 XCOPY command specifying copying from VOL to PVOL other than HA pair configuration
  • Case 11
  • the storage device 1 receives the XCOPY command from the host computer 13.
  • copy source VOL information VOL ID and VOL address
  • copy destination VOL information VOL ID and VOL address
  • the processor 24A refers to the VOL management table 205A (and the HA pair management table 211A) to search for a copy source VOL. If the copy source VOL is not found (S1402: NO), the processor 24A returns an error to the host computer 13 in S1403.
  • the processor 24A refers to the VOL management table 205A (and the HA pair management table 211A) to search for a copy destination VOL. If the copy destination VOL is not found (S1405: NO), the processor 24A returns an error to the host computer 13.
  • the processor 24A determines whether the allocation copy flag 43A is "present" for both the copy source VOL and the copy destination VOL. In Case 1 and Case 2, the determination result of S1407 is true. In S1408, the processor 24A performs allocation information copy processing (FIG. 15) from the copy source VOL to the copy destination VOL.
  • the processor 24A determines whether it is copy processing between PVOLs or SVOLs. In the determination of S1501, the processor 24A refers to the HA pair management table 211A, and identifies the HA pair attribute 1103 from the VOL ID 1102. If both the copy source VOL and the copy destination VOL are PVOLs (S1501: YES and S1502: YES), in S1504, the processor 24A excludes the slot in the copy source PVOL (the slot indicated by the VOL address specified by the host computer 13). Secure. In S1505, the processor 240A performs data attribute change (FIG.
  • the processor 24A refers to the data attribute 75A corresponding to the copy source VOL address from the pool allocation management table 208A. If the referenced data attribute 75A is "only" (1602: NO), the data attribute 75A is changed to "common” in S1603. After that, in S1506 in FIG. 15, the processor 24A requests the storage apparatus 2 having the SVOL that forms an HA pair with the copy source PVOL to change the data attribute of the copy source data.
  • the processor 24B of the storage device 2 performs data attribute change for changing the data attribute of the copy source data corresponding to the copy source VOL address for the SVOL. That is, as shown in FIG. 16, in S1601, the processor 24B refers to the data attribute 75B corresponding to the copy source VOL address. If the data attribute 75B is "only" (S1602: NO), the processor 24B changes the data attribute 75B to "common". When the data attribute change is completed, the processor 24B returns a completion response to the storage device 1. The processor 24A of the storage device 1 having received the completion response cancels the secured slot exclusion at S1507 in FIG. In S1508, the processor 24A secures exclusion of the slot indicated by the copy destination VOL address. In S1509, the processor 24A performs VOL copy processing which is copy processing of allocation information related to PVOL.
  • VOL copy processing is as shown in FIG. That is, in S1701, the processor 24A refers again to the data attribute 75A corresponding to the copy source VOL address. If the referenced data attribute 75A is changed to "only" by the update processing from the host computer 13 (S1702: NO), the processor 24A returns a response to redo of the XCOPY processing in S1705, assuming that a so-called passing is detected. . If the data attribute 75A remains "common" (S1702: YES), the processor 24A copies the allocation information assigned to the copy source VOL address to the copy destination VOL address in S1703.
  • the processor 24A registers the VOL ID 71 and the VOL address 72 of the copy destination VOL in the entry of the pool allocation management table 208A, and the pool ID 73, the pool address 74 and the pool address 74 corresponding to the copy source VOL address Copy data attribute 75.
  • the processor 24A returns a Good response at S1704.
  • the processor 24A requests the storage apparatus 2 for VOL copy processing, which is copy processing of allocation information for SVOL, to the storage apparatus 2 in S1511. Do.
  • the processor 24B performs VOL copy processing (VOL copy processing described with reference to FIG. 17) similar to that of the PVOL for the SVOL.
  • the processor 24B returns a response indicating the result of the VOL copy process to the storage device 1.
  • the processor 24A cancels exclusion of the copy destination slot in S1513. After that, for example, the processor 24A returns an error of the XCOPY processing (for example, a retransmission request of the XCOPY instruction) to the host computer 13.
  • an error of the XCOPY processing for example, a retransmission request of the XCOPY instruction
  • Cases 3 and 4 are different from cases 1 and 2 in, for example, the following points.
  • the storage system 2 receives an XCOPY command from the host computer 13.
  • S1502: NO and in S1503, the processor 24B requests the PVOL (storage device 1 having PVOL that forms an HA pair with the SVOL to change the data attribute of the copy source VOL address).
  • the processor 24A performs S1504 and subsequent steps.
  • the storage device 1 or the storage device 2 receives the XCOPY command from the host computer 13. Hereinafter, it is assumed that the storage device 1 receives the XCOPY command.
  • the determination result of S1407 is false.
  • the processor 24A reads the data to be copied from the copy source VOL address into the buffer area 202A.
  • the processor 24A writes copy target data from the buffer area 202A to the copy destination VOL address.
  • the storage device 1 or the storage device 2 receives the XCOPY command from the host computer 13.
  • the determination result in S1407 is true is taken as an example.
  • the determination result of S1501 is false (S1501: NO). Therefore, the processor 24A secures exclusion of the slot indicated by the copy source VOL address in S1514.
  • the processor 24A changes the data attribute of the copy source data pointed to by the copy source VOL address. The details of the data attribute change in S1515 are as shown in FIG. That is, if the data attribute 75A of the copy source data is "only", the processor 24A changes the data attribute 75A to "common".
  • the processor 24A releases the slot exclusion of the secured copy source data.
  • the processor 24A secures the exclusion of the slot for the copy destination VOL address in S1517.
  • the processor 24A performs VOL copy processing of allocation information at S1518. The details of this VOL copy processing are as shown in FIG. That is, when the data attribute 75A remains "common", the processor 24A copies allocation information on the copy source VOL address to the copy destination VOL address.
  • the processor 24A releases the slot exclusion for the copy destination VOL address.
  • the processor 24A determines whether the VOL copy processing has been completed normally (whether a Good response has been returned). If the determination result of S1520 is false (S1520: NO), the process returns to S1514. If the determination result in S1520 is true (S1520: YES), the XCOPY process ends.
  • the data processing time can be reduced while realizing high reliability by the HA pair configuration that can operate the system even if the entire storage apparatus 11 is down. It is possible to enable offload data copying that achieves high performance and resource efficiency such as a reduction in the load on the host computer 13.
  • Example 2 will be described. At that time, the differences from the first embodiment will be mainly described, and the description of the points in common with the first embodiment will be omitted or simplified.
  • the processor 24A secures the exclusion of the copy source address 1 and the copy destination address 2 of the PVOL 111A simultaneously by using the fact that the slot of the PVOL 111A needs to be excluded for the HA pair configuration update process (that is, In FIG. 1 (S2), exclusion of both copy source address 1 and copy destination address 2 is secured). Also, the processor 24A unlocks the slot after copying the allocation information.
  • Such functions are included in each storage device other than the storage device 1 in addition to the storage device 1.
  • the processor 24A may ensure exclusion of the copy destination address 2 before (S7) in FIG. 1 and simultaneously cancel the exclusion for both the copy source address 1 and the copy destination address 2.
  • the present invention is not limited to the above-described embodiments, and includes various modifications. Further, the above-described embodiment has been described in detail in order to explain the present invention in an easy-to-understand manner, and is not necessarily limited to one having all the described configurations.
  • part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
  • each of the configurations, functions, processing units, processing means, and the like described above may be realized by hardware, for example, by designing part or all of them with an integrated circuit.
  • each configuration, function, etc. described above may be realized by software by the processor interpreting and executing a program that realizes each function.
  • Information such as a program, a table, and a file that implements each function may be stored in a storage device such as a memory, an HDD, an SSD, an IC card, an SD card, or a DVD.
  • control lines and information lines indicate what is considered to be necessary for the description, and not all control lines and information lines in the product are necessarily shown. In practice, almost all configurations may be considered to be mutually connected.
  • each element for example, the controller can be identified by a number or the like, various identification information such as a name may be used as long as the information can identify each element.
  • identification information such as a name may be used as long as the information can identify each element.
  • the same reference numerals are given to the same parts in the drawings and the description of the above embodiments, but the present invention is not limited to the above embodiments, and any application that conforms to the concept of the present invention is the technology of the present invention Within the scope of Further, unless otherwise limited, each component may be plural or singular.
  • the present invention is also applicable to a configuration in which two or more HA pair configurations are cascaded as shown in FIG. 18 (SVOL / PVOL is an SVOL in an HA pair and another HA The pair means PVOL). Furthermore, the present invention is not limited to the HA pair, and may be applied to other types of VOL pairs (pairs of PVOL and SVOL) in which a write can be generated to the SVOL.

Landscapes

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

Abstract

プライマリボリュームを有するストレージ装置1と、セカンダリボリュームを有しているストレージ装置2との各々は、ライト命令を受信した場合、そのライト命令で指定されているアドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第1属性以外の属性であれば、第1属性に変更するようになっている。オフロードデータコピー処理において、ストレージ装置1及び2の各々が、コピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更する。ストレージ装置1及び2の各々が、データ領域を前記オブロードデータコピー命令に従うコピー先アドレスに割り当てることであるアロケーション情報コピーを行うときに、そのデータ領域のデータ属性が第1属性であれば、オフロードデータコピー処理を中止する。

Description

ストレージシステム及び記憶制御方法
 本発明はストレージシステムに関する。
 ストレージシステムは、一般的に、1以上のストレージ装置を備える。1以上のストレージ装置の各々は、一般的に、記憶デバイスとして、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)を備える。ストレージシステムが、SAN(Storage Area Network)やLAN(Local Area Network)といったネットワーク経由で、1又は複数の上位装置(例えば、ホスト計算機)からアクセスされる。一般的に、ストレージ装置は、RAID(Redundant Array of Independent (or Inexpensive) Disks)技術に従う高信頼化方法を用いることで信頼性を向上している。
 特許文献1には、可用性を向上させることができる情報システムが開示されている。特許文献1によれば、第1ストレージ装置の第1ボリュームと、第2ストレージの第2ボリュームとを同一のボリュームとしてホスト計算機に提供する。ホスト計算機からは第1のボリュームと第2のボリュームはパスが異なる同一のボリュームとして認識される。
 特許文献2には、第1ストレージ装置の第1ボリュームと第2ストレージ装置の第2ボリュームとがそれぞれ同じ仮想IDをホスト計算機に応答するHA(High Availability)ペア構成が開示されている。特許文献2によれば、第1ストレージ装置又は第2ストレージ装置が、仮想IDをコピー先として指定したオフロードデータコピー指示をホスト計算機から受信すると、コピー先ボリュームが存在するストレージ装置に応じて、第1ボリューム又は第2ボリュームのいずれかをコピー元ボリュームとして選択し、当該選択したコピー元ボリュームからコピー先ボリュームにデータをコピーする。
米国特許出願公開第2009/0271582号明細書 国際公開第2015/189925号パンフレット
 オフロードデータコピーのために、ボリューム間又はストレージ装置間でデータ転送が発生する。このような場合、オフロードデータコピーの処理速度は、データ転送の帯域幅によって制限される。
 処理速度を向上する方法として、コピー対象のデータそれ自体に代えて、ストレージ装置内でのデータ格納場所を示す情報(アロケーション情報)を転送する方法が考えられる。しかし、HAペア構成を組むボリュームへアロケーション情報を転送する場合、ホスト計算機からのデータ更新とのすれ違いに気づくことができずにHAペア間でデータの不一致(不整合)が生じるおそれがある。
 このような課題は、HAペア構成を有するストレージシステムに限らず、異なる2以上のストレージ装置における異なる2以上のボリュームを同一のボリュームとしてホスト計算機に提供する他のストレージシステムについてもあり得る。
 ストレージシステムが、ホスト計算機に接続される複数のストレージ装置を有する。複数のストレージ装置のいずれかが、ペアを構成するプライマリボリューム及びセカンダリボリュームのうちのプライマリボリュームを有する第1ストレージ装置である。複数のストレージ装置のいずれかが、前記セカンダリボリュームを有している第2ストレージ装置である。プライマリボリューム及びセカンダリボリュームのいずれも更新され得るボリュームである。第1ストレージ装置及び第2ストレージ装置の各々は、ライト命令を受信した場合、そのライト命令で指定されているアドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第1属性以外の属性であれば、第1属性に変更するようになっている。第1ストレージ装置又は第2ストレージ装置が前記ホスト計算機からオフロードデータコピー命令を受信した場合に行われるオフロードデータコピー処理において、第1ストレージ装置及び第2ストレージ装置の各々が、
(A)オフロードデータコピー命令に従うコピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更し、
(B)データ領域を前記オブロードデータコピー命令に従うコピー先アドレスに割り当てることであるアロケーション情報コピーを行うときに、
そのデータ領域のデータ属性が第2属性であれば、アロケーション情報コピーを行い、
そのデータ領域のデータ属性が第1属性であれば、オフロードデータコピー処理を中止する(例えば後述のようにやり直す)。
 コピー対象のデータそれ自体のデータ転送が不要のため、オフロードデータコピーのコピー処理時間を削減することができる。また、データ領域についてデータ属性が管理されており、アロケーション情報コピー前にデータ更新がされていればその更新が生じたことを検知できるので、コピー対象のデータそれ自体のデータ転送が不要なオフロードデータコピー処理において、データの整合性を維持することができる。
図1は、HAペア構成のストレージシステムにおけるオフロードデータコピーの手順を示す図である。 図2は、ストレージ装置の構成を示す図である。 図3は、FMD(フラッシュモジュールデバイス)の構成を示す図である。 図4は、VOL(ボリューム)管理テーブルの構成例を示す図である。 図5は、プール構成管理テーブルの構成例を示す図である。 図6は、RAID構成管理テーブルの構成例を示す図である。 図7は、プール割当管理テーブルの構成例を示す図である。 図8は、ドライブ割当管理テーブルの構成例を示す図である。 図9は、実ドライブ割当管理テーブルの構成例を示す図である。 図10は、論理記憶階層の構成例を示す図である。 図11は、HAペア構成の管理テーブルの構成例を示す図である。 図12は、リード処理を示すフローチャートである。 図13は、ライト処理を示すフローチャートである。 図14は、XCOPY処理を示すフローチャートである。 図15は、アロケーション情報コピー処理を示すフローチャートである。 図16は、データ属性変更処理を示すフローチャートである。 図17は、VOLコピー処理を示すフローチャートである。 図18は、カスケード状の2以上のHAペアの一例を示す。
 以下の説明では、「インターフェース部」は、ユーザインターフェース部と、通信インターフェース部とのうちの少なくとも1つを含んでよい。ユーザインターフェース部は、1以上のI/Oデバイス(例えば入力デバイス(例えばキーボード及びポインティングデバイス)と出力デバイス(例えば表示デバイス))と表示用計算機とのうちの少なくとも1つのI/Oデバイスを含んでよい。通信インターフェース部は、1以上の通信インターフェースデバイスを含んでよい。1以上の通信インターフェースデバイスは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
 また、以下の説明では、「メモリ部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。メモリ部は、主に、プロセッサ部による処理の際に使用される。
 また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)である。プロセッサは、処理の一部又は全部を行うハードウェア回路を含んでもよい。
 また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号(又は要素のID(例えば識別番号)を使用することがある。例えば、ストレージ装置を区別しない場合には、「ストレージ装置11」と言い、ストレージ装置を区別する場合には、「ストレージ装置11A」、「ストレージ装置11B」、又は、「ストレージ装置1」、「ストレージ装置2」のように言う。
 また、以下の説明では、「ストレージシステム」は、1以上のストレージ装置を含む。少なくとも1つのストレージ装置は、汎用的な物理計算機であってもよい。また、少なくとも1つのストレージ装置が、仮想的なストレージ装置であってもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。
 以下、幾つかの実施例を図面に基づいて説明する。
 以下、実施例1を説明する。
 <HAペア構成>
 図1は、HAペア構成のストレージシステムにおけるオフロードデータコピーの手順を示す図である。
 HAペア構成を有するストレージシステム100は、ホスト計算機13がネットワーク14を介してアクセスする2以上のストレージ装置11を有する。図1Aの例によれば、ストレージシステム100は、ストレージ装置1及び2を有する。ストレージシステム100は、管理計算機(図示せず)により管理される。各ストレージ装置11は、1以上のボリューム(論理的な記憶領域)を有する。ホスト計算機13は、物理的な計算機でもよいし、物理的な計算機で実行される仮想的な計算機でもよい。ホスト計算機13は、ストレージシステムにおいて実行される仮想的な計算機でもよい。
 ストレージシステム100は、異なる2以上のストレージ装置11における異なる2以上のボリュームを同一のボリュームとしてホスト計算機13に提供する。具体的には、例えば、HA構成によれば、PVOL(Primary Volume)111PとSVOL(Secondary Volume)111Sが、ホスト計算機13へ1つの仮想VOL15(仮想VOL-A)として提供される。
 また、HAペア構成のストレージシステム100では、2つのボリューム(PVOL111A及びSVOL111B)でデータを同期的に複製する。PVOL111AとSVOL111Bとの双方にホスト計算機13がアクセス可能である。すなわち、両方のボリューム(VOL)(両方のストレージ装置1及び2)が同時にI/O処理を担当するActive-Active構成が実現される。PVOL111A及びSVOL111Bのいずれについても、ホスト計算機13からのInquiryコマンドに対して、ストレージ装置1及び2の各々は、同じ仮想ID(例えば、仮想装置ID及び仮想VOL ID)を応答する。そのため、ホスト計算機13は、1組のHAペア構成のVOLに割り当てられた仮想IDを指定することで、ストレージ装置1のPVOL111Aとストレージ装置2のSVOL111Bとのどちらにもアクセスできる。
 ホスト計算機13からは、PVOL111AもSVOL111Bも同じVOL ID“VOL-A”でアクセスされる。
 <HAペア構成におけるオフロードデータコピー>
 オフロードデータコピーとは、本来はホスト計算機13が行うコピーを、ホスト計算機13ではなくストレージ装置1及びストレージ装置2が実行することである。オフロードデータコピーの機能により、ホスト計算機13がコピー対象データの入出力をすることなく、コピーが実行される。このため、ホスト計算機13が使用するリソース(例えばCPUやメモリ)の量を削減すること、及び、ホスト計算機13とストレージ装置11間の通信量を削減することが見込める。
 図1Aは、ホスト計算機13がiSCSIコマンドの一つであるXCOPY命令をストレージ装置1に対して送信する例を示している。なお、図1Aでは、オフロードデータコピー命令の一例として、XCOPY命令が採用されているが、オフロードデータコピー命令は、XCOPY命令に限られない(例えば、コピー処理をオフロードするODX命令でもよい)。
 次に、このHAペア構成のストレージシステム100において、ホスト計算機13からデータのコピー処理をストレージ装置1及びストレージ装置2にオフロードするオフロードデータコピー処理について説明する。
 本実施例では、ストレージ装置1及び2の各々が、ホスト計算機13からのライト命令に応答してデータの更新が発生したことを検知するため、データ領域ごとに属性を管理する。データ領域の属性として、更新が発生していないことを示す属性「共通」と、更新が発生したことを示す属性「単独」とがある(「共通」及び「単独」以外の属性があってもよい)。
 ストレージ装置1は、ホスト計算機13から、データAを格納したデータ領域の割当て先のアドレス1を指定したXCOPY命令を受けると、データAを格納しているデータ領域113Aの属性を、更新が発生していないことを示す「共通」とする。次に、アロケーション情報をコピーして、XCOPY処理(オフロードデータコピー処理の一例)が完了する。
 具体例は、下記に示す通りである。
 (S1)ストレージ装置1は、ホスト計算機13からネットワーク14を介してXCOPY命令を受信する。XCOPY命令は、データAのデータ領域113Aの割当て先のアドレス1(コピー元アドレス1)とコピー先アドレス2とを含んでいる。XCOPY命令を受信した場合に、S2以降のXCOPY処理が開始する。
 (S2)ストレージ装置1は、XCOPY命令に応答して、PVOL111のコピー元アドレス1が示すスロットの排他を確保する。これにより、そのスロット内のデータAがホスト計算機13から更新されることを防ぐ。「スロット」とは、VOLにおける領域である。「スロットの排他を確保」とは、ホスト計算機13からのリード命令及びライト命令で指定されたアドレスが示すスロットに対するリード及びライトを防ぐ操作で、排他を確保したことをホスト計算機13が認識するための情報を管理する。なお、この情報はビットマップや時間情報など識別できるものであれば種別は問わない。また、本実施例において、「スロット」が、VOL(例えば、シンプロビジョニングに従うVOLであるTP-VOL)における領域であるのに対し、「データ領域」は、スロットに割り当てられる領域(例えば、プール内の領域であるプール領域)である。
 (S3)ストレージ装置1は、コピー元アドレス1に割り当てられているデータ領域(データAを格納しているデータ領域)113のデータ属性を、そのデータ属性が「共通」以外であれば(例えば「単独」であれば)、「共通」に変更する。(S2)の排他確保の後に、ストレージ装置1でのデータ属性変更に加えて、後述のようにストレージ装置2でのデータ属性変更が行われるので、ストレージ装置1及び2の両方においてデータ属性「共通」に統一できる。
 (S4)ストレージ装置1は、ストレージ装置2に対して、SVOL111Bのコピー元アドレス1のデータ属性変更要求を送信する。なお、PVOL111Aのアドレスn(nは自然数)とSVOL111Bのアドレスnは、同じアドレスでよい。
 (S5)データ属性変更要求を受けたストレージ装置2は、SVOL111Bのコピー元アドレス1に割り当てられているデータ領域(データAを格納しているデータ領域)113Bのデータ属性を、そのデータ属性が「共通」以外であれば(例えば「単独」であれば)、「共通」に変更する。
 (S6)ストレージ装置2は、属性変更の完了応答をストレージ装置1に返す。
 (S7)属性変更の完了応答を受けたストレージ装置1は、PVOL111Aのコピー元アドレス1が示すスロットの排他を解除する。この段階でコピー元アドレス1について排他が解除されるため、ホスト計算機13に対して、アドレス1についての更新を禁止する期間を短くすることができる。
 (S8)ストレージ装置1は、PVOL111のコピー先アドレス2が示すスロットの排他を確保する。
 (S9)ストレージ装置1は、データ領域113Aのデータ属性が「共通」であるか否かを判定する。判定結果が偽の場合(データ属性が「単独」の場合)、ストレージ装置1は、オフロードデータコピー処理を中止する。具体的には、例えば、ストレージ装置1は、(S2)からやり直す(エラーをホスト計算機13に返して(S1)からやり直してもよい)。例えば、(S5)の後に、ストレージ装置1は、PVOLのコピー元アドレス1を指定したライト命令を受信していた場合、データ領域113Aのデータ属性を、そのデータ属性が「単独」以外であれば(例えば「共通」であれば)、「単独」に変更する。このような場合、(S9)の判定結果が偽となる。
 (S10)S9の判定結果が真の場合、ストレージ装置1は、コピー元アドレス1からコピー先アドレス2へアロケーション情報をコピーする(すなわち、データ領域113Aの割当て先として、コピー先アドレス2を追加する)。これにより、コピー先アドレス2経由でもデータAを読み出す又は更新することができるようになる。コピー先アドレス2について排他が確保されている間にアロケーション情報コピーが行われるので、コピー先アドレス2を指定したライト命令をアロケーション情報コピー中に受けてもコピー対象データAが更新されてしまうことを防ぐことができる。
 (S11)ストレージ装置1は、ストレージ装置2に対し、SVOL111Bのコピー元アドレス1からコピー先アドレス2へのアロケーション情報のコピーの要求であるアロケーションコピー要求を送信する。
 (S12)アロケーションコピー要求を受けたストレージ装置2は、 データ領域113Bのデータ属性が「共通」であるか否かを判定する。判定結果が偽の場合(データ属性が「単独」の場合)、ストレージ装置2は、ストレージ装置1にエラーを返し、ストレージ装置1が、(S2)からやり直す(エラーをホスト計算機13に返して(S1)からやり直してもよい)。例えば、(S5)の後に、ストレージ装置2は、SVOLのコピー元アドレス1を指定したライト命令を受信していた場合、データ領域113Bのデータ属性を、そのデータ属性が「単独」以外であれば(例えば「共通」であれば)、「単独」に変更する。このような場合、(S12)の判定結果が偽となる。
 (S13)S12の判定結果が真の場合、ストレージ装置2は、SVOL111Bのコピー元アドレス1からコピー先アドレス2へアロケーション情報をコピーする(すなわち、データ領域113Bの割当て先として、コピー先アドレス2を追加する)。これにより、コピー先アドレス2経由でもデータAを読み出すことができるようになる。
 (S14)ストレージ装置2は、アロケーション情報コピーの完了応答をストレージ装置1に返す。
 (S15)アロケーション情報コピーの完了応答を受けたストレージ装置1は、PVOL111Aのコピー先アドレス2が示すスロットの排他を解除する。これにより、アドレス1に加えてアドレス2についても、ホスト計算機13に対して、更新可能なアドレスとすることができる。
 (S16)ストレージ装置1は、ホスト計算機13へ、ネットワーク14を介して、XCOPY命令の完了応答を返す。
 以上が、XCOPY処理の一例である。
 <ストレージ装置>
 図2は、ストレージ装置11の構成を示す図である。
 ストレージ装置11は、1以上のストレージコントローラ22と、1以上のストレージコントローラ22に接続された複数のドライブ28とを有する。
 ストレージコントローラ22は、ホスト計算機13との通信を行うFE I/F(フロントエンドインターフェースデバイス)23、ストレージ装置間での通信を行うためのストレージI/F(ストレージインターフェースデバイス)29、装置全体を制御するプロセッサ24、プロセッサ24で使用されるプログラムや情報を格納するメモリ25、ドライブ28との通信を行うBE I/F(バックエンドインターフェースデバイス)27、及びそれらをつなぐ内部ネットワーク26を備える。また、メモリ25は、プログラムを管理するプログラム領域201、データの転送やコピーの時の一時的な保存領域であるバッファ領域202、ホスト計算機13からのライトデータ(ライト命令に応答して書き込まれるデータ)及びドライブ28からのリードデータ(リード命令に応答して読み出されたデータ)を一時的に格納するキャッシュ領域203、種々のテーブルを格納するテーブル管理領域204を有する。テーブル管理領域204は、VOLに関する情報を保持するVOL管理テーブル205、プールに関する情報を保持するプール構成管理テーブル206、RAID構成に関する情報を保持するRAID構成管理テーブル207、プール割当てに関する情報を保持するプール割当管理テーブル208、ドライブ割当てに関する情報を保持するドライブ割当管理テーブル209、実ドライブ割当に関する情報を保持する実ドライブ割当管理テーブル210、及び、HAペアに関する情報を保持するHAペア管理テーブル211を格納する。
 ドライブ28は、SSD(Solid State Drive)でもHDD(Hard Disk Drive)でもよいが、後述のFMD(フラッシュモジュールデバイス)31(図3参照)でもよい。複数のドライブ28が、複数のRAIDグループ(パリティグループとも呼ばれる)を構成してよい。各RAIDグループは、1以上のドライブ28から構成される。
 HAペア構成では、ストレージ装置1のストレージI/F29を介して、別のストレージ装置(例えばストレージ装置2)と接続される。ストレージI/F29には、FC(Fibre Channel)ネットワーク(例えばSAN)やIP(Internet Protocol)ネットワーク(例えばLAN)が接続されてよい。
 FE I/F23、BE I/F27及びストレージI/F29が、インターフェース部の一例である。メモリ25が、メモリ部の一例である。プロセッサ24が、プロセッサ部の一例である。
 <フラッシュモジュール>
 図3には、FMD31の構成を示す図である。
 FMD31は、1以上のFMDコントローラ32と、1以上のFMDコントローラ32に接続された1以上のFM(フラッシュメモリ)39とを有する。
 FMDコントローラ32は、ストレージコントローラ22と通信を行うFE I/F33、FMへのデータの入出力を制御するプロセッサ34、圧縮及び伸張を行う圧縮/伸長回路35、データ管理情報を格納するメモリ36、及び、FM39と通信を行うBE I/F38を有する。
 FM39は、1以上のFMチップで構成されている。FMチップは、複数の物理領域で構成されている。具体的には、例えば、FMチップは、NANDフラッシュであり、複数の物理ブロックで構成されている。
 FMDコントローラ32は、仮想的なアドレス空間であるドライブアドレス空間301を上位システム(ストレージコントローラ22)に提供する。FMDコントローラ32は、ドライブアドレス空間301の割当管理情報303と物理領域を管理する実ドライブアドレス空間302の割当管理情報304との対応関係を管理する(例えば、圧縮/伸長回路35によりデータサイズが変化した割当情報の管理)。FMDコントローラ32は、上位システム(ストレージコントローラ22)からのI/O(リードもしくはライト)命令で指定されているドライブアドレス空間301の割当管理情報303に対応した実ドライブアドレス空間302の割当管理情報304が示す物理領域を特定し、特定した物理領域に対してI/Oを行う。割当管理情報303は、例えば、LBA(Logical Block Address)であり、割当管理情報304は、例えば、PBA(Physical Block Address)である。つまり、FMDコントローラ32は、論理アドレス(LBA)と物理アドレス(PBA)のアドレス変換を行う。
 <VOL管理テーブル>
 図4は、VOL管理テーブル205の構成例を示す図である。
 VOL管理テーブル205は、VOL毎にエントリを有する。各エントリは、VOL ID41、VOL属性42、アロケーションコピーフラグ43、VOL容量44及びプールID45といった情報を格納する。以下、1つのVOL(図4の説明において「対象VOL」)を例に取る。
 VOL ID41は、対象VOLのIDである。VOL属性42は、対象VOLの属性を示す。アロケーションコピーフラグ43は、アロケーションコピー機能があるか否か(アロケーション情報のコピーが行われ得るか否か)を示す。VOL容量44は、対象VOLの容量を示す。プールID45は、対象VOLに関連付けられているプールのIDである。
 プロセッサ24は、XCOPY処理において、VOL管理テーブル40のアロケーションコピーフラグ43を参照することで、データ転送を必要としないアロケーション情報コピーが実行可能か否かを判定できる。例えば、アロケーションコピーフラグ43“有り”ならばアロケーション情報コピーを選択する。ただし、データのコピー元VOL及びコピー先VOLの両方でアロケーションコピー機能が必要なため、コピー元VOL及びコピー先VOLのそれぞれについての判定が必要となる。
 <構成管理テーブル>
 図5は、プール構成管理テーブル206の構成例を示す図である。
 プールは、1以上のRAIDグループを基に構成された論理記憶領域である。プール構成管理テーブル206は、プール毎にエントリを有する。各エントリは、プールID51、RAIDグループID52、プール容量53及びプール使用容量54といった情報を格納する。以下、1つのプール(図5の説明において「対象プール」)を例に取る。
 プールID51は、対象プールのIDである。RAIDグループID52は、対象プールの基になっている1以上のRAIDグループの各々のIDである。プール容量53は、対象プールの容量を示す。プール使用容量54は、対象プールのプール容量のうちVOLに割り当てられている領域の総量を示す。
 図6は、RAID構成管理テーブル207の構成例を示す図である。
 RAID構成管理テーブル207は、RAIDグループ毎にエントリを有する。各エントリは、RAIDグループID61、ドライブID62、ドライブ種別63、容量64及び使用容量65といった情報を格納する。以下、1つのRAIDグループ(図6の説明において「対象RAIDグループ」)を例に取る。
 RAIDグループID61は、対象RAIDグループのIDである。ドライブID62は、対象RAIDグループを構成する1以上のドライブの各々のIDである。ドライブ種別63は、対象RAIDグループを構成するドライブの種別を示す。容量64は、対象RAIDグループの容量を示す。使用容量65は、対象RAIDグループの容量のうちの使用されている容量を示す。
 <割当管理テーブル>
 図7は、プール割当管理テーブル208の構成例を示す図である。
 プール割当管理テーブル208は、VOLアドレス(スロットを示すアドレス)毎にエントリを有する。各エントリは、VOL ID71、VOLアドレス72、プールID73、プールアドレス74及びデータ属性75といった情報を格納する。以下、1つのVOLアドレス(図7の説明において「対象VOLアドレス」)を例に取る。
 VOL ID71は、対象VOLアドレスが属するVOLのIDである。VOLアドレス72は、対象VOLアドレスである。プールID73は、対象VOLアドレスに割り当てられているデータ領域を含むプールのIDである。プールアドレス74は、対象VOLアドレスに割り当てられているデータ領域のアドレス(プールに属するアドレス)である。データ属性75は、対象VOLアドレスに割り当てられているデータ領域のデータ属性を示す。
 図8は、ドライブ割当管理テーブル209の構成例を示す図である。
 ドライブ割当管理テーブル209は、プールアドレス毎にエントリを有する。各エントリは、プールID81、プールアドレス82、RAIDグループID83、ドライブID84及びドライブアドレス85といった情報を格納する。以下、1つのプールアドレス(図8の説明において「対象プールアドレス」)を例に取る。
 プールID81は、対象プールアドレスが属するプールのIDである。プールアドレス82は、対象プールアドレスである。RAIDグループID83は、対象プールアドレスが示すデータ領域の基になっているRAIDグループのIDである。ドライブID84は、対象プールアドレスが示すデータ領域の基になっているドライブのIDである。ドライブアドレス85は、対象プールアドレスに対応したドライブアドレス(例えば、ドライブアドレス空間301に属するアドレス(例えばLBA))である。
 図9は、実ドライブ割当管理テーブル210の構成例を示す図である。
 実ドライブ割当管理テーブル210は、ドライブアドレス毎にエントリを有する。各エントリは、ドライブID91、ドライブアドレス92、圧縮前サイズ93、実ドライブID94、実ドライブアドレス95、圧縮後サイズ96及び圧縮率97といった情報を格納する。以下、1つのドライブアドレス(図9の説明において「対象ドライブアドレス」)を例に取る。
 ドライブID91は、対象ドライブアドレスが属するドライブ28のIDである。ドライブアドレス92は、対象ドライブアドレスである。圧縮前サイズ93は、対象ドライブアドレスを指定したライト命令に従うデータの圧縮前のサイズを示す。実ドライブID94は、対象ドライブアドレスが属するドライブ28内の記憶媒体(例えばFM)のIDである。実ドライブアドレス95は、対象ドライブアドレスに割り当てられた実ドライブアドレス(例えば、実ドライブアドレス空間302に属するアドレス)である。圧縮後サイズ96は、対象ドライブアドレスを指定したライト命令に従うデータの圧縮後のサイズを示す。圧縮率97は、圧縮後サイズ96/圧縮前サイズ93の値である。
 <論理記憶階層>
 図10は、論理記憶階層の構成例を示す図である。
 VOL111は、ホスト計算機13に提供される。また、VOL111は、コピー処理や重複排除処理によって、VOL内の複数のスロット(又は、複数のVOL)から1つのプールアドレスを指すことがある。図10の例では、異なる2つのスロット(VOLアドレス)1006及び1007が、同一のプールアドレスを指している。なお、VOL111からプール1002の割当は、プール割当管理テーブル208を基に管理される。また、プール1002からドライブアドレス空間1004(RAIDグループ1003を構成する複数のドライブが提供する複数のドライブアドレス空間)への割当は、ドライブ割当管理テーブル209を基に管理される。
 圧縮機能を有しないドライブが採用された場合、ドライブアドレス空間1004がデータの格納先となるが、図3に示したようなFMDが採用された場合、ドライブアドレス空間1004の下位に実ドライブアドレス空間1005が存在する。実ドライブアドレス空間1005に、例えばデータAの圧縮後のデータaが格納される。
 <HAペア管理>
 図11は、HAペア管理テーブル211の構成例を示す図である。
 HAペア管理テーブル211は、VOL毎にエントリを有する。各エントリは、ストレージコントローラID1101、VOL ID1102、HAペア属性1103、相手ID1104及び仮想ID1105といった情報を格納する。以下、1つのVOL(図11の説明において「対象VOL」)を例に取る。
 ストレージコントローラID1101は、対象VOLを有するストレージ装置内のストレージコントローラ22のIDである。VOL ID1102は、対象VOLのIDである。HAペア属性1103は、対象VOLの属性を示す。対象VOLが、HAペアを構成していれば、HAペア属性1103は「PVOL」又は「SVOL」である。対象VOLが、HAペアを構成していなければ、HAペア属性1103は「なし」である。相手ID1104は、対象VOLとHAペアを構成するVOLを有するストレージ装置内のストレージコントローラ22のIDである。相手ID1104は、HAペアの相手のVOLのIDを含んでもよい。仮想ID1105は、対象VOLが属する仮想IDである。
 以下、本実施例で行われる処理の例を説明する。
 <リード処理>
 図12は、リード処理を示すフローチャートである。リード処理は、ホスト計算機13からネットワーク14を介してストレージ装置11がリード命令を受けた場合に開始する。リード命令では、例えば、仮想ID(例えば、仮想VOL ID)、アドレス、及びデータサイズが指定される。ストレージ装置1にとっては、仮想IDはPVOLのIDである(ストレージ装置2にとっては、仮想IDはSVOLのIDである)。 
 S1201で、プロセッサ24は、リード命令から特定されるスロットの排他を確保する。なお、スロット排他確保時に他の処理がスロットの排他を確保している場合、プロセッサ24は、一定の時間待ってから、S1201を行う。
 S1202で、プロセッサ24は、リードデータがキャッシュ領域203に存在するか否かを判定する。S1202の判定結果が真の場合、S1204に進む。S1202の判定結果が偽の場合、プロセッサ24は、S1203で、RAIDグループからリードデータをキャッシュ領域203に転送する。なお、この際、プロセッサ24は、ホスト計算機13が指定したVOL IDとVOLアドレスから、プール割当管理テーブル208のプールID73とプールアドレス74を特定し、ドライブ割当管理テーブル209からドライブID84とドライブアドレス85を参照する。最後に、プロセッサ24は、実ドライブ割当管理テーブル210から実ドライブID94と実ドライブアドレス95を参照し、データの格納場所を特定する。実ドライブアドレスから転送されたデータは、ドライブに再び書き出されるまでキャッシュ領域203に存在し、再度リードされた場合にはS1203をスキップする。
 S1204で、プロセッサ24は、キャッシュ領域203上のリードデータをホスト計算機13に転送する。ホスト計算機13は、S1204のデータ転送が完了した時点でリード処理が終了したと認識する。
 その後、プロセッサ24は、S1205で、確保していたスロット排他を解除する。
 <ライト処理>
 図13は、ライト処理を示すフローチャートである。ライト処理は、ホスト計算機13からストレージ装置11がライト命令を受信した場合に開始する。受信するライト命令として、以下のケースが存在し得る。以下の説明では、ストレージ装置1がライト命令を受信したとする。また、以下の説明では、ストレージ装置1の要素の参照番号に「A」を付す(例えば、プロセッサ24を「プロセッサ24A」と言う)。ストレージ装置2の要素の参照番号に「B」を付す(例えば、プロセッサ24を「プロセッサ24B」と言う)。
・ケース1: HAペア構成以外のVOLに対するライト命令
・ケース2: HAペア構成のPVOL111Aに対するライト命令(PVOL111Aが属する仮想IDを指定したライト命令であってストレージ装置1に対するライト命令)
・ケース3: HAペア構成のSVOL111Bに対するライト命令(SVOL111Bが属する仮想IDを指定したライト命令であってストレージ装置2に対するライト命令)
 <ケース1>
 受信したライト命令では、ストレージ装置1のHAペア管理テーブル211AにおいてHAペア属性1103Aが「なし」のVOLが指定されている。S1301で、プロセッサ24Aは、HAペア管理テーブル211Aを参照し、ライト先VOLがHAペアを構成するか否か(HAペア属性1103Aが「PVOL」及び「SVOL」のいずれかであるか否か)を判定する。ケース1では、S1301の判定結果は偽である。このため、S1314で、プロセッサ24Aは、ホスト計算機13から指定されたアドレスが示すスロットの排他を確保する。なお、スロット排他確保と同時に、プロセッサ24Aは、データのライト先とするCMスロット(CM領域203Aの一部の領域)を割り当てる。S1315で、プロセッサ24Aは、ホスト計算機13に対してライト処理の準備ができたことを示す「Ready」を応答する。プロセッサ24Aは、「Ready」を受け取ったホスト計算機13から、ライトデータを受ける。その後、S1316で、プロセッサ24Aは、ホスト計算機13に対してライト完了応答を返す。この時点で、CM領域203Aへデータライトが完了したとして、ホスト計算機13はライト処理が完了したとみなす。その後、プロセッサ24Aは、S1317で、確保していたスロット排他を解除する。また、S1318で、プロセッサ24Aは、CM領域203Aに格納されたデータをドライブ28Aに書き出す(デステージ)。ドライブ28Aへの書き出しに対して、プロセッサ24Aは、プール、ドライブ、実ドライブをアロケーションし、プール割当管理テーブル208A、ドライブ割当管理テーブル209A、実ドライブ割当管理テーブル210Aの各テーブルにアロケーション情報を登録する。なお、このデータの書き出しはライト処理と同期しないため必ずしも実行される必要はない。
 <ケース2>
 受信したライト命令を基に、HAペア属性1103Aが「PVOL」のVOL、つまりPVOL111Aが特定される。S1301の判定結果が真である。S1302で、プロセッサ24Aは、ライト先のVOLがPVOLか否かを判定する。S1302の判定結果は真である。S1303で、プロセッサ24Aは、ホスト計算機13から指定されたアドレスが示すスロットの排他を確保する。1304で、プロセッサ24Aは、「Ready」を応答する。プロセッサ24Aは、「Ready」を受けたホスト計算機13からライトデータを受信する。その後、S1305で、プロセッサ24Aは、PVOL111AとHAペアを構成するSVOL111B(SVOL111Bを有するストレージ装置2)に対してライト命令とライトデータを転送する。S1306で、ストレージ装置2のプロセッサ24Bは、受信したバッファ領域202Bにライトデータを一時格納し、CM領域203BからCMスロットを確保した後、ライトデータをCMスロット(CM領域203B)に転送する。データ転送が完了するとプロセッサ24Bがストレージ装置1に完了応答を返す。ストレージ装置1のプロセッサ24Aは、完了応答を受けると、ホスト計算機13に対してライト処理の完了応答を返す。その後、S1317で、プロセッサ24Aが、確保していたスロット排他を解除する。また、S1318で、プロセッサ24A(及び24B)が、CM領域203A(及び203B)上のデータをドライブ28A(及び28B)に書き出す。なお、ケース1同様、ドライブ28Aへの書き出しに対して、プロセッサ24A(及び28B)は、プール、ドライブ、実ドライブをアロケーションし、プール割当管理テーブル208A(208B)、ドライブ割当管理テーブル209A(209B)、実ドライブ割当管理テーブル210A(210B)の各テーブルにアロケーション情報を登録する。HAペア構成の場合、上述のように、PVOL111A及びSVOL111Bのそれぞれでドライブへのデータ書き出しが行われる。なお、このデータの書き出しはライト処理と同期しないため必ずしも実行される必要はない。
 <ケース3>
 受信したライト命令を基に、HAペア属性1103Bが「SVOL」のVOL、つまりSVOL111Bが特定される。S1301の判定結果が真である。S1302の判定結果が偽である。S1308で、ストレージ装置2のプロセッサ24Bが、「Ready」を応答する。「Ready」を受けたホスト計算機13から、プロセッサ24Bが、ライトデータを受信する。プロセッサ24は、受信したデータをバッファ領域202Bに一時的に格納する。S1309で、プロセッサ24Bが、SVOL111BとHAペアを構成するPVOL111A(PVOL111Aを有するストレージ装置1)に対してライト命令及びライトデータを転送する。ストレージ装置1のプロセッサ24Aは、転送されたライトデータをバッファ領域202Aに格納する。S1310で、プロセッサ24Aは、ライト命令において指定されたVOLアドレスが示すスロットの排他を確保する。また、スロット排他と同時に、プロセッサ24Aは、CMスロット(CM領域203Aの一部領域)を確保する。S1311で、プロセッサ24Aは、バッファ領域202AからCMスロットにデータを転送する。データ転送完了後、プロセッサ24Aは、ストレージ装置2に完了応答を返す。S1312で、プロセッサ24Bは、CMスロット(CM領域203Bの一部領域)を確保し、バッファ領域202BからデータをそのCMスロットに転送する。データ転送完了後、プロセッサ24Bは、ホスト計算機13に対してライト処理の完了応答を返す。この時点でホスト計算機は、ライト処理が完了したとみなす。その後、S1313で、プロセッサ24Bは、ストレージ装置1に対してライト先スロットの排他の解除を要求する。S1317で、プロセッサ24Aが、その要求に応答して、確保していたスロット排他を解除する。また、S1318で、プロセッサ24B(及び24A)が、CM領域203B(及び203A)上のデータをドライブ28B(及び28A)に書き出す。なお、ケース1、ケース2と同様、ドライブ28B(及び28A)への書き出しに対して、プロセッサ24B(及び24A)が、プール、ドライブ、実ドライブをアロケーションし、プール割当管理テーブル208B(208A)、ドライブ割当管理テーブル209B(209A)、実ドライブ割当管理テーブル210B(210A)の各テーブルにアロケーション情報を登録する。また、ケース2と同様にHAペア構成の場合、上述のように、PVOL111A及びSVOL111Bのそれぞれでドライブへのデータ書き出しが行われる。なお、このデータの書き出しはライト処理と同期しないため必ずしも実行される必要はない。
 <オフロードデータコピー処理>
 図14は、XCOPY処理を示すフローチャートである。受信するXCOPY命令として、以下のケースが存在し得る。
・ケース1: PVOLから同一のPVOLへのコピーを指定したXCOPY命令
・ケース2: PVOLから別のPVOLへのコピーを指定したXCOPY命令
・ケース3: SVOLから同一のSVOLへのコピーを指定したXCOPY命令
・ケース4: SVOLから別のSVOLへのコピーを指定したXCOPY命令
・ケース5: アロケーションコピー機能がないVOLのコピーを指定したXCOPY命令
・ケース6: PVOLからSVOLへのコピーを指定したXCOPY命令
・ケース7: SVOLからPVOLへのコピーを指定したXCOPY命令
・ケース8: PVOLからHAペア構成以外のVOLへのコピーを指定したXCOPY命令
・ケース9: SVOLからHAペア構成以外のVOLへのコピーを指定したXCOPY命令
・ケース10: HAペア構成以外のVOLからPVOLへのコピーを指定したXCOPY命令
・ケース11: HAペア構成以外のVOLからSVOLへのコピーを指定したXCOPY命令
 <ケース1及びケース2>
 ホスト計算機13からストレージ装置1がXCOPY命令を受信する。XCOPY命令では、コピー元VOL情報(VOL ID及びVOLアドレス)及びコピー先VOL情報(VOL ID及びVOLアドレス)が指定されている。
 S1401で、プロセッサ24Aが、VOL管理テーブル205A(及びHAペア管理テーブル211A)を参照し、コピー元VOLを探す。コピー元VOLが見つからなければ(S1402:NO)、S1403で、プロセッサ24Aは、エラーをホスト計算機13に返す。
 コピー元VOLが見つかれば(S1402:YES)、S1404で、プロセッサ24Aは、VOL管理テーブル205A(及びHAペア管理テーブル211A)を参照し、コピー先VOLを探す。コピー先VOLが見つからなければ(S1405:NO)、プロセッサ24Aが、エラーをホスト計算機13に返す。
 コピー元VOLが見つかれば(S1405:YES)、S1407で、プロセッサ24Aが、コピー元VOL及びコピー先VOL共にアロケーションコピーフラグ43Aが「有り」か否かを判定する。ケース1及びケース2において、S1407の判定結果が真とする。S1408で、プロセッサ24Aは、コピー元VOLからコピー先VOLへのアロケーション情報コピー処理(図15)を行う。
 すなわち、図15に示すように、S1501で、プロセッサ24Aは、PVOL間もしくはSVOL間のコピー処理であるか否かを判定する。S1501の判定には、プロセッサ24Aは、HAペア管理テーブル211Aを参照し、VOL ID1102からHAペア属性1103を特定する。コピー元VOL及びコピー先VOL共にPVOLの場合(S1501:YES及びS1502:YES)、S1504で、プロセッサ24Aが、コピー元PVOL内のスロット(ホスト計算機13が指定したVOLアドレスが示すスロット)の排他を確保する。S1505で、プロセッサ240Aが、VOLアドレスに対応したコピー元データ(VOLアドレスに割り当てられるデータ領域)のデータ属性を変更するデータ属性変更(図16)を行う。すなわち、図16に示すように、S1601で、プロセッサ24Aは、プール割当管理テーブル208Aから、コピー元VOLアドレスに対応するデータ属性75Aを参照する。参照したデータ属性75Aが「単独」であれば(1602:NO)、S1603で、そのデータ属性75Aを「共通」に変更する。その後、図15のS1506で、プロセッサ24Aは、コピー元PVOLとHAペアを構成するSVOLを有するストレージ装置2に対して、コピー元データのデータ属性変更を要求する。その要求に応答して、ストレージ装置2のプロセッサ24Bは、SVOLについてコピー元VOLアドレスに対応したコピー元データのデータ属性を変更するデータ属性変更を行う。すなわち、図16に示すように、S1601で、プロセッサ24Bが、コピー元VOLアドレスに対応するデータ属性75Bを参照する。そのデータ属性75Bが「単独」であれば(S1602:NO)、プロセッサ24Bは、そのデータ属性75Bを「共通」に変更する。データ属性変更が終了すると、プロセッサ24Bはストレージ装置1に完了応答を返す。完了応答を受けたストレージ装置1のプロセッサ24Aは、図15のS1507で、確保していたスロット排他を解除する。S1508で、プロセッサ24Aが、コピー先VOLアドレスが示すスロットの排他を確保する。S1509で、プロセッサ24Aが、PVOLに関するアロケーション情報のコピー処理であるVOLコピー処理を行う。
 VOLコピー処理は図17に示す通りである。すなわち、S1701で、プロセッサ24Aは、コピー元VOLアドレスに対応したデータ属性75Aを再度参照する。参照したデータ属性75Aがホスト計算機13からの更新処理により「単独」に変更されていた場合(S1702:NO)、いわゆるすれ違いを検知したとして、プロセッサ24Aは、S1705で、XCOPY処理のやり直し応答を返す。データ属性75Aが「共通」のままの場合(S1702:YES)、プロセッサ24Aが、S1703で、コピー元VOLアドレスに割り当てられているアロケーション情報をコピー先VOLアドレスにコピーする。具体的には、プロセッサ24Aは、プール割当管理テーブル208Aのエントリに、コピー先VOLのVOL ID71及びVOLアドレス72を登録し、そのエントリに、コピー元VOLアドレスに対応するプールID73、プールアドレス74及びデータ属性75をコピーする。アロケーション情報コピーが完了すると、S1704で、プロセッサ24Aが、Good応答を返す。
 図15に示すように、S1509についてGood応答が返った場合(S1510:YES)、プロセッサ24Aが、S1511で、ストレージ装置2に対して、SVOLについてのアロケーション情報のコピー処理であるVOLコピー処理を要求する。プロセッサ24Bは、その要求に応答して、PVOLと同様のVOLコピー処理(図17を参照して説明したVOLコピー処理)を、SVOLについて行う。プロセッサ24Bは、VOLコピー処理の結果を示す応答をストレージ装置1に返す。
 図15に示すように、S1511についてGood応答が返った場合(S1510:YES)、アロケーション情報コピー処理が終了し、プロセッサ24Aが、XCOPY処理の完了をホスト計算機13に返し、XCOPY処理が終了する(図14参照)。
 S1509又はS1511について、やり直し応答が返った場合(S1510:NO又はS1512:NO)、プロセッサ24Aは、S1513で、コピー先スロットの排他を解除する。その後、例えば、プロセッサ24Aが、XCOPY処理のエラー(例えばXCOPY命令の再送要求)をホスト計算機13に返す。
 以上が、ケース1及びケース2に該当するXCOPY命令のXCOPY処理である。以下、ケース3以降については、ケース1及びケース2のXCOPY処理との相違点を主に説明する。
 <ケース3及びケース4>
 ケース3及びケース4は、ケース1及びケース2と、例えば、以下の点で相違する。
・ホスト計算機13からストレージ装置2がXCOPY命令を受信する。
・S1502:NOとなり、プロセッサ24Bが、S1503で、SVOLとHAペアを構成するPVOL(PVOLを有するストレージ装置1)に対して、コピー元VOLアドレスについてデータ属性変更を要求する。その要求に応答して、プロセッサ24Aが、S1504以降を行う。
 <ケース5>
 ホスト計算機13からストレージ装置1もしくはストレージ装置2がXCOPY命令を受信する。以下、ストレージ装置1がXCOPY命令を受信したとする。S1407の判定結果が偽である。S1409で、プロセッサ24Aが、コピー元VOLアドレスからコピー対象のデータをバッファ領域202Aに読み出す。S1410で、プロセッサ24Aが、バッファ領域202Aからコピー先VOLアドレスへコピー対象データを書き込む。
 <ケース6-ケース11>
 ホスト計算機13からストレージ装置1もしくはストレージ装置2がXCOPY命令を受信する。以下、ストレージ装置1がXCOPY命令を受信したとする。また、S1407の判定結果が真の場合を例に取る。S1501の判定結果が偽である(S1501:NO)。そこで、プロセッサ24Aは、S1514で、コピー元VOLアドレスが示すスロットの排他を確保する。S1515で、プロセッサ24Aが、コピー元VOLアドレスが指すコピー元データのデータ属性変更を行う。S1515のデータ属性変更の詳細は、図16に示す通りである。すなわち、プロセッサ24Aが、コピー元データのデータ属性75Aが「単独」であれば、そのデータ属性75Aを「共通」に変更する。プロセッサ24Aは、S1516で、確保していたコピー元データのスロット排他を解除する。プロセッサ24Aは、S1517で、コピー先VOLアドレスについてスロットの排他を確保する。プロセッサ24Aは、S1518で、アロケーション情報のVOLコピー処理を行う。このVOLコピー処理の詳細は、図17に示す通りである。すなわち、プロセッサ24Aが、データ属性75Aが「共通」のままの場合、コピー元VOLアドレスについてのアロケーション情報をコピー先VOLアドレスにコピーする。プロセッサ24Aは、S1519で、コピー先VOLアドレスについてのスロット排他を解除する。プロセッサ24Aは、S1520で、VOLコピー処理が正常に完了したか否か(Good応答が返されたか否か)を判定する。S1520の判定結果が偽の場合(S1520:NO)、処理がS1514に戻る。S1520の判定結果が真の場合(S1520:YES)、XCOPY処理が終了する。
 以上説明したように、本実施例に係るストレージシステム100では、ストレージ装置11全体がダウンしてもシステムを稼動させることのできるHAペア構成による高い信頼性を実現しながら、データ処理時間の削減およびホスト計算機13の負荷の減少といった高性能化及びリソース効率化を実現したオフロードデータコピーを可能とすることができる。
 実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略又は簡略する。
 実施例2では、プロセッサ24Aは、HAペア構成の更新処理にはPVOL111Aのスロットの排他が必要なことを利用し、PVOL111Aのコピー元アドレス1及びコピー先アドレス2の排他の確保を同時に行う(つまり、図1の(S2)で、コピー元アドレス1とコピー先アドレス2の両方の排他を確保する)。また、プロセッサ24Aは、アロケーション情報のコピー後にスロットの排他を解除する。このような機能は、ストレージ装置1に加えてストレージ装置1以外の各ストレージ装置が有する。
 なお、プロセッサ24Aは、図1の(S7)の前に、コピー先アドレス2の排他を確保し、排他の解除を、コピー元アドレス1とコピー先アドレス2の両方について同時に行ってもよい。
 以上、本発明は上記した実施例に限定されるものではなく、さまざまな変形例が含まれる。また、上記した実施礼は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段などは、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイルなどの情報は、メモリ、HDD、SSD、ICカード、SDカード又はDVDのような記憶デバイスに置いてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
 また、各要素、例えば、コントローラは番号等で識別可能であるが、各要素を識別可能な情報であれば、名前など各種の識別情報が用いられてもよい。上記実施例の図及び説明において同一部分には同一符号を付与しているが、本発明が上記実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
 また、本発明は、図18に示すように2以上のHAペア構成がカスケード状になっている構成にも適用可能である(SVOL/PVOLは、或るHAペアではSVOLであり、別のHAペアではPVOLであることを意味する)。また、本発明は、HAペアに限らず、SVOLに対してライトが発生し得る他種のVOLペア(PVOLとSVOLとのペア)にも適用されてもよい。
100…ストレージシステム

Claims (10)

  1.  ホスト計算機に接続される複数のストレージ装置を有し、
     前記複数のストレージ装置のいずれかが、ペアを構成するプライマリボリューム及びセカンダリボリュームのうちのプライマリボリュームを有する第1ストレージ装置であり、
     前記複数のストレージ装置のいずれかが、前記セカンダリボリュームを有している第2ストレージ装置であり、
     前記プライマリボリューム及び前記セカンダリボリュームのいずれも更新され得るボリュームであり、
     前記第1ストレージ装置及び前記第2ストレージ装置の各々は、ライト命令を受信した場合、そのライト命令で指定されているアドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第1属性以外の属性であれば、第1属性に変更するようになっており、
     前記第1ストレージ装置又は前記第2ストレージ装置が前記ホスト計算機からオフロードデータコピー命令を受信した場合に行われるオフロードデータコピー処理において、前記第1ストレージ装置及び前記第2ストレージ装置の各々が、
      (A)前記オフロードデータコピー命令に従うコピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更し、
      (B)前記データ領域を前記オブロードデータコピー命令に従うコピー先アドレスに割り当てることであるアロケーション情報コピーを行うときに、
        そのデータ領域のデータ属性が第2属性であれば、前記アロケーション情報コピーを行い、
        そのデータ領域のデータ属性が第1属性であれば、前記オフロードデータコピー処理を中止する、
    ストレージシステム。
  2.  前記第1ストレージ装置及び前記第2ストレージ装置の各々は、ライト命令を受信し、そのライト命令で指定されているアドレスについて排他が解除されている場合、そのアドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第1属性以外の属性であれば、第1属性に変更するようになっており、
     (A)では、
      (a1)前記第1ストレージ装置は、前記プライマリボリュームに関し、前記オフロードデータコピー命令に従うコピー元アドレスについて排他を確保し、
      (a2)(a1)の後、前記第1ストレージ装置は、前記プライマリボリュームに関し、排他が確保されたコピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更する、
    請求項1記載のストレージシステム。
  3.  (A)では、
      (a3)(a2)の後、前記第1ストレージ装置は、コピー元アドレスのデータ属性変更要求を前記第2ストレージ装置に送信し、
      (a4)前記データ属性変更要求を受けた前記第2ストレージ装置が、前記セカンダリボリュームに関し、コピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更する、
    請求項2記載のストレージシステム。
  4.  (A)では、
      (a5)(a4)の後、前記第2ストレージ装置が、データ属性の変更の完了応答を前記第1ストレージ装置に返し、
      (a6)前記完了応答を受信した前記第1ストレージ装置が、前記プライマリボリュームに関し、前記オフロードデータコピー命令に従うコピー先アドレスについて排他を確保し、
     (a6)の後、前記第1ストレージ装置が(B)を行う、
    請求項3記載のストレージシステム。
  5.  (a6)では、前記第1ストレージ装置が、前記プライマリボリュームに関し、前記コピー元アドレスの排他を解除した後に、前記オフロードデータコピー命令に従うコピー先アドレスについて排他を確保する、
    請求項4記載のストレージシステム。
  6.  前記第1ストレージ装置が、前記第1ストレージ装置及び前記第2ストレージ装置の各々についての(B)の後に、前記プライマリボリュームに関し、前記コピー先アドレスについての排他を解除する、
    請求項5記載のストレージシステム。
  7.  (a1)では、前記第1ストレージ装置は、前記プライマリボリュームに関し、前記オフロードデータコピー命令に従うコピー元アドレス及びコピー先アドレスの両方について排他を確保する、
    請求項2記載のストレージシステム。
  8.  前記第1ストレージ装置が、前記第1ストレージ装置及び前記第2ストレージ装置の各々についての(B)の後に、前記プライマリボリュームに関し、前記コピー元アドレス及び前記コピー先アドレスの両方についての排他を解除する、
    請求項7記載のストレージシステム。
  9.  ホスト計算機に接続される複数のストレージ装置を有するストレージシステムの記憶制御方法であって、
     前記複数のストレージ装置のいずれかが、ペアを構成するプライマリボリューム及びセカンダリボリュームのうちのプライマリボリュームを有する第1ストレージ装置であり、
     前記複数のストレージ装置のいずれかが、前記セカンダリボリュームを有している第2ストレージ装置であり、
     前記プライマリボリューム及び前記セカンダリボリュームのいずれも更新され得るボリュームであり、
     前記第1ストレージ装置及び前記第2ストレージ装置の各々は、ライト命令を受信した場合、そのライト命令で指定されているアドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第1属性以外の属性であれば、第1属性に変更するようになっており、
     前記記憶制御方法は、
      前記第1ストレージ装置又は前記第2ストレージ装置が前記ホスト計算機からオフロードデータコピー命令を受信した場合に行われるオフロードデータコピー処理において、前記第1ストレージ装置及び前記第2ストレージ装置の各々が、
        (A)前記オフロードデータコピー命令に従うコピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更し、
        (B)前記データ領域を前記オブロードデータコピー命令に従うコピー先アドレスに割り当てることであるアロケーション情報コピーを行うときに、
          そのデータ領域のデータ属性が第2属性であれば、前記アロケーション情報コピーを行い、
          そのデータ領域のデータ属性が第1属性であれば、前記オフロードデータコピー処理を中止する、
    記憶制御方法。
  10.  ペアを構成するプライマリボリューム及びセカンダリボリュームのうちのプライマリボリュームを有するストレージ装置である第1ストレージ装置であって、
     前記プライマリボリュームの基になる1以上の記憶デバイスを含む記憶デバイス部と、
     前記セカンダリボリュームを有している第2ストレージ装置に接続されるインターフェースデバイスを含む1以上のインターフェースデバイスを含むインターフェース部と、
     データ領域のデータ属性を示す情報を記憶する1以上のメモリを含むメモリ部と、
     前記記憶デバイス部、前記インターフェース部及び前記メモリ部に接続された1以上のプロセッサを含むプロセッサ部と
    を有し、
     前記プロセッサ部は、ライト命令を受信した場合、そのライト命令で指定されているアドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第1属性以外の属性であれば、第1属性に変更するようになっており、
     前記第1ストレージ装置又は前記第2ストレージ装置が前記ホスト計算機からオフロードデータコピー命令を受信した場合に行われるオフロードデータコピー処理において、前記プロセッサ部が、
      前記オフロードデータコピー命令に従うコピー元アドレスに割り当てられているデータ領域のデータ属性を、そのデータ属性が第2属性以外の属性であれば、第2属性に変更し、
      前記コピー元アドレスのデータ属性変更要求を前記第2ストレージ装置に送信し、
      データ属性の変更の完了応答を前記第2ストレージ装置から受信し、
      前記データ領域を前記オブロードデータコピー命令に従うコピー先アドレスに割り当てることであるアロケーション情報コピーを行うときに、
        そのデータ領域のデータ属性が第2属性であれば、前記アロケーション情報コピーを行い、
        そのデータ領域のデータ属性が第1属性であれば、前記オフロードデータコピー処理を中止する、
    第1ストレージ装置。
PCT/JP2017/024147 2017-06-30 2017-06-30 ストレージシステム及び記憶制御方法 WO2019003416A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2017/024147 WO2019003416A1 (ja) 2017-06-30 2017-06-30 ストレージシステム及び記憶制御方法
JP2019526093A JP6643524B2 (ja) 2017-06-30 2017-06-30 ストレージシステム及び記憶制御方法
US16/331,776 US10732901B2 (en) 2017-06-30 2017-06-30 Storage system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/024147 WO2019003416A1 (ja) 2017-06-30 2017-06-30 ストレージシステム及び記憶制御方法

Publications (1)

Publication Number Publication Date
WO2019003416A1 true WO2019003416A1 (ja) 2019-01-03

Family

ID=64740464

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/024147 WO2019003416A1 (ja) 2017-06-30 2017-06-30 ストレージシステム及び記憶制御方法

Country Status (3)

Country Link
US (1) US10732901B2 (ja)
JP (1) JP6643524B2 (ja)
WO (1) WO2019003416A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10613925B2 (en) 2018-05-18 2020-04-07 Micron Technology, Inc. Data duplication in a non-volatile memory
US12045462B2 (en) * 2022-09-13 2024-07-23 Dell Products L.P. System and method to create application copies for copy reuse utilizing the application backup data stored in secondary storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015162663A1 (ja) * 2014-04-21 2015-10-29 株式会社日立製作所 ストレージシステム
WO2015189925A1 (ja) * 2014-06-11 2015-12-17 株式会社日立製作所 ストレージシステム、ストレージ装置及びデータ移行方法
WO2017064770A1 (ja) * 2015-10-14 2017-04-20 株式会社日立製作所 ストレージシステムおよびストレージシステムの制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594667B2 (en) * 1999-08-23 2003-07-15 International Business Machines Corporation Method, system and program products for modifying coupling facility structures
US6584554B1 (en) * 1999-08-23 2003-06-24 International Business Machines Corporation Directed allocation of coupling facility structures
US6434681B1 (en) * 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US8074035B1 (en) * 2003-07-22 2011-12-06 Acronis, Inc. System and method for using multivolume snapshots for online data backup
JP5222617B2 (ja) 2008-04-28 2013-06-26 株式会社日立製作所 情報システム及びi/o処理方法
US8850145B1 (en) * 2012-03-30 2014-09-30 Emc Corporation Managing consistency groups in storage systems
JP6160296B2 (ja) * 2013-06-25 2017-07-12 富士通株式会社 ストレージ制御装置,ストレージシステム,および制御プログラム
JP2015095015A (ja) * 2013-11-11 2015-05-18 富士通株式会社 データ配置方法、データ配置プログラムおよび情報処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015162663A1 (ja) * 2014-04-21 2015-10-29 株式会社日立製作所 ストレージシステム
WO2015189925A1 (ja) * 2014-06-11 2015-12-17 株式会社日立製作所 ストレージシステム、ストレージ装置及びデータ移行方法
WO2017064770A1 (ja) * 2015-10-14 2017-04-20 株式会社日立製作所 ストレージシステムおよびストレージシステムの制御方法

Also Published As

Publication number Publication date
JPWO2019003416A1 (ja) 2019-11-07
JP6643524B2 (ja) 2020-02-12
US10732901B2 (en) 2020-08-04
US20190278521A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
JP6802209B2 (ja) ストレージシステム
EP2652586B1 (en) Information storage system and storage system management method
JP4993928B2 (ja) 記憶システム及び記憶領域解放方法並びにストレージシステム
US10191685B2 (en) Storage system, storage device, and data transfer method
JP5391277B2 (ja) ストレージシステム及びストレージシステムの処理効率向上方法
US20100036896A1 (en) Computer System and Method of Managing Backup of Data
JP2012504789A (ja) ストレージシステム及びストレージシステムの運用方法
WO2015162684A1 (ja) ストレージシステムのデータ移行方法
US9875059B2 (en) Storage system
JP5547814B2 (ja) 計算機システム、仮想サーバへのボリューム割り当て方法及び計算機読み取り可能な記憶媒体
JPWO2018011839A1 (ja) 情報処理システム、及び、情報処理システムの制御方法
JP6294569B2 (ja) ストレージシステム及びキャッシュ制御方法
JP6643524B2 (ja) ストレージシステム及び記憶制御方法
JP7100090B2 (ja) ストレージシステム、連携方法、およびプログラム
JP6072255B2 (ja) ストレージシステム、ストレージシステムの制御方法及び管理システム
JP2019124983A (ja) ストレージシステム及び記憶制御方法
WO2015068208A1 (ja) システムおよびその制御方法
US20150277765A1 (en) Storage subsystem and method for controlling the storage subsystem
US20210334043A1 (en) Storage system and storage system control method
JP6000391B2 (ja) ストレージシステムのデータ移行方法
WO2014087465A1 (ja) ストレージ装置及びストレージ装置移行方法
JP7065928B2 (ja) ストレージシステム及びその制御方法
JP6606235B1 (ja) ストレージシステム
US20140208023A1 (en) Storage system and control method for storage system
JP2022020926A (ja) ストレージシステム及び処理移行方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019526093

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 17916182

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17916182

Country of ref document: EP

Kind code of ref document: A1