WO2017119065A1 - ストレージ装置および記録媒体 - Google Patents

ストレージ装置および記録媒体 Download PDF

Info

Publication number
WO2017119065A1
WO2017119065A1 PCT/JP2016/050129 JP2016050129W WO2017119065A1 WO 2017119065 A1 WO2017119065 A1 WO 2017119065A1 JP 2016050129 W JP2016050129 W JP 2016050129W WO 2017119065 A1 WO2017119065 A1 WO 2017119065A1
Authority
WO
WIPO (PCT)
Prior art keywords
volume
data
target
slot
copy
Prior art date
Application number
PCT/JP2016/050129
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 JP2017559962A priority Critical patent/JP6472901B2/ja
Priority to PCT/JP2016/050129 priority patent/WO2017119065A1/ja
Priority to US15/759,166 priority patent/US10514851B2/en
Publication of WO2017119065A1 publication Critical patent/WO2017119065A1/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • 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

Definitions

  • the present invention relates to a storage apparatus.
  • Patent Document 1 describes a technology in which a snapshot image of a primary volume is created in a secondary volume in a storage device, and CAW (Copy after write) is used when the primary volume is updated.
  • a storage apparatus includes a storage device, a memory, and a processor connected to the storage device, the memory, and a host computer.
  • the processor creates a pool using the storage device, the processor creates a plurality of volumes, each volume includes a plurality of slots, and the plurality of volumes includes a root volume, a plurality of virtual volumes, and Each virtual volume stores a snapshot of another parent volume of the plurality of volumes at the time point indicated, and the processor assigns a plurality of slots in each virtual volume to a corresponding parent.
  • the processor associates a slot for storing data in each virtual volume with a pool area in the pool, and the processor associates the parent volume with a corresponding virtual volume.
  • the difference data is written to the pool, and the processor When the management information indicating the relationship between the plurality of volumes and the pool is recorded in the memory, and the processor receives write data to the target slot in the target volume in the plurality of volumes from the host computer , Recording in the management information that the data of the target slot in the target volume is not fixed, writing the write data to the target cache area in the memory, and sending a response to the host computer, the processor Before referring to the target data in the target slot in the target volume, it is determined based on the management information whether or not the target data is fixed, and it is determined that the target data is not fixed. The processor performs a confirmation process for confirming the target data and refers to the target data. That.
  • the confirmation process selects a copy source volume for storing data of the target slot in the target volume based on the management information, and selects a copy source in the target slot in the copy source volume based on the management information. It is determined whether or not data has been confirmed. If it is determined that the copy source data has been confirmed, the confirmation process performs a save process for saving the target data and updates the target data A merge process is performed to record that the target data is fixed in the management information, and the save process determines whether the target data needs to be saved based on the management information. If it is determined that the target data needs to be saved, the save process writes the target data to the pool, and the merge process performs the copy process. Generate merged data by merging the original data and the write data, writing the merged data to the pool.
  • the configuration of the computer system is shown.
  • An overview of the snapshot is shown.
  • An outline of SS control information and entity position search processing is shown.
  • An overview of cascaded snapshots is shown.
  • An overview of the snapshot structure is shown.
  • An outline of CAW is shown.
  • An outline of CAW elimination processing in cascaded snapshots is shown.
  • the 1st part of the management information 111 is shown.
  • the 2nd part of the management information 111 is shown.
  • the 3rd part of the management information 111 is shown.
  • summary of the CAW cancellation process of Example 1 is shown.
  • 10 shows a CAW elimination job of Embodiment 1.
  • the entity position search process is shown.
  • the old data saving process is shown.
  • the merge copy process is shown.
  • summary of the CAW cancellation process of Example 2 is shown.
  • 10 shows a CAW elimination job of Embodiment 2.
  • 10 shows CAW cancellation target determination processing according to the second embodiment.
  • the 2nd entity position search process of Example 2 is shown.
  • summary of the CAW cancellation process of Example 3 is shown.
  • a copy list 410 is shown.
  • 10 shows a CAW elimination job of Example 3.
  • the 1st part of the copy list creation process of Example 3 is shown.
  • the 2nd part of the copy list creation process of Example 3 is shown.
  • FIG. 10 illustrates a copy target volume setting process according to the third embodiment. 9 shows copy source read processing according to the third embodiment.
  • the old data save destination Write process of Example 3 is shown.
  • the merge copy destination Write process of Example 3 is shown.
  • the termination determination process of Example 3 is shown.
  • summary of the modification of Example 3 is shown.
  • 10 shows a CAW cancellation job according to a modification of the third embodiment.
  • summary of the CAW cancellation process of Example 4 is shown.
  • 10 shows a CAW elimination job of Example 4.
  • the old data write process of Example 4 is shown.
  • 9 shows a save destination setting process according to the fourth embodiment.
  • xxx table information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “xxx information” to indicate that the information does not depend on the data structure.
  • xxx information information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, “xxx table” can be referred to as “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 the two or more tables may be a single table. Good.
  • an ID is used as element identification information, but other types of identification information may be used instead of or in addition thereto.
  • a reference number or a common number in the reference number is used, and when a description is made by distinguishing the same type of element, the reference number of the element is used.
  • an ID assigned to the element may be used instead of the reference code.
  • an I / O (Input / Output) request is a write request or a read request, and may be referred to as an access request.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined processing is appropriately performed. Since processing is performed using a storage resource (for example, a memory) and / or an interface device (for example, a communication port), the subject of processing may be a processor.
  • the process described with the program as the subject may be a process or system performed by a processor or an apparatus having the processor.
  • the processor may include a hardware circuit that performs a part or all of the processing.
  • the program may be installed in a computer-like device from a program source.
  • the program source may be, for example, a storage medium that can be read by a program distribution server or a computer.
  • the program distribution server may include a processor (for example, a CPU) and a storage resource, and the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • a processor for example, a CPU
  • the storage resource may further store a distribution program and a program to be distributed. Then, the processor of the program distribution server executes the distribution program, so that the processor of the program distribution server may distribute the distribution target program to other computers.
  • two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • the management system may include one or more computers.
  • the management computer displays information (specifically, for example, the management computer displays information on its own display device, or the management computer displays display information in a remote display computer)
  • Management computer is the management system.
  • the plurality of computers may include a display computer when the display computer performs display
  • the management computer (eg, management system) may include an interface device connected to the I / O system including the display system, a storage resource (eg, memory), and a processor connected to the interface device and the storage resource.
  • the display system may be a display device included in the management computer or a display computer connected to the management computer.
  • the I / O system may be an I / O device (for example, a keyboard and a pointing device or a touch panel) included in the management computer, a display computer connected to the management computer, or another computer.
  • “Displaying display information” by the management computer means displaying the display information on the display system, which may be displaying the display information on a display device included in the management computer.
  • the management computer may transmit display information to the display computer (in the latter case, the display information is displayed by the display computer).
  • the management computer inputting / outputting information may be inputting / outputting information to / from an I / O device of the management computer, or a remote computer connected to the management computer (for example, a display) Information may be input / output to / from the computer.
  • the information output may be a display of information.
  • Fig. 1 shows the configuration of the computer system.
  • the computer system includes a storage device 10, a host computer 20, and a management terminal 30.
  • the management terminal 30 may be connected to the host computer 20 via a communication network.
  • the host computer 20 writes data to the storage apparatus 10 by transmitting a WR (Write) request to the storage apparatus 10. Further, data is read from the storage apparatus 10 by transmitting an RD (Read) request to the storage apparatus 10.
  • the management terminal 30 includes a memory, a CPU, a communication I / F, an input device, and a display device.
  • the CPU performs processing by executing a management program 31 stored in the memory.
  • the management terminal 30 receives the setting information of the storage apparatus 10 input from the administrator to the input device, and transmits the setting information to the storage apparatus 10.
  • the management terminal 30 receives the status information of the storage device 10 from the storage device 10 and causes the display device to display the status information.
  • the storage device 10 includes a controller 100 and a storage device 200.
  • the storage device 200 includes a plurality of disks 210.
  • the controller 100 includes a memory 110, a CPU 120, a bridge 130, an upper I / F 140, a lower I / F 150, and a communication I / F 160.
  • the CPU 120 performs processing according to the program in the memory 110. For example, the CPU 120 creates the pool 220 using the disk 210.
  • the bridge 130 connects each part of the controller 100.
  • the host I / F 140 is connected to the host computer 20 via a communication network.
  • the lower I / F 150 is connected to the disk 210.
  • the communication I / F 160 is connected to the management terminal 30 via a communication network.
  • the memory 110 stores management information 111, a copy processing program 112, an I / O processing program 113, and a cache area 114.
  • Management information 111 is information for managing data stored in the disk 210.
  • the copy processing program 112 copies data between the plurality of disks 210.
  • the I / O processing program 113 performs I / O processing in response to a request from the host computer 20.
  • the cache area 114 temporarily stores data exchanged with the host computer 20 by I / O processing.
  • Figure 2 shows an overview of the snapshot.
  • the I / O processing program 113 uses the disk 210 to create a logical volume or a virtual volume.
  • the I / O processing program 113 creates a logical volume to be a pool, and allocates a storage area in the pool to a virtual volume by Thin Provisioning.
  • the copy processing program 112 sets the primary volume and the secondary volume as a pair. As a result, the storage apparatus 10 can instantly create a copy of the primary volume in the secondary volume.
  • the primary volume may be referred to as P-VOL (Primary Volume)
  • S-VOL Secondary Volume
  • the copy processing program 112 When a write to a certain area in the primary volume is performed, the copy processing program 112 writes the difference data between the primary volume and the secondary volume by the write to the pool, and an entity position indicating the entity position of the difference data in the pool Record information. After that, before the area in the secondary volume is referred to, the I / O processing program 113 searches the entity position and refers to the difference data of the entity position in the pool based on the entity position information.
  • the copy processing program 112 stores SS (Snapshot) control information including entity position information in the pool. If the actual location of the data is a virtual volume, it indicates the pool address assigned to that volume, and if it is a logical volume, it indicates the logical address within that volume.
  • SS Snaphot
  • the unit storage area in each of the volume, pool, and cache area is called a slot.
  • Slots are managed by identifiers such as slot numbers.
  • a slot in the secondary volume is associated with a slot having the same slot number among the primary volumes for the secondary volume.
  • the size of the slot is, for example, 256 kB.
  • a slot in the pool is called a pool slot
  • a slot in the cache area is called a cache slot.
  • another storage area indicating an address range may be used.
  • the copy processing program 112 when the primary volume is updated, the copy processing program 112 writes the pre-update data (old data) to the pool as difference data.
  • a pool slot for storing the differential data in the pool is assigned to a slot in the secondary volume.
  • One pool slot may be assigned to a slot having the same slot number in a plurality of secondary volumes.
  • the difference data may be the latest data (current data) after update.
  • a pool slot for storing the differential data in the pool may be assigned to a slot in the primary volume.
  • FIG. 3 shows an overview of SS control information and entity position search processing.
  • the volume SS control information includes inter-generation shared information (GCMT) and generation specific information (GUDT) for each slot.
  • the GCMT is effective when differential data such as differential data saved from other volumes is shared between generations.
  • a valid GCMT includes a pointer (entity position information) indicating a pool slot of an actual position of difference data.
  • GUDT is effective when differential data unique to the volume is stored, such as when the volume is updated and there is no need to save.
  • a valid GUDT includes a pointer indicating the pool slot of the actual position of the difference data.
  • the pointer in GCMT and GUDT includes a pool number and a pool slot number. An address in the pool may be used instead of the pool slot number.
  • the copy processing program 112 saves the difference data to the pool and saves the actual entity of the save destination.
  • the position information is stored in the GCMT of the slot of the secondary volume.
  • the copy processing program 112 writes the differential data to the pool, and stores the entity position information indicating the write destination in the secondary volume. Store in the GUDT of the slot.
  • the secondary volume 2 is created as a snapshot of the primary volume, and then the secondary volume 1 is created as a snapshot of the next generation of the primary volume.
  • the latest data is stored in the primary volume, and the newer generation data than the secondary volume 2 is stored in the secondary volume 1.
  • the slot indicated by the slot number of the host accessed slot is called a target slot.
  • the copy processing program 112 performs an entity position retrieval process for retrieving an entity position when referring to the secondary volume.
  • the copy processing program 112 sets the accessed secondary volume 2 as the search volume, and determines whether the GUDT of the target slot of the search volume is valid. If the GUDT is valid, the copy processing program 112 returns the entity position information included in the GUDT. If GUDT is invalid, the copy processing program 112 determines whether the GCMT of the target slot is valid. If the GCMT is valid, the copy processing program 112 returns the entity position information included in the GCMT.
  • the copy processing program 112 determines whether or not the GCMT of the target slot of the search volume of the newer generation than the search volume is valid. Here, first, the copy processing program 112 selects a secondary volume of the next generation among the secondary volumes belonging to the same primary volume as a search volume. If there is no such secondary volume, the copy processing program 112 selects the primary volume as the search volume. If the corresponding GCMT is valid in the new search volume, the copy processing program 112 returns the entity position information included in the GCMT. If the GCMT is invalid, the copy processing program 112 selects the next search volume and searches until the actual position is obtained.
  • Figure 4 shows an overview of cascaded snapshots.
  • the copy processing program 112 can create another pair with the secondary volume of a certain pair as a primary volume.
  • the copy processing program 112 can create a cascaded snapshot structure by connecting snapshot pairs in cascade.
  • the copy processing program 112 adds a P-VOL (primary volume) attribute to a volume having a S-VOL (secondary volume) attribute of a pair whose SSID (Snapshot ID) is A, A pair with the secondary volume is created, and B is assigned to the pair as an SSID.
  • the first primary volume in the snapshot structure is called Root.
  • a volume having a P-VOL attribute and an S-VOL attribute is called a Branch.
  • a volume having only the S-VOL attribute is called Leaf.
  • Root is a logical volume (Logical Device: LDEV) having an entity.
  • Branch and Leaf are virtual volumes.
  • the virtual volume data is stored in the pool.
  • Branch and Leaf volumes can be identified by a combination of the Root LDEV number and SSID. Note that the Root may be a virtual volume.
  • Fig. 5 shows an overview of the snapshot structure.
  • the copy processing program 112 can create a tree-like snapshot structure by creating a plurality of pairs for one primary volume and creating a lower pair with the secondary volume as the primary volume.
  • one volume in the snapshot structure is a target volume and the target volume is a secondary volume
  • the primary volume that forms a pair with the target volume is called a parent generation.
  • the target volume is a primary volume
  • the secondary volume that forms a pair with the target volume is called a child generation.
  • the target volume is one of multiple secondary volumes with the same primary volume
  • the secondary volume of the older generation than the target volume among the multiple secondary volumes is called the older generation
  • the newer generation of the secondary volume Volume is called brother generation.
  • a volume of a newer generation (brother generation and parent generation) than the target volume is referred to as an upper volume.
  • the current data stored in a certain slot in a certain secondary volume exists in the volume or a higher volume of the volume.
  • the actual position of the current data is indicated in the GUDT of the volume, indicated in the GCMT of the volume, indicated in the upper volume, or the upper volume (Root).
  • a VDI (Virtual Desktop Infrastructure) administrator can instantly create a plurality of replicas of a golden image of a virtual machine and distribute the replicas. Furthermore, the administrator can update the copy for each department or user and distribute the updated copy.
  • VDI Virtual Desktop Infrastructure
  • COW Copy-on-Write
  • FIG. 6 shows an outline of CAW.
  • the cache area is managed for each cache slot.
  • One cache slot includes a W plane (Write plane) for writing data received from the host computer 20 and an R plane (Read plane) for storing data staged from the storage device 200.
  • W plane Write plane
  • R plane Read plane
  • Each size of the W plane and the R plane is a slot size.
  • the controller 100 When the storage apparatus 10 receives a WR request from the host computer 20, the controller 100 performs the following WR process.
  • the I / O processing program 113 When the I / O processing program 113 receives a WR request designating an address range in the primary volume from the host computer 20, the I / O processing program 113 specifies a target slot corresponding to the address range. (2) The copy processing program 112 sets the CAW flag of the target slot of the primary volume to ON. (3) The copy processing program 112 receives the WR data from the host computer 20, and within the W area of the target cache slot corresponding to the target slot of the primary volume in the cache area, in the address range specified by the WR request. Write WR data to the corresponding area. (4) The I / O processing program 113 transmits a response to the WR request to the host computer 20.
  • the state where the CAW flag of the target slot of the primary volume is ON is a state where the current data of the entire target slot of the primary volume has not been determined. This state is called a CAW state. Thereafter, when the target slot of the primary volume is referenced, the copy processing program 112 cancels the CAW state of the target slot of the primary volume by performing the following CAW elimination process.
  • the I / O processing program 113 changes the state of the target cache slot to dirty for subsequent destaging.
  • the copy processing program 112 stores the pointer of the save destination pool slot in the pool in the GCMT of the target slot of the secondary volume.
  • the copy processing program 112 performs old data saving (saving copy) processing for copying old data stored in the R side of the target cache slot to the W side of the cache slot corresponding to the target slot of the secondary volume. . Thereafter, the I / O processing program 113 writes old data from the W plane to the pool slot by destaging. If the cache slot is not assigned to the target slot of the primary volume in the old data saving process, the copy processing program 112 assigns the target cache slot to the target slot of the primary volume, and stage the old data to the R side of the target cache slot To do.
  • C The copy processing program 112 sets the CAW flag of the target slot of the primary volume to OFF.
  • the I / O processing program 113 changes the state of the target cache slot to “clean” after destaging the target cache slot.
  • the CAW responds to the host computer 20 before the old data saving process, the response time for the WR request can be shortened compared to the COW.
  • FIG. 7 shows an outline of the CAW elimination processing in the cascade type snapshot.
  • the I / O processing program 113 In response to a write request for the target slot of the update target volume that is a branch of the cascaded snapshot, the I / O processing program 113 writes WR data to a part of the W plane corresponding to the target slot, and Set the CAW state. Thereafter, the copy processing program 112 triggers the CAW for canceling the CAW state triggered by the reference of the target slot such as access (Read or Write) to the target slot by the host computer 20 or destaging of the target slot by the controller 100. Perform resolution processing.
  • a paired primary volume whose update target volume is a secondary volume is called a parent volume.
  • a paired secondary volume whose primary volume is the update target volume is called a child volume.
  • the target slot of the parent volume and the target slot of the child volume have the same slot number as the target slot of the update target volume.
  • the GCMT and GUDT of the target slot and the GCMT and GUDT of the target slot of the child volume are all invalid.
  • WR data is written to the W side of the cache slot corresponding to the target slot of the update target volume, and the CAW flag of the target slot of the update target volume is turned ON.
  • the copy processing program 112 performs an old data saving process for saving the old data of the target slot of the update target volume to the target slot of the child volume.
  • the old data saving process copies the old data of the target slot of the update target volume stored in the R plane corresponding to the target slot of the parent volume to the W plane corresponding to the target slot of the child volume, and stores it in the pool. Allocate a new pool slot to the target slot of the child volume.
  • the copy processing program 112 performs merge copy processing for merging old data and WR data.
  • the merge copy process corresponds to the target slot of the parent volume with the LBA (Logical Block Address) range other than the area where the WR data is written out of the W plane corresponding to the target slot of the update target volume as the supplement LBA range.
  • the data stored in the replenishment LBA range on the R side is copied to the replenishment LBA range on the W side corresponding to the target slot of the update target volume.
  • the old data of the update target volume is saved from the parent volume to the child volume, the current data is obtained by merging the old data of the parent volume and the WR data, and the current data is written to the update target volume. Thereby, the data of the target slot of the update target volume is confirmed, and the CAW state of the target slot of the update target volume is canceled.
  • the CAW flag of the target slot of the update target volume is turned OFF, and the GUDT entity position information of the target slot of the update target volume becomes valid. Furthermore, the entity position information of the GCMT of the target slot of the child volume becomes valid.
  • the CAW resolution process if the target slot of the parent volume is in the CAW state, the CAW resolution process for the parent volume is required.
  • management information 111 will be described from the first part to the third part.
  • FIG. 8 shows the first part of the management information 111.
  • the management information 111 includes a volume information table 310 created for each volume, slot information 320 created for each volume, and a pair information table 330 created for each pair.
  • the volume information table 310 corresponding to one volume includes an LDEV number 311, an attribute 312, a capacity 313, and a pair information table pointer 314.
  • the LDEV number 311 is an identifier indicating the volume.
  • the attribute 312 indicates whether the volume is a primary volume (P-VOL), a secondary volume (S-VOL), both primary and secondary volumes (P / S-VOL), or any other volume.
  • a capacity 313 indicates the capacity of the volume.
  • the pair information table pointer indicates the pair information table 330 of the pair to which the volume belongs.
  • the slot information 320 corresponding to one volume includes an entry for each slot in the volume.
  • An entry corresponding to one slot includes a slot number 321 indicating the slot and information 322 of the slot.
  • the information 322 includes a CAW flag, a WR generation number, and the like.
  • the WR generation number indicates the order in which the slot was written to the pair order.
  • the pair information table 330 corresponding to one pair includes a pair status 331, an SSID 332, a generation number 333, a primary volume table pointer 334, and a secondary volume table pointer 335.
  • the pair status 331 indicates a pair status (PAIR) in which differential data is written, a suspend status (PSUS) in which differential data is not written, and the like.
  • the SSID 332 is an identifier indicating the pair.
  • the generation number 333 indicates the order of generation of the pair.
  • the primary volume table pointer 334 is a pointer indicating the volume information table 310 of the primary volume in the pair.
  • the secondary volume table pointer 335 is a pointer indicating the volume information table 310 of the secondary volume in the pair.
  • the copy processing program 112 gives the generation number to the pair so that the generation number and the WR generation number become a serial number, and gives the WR generation number to the written slot. For example, when the copy processing program 112 creates a certain pair, it gives a generation number n to the pair. Thereafter, when a certain slot of the primary volume of the pair is written, the copy processing program 112 gives the WR generation number n + 1 obtained by adding 1 to the maximum generation number n, to the slot. Thereafter, when a new pair is created, the copy processing program 112 gives the new pair the generation number n + 2 obtained by adding 1 to the maximum value of the generation number and the WR generation number.
  • FIG. 9 shows the second part of the management information 111.
  • Management information 111 further includes SS control information 340.
  • the SS control information 340 includes pool slot information (GPMT) 360 created for each pool, intergenerational shared information (GCMT) 370 created for each pair, and generation specific information (GUDT) 380 created for each pair. Including.
  • GPMT pool slot information
  • GCMT intergenerational shared information
  • GUIDT generation specific information
  • the pool slot information 360 corresponding to one pool includes a pool number 361 that is an identifier indicating the pool and an entry for each pool slot.
  • An entry corresponding to one pool slot includes a pool entry number 362, a pool slot (data storage destination slot) number 363, a state 364, a slot to which the pool slot is assigned, and the reference source of the pool slot.
  • reference source information indicating a slot.
  • the pool entry number 362 is an identifier of the entry.
  • the pool slot number 363 is an identifier of the pool slot.
  • the status 364 indicates the status of the pool slot, “unallocated” that is not allocated to the reference source slot, “assigned” that is allocated to the reference source slot and no data is stored, and is allocated to the reference source slot.
  • the reference source information includes a Root LDEV number 365, an SSID 366, and a slot number 367.
  • the combination of the Root LDEV number 365 and the SSID 366 indicates the reference source pair.
  • the slot number 367 indicates the reference source slot.
  • the GCMT 370 corresponding to one pair includes a Root LDEV number 371, an SSID 372, and an entry for each slot of the secondary volume of the pair.
  • the combination of the Root LDEV number 371 and the SSID 372 indicates the pair.
  • An entry corresponding to one slot includes a slot entry number 373, a slot number 374, a state 375, and pool information indicating a pool slot that is a pool slot assigned to the slot and that is a reference destination of the slot.
  • the slot entry number 373 is an identifier of the entry.
  • the slot number 374 is an identifier of the slot.
  • the state 375 indicates the state of the slot.
  • the reference destination is not assigned “unassigned”, the reference destination is assigned and data is not stored in the reference destination, the reference destination is assigned and the reference destination is assigned. Indicates any state of “allocated” in which data is stored.
  • the pool information includes a pool number 376 and a pool entry number 377.
  • the pool number 376 indicates a reference destination pool.
  • the pool entry number 377 indicates a reference destination pool slot.
  • the GUDT 380 corresponding to one pair includes a Root LDEV number 381, an SSID 382, and an entry for each slot of the secondary volume of the pair.
  • An entry corresponding to one slot includes a slot entry number 383, a slot number 384, a state 385, and pool information of a reference destination of a data entity referenced from the slot.
  • the pool information includes a pool number 386 and a pool entry number 387. Items 381 to 384, 386, and 387 are the same as items 371 to 374, 376, and 377, respectively.
  • the status 385 indicates the status of the slot, “unassigned” to which the reference destination is not assigned, “not copied” to which the reference destination is assigned and no data is stored in the reference destination, and the reference destination is assigned to the reference destination. Indicates any state of “allocated” in which data is stored.
  • FIG. 10 shows the third part of the management information 111.
  • the management information 111 further includes a job management table 350 created for each job.
  • the job management table 350 corresponding to one job includes a request copy type 351, a request source process type 352, a root LDEV number 353, an SSID 354, and a slot number 355.
  • the request copy type 351 indicates the type of processing of the job.
  • the type of processing here is, for example, CAW elimination processing.
  • the request source process type 352 indicates the type of process (request source process) that started the job.
  • the types of processing here are RD, WR, destage, and the like.
  • the root LDEV number 353 indicates a root volume in the snapshot structure to which the target volume of the job belongs.
  • the SSID 354 indicates the target pair of the job.
  • a slot number 355 indicates a target slot of the job.
  • the copy processing program 112 and the I / O processing program 113 create a job management table 350 corresponding to the job in order to submit a job such as a CAW elimination job or a Read job.
  • GCMT 370 and the GUDT 380 may be stored in the pool 220.
  • management information 111 may include a cache table indicating the association between slots and cache slots.
  • the management program 31 displays a pair setting screen for creating a snapshot pair on the display device, and accepts an input from the administrator.
  • the management program 31 reads the volume attribute 312 (P-VOL attribute, S- (VOL attribute, P / S-VOL attribute, etc.) may be displayed on the pair setting screen, and whether the attribute 312 of the volume includes the S-VOL attribute (stores snapshots of other volumes) May be displayed on the pair setting screen.
  • the management program 31 displays the primary volume paired with the volume or the root volume of the snapshot structure on the pair setting screen. You may let them.
  • the management program 31 may cause the display device to display a snapshot structure screen showing the relationship between a plurality of volume pairs, as shown in the snapshot structure diagram described above, based on the pair information table 330. .
  • the administrator can select an appropriate primary volume and input a pair creation instruction.
  • FIG. 11 shows an outline of the CAW elimination processing of the first embodiment.
  • the I / O processing program 113 starts a Read job in response to an RD request for the target slot of the volume A from the host computer 20.
  • the slot having the slot number of the target slot is called a target slot.
  • the Read job detects that the target slot of the volume A is in the CAW state
  • the Read job starts the CAW cancellation job A for the target slot of the volume A and waits until the CAW state is canceled.
  • the CAW elimination job A detects that the target slot of the volume B is in the CAW state
  • the CAW elimination job A starts the CAW elimination job B for the target slot of the volume B and waits until the CAW state is eliminated.
  • the CAW elimination job B detects that the target slot of the volume C is in the CAW state
  • the CAW elimination job B starts the CAW elimination job C for the target slot of the volume C and waits until the CAW state is eliminated.
  • the CAW cancellation job C cancels the CAW state of the target slot of the volume C that is the highest volume among the volumes in which the CAW state is detected (1).
  • the CAW cancellation job B is restarted to cancel the CAW state of the target slot of the volume B (2).
  • the CAW cancellation job A is restarted to cancel the CAW state of the target slot of the volume A (3).
  • the Read job is restarted, reads data from the actual position of the target slot of volume A, and responds to the host computer 20.
  • the I / O processing program 113 When the trigger of the CAW cancellation job is Read, when the I / O processing program 113 receives a Read request from the host computer 20, the I / O processing program 113 analyzes the Read parameter included in the Read request, and reads the target volume number, LBA, Specify size, target slot number, etc. Thereafter, the I / O processing program 113 refers to the entry of the target slot in the slot information 320 of the target volume, and when detecting that the CAW flag is ON, activates the CAW cancellation job.
  • the I / O processing program 113 detects a dirty cache slot at the time of destaging, and in the slot information 320, the entry of the slot number corresponding to the cache slot is entered.
  • the CAW cancellation job is activated.
  • FIG. 12 shows a CAW cancellation job of the first embodiment.
  • a job management table indicating the target slot of the cancellation target volume in the CAW state is created, and the CAW cancellation job is started.
  • the copy processing program 112 performs initial setting of a CAW cancellation job based on the job management table.
  • the copy processing program 112 identifies the actual position of the target slot of the resolution target volume by performing the actual position search process for the target slot of the resolution target volume, and the volume target corresponding to the actual position. It is determined whether or not the slot is in a CAW state.
  • a volume having entity position information or a volume (Root) indicated in the entity position is referred to as an entity position volume.
  • the copy processing program 112 When it is determined that the target slot of the physical location volume is in the CAW state (S1520: CAW ON is detected), the copy processing program 112 starts a new CAW resolution job that uses the physical location volume as the resolution target volume in S1530. Issue instructions.
  • the copy processing program 112 creates a job management table for a new CAW resolution job, and sets the SSID of the actual location volume in the job management table.
  • the copy processing program 112 waits until the activated CAW cancellation job ends.
  • the copy processing program 112 restarts and executes the processing from S1510 again.
  • S1520 it is determined that the target slot of the actual position volume is not in the CAW state.
  • the copy processing program 112 converts the entity position volume to the copy source volume in S1550. Then, the secondary volume of the volume to be canceled is set as the save destination volume, and the old data save processing from the target slot of the copy source volume to the target slot of the save destination volume is performed. If the target slot of the entity position volume is not in the CAW state, the entity position volume is “Root”, the entity position is indicated in the GCMT of the entity position volume, and the entity position is indicated in the GUDT of the entity position volume. And the case where the target slot of the actual position volume is not in the CAW state is detected, and the case where the CAW state of the target slot of the actual position volume is canceled by another CAW cancellation job is included.
  • the copy processing program 112 performs merge copy processing from the target slot of the copy source volume to the target slot of the cancellation target volume. Thereafter, in S1570, the copy processing program 112 performs an end process for canceling the CAW state of the target slot of the resolution target volume, and ends this flow.
  • the copy processing program 112 turns off the CAW flag of the target slot information 323 of the resolution target volume slot information 320.
  • FIG. 13 shows the entity position search process.
  • the volume selected as a search target is called a search volume.
  • step S1110 the copy processing program 112 selects a resolution target volume as a search volume.
  • step S1120 the copy processing program 112 refers to the attribute 312 of the volume information table 310 of the search volume, and determines whether the search volume is Root.
  • the copy processing program 112 refers to the target slot information 323 of the Root slot information 320, and the Root target slot is in the CAW state. It is determined whether or not.
  • the copy processing program 112 If it is determined that the target slot is not in the CAW state (S1130: No), the copy processing program 112 returns that the actual location volume is Root in S1140, and ends this flow.
  • the copy processing program 112 If it is determined that the target slot is in the CAW state (S1130: Yes), in S1150, the copy processing program 112 returns that the actual position volume is Root and the actual position volume is in the CAW state, and this flow is executed. finish.
  • the copy processing program 112 in S1210, indicates the status 385 of the target slot in the GUDT 380 of the search volume and the target slot information 323 of the slot information 320 of the search volume. Referring to the above, the state of GUDT is determined.
  • the copy processing program 112 in S1220 indicates that the entity location volume is a search volume and The entity position is indicated in the search volume GUDT and the entity position volume is not in the CAW state, and this flow is terminated.
  • the copy processing program 112 determines that the actual location volume is the search volume in S1230. Yes, the entity position is indicated in the search volume GUDT and the entity position volume is in the CAW state, and this flow is terminated.
  • the copy processing program 112 in S1240, indicates that the target slot state 375 in the GCMT 370 of the search volume is “allocated”. Or “unallocated”.
  • the copy processing program 112 determines that the actual position volume is the search volume and the actual position is the GCMT of the search volume. And the fact that the actual position volume is not in the CAW state is returned, and this flow is finished.
  • the copy processing program 112 determines in S1260 whether there is a brother generation of the search volume.
  • the copy processing program 112 selects the brother generation volume immediately after the search volume generation as a new search volume in S1270, and the process proceeds to S1250.
  • the copy processing program 112 determines in S1280 whether there is a parent generation of the search volume.
  • the copy processing program 112 selects the parent generation volume of the search volume as a new search volume in S1320, and shifts the processing to S1120.
  • the substance position of the data of the target slot of the volume to be resolved can be specified by following the SS control information 340.
  • FIG. 14 shows the old data saving process.
  • the copy processing program 112 determines whether or not the resolution target volume is Leaf based on the attribute 312 of the volume information table 310 of the resolution target volume.
  • the attribute 312 indicates only the S-VOL attribute
  • the copy processing program 112 determines that the cancellation target volume is Leaf.
  • the copy processing program 112 terminates this flow because there is no pair whose resolution target volume is a primary volume and it is not necessary to save old data. To do.
  • the copy processing program 112 has a generation number of the resolution target volume among the pairs (child generation pairs) whose resolution target volume is the primary volume.
  • a pair equal to WR generation number ⁇ 1 is selected as pair A.
  • the copy processing program 112 sets the cancellation target volume as the primary volume among the target slot information 323 of the slot information 320 of the cancellation target volume and the pair information table 330 indicated by the pair information table pointer 314 of the volume information table 310.
  • the generation number 333 of the pair information table 330 of the pair is referred to.
  • the secondary volume of pair A is called the save destination volume.
  • the copy processing program 112 determines whether or not the status 375 of the target slot in the GCMT 370 of the pair A of the save destination volume is “allocated”.
  • the copy processing program 112 secures a save destination pool slot in S1640 and stores it in the GCMT 370 of the pair A.
  • the save destination pool slot (pool number 376 and pool entry number 377) is registered in the pool information of the target slot, the state 375 is changed to “assigned”, and the cache slot corresponding to the target slot of the save destination volume is saved. Store as a cache slot.
  • the copy processing program 112 reads data from the actual position obtained by the actual position search process to the cache slot corresponding to the target slot of the actual position volume (copy source volume). Thereafter, in step S1660, the copy processing program 112 writes the read data to the W side of the save destination cache slot. Thereafter, in S1670, the copy processing program 112 changes the state 275 of the target slot to “allocated” in the GCMT 370 of the pair A, and ends this flow.
  • the I / O processing program 113 writes the data stored in the W side of the save destination cache slot to the save destination pool slot by destaging.
  • the copy processing program 112 can save the data before the update by the WR data to the target slot of the volume of the save destination generation. Further, the copy processing program 112 can select the save destination volume by comparing the WR generation number of the target slot in the target volume with the generation number of the pair of the child generation volume of the target volume. Further, the copy processing program 112 can determine whether or not the data in the target slot in the target volume has been saved.
  • FIG. 15 shows merge copy processing
  • step S1710 the copy processing program 112 determines whether or not the resolution target volume is Root based on the attribute 312 of the volume information table 310 of the resolution target volume.
  • the copy processing program 112 determines that the resolution target volume is Root.
  • the copy processing program 112 ends this flow because there is no pair having the resolution target volume as a secondary volume and there is no data to be merged.
  • the copy processing program 112 stores the cache slot corresponding to the target slot of the resolution target volume as a copy destination cache slot in S1720.
  • the copy processing program 112 reads data from the entity position obtained by the entity position search process to the cache slot corresponding to the target slot of the entity position volume (copy source volume). Thereafter, in S1740, the copy processing program 112 writes the read data to an area other than the address range of the WR data in the W plane of the copy destination cache slot. Thereafter, in S1750, the copy processing program 112 changes the state 385 of the target slot of the GUDT 380 of the resolution target volume to “allocated”, and ends this flow.
  • the I / O processing program 113 writes the data stored in the W side of the copy destination cache slot to the pool slot indicated in the target slot of the GUDT 380 of the resolution target volume by destaging.
  • the copy processing program 112 can write the updated data based on the WR data to the target slot of the resolution target volume.
  • FIG. 16 shows an outline of the CAW elimination process of the second embodiment.
  • CAW cancellation job consumes resources such as memory in the storage apparatus 10, in the first embodiment, when the CAW cancellation job starts a new CAW cancellation job, many resources may be consumed.
  • one CAW elimination job saves resources by sequentially eliminating CAW states in a plurality of volumes (1, 2, 3).
  • FIG. 17 shows a CAW cancellation job of the second embodiment.
  • the volume accessed by a Read job or the like is called an access volume, and the accessed slot is called a target slot.
  • step S2110 the copy processing program 112 performs initial setting of a CAW resolution job based on the job management table.
  • the copy processing program 112 performs CAW cancellation target determination processing, specifies the highest volume with the target slot in the CAW state from the access volume as the cancellation target volume, and performs old data save processing and merge copy processing. Specify the copy source volume.
  • the copy processing program 112 performs the above-described old data saving process from the copy source volume to the save destination volume of the cancellation target volume. Thereafter, in S2140, the copy processing program 112 performs the aforementioned merge copy processing from the copy source volume to the cancellation target volume. Thereafter, in step S2150, the copy processing program 112 determines whether to end the CAW cancellation job. Here, when the cancellation target volume is an access volume, the copy processing program 112 determines to end the CAW cancellation job.
  • the copy processing program 112 moves the process to S2120 and selects the next resolution target volume.
  • the copy processing program 112 performs the CAW cancellation job termination process in S2160 and terminates this flow.
  • a single CAW elimination job can eliminate the CAW status of a plurality of volumes for eliminating the CAW status of the target slot of the access volume.
  • FIG. 18 shows a CAW cancellation target determination process of the second embodiment.
  • the copy processing program 112 selects an access volume as a search volume in S2210. Thereafter, in step S2220, the copy processing program 112 performs the above-described entity position search process, and determines whether the target slot of the entity position volume is in the CAW state based on the result.
  • the copy processing program 112 When it is determined that the target slot of the actual position volume is in the CAW state (S2220: CAW ON detection), the copy processing program 112 stores the actual position volume as a CAW volume in S2240, and searches for the CAW volume in S2250. Select as volume. Thereafter, in step S2260, the copy processing program 112 performs second entity position search processing on the search volume, and determines the obtained entity position.
  • the copy processing program 112 selects Root as the cancellation target volume in S2270 and copies the Root. This is selected as the original volume and this flow is terminated.
  • the copy processing program 112 selects the CAW volume as the volume to be resolved in S2280, selects the entity position volume as the copy source volume, and ends this flow.
  • the copy processing program 112 can detect the cancellation target volume and the copy source volume.
  • FIG. 19 shows a second entity position search process according to the second embodiment.
  • the copy processing program 112 determines the target slot state 385 in the search volume GUDT 380 and the target slot information 323 of the search volume slot information 320.
  • the copy processing program 112 determines that the CAW state cannot be detected in S2330, and thus ends abnormally and ends this flow. To do.
  • the copy processing program 112 in S2340 indicates that the target slot state 375 in the GCMT 370 of the search volume is “unallocated”. It is determined whether or not.
  • the copy processing program 112 in S2350, the actual position volume is the search volume and the actual position is It is indicated in the GCMT of the actual position volume and the target slot of the actual position volume is not in the CAW state, and this flow is terminated.
  • the copy processing program 112 determines in S2360 whether there is a younger generation of the search volume. judge.
  • the copy processing program 112 selects the brother generation volume immediately after the search volume as a new search volume in S2370, and shifts the processing to S2340.
  • the copy processing program 112 determines in S2380 whether there is a parent generation of the search volume.
  • the copy processing program 112 determines that the process has ended abnormally in S2390 and ends this flow.
  • the copy processing program 112 selects the parent generation volume of the search volume as a new search volume in S2410. Thereafter, in S2420, the copy processing program 112 determines whether or not the search volume is Root.
  • the copy processing program 112 refers to the target slot information 323 of the slot information 320 of the search volume in S2430, and the target slot of the search volume is in the CAW state. It is determined whether or not.
  • the copy processing program 112 If it is determined that the target slot is not in the CAW state (S2430: No), in S2440, the copy processing program 112 returns that the actual position volume is Root and the target slot of the Root is not in the CAW state, and ends this flow. To do.
  • the copy processing program 112 in S2460, indicates the target slot state 385 in the search volume GUDT 380 and the target slot information 323 of the search volume slot information 320. Is determined.
  • the copy processing program 112 in S2470, the entity position volume is the search volume and the entity position is It is indicated in the search volume GUDT and the target slot of the entity position volume is not in the CAW state, and this flow is terminated.
  • the copy processing program 112 determines that the actual location volume is the search volume in S2480. It is returned that the actual position is indicated in the GUDT of the actual position volume and the target slot of the actual position volume is in the CAW state, and this flow is finished.
  • the copy processing program 112 can detect the highest volume that should cancel the CAW state of the target slot as the entity position volume.
  • FIG. 20 shows an outline of the CAW elimination process of the third embodiment.
  • the copy source data for canceling the CAW state may be common depending on the snapshot structure and the position of the volume in the CAW state.
  • the copy processing program 112 of this embodiment creates a copy list indicating a copy source and a copy destination for eliminating a plurality of CAW states, and performs copying based on the copy list. Since the copy processing program 112 copies one copy source data to a plurality of copy destinations, the resources of the storage apparatus 10 can be saved.
  • FIG. 21 shows the copy list 410.
  • the copy list 410 has a head attribute 411, a head SSID 412, and a list length 413.
  • the copy list 410 includes a volume as an element and, for each element, a subscript 421, a CAW cancellation target SSID 422, copy source data information 423, old data save necessity 424, old data save destination SSID 425, and merge copy required. It includes a rejection 426 and a copy status 427.
  • the head attribute 411 is an attribute of the searched highest copy source volume, and indicates any of Root, GCMT, and GUDT.
  • the head SSID 412 is the SSID of the highest copy source volume. When the head attribute 411 is Root, the head SSID 412 is invalid.
  • the length 413 of the list includes the subscript 421, the CAW cancellation target SSID 422, the copy source data information 423, the old data save necessity 424, the old data save destination SSID 425, the merge copy necessity 426, and the copy status 427. The number of each element is shown.
  • the subscript 421 is a number indicating an element.
  • the CAW cancellation target SSID 422 indicates the SSID of the volume whose target slot is in the CAW state.
  • the copy source data information 423 indicates whether the data in the target slot of the copy source volume is the old data “old” or the current data “current”.
  • the old data save necessity 424 indicates whether the old data save process is “necessary” or “no”.
  • the old data save destination SSID 425 indicates the SSID of the save destination volume when old data save processing is necessary.
  • the merge copy necessity 426 indicates whether the merge copy is “necessary” or “not necessary”.
  • the copy status 427 indicates the processing status. “Not yet” indicates the initial state. “Medium” indicates that the copy target is selected. “Complete” indicates that the cancellation of the CAW state is completed.
  • FIG. 22 shows a CAW cancellation job of the third embodiment.
  • step S3110 the copy processing program 112 performs initial setting of a CAW resolution job based on the job management table. Thereafter, the copy processing program 112 creates the copy list 410 by performing a copy list creation process in S3120.
  • the copy processing program 112 performs copy target volume setting processing in S3130.
  • this copy target volume setting process one copy source volume and at least one copy destination volume corresponding thereto are selected as copy target volumes from the copy list, and the copy status of the selected volume in the copy list 410 is selected. In 427, the selected state is recorded.
  • the copy processing program 112 performs a copy source read process in S3140. In this copy source read process, a copy source volume is selected from the copy list 410, and the data of the target slot of the copy source volume is read to a temporary area in the cache area.
  • the copy processing program 112 performs the old data save destination write processing in S3150.
  • the old data save destination write process based on the copy list 410, the temporary area data is written to the target slot of the selected copy destination volume that requires the old data save process.
  • the copy processing program 112 performs merge copy destination write processing in step S3160.
  • the merge copy destination write process based on the copy list 410, the temporary area data is written to the target slot of the volume that requires a merge copy among the selected copy destination volumes.
  • the copy processing program 112 determines whether or not the CAW elimination process is completed by performing an end determination process.
  • the copy processing program 112 shifts the process to S3130 and selects the next copy source volume.
  • the copy processing program 112 performs a CAW cancellation job end process in S3190 and ends this flow.
  • the copy processing program 112 can reduce the number of reads from the copy source volume as compared with the first and second embodiments.
  • FIG. 23 shows the first part of the copy list creation process of the third embodiment.
  • FIG. 24 shows a second part of the copy list creation process of the third embodiment.
  • the copy processing program 112 initializes a copy list in S3210. Thereafter, in S3220, the copy processing program 112 creates one element in the copy list, records “not yet” in the copy status 427, and records 1 in the length 413 of the list. Thereafter, the copy processing program 112 selects an access volume as a processing target volume in S3230.
  • the copy processing program 112 records the SSID of the pair whose processing target volume is the secondary volume in the CAW cancellation target SSID 422.
  • the copy processing program 112 determines whether the processing target volume is Leaf based on the volume information table 310.
  • the copy processing program 112 When it is determined that the processing target volume is Leaf (S3250: Yes), the copy processing program 112 records “No” in the old data saving necessity 424 in S3290, and shifts the processing to S3310.
  • the copy processing program 112 sets the processing target volume as the primary volume based on the pair information table 330 in S3260, and sets the WR generation number ⁇ 1 of the target slot. A pair having a generation number equal to is selected as pair A. That is, the pair A is a pair created immediately before Write of the processing target volume, and is a pair serving as a save destination of old data of the processing target volume. Thereafter, in S3270, the copy processing program 112 determines whether or not the GCMT state of the target slot of the pair A is “allocated”.
  • the copy processing program 112 shifts the processing to the above-described S3290.
  • the copy processing program 112 When it is determined that the state of the GCMT is “unallocated” (S3270: unallocated), the copy processing program 112 records “necessary” in the old data save necessity 424 in S3280, and the old data save destination SSID 425. The SSID of the pair A is recorded, and the process proceeds to S3310 (A in the figure).
  • step S3310 the copy processing program 112 determines whether the processing target volume is Root. When it is determined that the processing target volume is not Root (S3310: No), the copy processing program 112 records “necessary” in the merge copy necessity 426 in S3320, and shifts the processing to S3340. If it is determined that the processing target volume is Root (S3310: Yes), the copy processing program 112 records “No” in the merge copy necessity 426 in S3330, and shifts the processing to S3340.
  • step S3340 the copy processing program 112 performs the above-described second entity position search process using the processing target volume as a search volume, and determines whether the target slot of the obtained entity position volume is in the CAW state.
  • the subsequent S3410 to S3430 set the copy source information.
  • the copy processing program 112 determines whether or not the WR generation number-1 of the target slot of the copy source volume (primary volume) of the processing target volume is larger than the generation number of the processing target volume.
  • step S3410 If it is determined that the WR generation number-1 of the target slot of the copy source volume is larger than the generation number of the processing target volume (S3410: Yes), the copy source volume is created after the copy source volume and processing target volume pair is created.
  • the copy processing program 112 records “old” in the copy source data information 423 in order to indicate that the target slot is updated and the data of the processing target volume is the old data of the copy source volume.
  • the target slot of the copy source volume is updated and then the processing is performed.
  • the copy processing program 112 records “current” in the copy source data information 423 in S3430 to indicate that the target volume pair is created and the data of the processing target volume is the current data of the copy source volume.
  • the copy processing program 112 adds 1 to the length 413 of the list in S3440, records “not yet” in the copy status 427 in S3450, selects the entity position volume as the processing target volume in S3460, and The process proceeds to S3240 (B in the figure) described above.
  • the copy processing program 112 determines the actual position in S3510.
  • the copy processing program 112 When it is determined that the entity position volume is Root (S3510: Root), the copy processing program 112 records Root in the head attribute 411 in S3520, records invalidity in the head SSID 412 in S3530, and executes this flow. finish.
  • the copy processing program 112 When it is determined that the entity position is indicated in the GCMT of the entity position volume (S3510: GCMT), the copy processing program 112 records the GCMT in the head attribute 411 in S3540, and in S3560 the entity position in the head SSID 412. The SSID of the volume is recorded and this flow is finished.
  • the copy processing program 112 When it is determined that the entity position is indicated in the GUDT of the entity position volume (S3510: GUDT), the copy processing program 112 records GCMT in the head attribute 411 in S3550, and in S3560, the entity position is stored in the head SSID 412. The SSID of the volume is recorded and this flow is finished.
  • the copy processing program 112 creates the copy list 410 indicating the settings of the copy target volume setting process, the copy source read process, the old data save destination write process, and the merge copy destination write process. Can do.
  • the volume as an element is arranged from the access volume to the higher volume in ascending order of the subscript 421.
  • the above-described example of the copy list 410 shows a state after the copy list creation process.
  • FIG. 25 shows a copy target volume setting process according to the third embodiment.
  • the copy processing program 112 substitutes the list length 413 into a pointer for designating the subscript 421 of the element of the copy list 410. Thereafter, in S3620, the copy processing program 112 determines whether or not the copy state 427 of the element indicated by the pointer is “not yet”.
  • the copy processing program 112 subtracts 1 from the pointer in S3630 and determines whether the pointer is 0 in S3640.
  • the copy processing program 112 shifts the process to S3620 and determines the next element.
  • the copy processing program 112 determines in S3650 whether the copy source data information 423 of the element indicated by the pointer is “present”. Determine.
  • the copy processing program 112 shifts the processing to the above-described S3660.
  • the copy processing program 112 When it is determined that the copy source data information 423 is “current” (S3650: current), the copy processing program 112 records the content in the copy state 427 of the element indicated by the pointer in S3710, and in S3720. 1 is subtracted from the pointer, and in S3730, it is determined whether or not the pointer is 0.
  • the copy processing program 112 determines in S3740 whether the copy source data information 423 of the element indicated by the pointer is current.
  • the copy processing program 112 determines that the copy source data information 423 is “current” in order from the higher volume among the volumes shown in the copy list 410 (in descending order of the subscript 421). Volume (pair secondary volume created after parent generation WR) is used as the copy source volume, followed by "old" volume (pair secondary volume created before parent generation WR) Can be selected as the copy destination volume, the group can be selected as the copy target volume, and the copy status 427 can be changed to “medium”.
  • the first copy target volume setting process selects volumes with subscripts 5 to 3 as copy target volumes, and the next copy target volume setting process includes subscripts 2 to 1 Volumes up to and including are selected as copy target volumes.
  • FIG. 26 shows a copy source read process according to the third embodiment.
  • step S3810 the copy processing program 112 substitutes the list length 413 into a pointer that designates the subscript 421. Thereafter, in S3820, the copy processing program 112 determines whether or not the copy state 427 of the element indicated by the pointer is “medium”.
  • the copy processing program 112 subtracts 1 from the pointer in S3830, and determines whether the pointer is 0 in S3840.
  • the copy processing program 112 shifts the processing to S3820 and determines the next element.
  • the copy processing program 112 determines whether or not the pointer matches the list length 413 in S3860.
  • the copy processing program 112 selects the volume indicated by the head SSID 412 and the head attribute 411 as a copy source volume in S3870, and performs processing. The process proceeds to S3890.
  • the copy processing program 112 sets the volume indicated by the CAW resolution target SSID 422 of the element of pointer + 1 as the copy source volume.
  • the actual position indicated in the GUDT of the target slot of the volume is acquired, and the process proceeds to S3890.
  • the copy processing program 112 reads the data stored at the actual position of the target slot of the copy source volume to the temporary area, and ends this flow.
  • the data of the highest volume in the copy target volume can be read to the temporary area.
  • the copy processing program 112 performs the first copy for the first copy.
  • the volume indicated by the attribute 411 and the head SSID 412 is selected as the copy source volume.
  • the copy processing program 112 selects the lowest volume of the previous copy target volume (the largest subscript + 1 volume of the current copy target volume) as the copy source volume.
  • the first copy source read process selects Root as the copy source volume
  • the next copy source read process selects the volume with the subscript 2 as the copy source volume.
  • FIG. 27 shows the old data save destination Write process of the third embodiment.
  • the copy processing program 112 substitutes the length 413 of the list into a pointer for designating the subscript 421 of the element. Thereafter, in S4120, the copy processing program 112 determines whether or not the copy state 427 of the element indicated by the pointer is “medium”.
  • the copy processing program 112 subtracts 1 from the pointer in S4130, and determines whether the pointer is 0 in S4140.
  • the copy processing program 112 shifts the processing to S4120 and determines the next element.
  • the copy processing program 112 determines in S4160 whether the old data save necessity 424 of the element indicated by the pointer is “necessary”. Determine whether.
  • the copy processing program 112 saves the volume indicated by the old data save destination SSID 425 of the element indicated by the pointer in S4170.
  • the cache slot corresponding to the target slot of the save destination volume is selected as the save destination cache slot, and the data in the temporary area is written to the save destination cache slot.
  • the copy processing program 112 subtracts 1 from the pointer in S4210, and determines whether or not the pointer is 0 in S4220.
  • the copy processing program 112 determines in S4230 whether the copy state 427 of the element indicated by the pointer is “medium”.
  • the copy processing program 112 shifts the processing to S4160 and determines the next element.
  • the copy processing program 112 can write the data in the temporary area to the save destination volume. Further, the copy processing program 112 can select the volume indicated by the old data save destination SSID 425 of the volume whose old data save necessity 424 is “necessary” among the copy target volumes as the save destination volume.
  • FIG. 28 shows merge copy destination write processing of the third embodiment.
  • the first steps S4110 to S4150 in the merge copy destination write process are the same as the old data save destination write process described above.
  • the copy processing program 112 determines in S4160b whether the merge copy necessity 426 of the element indicated by the pointer is “necessary”. Determine.
  • the copy processing program 112 changes the volume indicated by the CAW cancellation target SSID 422 of the element indicated by the pointer to the copy destination volume.
  • the cache slot corresponding to the target slot of the copy destination volume is selected as the copy destination cache slot, and the data in the temporary area is written to the copy destination cache slot.
  • the copy processing program 112 changes the copy state 427 of the element indicated by the pointer to “complete”.
  • the copy processing program 112 can write the data in the temporary area to the merge copy destination pool slot of each copy destination volume. Also, the copy processing program 112 can select the volume indicated by the CAW resolution target SSID 422 as the copy destination volume for the volume whose merge copy necessity 426 is “necessary” among the copy target volumes.
  • FIG. 29 shows the end determination process of the third embodiment.
  • the copy processing program 112 releases the temporary area in S4510. Thereafter, the copy processing program 112 assigns 1 to the pointer in S4520.
  • the copy processing program 112 determines whether or not the copy state 427 of the element indicated by the pointer is “complete”.
  • the copy processing program 112 determines that the CAW resolution processing is incomplete, and ends this flow.
  • the copy processing program 112 adds 1 to the pointer in S4540, and whether the pointer is greater than the value of the list length 413 in S4550. Determine whether or not.
  • the copy processing program 112 shifts the processing to S4530 and determines the next element.
  • the copy processing program 112 can determine whether or not the CAW elimination processing is completed using the copy list 410.
  • FIG. 30 shows an outline of a modification of the third embodiment.
  • the CAW elimination job specifies the copy source and the copy destination as in the third embodiment. Thereafter, a request is made to another job for copy processing from the copy source to the copy destination. Thereby, since a plurality of copy jobs can be operated in a multiplexed manner, the processing time can be reduced as compared with the third embodiment. On the other hand, multiple copy job resources are required.
  • FIG. 31 shows a CAW cancellation job according to a modification of the third embodiment.
  • First S3110 to 3140 in the CAW cancellation job of the modification are the same as those of the CAW cancellation job of the third embodiment.
  • the copy processing program 112 starts a job of processing similar to the old data save destination Write processing in S3150. Thereafter, in S3160b, the copy processing program 112 activates a job of the same process as the merge copy destination write process of S3160, and waits until the activated job ends.
  • the copy processing program 112 acquires the job results of S3150b and S3160b. Subsequent S3180 to 3190 are the same as the CAW cancellation job of the third embodiment.
  • the copy processing program 112 can reduce the processing time as compared with the CAW elimination job of the third embodiment.
  • FIG. 32 shows an outline of the CAW elimination processing of the fourth embodiment.
  • the old data save destination is a GCMT shared between generations. For this reason, the old data save destination is not updated by Write. Therefore, when the old data saving process is performed for each generation, the same data is copied.
  • the copy processing program 112 of the present embodiment copies the saved data of the same copy source only once, and records the old data save destination as the reference destination of each GCMT, thereby improving the data usage efficiency of the pool.
  • FIG. 33 shows a CAW cancellation job of the fourth embodiment.
  • the first S3110 to S3140 in the CAW cancellation job of the fourth embodiment are the same as the CAW cancellation job of the third embodiment.
  • the copy processing program 112 performs old data write processing for writing the common saved data to the pool only once. Thereafter, in S3155d, the copy processing program 112 performs save destination setting processing for recording a pointer indicating the save destination pool slot of the save data in the GCMT.
  • FIG. 34 shows the old data write process of the fourth embodiment.
  • step S5110 the copy processing program 112 searches for an empty pool slot and secures the obtained empty pool slot as a save destination pool slot. Thereafter, in step S5120, the copy processing program 112 copies from the temporary area to the save destination pool slot. Thereafter, in S5130, the copy processing program 112 changes the status 364 of the save destination pool slot in the pool slot information 360 from “unallocated” to “allocated”, and ends this flow.
  • the copy processing program 112 can copy the copy source data to the pool.
  • FIG. 35 shows a save destination setting process according to the fourth embodiment.
  • First steps S4110 to S4170 in the save destination setting process of the fourth embodiment are the same as the old data save destination write process of the third embodiment.
  • the copy processing program 112 records the save destination pool slot in the pool information of the target slot in the GCMT of the element indicated by the pointer, and changes the state of the target slot to “allocated”. Thereafter, in S4190d, the copy processing program 112 records information indicating the GCMT target slot of the element indicated by the pointer in the reference source information of the save destination pool slot in the pool slot information 360.
  • the copy processing program 112 can allocate the save data written to the pool to a plurality of volumes.
  • the confirmation process corresponds to a CAW cancellation process or the like.
  • the save process corresponds to an old data save process, an old data save destination write process, an old data write process, a save destination setting process, and the like.
  • the merge process corresponds to a merge copy process, a merge copy destination write process, and the like.
  • Confirmation of data corresponds to the fact that the data is not in the CAW state, the CAW flag is OFF, and the like.
  • the fact that the data has not been determined corresponds to a CAW state, a CAW flag being ON, and the like.
  • the unconfirmed volume corresponds to a volume whose target slot is in the CAW state.
  • SYMBOLS 10 ... Storage device, 20 ... Host computer, 30 ... Management terminal, 100 ... Controller, 110 ... Memory, 120 ... CPU, 130 ... Bridge, 140 ... Upper interface, 150 ... Lower interface, 160 ... Communication interface, 200 ... Storage device 210 ... disc

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

スナップショットを格納するボリュームのスナップショットを作成すると共に、応答時間を抑える。 プロセッサは、複数のボリュームの中の対象ボリューム内の対象スロットへのライトデータをホスト計算機から受信する場合、対象ボリューム内の対象スロットのデータが確定していないことを管理情報へ記録し、メモリ内の対象キャッシュ領域へライトデータを書き込み、ホスト計算機へ応答を送信する。プロセッサは、対象ボリューム内の対象スロット内の対象データを参照する前に、管理情報に基づいて、対象データが確定しているか否かを判定する。対象データが確定していないと判定された場合、プロセッサは、対象データを確定させるための確定処理を行い、対象データを参照する。

Description

ストレージ装置および記録媒体
 本発明は、ストレージ装置に関する。
 特許文献1には、ストレージ装置において、正ボリュームのスナップショットイメージを副ボリュームに作成し、正ボリュームの更新時にCAW(Copy after write)を用いる技術が記載されている。
特表2014―507693号公報
 前述のようなスナップショットの技術は、スナップショットを作成した後に正ボリュームが更新されると、更新の後に、更新による差分データを副ボリュームへ書き込む。そのため、更に副ボリュームのスナップショットを作成することは困難である。
 上記課題を解決するために、本発明の一態様であるストレージ装置は、記憶デバイスと、メモリと、前記記憶デバイス、前記メモリ、及びホスト計算機に接続されるプロセッサと、を備える。前記プロセッサは、前記記憶デバイスを用いるプールを作成し、前記プロセッサは、複数のボリュームを作成し、各ボリュームは、複数のスロットを含み、前記複数のボリュームは、ルートボリュームと、複数の仮想ボリュームとを含み、各仮想ボリュームは、指示された時点における、前記複数のボリュームのうち他の一つの親ボリュームのスナップショットを格納し、前記プロセッサは、各仮想ボリューム内の複数のスロットを、対応する親ボリューム内の複数のスロットに夫々関連付け、前記プロセッサは、各仮想ボリューム内のデータを格納するスロットを、前記プール内のプール領域に関連付け、前記プロセッサは、前記親ボリュームと対応する仮想ボリュームとの間の差分データを、前記プールへ書き込み、前記プロセッサは、前記複数のボリュームと前記プールの関係を示す管理情報を、前記メモリへ記録し、前記プロセッサは、前記複数のボリュームの中の対象ボリューム内の対象スロットへのライトデータを前記ホスト計算機から受信する場合、前記対象ボリューム内の対象スロットのデータが確定していないことを前記管理情報へ記録し、前記メモリ内の対象キャッシュ領域へ前記ライトデータを書き込み、前記ホスト計算機へ応答を送信し、前記プロセッサは、前記対象ボリューム内の対象スロット内の対象データを参照する前に、前記管理情報に基づいて、前記対象データが確定しているか否かを判定し、前記対象データが確定していないと判定された場合、前記プロセッサは、前記対象データを確定させるための確定処理を行い、前記対象データを参照する。前記確定処理は、前記管理情報に基づいて、前記対象ボリューム内の対象スロットのデータを格納するコピー元ボリュームを選択し、前記管理情報に基づいて、前記コピー元ボリューム内の対象スロット内のコピー元データが確定しているか否かを判定し、前記コピー元データが確定していると判定された場合、前記確定処理は、前記対象データを退避させるための退避処理を行い、前記対象データを更新するためのマージ処理を行い、前記対象データが確定していることを前記管理情報へ記録し、前記退避処理は、前記管理情報に基づいて、前記対象データの退避が必要であるか否かを判定し、前記対象データの退避が必要であると判定された場合、前記退避処理は、前記対象データを前記プールへ書き込み、前記マージ処理は、前記コピー元データと前記ライトデータとをマージすることでマージデータを生成し、前記マージデータを前記プールへ書き込む。
 スナップショットを格納するボリュームのスナップショットを作成できると共に、応答時間を抑えることができる。
計算機システムの構成を示す。 スナップショットの概要を示す。 SS制御情報と実体位置検索処理の概要を示す。 カスケード型スナップショットの概要を示す。 スナップショット構造の概要を示す。 CAWの概要を示す。 カスケード型スナップショットにおけるCAW解消処理の概要を示す。 管理情報111の第一部分を示す。 管理情報111の第二部分を示す。 管理情報111の第三部分を示す。 実施例1のCAW解消処理の概要を示す。 実施例1のCAW解消ジョブを示す。 実体位置検索処理を示す。 旧データ退避処理を示す。 マージコピー処理を示す。 実施例2のCAW解消処理の概要を示す。 実施例2のCAW解消ジョブを示す。 実施例2のCAW解消対象判定処理を示す。 実施例2の第二実体位置検索処理を示す。 実施例3のCAW解消処理の概要を示す。 コピーリスト410を示す。 実施例3のCAW解消ジョブを示す。 実施例3のコピーリスト作成処理の第一部分を示す。 実施例3のコピーリスト作成処理の第二部分を示す。 実施例3のコピー対象ボリューム設定処理を示す。 実施例3のコピー元Read処理を示す。 実施例3の旧データ退避先Write処理を示す。 実施例3のマージコピー先Write処理を示す。 実施例3の終了判定処理を示す。 実施例3の変形例の概要を示す。 実施例3の変形例のCAW解消ジョブを示す。 実施例4のCAW解消処理の概要を示す。 実施例4のCAW解消ジョブを示す。 実施例4の旧データWrite処理を示す。 実施例4の退避先設定処理を示す。
 以下、図面を参照して本発明の実施形態を説明する。
 以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
 また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
 また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
 また、以下の説明では、I/O(Input/Output)要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理又はシステムとしてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
 また、以下の説明では、管理システムは、一以上の計算機を含んでいてもよい。具体的には、例えば、管理計算機が情報を表示する場合(具体的には、例えば、管理計算機が自分の表示デバイスに情報を表示する、或いは、管理計算機が表示用情報を遠隔の表示用計算機に送信する場合)、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んでよい)が、管理システムである。管理計算機(例えば管理システム)は、表示システムを含むI/Oシステムに接続されたインタフェースデバイスと、記憶資源(例えばメモリ)と、インタフェースデバイス及び記憶資源に接続されたプロセッサとを有してよい。表示システムは、管理計算機が有する表示デバイスでもよいし、管理計算機に接続された表示用計算機でもよい。I/Oシステムは、管理計算機が有するI/Oデバイス(例えばキーボード及びポインティングデバイス、タッチパネル)でもよいし、管理計算機に接続された表示用計算機又は別の計算機でもよい。管理計算機が「表示用情報を表示する」ことは、表示システムに表示用情報を表示することであり、これは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。また、管理計算機が情報を入出力するとは、管理計算機が有するI/Oデバイスとの間で情報の入出力を行うことであってもよいし、管理計算機に接続された遠隔の計算機(例えば表示用計算機)との間で情報の入出力を行うことであってもよい。情報の出力は、情報の表示であってもよい。
 図1は、計算機システムの構成を示す。
 計算機システムは、ストレージ装置10と、ホスト計算機20と、管理端末30とを含む。管理端末30は、通信ネットワークを介してホスト計算機20に接続されていてもよい。
 ホスト計算機20は、ストレージ装置10へWR(Write)要求を送信することで、ストレージ装置10へデータを書き込む。また、ストレージ装置10へRD(Read)要求を送信することで、ストレージ装置10からデータを読み出す。
 管理端末30は、メモリとCPUと通信I/Fと入力デバイスと表示デバイスとを含む。管理端末30において、CPUは、メモリに格納される管理プログラム31を実行することで処理を行う。例えば、管理端末30は、管理者から入力デバイスへ入力されるストレージ装置10の設定情報を受け付け、その設定情報をストレージ装置10へ送信する。また、管理端末30は、ストレージ装置10の状態情報をストレージ装置10から受信し、その状態情報を表示デバイスに表示させる。
 ストレージ装置10は、コントローラ100と、記憶デバイス200とを含む。記憶デバイス200は、複数のディスク210を含む。
 コントローラ100は、メモリ110と、CPU120と、ブリッジ130と、上位I/F140と、下位I/F150と、通信I/F160とを含む。
 CPU120は、メモリ110内のプログラムに従って処理を行う。例えば、CPU120は、ディスク210を用いてプール220を作成する。ブリッジ130は、コントローラ100の各部を接続する。上位I/F140は、通信ネットワークを介してホスト計算機20に接続されている。下位I/F150は、ディスク210に接続されている。通信I/F160は、通信ネットワークを介して管理端末30に接続されている。
 メモリ110は、管理情報111と、コピー処理プログラム112と、I/O処理プログラム113と、キャッシュ領域114とを格納する。
 管理情報111は、ディスク210に格納されるデータを管理するための情報である。コピー処理プログラム112は、複数のディスク210の間でデータをコピーする。I/O処理プログラム113は、ホスト計算機20からの要求に応じてI/O処理を行う。キャッシュ領域114は、I/O処理によりホスト計算機20と送受信されるデータを一時的に格納する。
 図2は、スナップショットの概要を示す。
 I/O処理プログラム113は、ディスク210を用いて論理ボリューム又は仮想ボリュームを作成する。I/O処理プログラム113は、プールとなる論理ボリュームを作成し、Thin Provisioningにより、プール内の記憶領域を仮想ボリュームに割り当てる。コピー処理プログラム112は、正ボリュームと副ボリュームをペアとして設定する。これにより、ストレージ装置10は、瞬時に正ボリュームの複製を副ボリュームに作成することができる。以後、正ボリュームをP-VOL(Primary Volume)と呼ぶことがあり、副ボリュームをS-VOL(Secondary Volume)と呼ぶことがある。
 正ボリューム内の或る領域へのWriteが行われる場合、コピー処理プログラム112は、Writeによる正ボリュームと副ボリュームの間の差分データをプールへ書き込み、プール内の差分データの実体位置を示す実体位置情報を記録する。その後、副ボリューム内の当該領域が参照される前に、I/O処理プログラム113は、実体位置を検索し、実体位置情報に基づいてプール内の実体位置の差分データを参照する。コピー処理プログラム112は、実体位置情報を含むSS(Snapshot)制御情報を、プールに格納する。データの実体位置は、仮想ボリュームであれば、そのボリュームに割り当てられたプールアドレスを示し、論理ボリュームであれば、そのボリューム内の論理アドレスを示す。
 本実施例では、ボリューム、プール、及びキャッシュ領域の夫々における単位記憶領域をスロットと呼ぶ。スロットは、スロット番号等の識別子により管理される。副ボリューム内のスロットは、その副ボリュームに対する正ボリュームのうち同一のスロット番号を持つスロットに関連付けられる。スロットのサイズは例えば256kBである。特にプール内のスロットをプールスロット、キャッシュ領域内のスロットをキャッシュスロットと呼ぶ。スロットの代わりに、アドレス範囲を示す他の記憶領域が用いられてもよい。
 本実施例では、正ボリュームが更新される場合、コピー処理プログラム112は、更新前のデータ(旧データ)を差分データとしてプールへ書き込む。プールのうち当該差分データを格納するプールスロットは、副ボリューム内のスロットに割り当てられる。一つのプールスロットが、複数の副ボリュームにおける同一のスロット番号のスロットに割り当てられてもよい。なお、差分データが更新後の最新データ(現データ)であってもよい。この場合、プールのうち当該差分データを格納するプールスロットは、正ボリューム内のスロットに割り当てられてもよい。
 図3は、SS制御情報と実体位置検索処理の概要を示す。
 ボリュームのSS制御情報は、スロット毎に、世代間共有情報(GCMT)と世代固有情報(GUDT)を含む。GCMTは、他のボリュームから退避される差分データ等、差分データを世代間で共有している場合に有効になる。有効なGCMTは、差分データの実体位置のプールスロットを示すポインタ(実体位置情報)を含む。GUDTは、当該ボリュームが更新され、退避の必要がない場合等、当該ボリュームに固有の差分データを格納する場合に有効になる。有効なGUDTは、差分データの実体位置のプールスロットを示すポインタを含む。GCMT及びGUDTにおけるポインタは、プール番号とプールスロット番号を含む。なお、プールスロット番号の代わりに、プール内のアドレスが用いられてもよい。
 例えば、正ボリューム内のスロットへWriteが行われたことで、正ボリュームの当該スロットの差分データを副ボリュームへ退避する場合、コピー処理プログラム112は、差分データをプールへ退避し、退避先の実体位置情報を、副ボリュームの当該スロットのGCMTに格納する。また、例えば、副ボリュームにWriteが行われ、副ボリュームの当該スロットに差分データが発生した場合、コピー処理プログラム112は、差分データをプールへ書き込み、書き込み先を示す実体位置情報を、副ボリュームの当該スロットのGUDTに格納する。
 ここでは、正ボリュームのスナップショットとして副ボリューム2が作成され、その後、正ボリュームの次の世代のスナップショットとして副ボリューム1が作成される。これにより、正ボリュームには、最新のデータが格納され、副ボリューム1には、副ボリューム2より新しい世代のデータが格納される。正ボリューム、副ボリューム1、副ボリューム2において、ホストアクセスされるスロットのスロット番号で示されるスロットを対象スロットと呼ぶ。
 コピー処理プログラム112は、副ボリュームの参照時に、実体位置を検索する実体位置検索処理を行う。実体位置検索処理において、コピー処理プログラム112は、アクセスされる副ボリューム2を検索ボリュームとして設定し、検索ボリュームの対象スロットのGUDTが有効であるか否かを判定する。GUDTが有効である場合、コピー処理プログラム112は、そのGUDTに含まれる実体位置情報を返す。GUDTが無効である場合、コピー処理プログラム112は、対象スロットのGCMTが有効であるか否かを判定する。GCMTが有効である場合、コピー処理プログラム112は、そのGCMTに含まれる実体位置情報を返す。GCMTが無効である場合、コピー処理プログラム112は、検索ボリュームより新しい世代の検索ボリュームの対象スロットのGCMTが有効であるか否かを判定する。ここで、まずコピー処理プログラム112は、同一の正ボリュームに属する副ボリュームのうち、直後の世代の副ボリュームを検索ボリュームとして選択する。そのような副ボリュームがない場合、コピー処理プログラム112は、正ボリュームを検索ボリュームとして選択する。新たな検索ボリュームにおいて対応するGCMTが有効である場合、コピー処理プログラム112は、そのGCMTに含まれる実体位置情報を返す。GCMTが無効である場合、コピー処理プログラム112は、次の検索ボリュームを選択し、実体位置が得られるまで検索する。
 図4は、カスケード型スナップショットの概要を示す。
 コピー処理プログラム112は、或るペアの副ボリュームを正ボリュームとする別のペアを作成することができる。これにより、コピー処理プログラム112は、スナップショットのペアをカスケードに接続することで、カスケード型のスナップショット構造を作成することができる。このスナップショット構造において、コピー処理プログラム112は、SSID(Snapshot ID)がAであるペアのS-VOL(副ボリューム)属性を持つボリュームに、P-VOL(正ボリューム)属性を付与し、別の副ボリュームとのペアを作成し、そのペアにSSIDとしてBを付与する。スナップショット構造の最も先頭の正ボリュームをRootと呼ぶ。P-VOL属性とS-VOL属性を持つボリュームを、Branchと呼ぶ。S-VOL属性のみを持つボリュームをLeafと呼ぶ。ここでは、Rootのみが、実体を持つ論理ボリューム(Logical Device:LDEV)である。BranchおよびLeafは、仮想ボリュームである。仮想ボリュームのデータは、プールに格納される。RootのLDEV番号とSSIDの組み合わせで、Branch及びLeafのボリュームを特定することができる。なお、Rootが仮想ボリュームであってもよい。
 図5は、スナップショット構造の概要を示す。
 コピー処理プログラム112は、一つの正ボリュームに対して複数のペアを作成し、副ボリュームを正ボリュームとする下位のペアを作成することにより、ツリー状のスナップショット構造を作成することができる。
 以後、スナップショット構造内の一つのボリュームを対象ボリュームとし、対象ボリュームが副ボリュームである場合、対象ボリュームとペアを成す正ボリュームを親世代と呼ぶ。対象ボリュームが正ボリュームである場合、対象ボリュームとペアを成す副ボリュームを子世代と呼ぶ。対象ボリュームが、同一の正ボリュームを持つ複数の副ボリュームの一つである場合、複数の副ボリュームのうち、対象ボリュームより古い世代の副ボリュームを、兄世代と呼び、対象ボリュームより新しい世代の副ボリュームを弟世代と呼ぶ。また、対象ボリュームより新しい世代(弟世代及び親世代)のボリュームを、上位ボリュームと呼ぶ。
 或る副ボリューム内の或るスロットに格納されている現データは、当該ボリューム、または当該ボリュームの上位ボリュームに存在する。現データの実体位置は、当該ボリュームのGUDTに示されている、当該ボリュームのGCMTに示されている、または上位ボリュームに示されている、または上位ボリューム(Root)である。
 このようなスナップショット構造によれば、例えば、VDI(Virtual Desktop Infrastructure)の管理者は、仮想マシンのゴールデンイメージの複数の複製を瞬時に作成することができ、複製を配布することができる。更に、管理者は、部署やユーザ毎に複製を更新し、更新された複製を配布することができる。
 スナップショットの更新方法として、COW(Copy on Write)が知られている。COWは、旧データを副ボリュームへ退避した後にホスト計算機へ応答するため、応答時間が長い。例えば、VDIにおいて、仮想マシンの性能を保証する場合、イメージの複製にCOWを用いると、応答時間が長くなる。そこで、本実施例のコピー処理プログラム112は、更新方法としてCAWを用いる。
 図6は、CAWの概要を示す。
 本実施例において、キャッシュ領域は、キャッシュスロット毎に管理される。一つのキャッシュスロットは、ホスト計算機20から受信したデータを書き込むW面(Write面)と、記憶デバイス200からステージングされるデータを格納するR面(Read面)とを含む。W面とR面の夫々のサイズは、スロットサイズである。
 ストレージ装置10がホスト計算機20からWR要求を受領した場合、コントローラ100は、次のようなWR処理を行う。
(1)I/O処理プログラム113は、ホスト計算機20から正ボリューム内のアドレス範囲を指定するWR要求を受領すると、当該アドレス範囲に対応する対象スロットを特定する。
(2)コピー処理プログラム112は、正ボリュームの対象スロットのCAWフラグをONに設定する。
(3)コピー処理プログラム112は、ホスト計算機20からWRデータを受領し、キャッシュ領域のうち、正ボリュームの対象スロットに対応する対象キャッシュスロットのW面のうち、WR要求で指定されたアドレス範囲に対応する領域へ、WRデータを書き込む。
(4)I/O処理プログラム113は、WR要求に対する応答を、ホスト計算機20へ送信する。
 正ボリュームの対象スロットのCAWフラグがONである状態は、正ボリュームの対象スロットの全体の現データが確定していない状態である。この状態をCAW状態と呼ぶ。その後、正ボリュームの対象スロットを参照する契機で、コピー処理プログラム112は、次のようなCAW解消処理を行うことで、正ボリュームの対象スロットのCAW状態を解消する。
 (3)に応じて、I/O処理プログラム113は、その後のデステージングのために、対象キャッシュスロットの状態をdirtyに変更する。
(A)コピー処理プログラム112は、副ボリュームの対象スロットのGCMTに、プールのうち退避先のプールスロットのポインタを格納する。
(B)コピー処理プログラム112は、対象キャッシュスロットのR面に格納されている旧データを、副ボリュームの対象スロットに対応するキャッシュスロットのW面へコピーする旧データ退避(退避コピー)処理を行う。その後、I/O処理プログラム113は、デステージングにより、旧データを、W面から当該プールスロットへ書き込む。旧データ退避処理において、キャッシュスロットが正ボリュームの対象スロットに割り当てられていない場合、コピー処理プログラム112は、正ボリュームの対象スロットに対象キャッシュスロットを割り当て、対象キャッシュスロットのR面へ旧データをステージングする。
(C)コピー処理プログラム112は、正ボリュームの対象スロットのCAWフラグをOFFに設定する。
 (B)に応じて、I/O処理プログラム113は、対象キャッシュスロットのデステージングの後、対象キャッシュスロットの状態をcleanに変更する。
 このように、CAWは、旧データ退避処理前にホスト計算機20へ応答するため、COWに比べて、WR要求に対する応答時間を短縮することができる。
 図7は、カスケード型スナップショットにおけるCAW解消処理の概要を示す。
 カスケード型スナップショットのBranchである更新対象ボリュームの対象スロットに対するWrite要求に応じて、I/O処理プログラム113は、対象スロットに対応するW面の一部にWRデータを書き込み、対象スロットに対してCAW状態を設定する。その後、ホスト計算機20による対象スロットへのアクセス(Read又はWrite)や、コントローラ100による対象スロットのデステージング等、対象スロットの参照を契機として、コピー処理プログラム112は、CAW状態を解消するためのCAW解消処理を行う。
 ここでは、更新対象ボリュームを副ボリュームとするペアの正ボリューム(親世代のボリューム)を、親ボリュームと呼ぶ。更新対象ボリュームを正ボリュームとするペアの副ボリューム(子世代のボリューム)を、子ボリュームと呼ぶ。親ボリュームの対象スロット及び子ボリュームの対象スロットは、更新対象ボリュームの対象スロットと同じスロット番号を持つ。
 更新対象ボリュームの対象スロットへのWrite前において、対象スロットのGCMT及びGUDT、子ボリュームの対象スロットのGCMT及びGUDTは、何れも無効である。更新対象ボリュームの対象スロットへのWriteにより、更新対象ボリュームの対象スロットに対応するキャッシュスロットのW面にWRデータが書き込まれ、更新対象ボリュームの対象スロットのCAWフラグがONになる。
 CAW解消処理において、まず、コピー処理プログラム112は、更新対象ボリュームの対象スロットの旧データを子ボリュームの対象スロットへ退避する旧データ退避処理を行う。旧データ退避処理は、親ボリュームの対象スロットに対応するR面に格納されている、更新対象ボリュームの対象スロットの旧データを、子ボリュームの対象スロットに対応するW面へコピーし、プール内の新たなプールスロットを子ボリュームの対象スロットへ割り当てる。
 その後、コピー処理プログラム112は、旧データとWRデータをマージするマージコピー処理を行う。マージコピー処理は、更新対象ボリュームの対象スロットに対応するW面のうち、WRデータが書き込まれた領域以外のLBA(Logical Block Address)範囲を、補充LBA範囲とし、親ボリュームの対象スロットに対応するR面の補充LBA範囲に格納されているデータを、更新対象ボリュームの対象スロットに対応するW面の補充LBA範囲へコピーする。
 これにより、更新対象ボリュームの旧データが親ボリュームから子ボリュームへ退避され、親ボリュームの旧データとWRデータをマージすることで現データが得られ、現データが更新対象ボリュームに書き込まれる。これにより、更新対象ボリュームの対象スロットのデータが確定し、更新対象ボリュームの対象スロットのCAW状態が解消される。
 CAW解消処理後、更新対象ボリュームの対象スロットのCAWフラグがOFFになり、更新対象ボリュームの対象スロットのGUDTの実体位置情報が有効になる。更に、子ボリュームの対象スロットのGCMTの実体位置情報が有効になる。
 CAW解消処理において、もし親ボリュームの対象スロットがCAW状態である場合、親ボリュームに対するCAW解消処理が必要になる。
 ここでは、管理情報111の第一部分から第三部分に分けて説明する。
 図8は、管理情報111の第一部分を示す。
 管理情報111は、ボリューム毎に作成されるボリューム情報テーブル310と、ボリューム毎に作成されるスロット情報320と、ペア毎に作成されるペア情報テーブル330とを含む。
 一つのボリュームに対応するボリューム情報テーブル310は、LDEV番号311と、属性312と、容量313と、ペア情報テーブルポインタ314とを含む。LDEV番号311は、当該ボリュームを示す識別子である。属性312は、当該ボリュームが正ボリューム(P-VOL)、副ボリューム(S-VOL)、正ボリューム及び副ボリュームの両方(P/S-VOL)、それ以外のボリュームの何れかを示す。容量313は、当該ボリュームの容量を示す。ペア情報テーブルポインタは、当該ボリュームが属するペアのペア情報テーブル330を示す。
 一つのボリュームに対応するスロット情報320は、当該ボリューム内のスロット毎のエントリを含む。一つのスロットに対応するエントリは、当該スロットを示すスロット番号321と、当該スロットの情報322とを含む。情報322は、CAWフラグやWR世代番号等を含む。WR世代番号は、ペアの順序に対して当該スロットがWriteされた順序を示す。
 一つのペアに対応するペア情報テーブル330は、ペア状態331と、SSID332と、世代番号333と、正ボリュームテーブルポインタ334と、副ボリュームテーブルポインタ335とを含む。ペア状態331は、差分データを書き込むペア状態(PAIR)、差分データを書き込まないサスペンド状態(PSUS)等を示す。SSID332は、当該ペアを示す識別子である。世代番号333は、当該ペアの世代の順序を示す。正ボリュームテーブルポインタ334は、当該ペアにおける正ボリュームのボリューム情報テーブル310を示すポインタである。副ボリュームテーブルポインタ335は、当該ペアにおける副ボリュームのボリューム情報テーブル310を示すポインタである。
 コピー処理プログラム112は、世代番号及びWR世代番号が通し番号になるように、ペアに世代番号を与え、WriteされたスロットにWR世代番号を与える。例えば、コピー処理プログラム112は、或るペアを作成すると、当該ペアに世代番号nを与える。その後、当該ペアの正ボリュームの或るスロットがWriteされると、コピー処理プログラム112は、世代番号の最大値nに1を加えて得られるWR世代番号n+1を、当該スロットに与える。その後、コピー処理プログラム112は、新たなペアを作成すると、世代番号とWR世代番号の最大値に1を加えて得られる世代番号n+2を、その新たなペアに与える。
 図9は、管理情報111の第二部分を示す。
 管理情報111は更に、SS制御情報340を含む。SS制御情報340は、プール毎に作成されるプールスロット情報(GPMT)360と、ペア毎に作成される世代間共有情報(GCMT)370と、ペア毎に作成される世代固有情報(GUDT)380とを含む。
 一つのプールに対応するプールスロット情報360は、当該プールを示す識別子であるプール番号361と、プールスロット毎のエントリとを含む。一つのプールスロットに対応するエントリは、プールエントリ番号362と、プールスロット(データ格納先スロット)番号363と、状態364と、当該プールスロットの割当先のスロットであって当該プールスロットの参照元のスロットを示す参照元情報とを含む。プールエントリ番号362は、当該エントリの識別子である。プールスロット番号363は、当該プールスロットの識別子である。状態364は、当該プールスロットの状態を示し、参照元のスロットに割り当てられていない「未割当」、参照元のスロットに割り当てられデータが格納されていない「割当中」、参照元のスロットに割り当てられデータが格納されている「割当済み」の何れかの状態を示す。参照元情報は、RootLDEV番号365と、SSID366と、スロット番号367とを含む。RootLDEV番号365及びSSID366の組み合わせは、当該参照元のペアを示す。スロット番号367は、当該参照元のスロットを示す。
 一つのペアに対応するGCMT370は、RootLDEV番号371と、SSID372と、当該ペアの副ボリュームのスロット毎のエントリとを含む。RootLDEV番号371及びSSID372の組み合わせは、当該ペアを示す。一つのスロットに対応するエントリは、スロットエントリ番号373と、スロット番号374と、状態375と、当該スロットに割り当てられるプールスロットであって当該スロットの参照先のプールスロットを示すプール情報とを含む。スロットエントリ番号373は、当該エントリの識別子である。スロット番号374は、当該スロットの識別子である。状態375は、当該スロットの状態を示し、参照先が割り当てられていない「未割当」、参照先が割り当てられ参照先にデータが格納されていない「割当中」、参照先が割り当てられ参照先にデータが格納されている「割当済み」の何れかの状態を示す。プール情報は、プール番号376と、プールエントリ番号377とを含む。プール番号376は、参照先のプールを示す。プールエントリ番号377は、参照先のプールスロットを示す。
 一つのペアに対応するGUDT380は、RootLDEV番号381と、SSID382と、当該ペアの副ボリュームのスロット毎のエントリとを含む。一つのスロットに対応するエントリは、スロットエントリ番号383と、スロット番号384と、状態385と、当該スロットから参照されるデータ実体の参照先のプール情報とを含む。プール情報は、プール番号386と、プールエントリ番号387とを含む。項目381~384、386、387は、項目371~374、376、377とそれぞれ同様である。状態385は、当該スロットの状態を示し、参照先が割り当てられていない「未割当」、参照先が割り当てられ参照先にデータが格納されていない「コピー未」、参照先が割り当てられ参照先にデータが格納されている「割当済み」の何れかの状態を示す。
 図10は、管理情報111の第三部分を示す。
 管理情報111は更に、ジョブ毎に作成されるジョブ管理テーブル350を含む。
 一つのジョブに対応するジョブ管理テーブル350は、要求コピー種別351と、要求元処理種別352と、Root LDEV番号353と、SSID354と、スロット番号355とを含む。要求コピー種別351は、当該ジョブの処理の種別を示す。ここでの処理の種別は例えば、CAW解消処理である。要求元処理種別352は、当該ジョブを起動した処理(要求元の処理)の種別を示す。ここでの処理の種別は、RD、WR、デステージ等である。Root LDEV番号353は、当該ジョブの対象ボリュームが属するスナップショット構造におけるRootのボリュームを示す。SSID354は、当該ジョブの対象ペアを示す。スロット番号355は、当該ジョブの対象スロットを示す。
 コピー処理プログラム112及びI/O処理プログラム113は、CAW解消ジョブやReadジョブ等のジョブを投入するために、当該ジョブに対応するジョブ管理テーブル350を作成する。
 なお、GCMT370及びGUDT380は、プール220に格納されてもよい。
 管理情報111は他に、スロットとキャッシュスロットの関連付けを示すキャッシュテーブルを含んでいてもよい。
 管理プログラム31は、スナップショットのペアを作成するためのペア設定画面を表示デバイスに表示させ、管理者からの入力を受け付ける。ここで、管理プログラム31は、前述の管理情報111の第一部分の図に示したように、ボリューム情報テーブル310から、作成するペアの正ボリュームとなるボリュームの属性312(P-VOL属性、S-VOL属性、P/S-VOL属性等)をペア設定画面に表示させてもよいし、また、そのボリュームの属性312がS-VOL属性を含む(他のボリュームのスナップショットを格納する)か否かをペア設定画面に表示させてもよい。また、管理プログラム31は、当該ボリュームの属性312が別のペアのS-VOL属性を含む場合、当該ボリュームとペアを成す正ボリュームや、そのスナップショット構造のRootボリューム等を、ペア設定画面に表示させてもよい。また、管理プログラム31は、ペア情報テーブル330に基づいて、前述のスナップショット構造の図に示したように、複数のボリュームのペアの関係を示すスナップショット構造画面を表示デバイスに表示させてもよい。これにより、管理者は、適切な正ボリュームを選択してペア作成の指示を入力することができる。
 図11は、実施例1のCAW解消処理の概要を示す。
 例えば、I/O処理プログラム113は、ホスト計算機20からのボリュームAの対象スロットに対するRD要求に応じて、Readジョブを起動する。ここで、ボリュームAの親世代のボリュームBと、ボリュームBの親世代のボリュームCにおいて、対象スロットのスロット番号を持つスロットを、対象スロットと呼ぶ。Readジョブは、ボリュームAの対象スロットがCAW状態であることを検出すると、ボリュームAの対象スロットに対するCAW解消ジョブAを起動し、そのCAW状態が解消されるまで待機する。CAW解消ジョブAは、ボリュームBの対象スロットがCAW状態であることを検出すると、ボリュームBの対象スロットに対するCAW解消ジョブBを起動し、そのCAW状態が解消されるまで待機する。CAW解消ジョブBは、ボリュームCの対象スロットがCAW状態であることを検出すると、ボリュームCの対象スロットに対するCAW解消ジョブCを起動し、そのCAW状態が解消されるまで待機する。
 これにより、CAW解消ジョブCは、CAW状態が検出されたボリュームのうち最上位のボリュームであるボリュームCの対象スロットのCAW状態を解消する(1)。次に、CAW解消ジョブBは再起動し、ボリュームBの対象スロットのCAW状態を解消する(2)。次に、CAW解消ジョブAは再起動し、ボリュームAの対象スロットのCAW状態を解消する(3)。次に、Readジョブは再起動し、ボリュームAの対象スロットの実体位置からデータを読み出し、ホスト計算機20へ応答する。
 CAW解消ジョブの契機がReadである場合、I/O処理プログラム113は、ホスト計算機20からRead要求を受領すると、Read要求に含まれるReadパラメタを解析し、Read対象の、対象ボリューム番号、LBA、サイズ、対象スロット番号等を特定する。その後、I/O処理プログラム113は、対象ボリュームのスロット情報320の対象スロットのエントリを参照し、CAWフラグがONであることを検出すると、CAW解消ジョブを起動する。
 なお、CAW解消ジョブの契機がデステージングである場合、I/O処理プログラム113は、デステージング時に、ダーティであるキャッシュスロットを検出し、スロット情報320において、当該キャッシュスロットに対応するスロット番号のエントリを参照し、CAWフラグがONであることを検出すると、CAW解消ジョブを起動する。
 図12は、実施例1のCAW解消ジョブを示す。
 CAW状態である解消対象ボリュームの対象スロットを示すジョブ管理テーブルが作成され、CAW解消ジョブが起動される。まず、コピー処理プログラム112は、S1510において、ジョブ管理テーブルに基づいて、CAW解消ジョブの初期設定を行う。その後、コピー処理プログラム112は、S1520において、解消対象ボリュームの対象スロットに対して実体位置検索処理を行うことで、解消対象ボリュームの対象スロットの実体位置を特定し、実体位置に対応するボリュームの対象スロットがCAW状態であるか否かを判定する。ここで、実体位置情報を持つボリューム又は実体位置に示されたボリューム(Root)を、実体位置ボリュームと呼ぶ。
 実体位置ボリュームの対象スロットがCAW状態であると判定された場合(S1520:CAW ONを検出)、コピー処理プログラム112は、S1530において、実体位置ボリュームを解消対象ボリュームとする新たなCAW解消ジョブの起動指示を発行する。ここでコピー処理プログラム112は、新たなCAW解消ジョブのジョブ管理テーブルを作成し、そのジョブ管理テーブルにおいて、実体位置ボリュームのSSIDを設定する。その後、コピー処理プログラム112は、S1540において、起動されたCAW解消ジョブの終了まで待機する。起動されたCAW解消ジョブが終了すると、コピー処理プログラム112は、再起動し、再びS1510から処理を実行する。その後、S1520において、実体位置ボリュームの対象スロットがCAW状態でないと判定される。
 実体位置ボリュームの対象スロットがCAW状態でないと判定された場合(S1520:Root、GCMT、GUDT(CAW OFF)の何れかを検出)、コピー処理プログラム112は、S1550において、実体位置ボリュームをコピー元ボリュームとし、解消対象ボリュームの副ボリュームを退避先ボリュームとし、コピー元ボリュームの対象スロットから退避先ボリュームの対象スロットへの旧データ退避処理を行う。ここで実体位置ボリュームの対象スロットがCAW状態でない場合は、実体位置ボリュームがRootであること、実体位置が実体位置ボリュームのGCMTに示されていること、実体位置が実体位置ボリュームのGUDTに示されており且つ実体位置ボリュームの対象スロットがCAW状態でないこと、の何れかを検出した場合であり、他のCAW解消ジョブにより、実体位置ボリュームの対象スロットのCAW状態が解消された場合を含む。
 その後、コピー処理プログラム112は、S1560において、コピー元ボリュームの対象スロットから解消対象ボリュームの対象スロットへのマージコピー処理を行う。その後、コピー処理プログラム112は、S1570において、解消対象ボリュームの対象スロットのCAW状態を解除する終了処理を行い、このフローを終了する。ここでコピー処理プログラム112は、解消対象ボリュームのスロット情報320の対象スロットの情報323のCAWフラグをOFFにする。
 以上のCAW解消ジョブによれば、実体位置ボリュームの対象スロットのCAW状態を検出した場合でも、実体位置ボリュームの対象スロットのCAW状態を解消するための新たなCAW解消ジョブを起動することができ、最終的に解消対象ボリュームの対象スロットのCAW状態を解消することができる。
 前述のS1520における実体位置検索処理の詳細を説明する。
 図13は、実体位置検索処理を示す。
 ここで、検索対象として選択されるボリュームを検索ボリュームと呼ぶ。
 まず、コピー処理プログラム112は、S1110において、解消対象ボリュームを検索ボリュームとして選択する。
 その後、コピー処理プログラム112は、S1120において、検索ボリュームのボリューム情報テーブル310の属性312を参照し、検索ボリュームがRootであるか否かを判定する。
 検索ボリュームがRootであると判定された場合(S1120:Yes)、コピー処理プログラム112は、S1130において、Rootのスロット情報320の対象スロットの情報323を参照し、Rootの対象スロットがCAW状態であるか否かを判定する。
 対象スロットがCAW状態でないと判定された場合(S1130:No)、コピー処理プログラム112は、S1140において、実体位置ボリュームがRootであることを返し、このフローを終了する。
 対象スロットがCAW状態であると判定された場合(S1130:Yes)、コピー処理プログラム112は、S1150において、実体位置ボリュームがRootであり且つ実体位置ボリュームがCAW状態であることを返し、このフローを終了する。
 検索ボリュームがRootでないと判定された場合(S1120:No)、コピー処理プログラム112は、S1210において、検索ボリュームのGUDT380内の対象スロットの状態385と、検索ボリュームのスロット情報320の対象スロットの情報323とを参照し、GUDTの状態を判定する。
 対象スロットのGUDTの状態が「割当済み」であり且つ対象スロットがCAW状態でないと判定された場合(S1210:割当済み)、コピー処理プログラム112は、S1220において、実体位置ボリュームが検索ボリュームであり且つ実体位置が検索ボリュームのGUDTに示されており且つ実体位置ボリュームがCAW状態でないことを返し、このフローを終了する。
 対象スロットのGUDTの状態が「割当済み」であり且つ対象スロットがCAW状態であると判定された場合(S1210:CAW ON検出)、コピー処理プログラム112は、S1230において、実体位置ボリュームが検索ボリュームであり且つ実体位置が検索ボリュームのGUDTに示されており且つ実体位置ボリュームがCAW状態であることを返し、このフローを終了する。
 対象スロットのGUDTの状態が「未割当」であると判定された場合(S1210:未割当)、コピー処理プログラム112は、S1240において、検索ボリュームのGCMT370内の対象スロットの状態375が「割当済み」であるか「未割当」であるかを判定する。
 対象スロットのGCMTの状態が「割当済み」であると判定された場合(S1240:割当済み)、コピー処理プログラム112は、S1250において、実体位置ボリュームが検索ボリュームであり且つ実体位置が検索ボリュームのGCMTに示されており且つ実体位置ボリュームがCAW状態でないことを返し、このフローを終了する。
 対象スロットのGCMTの状態が「未割当」であると判定された場合(S1240:未割当)、コピー処理プログラム112は、S1260において、検索ボリュームの弟世代があるか否かを判定する。
 弟世代があると判定された場合(S1260:有)、コピー処理プログラム112は、S1270において、検索ボリュームの世代の直後の弟世代のボリュームを、新たな検索ボリュームとして選択し、処理をS1250へ移行させる。
 弟世代がないと判定された場合(S1260:無)、コピー処理プログラム112は、S1280において、検索ボリュームの親世代があるか否かを判定する。
 親世代がないと判定された場合(S1280:無)、コピー処理プログラム112は、S1310において、異常であることを返し、このフローを終了する。
 親世代があると判定された場合(S1280:無)、コピー処理プログラム112は、S1320において、検索ボリュームの親世代のボリュームを、新たな検索ボリュームとして選択し、処理をS1120へ移行させる。
 以上の実体位置検索処理によれば、SS制御情報340を辿ることで、解消対象ボリュームの対象スロットのデータの実体位置を特定することができる。
 前述のS1540における旧データ退避処理の詳細を説明する。
 図14は、旧データ退避処理を示す。
 まず、コピー処理プログラム112は、S1610において、解消対象ボリュームのボリューム情報テーブル310の属性312に基づいて、解消対象ボリュームがLeafであるか否かを判定する。ここでコピー処理プログラム112は、属性312がS-VOL属性のみを示す場合、解消対象ボリュームがLeafであると判定する。
 解消対象ボリュームがLeafであると判定された場合(S1610:Yes)、コピー処理プログラム112は、解消対象ボリュームを正ボリュームとするペアがなく、旧データを退避させる必要がないため、このフローを終了する。
 解消対象ボリュームがLeafでないと判定された場合(S1610:No)、コピー処理プログラム112は、S1620において、解消対象ボリュームを正ボリュームとするペア(子世代のペア)のうち、世代番号が解消対象ボリュームのWR世代番号-1に等しいペアを、ペアAとして選択する。ここでコピー処理プログラム112は、解消対象ボリュームのスロット情報320の対象スロットの情報323と、ボリューム情報テーブル310のペア情報テーブルポインタ314に示されたペア情報テーブル330のうち、解消対象ボリュームを正ボリュームとするペアのペア情報テーブル330の世代番号333とを、参照する。ここでは、ペアAの副ボリュームを退避先ボリュームと呼ぶ。
 その後、コピー処理プログラム112は、S1630において、退避先ボリュームのペアAのGCMT370内の対象スロットの状態375が「割当済み」であるか否かを判定する。
 退避先ボリュームの対象スロットの状態が「割当済み」であると判定された場合(S1630:割当済み)、コピー処理プログラム112は、旧データを退避済みであるため、このフローを終了する。
 退避先ボリュームの対象スロットの状態が「未割当」であると判定された場合(S1630:未割当)、コピー処理プログラム112は、S1640において、退避先プールスロットを確保し、ペアAのGCMT370内の対象スロットのプール情報へ、退避先プールスロット(プール番号376とプールエントリ番号377)を登録し、状態375を「割当中」に変更し、退避先ボリュームの対象スロットに対応するキャッシュスロットを退避先キャッシュスロットとして記憶する。
 その後、コピー処理プログラム112は、S1650において、実体位置検索処理により得られた実体位置から、実体位置ボリューム(コピー元ボリューム)の対象スロットに対応するキャッシュスロットへ、データをReadする。その後、コピー処理プログラム112は、S1660において、退避先キャッシュスロットのW面へ、ReadされたデータをWriteする。その後、コピー処理プログラム112は、S1670において、ペアAのGCMT370において対象スロットの状態275を「割当済み」に変更し、このフローを終了する。
 その後、I/O処理プログラム113は、デステージングにより、退避先キャッシュスロットのW面に格納されたデータを、退避先プールスロットへ書き込む。
 以上の旧データ退避処理によれば、コピー処理プログラム112は、WRデータによる更新前のデータを、退避先の世代のボリュームの対象スロットへ退避させることができる。また、コピー処理プログラム112は、対象ボリューム内の対象スロットのWR世代番号と、対象ボリュームの子世代のボリュームとのペアの世代番号とを比較することで、退避先ボリュームを選択することができる。また、コピー処理プログラム112は、対象ボリューム内の対象スロット内のデータを退避済みであるか否かを判定することができる。
 図15は、マージコピー処理を示す。
 まず、コピー処理プログラム112は、S1710において、解消対象ボリュームのボリューム情報テーブル310の属性312に基づいて、解消対象ボリュームがRootであるか否かを判定する。ここでコピー処理プログラム112は、属性312がP-VOL属性のみを示す場合、解消対象ボリュームがRootであると判定する。
 解消対象ボリュームがRootであると判定された場合(S1710:Yes)、コピー処理プログラム112は、解消対象ボリュームを副ボリュームとするペアがなく、マージすべきデータがないため、このフローを終了する。
 解消対象ボリュームがRootでないと判定された場合(S1710:No)、コピー処理プログラム112は、S1720において、解消対象ボリュームの対象スロットに対応するキャッシュスロットを、コピー先キャッシュスロットとして記憶する。
 その後、コピー処理プログラム112は、S1730において、実体位置検索処理により得られた実体位置から、実体位置ボリューム(コピー元ボリューム)の対象スロットに対応するキャッシュスロットへ、データをReadする。その後、コピー処理プログラム112は、S1740において、コピー先キャッシュスロットのW面のうち、WRデータのアドレス範囲以外の領域へ、ReadされたデータをWriteする。その後、コピー処理プログラム112は、S1750において、解消対象ボリュームのGUDT380の対象スロットの状態385を「割当済み」に変更し、このフローを終了する。
 その後、I/O処理プログラム113は、デステージングにより、コピー先キャッシュスロットのW面に格納されたデータを、解消対象ボリュームのGUDT380の対象スロットに示されたプールスロットへ書き込む。
 以上のマージコピー処理によれば、コピー処理プログラム112は、WRデータによる更新後のデータを、解消対象ボリュームの対象スロットへ書き込むことができる。
 図16は、実施例2のCAW解消処理の概要を示す。
 CAW解消ジョブは、ストレージ装置10におけるメモリ等のリソースを消費するため、実施例1では、CAW解消ジョブが新たなCAW解消ジョブを起動することにより、多くのリソースが消費される場合がある。本実施例において、一つのCAW解消ジョブは、複数のボリュームにおけるCAW状態を順に解消する(1、2、3)ことで、リソースを節約する。
 図17は、実施例2のCAW解消ジョブを示す。
 以後、Readジョブ等によりアクセスされるボリュームをアクセスボリュームと呼び、アクセスされるスロットを対象スロットと呼ぶ。
 まず、コピー処理プログラム112は、S2110において、ジョブ管理テーブルに基づいて、CAW解消ジョブの初期設定を行う。
 その後、コピー処理プログラム112は、S2120において、CAW解消対象判定処理を行い、アクセスボリュームを起点として対象スロットがCAW状態である最上位ボリュームを解消対象ボリュームとして特定し、旧データ退避処理及びマージコピー処理のコピー元ボリュームを特定する。
 その後、コピー処理プログラム112は、S2130において、コピー元ボリュームから解消対象ボリュームの退避先ボリュームへ、前述の旧データ退避処理を行う。その後、コピー処理プログラム112は、S2140において、コピー元ボリュームから解消対象ボリュームへ、前述のマージコピー処理を行う。その後、コピー処理プログラム112は、S2150において、CAW解消ジョブを終了するか否かを判定する。ここでコピー処理プログラム112は、解消対象ボリュームがアクセスボリュームである場合、CAW解消ジョブを終了すると判定する。
 CAW解消ジョブを終了しないと判定された場合(S2150:No)、コピー処理プログラム112は、処理をS2120へ移行させ、次の解消対象ボリュームを選択する。
 CAW解消ジョブを終了すると判定された場合(S2150:Yes)、コピー処理プログラム112は、S2160において、CAW解消ジョブの終了処理を行い、このフローを終了する。
 以上のCAW解消ジョブによれば、一つのCAW解消ジョブが、アクセスボリュームの対象スロットのCAW状態を解消するための、複数のボリュームのCAW状態を解消することができる。
 前述のS2120におけるCAW解消対象判定処理の詳細を説明する。
 図18は、実施例2のCAW解消対象判定処理を示す。
 まず、コピー処理プログラム112は、S2210において、アクセスボリュームを検索ボリュームとして選択する。その後、コピー処理プログラム112は、S2220において、前述の実体位置検索処理を行い、その結果に基づいて、実体位置ボリュームの対象スロットがCAW状態であるか否かを判定する。
 実体位置ボリュームの対象スロットがCAW状態でないと判定された場合(S2220:Root、GCMT、GUDT(CAW OFF)のいずれかを検出)、コピー処理プログラム112は、S2230において、CAW解消ジョブの起動元のジョブによるリトライを行い、このフローを終了する。
 実体位置ボリュームの対象スロットがCAW状態であると判定された場合(S2220:CAW ON検出)、コピー処理プログラム112は、S2240において、実体位置ボリュームをCAWボリュームとして記憶し、S2250において、CAWボリュームを検索ボリュームとして選択する。その後、コピー処理プログラム112は、S2260において、検索ボリュームに対して第二実体位置検索処理を行い、得られた実体位置について判定する。
 実体位置ボリュームがRootであり且つ実体位置ボリュームの対象スロットがCAW状態でないと判定された場合(S2260:Root)、コピー処理プログラム112は、S2270において、Rootを解消対象ボリュームとして選択し、Rootをコピー元ボリュームとして選択し、このフローを終了する。
 実体位置が実体位置ボリュームのGCMTに示されていると判定された場合(S2260:GCMT)、又は実体位置が実体位置ボリュームのGUDTに示されており且つ実体位置ボリュームの対象スロットがCAW状態でないと判定された場合(S2260:GUDT)、コピー処理プログラム112は、S2280において、CAWボリュームを解消対象ボリュームとして選択し、実体位置ボリュームをコピー元ボリュームとして選択し、このフローを終了する。
 実体位置がRootであり且つ実体位置ボリュームの対象スロットがCAW状態であると判定された場合(S2260:Root(CAW ON検出))、又は実体位置が実体位置ボリュームのGUDTに示されており且つ実体位置ボリュームの対象スロットがCAW状態であると判定された場合(S2260:GUDT(CAW ON検出))、コピー処理プログラム112は、処理をS2240へ移行させる。
 以上のCAW解消対象判定処理によれば、コピー処理プログラム112は、解消対象ボリュームとコピー元ボリュームを検出することができる。
 前述のS2260における第二実体位置検索処理の詳細を説明する。
 図19は、実施例2の第二実体位置検索処理を示す。
 まず、コピー処理プログラム112は、S2320において、検索ボリュームのGUDT380内の対象スロットの状態385と、検索ボリュームのスロット情報320の対象スロットの情報323とを判定する。
 検索ボリュームの対象スロットがCAW状態でないと判定された場合(S2320:割当済み、未割当)、コピー処理プログラム112は、S2330において、CAW状態を検出できないため、異常終了と判定し、このフローを終了する。
 検索ボリュームの対象スロットがCAW状態であると判定された場合(S2320:CAW ON検出)、コピー処理プログラム112は、S2340において、検索ボリュームのGCMT370内の対象スロットの状態375が「未割当」であるか否かを判定する。
 検索ボリュームのGCMT370内の対象スロットの状態375が「未割当」でないと判定された場合(S2340:割当済み)、コピー処理プログラム112は、S2350において、実体位置ボリュームが検索ボリュームであり且つ実体位置が実体位置ボリュームのGCMTに示されており且つ実体位置ボリュームの対象スロットがCAW状態でないことを返し、このフローを終了する。
 検索ボリュームのGCMT370内の対象スロットの状態375が「未割当」であると判定された場合(S2340:未割当)、コピー処理プログラム112は、S2360において、検索ボリュームの弟世代があるか否かを判定する。
 弟世代があると判定された場合(S2360:有)、コピー処理プログラム112は、S2370において、検索ボリュームの直後の弟世代のボリュームを、新たな検索ボリュームとして選択し、処理をS2340へ移行させる。
 弟世代がないと判定された場合(S2360:無)、コピー処理プログラム112は、S2380において、検索ボリュームの親世代があるか否かを判定する。
 親世代がないと判定された場合(S2380:無)、コピー処理プログラム112は、S2390において、異常終了と判定し、このフローを終了する。
 親世代があると判定された場合(S2380:有)、コピー処理プログラム112は、S2410において、検索ボリュームの親世代のボリュームを、新たな検索ボリュームとして選択する。その後、コピー処理プログラム112は、S2420において、検索ボリュームがRootであるか否かを判定する。
 検索ボリュームがRootであると判定された場合(S2420:Yes)、コピー処理プログラム112は、S2430において、検索ボリュームのスロット情報320の対象スロットの情報323を参照し、検索ボリュームの対象スロットがCAW状態であるか否かを判定する。
 対象スロットがCAW状態でないと判定された場合(S2430:No)、コピー処理プログラム112は、S2440において、実体位置ボリュームがRootであり且つRootの対象スロットがCAW状態でないことを返し、このフローを終了する。
 対象スロットがCAW状態であると判定された場合(S2430:Yes)、コピー処理プログラム112は、S2450において、実体位置ボリュームがRootであり且つRootの対象スロットがCAW状態であることを返し、このフローを終了する。
 検索ボリュームがRootでないと判定された場合(S2420:No)、コピー処理プログラム112は、S2460において、検索ボリュームのGUDT380内の対象スロットの状態385と、検索ボリュームのスロット情報320の対象スロットの情報323とを判定する。
 GUDTの状態が「未割当」であると判定された場合(S2460:未割当)、コピー処理プログラム112は、処理をS2340へ移行させる。
 GUDTの状態が「割当済み」であり且つ対象スロットがCAW状態でないと判定された場合(S2460:割当済み)、コピー処理プログラム112は、S2470において、実体位置ボリュームが検索ボリュームであり且つ実体位置が検索ボリュームのGUDTに示されており且つ実体位置ボリュームの対象スロットがCAW状態でないことを返し、このフローを終了する。
 GUDTの状態が「割当済み」であり且つ検索ボリュームの対象スロットがCAW状態であると判定された場合(S2460:CAW ON検出)、コピー処理プログラム112は、S2480において、実体位置ボリュームが検索ボリュームであり且つ実体位置が実体位置ボリュームのGUDTに示されており且つ実体位置ボリュームの対象スロットがCAW状態であることを返し、このフローを終了する。
 以上の第二実体位置検索によれば、コピー処理プログラム112は、対象スロットのCAW状態を解消すべき最上位のボリュームを、実体位置ボリュームとして検出することができる。
 図20は、実施例3のCAW解消処理の概要を示す。
 スナップショット構造やCAW状態のボリュームの位置によって、CAW状態の解消のためのコピー元のデータが共通である可能性がある。本実施例のコピー処理プログラム112は、複数のCAW状態の解消のためのコピー元及びコピー先を示すコピーリストを作成し、コピーリストに基づいてコピーを行う。コピー処理プログラム112が一つのコピー元のデータを複数のコピー先へコピーすることで、ストレージ装置10のリソースを節約できる。
 図21は、コピーリスト410を示す。
 コピーリスト410は、先頭属性411と、先頭SSID412と、リストの長さ413とを有する。コピーリスト410は、ボリュームを要素として、要素毎に、添え字421と、CAW解消対象SSID422と、コピー元データ情報423と、旧データ退避要否424と、旧データ退避先SSID425と、マージコピー要否426と、コピー状態427とを含む。
 先頭属性411は、検索された最上位のコピー元ボリュームの属性であり、Root、GCMT、GUDTの何れかを示す。先頭SSID412は、最上位のコピー元ボリュームのSSIDである。先頭属性411がRootである場合、先頭SSID412は無効である。リストの長さ413は、添え字421と、CAW解消対象SSID422と、コピー元データ情報423と、旧データ退避要否424と、旧データ退避先SSID425と、マージコピー要否426と、コピー状態427の夫々の要素数を示す。
 添え字421は、要素を示す番号である。CAW解消対象SSID422は、対象スロットがCAW状態であるボリュームのSSIDを示す。コピー元データ情報423は、コピー元ボリュームの対象スロットのデータが旧データ「旧」か現データ「現」かを示す。旧データ退避要否424は、旧データ退避処理が「要」か「否」かを示す。旧データ退避先SSID425は、旧データ退避処理が必要である場合、退避先ボリュームのSSIDを示す。マージコピー要否426は、マージコピーが「要」か「否」かを示す。コピー状態427は、処理状態を示す。「未」は初期であることを示す。「中」はコピー対象として選択されていることを示す。「完」はCAW状態の解消が完了したことを示す。
 図22は、実施例3のCAW解消ジョブを示す。
 まず、コピー処理プログラム112は、S3110において、ジョブ管理テーブルに基づいて、CAW解消ジョブの初期設定を行う。その後、コピー処理プログラム112は、S3120において、コピーリスト作成処理を行うことで、コピーリスト410を作成する。
 その後、コピー処理プログラム112は、S3130において、コピー対象ボリューム設定処理を行う。このコピー対象ボリューム設定処理は、コピーリストから、一つのコピー元ボリュームとそれに対応する少なくとも一つのコピー先ボリュームとを、コピー対象ボリュームとして選択し、コピーリスト410のうち、選択されたボリュームのコピー状態427へ、選択された状態を記録する。その後、コピー処理プログラム112は、S3140において、コピー元Read処理を行う。このコピー元Read処理は、コピーリスト410からコピー元ボリュームを選択し、コピー元ボリュームの対象スロットのデータを、キャッシュ領域内のテンポラリ領域へReadする。
 その後、コピー処理プログラム112は、S3150において、旧データ退避先Write処理を行う。旧データ退避先Write処理は、コピーリスト410に基づいて、選択されたコピー先ボリュームのうち、旧データ退避処理が必要なボリュームの対象スロットへ、テンポラリ領域のデータをWriteする。その後、コピー処理プログラム112は、S3160において、マージコピー先Write処理を行う。マージコピー先Write処理は、コピーリスト410に基づいて、選択されたコピー先ボリュームのうち、マージコピーが必要なボリュームの対象スロットへ、テンポラリ領域のデータをWriteする。
 その後、コピー処理プログラム112は、S3180において、終了判定処理を行うことで、CAW解消処理が完了したか否かを判定する。
 CAW解消処理が完了していないと判定された場合(S3180:No)、コピー処理プログラム112は、処理をS3130へ移行させ、次のコピー元ボリュームを選択する。
 CAW解消処理が完了したと判定された場合(S3180:Yes)、コピー処理プログラム112は、S3190において、CAW解消ジョブの終了処理を行い、このフローを終了する。
 以上のCAW解消ジョブによれば、コピー処理プログラム112は、実施例1及び2に比べてコピー元ボリュームからのReadの回数を削減することができる。
 ここでは、前述のS3120のコピーリスト作成処理の詳細を説明する。
 図23は、実施例3のコピーリスト作成処理の第一部分を示す。図24は、実施例3のコピーリスト作成処理の第二部分を示す。
 まず、コピー処理プログラム112は、S3210において、コピーリストを初期化する。その後、コピー処理プログラム112は、S3220において、コピーリストに一つの要素を作成し、コピー状態427へ「未」を記録し、リストの長さ413へ1を記録する。その後、コピー処理プログラム112は、S3230において、アクセスボリュームを処理対象ボリュームとして選択する。
 その後、コピー処理プログラム112は、S3240において、処理対象ボリュームを副ボリュームとするペアのSSIDを、CAW解消対象SSID422へ記録する。
 その後のS3250~S3290は、旧データ退避先Write処理のための情報を設定する。
 コピー処理プログラム112は、S3250において、ボリューム情報テーブル310に基づいて、処理対象ボリュームがLeafであるか否かを判定する。
 処理対象ボリュームがLeafであると判定された場合(S3250:Yes)、コピー処理プログラム112は、S3290において、旧データ退避要否424へ「否」を記録し、処理をS3310へ移行させる。
 処理対象ボリュームがLeafでないと判定された場合(S3250:No)、コピー処理プログラム112は、S3260において、ペア情報テーブル330に基づいて、処理対象ボリュームを正ボリュームとし、対象スロットのWR世代番号-1に等しい世代番号を持つペアを、ペアAとして選択する。即ち、ペアAは、処理対象ボリュームのWriteの直前に作成されたペアであり、処理対象ボリュームの旧データの退避先となるペアである。その後、コピー処理プログラム112は、S3270において、ペアAの対象スロットのGCMTの状態が「割当済み」であるか否かを判定する。
 GCMTの状態が「割当済み」であると判定された場合(S3270:割当済み)、コピー処理プログラム112は、処理を前述のS3290へ移行させる。
 GCMTの状態が「未割当」であると判定された場合(S3270:未割当)、コピー処理プログラム112は、S3280において、旧データ退避要否424へ「要」を記録し、旧データ退避先SSID425へペアAのSSIDを記録し、処理をS3310(図中のA)へ移行させる。
 その後のS3310~S3330は、マージコピーWrite処理のための情報を設定する。
 コピー処理プログラム112は、S3310において、処理対象ボリュームがRootであるか否かを判定する。処理対象ボリュームがRootでないと判定された場合(S3310:No)、コピー処理プログラム112は、S3320において、マージコピー要否426へ「要」を記録し、処理をS3340へ移行させる。処理対象ボリュームがRootであると判定された場合(S3310:Yes)、コピー処理プログラム112は、S3330において、マージコピー要否426へ「否」を記録し、処理をS3340へ移行させる。
 その後、コピー処理プログラム112は、S3340において、処理対象ボリュームを検索ボリュームとして前述の第二実体位置検索処理を行い、得られた実体位置ボリュームの対象スロットがCAW状態であるか否かを判定する。
 実体位置ボリュームの対象スロットがCAW状態であると判定された場合(S3340:CAW ON)、その後のS3410~S3430は、コピー元の情報を設定する。
 コピー処理プログラム112は、S3410において、処理対象ボリュームのコピー元ボリューム(正ボリューム)の対象スロットのWR世代番号-1が処理対象ボリュームの世代番号より大きいか否かを判定する。
 コピー元ボリュームの対象スロットのWR世代番号-1が処理対象ボリュームの世代番号より大きいと判定された場合(S3410:Yes)、コピー元ボリュームと処理対象ボリュームのペアが作成された後に、コピー元ボリュームの対象スロットが更新され、処理対象ボリュームのデータがコピー元ボリュームの旧データであることを示すため、コピー処理プログラム112は、S3420において、コピー元データ情報423へ「旧」を記録する。
 コピー元ボリュームの対象スロットのWR世代番号-1が処理対象ボリュームの世代番号以下であると判定された場合(S3410:No)、コピー元ボリュームの対象スロットが更新された後に、コピー元ボリュームと処理対象ボリュームのペアが作成され、処理対象ボリュームのデータがコピー元ボリュームの現データであることを示すため、コピー処理プログラム112は、S3430において、コピー元データ情報423へ「現」を記録する。
 その後、コピー処理プログラム112は、S3440において、リストの長さ413に1を加え、S3450において、コピー状態427へ「未」を記録し、S3460において、処理対象ボリュームとして、実体位置ボリュームを選択し、処理を前述のS3240(図中のB)へ移行させる。
 実体位置ボリュームの対象スロットがCAW状態でないと判定された場合(S3340:CAW OFF)、コピー処理プログラム112は、S3510において、実体位置を判定する。
 実体位置ボリュームがRootであると判定された場合(S3510:Root)、コピー処理プログラム112は、S3520において、先頭属性411へRootを記録し、S3530において、先頭SSID412へ無効を記録し、このフローを終了する。
 実体位置が実体位置ボリュームのGCMTに示されていると判定された場合(S3510:GCMT)、コピー処理プログラム112は、S3540において、先頭属性411へGCMTを記録し、S3560において、先頭SSID412へ実体位置ボリュームのSSIDを記録し、このフローを終了する。
 実体位置が実体位置ボリュームのGUDTに示されていると判定された場合(S3510:GUDT)、コピー処理プログラム112は、S3550において、先頭属性411へGCMTを記録し、S3560において、先頭SSID412へ実体位置ボリュームのSSIDを記録し、このフローを終了する。
 以上のコピーリスト作成処理によれば、コピー処理プログラム112は、コピー対象ボリューム設定処理、コピー元Read処理、旧データ退避先Write処理、マージコピー先Write処理の設定を示すコピーリスト410を作成することができる。コピーリスト410において、要素であるボリュームは、添え字421の昇順に、アクセスボリュームから上位ボリュームへ並んでいる。前述のコピーリスト410の図の例は、コピーリスト作成処理後の状態を示す。
 ここでは、前述のS3130のコピー対象ボリューム設定処理の詳細を説明する。
 図25は、実施例3のコピー対象ボリューム設定処理を示す。
 まず、コピー処理プログラム112は、S3610において、コピーリスト410の要素の添え字421を指定するためのポインタへ、リストの長さ413を代入する。その後、コピー処理プログラム112は、S3620において、ポインタに示された要素のコピー状態427が「未」であるか否かを判定する。
 コピー状態427が「未」でないと判定された場合(S3620:それ以外)、コピー処理プログラム112は、S3630において、ポインタから1を減じ、S3640において、ポインタが0であるか否かを判定する。
 ポインタが0でないと判定された場合(S3640:No)、コピー処理プログラム112は、処理をS3620へ移行させ、次の要素について判定する。
 ポインタが0であると判定された場合(S3640:Yes)、コピー処理プログラム112は、S3660において、異常終了と判定し、このフローを終了する。
 コピー状態427が「未」であると判定された場合(S3620:未)、コピー処理プログラム112は、S3650において、ポインタに示された要素のコピー元データ情報423が「現」であるか否かを判定する。
 コピー元データ情報423が「旧」であると判定された場合(S3650:旧)、コピー処理プログラム112は、処理を前述のS3660へ移行させる。
 コピー元データ情報423が「現」であると判定された場合(S3650:現)、コピー処理プログラム112は、S3710において、ポインタに示された要素のコピー状態427へ中を記録し、S3720において、ポインタから1を減じ、S3730において、ポインタが0であるか否かを判定する。
 ポインタが0であると判定された場合(S3730:Yes)、コピー処理プログラム112は、このフローを終了する。
 ポインタが0でないと判定された場合(S3730:No)、コピー処理プログラム112は、S3740において、ポインタに示された要素のコピー元データ情報423が現であるか否かを判定する。
 コピー元データ情報423が現であると判定された場合(S3740:現)、コピー処理プログラム112は、このフローを終了する。
 コピー元データ情報423が「旧」であると判定された場合(S3740:旧)、コピー処理プログラム112は、処理をS3710へ移行させる。
 以上のコピー対象ボリューム設定処理によれば、コピー処理プログラム112は、コピーリスト410に示されたボリュームのうち、上位ボリュームから順に(添え字421の降順に)、コピー元データ情報423が「現」であるボリューム(親世代のWRの後に作成されたペアの副ボリューム)をコピー元ボリュームとし、その後に連続する「旧」であるボリューム(親世代のWRの前に作成されたペアの副ボリューム)をコピー先ボリュームとし、それらのグループをコピー対象ボリュームとして選択し、それらのコピー状態427を「中」に変更することができる。
 前述のコピーリスト410の例において、最初のコピー対象ボリューム設定処理は、添え字が5から3までのボリュームをコピー対象ボリュームと選択し、次のコピー対象ボリューム設定処理は、添え字が2から1までのボリュームをコピー対象ボリュームとして選択する。
 ここでは、前述のS3140のコピー元Read処理の詳細を説明する。
 図26は、実施例3のコピー元Read処理を示す。
 まず、コピー処理プログラム112は、S3810において、添え字421を指定するポインタへ、リストの長さ413を代入する。その後、コピー処理プログラム112は、S3820において、ポインタに示された要素のコピー状態427が「中」であるか否かを判定する。
 コピー状態427が「中」でないと判定された場合(S3820:それ以外)、コピー処理プログラム112は、S3830において、ポインタから1を減じ、S3840において、ポインタが0であるか否かを判定する。
 ポインタが0でないと判定された場合(S3840:No)、コピー処理プログラム112は、処理をS3820へ移行させ、次の要素について判定する。
 ポインタが0であると判定された場合(S3840:Yes)、コピー処理プログラム112は、S3850において、異常終了と判定し、このフローを終了する。
 コピー状態427が「中」であると判定された場合(S3820:中)、コピー処理プログラム112は、S3860において、ポインタがリストの長さ413と一致するか否かを判定する。
 ポインタがリストの長さ413と一致すると判定された場合(S3860:一致)、コピー処理プログラム112は、S3870において、先頭SSID412及び先頭属性411で示されたボリュームをコピー元ボリュームとして選択し、処理をS3890へ移行させる。
 ポインタがリストの長さ413と不一致であると判定された場合(S3860:一致)、コピー処理プログラム112は、S3880において、ポインタ+1の要素のCAW解消対象SSID422で示されたボリュームをコピー元ボリュームとして選択し、そのボリュームの対象スロットのGUDTに示された実体位置を取得し、処理をS3890へ移行させる。
 その後、コピー処理プログラム112は、S3890において、コピー元ボリュームの対象スロットの実体位置に格納されているデータをテンポラリ領域へReadし、このフローを終了する。
 以上のコピー元Read処理によれば、コピー対象ボリュームの中の最上位ボリュームのデータをテンポラリ領域へReadすることができる。例えば、コピー対象ボリュームの中の最上位ボリュームの添え字(コピー対象ボリュームの中の最大の添え字)がリストの長さ413に等しい場合、コピー処理プログラム112は、最初のコピーのために、先頭属性411と先頭SSID412に示されたボリュームをコピー元ボリュームとして選択する。そうでない場合、コピー処理プログラム112は、前回のコピー対象ボリュームの最下位ボリューム(今回のコピー対象ボリュームの最大の添え字+1のボリューム)を、コピー元ボリュームとして選択する。
 前述のコピーリスト410の例において、最初のコピー元Read処理は、Rootをコピー元ボリュームとして選択し、次のコピー元Read処理は、添え字が2であるボリュームをコピー元ボリュームとして選択する。
 ここでは、前述のS3150の旧データ退避先Write処理の詳細を説明する。
 図27は、実施例3の旧データ退避先Write処理を示す。
 まず、コピー処理プログラム112は、S4110において、要素の添え字421を指定するためのポインタへ、リストの長さ413を代入する。その後、コピー処理プログラム112は、S4120において、ポインタに示された要素のコピー状態427が「中」であるか否かを判定する。
 コピー状態427が「中」でないと判定された場合(S4120:それ以外)、コピー処理プログラム112は、S4130において、ポインタから1を減じ、S4140において、ポインタが0であるか否かを判定する。
 ポインタが0でないと判定された場合(S4140:No)、コピー処理プログラム112は、処理をS4120へ移行させ、次の要素について判定する。
 ポインタが0であると判定された場合(S4140:Yes)、コピー処理プログラム112は、S4150において、異常終了と判定し、このフローを終了する。
 コピー状態427が「中」であると判定された場合(S4120:中)、コピー処理プログラム112は、S4160において、ポインタに示された要素の旧データ退避要否424が「要」であるか否かを判定する。
 旧データ退避要否424が「否」であると判定された場合(S4160:No)、コピー処理プログラム112は、処理をS4210へ移行させる。
 旧データ退避要否424が「要」であると判定された場合(S4160:Yes)、コピー処理プログラム112は、S4170において、ポインタに示された要素の旧データ退避先SSID425で示されるボリュームを退避先ボリュームとして選択し、S4180において、退避先ボリュームの対象スロットに対応するキャッシュスロットを退避先キャッシュスロットとして選択し、テンポラリ領域内のデータを退避先キャッシュスロットへWriteする。
 その後、コピー処理プログラム112は、S4210において、ポインタから1を減じ、S4220において、ポインタが0であるか否かを判定する。
 ポインタが0であると判定された場合(S4220:Yes)、コピー処理プログラム112は、このフローを終了する。
 ポインタが0でないと判定された場合(S4220:No)、コピー処理プログラム112は、S4230において、ポインタに示された要素のコピー状態427が「中」であるか否かを判定する。
 コピー状態427が「中」であると判定された場合(S4230:中)、コピー処理プログラム112は、処理をS4160へ移行させ、次の要素を判定する。
 コピー状態427が「中」でないと判定された場合(S4230:それ以外)、コピー処理プログラム112は、このフローを終了する。
 以上の旧データ退避先Write処理によれば、コピー処理プログラム112は、テンポラリ領域内のデータを、退避先ボリュームへWriteすることができる。また、コピー処理プログラム112は、コピー対象ボリュームのうち、旧データ退避要否424が「要」であるボリュームの旧データ退避先SSID425に示されたボリュームを、退避先ボリュームとして選択することができる。
 ここでは、前述のS3160のマージコピー先Write処理の詳細を説明する。
 図28は、実施例3のマージコピー先Write処理を示す。
 マージコピー先Write処理における最初のS4110~S4150は、前述の旧データ退避先Write処理と同様である。
 コピー状態427が「中」であると判定された場合(S4120:中)、コピー処理プログラム112は、S4160bにおいて、ポインタに示された要素のマージコピー要否426が「要」であるか否かを判定する。
 マージコピー要否426が「否」であると判定された場合(S4160b:No)、コピー処理プログラム112は、処理をS4210へ移行させる。
 マージコピー要否426が「要」であると判定された場合(S4160b:Yes)、コピー処理プログラム112は、S4170bにおいて、ポインタに示された要素のCAW解消対象SSID422で示されるボリュームをコピー先ボリュームとして選択し、S4180bにおいて、コピー先ボリュームの対象スロットに対応するキャッシュスロットをコピー先キャッシュスロットとして選択し、テンポラリ領域内のデータを、コピー先キャッシュスロットへWriteする。
 その後、コピー処理プログラム112は、S4190bにおいて、ポインタで示された要素のコピー状態427を「完」に変更する。
 その後のS4210~S4230は、前述の旧データ退避先Write処理と同様である。
 以上のマージコピー先Write処理によれば、コピー処理プログラム112は、テンポラリ領域内のデータを、各コピー先ボリュームのマージコピー先のプールスロットへWriteすることができる。また、コピー処理プログラム112は、コピー対象ボリュームのうち、マージコピー要否426が「要」であるボリュームについて、CAW解消対象SSID422に示されたボリュームをコピー先ボリュームとして選択することができる。
 ここでは、前述のS3170の終了判定処理の詳細を説明する。
 図29は、実施例3の終了判定処理を示す。
 まず、コピー処理プログラム112は、S4510において、テンポラリ領域を解放する。その後、コピー処理プログラム112は、S4520において、ポインタへ1を代入する。
 その後、コピー処理プログラム112は、S4530において、ポインタに示された要素のコピー状態427が「完」であるか否かを判定する。
 コピー状態427が「完」でないと判定された場合(S4530:それ以外)、コピー処理プログラム112は、CAW解消処理が未完であると判定し、このフローを終了する。
 コピー状態427が「完」であると判定された場合(S4530:完)、コピー処理プログラム112は、S4540において、ポインタに1を加え、S4550において、ポインタがリストの長さ413の値より大きいか否かを判定する。
 ポインタがリストの長さ413の値以下であると判定された場合(S4550:No)、コピー処理プログラム112は、処理をS4530へ移行させ、次の要素を判定する。
 ポインタがリストの長さ413の値より大きいと判定された場合(S4550:Yes)、コピー処理プログラム112は、このフローを終了する。
 以上の終了判定処理によれば、コピー処理プログラム112は、コピーリスト410を用いて、CAW解消処理が完了したか否かを判定することができる。
 ここでは、実施例3の変形例について説明する。
 図30は、実施例3の変形例の概要を示す。
 実施例3の変形例において、CAW解消ジョブは、実施例3と同様、コピー元とコピー先を特定する。その後、コピー元からコピー先へのコピー処理を別ジョブに依頼する。これにより、複数のコピージョブが多重で動作できるため、実施例3に比べて処理時間を削減することができる。一方、複数のコピージョブのリソースが必要となる。
 図31は、実施例3の変形例のCAW解消ジョブを示す。
 変形例のCAW解消ジョブにおける最初のS3110~3140は、実施例3のCAW解消ジョブと同様である。
 その後、コピー処理プログラム112は、S3150bにおいて、S3150の旧データ退避先Write処理と同様の処理のジョブを起動する。その後、コピー処理プログラム112は、S3160bにおいて、S3160のマージコピー先Write処理と同様の処理のジョブを起動し、起動されたジョブが終了するまで、待機する。
 その後、コピー処理プログラム112は、S3170bにおいて、S3150b、S3160bのジョブの結果を取得する。その後のS3180~3190は、実施例3のCAW解消ジョブと同様である。
 以上の変形例のCAW解消ジョブによれば、コピー処理プログラム112は、実施例3のCAW解消ジョブに比べて、処理時間を削減することができる。
 図32は、実施例4のCAW解消処理の概要を示す。
 旧データ退避先は、世代間で共有されているGCMTである。そのため、旧データ退避先に対してWriteによる更新は発生しない。したがって、各世代に対して旧データ退避処理を行うと、同じデータがコピーされることになる。本実施例のコピー処理プログラム112は、同一のコピー元の退避データのコピーを1回だけ行い、各GCMTの参照先として旧データ退避先を記録することで、プールのデータ使用効率を向上させる。
 図33は、実施例4のCAW解消ジョブを示す。
 実施例4のCAW解消ジョブにおける最初のS3110~S3140は、実施例3のCAW解消ジョブと同様である。
 その後、コピー処理プログラム112は、S3150dにおいて、共通の退避データをプールに一度だけWriteする旧データWrite処理を行う。その後、コピー処理プログラム112は、S3155dにおいて、退避データの退避先のプールスロットを示すポインタをGCMTへ記録する退避先設定処理を行う。
 その後のS3160~S3190は、実施例3のCAW解消ジョブと同様である。
 以上のCAW解消ジョブによれば、プールにおける退避データの重複を排除し、プールの使用量を削減することができる。
 前述のS3150dにおける旧データWrite処理の詳細を説明する。
 図34は、実施例4の旧データWrite処理を示す。
 まず、コピー処理プログラム112は、S5110において、空きプールスロットを検索し、得られた空きプールスロットを退避先プールスロットとして確保する。その後、コピー処理プログラム112は、S5120において、テンポラリ領域から退避先プールスロットへコピーする。その後、コピー処理プログラム112は、S5130において、プールスロット情報360内の退避先プールスロットの状態364を、「未割当」から「割当済み」へ変更し、このフローを終了する。
 以上の旧データWrite処理によれば、コピー処理プログラム112は、コピー元のデータをプールへコピーすることができる。
 前述のS3155dにおける退避先設定処理の詳細を説明する。
 図35は、実施例4の退避先設定処理を示す。
 実施例4の退避先設定処理における最初のS4110~S4170は、実施例3の旧データ退避先Write処理と同様である。
 その後、コピー処理プログラム112は、S4180dにおいて、ポインタに示された要素のGCMTにおいて、対象スロットのプール情報へ退避先プールスロットを記録し、対象スロットの状態を「割当済み」に変更する。その後、コピー処理プログラム112は、S4190dにおいて、プールスロット情報360内の退避先プールスロットの参照元情報へ、ポインタに示された要素のGCMTの対象スロットを示す情報を記録する。
 その後のS4210~S4230は、実施例3の旧データ退避先Write処理と同様である。
 以上の退避先設定処理によれば、コピー処理プログラム112は、プールへ書き込まれた退避データを、複数のボリュームへ割り当てることができる。
 本発明の表現のための用語について説明する。確定処理は、CAW解消処理等に対応する。退避処理は、旧データ退避処理、旧データ退避先Write処理、旧データWrite処理、退避先設定処理等に対応する。マージ処理は、マージコピー処理、マージコピー先Write処理等に対応する。データが確定していることは、CAW状態でないこと、CAWフラグがOFFであること等に対応する。データが確定していないことは、CAW状態であること、CAWフラグがONであること等に対応する。未確定ボリュームは、対象スロットがCAW状態であるボリューム等に対応する。
 以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
 10…ストレージ装置、 20…ホスト計算機、 30…管理端末、 100…コントローラ、 110…メモリ、 120…CPU、 130…ブリッジ、 140…上位インタフェース、 150…下位インタフェース、 160…通信インタフェース、 200…記憶デバイス、 210…ディスク

Claims (14)

  1.  記憶デバイスと、
     メモリと、
     前記記憶デバイス、前記メモリ、及びホスト計算機に接続されるプロセッサと、
    を備え、
     前記プロセッサは、前記記憶デバイスを用いるプールを作成し、
     前記プロセッサは、複数のボリュームを作成し、各ボリュームは、複数のスロットを含み、前記複数のボリュームは、ルートボリュームと、複数の仮想ボリュームとを含み、各仮想ボリュームは、指示された時点における、前記複数のボリュームのうち他の一つの親ボリュームのスナップショットを格納し、
     前記プロセッサは、各仮想ボリューム内の複数のスロットを、対応する親ボリューム内の複数のスロットに夫々関連付け、
     前記プロセッサは、各仮想ボリューム内のデータを格納するスロットを、前記プール内のプール領域に関連付け、
     前記プロセッサは、前記親ボリュームと対応する仮想ボリュームとの間の差分データを、前記プールへ書き込み、
     前記プロセッサは、前記複数のボリュームと前記プールの関係を示す管理情報を、前記メモリへ記録し、
     前記プロセッサは、前記複数のボリュームの中の対象ボリューム内の対象スロットへのライトデータを前記ホスト計算機から受信する場合、前記対象ボリューム内の対象スロットのデータが確定していないことを前記管理情報へ記録し、前記メモリ内の対象キャッシュ領域へ前記ライトデータを書き込み、前記ホスト計算機へ応答を送信し、
     前記プロセッサは、前記対象ボリューム内の対象スロット内の対象データを参照する前に、前記管理情報に基づいて、前記対象データが確定しているか否かを判定し、
     前記対象データが確定していないと判定された場合、前記プロセッサは、前記対象データを確定させるための確定処理を行い、前記対象データを参照し、
     前記確定処理は、前記管理情報に基づいて、前記対象ボリューム内の対象スロットのデータを格納するコピー元ボリュームを選択し、前記管理情報に基づいて、前記コピー元ボリューム内の対象スロット内のコピー元データが確定しているか否かを判定し、
     前記コピー元データが確定していると判定された場合、前記確定処理は、前記対象データを退避させるための退避処理を行い、前記対象データを更新するためのマージ処理を行い、前記対象データが確定していることを前記管理情報へ記録し、
     前記退避処理は、前記管理情報に基づいて、前記対象データの退避が必要であるか否かを判定し、
     前記対象データの退避が必要であると判定された場合、前記退避処理は、前記対象データを前記プールへ書き込み、
     前記マージ処理は、前記コピー元データと前記ライトデータとをマージすることでマージデータを生成し、前記マージデータを前記プールへ書き込む、
    ストレージ装置。
  2.  前記コピー元データが確定していないと判定された場合、前記確定処理は、前記コピー元データを確定させるための確定処理を行う、
    請求項1に記載のストレージ装置。
  3.  前記コピー元データが確定していると判定された場合、前記確定処理は、前記管理情報に基づいて、前記対象ボリュームのスナップショットを格納する退避先ボリュームを選択し、前記管理情報に基づいて、前記対象データの退避が必要であるか否かを判定し、
     前記対象データの退避が必要であると判定された場合、前記確定処理は、前記プール内の退避先プール領域を、前記退避先ボリューム内の対象スロットに関連付け、前記コピー元データを前記退避先プール領域へ書き込み、前記マージデータを前記プール内の更新先プール領域を、前記対象ボリューム内の対象スロットに関連付け、前記マージデータを前記更新先プール領域へ書き込む、
    請求項2に記載のストレージ装置。
  4.  前記確定処理は、前記対象キャッシュ領域のうち、前記ライトデータにより更新されるアドレス範囲以外である維持アドレス範囲を特定し、前記コピー元データのうち前記維持アドレス範囲内のデータを、前記対象キャッシュ領域のうち前記維持アドレス範囲へ書き込むことで、前記マージデータを生成する、
    請求項3に記載のストレージ装置。
  5.  前記プロセッサは、前記対象データを参照する場合、前記対象データに対する確定処理を行う第一ジョブを起動し、
     前記コピー元データが確定していないと判定された場合、前記第一ジョブは、前記コピー元データに対する確定処理の第二ジョブを起動し、待機し、
     前記第二が終了した場合、前記第一ジョブは、再起動する、
    請求項4に記載のストレージ装置。
  6.  前記確定処理は、前記管理情報に基づいて、前記対象ボリューム以後の世代のボリュームであって、対象スロット内のデータが確定していないボリュームのうち、最新の世代のボリュームを、未確定ボリュームとして選択する処理と、前記未確定ボリュームに対する退避処理と、前記未確定ボリュームに対するマージ処理とを、前記未確定ボリュームが無くなるまで繰り返す、
    請求項4に記載のストレージ装置。
  7.  前記確定処理は、前記管理情報に基づいて、前記対象ボリューム以後の世代のボリュームであって、対象スロット内のデータが確定していないボリュームを、最新の世代のボリュームから順に、未確定ボリュームとして選択し、前記未確定ボリュームに対するコピー元ボリュームと、前記未確定ボリュームに対する少なくとも一つの退避先ボリュームと、前記未確定ボリュームに対する少なくとも一つの更新先ボリュームとを選択し、前記コピー元ボリューム内の対象スロット内のデータを、前記メモリ内のテンポラリ領域へ読み出し、
     前記退避処理は、前記テンポラリ領域内のデータを、前記少なくとも一つの退避先ボリューム内の対象スロットに関連付けられた退避先プール領域へ書き込み、
     前記マージ処理は、前記テンポラリ領域内のデータと前記ライトデータとをマージすることで前記マージデータを生成し、前記マージデータを、前記少なくとも一つの更新先ボリューム内の対象スロットに関連付けられた更新先データ領域へ書き込み、
    請求項4に記載のストレージ装置。
  8.  前記確定処理は、前記少なくとも一つの退避先ボリュームの夫々に対する退避処理のジョブを起動し、
     前記確定処理は、前記少なくとも一つの更新先ボリュームの夫々に対するマージ処理のジョブを起動する、
    請求項7に記載のストレージ装置。
  9.  前記確定処理は、前記管理情報に基づいて、前記対象ボリューム以後の世代のボリュームであって、対象スロット内のデータが確定していないボリュームを、最新の世代のボリュームから順に、未確定ボリュームとして選択し、前記未確定ボリュームに対するコピー元ボリュームと、前記未確定ボリュームに対する少なくとも一つの退避先ボリュームと、前記未確定ボリュームに対する少なくとも一つの更新先ボリュームとを選択し、前記コピー元ボリューム内の対象スロット内のデータを、前記メモリ内のテンポラリ領域へ読み出し、
     前記退避処理は、前記プールから前記退避先プール領域を確保し、前記テンポラリ領域内のデータを、退避先プール領域へ書き込み、前記退避先プール領域を、前記少なくとも一つの退避先ボリュームの夫々の中の対象スロットに関連付け、
     前記マージ処理は、前記テンポラリ領域内のデータと前記ライトデータとをマージすることで前記マージデータを生成し、前記マージデータを、前記少なくとも一つの更新先ボリューム内の対象スロットに関連付けられた更新先データ領域へ書き込む、
    請求項4に記載のストレージ装置。
  10.  前記プロセッサは、前記ライトデータの書き込みの時点と、スナップショットの世代との順序を示す識別番号を、前記管理情報へ記録し、
     前記確定処理は、前記ライトデータの書き込みの識別番号と、前記対象ボリュームのスナップショットを格納するスナップショットの識別番号とを比較することで、前記ライトデータの時点の直前のスナップショットのボリュームを、前記退避先ボリュームとして選択する、
    請求項3に記載のストレージ装置。
  11.  前記対象ボリュームのスナップショットの作成の後に、前記コピー元データ及び前記対象データが更新されていない状態で、前記ライトデータが受信された場合、前記退避処理は、前記対象データの退避が必要であると判定する、
    請求項1に記載のストレージ装置。
  12.  前記プロセッサは、前記管理情報に基づいて、スナップショットを作成する指示を受信した場合、前記スナップショットの親ボリュームが、他のボリュームのスナップショットを格納するか否かを示す情報を、表示デバイスに表示させる、
    請求項1に記載のストレージ装置。
  13.  前記プロセッサは、前記管理情報に基づいて、前記複数のボリュームの間のスナップショットの関係を示す情報を、表示デバイスに表示させる、
    請求項1に記載のストレージ装置。
  14.  記憶デバイス、メモリ、及びホスト計算機に接続されるプロセッサに、プロセスを実行させるプログラムを格納するコンピュータ読み取り可能な記録媒体であって、前記プロセスは、
     前記記憶デバイスを用いるプールを作成し、
     複数のボリュームを作成し、各ボリュームは、複数のスロットを含み、前記複数のボリュームは、ルートボリュームと、複数の仮想ボリュームとを含み、各仮想ボリュームは、指示された時点における、前記複数のボリュームのうち他の一つの親ボリュームのスナップショットを格納し、
     各仮想ボリューム内の複数のスロットを、対応する親ボリューム内の複数のスロットに夫々関連付け、
     各仮想ボリューム内のデータを格納するスロットを、前記プール内のプール領域に関連付け、
     前記親ボリュームと対応する仮想ボリュームとの間の差分データを、前記プールへ書き込み、
     前記複数のボリュームと前記プールの関係を示す管理情報を、前記メモリへ記録し、
     前記複数のボリュームの中の対象ボリューム内の対象スロットへのライトデータを前記ホスト計算機から受信する場合、前記対象ボリューム内の対象スロットのデータが確定していないことを前記管理情報へ記録し、前記メモリ内の対象キャッシュ領域へ前記ライトデータを書き込み、前記ホスト計算機へ応答を送信し、
     前記対象ボリューム内の対象スロット内の対象データを参照する前に、前記管理情報に基づいて、前記対象データが確定しているか否かを判定し、
     前記対象データが確定していないと判定された場合、前記対象データを確定させるための確定処理を行い、前記対象データを参照する、
    ことを備え、
     前記確定処理は、前記管理情報に基づいて、前記対象ボリューム内の対象スロットのデータを格納するコピー元ボリュームを選択し、前記管理情報に基づいて、前記コピー元ボリューム内の対象スロット内のコピー元データが確定しているか否かを判定し、
     前記コピー元データが確定していると判定された場合、前記確定処理は、前記対象データを退避させるための退避処理を行い、前記対象データを更新するためのマージ処理を行い、前記対象データが確定していることを前記管理情報へ記録し、
     前記退避処理は、前記管理情報に基づいて、前記対象データの退避が必要であるか否かを判定し、
     前記対象データの退避が必要であると判定された場合、前記退避処理は、前記対象データを前記プールへ書き込み、
     前記マージ処理は、前記コピー元データと前記ライトデータとをマージすることでマージデータを生成し、前記マージデータを前記プールへ書き込む、
    記録媒体。
PCT/JP2016/050129 2016-01-05 2016-01-05 ストレージ装置および記録媒体 WO2017119065A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017559962A JP6472901B2 (ja) 2016-01-05 2016-01-05 ストレージ装置および記録媒体
PCT/JP2016/050129 WO2017119065A1 (ja) 2016-01-05 2016-01-05 ストレージ装置および記録媒体
US15/759,166 US10514851B2 (en) 2016-01-05 2016-01-05 Storage apparatus and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/050129 WO2017119065A1 (ja) 2016-01-05 2016-01-05 ストレージ装置および記録媒体

Publications (1)

Publication Number Publication Date
WO2017119065A1 true WO2017119065A1 (ja) 2017-07-13

Family

ID=59273394

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/050129 WO2017119065A1 (ja) 2016-01-05 2016-01-05 ストレージ装置および記録媒体

Country Status (3)

Country Link
US (1) US10514851B2 (ja)
JP (1) JP6472901B2 (ja)
WO (1) WO2017119065A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079526A (ja) * 2008-09-25 2010-04-08 Hitachi Ltd ジャーナルの階層を管理する計算機システム及び方法
JP2014507693A (ja) * 2011-05-31 2014-03-27 株式会社日立製作所 ストレージシステムおよび記憶制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4800031B2 (ja) * 2005-12-28 2011-10-26 株式会社日立製作所 ストレージシステム及びスナップショット管理方法
US9026753B2 (en) * 2012-02-16 2015-05-05 Hitachi, Ltd. Snapshot volume generational management for snapshot copy operations using differential data
JP6216866B2 (ja) * 2014-03-13 2017-10-18 株式会社日立製作所 ストレージシステムおよびストレージ制御方法
US20170032005A1 (en) * 2015-07-31 2017-02-02 Netapp, Inc. Snapshot and/or clone copy-on-write

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079526A (ja) * 2008-09-25 2010-04-08 Hitachi Ltd ジャーナルの階層を管理する計算機システム及び方法
JP2014507693A (ja) * 2011-05-31 2014-03-27 株式会社日立製作所 ストレージシステムおよび記憶制御方法

Also Published As

Publication number Publication date
US20180285000A1 (en) 2018-10-04
US10514851B2 (en) 2019-12-24
JPWO2017119065A1 (ja) 2018-05-24
JP6472901B2 (ja) 2019-02-20

Similar Documents

Publication Publication Date Title
JP4920898B2 (ja) 計算機システム、データ管理方法およびプログラム
JP4993928B2 (ja) 記憶システム及び記憶領域解放方法並びにストレージシステム
JP5551245B2 (ja) ファイル共有システムおよびファイル処理方法、並びにプログラム
JP4776342B2 (ja) ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法
WO2014087441A1 (en) Computer system and method of controlling computer system
JP5309043B2 (ja) ストレージシステム及びストレージシステムでの重複データ削除のための方法
US7860909B2 (en) Search engine system using snapshot function of storage system
JP2009104421A (ja) ストレージアクセス装置
JPWO2015052798A1 (ja) ストレージシステム及び記憶制御方法
JP2005031716A (ja) データバックアップの方法及び装置
JP2008065525A (ja) 計算機システム、データ管理方法及び管理計算機
JP6623692B2 (ja) ログ情報採取システム、ログ情報採取プログラムおよびログ情報採取方法
JP2010102479A (ja) 計算機システム、ストレージ装置及びデータ更新方法
US20100211949A1 (en) Management computer and processing management method
US20070192553A1 (en) Backup apparatus and backup method
US20150254143A1 (en) Computer system, cluster management method, and management computer
JP4731420B2 (ja) 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム
JP2008102672A (ja) 計算機システム、管理計算機、操作制御情報の設定方法
US9648104B2 (en) Configuration information acquisition method and management computer
US20120246425A1 (en) Storage system and performance management method of storage system
US20060271608A1 (en) Methods and systems for automatically identifying a modification to a storage array
JP5421201B2 (ja) 計算機システムを管理する管理システム及び管理方法
JP6442642B2 (ja) 計算機システムを管理する管理システム及び管理方法
JP6472901B2 (ja) ストレージ装置および記録媒体
CN110703995B (zh) 存储系统架构及其访问数据的方法

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: 16883570

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017559962

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15759166

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: 16883570

Country of ref document: EP

Kind code of ref document: A1