WO2016129101A1 - Storage system and method for controlling storage - Google Patents

Storage system and method for controlling storage Download PDF

Info

Publication number
WO2016129101A1
WO2016129101A1 PCT/JP2015/053964 JP2015053964W WO2016129101A1 WO 2016129101 A1 WO2016129101 A1 WO 2016129101A1 JP 2015053964 W JP2015053964 W JP 2015053964W WO 2016129101 A1 WO2016129101 A1 WO 2016129101A1
Authority
WO
WIPO (PCT)
Prior art keywords
difference
storage
data
difference information
storage controller
Prior art date
Application number
PCT/JP2015/053964
Other languages
French (fr)
Japanese (ja)
Inventor
直人 柳
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/053964 priority Critical patent/WO2016129101A1/en
Publication of WO2016129101A1 publication Critical patent/WO2016129101A1/en

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention generally relates to a technology of a storage system and a storage control method.
  • a technology is known in which only data newly written in a first storage device is copied to a second storage device through a network, thereby backing up data in the first storage device to a second storage device.
  • Patent Document 1 discloses the following.
  • the first storage device stores the write data received from the host computer in the transfer buffer, rearranges the plurality of write data in the transfer buffer in units of tracks, and converts the rearranged plurality of write data to the second buffer.
  • the second storage device receives the rearranged write data and writes the write data to the HDD (Hard Disk Drive) in the rearranged order.
  • the disk head in the second storage device can sequentially access the HDD.
  • the data expansion process to the HDD in the second storage device is shortened.
  • the first storage device stores data (including overwritten data; hereinafter referred to as “difference data”) newly written in its own storage device (HDD, SSD (Solid State Drive), etc.) as the second storage device.
  • difference data data
  • HDD hard disk drive
  • SSD Solid State Drive
  • the storage system includes one or more storage devices that store data stored in the first volume, and a storage controller that controls the one or more storage devices.
  • the first volume is divided into a plurality of slots which are a plurality of storage areas.
  • the storage controller displays difference information for each of a plurality of slots indicating whether it is a used slot in which difference data including data stored after a predetermined timing is stored or an empty slot in which difference data is not stored. Have.
  • the storage controller divides the difference information into a plurality of difference information parts, a selection process for selecting the first difference information part and the second difference information part from the plurality of difference information parts, The exchange processing for exchanging the address of the used slot belonging to the second difference information portion and the address of the empty slot belonging to the second difference information portion is executed.
  • FIG. 1 is a schematic diagram showing an overview of a storage system according to an embodiment. It is a figure for demonstrating an example of a difference data rearrangement process. It is a schematic diagram which shows an example of a structure in a storage system. The structural example of a difference map is shown. The structural example of a submap management table is shown. The structural example of a synchronous setting table is shown. The structural example of a synchronous time analysis table is shown. The structural example of a synchronous time management table is shown. The structural example of an operation rate threshold value setting table is shown. The structural example of an employment
  • 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 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 may be used. is there.
  • VOL80 when the VOL is not particularly distinguished, it is described as “VOL80”, and when each VOL is distinguished and described, it may be described as “VOL80a” or “VOL80b”.
  • an I / O (Input / Output) request is a write request or a read request, and may be referred to as an access request.
  • the “storage unit” may be one or more storage devices including a memory.
  • the storage unit may be at least a main storage device of a main storage device (typically a volatile memory) and an auxiliary storage device (typically a nonvolatile storage device).
  • the storage unit may include at least one of a cache area (for example, a cache memory or a partial area thereof) and a buffer area (for example, a buffer memory or a partial area thereof).
  • the cache area and the buffer area are common in that data input / output to / from the PDEV is temporarily stored, and may differ depending on whether or not the read data remains. Specifically, data read from the cache area remains in the cache area, and data once read from the buffer area may not remain in the buffer area.
  • “PDEV” means a physical storage device, and typically a non-volatile storage device (for example, an auxiliary storage device).
  • the PDEV may be, for example, an HDD or an SSD.
  • RAID is an abbreviation for Redundant Array of Independent (or Independent) Disks.
  • the RAID group is composed of a plurality of PDEVs, and stores data according to the RAID level associated with the RAID group.
  • the RAID group may be referred to as a parity group.
  • the parity group may be, for example, a RAID group that stores parity.
  • a program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed with a storage resource (for example, a memory) and / or an interface device (for example, a communication port). ) Etc. may be used.
  • the processing described with the program as the subject may be processing performed by a processor or an apparatus or system 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 be composed of 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
  • a management computer eg, management system
  • 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.
  • the “host system” is a system that transmits an I / O request to the storage system, and includes an interface device, a storage resource (for example, a memory), and a processor connected to them. Good.
  • the host system may be composed of one or more host computers.
  • the at least one host computer may be a physical computer, and the host system may include a virtual host computer in addition to the physical host computer.
  • the “storage system” may be one or more storage apparatuses, and includes a plurality of PDEVs (for example, one or more RAID groups) and a storage controller that controls I / O for the plurality of PDEVs. It's okay.
  • a storage controller includes a back-end interface device connected to a plurality of PDEVs, a front-end interface device connected to at least one of a host system and a management system, a storage resource, and a processor connected to them May be included.
  • the storage controller may be made redundant.
  • VOL is an abbreviation for logical volume and may be a logical storage device.
  • the VOL may be a substantial VOL (RVOL) or a virtual VOL (VVOL).
  • the VOL may be an online VOL provided to a host system connected to a storage system that provides the VOL, and an offline VOL that is not provided to the host system 8 (not recognized by the host system).
  • the “RVOL” may be a VOL based on a physical storage resource (for example, one or more RAID groups) possessed by the storage system having the RVOL.
  • VVOL may be at least one of an external connection VOL (EVOL), a capacity expansion VOL (TPVOL), and a snapshot VOL.
  • the EVOL is based on a storage space (for example, VOL) of an external storage system, and may be a VOL according to a storage virtualization technology.
  • the TPVOL is composed of a plurality of virtual areas (virtual storage areas), and may be a VOL according to a capacity virtualization technology (typically Thin Provisioning).
  • the snapshot VOL may be a snapshot VOL that is provided as a snapshot of the original VOL.
  • the TPVOL may typically be an online VOL.
  • the snapshot VOL may be an RVOL.
  • a “pool” is a logical storage area (for example, a set of a plurality of pool VOLs), and may be prepared for each use.
  • the TP pool may be a storage area composed of a plurality of real areas (substantial storage areas). A real area may be allocated from the TP pool to the virtual area of TPVOL.
  • the snapshot pool may be a storage area in which data saved from the original VOL is stored.
  • One pool may be used as both a TP pool and a snapshot pool.
  • the “pool VOL” may be a VOL that is a component of the pool.
  • the pool VOL may be an RVOL or an EVOL.
  • the pool VOL may typically be an offline VOL.
  • FIG. 1 is a schematic diagram showing an outline of a storage system according to this embodiment.
  • the storage system 1 includes a storage device 10a and a storage device 10b.
  • the storage device 10a and the storage device 10b can transmit and receive data through a predetermined network or communication line.
  • the storage device 10a includes a PDEV and a storage controller 20a that controls the PDEV.
  • the storage controller 20a controls the PDEV to configure the first VOL 80a.
  • the storage apparatus 10b includes a PDEV and a storage controller 20b that controls the PDEV.
  • the storage controller 20b constitutes the second VOL 80b.
  • the storage controller 20a When backing up the data of the first VOL 80a to the second VOL 80b, the storage controller 20a performs the following processing.
  • the storage controller 20a backs up all data stored in the first VOL 80a to the second VOL 80b. As a result, the first VOL 80a and the second VOL 80b have the same data (synchronized state).
  • the storage controller 20a stores data (including overwritten data, that is, differential data) newly written in the first VOL 80a after the first VOL 80a and the second VOL 80b are in synchronization with each other in a predetermined area ( (Referred to as “difference data storage area”) 102a.
  • the storage controller 20a acquires the difference data from the difference data storage area 102a at a predetermined timing (after the elapse of a certain period or when the difference data is stored in a predetermined amount or more), and the acquired difference Data is transmitted to the storage device 10b.
  • the storage controller 20b receives the difference data and stores it in the difference data storage area 102b of the second VOL 80b.
  • the difference data storage area consists of multiple slots, and the difference data is managed in slot units.
  • the data stored in the slot itself becomes differential data.
  • the data including the written data (data in the slot unit) ) Is the difference data.
  • a VOL address indicating the order is given to a plurality of slots constituting the difference data storage area.
  • the storage controller 20a has information indicating whether or not differential data is stored in each slot in the differential data storage area 102a of the first VOL 80a. This information is referred to as a difference map 90a.
  • the difference map 90a is composed of a plurality of difference bits, and the difference bits correspond to the slots (VOL address) of the difference data storage area on a one-to-one basis.
  • the differential bit corresponding to the slot in which the differential data is stored is differential bit on (eg, “1”).
  • the difference bit corresponding to the empty slot in which the difference data is not stored, that is, the difference slot is turned off (for example, “0”).
  • the method by which the storage controller 20a obtains differential data from the differential data storage area 102a includes sequential access and random access.
  • Sequential access can be used when differential data is acquired at a time from consecutive slots of VOL addresses.
  • the storage controller 20a issues a sequential access command designating the head VOL address and data length, and thereby stores a plurality of data stored in a plurality of slots between the head VOL address and the data length. Differential data can be acquired sequentially.
  • Random access can be used when obtaining differential data from each slot.
  • the storage controller 20a can obtain the difference data stored in the slot corresponding to the VOL address by issuing a random access command designating the VOL address.
  • the storage controller 20a performs differential data relocation processing on the differential data storage area 102a.
  • the difference data rearrangement process is a process of rearranging the difference data so that the difference data is continuous.
  • the storage controller 20a can acquire a large amount of difference data from the difference data storage area 102a after rearrangement by one sequential access. Next, the difference data rearrangement process will be described.
  • FIG. 2 is a diagram for explaining an example of the difference data rearrangement process.
  • the slot in the difference data storage area 102a and the difference bit in the difference map 90 have a one-to-one correspondence.
  • the rearrangement process of the difference map 90 is performed by the following steps, for example.
  • the storage controller 20a divides the difference map 90-1 as an example of difference information into a plurality of submaps as an example of the difference information part.
  • the difference map 90-1 is divided into four submaps R1, R2, R3, and R4.
  • the storage controller 20a counts the differential bit-on of each submap.
  • the number of difference bit on (black block) in the submap R1 is “9”
  • the number of difference bit on in the submap R2 is “5”
  • the number of differential bit-ons in the submap R4 is “7”.
  • the storage controller 20a selects a submap (referred to as “relocation destination submap”) as a relocation destination (movement destination) from among the plurality of submaps.
  • the storage controller 20a may preferentially select a submap having a large number of differential bit-ons as a relocation destination.
  • the storage controller 20a may select this submap R1 as a relocation destination.
  • the storage controller 20a selects, from among a plurality of submaps, a submap (referred to as “relocation source submap”) that is a relocation source (movement source) of difference data.
  • the storage controller 20a may preferentially select a submap with a small number of differential bit-ons as a relocation source. For example, in the difference map 90-1 of FIG. 2, since the number of difference bit-ons in the submap R2 is the smallest, the storage controller 20a selects this submap R2 as the relocation source.
  • the storage controller 20a selects, from among the differential bit-offs of the rearrangement destination submap, the differential bit-off that is the replacement destination of the differential bit-on of the rearrangement source submap.
  • the storage controller 20a may preferentially select the differential bit off with the earliest VOL address among the differential bit offs of the relocation destination submap as the differential bit off as the replacement destination.
  • the difference bit-on can be continuously rearranged in the rearrangement destination submap.
  • the difference bit off 1002 of the rearrangement destination submap R1 is selected as the replacement destination of the difference bit on 2002 of the rearrangement source submap R2.
  • the difference bit off 1003 of the rearrangement destination submap R1 is selected as the replacement destination of the difference bit on 2004 of the rearrangement source submap R2.
  • the storage controller 20a exchanges the difference bit-on of the replacement source submap exchange source and the exchange destination difference bit-off of the relocation destination submap (S11). That is, the storage controller 20a exchanges the physical address in which the differential data corresponding to the exchange-source VOL address is stored and the physical address in which the differential data is not stored corresponding to the exchange-destination VOL address. As a result, the physical address in which the differential data is not stored is associated with the exchange-source VOL address, and the physical address in which the differential data is stored is associated with the exchange-destination VOL address.
  • the physical address may be an address corresponding to a storage area constituting the VOL.
  • the physical address may be an address corresponding to a storage area on the PDEV 31 constituting the VOL.
  • the physical address may be an address corresponding to a lower logical storage area constituting the VOL.
  • the storage controller 20a executes the above (B4) to (B6) for the other submaps.
  • the storage controller 20a selects a submap R4 with the smallest number of differential bit-on after the submap R2 as a relocation source, executes the above (B4) to (B6) (S12), and finally The submap R3 is selected as the rearrangement source, and the above (B4) to (B6) are executed (S13).
  • the difference map 90-2 in FIG. 2 becomes the state of the difference map 90-3 in FIG.
  • the storage controller 20a acquires the difference data relating to the difference bit-on of the rearrangement destination submap. At this time, the storage controller 20a obtains differential bit-on that is continuously arranged, that is, differential data that is continuously stored, using a sequential access command in the rearrangement destination submap. In the difference map 90-3 of FIG. 2, difference bit-on 1001 to 1029 are continuously arranged. Therefore, the storage controller 20a issues a sequential access command once, and acquires continuous differential data corresponding to differential bit-on 1001 to 1029 at a time. As a result, the storage controller 20a can reduce the number of times the command for acquiring the difference data is issued.
  • the storage controller 20a transmits the acquired plurality of difference data to the second storage device 10b.
  • the storage controller 20b stores the transmitted plurality of difference data in the second VOL 80b. As a result, the first VOL 80a and the second VOL 80b are synchronized again.
  • the storage controller 20a may divide the difference map 90 in any way.
  • the storage controller 20a may divide the difference map 90 of FIG. 2 into a cross shape.
  • the number of divisions of the difference map 90-1 may be determined based on the number of difference bits of the difference map 90-1.
  • the number of divisions may be determined so that the number of difference bits belonging to each submap is a predetermined number.
  • the storage controller 20a may divide the difference map 90 so that the number of difference bits in each submap is as equal as possible. This is to facilitate comparison of the number of differential bit-ons in (B3) and (B4).
  • the storage controller 20a replaces the number of difference bits on in the submap with the difference bit-on with respect to the total number of difference bits in the submap in (B3) and (B4).
  • a ratio of numbers may be used. For example, in (B3), the storage controller 20a preferentially selects a submap having a large difference bit-on ratio as a relocation destination, and in (B4), selects a submap having a small difference bit-on ratio. You may preferentially select the relocation source.
  • FIG. 3 is a schematic diagram showing an example of a configuration in the storage system 1.
  • the storage system 1 is composed of two or more storage devices 10a and 10b.
  • the storage apparatuses 10a and 10b may be configured as one apparatus.
  • the storage device 10 is a device for storing data.
  • the storage apparatus 10 can send and receive data to and from the host system 8 and the management system 9 through the communication network 7.
  • the communication network 7 may be, for example, a SAN (Storage Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), or a combination thereof.
  • the management system 9 is a system for managing the storage system 1.
  • the management system 9 may be composed of one or more management computers.
  • the host system 8 is a system that uses the storage system 1.
  • the host system 8 may be composed of one or more host computers.
  • the host computer may be able to store the data in the storage device 10 by sending a write request to the storage device 10.
  • the host computer may be able to acquire data from the storage apparatus 10 by sending a read request to the storage apparatus 10.
  • the storage apparatus 10 includes one or more storage controllers 20 and one or more PDEVs 31.
  • the PDEV 31 is an example of a physical storage device.
  • the PDEV 31 may be, for example, an HDD, SSD, or FM package.
  • the FM package includes an FM (flash memory) and an FM controller that controls input / output of data to / from the FM.
  • the FM is composed of one or more FM chips.
  • the FM chip is composed of a plurality of physical areas. Specifically, for example, the FM chip is a NAND flash, and is configured by a plurality of “physical blocks”, and each physical block is configured by a plurality of “physical pages”.
  • a physical block or a physical page is an example of a physical area. Data is accessed (read and written) in physical page units, and data is erased in physical block units.
  • the logical space (for example, all or a part of the VOL) managed by the storage controller 20 is based on a plurality of sub-logical spaces provided by a plurality of FM packages constituting a RAID group.
  • One sub logical space may be divided into a plurality of logical areas.
  • the sub logical space may be composed of a plurality of “logical blocks”, and each logical block may be composed of a plurality of “logical pages”.
  • a logical block or logical page may be an example of a logical area.
  • a logical area may be rephrased as a logical address range.
  • the FM controller manages the correspondence between the logical address and the physical address (for example, holds address conversion information indicating the correspondence between the logical address and the physical address), and is specified by an I / O command from the host device.
  • the logical area to which the specified logical address belongs is specified, the physical area corresponding to the specified logical area is specified, and I / O is performed on the specified physical area.
  • the logical address is, for example, LBA (Logical Block Address), and a logical area ID (for example, a logical block number or a logical page number) or the like may be employed instead of or in addition to the LBA.
  • the physical address is, for example, PBA (Physical Block Address), and a physical area ID (for example, a physical block number or a physical page number) or the like may be employed instead of or in addition to PBA.
  • FM is a write-once type. Specifically, when a logical area to which a physical page (hereinafter referred to as “page”) is assigned is a write destination, the FM is replaced with the assigned page. Thus, a new empty page is allocated, and data is written to the newly allocated page. For each logical area, the data written to the newly assigned page is “valid data”, the page to which valid data is written is the “valid page”, and is stored in the previously assigned page.
  • the invalid data is “invalid data”, and the page where invalid data is written is “invalid page”.
  • a physical page that can store new data without being a valid page or an invalid page is an “empty page”.
  • non-volatile semiconductor memory other than FM for example, PRAM (Phase Change Random Access Memory), MRAM (Magnetic Resistant Random Access Memory), ReRAM Ace MemoryRec (Ferroelectric Random Access Memory) may be employed.
  • the storage controller 20 controls the PDEV 31 to configure a VOL that is a logical storage device.
  • the VOL may be a substantial VOL (RVOL) or a virtual VOL (VVOL).
  • the storage controller 20 processes I / O for the VOL. For example, when the storage controller 20 receives a write request transmitted from the host system 8, the storage controller 20 stores the received write data in the VOL. That is, the storage controller 20 writes the write data to the PDEV 31 that constitutes the VOL. When the storage controller 20 receives a read request from the host system 8, the storage controller 20 acquires the requested read data from the VOL and returns it to the host system 8. Other processing in the storage controller 20 will be described later.
  • the storage controller 20 includes a processor 21, a local memory 22, a shared memory 23, a cache memory 24, a host I / F 26, a disk I / F 25, a remote I / F 27, and a bidirectional communication between these elements. It may be constituted by an internal bus 28 that enables data communication. There may be a plurality of these elements. The processing in the storage controller 20 may be realized by these elements operating in cooperation.
  • the local memory 22 is a memory for storing various data and programs used by the processor 21. Examples of data and programs stored in the local memory 22 will be described later.
  • the shared memory 23 is a memory for storing data shared by a plurality of elements. An example of data stored in the shared memory 23 will be described later.
  • the cache memory 24 is a memory for storing temporary data and the like.
  • the read data or the write data is temporarily stored in the cache memory 24 in order to shorten the response time of the storage controller 20 to the read request or write request.
  • the host I / F 26 is an I / F for the storage controller 20 (the processor 21) to transmit / receive data to / from the host system 8 through the communication network 7.
  • the host I / F 26 is, for example, a SAS adapter or a LAN adapter.
  • the disk I / F 25 is an I / F for the storage controller 20 (the processor 21) to transmit / receive data to / from the PDEV 31.
  • the disk I / F 25 is, for example, a PCIe adapter, a SATA adapter, a SAS adapter, or the like.
  • the remote I / F 27 is an I / F for transmitting and receiving data between the storage apparatus 10a and the storage apparatus 10b that is the synchronization target. That is, the difference data in the storage apparatus 10a is transmitted to the storage apparatus 10b through this remote I / F 27.
  • the remote I / F 27 may be connected to the communication network 7 or may be connected to a predetermined communication line or communication network connected to the storage device 10b.
  • the storage controller 20 can execute the I / O program 41, the differential data relocation program 43, and the VOL synchronization program 42. These programs may be stored in the local memory 22. Then, the contents of these processes may be realized by executing these programs by the processor 21. Alternatively, these processes may be configured as a predetermined logic operation circuit (for example, ASIC (Application Specific Integrated Circuit)). The contents of these processes may be realized by these logical operation circuits operating independently or in cooperation with the processor 21.
  • ASIC Application Specific Integrated Circuit
  • the storage controller 20 manages a submap management table 52, a synchronization setting table 54, a synchronization time analysis table 56, a synchronization time management table 58, an operation rate threshold setting table 60, and an adoption determination setting table 62.
  • the storage controller 20 may manage only one of these tables. These tables may be stored in the local memory 22. Alternatively, these tables may be stored in either the shared memory 23 or the PDEV 31. Alternatively, these tables may be stored in another device connected by the communication network 7.
  • the storage controller 20 manages the difference map 90.
  • the difference map 90 may be stored in any of the local memory 22, the shared memory 23, or the PDEV 31.
  • the difference data rearrangement program 43 is a process for rearranging difference data in the difference data storage area.
  • the difference data rearrangement program 43 divides the difference map 90 into two or more submaps, a selection process for selecting a rearrangement destination submap from a plurality of submaps, and a difference between the rearrangement source submaps
  • An exchange process for exchanging bit-on and differential bit-off of the rearrangement destination submap may be included.
  • the division number of the difference map 90 may be determined based on the total number of difference bits included in the difference map 90.
  • the difference map 90 may be divided so that the total number of difference bits included in each submap is as equal as possible.
  • the difference map 90 may be divided so that each submap has a predetermined total number of difference bits. This is to facilitate comparison between submaps.
  • the difference data rearrangement program 43 is executed when necessary, and may not be executed when unnecessary. This is because the time allowed for resynchronization processing varies depending on the policy of the user who uses the storage system, and it is not necessary to execute the differential data relocation processing that requires a processing load until the user policy is satisfied. is there.
  • the storage controller 20 calculates the number of difference data (predicted number) when the VOL synchronization program 42 is executed next time, and determines whether or not the predicted number of difference data is larger than a predetermined threshold.
  • the storage controller 20 does not need to execute the replacement process when the determination result is affirmative and performs the replacement process when the determination result is negative.
  • the predicted number of difference data may be calculated based on the past VOL synchronization program 42.
  • the VOL synchronization program 42 is a process for synchronizing the data of the first VOL 80a and the second VOL 80b.
  • the VOL synchronization program 42 may include a process of transmitting difference data newly stored in the first VOL 80a to the second VOL 80b after the synchronization state.
  • the VOL synchronization program 42 may be executed at a constant cycle. Alternatively, the VOL synchronization program 42 may be executed when the difference data has accumulated a predetermined amount or more.
  • the storage controller 20 In executing the VOL synchronization program 42, the storage controller 20 first acquires the relocated differential data from the differential data storage area of the first VOL 80a. Then, the storage controller 20 transmits the acquired difference data to the storage apparatus 10b having the second VOL 80b. The transmitted difference data is stored (that is, synchronized) in the second VOL 80b of the storage apparatus 10b.
  • the VOL synchronization program 42 may include a process of acquiring a plurality of differential data stored continuously at a time using a sequential access command.
  • the VOL synchronization program 42 may include a process of acquiring difference data stored discontinuously with a random access command.
  • the I / O program 41 is a process for controlling a write request and a read request received from the host system 8.
  • the I / O program 41 stores the write data (difference data) in the first VOL 80 a and transmits a response (success or failure) to the write request to the host system 8. including.
  • the I / O program 41 receives a read request from the host system 8
  • the I / O program 41 includes processing for acquiring data related to the request from the first VOL 80 a and transmitting the acquired data to the host system 8.
  • the I / O program 41 When the I / O program 41 receives a write request during execution of the differential data rearrangement program 43, the I / O program 41 stores the write data (differential data) preferentially in an empty slot belonging to the rearrangement destination submap. May be included. Thereby, the continuity of differential bit-on in the rearrangement destination submap can be enhanced. In addition, it is possible to prevent a difference bit-on from newly occurring in the rearrangement source submap that has been rearranged. Details of this processing will be described later (see FIG. 15).
  • the difference map 90 is as described above. Details will be described later (see FIG. 4).
  • the submap management table 52 is a table for managing information related to each submap. Details will be described later (see FIG. 5).
  • the synchronization setting table 54 is a table in which setting values related to the VOL synchronization program 42 are stored. Details will be described later (see FIG. 6).
  • the synchronization time analysis table 56 is a table in which values for analyzing the time required for the VOL synchronization program 42 are stored. Details will be described later (see FIG. 7).
  • the synchronization time management table 58 is a table for managing information related to the time required for the VOL synchronization program 42. Details will be described later (see FIG. 8).
  • the operating rate threshold setting table 60 is a table in which thresholds used for determining whether or not the differential data rearrangement program 43 is to be executed are stored. Details will be described later (see FIG. 9).
  • the adoption determination setting table 62 is a table that stores whether or not each determination regarding the necessity of executing the differential data rearrangement program 43 is adopted. Details will be described later (see FIG. 10).
  • FIG. 4 shows a configuration example of the difference map 90.
  • the difference map 90 is information for managing an address assigned to a slot in the VOL (referred to as a “VOL address”) and a difference bit indicating whether or not difference data is stored in the slot. is there.
  • the difference map 90 may have a VOL address 101 and a difference bit 102 as field values.
  • the VOL address 101 is an address assigned to a slot included in the VOL difference data storage area.
  • the difference bit 102 is a flag indicating whether or not difference data is stored in the slot indicated by the VOL address 101.
  • the difference bit corresponding to the VOL address 101 in which the difference data is stored is the difference bit on (“1”), and the difference bit corresponding to the VOL address 10 in which the difference data is not stored is the difference bit off (“0”). It becomes.
  • the VOL address 101 “0x0000 to 0x0030” belongs to the rearrangement destination submap
  • the VOL address 101 “0x0270” belongs to the rearrangement source submap.
  • the differential bit on of the VOL address 101 “0x0270” is exchanged with any differential bit off belonging to the rearrangement destination submap.
  • the earliest VOL address 101 is “0x0010”.
  • the difference bit on 102 of the VOL address 101 “0x0270” and the difference bit off 102 of the VOL address 101 “0x0010” may be exchanged. That is, the physical address in which the differential data corresponding to the exchange source VOL address 101 “0x0270” has been stored and the physical address in which the differential data not corresponding to the exchange destination VOL address 101 “0x0010” is stored may be exchanged. As a result, the two difference bits of the VOL address 101 “0x0000” and “0x0010” are successively turned on. By repeating this, the continuity of differential bit-on in the rearrangement destination submap can be enhanced.
  • FIG. 5 shows a configuration example of the submap management table 52.
  • the submap management table 52 is a table for managing information on each submap divided by the division processing on the difference map 90.
  • the submap management table 52 includes, as field values, a submap ID 111, a VOL address section 112, a differential bit-on number 113, a total number of differential bits 114, a differential bit-on ratio 115, a rank 116, and a difference And a bit-on tail 117.
  • the submap ID 111 is a value for identifying the submap.
  • the submap ID 111 may be the ID of the difference map 90.
  • the submap ID 111 “R” in FIG. 5 may be an ID of the difference map 90
  • the submap IDs 111 “R1” to “R4” may be IDs of submaps divided from the difference map 90 “R”.
  • the VOL address section 112 is a section of a VOL address belonging to the submap of the submap ID 111.
  • the difference bit-on number 113 is the number of difference bit-ons belonging to the submap of the submap ID 111 (that is, the number of difference data).
  • the total number of difference bits 114 is the total number of difference bits belonging to the submap of the submap ID 111 (that is, the total number of slots).
  • the difference bit-on ratio 115 is the ratio of the difference bit-on number 113 to the total number 114 of difference bits in the submap of the submap ID 111.
  • the rank 116 is a value indicating the largest difference bit-on ratio 115 in the submap of the submap ID 111 among all the submaps divided from the same difference map 90.
  • the last bit 117 of differential bit on is information regarding the differential bit on at the end of the VOL address in the submap of the submap ID 111.
  • the last bit 117 of the difference bit on may be “0”.
  • the last 117 of the differential bit on may be “ ⁇ 1”.
  • the last 117 of the differential bit on may be the known VOL address.
  • FIG. 6 shows a configuration example of the synchronization setting table 54.
  • the synchronization setting table 54 is a table in which setting values related to the VOL synchronization program 42 are stored.
  • the synchronization setting table 54 may include, as field values, a pair ID 121, an upper limit time 122, a previous resynchronization time 123, a safety factor 124, and a next relocation necessity 125.
  • the pair ID 121 is a value for identifying a VOL pair to be synchronized (backup target).
  • the pair ID 121 may be, for example, a combination of two VOL IDs to be synchronized.
  • the upper limit time 122 is a value indicating the upper limit of the time that can be applied to the VOL synchronization program 42 between the VOLs of the pair ID 121.
  • the upper limit time 122 may be set by the user, or may be automatically set by the storage controller 20.
  • the previous resynchronization time 123 is the time taken by the previous VOL synchronization program 42 between the VOLs of the pair ID 121.
  • the safety factor 124 is a value indicating how much margin is provided for the upper limit time 122.
  • the upper limit time 122 of the pair ID 121 “first VOL: second VOL” in FIG. 6 is “200 minutes”, and the safety factor 124 is “10%”.
  • the safety factor 124 may be set by the user or automatically set by the storage controller 20.
  • the next relocation necessity 125 is information indicating whether or not the differential data relocation program 43 needs to be executed before the next VOL synchronization program 42 between the VOLs of the pair ID 121.
  • the next relocation necessity 125 may be “necessary”, and when the difference data relocation program 43 is not necessary, the next relocation necessity 125 may be “unnecessary”.
  • the next relocation necessity 125 may be automatically determined by the storage controller 20 based on the upper limit time 122, the safety factor 124, and the previous resynchronization time 123.
  • the storage controller 20 determines that the next relocation necessity 125 is “necessary”, If not, the next relocation necessity 125 may be determined as “unnecessary”. This is because the time required for the VOL synchronization program 42 can be shortened by executing the differential data relocation program 43.
  • the storage controller 20 may generate a GUI (Graphical User Interface) that can input the upper limit time 122 and the safety factor 124 for each pair ID 121.
  • GUI Graphic User Interface
  • a result of whether or not the next rearrangement is necessary may be displayed in conjunction with the input upper limit time 122 and safety factor 124.
  • This GUI may be output to the display device of the host system 8 used by the user.
  • FIG. 7 shows a configuration example of the synchronization time analysis table 56.
  • the synchronization time analysis table 56 is a table in which values for analyzing the time required for the VOL synchronization program 42 are stored.
  • the synchronization time analysis table 56 may store both records including actual measured values in the past VOL synchronization program 42 and records including predicted values in the future VOL synchronization program 42.
  • the synchronization time analysis table 56 may have, as field values, a synchronization ID 131, a Q arrival time 132, a difference bit-on number 133, a difference bit-on increase rate 134, and a time 135 required for resynchronization. .
  • the synchronization ID 131 is information for identifying which VOL synchronization program 42 the record relates to.
  • the synchronization ID 131 may include information for identifying whether the record is an actual measurement value or a predicted value. For example, the synchronization ID 131 “1 (actual measurement)” in FIG. 7 indicates that the record includes an actual measurement value in the first VOL synchronization program 42 that has been executed.
  • the synchronization ID 131 “2 (prediction)” indicates that the record includes a predicted value in the second VOL synchronization program 42 scheduled to be executed.
  • the synchronization ID 131 may be the time when the VOL synchronization program 42 is executed or the time when it is scheduled to be executed.
  • the Q arrival time 132 is an actual time taken until the number of differential bit-on 133 reaches the threshold value Q in the VOL synchronization program 42 of the synchronization ID 131.
  • the Q arrival time 132 may be an actual measurement value in any record of actual measurement and prediction.
  • the difference bit-on number 133 related to actual measurement is the actual number of difference bit-ons when the VOL synchronization program 42 of the synchronization ID 131 is executed.
  • the difference bit-on number 133 related to the prediction is the number of difference bit-on predicted when the VOL synchronization program 42 of the synchronization ID is executed.
  • the difference bit-on increase rate 134 related to the actual measurement is a value indicating a rate of increase in the number of differential bit-on per unit time until the VOL synchronization program 42 with the synchronization ID 131 is actually executed.
  • the difference bit-on increase rate 134 relating to the prediction is a value indicating a rate of increase in the number of difference bit-on per unit time predicted until the time when the VOL synchronization program 42 of the synchronization ID 131 is executed. .
  • the time 135 required for the resynchronization related to the actual measurement is the time actually taken from the start to the completion of the VOL synchronization program 42 with the synchronization ID 131.
  • the time 135 required for the resynchronization related to the prediction is a time estimated to be taken from the start to the completion of the VOL synchronization program 42 of the synchronization ID 131.
  • the Q arrival time 132 is “tp (minutes)”, and the number of differential bit on Assume that 133 is “Np (pieces)”, the differential bit-on increase rate 134 is “np (pieces / minute)”, and the time 135 required for resynchronization is “Tp (minutes)”. Then, it is assumed that the Q arrival time 132 is “tc (minutes)” in the VOL synchronization program 42 (VOL synchronization program 42 in the current cycle) with the synchronization ID 131 “2 (prediction)”.
  • FIG. 8 shows a configuration example of the synchronization time management table 58.
  • the synchronization time management table 58 is a table for managing information related to the time required for the VOL synchronization program 42.
  • the synchronization time management table 58 includes, as field values, a pair ID 141, an upper limit time 142, a safety factor 143, an allowable time 144, a predicted time 145, a predicted excess time 146, a measured sequential ratio 147, and a target sequential ratio. 148.
  • the pair ID 141, the upper limit time 142, and the safety factor 143 are as described above (see FIG. 6).
  • Allowable time 144 is a time allowed for the VOL synchronization program 42 between the VOLs of the pair ID 141.
  • the predicted time 145 is a time predicted from the start to the completion of the VOL synchronization program 42 between the VOLs of the pair ID 141.
  • the storage controller 20 may automatically calculate the predicted time 145 based on the time (actually measured value) required for the past VOL synchronization program 42.
  • the sequential ratio is the ratio of the number of differential bit-ons having continuity to the sum of the number of differential bit-ons having continuity and the number of differential bit-ons having no continuity (random) in the difference map 90. It may be the value shown. Whether or not the difference bit-on has continuity may be determined based on, for example, whether or not the difference bit-on continues for a predetermined number or more.
  • the measured sequential ratio 147 is a sequential ratio measured at a certain time (for example, the current time) in the synchronization source VOL of the pair ID 141.
  • the target sequential ratio 148 is a sequential ratio targeted by the synchronization source VOL of the pair ID 141.
  • the target sequential ratio 148 may be a sequential ratio necessary for completing the VOL synchronization program 42 within the allowable time 144. That is, in order to complete the VOL synchronization program 42 within the allowable time 144, the differential data relocation program 43 may be executed until the measured sequential ratio 147 becomes equal to or greater than the target sequential ratio 148.
  • FIG. 9 shows a configuration example of the operation rate threshold value setting table 60.
  • the operating rate threshold value setting table 60 is a table in which threshold values of resource operating rates used for determining whether or not the differential data rearrangement program 43 is to be executed are stored.
  • the operating rate threshold setting table 60 may have a resource ID 151 and an operating rate threshold 152 as field values.
  • the resource ID 151 is information for identifying a resource in the storage apparatus 10.
  • the resource may be, for example, a processor resource, a memory resource, or a network resource.
  • the operation rate threshold 152 indicates a threshold for the operation rate of the resource with the resource ID 151.
  • the storage controller 20 determines that the resource operation rate with the resource ID 151 is equal to or less than the operation rate threshold value 152 corresponding to the resource ID 151. Until that time, the execution of the differential data rearrangement program 43 is temporarily stopped. This is because if the differential data relocation program 43 is executed when the operation rate is high, the operation rate is further increased, and the performance of other processes (for example, the performance of the I / O program 41) can be reduced.
  • the storage controller 20 may generate a GUI that can input the operation rate threshold 152 for each resource ID 151. This GUI may be output to the display device of the host system 8 used by the user.
  • FIG. 10 shows a configuration example of the adoption determination setting table 62.
  • the adoption determination setting table 62 is a table that stores whether or not each determination regarding the necessity of executing the differential data rearrangement program 43 is adopted.
  • the adoption determination setting table 62 may have a determination content 161 and adoption approval / disapproval 162 as field values.
  • the determination content 161 is information indicating the content of determination regarding whether or not the differential data relocation program 43 can be executed.
  • Adoptability 162 is information indicating whether or not to adopt the determination content.
  • the adoption availability 161 may be set by the user, or may be automatically set by the storage controller 20.
  • FIG. 11 is a flowchart showing an example of processing of the difference data relocation program 43.
  • the storage controller 20 executes necessity determination processing for determining whether or not it is necessary to execute the differential data relocation program 43 (S101). Details of the necessity determination process will be described later (see FIG. 12).
  • the storage controller 20 determines that it is not necessary to execute the differential data rearrangement program 43 (S101: rearrangement is not necessary), the process ends. If the storage controller 20 determines that it is necessary to execute the differential data relocation program 43 (S101: relocation required), the storage controller 20 proceeds to the next processing of S102.
  • the storage controller 20 executes the dividing process of the difference map 90 (S102). Details of the dividing process of the difference map 90 will be described later.
  • the storage controller 20 executes processing related to the submap divided by the division processing (S102) of the difference map 90 (S103). Details of processing related to the submap will be described later (see FIG. 13).
  • the storage controller 20 determines that the rearrangement of the difference data has been completed (S103: rearrangement complete), the present processing is terminated.
  • the storage controller 20 determines that the relocation of the difference data is incomplete (S103: relocation incomplete)
  • the storage controller 20 may proceed to the next processing of S104.
  • the storage controller 20 performs differential bit exchange processing (S104). Details of the exchange process will be described later.
  • Storage controller 20 executes post-processing (S105). Details of the post-processing will be described later. Then, the storage controller 20 returns to the process of S103.
  • FIG. 12 is a flowchart showing details of the necessity determination process (S101).
  • the storage controller 20 newly creates the difference map 90 and initializes it (for example, turns off all the difference bits) (S201).
  • the storage controller 20 starts measuring the Q arrival time 132 “tc” until the number of differential bit-ons becomes equal to or greater than the threshold Q in the difference map 90 (S202).
  • the storage controller 20 When the storage controller 20 receives a write command for the synchronization source VOL (S210: YES), the storage controller 20 executes a difference map update process (S211). Otherwise (S210: NO), the process returns to the process of S210. Details of the difference map update processing will be described later (see FIG. 14).
  • the storage controller 20 determines whether or not the number of difference bit-ons in the difference map 90 is equal to or greater than the threshold value Q (S220). If the determination result is negative (S220: NO), the process returns to S210.
  • the storage controller 20 ends the measurement of the Q arrival time “tc” and stores the measured time “tc” in the synchronization time analysis table 56 (S221). .
  • the storage controller 20 determines whether or not the time 135 “Tc” required for the resynchronization related to the prediction exceeds the allowable time 144 (S230).
  • the storage controller 20 determines that rearrangement of difference data is necessary (S231). In this case, the processing after S102 in FIG. 12 is executed.
  • the storage controller 20 determines that the relocation of the difference data is not necessary (S232). In this case, the processes after S102 in FIG. 12 are not executed.
  • the storage controller 20 determines the division number of the difference map 90 based on the difference bit-on number 133 “Nc” related to the prediction in the difference map 90 (S301).
  • the storage controller 20 divides the difference map 90 by the determined number of divisions and generates a plurality of submaps (S302).
  • the storage controller 20 stores the submap ID 111, the VOL address section 112, and the total number of difference bits 114 in each submap in the submap management table 52.
  • the storage controller 20 stores the difference bit-on number 113 in each submap in the submap management table 52 (S303).
  • the storage controller 20 selects a submap having the largest number of differential bit-ons 113 from among a plurality of submaps as a relocation destination submap (S304).
  • the storage controller 20 calculates the difference bit-on ratio 115 and the rank 116 based on the difference bit-on number 113 of each submap, and stores it in the submap management table 52.
  • FIG. 13 is a flowchart showing details of the process (S103) related to the submap.
  • the storage controller 20 determines whether or not an unselected submap exists in this process (S401). If there is no unselected submap (S401: NO), the storage controller 20 determines “relocation complete” (S412), and returns to the processing shown in FIG. 11 (RETURN). In this case, the determination result of the process related to the submap shown in FIG. 11 (S103) is “relocation complete”, and the differential data relocation program 43 ends.
  • the storage controller 20 selects, from among the unselected submaps, the submap having the smallest difference bit-on number 113 as the relocation source submap ( S402).
  • the storage controller 20 determines whether or not the rearrangement source submap is the target of the rearrangement process (S403). For example, in the submap management table 52, when the last bit 117 of the difference bit on related to the rearrangement source submap is “0” (when there is no difference bit on), or the rearrangement source submap and the rearrangement destination sub When the maps are the same, the storage controller 20 may make the determination result in S403 negative. When the determination result of S403 is negative (S403: NO), the storage controller 20 returns to the process of S401. If the determination result of S403 is positive (S403: YES), the storage controller 20 proceeds to the next process of S410.
  • the storage controller 20 determines whether or not the latest measured sequential ratio 147 of the difference map 90 is equal to or greater than the target sequential ratio 148 (S410). If the determination result in S410 is affirmative (S410: YES), the storage controller 20 determines “relocation complete” (S410), and returns to the processing shown in FIG. 11 (RETURN). This is because the VOL synchronization program 42 can be completed within the allowable time 144 with the current difference map 90 maintained without further rearranging the difference data. In this case, the determination result of the processing relating to the submap shown in FIG. The reason why the rearrangement is completed when the condition of S410 is satisfied is that the rearrangement processing is subjected to a certain processing load. Further, by sequentially selecting a submap having a large number of differential bit-ons as a relocation destination, the sequential ratio can be increased with a smaller number of relocations.
  • the storage controller 20 proceeds to the process of S413. If it is set in the adoption determination setting table 62 that the determination content 161 in S410 is not adopted (adoption propriety 162 “NO”), the storage controller 20 does not execute the determination in S410 and does not perform the determination in S413. You may proceed to processing.
  • the storage controller 20 selects one of the differential bit ons belonging to the relocation source submap as the differential bit on of the exchange source (S413).
  • the storage controller 20 determines whether or not the resource operation rate measured most recently is equal to or higher than the operation rate threshold 152 corresponding to the ID 151 of this resource in the operation rate threshold setting table 60 (S420).
  • the storage controller 20 registers the difference bit-on of the exchange source in a predetermined queue (S431), waits for a fixed time (S432), and then performs the processing of S420. Return.
  • the storage controller 20 determines “relocation is incomplete” (S421), and returns to the process shown in FIG. 12 (RETURN). In this case, the determination result of the process related to the submap shown in FIG. 11 (S103) is “relocation incomplete”, and the next replacement process (S104) is executed.
  • the storage controller 20 selects the difference bit off of the exchange destination from the difference bit off in the relocation destination submap (S501).
  • the storage controller 20 may preferentially select the differential bit off with the earliest VOL address 101 in the relocation destination submap. This is because differential bit-on is arranged as continuously as possible in the rearrangement destination submap.
  • the storage controller 20 exchanges the differential bit-on selected as the exchange source in the relocation source submap and the differential bit-on selected as the exchange destination in the relocation destination submap (S502). That is, the storage controller 20 exchanges a slot in which difference data corresponding to the difference bit on of the exchange source is stored and an empty slot corresponding to the difference bit off of the exchange destination. Then, the storage controller 20 returns to the process shown in FIG. 11 (RETURN).
  • the storage controller 20 updates the difference bit-on number 113, the difference bit-on ratio 115, and the last bit 117 of the difference bit-on of the record related to the rearrangement destination submap (S601). .
  • the storage controller 20 updates the difference bit-on number 113, the difference bit-on ratio 115, and the last bit 117 of the difference bit-on in the relocation source submap (S602). .
  • the storage controller 20 updates the measured sequential ratio 147 in the synchronization time management table 58 (S603). Then, the storage controller 20 returns to the process shown in FIG. 12 (RETURN). In the process shown in FIG. 11, the storage controller 20 returns to the process of S103.
  • FIG. 14 is a flowchart showing an example of the difference map update process (S211).
  • the difference map update process (S211) is executed when a write command for the synchronization source VOL is received as shown in FIG.
  • the storage controller 20 determines whether or not the rearrangement destination submap has already been determined (S701). If the relocation destination submap has not yet been determined (S701: NO), the storage controller 20 proceeds to the process of S710.
  • the storage controller 20 next determines whether or not the VOL address 101 designated by the write command belongs to the relocation destination submap (S702). . If the determination result of S702 is positive (S702: YES), the storage controller 20 proceeds to the process of S710.
  • the storage controller 20 exchanges the slot of the VOL address 101 designated by the write command with an empty slot belonging to the relocation destination submap (S703). Further, the storage controller 20 may preferentially select the first VOL address 101 as the replacement destination in the difference bit off in the relocation destination submap. Then, the storage controller 20 proceeds to the process of S710.
  • the storage controller 20 stores the write data (that is, difference data) in the write destination slot (S710). If the write destination slot is exchanged in S703, the difference data is stored in the exchange destination slot belonging to the rearrangement destination submap.
  • the storage controller 20 updates the difference map 90 (S711). That is, the storage controller 20 updates the difference bit corresponding to the slot in which the difference data is stored in the difference map 90 to ON.
  • the storage controller 20 updates the submap management table 52 (S712). That is, in the submap management table 52, the storage controller 20 adds the number of differential bits turned on in S711 to the number of differential bits on in the relocation destination submap.
  • the storage controller 20 refers to the difference bit-on tail 117 of the record related to the submap in which the difference data of the submap management table 52 is stored, and the difference bit-on tail 117 of the submap in which the difference data is stored. It is determined whether or not the VOL address 101 is known (S720).
  • the storage controller 20 next determines whether the write destination VOL address 101 of the differential data is behind the last VOL address 101 of the differential bit on. It is determined whether or not (S721).
  • the storage controller 20 next sets “ ⁇ 1” (unknown) in the submap management table 52 for the difference bit-on end 117 of the record related to the submap. (S722). Then, the storage controller 20 returns to the process shown in FIG. 12 (RETURN).
  • FIG. 15 is a flowchart showing an example of processing of the VOL synchronization program 42.
  • the storage controller 20 determines whether or not the differential data relocation program 43 has been executed (S801). When the differential data relocation program 43 has not been executed (S801: NO), the storage controller 20 executes a normal resynchronization process between VOLs (S810), and proceeds to the process of S830.
  • the storage controller 20 determines whether or not an unselected submap exists in the VOL synchronization program 42 (S802). If there is no unselected submap (S802: NO), the storage controller 20 proceeds to the process of S830.
  • the storage controller 20 selects a submap with the largest number of differential bit-ons from among the unselected submaps (S803).
  • the storage controller 20 determines whether or not the VOL address 101 at the end 117 of the differential bit on is found in the selected submap (S820).
  • the storage controller 20 When the VOL address 101 of the last bit 117 of the difference bit on is unknown in the selected submap (S820: NO), the storage controller 20 performs the following process. That is, the storage controller 20 searches the entire submap and extracts differential bit-on. Then, the storage controller 20 acquires each difference data of the plurality of VOL addresses 101 corresponding to the extracted difference bit-on by a random access command (S822). Then, the storage controller 20 returns to the process of S802.
  • the storage controller 20 When the VOL address 101 of the last bit 117 of differential bit on is known in the selected submap (S803: YES), the storage controller 20 performs the following process. In other words, the storage controller 20 acquires all the differential data from the first VOL address 101 of the submap to the last VOL address 101 of the differential bit ON by a sequential access command (S822). Then, the storage controller 20 returns to the process of S802.
  • the storage controller 20 transmits the difference data acquired in S821 and S822 to the synchronization destination storage device (S830).
  • the storage controller 20 updates the synchronization time management table 58 (S831), and ends this process.
  • the embodiment of the copy process (remote copy process) between the first VOL 80a of the two storage apparatuses 10a and the second VOL 80b of the storage apparatus 10b has been described.
  • the contents of the above-described embodiment include other configurations. It is also applicable to.
  • the contents of the above-described embodiment can be applied to a copy process (local copy process) in one storage apparatus.
  • one storage apparatus 10 has one storage controller 20, a first VOL 80a, and a second VOL 80b.
  • a difference map 90a related to the first VOL 80a and a difference map 80b related to the second VOL 80b are provided. May be managed.
  • the contents of the above-described embodiment may be applied to the local copy process between the first VOL 80a and the second VOL 80b in one storage apparatus 10.
  • Storage system 10 Storage device 20: Storage controller 31: PDEV 80: Volume

Landscapes

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

Abstract

A storage controller having difference information that indicates, for each of a plurality of slots, whether the slot is a used slot in which difference data in a first volume is stored or a free slot in which no difference data is stored. The storage controller divides the difference information into a plurality of difference information blocks, selects a first difference information block and a second difference information block from among the plurality of difference information blocks, and exchanges the address of a used slot belonging to the second difference information block for the address of a free slot belonging to the first difference information block.

Description

ストレージシステム、及び、記憶制御方法Storage system and storage control method
 本発明は、概して、ストレージシステム及び記憶制御方法の技術に関する。 The present invention generally relates to a technology of a storage system and a storage control method.
 第1のストレージ装置に新たに書き込まれたデータのみをネットワークを通じて第2のストレージ装置にコピーすることにより、第1のストレージ装置のデータを第2のストレージ装置にバックアップする技術が知られている。 A technology is known in which only data newly written in a first storage device is copied to a second storage device through a network, thereby backing up data in the first storage device to a second storage device.
 特許文献1には次のことが開示されている。第1のストレージ装置は、ホストコンピュータから受信した書き込みデータを転送用バッファに格納し、その転送用バッファ内の複数の書き込みデータをトラック単位で並び替え、その並び替えた複数の書き込みデータを第2のストレージ装置に送信する。第2のストレージ装置は、その並び替えられた書き込みデータを受信し、その並び替えられた順序で書き込みデータをHDD(Hard Disk Drive)に書き込む。これにより、第2のストレージ装置におけるディスクヘッドは、HDDに対してシーケンシャルにアクセスできる。この結果、第2のストレージ装置におけるHDDへのデータの展開処理が短縮される。 Patent Document 1 discloses the following. The first storage device stores the write data received from the host computer in the transfer buffer, rearranges the plurality of write data in the transfer buffer in units of tracks, and converts the rearranged plurality of write data to the second buffer. To the storage device. The second storage device receives the rearranged write data and writes the write data to the HDD (Hard Disk Drive) in the rearranged order. Thereby, the disk head in the second storage device can sequentially access the HDD. As a result, the data expansion process to the HDD in the second storage device is shortened.
特開2013-73388号公報JP 2013-73388 A
 第1のストレージ装置は、自分の記憶デバイス(HDD、SSD(Solid State Drive)など)に新たに書き込まれたデータ(上書きされたデータも含む。以下「差分データ」という)を第2のストレージ装置に送信するためにはまず、差分データを読み出す必要がある。差分データの読み出しにかかる時間は、差分データの量が増大するにつれて長くなる。したがって、第1のストレージ装置の全ての差分データを第2のストレージ装置にコピーする処理(「コピー処理」という)にかかる時間は、差分データの量が増大するにつれて長くなる。そこで、本発明の目的の1つは、第1のストレージ装置における差分データの読み出しにかかる時間を短縮することにある。 The first storage device stores data (including overwritten data; hereinafter referred to as “difference data”) newly written in its own storage device (HDD, SSD (Solid State Drive), etc.) as the second storage device. First, it is necessary to read the difference data. The time taken to read the difference data becomes longer as the amount of difference data increases. Therefore, the time required for the process of copying all the difference data of the first storage device to the second storage device (referred to as “copy process”) becomes longer as the amount of difference data increases. Therefore, one of the objects of the present invention is to shorten the time required for reading differential data in the first storage device.
 一実施形態に係るストレージシステムは、第1のボリュームに格納されたデータが格納される1以上の記憶デバイスと、1以上の記憶デバイスを制御するストレージコントローラとを有する。第1のボリュームは、複数の記憶領域である複数のスロットに分割されている。ストレージコントローラは、所定のタイミング以降に格納されたデータを含む差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを複数のスロットの各々について表す差分情報を有する。そして、ストレージコントローラは、差分情報を複数の差分情報部分に分割する分割処理と、複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択する選択処理と、第2の差分情報部分に属する使用スロットのアドレスと、第2の差分情報部分に属する空きスロットのアドレスとを交換する交換処理とを実行する。 The storage system according to an embodiment includes one or more storage devices that store data stored in the first volume, and a storage controller that controls the one or more storage devices. The first volume is divided into a plurality of slots which are a plurality of storage areas. The storage controller displays difference information for each of a plurality of slots indicating whether it is a used slot in which difference data including data stored after a predetermined timing is stored or an empty slot in which difference data is not stored. Have. Then, the storage controller divides the difference information into a plurality of difference information parts, a selection process for selecting the first difference information part and the second difference information part from the plurality of difference information parts, The exchange processing for exchanging the address of the used slot belonging to the second difference information portion and the address of the empty slot belonging to the second difference information portion is executed.
 本発明の一実施形態によれば、第1のストレージ装置における差分データの読み出しにかかる時間を短縮することができる。 According to one embodiment of the present invention, it is possible to reduce the time taken to read the difference data in the first storage device.
本実施形態に係るストレージシステムの概要を示す模式図である。1 is a schematic diagram showing an overview of a storage system according to an embodiment. 差分データ再配置処理の一例を説明するための図である。It is a figure for demonstrating an example of a difference data rearrangement process. ストレージシステムにおける構成の一例を示す模式図である。It is a schematic diagram which shows an example of a structure in a storage system. 差分マップの構成例を示す。The structural example of a difference map is shown. サブマップ管理テーブルの構成例を示す。The structural example of a submap management table is shown. 同期設定テーブルの構成例を示す。The structural example of a synchronous setting table is shown. 同期時間分析テーブルの構成例を示す。The structural example of a synchronous time analysis table is shown. 同期時間管理テーブルの構成例を示す。The structural example of a synchronous time management table is shown. 稼働率閾値設定テーブルの構成例を示す。The structural example of an operation rate threshold value setting table is shown. 採用判定設定テーブルの構成例を示す。The structural example of an employment | adoption determination setting table is shown. 差分データ再配置処理の一例を示すフローチャートである。It is a flowchart which shows an example of a difference data rearrangement process. 要否判定処理の一例を示すフローチャートである。It is a flowchart which shows an example of a necessity determination process. サブマップに関する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process regarding a submap. 差分マップ更新処理の一例を示すフローチャートである。It is a flowchart which shows an example of a difference map update process. VOL同期処理の一例を示すフローチャートである。It is a flowchart which shows an example of a VOL synchronous process.
 以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。 In the following description, 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. In the following description, 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.
 また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用することがある。例えば、VOLを特に区別しないで説明する場合には、「VOL80」と記載し、個々のVOLを区別して説明する場合には、「VOL80a」、「VOL80b」のように記載することがある。また、以下の説明では、I/O(Input/Output)要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。 In the following description, an ID is used as element identification information, but other types of identification information may be used instead of or in addition thereto. In the following description, when a description is made without distinguishing the same type of element, 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 may be used. is there. For example, when the VOL is not particularly distinguished, it is described as “VOL80”, and when each VOL is distinguished and described, it may be described as “VOL80a” or “VOL80b”. In the following description, an I / O (Input / Output) request is a write request or a read request, and may be referred to as an access request.
 また、以下の説明では、「記憶部」は、メモリを含んだ1以上の記憶デバイスでよい。例えば、記憶部は、主記憶デバイス(典型的には揮発性のメモリ)及び補助記憶デバイス(典型的には不揮発性の記憶デバイス)のうちの少なくとも主記憶デバイスでよい。また、記憶部は、キャッシュ領域(例えばキャッシュメモリ又はその一部領域)とバッファ領域(例えばバッファメモリ又はその一部領域)とのうちの少なくとも1つを含んでもよい。キャッシュ領域及びバッファ領域は、PDEVに入出力されるデータが一時格納される点で共通し、読み出されたデータが残るか否かで相違してよい。具体的には、キャッシュ領域から読み出されたデータは、キャッシュ領域に残り、バッファ領域から一旦読み出されたデータは、バッファ領域には残らないでよい。また、以下の説明では、「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD又はSSDでよい。 In the following description, the “storage unit” may be one or more storage devices including a memory. For example, the storage unit may be at least a main storage device of a main storage device (typically a volatile memory) and an auxiliary storage device (typically a nonvolatile storage device). The storage unit may include at least one of a cache area (for example, a cache memory or a partial area thereof) and a buffer area (for example, a buffer memory or a partial area thereof). The cache area and the buffer area are common in that data input / output to / from the PDEV is temporarily stored, and may differ depending on whether or not the read data remains. Specifically, data read from the cache area remains in the cache area, and data once read from the buffer area may not remain in the buffer area. In the following description, “PDEV” means a physical storage device, and typically a non-volatile storage device (for example, an auxiliary storage device). The PDEV may be, for example, an HDD or an SSD.
 また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数のPDEVで構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。 Also, in the following description, “RAID” is an abbreviation for Redundant Array of Independent (or Independent) Disks. The RAID group is composed of a plurality of PDEVs, and stores data according to the RAID level associated with the RAID group. The RAID group may be referred to as a parity group. The parity group may be, for example, a RAID group that stores parity.
 また、以下の説明において、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行ってよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置又はシステムが行う処理としてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 In the following description, a program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed with a storage resource (for example, a memory) and / or an interface device (for example, a communication port). ) Etc. may be used. The processing described with the program as the subject may be processing performed by a processor or an apparatus or system 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. When the program source is a program distribution server, 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. In the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
 また、以下の説明では、管理システムは、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が情報を表示する場合(具体的には、例えば、管理計算機が自分の表示デバイスに情報を表示する、或いは、管理計算機が表示用情報を遠隔の表示用計算機に送信する場合)、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んでよい)が、管理システムである。管理計算機(例えば管理システム)は、表示システムを含むI/Oシステムに接続されたインターフェースデバイスと、記憶資源(例えばメモリ)と、インターフェースデバイス及び記憶資源に接続されたプロセッサとを有してよい。表示システムは、管理計算機が有する表示デバイスでもよいし、管理計算機に接続された表示用計算機でもよい。I/Oシステムは、管理計算機が有するI/Oデバイス(例えばキーボード及びポインティングデバイス、タッチパネル)でもよいし、管理計算機に接続された表示用計算機又は別の計算機でもよい。管理計算機が「表示用情報を表示する」ことは、表示システムに表示用情報を表示することであり、これは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。また、管理計算機が情報を入出力するとは、管理計算機が有するI/Oデバイスとの間で情報の入出力を行うことであってもよいし、管理計算機に接続された遠隔の計算機(例えば表示用計算機)との間で情報の入出力を行うことであってもよい。情報の出力は、情報の表示であってもよい。 In the following description, the management system may be composed of one or more computers. Specifically, for example, when 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. For example, when a function equivalent to that of the management computer is realized by a plurality of computers, the plurality of computers (may include a display computer when the display computer performs display) is the management system. . A management computer (eg, management system) may include an interface device connected to an I / O system including a 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.
 また、以下の説明では、「ホストシステム」は、ストレージシステムにI/Oリクエストを送信するシステムであり、インターフェースデバイスと、記憶資源(例えばメモリ)と、それらに接続されたプロセッサとを有してよい。ホストシステムは、1以上のホスト計算機で構成されてよい。少なくとも1つのホスト計算機は、物理的な計算機でよく、ホストシステムは、物理的なホスト計算機に加えて仮想的なホスト計算機を含んでよい。 In the following description, the “host system” is a system that transmits an I / O request to the storage system, and includes an interface device, a storage resource (for example, a memory), and a processor connected to them. Good. The host system may be composed of one or more host computers. The at least one host computer may be a physical computer, and the host system may include a virtual host computer in addition to the physical host computer.
 また、以下の説明では、「ストレージシステム」は、1以上のストレージ装置でよく、複数のPDEV(例えば1以上のRAIDグループ)と、複数のPDEVに対するI/Oを制御するストレージコントローラとを有してよい。ストレージコントローラは、複数のPDEVに接続されるバックエンドのインターフェースデバイスと、ホストシステム及び管理システムのうちの少なくとも1つに接続されるフロントエンドのインターフェースデバイスと、記憶資源と、それらに接続されたプロセッサとを有してよい。ストレージコントローラは、冗長化されていてもよい。 In the following description, the “storage system” may be one or more storage apparatuses, and includes a plurality of PDEVs (for example, one or more RAID groups) and a storage controller that controls I / O for the plurality of PDEVs. It's okay. A storage controller includes a back-end interface device connected to a plurality of PDEVs, a front-end interface device connected to at least one of a host system and a management system, a storage resource, and a processor connected to them May be included. The storage controller may be made redundant.
 また、以下の説明では、「VOL」は、論理ボリュームの略であり、論理的な記憶デバイスでよい。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。また、VOLは、そのVOLを提供するストレージシステムに接続されているホストシステムに提供されるオンラインVOLと、ホストシステム8には提供されない(ホストシステムからは認識されない)オフラインVOLとがあってよい。「RVOL」は、そのRVOLを有するストレージシステムが有する物理的な記憶資源(例えば、1以上のRAIDグループ)に基づくVOLでよい。「VVOL」としては、外部接続VOL(EVOL)と、容量拡張VOL(TPVOL)と、スナップショットVOLとのうちの少なくとも1種類でよい。EVOLは、外部のストレージシステムの記憶空間(例えばVOL)に基づいておりストレージ仮想化技術に従うVOLでよい。TPVOLは、複数の仮想領域(仮想的な記憶領域)で構成されており容量仮想化技術(典型的にはThin Provisioning)に従うVOLでよい。スナップショットVOLは、オリジナルのVOLのスナップショットとして提供されるスナップショットVOLとがあってよい。TPVOLは、典型的にはオンラインVOLでよい。スナップショットVOLは、RVOLであってもよい。「プール」は、論理的な記憶領域(例えば複数のプールVOLの集合)であり、用途ごとに用意されてよい。例えば、プールとして、TPプールと、スナップショットプールとのうちの少なくとも1種類があってよい。TPプールは、複数の実領域(実体的な記憶領域)で構成された記憶領域でよい。TPプールからTPVOLの仮想領域に実領域が割り当てられてよい。スナップショットプールは、オリジナルのVOLから退避されたデータが格納される記憶領域でよい。1つのプールが、TPプールとしてもスナップショットプールとしても使用されてもよい。「プールVOL」は、プールの構成要素となるVOLでよい。プールVOLは、RVOLであってもよいしEVOLであってもよい。プールVOLは、典型的にはオフラインVOLでよい。 In the following description, “VOL” is an abbreviation for logical volume and may be a logical storage device. The VOL may be a substantial VOL (RVOL) or a virtual VOL (VVOL). The VOL may be an online VOL provided to a host system connected to a storage system that provides the VOL, and an offline VOL that is not provided to the host system 8 (not recognized by the host system). The “RVOL” may be a VOL based on a physical storage resource (for example, one or more RAID groups) possessed by the storage system having the RVOL. “VVOL” may be at least one of an external connection VOL (EVOL), a capacity expansion VOL (TPVOL), and a snapshot VOL. The EVOL is based on a storage space (for example, VOL) of an external storage system, and may be a VOL according to a storage virtualization technology. The TPVOL is composed of a plurality of virtual areas (virtual storage areas), and may be a VOL according to a capacity virtualization technology (typically Thin Provisioning). The snapshot VOL may be a snapshot VOL that is provided as a snapshot of the original VOL. The TPVOL may typically be an online VOL. The snapshot VOL may be an RVOL. A “pool” is a logical storage area (for example, a set of a plurality of pool VOLs), and may be prepared for each use. For example, there may be at least one of a TP pool and a snapshot pool as a pool. The TP pool may be a storage area composed of a plurality of real areas (substantial storage areas). A real area may be allocated from the TP pool to the virtual area of TPVOL. The snapshot pool may be a storage area in which data saved from the original VOL is stored. One pool may be used as both a TP pool and a snapshot pool. The “pool VOL” may be a VOL that is a component of the pool. The pool VOL may be an RVOL or an EVOL. The pool VOL may typically be an offline VOL.
 図1は、本実施形態に係るストレージシステムの概要を示す模式図である。 FIG. 1 is a schematic diagram showing an outline of a storage system according to this embodiment.
 ストレージシステム1は、ストレージ装置10aとストレージ装置10bとを有する。ストレージ装置10aとストレージ装置10bとは、所定のネットワーク又は通信線を通じてデータを送受信できる。 The storage system 1 includes a storage device 10a and a storage device 10b. The storage device 10a and the storage device 10b can transmit and receive data through a predetermined network or communication line.
 ストレージ装置10aは、PDEVと、そのPDEVを制御するストレージコントローラ20aとを有する。ストレージコントローラ20aは、PDEVを制御して第1VOL80aを構成する。ストレージ装置10bも同様にPDEVとそのPDEVを制御するストレージコントローラ20bとを有する。ストレージコントローラ20bは、第2VOL80bを構成する。 The storage device 10a includes a PDEV and a storage controller 20a that controls the PDEV. The storage controller 20a controls the PDEV to configure the first VOL 80a. Similarly, the storage apparatus 10b includes a PDEV and a storage controller 20b that controls the PDEV. The storage controller 20b constitutes the second VOL 80b.
 第1VOL80aのデータを第2VOL80bにバックアップする場合、ストレージコントローラ20aは次の処理を行う。 When backing up the data of the first VOL 80a to the second VOL 80b, the storage controller 20a performs the following processing.
 (A1)ストレージコントローラ20aは、第1VOL80aに格納されている全てのデータを第2VOL80bにバックアップする。これにより、第1VOL80aと第2VOL80bが同じデータを有する状態(同期状態)となる。 (A1) The storage controller 20a backs up all data stored in the first VOL 80a to the second VOL 80b. As a result, the first VOL 80a and the second VOL 80b have the same data (synchronized state).
 (A2)ストレージコントローラ20aは、第1VOL80aと第2VOL80bが同期状態となった後に第1VOL80aに新たに書き込まれたデータ(上書きされたデータも含む。つまり差分データ)を、第1VOL80aの所定の領域(「差分データ格納領域」という)102aに格納する。 (A2) The storage controller 20a stores data (including overwritten data, that is, differential data) newly written in the first VOL 80a after the first VOL 80a and the second VOL 80b are in synchronization with each other in a predetermined area ( (Referred to as “difference data storage area”) 102a.
 (A3)ストレージコントローラ20aは、所定のタイミング(一定周期の経過後、又は、差分データが所定量以上格納されたときなど)に、差分データ格納領域102aから差分データを取得し、その取得した差分データをストレージ装置10bに送信する。 (A3) The storage controller 20a acquires the difference data from the difference data storage area 102a at a predetermined timing (after the elapse of a certain period or when the difference data is stored in a predetermined amount or more), and the acquired difference Data is transmitted to the storage device 10b.
 (A4)ストレージコントローラ20bは、その差分データを受信し、第2VOL80bの差分データ格納領域102bに格納する。 (A4) The storage controller 20b receives the difference data and stores it in the difference data storage area 102b of the second VOL 80b.
 差分データ格納領域は複数のスロットで構成されており、差分データはスロットの単位で管理される。スロット単位でデータが書き込まれた場合、スロットに格納されたデータそれ自体が差分データとなるが、スロットより小さい単位でデータが書き込まれた場合、書き込まれたデータを含んだデータ(スロット単位のデータ)が差分データとなる。差分データ格納領域を構成する複数のスロットには順番を示すVOLアドレスが付与されている。 The difference data storage area consists of multiple slots, and the difference data is managed in slot units. When data is written in the slot unit, the data stored in the slot itself becomes differential data. However, when the data is written in a unit smaller than the slot, the data including the written data (data in the slot unit) ) Is the difference data. A VOL address indicating the order is given to a plurality of slots constituting the difference data storage area.
 ストレージコントローラ20aは、第1VOL80aの差分データ格納領域102aにおける各スロットに差分データが格納されているか否かを示す情報を有する。この情報を差分マップ90aという。差分マップ90aは複数の差分ビットから構成されており、差分ビットと差分データ格納領域のスロット(VOLアドレス)とは1対1に対応する。差分データが格納されているスロットに対応する差分ビットは、差分ビットオン(例えば「1」)となる。差分データが格納されていない、つまり空のスロットに対応する差分ビットは、差分ビットオフ(例えば「0」)となる。 The storage controller 20a has information indicating whether or not differential data is stored in each slot in the differential data storage area 102a of the first VOL 80a. This information is referred to as a difference map 90a. The difference map 90a is composed of a plurality of difference bits, and the difference bits correspond to the slots (VOL address) of the difference data storage area on a one-to-one basis. The differential bit corresponding to the slot in which the differential data is stored is differential bit on (eg, “1”). The difference bit corresponding to the empty slot in which the difference data is not stored, that is, the difference slot is turned off (for example, “0”).
 ストレージコントローラ20aが差分データ格納領域102aから差分データを取得する方法には、シーケンシャルアクセスとランダムアクセスがある。 The method by which the storage controller 20a obtains differential data from the differential data storage area 102a includes sequential access and random access.
 シーケンシャルアクセスは、VOLアドレスの連続するスロットから一度に差分データを取得する場合に用いることができる。例えば、ストレージコントローラ20aは、先頭のVOLアドレス及びデータ長を指定したシーケンシャルアクセスのコマンドを発行することにより、その先頭のVOLアドレスからデータ長までの間の複数のスロットにそれぞれ格納されている複数の差分データをシーケンシャルに取得することができる。 Sequential access can be used when differential data is acquired at a time from consecutive slots of VOL addresses. For example, the storage controller 20a issues a sequential access command designating the head VOL address and data length, and thereby stores a plurality of data stored in a plurality of slots between the head VOL address and the data length. Differential data can be acquired sequentially.
 ランダムアクセスは、それぞれのスロットから差分データを取得する場合に用いることができる。例えば、ストレージコントローラ20aは、VOLアドレスを指定したランダムアクセスのコマンドを発行することにより、そのVOLアドレスに対応するスロットに格納されている差分データを取得することができる。 Random access can be used when obtaining differential data from each slot. For example, the storage controller 20a can obtain the difference data stored in the slot corresponding to the VOL address by issuing a random access command designating the VOL address.
 すなわち、ランダムアクセスによって差分データを取得するよりも、シーケンシャルアクセスによって差分データを取得する方が、1回のコマンド発行で多くの差分データを取得できる。よって、上記(A3)の処理にかかる時間が短縮され得る。 That is, more differential data can be acquired by issuing a single command than when acquiring differential data by sequential access, rather than by acquiring differential data by random access. Therefore, the time required for the process (A3) can be shortened.
 そこでストレージコントローラ20aは、差分データ格納領域102aに対して差分データ再配置処理を行う。差分データ再配置処理は、差分データが連続するように差分データを再配置する処理である。ストレージコントローラ20aは、1回のシーケンシャルアクセスで多くの差分データを再配置後の差分データ格納領域102aから取得できるようになる。次に、この差分データ再配置処理について説明する。 Therefore, the storage controller 20a performs differential data relocation processing on the differential data storage area 102a. The difference data rearrangement process is a process of rearranging the difference data so that the difference data is continuous. The storage controller 20a can acquire a large amount of difference data from the difference data storage area 102a after rearrangement by one sequential access. Next, the difference data rearrangement process will be described.
 図2は、差分データ再配置処理の一例を説明するための図である。 FIG. 2 is a diagram for explaining an example of the difference data rearrangement process.
 差分データ格納領域102aにおけるスロットと差分マップ90における差分ビットとは、1対1で対応している。差分マップ90の再配置処理は、例えば以下のステップで行われる。 The slot in the difference data storage area 102a and the difference bit in the difference map 90 have a one-to-one correspondence. The rearrangement process of the difference map 90 is performed by the following steps, for example.
 (B1)ストレージコントローラ20aは、差分情報の一例である差分マップ90-1を、差分情報部分の一例である複数のサブマップに分割する。図2では、差分マップ90-1を、サブマップR1、R2、R3、R4の4つに分割している。 (B1) The storage controller 20a divides the difference map 90-1 as an example of difference information into a plurality of submaps as an example of the difference information part. In FIG. 2, the difference map 90-1 is divided into four submaps R1, R2, R3, and R4.
 (B2)ストレージコントローラ20aは、各サブマップの差分ビットオンを数える。図2の差分マップ90-1において、サブマップR1における差分ビットオン(黒色のブロック)の数は「9」、サブマップR2における差分ビットオンの数は「5」、サブマップR3における差分ビットオンの数は「8」、サブマップR4における差分ビットオンの数は「7」である。 (B2) The storage controller 20a counts the differential bit-on of each submap. In the difference map 90-1 of FIG. 2, the number of difference bit on (black block) in the submap R1 is “9”, the number of difference bit on in the submap R2 is “5”, and the difference bit on in the submap R3. Is “8”, and the number of differential bit-ons in the submap R4 is “7”.
 (B3)ストレージコントローラ20aは、複数のサブマップの中から、差分データを再配置先(移動先)となるサブマップ(「再配置先サブマップ」という)を選択する。ストレージコントローラ20aは、差分ビットオンの数が多いサブマップを優先的に再配置先に選択してよい。図2の差分マップ90-1において、サブマップR1の差分ビットオンの数が最大であるので、ストレージコントローラ20aは、このサブマップR1を再配置先に選択してよい。 (B3) The storage controller 20a selects a submap (referred to as “relocation destination submap”) as a relocation destination (movement destination) from among the plurality of submaps. The storage controller 20a may preferentially select a submap having a large number of differential bit-ons as a relocation destination. In the difference map 90-1 of FIG. 2, since the number of difference bit-ons in the submap R1 is the maximum, the storage controller 20a may select this submap R1 as a relocation destination.
 (B4)ストレージコントローラ20aは、複数のサブマップの中から、差分データの再配置元(移動元)となるサブマップ(「再配置元サブマップ」という)を選択する。ストレージコントローラ20aは、差分ビットオンの数が少ないサブマップを優先的に再配置元に選択してよい。例えば、図2の差分マップ90-1において、サブマップR2の差分ビットオンの数が最少であるので、ストレージコントローラ20aは、このサブマップR2を再配置元に選択する。 (B4) The storage controller 20a selects, from among a plurality of submaps, a submap (referred to as “relocation source submap”) that is a relocation source (movement source) of difference data. The storage controller 20a may preferentially select a submap with a small number of differential bit-ons as a relocation source. For example, in the difference map 90-1 of FIG. 2, since the number of difference bit-ons in the submap R2 is the smallest, the storage controller 20a selects this submap R2 as the relocation source.
 (B5)ストレージコントローラ20aは、再配置先サブマップの差分ビットオフの中から、再配置元サブマップの差分ビットオンの交換先となる差分ビットオフを選択する。ストレージコントローラ20aは、交換先となる差分ビットオフとして、再配置先サブマップの差分ビットオフの内、VOLアドレスが最先の差分ビットオフを優先的に選択してよい。これにより、再配置先サブマップにおいて、差分ビットオンが連続的に再配置され得る。例えば、図2の差分ビットマップ90-1において、再配置元サブマップR2の差分ビットオン2002の交換先として、再配置先サブマップR1の差分ビットオフ1002が選択される。例えば、再配置元サブマップR2の差分ビットオン2004の交換先として、再配置先サブマップR1の差分ビットオフ1003が選択される。 (B5) The storage controller 20a selects, from among the differential bit-offs of the rearrangement destination submap, the differential bit-off that is the replacement destination of the differential bit-on of the rearrangement source submap. The storage controller 20a may preferentially select the differential bit off with the earliest VOL address among the differential bit offs of the relocation destination submap as the differential bit off as the replacement destination. Thereby, the difference bit-on can be continuously rearranged in the rearrangement destination submap. For example, in the difference bitmap 90-1 of FIG. 2, the difference bit off 1002 of the rearrangement destination submap R1 is selected as the replacement destination of the difference bit on 2002 of the rearrangement source submap R2. For example, the difference bit off 1003 of the rearrangement destination submap R1 is selected as the replacement destination of the difference bit on 2004 of the rearrangement source submap R2.
 (B6)ストレージコントローラ20aは、再配置元サブマップの交換元の差分ビットオンと、再配置先サブマップの交換先の差分ビットオフとを交換する(S11)。すなわち、ストレージコントローラ20aは、交換元のVOLアドレスに対応する差分データ格納済みの物理アドレスと、交換先のVOLアドレスに対応する差分データ未格納の物理アドレスとを交換する。これにより、交換元のVOLアドレスには差分データ未格納の物理アドレスが対応付けられ、交換先のVOLアドレスには差分データ格納済みの物理アドレスが対応付けられる。ここで、物理アドレスは、VOLを構成する記憶領域に対応するアドレスであってよい。例えば、物理アドレスは、VOLを構成するPDEV31上の記憶領域に対応するアドレスであってよい。例えば、物理アドレスは、VOLを構成する下位の論理的な記憶領域に対応するアドレスであってよい。以下においても、差分マップ90における差分ビットオンを再配置した場合には、その差分ビットオンの再配置に伴って差分データ格納領域102aにおける差分データも再配置されるとする。図2の差分マップ90-2は、再配置元サブマップR2の差分ビットオンを全て、再配置先サブマップR1の差分ビットオフと交換した状態である。 (B6) The storage controller 20a exchanges the difference bit-on of the replacement source submap exchange source and the exchange destination difference bit-off of the relocation destination submap (S11). That is, the storage controller 20a exchanges the physical address in which the differential data corresponding to the exchange-source VOL address is stored and the physical address in which the differential data is not stored corresponding to the exchange-destination VOL address. As a result, the physical address in which the differential data is not stored is associated with the exchange-source VOL address, and the physical address in which the differential data is stored is associated with the exchange-destination VOL address. Here, the physical address may be an address corresponding to a storage area constituting the VOL. For example, the physical address may be an address corresponding to a storage area on the PDEV 31 constituting the VOL. For example, the physical address may be an address corresponding to a lower logical storage area constituting the VOL. In the following description, when the difference bit-on in the difference map 90 is rearranged, the difference data in the difference data storage area 102a is also rearranged along with the rearrangement of the difference bit-on. The difference map 90-2 in FIG. 2 is a state in which all the difference bits on in the rearrangement source submap R2 are exchanged with the difference bits off in the rearrangement destination submap R1.
 (B7)ストレージコントローラ20aは、他のサブマップについても、上記(B4)~(B6)を実行する。図2において、ストレージコントローラ20aは、サブマップR2の次に差分ビットオンの数が少ないサブマップR4を再配置元に選択し、上記(B4)~(B6)を実行し(S12)、最後にサブマップR3を再配置元に選択し、上記(B4)~(B6)を実行する(S13)。これらの処理が完了すると、図2の差分マップ90-2は、図2の差分マップ90-3の状態となる。 (B7) The storage controller 20a executes the above (B4) to (B6) for the other submaps. In FIG. 2, the storage controller 20a selects a submap R4 with the smallest number of differential bit-on after the submap R2 as a relocation source, executes the above (B4) to (B6) (S12), and finally The submap R3 is selected as the rearrangement source, and the above (B4) to (B6) are executed (S13). When these processes are completed, the difference map 90-2 in FIG. 2 becomes the state of the difference map 90-3 in FIG.
 (B8)ストレージコントローラ20aは、再配置先サブマップの差分ビットオンに係る差分データを取得する。このとき、ストレージコントローラ20aは、再配置先サブマップにおいて、連続的に配置されている差分ビットオン、つまり連続的に格納されている差分データを、シーケンシャルアクセスのコマンドを用いて取得する。図2の差分マップ90-3において、差分ビットオン1001~1029が連続的に配置されている。そこで、ストレージコントローラ20aは、シーケンシャルアクセスのコマンドを1回発行し、差分ビットオン1001~1029に対応する連続する差分データを一度に取得する。これにより、ストレージコントローラ20aは、差分データを取得するためのコマンドの発行回数を削減することができる。 (B8) The storage controller 20a acquires the difference data relating to the difference bit-on of the rearrangement destination submap. At this time, the storage controller 20a obtains differential bit-on that is continuously arranged, that is, differential data that is continuously stored, using a sequential access command in the rearrangement destination submap. In the difference map 90-3 of FIG. 2, difference bit-on 1001 to 1029 are continuously arranged. Therefore, the storage controller 20a issues a sequential access command once, and acquires continuous differential data corresponding to differential bit-on 1001 to 1029 at a time. As a result, the storage controller 20a can reduce the number of times the command for acquiring the difference data is issued.
 (B9)ストレージコントローラ20aは、その取得した複数の差分データを、第2ストレージ装置10bに送信する。 (B9) The storage controller 20a transmits the acquired plurality of difference data to the second storage device 10b.
 (B10)ストレージコントローラ20bは、この送信された複数の差分データを第2VOL80bに格納する。これにより、第1VOL80aと第2VOL80bが再び同期状態となる。 (B10) The storage controller 20b stores the transmitted plurality of difference data in the second VOL 80b. As a result, the first VOL 80a and the second VOL 80b are synchronized again.
 上記(B1)において、ストレージコントローラ20aは、差分マップ90をどのように分割してもよい。例えばストレージコントローラ20aは、図2の差分マップ90を十字形に分割してもよい。上記(B1)において、差分マップ90-1の分割数は、差分マップ90-1の差分ビット数に基づいて決定されてよい。例えば、各サブマップに属する差分ビットが所定数となるように、分割数が決定されてよい。上記(B1)において、ストレージコントローラ20aは、各サブマップの差分ビット数ができるだけ同じになるように差分マップ90を分割してよい。上記(B3)及び(B4)における差分ビットオンの数の比較を容易にするためである。各サブマップの差分ビット数が異なる場合、ストレージコントローラ20aは、上記(B3)及び(B4)において、サブマップの差分ビットオンの数に代えて、サブマップにおける差分ビットの総数に対する差分ビットオンの数の割合を用いてもよい。例えばストレージコントローラ20aは、上記(B3)において、差分ビットオンの数の割合が大きいサブマップを優先的に再配置先に選択し、上記(B4)において、差分ビットオンの割合が小さいサブマップを優先的に再配置元に選択してよい。 In the above (B1), the storage controller 20a may divide the difference map 90 in any way. For example, the storage controller 20a may divide the difference map 90 of FIG. 2 into a cross shape. In (B1) above, the number of divisions of the difference map 90-1 may be determined based on the number of difference bits of the difference map 90-1. For example, the number of divisions may be determined so that the number of difference bits belonging to each submap is a predetermined number. In (B1) above, the storage controller 20a may divide the difference map 90 so that the number of difference bits in each submap is as equal as possible. This is to facilitate comparison of the number of differential bit-ons in (B3) and (B4). When the number of difference bits in each submap is different, the storage controller 20a replaces the number of difference bits on in the submap with the difference bit-on with respect to the total number of difference bits in the submap in (B3) and (B4). A ratio of numbers may be used. For example, in (B3), the storage controller 20a preferentially selects a submap having a large difference bit-on ratio as a relocation destination, and in (B4), selects a submap having a small difference bit-on ratio. You may preferentially select the relocation source.
 上記(B3)において、差分ビット数が多いサブマップを優先的に再配置先に選択している。これにより、より少ない再配置数で、再配置先サブマップにおける差分ビットオンの連続性を高めることができる。再配置数を少なくすることで、ストレージ装置における再配置による処理負荷も軽減することができる。 In (B3) above, a submap with a large number of differential bits is preferentially selected as a relocation destination. Thereby, the continuity of differential bit-on in the rearrangement destination submap can be increased with a smaller number of rearrangements. By reducing the number of relocations, the processing load due to relocation in the storage apparatus can be reduced.
 上記(B4)において、差分ビットオン数が少ないサブマップを優先的に再配置元に選択している。これにより、より少ない再配置数で、再配置元サブマップにおける全ての差分ビットオンを差分ビットオフにすることができる。そして、全てが差分ビットオフのサブマップは、上記(B8)において、差分ビットオンに係る差分データの検索対象から除外することができる。つまり、上記(B8)における処理時間を短縮することができる。 In (B4) above, a submap with a small number of differential bit-ons is preferentially selected as a relocation source. As a result, it is possible to set all the difference bits on in the rearrangement source submap to difference bit off with a smaller number of rearrangements. Then, the submap in which all the difference bits are off can be excluded from the search target of the difference data related to the difference bit on in the above (B8). That is, the processing time in (B8) can be shortened.
 図3は、ストレージシステム1における構成の一例を示す模式図である。 FIG. 3 is a schematic diagram showing an example of a configuration in the storage system 1.
 ストレージシステム1は、2以上のストレージ装置10a、10bで構成される。なお、ストレージ装置10aと10bは1つの装置として構成されてもよい。ストレージ装置10は、データを格納するための装置である。ストレージ装置10は、通信ネットワーク7を通じて、ホストシステム8及び管理システム9と双方向にデータを送受信できる。通信ネットワーク7は、例えば、SAN(Storage Area Network)、LAN(Local Area Network)、WAN(Wide Area Network)又はこれらの組み合わせなどであってよい。 The storage system 1 is composed of two or more storage devices 10a and 10b. The storage apparatuses 10a and 10b may be configured as one apparatus. The storage device 10 is a device for storing data. The storage apparatus 10 can send and receive data to and from the host system 8 and the management system 9 through the communication network 7. The communication network 7 may be, for example, a SAN (Storage Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), or a combination thereof.
 管理システム9は、ストレージシステム1を管理するためのシステムである。管理システム9は、1以上の管理計算機で構成されてよい。 The management system 9 is a system for managing the storage system 1. The management system 9 may be composed of one or more management computers.
 ホストシステム8は、ストレージシステム1を利用するシステムである。ホストシステム8は、1以上のホスト計算機で構成されてよい。ホスト計算機は、ライト要求をストレージ装置10へ送信して、データをストレージ装置10に格納できてよい。ホスト計算機は、リード要求をストレージ装置10へ送信して、ストレージ装置10からデータを取得できてよい。 The host system 8 is a system that uses the storage system 1. The host system 8 may be composed of one or more host computers. The host computer may be able to store the data in the storage device 10 by sending a write request to the storage device 10. The host computer may be able to acquire data from the storage apparatus 10 by sending a read request to the storage apparatus 10.
 ストレージ装置10は、1以上のストレージコントローラ20と、1以上のPDEV31を有する。PDEV31は物理的な記憶デバイスの一例である。PDEV31は、例えば、HDD、SSD又はFMパッケージなどであってよい。 The storage apparatus 10 includes one or more storage controllers 20 and one or more PDEVs 31. The PDEV 31 is an example of a physical storage device. The PDEV 31 may be, for example, an HDD, SSD, or FM package.
 FMパッケージは、FM(フラッシュメモリ)と、FMへのデータの入出力を制御するFMコントローラとを有する。FMは、1以上のFMチップで構成されている。FMチップは、複数の物理領域で構成されている。具体的には、例えば、FMチップは、NANDフラッシュであり、複数の「物理ブロック」で構成され、各物理ブロックは、複数の「物理ページ」で構成されている。物理ブロック又は物理ページが物理領域の一例である。物理ページ単位でデータがアクセス(リード及びライト)され、物理ブロック単位でデータが消去される。また、以下の説明では、ストレージコントローラ20が管理する論理空間(例えばVOLの全部又は一部)は、RAIDグループを構成する複数のFMパッケージがそれぞれ提供する複数のサブ論理空間に基づいている。1つのサブ論理空間について複数の論理領域に区切られてよい。例えば、サブ論理空間が、複数の「論理ブロック」で構成され、各論理ブロックが、複数の「論理ページ」で構成されていてもよい。論理ブロック又は論理ページが論理領域の一例でよい。論理領域は、論理アドレス範囲と言い換えられてもよい。FMコントローラは、論理アドレスと物理アドレスの対応関係を管理しており(例えば論理アドレスと物理アドレスの対応関係を表すアドレス変換情報を保持しており)、上位装置からのI/Oコマンドで指定されている論理アドレスが属する論理領域を特定し、特定した論理領域に対応する物理領域を特定し、特定した物理領域に対してI/Oを行う。論理アドレスは、例えば、LBA(Logical Block Address)であり、LBAに代えて又は加えて、論理領域ID(例えば論理ブロック番号又は論理ページ番号)等が採用されてよい。物理アドレスは、例えば、PBA(Physical Block Address)であり、PBAに代えて又は加えて、物理領域ID(例えば物理ブロック番号又は物理ページ番号)等が採用されてよい。また、以下の説明では、FMは、追記型、具体的には、物理ページ(以下、ページ)が割り当てられている論理領域がライト先の場合、ライト先論理領域に、割当て済のページに代えて新たに空きページが割り当てられ、新たに割り当てられたページにデータが書き込まれる。各論理領域について、新たに割り当てられたページに書き込まれたデータは「有効データ」であり、有効データが書き込まれているページは「有効ページ」であり、過去に割り当てられていたページに格納されているデータは「無効データ」であり、無効データが書き込まれているページは「無効ページ」である。また、有効ページでも無効ページでも無く新たにデータを格納可能な物理ページが、「空きページ」である。また、PDEV31が有する物理記憶媒体として、FMに代えて、FM以外の不揮発半導体メモリ、例えばPRAM(Phase Change Random Access Memory))、MRAM(Magnetoresistive Random Access Memory)、ReRAM(Resistance Random Access Memory)又はFeRAM(Ferroelectric Random Access Memory)が採用されてもよい。 The FM package includes an FM (flash memory) and an FM controller that controls input / output of data to / from the FM. The FM is composed of one or more FM chips. The FM chip is composed of a plurality of physical areas. Specifically, for example, the FM chip is a NAND flash, and is configured by a plurality of “physical blocks”, and each physical block is configured by a plurality of “physical pages”. A physical block or a physical page is an example of a physical area. Data is accessed (read and written) in physical page units, and data is erased in physical block units. In the following description, the logical space (for example, all or a part of the VOL) managed by the storage controller 20 is based on a plurality of sub-logical spaces provided by a plurality of FM packages constituting a RAID group. One sub logical space may be divided into a plurality of logical areas. For example, the sub logical space may be composed of a plurality of “logical blocks”, and each logical block may be composed of a plurality of “logical pages”. A logical block or logical page may be an example of a logical area. A logical area may be rephrased as a logical address range. The FM controller manages the correspondence between the logical address and the physical address (for example, holds address conversion information indicating the correspondence between the logical address and the physical address), and is specified by an I / O command from the host device. The logical area to which the specified logical address belongs is specified, the physical area corresponding to the specified logical area is specified, and I / O is performed on the specified physical area. The logical address is, for example, LBA (Logical Block Address), and a logical area ID (for example, a logical block number or a logical page number) or the like may be employed instead of or in addition to the LBA. The physical address is, for example, PBA (Physical Block Address), and a physical area ID (for example, a physical block number or a physical page number) or the like may be employed instead of or in addition to PBA. In the following description, FM is a write-once type. Specifically, when a logical area to which a physical page (hereinafter referred to as “page”) is assigned is a write destination, the FM is replaced with the assigned page. Thus, a new empty page is allocated, and data is written to the newly allocated page. For each logical area, the data written to the newly assigned page is “valid data”, the page to which valid data is written is the “valid page”, and is stored in the previously assigned page. The invalid data is “invalid data”, and the page where invalid data is written is “invalid page”. A physical page that can store new data without being a valid page or an invalid page is an “empty page”. In addition, as a physical storage medium possessed by PDEV 31, in place of FM, non-volatile semiconductor memory other than FM, for example, PRAM (Phase Change Random Access Memory), MRAM (Magnetic Resistant Random Access Memory), ReRAM Ace MemoryRec (Ferroelectric Random Access Memory) may be employed.
 ストレージコントローラ20は、PDEV31を制御して、論理的な記憶デバイスであるVOLを構成する。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。 The storage controller 20 controls the PDEV 31 to configure a VOL that is a logical storage device. The VOL may be a substantial VOL (RVOL) or a virtual VOL (VVOL).
 ストレージコントローラ20は、VOLに対するI/Oを処理する。例えば、ストレージコントローラ20は、ホストシステム8から送信されたライト要求を受信すると、その受信したライトデータをVOLに格納する。すなわち、ストレージコントローラ20は、そのVOLを構成するPDEV31にライトデータを書き込む。ストレージコントローラ20は、ホストシステム8からリード要求を受信すると、その要求されたリードデータをVOLから取得し、ホストシステム8に返す。ストレージコントローラ20における他の処理については後述する。 The storage controller 20 processes I / O for the VOL. For example, when the storage controller 20 receives a write request transmitted from the host system 8, the storage controller 20 stores the received write data in the VOL. That is, the storage controller 20 writes the write data to the PDEV 31 that constitutes the VOL. When the storage controller 20 receives a read request from the host system 8, the storage controller 20 acquires the requested read data from the VOL and returns it to the host system 8. Other processing in the storage controller 20 will be described later.
 ストレージコントローラ20は、プロセッサ21と、ローカルメモリ22と、共有メモリ23と、キャッシュメモリ24と、ホストI/F26と、ディスクI/F25と、リモートI/F27と、これらの要素間で双方向のデータ通信を可能とする内部バス28によって構成されてよい。これらの要素はそれぞれ複数であってもよい。ストレージコントローラ20における処理は、これらの要素が連携して動作することによって実現されてよい。 The storage controller 20 includes a processor 21, a local memory 22, a shared memory 23, a cache memory 24, a host I / F 26, a disk I / F 25, a remote I / F 27, and a bidirectional communication between these elements. It may be constituted by an internal bus 28 that enables data communication. There may be a plurality of these elements. The processing in the storage controller 20 may be realized by these elements operating in cooperation.
 ローカルメモリ22は、プロセッサ21から利用される様々なデータ及びプログラムなどを格納するためのメモリである。ローカルメモリ22に格納されるデータ及びプログラムの例については後述する。 The local memory 22 is a memory for storing various data and programs used by the processor 21. Examples of data and programs stored in the local memory 22 will be described later.
 共有メモリ23は、複数の要素から共有で利用されるデータなどを格納するためのメモリである。共有メモリ23に格納されるデータの例については後述する。 The shared memory 23 is a memory for storing data shared by a plurality of elements. An example of data stored in the shared memory 23 will be described later.
 キャッシュメモリ24は、一時的なデータなどを格納するためのメモリである。例えば、ストレージコントローラ20のリード要求又はライト要求に対する応答時間を短縮するために、リードデータ又はライトデータが一時的にキャッシュメモリ24に格納される。 The cache memory 24 is a memory for storing temporary data and the like. For example, the read data or the write data is temporarily stored in the cache memory 24 in order to shorten the response time of the storage controller 20 to the read request or write request.
 ホストI/F26は、ストレージコントローラ20(のプロセッサ21)が、通信ネットワーク7を通じて、ホストシステム8とデータを送受信するためのI/Fである。ホストI/F26は、例えば、SASアダプタ、LANアダプタなどである。 The host I / F 26 is an I / F for the storage controller 20 (the processor 21) to transmit / receive data to / from the host system 8 through the communication network 7. The host I / F 26 is, for example, a SAS adapter or a LAN adapter.
 ディスクI/F25は、ストレージコントローラ20(のプロセッサ21)がPDEV31とデータを送受信するためのI/Fである。ディスクI/F25は、例えば、PCIeアダプタ、SATAアダプタ、SASアダプタなどである。 The disk I / F 25 is an I / F for the storage controller 20 (the processor 21) to transmit / receive data to / from the PDEV 31. The disk I / F 25 is, for example, a PCIe adapter, a SATA adapter, a SAS adapter, or the like.
 リモートI/F27は、ストレージ装置10aとその同期対象であるストレージ装置10bとの間でデータを送受信するためのI/Fである。すなわち、ストレージ装置10aにおける差分データは、このリモートI/F27を通じて、ストレージ装置10bに送信される。リモートI/F27は、通信ネットワーク7に接続されてもよいし、ストレージ装置10bに繋がる所定の通信線又は通信網に接続されてもよい The remote I / F 27 is an I / F for transmitting and receiving data between the storage apparatus 10a and the storage apparatus 10b that is the synchronization target. That is, the difference data in the storage apparatus 10a is transmitted to the storage apparatus 10b through this remote I / F 27. The remote I / F 27 may be connected to the communication network 7 or may be connected to a predetermined communication line or communication network connected to the storage device 10b.
 ストレージコントローラ20は、I/Oプログラム41と、差分データ再配置プログラム43と、VOL同期プログラム42とを実行し得る。これらのプログラムはローカルメモリ22に格納されてよい。そして、これらのプログラムがプロセッサ21に実行されることにより、これらの処理の内容が実現されてよい。又は、これらの処理は所定の論理演算回路(例えばASIC(Application Specific Integrated Circuit))として構成されてよい。そして、これらの論理演算回路が、独立して、又は、プロセッサ21と協調して動作することにより、これらの処理の内容が実現されよい。 The storage controller 20 can execute the I / O program 41, the differential data relocation program 43, and the VOL synchronization program 42. These programs may be stored in the local memory 22. Then, the contents of these processes may be realized by executing these programs by the processor 21. Alternatively, these processes may be configured as a predetermined logic operation circuit (for example, ASIC (Application Specific Integrated Circuit)). The contents of these processes may be realized by these logical operation circuits operating independently or in cooperation with the processor 21.
 ストレージコントローラ20は、サブマップ管理テーブル52と、同期設定テーブル54と、同期時間分析テーブル56と、同期時間管理テーブル58と、稼働率閾値設定テーブル60と、採用判定設定テーブル62とを管理する。ストレージコントローラ20は、これらのテーブルの何れかのみを管理してもよい。これらのテーブルは、ローカルメモリ22に格納されてよい。又は、これらのテーブルは、共有メモリ23又はPDEV31の何れに格納されてもよい。又は、これらのテーブルは、通信ネットワーク7によって接続されている他の装置に格納されてもよい。ストレージコントローラ20は、差分マップ90を管理する。差分マップ90は、ローカルメモリ22、共有メモリ23又はPDEV31の何れに格納されてもよい。 The storage controller 20 manages a submap management table 52, a synchronization setting table 54, a synchronization time analysis table 56, a synchronization time management table 58, an operation rate threshold setting table 60, and an adoption determination setting table 62. The storage controller 20 may manage only one of these tables. These tables may be stored in the local memory 22. Alternatively, these tables may be stored in either the shared memory 23 or the PDEV 31. Alternatively, these tables may be stored in another device connected by the communication network 7. The storage controller 20 manages the difference map 90. The difference map 90 may be stored in any of the local memory 22, the shared memory 23, or the PDEV 31.
 差分データ再配置プログラム43は、差分データ格納領域の差分データを再配置するための処理である。差分データ再配置プログラム43は、差分マップ90を2以上のサブマップに分割する分割処理と、複数のサブマップの中から再配置先サブマップを選択する選択処理と、再配置元サブマップの差分ビットオンと再配置先サブマップの差分ビットオフとを交換する交換処理を含んでよい。 The difference data rearrangement program 43 is a process for rearranging difference data in the difference data storage area. The difference data rearrangement program 43 divides the difference map 90 into two or more submaps, a selection process for selecting a rearrangement destination submap from a plurality of submaps, and a difference between the rearrangement source submaps An exchange process for exchanging bit-on and differential bit-off of the rearrangement destination submap may be included.
 差分マップ90の分割数は、差分マップ90に含まれる差分ビットの総数に基づいて決定されてよい。差分マップ90は、各サブマップに含まれる差分ビットの総数ができるだけ同じになるように分割されてよい。又は差分マップ90は、各サブマップが所定の差分ビットの総数となるように分割されてよい。サブマップ同士の比較を容易にするためである。 The division number of the difference map 90 may be determined based on the total number of difference bits included in the difference map 90. The difference map 90 may be divided so that the total number of difference bits included in each submap is as equal as possible. Alternatively, the difference map 90 may be divided so that each submap has a predetermined total number of difference bits. This is to facilitate comparison between submaps.
 差分データ再配置プログラム43は、必要な場合に実行され、不要な場合には実行されなくてもよい。なぜなら、再同期処理にかけることのできる時間はストレージシステムを使用するユーザのポリシーによって様々であり、ユーザのポリシーを満たす場合にまで処理負荷のかかる差分データ再配置処理を実行する必要はないからである。例えばストレージコントローラ20は、次回のVOL同期プログラム42の実行時における差分データの数(予測数)を算出し、その差分データの予測数が所定の閾値よりも大きいか否かを判定する。そしてストレージコントローラ20は、当該判定結果が肯定的な場合には交換処理を実行し、当該判定結果が否定的な場合には交換処理を実行しなくてもよい。差分データの予測数は、過去のVOL同期プログラム42に基づいて算出されてよい。 The difference data rearrangement program 43 is executed when necessary, and may not be executed when unnecessary. This is because the time allowed for resynchronization processing varies depending on the policy of the user who uses the storage system, and it is not necessary to execute the differential data relocation processing that requires a processing load until the user policy is satisfied. is there. For example, the storage controller 20 calculates the number of difference data (predicted number) when the VOL synchronization program 42 is executed next time, and determines whether or not the predicted number of difference data is larger than a predetermined threshold. The storage controller 20 does not need to execute the replacement process when the determination result is affirmative and performs the replacement process when the determination result is negative. The predicted number of difference data may be calculated based on the past VOL synchronization program 42.
 VOL同期プログラム42は、第1VOL80aと第2VOL80bのデータを同期させるための処理である。VOL同期プログラム42は、同期状態後に第1VOL80aに新たに格納された差分データを第2VOL80bに送信する処理を含んでよい。VOL同期プログラム42は、一定の周期で実行されてよい。又は、VOL同期プログラム42は、差分データが所定量以上蓄積したときに実行されてよい。 The VOL synchronization program 42 is a process for synchronizing the data of the first VOL 80a and the second VOL 80b. The VOL synchronization program 42 may include a process of transmitting difference data newly stored in the first VOL 80a to the second VOL 80b after the synchronization state. The VOL synchronization program 42 may be executed at a constant cycle. Alternatively, the VOL synchronization program 42 may be executed when the difference data has accumulated a predetermined amount or more.
 ストレージコントローラ20は、VOL同期プログラム42を実行するにあたり、まず、第1VOL80aの差分データ格納領域から再配置後の差分データを取得する。そして、ストレージコントローラ20はその取得した差分データを、第2VOL80bを有するストレージ装置10bに送信する。送信された差分データは、ストレージ装置10bの第2VOL80bに格納(すなわち同期)される。VOL同期プログラム42には、連続的に格納されている複数の差分データをシーケンシャルアクセスのコマンドで一度に取得する処理が含まれてよい。VOL同期プログラム42には、非連続的に格納されている差分データをランダムアクセスのコマンドでそれぞれ取得する処理が含まれてよい。 In executing the VOL synchronization program 42, the storage controller 20 first acquires the relocated differential data from the differential data storage area of the first VOL 80a. Then, the storage controller 20 transmits the acquired difference data to the storage apparatus 10b having the second VOL 80b. The transmitted difference data is stored (that is, synchronized) in the second VOL 80b of the storage apparatus 10b. The VOL synchronization program 42 may include a process of acquiring a plurality of differential data stored continuously at a time using a sequential access command. The VOL synchronization program 42 may include a process of acquiring difference data stored discontinuously with a random access command.
 I/Oプログラム41は、ホストシステム8から受信したライト要求及びリード要求を制御するための処理である。I/Oプログラム41は、ホストシステム8からライト要求を受信すると、そのライトデータ(差分データ)を第1VOL80aに格納し、そのライト要求に対する応答(成功又は失敗など)をホストシステム8に送信する処理を含む。I/Oプログラム41は、ホストシステム8からリード要求を受信すると、その要求に係るデータを第1VOL80aから取得し、その取得したデータをホストシステム8に送信する処理を含む。 The I / O program 41 is a process for controlling a write request and a read request received from the host system 8. When the I / O program 41 receives a write request from the host system 8, the I / O program 41 stores the write data (difference data) in the first VOL 80 a and transmits a response (success or failure) to the write request to the host system 8. including. When the I / O program 41 receives a read request from the host system 8, the I / O program 41 includes processing for acquiring data related to the request from the first VOL 80 a and transmitting the acquired data to the host system 8.
 I/Oプログラム41は、差分データ再配置プログラム43の実行中にライト要求を受信した場合に、そのライトデータ(差分データ)を、再配置先サブマップに属する空きスロットに優先的に格納する処理を含んでよい。これにより、再配置先サブマップにおける差分ビットオンの連続性を高めることができる。また、再配置を完了した再配置元サブマップに新たに差分ビットオンが発生することを防止することができる。当該処理の詳細については後述する(図15参照)。 When the I / O program 41 receives a write request during execution of the differential data rearrangement program 43, the I / O program 41 stores the write data (differential data) preferentially in an empty slot belonging to the rearrangement destination submap. May be included. Thereby, the continuity of differential bit-on in the rearrangement destination submap can be enhanced. In addition, it is possible to prevent a difference bit-on from newly occurring in the rearrangement source submap that has been rearranged. Details of this processing will be described later (see FIG. 15).
 差分マップ90は上記で説明したとおりである。詳細については後述する(図4参照)。サブマップ管理テーブル52は、各サブマップに関する情報を管理するためのテーブルである。詳細については後述する(図5参照)。同期設定テーブル54は、VOL同期プログラム42に関する設定値が格納されるテーブルである。詳細については後述する(図6参照)。同期時間分析テーブル56は、VOL同期プログラム42にかかる時間を分析するための値が格納されるテーブルである。詳細については後述する(図7参照)。同期時間管理テーブル58は、VOL同期プログラム42にかかる時間に関する情報を管理するためのテーブルである。詳細については後述する(図8参照)。稼働率閾値設定テーブル60は、差分データ再配置プログラム43の実行要否の判定に用いられる閾値が格納されるテーブルである。詳細については後述する(図9参照)。採用判定設定テーブル62は、差分データ再配置プログラム43の実行要否に関する各判定の採用可否が格納されるテーブルである。詳細については後述する(図10参照)。 The difference map 90 is as described above. Details will be described later (see FIG. 4). The submap management table 52 is a table for managing information related to each submap. Details will be described later (see FIG. 5). The synchronization setting table 54 is a table in which setting values related to the VOL synchronization program 42 are stored. Details will be described later (see FIG. 6). The synchronization time analysis table 56 is a table in which values for analyzing the time required for the VOL synchronization program 42 are stored. Details will be described later (see FIG. 7). The synchronization time management table 58 is a table for managing information related to the time required for the VOL synchronization program 42. Details will be described later (see FIG. 8). The operating rate threshold setting table 60 is a table in which thresholds used for determining whether or not the differential data rearrangement program 43 is to be executed are stored. Details will be described later (see FIG. 9). The adoption determination setting table 62 is a table that stores whether or not each determination regarding the necessity of executing the differential data rearrangement program 43 is adopted. Details will be described later (see FIG. 10).
 図4は、差分マップ90の構成例を示す。 FIG. 4 shows a configuration example of the difference map 90.
 差分マップ90は、VOLにおけるスロットに付与されているアドレス(「VOLアドレス」という)と、そのスロットに差分データが格納されているか否かを示す差分ビットとを対応付けて管理するための情報である。差分マップ90は、フィールド値として、VOLアドレス101と、差分ビット102と、を有してよい。 The difference map 90 is information for managing an address assigned to a slot in the VOL (referred to as a “VOL address”) and a difference bit indicating whether or not difference data is stored in the slot. is there. The difference map 90 may have a VOL address 101 and a difference bit 102 as field values.
 VOLアドレス101は、VOLの差分データ格納領域に含まれるスロットに付与されているアドレスである。 The VOL address 101 is an address assigned to a slot included in the VOL difference data storage area.
 差分ビット102は、VOLアドレス101の示すスロットに差分データが格納されているか否かを示すフラグである。差分データが格納されているVOLアドレス101に対応する差分ビットは差分ビットオン(「1」)となり、差分データの格納されていないVOLアドレス10に対応する差分ビットは差分ビットオフ(「0」)となる。 The difference bit 102 is a flag indicating whether or not difference data is stored in the slot indicated by the VOL address 101. The difference bit corresponding to the VOL address 101 in which the difference data is stored is the difference bit on (“1”), and the difference bit corresponding to the VOL address 10 in which the difference data is not stored is the difference bit off (“0”). It becomes.
 次に、図4を参照しながら、差分ビットオンを連続的に再配置する交換処理の例を説明する。例えば、VOLアドレス101「0x0000~0x0030」が再配置先サブマップに属しており、VOLアドレス101「0x0270」が再配置元サブマップに属しているとする。この場合、VOLアドレス101「0x0270」の差分ビットオンと、再配置先サブマップに属する何れかの差分ビットオフとを、交換する。ここで、再配置先サブマップに属する差分ビットオフのVOLアドレス101の内、最先のVOLアドレス101は「0x0010」である。この場合、VOLアドレス101「0x0270」の差分ビットオン102と、VOLアドレス101「0x0010」の差分ビットオフ102とが、交換されてよい。すなわち、交換元のVOLアドレス101「0x0270」に対応する差分データ格納済みの物理アドレスと、交換先のVOLアドレス101「0x0010」に対応する差分データ未格納の物理アドレスとが交換されてよい。これにより、VOLアドレス101「0x0000」と「0x0010」の2つの差分ビットが連続してオンとなる。これを繰り返すことにより、再配置先サブマップにおける差分ビットオンの連続性を高めることができる。 Next, an example of an exchange process for continuously rearranging the differential bit-on will be described with reference to FIG. For example, it is assumed that the VOL address 101 “0x0000 to 0x0030” belongs to the rearrangement destination submap, and the VOL address 101 “0x0270” belongs to the rearrangement source submap. In this case, the differential bit on of the VOL address 101 “0x0270” is exchanged with any differential bit off belonging to the rearrangement destination submap. Here, among the VOL addresses 101 with difference bit off belonging to the relocation destination submap, the earliest VOL address 101 is “0x0010”. In this case, the difference bit on 102 of the VOL address 101 “0x0270” and the difference bit off 102 of the VOL address 101 “0x0010” may be exchanged. That is, the physical address in which the differential data corresponding to the exchange source VOL address 101 “0x0270” has been stored and the physical address in which the differential data not corresponding to the exchange destination VOL address 101 “0x0010” is stored may be exchanged. As a result, the two difference bits of the VOL address 101 “0x0000” and “0x0010” are successively turned on. By repeating this, the continuity of differential bit-on in the rearrangement destination submap can be enhanced.
 図5は、サブマップ管理テーブル52の構成例を示す。 FIG. 5 shows a configuration example of the submap management table 52.
 サブマップ管理テーブル52は、差分マップ90に対する分割処理によって分割された各サブマップに関する情報を管理するためのテーブルである。サブマップ管理テーブル52は、フィールド値として、サブマップID111と、VOLアドレス区間112と、差分ビットオンの数113と、差分ビットの総数114と、差分ビットオンの割合115と、順位116と、差分ビットオンの最後尾117とを有してよい。 The submap management table 52 is a table for managing information on each submap divided by the division processing on the difference map 90. The submap management table 52 includes, as field values, a submap ID 111, a VOL address section 112, a differential bit-on number 113, a total number of differential bits 114, a differential bit-on ratio 115, a rank 116, and a difference And a bit-on tail 117.
 サブマップID111は、サブマップを識別するための値である。サブマップID111は、差分マップ90のIDであってもよい。例えば図5におけるサブマップID111「R」は差分マップ90のIDであり、サブマップID111「R1」~「R4」は、差分マップ90「R」から分割されたサブマップのIDであってよい。 The submap ID 111 is a value for identifying the submap. The submap ID 111 may be the ID of the difference map 90. For example, the submap ID 111 “R” in FIG. 5 may be an ID of the difference map 90, and the submap IDs 111 “R1” to “R4” may be IDs of submaps divided from the difference map 90 “R”.
 VOLアドレス区間112は、サブマップID111のサブマップに属するVOLアドレスの区間である。 The VOL address section 112 is a section of a VOL address belonging to the submap of the submap ID 111.
 差分ビットオンの数113は、サブマップID111のサブマップに属する差分ビットオンの数(すなわち、差分データの数)である。 The difference bit-on number 113 is the number of difference bit-ons belonging to the submap of the submap ID 111 (that is, the number of difference data).
 差分ビットの総数114は、サブマップID111のサブマップに属する差分ビットの総数(すなわちスロットの総数)である。 The total number of difference bits 114 is the total number of difference bits belonging to the submap of the submap ID 111 (that is, the total number of slots).
 差分ビットオンの割合115は、サブマップID111のサブマップにおける差分ビットの総数114に対する差分ビットオンの数113の割合である。 The difference bit-on ratio 115 is the ratio of the difference bit-on number 113 to the total number 114 of difference bits in the submap of the submap ID 111.
 順位116は、サブマップID111のサブマップにおける差分ビットオンの割合115が、同一の差分マップ90から分割された全てのサブマップの中で何番目に大きいかを示す値である。 The rank 116 is a value indicating the largest difference bit-on ratio 115 in the submap of the submap ID 111 among all the submaps divided from the same difference map 90.
 差分ビットオンの最後尾117は、サブマップID111のサブマップにおいて、VOLアドレスの最後尾の差分ビットオンに関する情報である。サブマップID111のサブマップに差分ビットオンが存在しない場合、差分ビットオンの最後尾117は「0」であってよい。サブマップID111のサブマップにおいて、最後尾の差分ビットオンのVOLアドレスが不明の場合、差分ビットオンの最後尾117は「-1」であってよい。サブマップID111のサブマップにおいて、最後尾の差分ビットオンのVOLアドレスが判明している場合、差分ビットオンの最後尾117はその判明しているVOLアドレスであってよい。 The last bit 117 of differential bit on is information regarding the differential bit on at the end of the VOL address in the submap of the submap ID 111. When there is no difference bit on in the submap of the submap ID 111, the last bit 117 of the difference bit on may be “0”. In the submap of the submap ID 111, when the VOL address of the last differential bit on is unknown, the last 117 of the differential bit on may be “−1”. In the submap of the submap ID 111, when the VOL address of the last differential bit on is known, the last 117 of the differential bit on may be the known VOL address.
 図6は、同期設定テーブル54の構成例を示す。 FIG. 6 shows a configuration example of the synchronization setting table 54.
 同期設定テーブル54は、VOL同期プログラム42に関する設定値が格納されるテーブルである。同期設定テーブル54は、フィールド値として、ペアID121と、上限時間122と、前回の再同期時間123と、安全係数124と、次回の再配置要否125とを有してよい。 The synchronization setting table 54 is a table in which setting values related to the VOL synchronization program 42 are stored. The synchronization setting table 54 may include, as field values, a pair ID 121, an upper limit time 122, a previous resynchronization time 123, a safety factor 124, and a next relocation necessity 125.
 ペアID121は、同期対象(バックアップ対象)のVOLのペアを識別するための値である。ペアID121は、例えば同期対象の2つのVOLのIDの組み合わせであってよい。 The pair ID 121 is a value for identifying a VOL pair to be synchronized (backup target). The pair ID 121 may be, for example, a combination of two VOL IDs to be synchronized.
 上限時間122は、ペアID121のVOL間において、VOL同期プログラム42にかけることのできる時間の上限を示す値である。上限時間122は、ユーザが設定してもよいし、ストレージコントローラ20が自動的に設定してもよい。 The upper limit time 122 is a value indicating the upper limit of the time that can be applied to the VOL synchronization program 42 between the VOLs of the pair ID 121. The upper limit time 122 may be set by the user, or may be automatically set by the storage controller 20.
 前回の再同期時間123は、ペアID121のVOL間において、前回のVOL同期プログラム42にかかった時間である。 The previous resynchronization time 123 is the time taken by the previous VOL synchronization program 42 between the VOLs of the pair ID 121.
 安全係数124は、上限時間122に対してどのくらいの余裕を持たせるかを示す値である。例えば図6のペアID121「第1VOL:第2VOL」の上限時間122は「200分」、安全係数124は「10%」である。この場合、第1VOL80aと第2VOL80bとの間におけるVOL同期プログラム42は、「200分×(100%-10%)=180分」以内に完了することが望ましい。安全係数124は、ユーザが設定してもよいし、ストレージコントローラ20が自動的に設定してもよい。 The safety factor 124 is a value indicating how much margin is provided for the upper limit time 122. For example, the upper limit time 122 of the pair ID 121 “first VOL: second VOL” in FIG. 6 is “200 minutes”, and the safety factor 124 is “10%”. In this case, the VOL synchronization program 42 between the first VOL 80a and the second VOL 80b is desirably completed within “200 minutes × (100% −10%) = 180 minutes”. The safety factor 124 may be set by the user or automatically set by the storage controller 20.
 次回の再配置要否125は、ペアID121のVOL間における次回のVOL同期プログラム42の前に、差分データ再配置プログラム43を実行する必要かあるか否かを示す情報である。差分データ再配置プログラム43が必要な場合、次回の再配置要否125は「必要」、差分データ再配置プログラム43が不要な場合、次回の再配置要否125は「不要」であってよい。次回の再配置要否125は、上限時間122と、安全係数124と、前回の再同期時間123とに基づいて、ストレージコントローラ20が自動的に決定してよい。例えば、ストレージコントローラ20は、次回のVOL同期プログラム42にかかる予測時間が上限時間122に安全係数124を考慮した時間よりも長いならば、次回の再配置要否125を「必要」と判定し、そうでないならば、次回の再配置要否125を「不要」と判定してよい。差分データ再配置プログラム43を実行することにより、VOL同期プログラム42にかかる時間が短縮し得るからである。 The next relocation necessity 125 is information indicating whether or not the differential data relocation program 43 needs to be executed before the next VOL synchronization program 42 between the VOLs of the pair ID 121. When the difference data relocation program 43 is necessary, the next relocation necessity 125 may be “necessary”, and when the difference data relocation program 43 is not necessary, the next relocation necessity 125 may be “unnecessary”. The next relocation necessity 125 may be automatically determined by the storage controller 20 based on the upper limit time 122, the safety factor 124, and the previous resynchronization time 123. For example, if the predicted time required for the next VOL synchronization program 42 is longer than the time considering the safety factor 124 in the upper limit time 122, the storage controller 20 determines that the next relocation necessity 125 is “necessary”, If not, the next relocation necessity 125 may be determined as “unnecessary”. This is because the time required for the VOL synchronization program 42 can be shortened by executing the differential data relocation program 43.
 ストレージコントローラ20は、ペアID121毎に上限時間122及び安全係数124を入力できるGUI(Graphical User Interface)を生成してもよい。このGUIには、入力された上限時間122及び安全係数124に連動して次回の再配置要否125の結果が表示されてもよい。このGUIは、ユーザが使用しているホストシステム8の表示装置に出力されてよい。 The storage controller 20 may generate a GUI (Graphical User Interface) that can input the upper limit time 122 and the safety factor 124 for each pair ID 121. In this GUI, a result of whether or not the next rearrangement is necessary may be displayed in conjunction with the input upper limit time 122 and safety factor 124. This GUI may be output to the display device of the host system 8 used by the user.
 図7は、同期時間分析テーブル56の構成例を示す。 FIG. 7 shows a configuration example of the synchronization time analysis table 56.
 同期時間分析テーブル56は、VOL同期プログラム42かかる時間を分析するための値が格納されるテーブルである。同期時間分析テーブル56には、過去のVOL同期プログラム42における実測値を含むレコードと、今後のVOL同期プログラム42における予測値を含むレコードの両方が格納されてよい。同期時間分析テーブル56は、フィールド値として、同期ID131と、Q到達時間132と、差分ビットオンの数133と、差分ビットオンの増加率134と、再同期にかかる時間135とを有してよい。 The synchronization time analysis table 56 is a table in which values for analyzing the time required for the VOL synchronization program 42 are stored. The synchronization time analysis table 56 may store both records including actual measured values in the past VOL synchronization program 42 and records including predicted values in the future VOL synchronization program 42. The synchronization time analysis table 56 may have, as field values, a synchronization ID 131, a Q arrival time 132, a difference bit-on number 133, a difference bit-on increase rate 134, and a time 135 required for resynchronization. .
 同期ID131は、レコードが何れのVOL同期プログラム42に関するものであるかを識別するための情報である。同期ID131は、そのレコードが実測値又は予測値の何れのものであるかを識別する情報を含んでよい。例えば図7の同期ID131「1(実測)」は、そのレコードが、実行済みである1回目のVOL同期プログラム42における実測値を含むことを示す。同期ID131「2(予測)」は、そのレコードが、実行予定である2回目のVOL同期プログラム42における予測値を含むことを示す。同期ID131は、VOL同期プログラム42が実行された時刻又は実行される予定の時刻であってよい。 The synchronization ID 131 is information for identifying which VOL synchronization program 42 the record relates to. The synchronization ID 131 may include information for identifying whether the record is an actual measurement value or a predicted value. For example, the synchronization ID 131 “1 (actual measurement)” in FIG. 7 indicates that the record includes an actual measurement value in the first VOL synchronization program 42 that has been executed. The synchronization ID 131 “2 (prediction)” indicates that the record includes a predicted value in the second VOL synchronization program 42 scheduled to be executed. The synchronization ID 131 may be the time when the VOL synchronization program 42 is executed or the time when it is scheduled to be executed.
 Q到達時間132は、同期ID131のVOL同期プログラム42において、差分ビットオン133の数が閾値Qに到達するまでにかかった実際の時間である。Q到達時間132は、実測及び予測の何れのレコードにおいても実測値であってよい。 The Q arrival time 132 is an actual time taken until the number of differential bit-on 133 reaches the threshold value Q in the VOL synchronization program 42 of the synchronization ID 131. The Q arrival time 132 may be an actual measurement value in any record of actual measurement and prediction.
 実測に係る差分ビットオンの数133は、同期ID131のVOL同期プログラム42が実行されたときの実際の差分ビットオンの数である。予測に係る差分ビットオンの数133は、同期IDのVOL同期プログラム42が実行されるときに予測される差分ビットオンの数である。 The difference bit-on number 133 related to actual measurement is the actual number of difference bit-ons when the VOL synchronization program 42 of the synchronization ID 131 is executed. The difference bit-on number 133 related to the prediction is the number of difference bit-on predicted when the VOL synchronization program 42 of the synchronization ID is executed.
 実測に係る差分ビットオンの増加率134は、同期ID131のVOL同期プログラム42が実際に実行されたときまでの間における、単位時間当たりの差分ビットオンの数の増加の割合を示す値である。予測に係る差分ビットオンの増加率134は、同期ID131のVOL同期プログラム42が実行されるときまでの間において予測される、単位時間当たりの差分ビットオンの数の増加の割合を示す値である。 The difference bit-on increase rate 134 related to the actual measurement is a value indicating a rate of increase in the number of differential bit-on per unit time until the VOL synchronization program 42 with the synchronization ID 131 is actually executed. The difference bit-on increase rate 134 relating to the prediction is a value indicating a rate of increase in the number of difference bit-on per unit time predicted until the time when the VOL synchronization program 42 of the synchronization ID 131 is executed. .
 実測に係る再同期にかかる時間135は、同期ID131のVOL同期プログラム42の開始から完了までに実際にかかった時間である。予測に係る再同期にかかる時間135は、同期ID131のVOL同期プログラム42の開始から完了までにかかると予測される時間である。 The time 135 required for the resynchronization related to the actual measurement is the time actually taken from the start to the completion of the VOL synchronization program 42 with the synchronization ID 131. The time 135 required for the resynchronization related to the prediction is a time estimated to be taken from the start to the completion of the VOL synchronization program 42 of the synchronization ID 131.
 例えば図7に示すように、同期ID131「1(実測)」のVOL同期プログラム42(前回の周期におけるVOL同期プログラム42)において、Q到達時間132が「tp(分)」、差分ビットオンの数133が「Np(個)」、差分ビットオンの増加率134が「np(個/分)」、再同期にかかる時間135が「Tp(分)」であったとする。そして、同期ID131「2(予測)」のVOL同期プログラム42(今回の周期におけるVOL同期プログラム42)において、Q到達時間132が「tc(分)」であったとする。この場合、同期ID131「2」の予測に係る差分ビットオンの数133「Nc」は、「Nc=(tp/tc)×Np」として算出されてよい。また、同期ID131「2」の予測に係る差分ビットオンの増加率134「nc」は、「nc=(tp/tc)×np」として算出されてよい。また、同期ID131「2」の予測に係る再同期にかかる時間135「Tc」は、「Tc=(tp/tc)×Tp」として算出されてよい。 For example, as shown in FIG. 7, in the VOL synchronization program 42 (VOL synchronization program 42 in the previous cycle) with the synchronization ID 131 “1 (actual measurement)”, the Q arrival time 132 is “tp (minutes)”, and the number of differential bit on Assume that 133 is “Np (pieces)”, the differential bit-on increase rate 134 is “np (pieces / minute)”, and the time 135 required for resynchronization is “Tp (minutes)”. Then, it is assumed that the Q arrival time 132 is “tc (minutes)” in the VOL synchronization program 42 (VOL synchronization program 42 in the current cycle) with the synchronization ID 131 “2 (prediction)”. In this case, the difference bit-on number 133 “Nc” related to the prediction of the synchronization ID 131 “2” may be calculated as “Nc = (tp / tc) × Np”. Also, the differential bit-on increase rate 134 “nc” related to the prediction of the synchronization ID 131 “2” may be calculated as “nc = (tp / tc) × np”. Further, the time 135 “Tc” required for resynchronization related to the prediction of the synchronization ID 131 “2” may be calculated as “Tc = (tp / tc) × Tp”.
 図8は、同期時間管理テーブル58の構成例を示す。 FIG. 8 shows a configuration example of the synchronization time management table 58.
 同期時間管理テーブル58は、VOL同期プログラム42にかかる時間に関する情報を管理するためのテーブルである。同期時間管理テーブル58は、フィールド値として、ペアID141と、上限時間142と、安全係数143と、許容時間144と、予測時間145と、予測超過時間146と、実測シーケンシャル比率147と、目標シーケンシャル比率148とを有してよい。ペアID141、上限時間142、及び、安全係数143は、上記で説明したとおりである(図6参照)。 The synchronization time management table 58 is a table for managing information related to the time required for the VOL synchronization program 42. The synchronization time management table 58 includes, as field values, a pair ID 141, an upper limit time 142, a safety factor 143, an allowable time 144, a predicted time 145, a predicted excess time 146, a measured sequential ratio 147, and a target sequential ratio. 148. The pair ID 141, the upper limit time 142, and the safety factor 143 are as described above (see FIG. 6).
 許容時間144は、ペアID141のVOL間におけるVOL同期プログラム42に許容される時間である。許容時間144は、上限時間142と安全係数143に基づいて、ストレージコントローラ20によって自動的に算出されてよい。例えば、上限時間142「400分」、安全係数143「20%」の場合、許容時間144は「400分×(100%-20%)=320分」と算出されてよい。 Allowable time 144 is a time allowed for the VOL synchronization program 42 between the VOLs of the pair ID 141. The allowable time 144 may be automatically calculated by the storage controller 20 based on the upper limit time 142 and the safety factor 143. For example, when the upper limit time 142 is “400 minutes” and the safety factor 143 is “20%”, the allowable time 144 may be calculated as “400 minutes × (100% −20%) = 320 minutes”.
 予測時間145は、ペアID141のVOL間におけるVOL同期プログラム42の開始から完了までにかかると予測される時間である。ストレージコントローラ20は、過去のVOL同期プログラム42にかかった時間(実測値)に基づいて、この予測時間145を自動的に算出してよい。 The predicted time 145 is a time predicted from the start to the completion of the VOL synchronization program 42 between the VOLs of the pair ID 141. The storage controller 20 may automatically calculate the predicted time 145 based on the time (actually measured value) required for the past VOL synchronization program 42.
 予測超過時間146は、ペアID141のVOL間において、予測時間145が許容時間144をどのくらい超過するかを示す予測値である。例えば、予測時間145「350分」、許容時間144「320分」の場合、予測超過時間146は「350分-320分=30分」と算出されてよい。 The predicted excess time 146 is a predicted value indicating how much the predicted time 145 exceeds the allowable time 144 between the VOLs of the pair ID 141. For example, in the case of the predicted time 145 “350 minutes” and the allowable time 144 “320 minutes”, the predicted excess time 146 may be calculated as “350 minutes−320 minutes = 30 minutes”.
 シーケンシャル比率は、差分マップ90において、連続性を有する差分ビットオンの数と、連続性を有さない(ランダムな)差分ビットオンの数の総和に対する連続性を有する差分ビットオンの数の割合を示す値であってよい。連続性を有する差分ビットオンであるか否かは、例えば、差分ビットオンが所定数以上連続しているか否かに基づいて判定されてよい。 The sequential ratio is the ratio of the number of differential bit-ons having continuity to the sum of the number of differential bit-ons having continuity and the number of differential bit-ons having no continuity (random) in the difference map 90. It may be the value shown. Whether or not the difference bit-on has continuity may be determined based on, for example, whether or not the difference bit-on continues for a predetermined number or more.
 実測シーケンシャル比率147は、ペアID141の同期元VOLにおいて或る時点(例えば現時点)に実測されたシーケンシャル比率である。 The measured sequential ratio 147 is a sequential ratio measured at a certain time (for example, the current time) in the synchronization source VOL of the pair ID 141.
 目標シーケンシャル比率148は、ペアID141の同期元VOLが目標とするシーケンシャル比率である。目標シーケンシャル比率148は、VOL同期プログラム42を許容時間144内に完了するために必要なシーケンシャル比率であってよい。すなわち、VOL同期プログラム42を許容時間144内に完了するためには、実測シーケンシャル比率147が目標シーケンシャル比率148以上になるまで差分データ再配置プログラム43を実行すればよい。 The target sequential ratio 148 is a sequential ratio targeted by the synchronization source VOL of the pair ID 141. The target sequential ratio 148 may be a sequential ratio necessary for completing the VOL synchronization program 42 within the allowable time 144. That is, in order to complete the VOL synchronization program 42 within the allowable time 144, the differential data relocation program 43 may be executed until the measured sequential ratio 147 becomes equal to or greater than the target sequential ratio 148.
 図9は、稼働率閾値設定テーブル60の構成例を示す。 FIG. 9 shows a configuration example of the operation rate threshold value setting table 60.
 稼働率閾値設定テーブル60は、差分データ再配置プログラム43の実行要否の判定に用いられるリソース稼働率の閾値が格納されるテーブルである。稼働率閾値設定テーブル60は、フィールド値として、リソースID151と、稼働率閾値152とを有してよい。 The operating rate threshold value setting table 60 is a table in which threshold values of resource operating rates used for determining whether or not the differential data rearrangement program 43 is to be executed are stored. The operating rate threshold setting table 60 may have a resource ID 151 and an operating rate threshold 152 as field values.
 リソースID151は、ストレージ装置10におけるリソースを識別するための情報である。リソースは、例えば、プロセッサリソース、メモリリソース、又は、ネットワークリソースなどであってよい。 The resource ID 151 is information for identifying a resource in the storage apparatus 10. The resource may be, for example, a processor resource, a memory resource, or a network resource.
 稼働率閾値152は、リソースID151のリソースの稼働率に対する閾値を示す。 The operation rate threshold 152 indicates a threshold for the operation rate of the resource with the resource ID 151.
 例えば、ストレージコントローラ20は、リソースID151のリソースの稼働率がそのリソースID151に対応する稼働率閾値152を超える場合、そのリソースID151のリソースの稼働率がそのリソースID151に対応する稼働率閾値152以下となるまで、差分データ再配置プログラム43の実行を一時中止する。なぜなら、稼働率が高いときに差分データ再配置プログラム43を実行すると、更に稼働率が高くなり、他の処理の性能(例えばI/Oプログラム41の性能)が低下し得るからである。 For example, when the operation rate of the resource with the resource ID 151 exceeds the operation rate threshold value 152 corresponding to the resource ID 151, the storage controller 20 determines that the resource operation rate with the resource ID 151 is equal to or less than the operation rate threshold value 152 corresponding to the resource ID 151. Until that time, the execution of the differential data rearrangement program 43 is temporarily stopped. This is because if the differential data relocation program 43 is executed when the operation rate is high, the operation rate is further increased, and the performance of other processes (for example, the performance of the I / O program 41) can be reduced.
 ストレージコントローラ20は、リソースID151毎に稼働率閾値152を入力できるGUIを生成してもよい。このGUIは、ユーザが利用しているホストシステム8の表示装置に出力されてよい。 The storage controller 20 may generate a GUI that can input the operation rate threshold 152 for each resource ID 151. This GUI may be output to the display device of the host system 8 used by the user.
 図10は、採用判定設定テーブル62の構成例を示す。 FIG. 10 shows a configuration example of the adoption determination setting table 62.
 採用判定設定テーブル62は、差分データ再配置プログラム43の実行要否に関する各判定の採用可否が格納されるテーブルである。採用判定設定テーブル62は、フィールド値として、判定内容161と、採用可否162とを有してよい。 The adoption determination setting table 62 is a table that stores whether or not each determination regarding the necessity of executing the differential data rearrangement program 43 is adopted. The adoption determination setting table 62 may have a determination content 161 and adoption approval / disapproval 162 as field values.
 判定内容161は、差分データ再配置プログラム43の実行可否に関する判定の内容を示す情報である。 The determination content 161 is information indicating the content of determination regarding whether or not the differential data relocation program 43 can be executed.
 採用可否162は、判定内容の判定を採用するか否かを示す情報である。採用可否161は、ユーザが設定してもよいし、ストレージコントローラ20が自動的に設定してもよい。 Adoptability 162 is information indicating whether or not to adopt the determination content. The adoption availability 161 may be set by the user, or may be automatically set by the storage controller 20.
 図11は、差分データ再配置プログラム43の処理の一例を示すフローチャートである。 FIG. 11 is a flowchart showing an example of processing of the difference data relocation program 43.
 ストレージコントローラ20は、差分データ再配置プログラム43を実行する必要があるか否かを判定する要否判定処理を実行する(S101)。要否判定処理の詳細については後述する(図12参照)。 The storage controller 20 executes necessity determination processing for determining whether or not it is necessary to execute the differential data relocation program 43 (S101). Details of the necessity determination process will be described later (see FIG. 12).
 ストレージコントローラ20は、差分データ再配置プログラム43を実行する必要が無いと判定した場合(S101:再配置不要)、本処理を終了する。ストレージコントローラ20は、差分データ再配置プログラム43を実行する必要があると判定した場合(S101:再配置必要)、次のS102の処理に進む。 If the storage controller 20 determines that it is not necessary to execute the differential data rearrangement program 43 (S101: rearrangement is not necessary), the process ends. If the storage controller 20 determines that it is necessary to execute the differential data relocation program 43 (S101: relocation required), the storage controller 20 proceeds to the next processing of S102.
 ストレージコントローラ20は、差分マップ90の分割処理を実行する(S102)。差分マップ90の分割処理の詳細については後述する。 The storage controller 20 executes the dividing process of the difference map 90 (S102). Details of the dividing process of the difference map 90 will be described later.
 ストレージコントローラ20は、差分マップ90の分割処理(S102)によって分割されたサブマップに関する処理を実行する(S103)。サブマップに関する処理の詳細については後述する(図13参照)。 The storage controller 20 executes processing related to the submap divided by the division processing (S102) of the difference map 90 (S103). Details of processing related to the submap will be described later (see FIG. 13).
 ここで、ストレージコントローラ20は、差分データの再配置が完了したと判定した場合(S103:再配置完了)、本処理を終了する。ストレージコントローラ20は、差分データの再配置が未完了と判定した場合(S103:再配置未完了)、次のS104の処理へ進んでよい。 Here, if the storage controller 20 determines that the rearrangement of the difference data has been completed (S103: rearrangement complete), the present processing is terminated. When the storage controller 20 determines that the relocation of the difference data is incomplete (S103: relocation incomplete), the storage controller 20 may proceed to the next processing of S104.
 ストレージコントローラ20は、差分ビットの交換処理を行う(S104)。交換処理の詳細については後述する。 The storage controller 20 performs differential bit exchange processing (S104). Details of the exchange process will be described later.
 ストレージコントローラ20は、後処理を実行する(S105)。後処理の詳細については後述する。そして、ストレージコントローラ20は、S103の処理に戻る。 Storage controller 20 executes post-processing (S105). Details of the post-processing will be described later. Then, the storage controller 20 returns to the process of S103.
 図12は、要否判定処理(S101)の詳細を示すフローチャートである。 FIG. 12 is a flowchart showing details of the necessity determination process (S101).
 ストレージコントローラ20は、差分マップ90を新規に作成し、初期化(例えば差分ビットを全てオフに)する(S201)。 The storage controller 20 newly creates the difference map 90 and initializes it (for example, turns off all the difference bits) (S201).
 ストレージコントローラ20は、差分マップ90において、差分ビットオンの数が閾値Q以上となるまでのQ到達時間132「tc」の計測を開始する(S202)。 The storage controller 20 starts measuring the Q arrival time 132 “tc” until the number of differential bit-ons becomes equal to or greater than the threshold Q in the difference map 90 (S202).
 ストレージコントローラ20は、同期元のVOLに対するライトコマンドを受信した場合(S210:YES)、差分マップ更新処理を実行し(S211)、そうでない場合(S210:NO)、S210の処理に戻る。差分マップ更新処理の詳細については後述する(図14参照)。 When the storage controller 20 receives a write command for the synchronization source VOL (S210: YES), the storage controller 20 executes a difference map update process (S211). Otherwise (S210: NO), the process returns to the process of S210. Details of the difference map update processing will be described later (see FIG. 14).
 ストレージコントローラ20は、差分マップ90における差分ビットオンの数が閾値Q以上であるか否かを判定し(S220)、その判定結果が否定的な場合(S220:NO)、S210の処理に戻る。 The storage controller 20 determines whether or not the number of difference bit-ons in the difference map 90 is equal to or greater than the threshold value Q (S220). If the determination result is negative (S220: NO), the process returns to S210.
 その判定結果が肯定的な場合(S220:YES)、ストレージコントローラ20は、Q到達時間「tc」の計測を終了し、その計測した時間「tc」を同期時間分析テーブル56に格納する(S221)。 If the determination result is affirmative (S220: YES), the storage controller 20 ends the measurement of the Q arrival time “tc” and stores the measured time “tc” in the synchronization time analysis table 56 (S221). .
 ストレージコントローラ20は、予測に係る差分ビットオンの数133「Nc」を算出する(S222)。例えば、ストレージコントローラ20は「Nc=(tp/tc)×Np」を算出する。 The storage controller 20 calculates the number of differential bit-on 133 “Nc” related to the prediction (S222). For example, the storage controller 20 calculates “Nc = (tp / tc) × Np”.
 ストレージコントローラ20は、予測に係る再同期にかかる時間135「Tc」を算出する(S223)。例えば、ストレージコントローラ20は「Tc=(tp/tc)×Tp」を算出する。 The storage controller 20 calculates the time 135 “Tc” required for the resynchronization related to the prediction (S223). For example, the storage controller 20 calculates “Tc = (tp / tc) × Tp”.
 ストレージコントローラ20は、予測に係る再同期にかかる時間135「Tc」が許容時間144を超えているか否か判定する(S230)。 The storage controller 20 determines whether or not the time 135 “Tc” required for the resynchronization related to the prediction exceeds the allowable time 144 (S230).
 S230の判定結果が肯定的な場合(S230:YES)、ストレージコントローラ20は、差分データの再配置が必要と判定する(S231)。この場合、図12のS102以降の処理が実行される。 If the determination result of S230 is affirmative (S230: YES), the storage controller 20 determines that rearrangement of difference data is necessary (S231). In this case, the processing after S102 in FIG. 12 is executed.
 S230の判定結果が否定的な場合(S230:NO)、ストレージコントローラ20は、差分データの再配置が不要と判定する(S232)。この場合、図12のS102以降の処理は実行されない。 If the determination result in S230 is negative (S230: NO), the storage controller 20 determines that the relocation of the difference data is not necessary (S232). In this case, the processes after S102 in FIG. 12 are not executed.
 次に、差分マップ90の分割処理(S102)の詳細を説明する。 Next, details of the dividing process (S102) of the difference map 90 will be described.
 ストレージコントローラ20は、差分マップ90における予測に係る差分ビットオンの数133「Nc」に基づいて、差分マップ90の分割数を決定する(S301)。 The storage controller 20 determines the division number of the difference map 90 based on the difference bit-on number 133 “Nc” related to the prediction in the difference map 90 (S301).
 ストレージコントローラ20は、その決定した分割数で差分マップ90を分割し、複数のサブマップを生成する(S302)。ストレージコントローラ20は、それぞれのサブマップにおけるサブマップID111、VOLアドレス区間112、及び、差分ビットの総数114を、サブマップ管理テーブル52に格納する。 The storage controller 20 divides the difference map 90 by the determined number of divisions and generates a plurality of submaps (S302). The storage controller 20 stores the submap ID 111, the VOL address section 112, and the total number of difference bits 114 in each submap in the submap management table 52.
 ストレージコントローラ20は、それぞれのサブマップにおける差分ビットオンの数113を、サブマップ管理テーブル52に格納する(S303)。 The storage controller 20 stores the difference bit-on number 113 in each submap in the submap management table 52 (S303).
 ストレージコントローラ20は、複数のサブマップの中から差分ビットオンの数113が最も多いサブマップを、再配置先サブマップに選択する(S304)。ストレージコントローラ20は、それぞれのサブマップの差分ビットオンの数113に基づいて、差分ビットオンの割合115、及び、順位116などを算出し、サブマップ管理テーブル52に格納する。 The storage controller 20 selects a submap having the largest number of differential bit-ons 113 from among a plurality of submaps as a relocation destination submap (S304). The storage controller 20 calculates the difference bit-on ratio 115 and the rank 116 based on the difference bit-on number 113 of each submap, and stores it in the submap management table 52.
 図13は、サブマップに関する処理(S103)の詳細を示すフローチャートである。 FIG. 13 is a flowchart showing details of the process (S103) related to the submap.
 ストレージコントローラ20は、本処理において未選択のサブマップが存在するか否かを判定する(S401)。未選択のサブマップが存在しない場合(S401:NO)、ストレージコントローラ20は、「再配置完了」と判定し(S412)、図11に示す処理に戻る(RETURN)。この場合、図11に示すサブマップに関する処理(S103)の判定結果が「再配置完了」となり、差分データ再配置プログラム43が終了する。 The storage controller 20 determines whether or not an unselected submap exists in this process (S401). If there is no unselected submap (S401: NO), the storage controller 20 determines “relocation complete” (S412), and returns to the processing shown in FIG. 11 (RETURN). In this case, the determination result of the process related to the submap shown in FIG. 11 (S103) is “relocation complete”, and the differential data relocation program 43 ends.
 未選択のサブマップが存在する場合(S401:YES)、ストレージコントローラ20は、未選択のサブマップの中から、差分ビットオンの数113の最も少ないサブマップを再配置元サブマップに選択する(S402)。 When there is an unselected submap (S401: YES), the storage controller 20 selects, from among the unselected submaps, the submap having the smallest difference bit-on number 113 as the relocation source submap ( S402).
 ストレージコントローラ20は、再配置元サブマップが再配置処理の対象であるか否かを判定する(S403)。例えば、サブマップ管理テーブル52において再配置元サブマップに係る差分ビットオンの最後尾117が「0」の場合(差分ビットオンが存在しない場合)、又は、再配置元サブマップと再配置先サブマップが同一の場合、ストレージコントローラ20は、S403の判定結果を否定的としてよい。S403の判定結果が否定的な場合(S403:NO)、ストレージコントローラ20は、S401の処理に戻る。S403の判定結果が肯定的な場合(S403:YES)、ストレージコントローラ20は次のS410の処理に進む。 The storage controller 20 determines whether or not the rearrangement source submap is the target of the rearrangement process (S403). For example, in the submap management table 52, when the last bit 117 of the difference bit on related to the rearrangement source submap is “0” (when there is no difference bit on), or the rearrangement source submap and the rearrangement destination sub When the maps are the same, the storage controller 20 may make the determination result in S403 negative. When the determination result of S403 is negative (S403: NO), the storage controller 20 returns to the process of S401. If the determination result of S403 is positive (S403: YES), the storage controller 20 proceeds to the next process of S410.
 ストレージコントローラ20は、差分マップ90の直近の実測シーケンシャル比率147が、目標シーケンシャル比率148以上であるか否かを判定する(S410)。S410の判定結果が肯定的な場合(S410:YES)、ストレージコントローラ20は「再配置完了」と判定し(S410)、図11に示す処理に戻る(RETURN)。これ以上差分データの再配置をせずとも、現状の差分マップ90のままで、VOL同期プログラム42が許容時間144以内に完了し得るからである。この場合、図12に示すサブマップに関する処理の判定結果が「再配置完了」となり、差分データ再配置プログラム43が終了する。S410の条件が満たされた時点で再配置を完了としているのは、再配置処理にはそれなりに処理負荷がかかるからである。また、差分ビットオン数が多いサブマップを優先的に再配置先に選択することにより、より少ない再配置数でシーケンシャル比率を高めることができる。 The storage controller 20 determines whether or not the latest measured sequential ratio 147 of the difference map 90 is equal to or greater than the target sequential ratio 148 (S410). If the determination result in S410 is affirmative (S410: YES), the storage controller 20 determines “relocation complete” (S410), and returns to the processing shown in FIG. 11 (RETURN). This is because the VOL synchronization program 42 can be completed within the allowable time 144 with the current difference map 90 maintained without further rearranging the difference data. In this case, the determination result of the processing relating to the submap shown in FIG. The reason why the rearrangement is completed when the condition of S410 is satisfied is that the rearrangement processing is subjected to a certain processing load. Further, by sequentially selecting a submap having a large number of differential bit-ons as a relocation destination, the sequential ratio can be increased with a smaller number of relocations.
 S410の判定結果が否定的な場合(S410:NO)、ストレージコントローラ20はS413の処理に進む。なお、採用判定設定テーブル62において、このS410の判定内容161を採用しない(採用可否162「NO」)と設定されている場合、ストレージコントローラ20は、このS410の判定を実行せずにそのままS413の処理に進んでよい。 If the determination result of S410 is negative (S410: NO), the storage controller 20 proceeds to the process of S413. If it is set in the adoption determination setting table 62 that the determination content 161 in S410 is not adopted (adoption propriety 162 “NO”), the storage controller 20 does not execute the determination in S410 and does not perform the determination in S413. You may proceed to processing.
 ストレージコントローラ20は、再配置元サブマップに属する差分ビットオンの中の1つを交換元の差分ビットオンに選択する(S413)。 The storage controller 20 selects one of the differential bit ons belonging to the relocation source submap as the differential bit on of the exchange source (S413).
 ストレージコントローラ20は、直近に測定されたリソースの稼働率が、稼働率閾値設定テーブル60におけるこのリソースのID151に対応する稼働率閾値152以上であるか否かを判定する(S420)。 The storage controller 20 determines whether or not the resource operation rate measured most recently is equal to or higher than the operation rate threshold 152 corresponding to the ID 151 of this resource in the operation rate threshold setting table 60 (S420).
 S420の判定結果が肯定的な場合(S420:YES)、ストレージコントローラ20は、その交換元の差分ビットオンを所定のキューに登録し(S431)、一定時間待機後(S432)、S420の処理に戻る。 If the determination result in S420 is affirmative (S420: YES), the storage controller 20 registers the difference bit-on of the exchange source in a predetermined queue (S431), waits for a fixed time (S432), and then performs the processing of S420. Return.
 S420の判定結果が否定的な場合(S420:NO)、ストレージコントローラ20は、「再配置未完了」と判定し(S421)、図12に示す処理に戻る(RETURN)。この場合、図11に示すサブマップに関する処理(S103)の判定結果が「再配置未完了」となり、次の交換処理(S104)が実行される。 If the determination result in S420 is negative (S420: NO), the storage controller 20 determines “relocation is incomplete” (S421), and returns to the process shown in FIG. 12 (RETURN). In this case, the determination result of the process related to the submap shown in FIG. 11 (S103) is “relocation incomplete”, and the next replacement process (S104) is executed.
 次に、交換処理(S104)の詳細を説明する。 Next, details of the exchange process (S104) will be described.
 ストレージコントローラ20は、再配置先サブマップにおける差分ビットオフの中から、交換先の差分ビットオフを選択する(S501)。ここで、ストレージコントローラ20は、再配置先サブマップにおいて、VOLアドレス101が最先の差分ビットオフを優先的に選択してよい。再配置先サブマップにおいて、差分ビットオンができるだけ連続して配置されるようにするためである。 The storage controller 20 selects the difference bit off of the exchange destination from the difference bit off in the relocation destination submap (S501). Here, the storage controller 20 may preferentially select the differential bit off with the earliest VOL address 101 in the relocation destination submap. This is because differential bit-on is arranged as continuously as possible in the rearrangement destination submap.
 ストレージコントローラ20は、再配置元サブマップにおいて交換元に選択された差分ビットオンと、再配置先サブマップにおいて交換先に選択された差分ビットオンとを交換する(S502)。すなわち、ストレージコントローラ20は、交換元の差分ビットオンに対応する差分データの格納されているスロットと、交換先の差分ビットオフに対応する空きスロットとを交換する。そして、ストレージコントローラ20は、図11に示す処理に戻る(RETURN)。 The storage controller 20 exchanges the differential bit-on selected as the exchange source in the relocation source submap and the differential bit-on selected as the exchange destination in the relocation destination submap (S502). That is, the storage controller 20 exchanges a slot in which difference data corresponding to the difference bit on of the exchange source is stored and an empty slot corresponding to the difference bit off of the exchange destination. Then, the storage controller 20 returns to the process shown in FIG. 11 (RETURN).
 次に、後処理(S105)の詳細を説明する。 Next, details of the post-processing (S105) will be described.
 ストレージコントローラ20は、サブマップ管理テーブル52において、再配置先サブマップに係るレコードの差分ビットオンの数113、差分ビットオンの割合115、及び、差分ビットオンの最後尾117を更新する(S601)。 In the submap management table 52, the storage controller 20 updates the difference bit-on number 113, the difference bit-on ratio 115, and the last bit 117 of the difference bit-on of the record related to the rearrangement destination submap (S601). .
 ストレージコントローラ20は、サブマップ管理テーブル52において、再配置元サブマップに係るレコードの差分ビットオンの数113、差分ビットオンの割合115、及び、差分ビットオンの最後尾117を更新する(S602)。 In the submap management table 52, the storage controller 20 updates the difference bit-on number 113, the difference bit-on ratio 115, and the last bit 117 of the difference bit-on in the relocation source submap (S602). .
 ストレージコントローラ20は、同期時間管理テーブル58において、実測シーケンシャル比率147を更新する(S603)。そして、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。図11に示す処理において、ストレージコントローラ20は、S103の処理に戻る。 The storage controller 20 updates the measured sequential ratio 147 in the synchronization time management table 58 (S603). Then, the storage controller 20 returns to the process shown in FIG. 12 (RETURN). In the process shown in FIG. 11, the storage controller 20 returns to the process of S103.
 図14は、差分マップ更新処理(S211)の一例を示すフローチャートである。 FIG. 14 is a flowchart showing an example of the difference map update process (S211).
 差分マップ更新処理(S211)は、図12に示すように、同期元VOLに対するライトコマンドを受信した場合に実行される。 The difference map update process (S211) is executed when a write command for the synchronization source VOL is received as shown in FIG.
 ストレージコントローラ20は、再配置先サブマップが既に決定しているか否かを判定する(S701)。再配置先サブマップが未だ決定していない場合(S701:NO)、ストレージコントローラ20はS710の処理に進む。 The storage controller 20 determines whether or not the rearrangement destination submap has already been determined (S701). If the relocation destination submap has not yet been determined (S701: NO), the storage controller 20 proceeds to the process of S710.
 再配置先サブマップが既に決定している場合(S701:YES)、ストレージコントローラ20は次に、ライトコマンドの指定するVOLアドレス101が再配置先サブマップに属するか否かを判定する(S702)。S702の判定結果が肯定的な場合(S702:YES)、ストレージコントローラ20はS710の処理に進む。 When the relocation destination submap has already been determined (S701: YES), the storage controller 20 next determines whether or not the VOL address 101 designated by the write command belongs to the relocation destination submap (S702). . If the determination result of S702 is positive (S702: YES), the storage controller 20 proceeds to the process of S710.
 S702の判定結果が否定的な場合(S702:NO)、ストレージコントローラ20は、ライトコマンドの指定するVOLアドレス101のスロットと、再配置先サブマップに属する空きスロットとを交換する(S703)。また、ストレージコントローラ20は、再配置先サブマップにおける差分ビットオフの内、最先のVOLアドレス101を優先的に交換先に選択してよい。そして、ストレージコントローラ20はS710の処理に進む。 If the determination result in S702 is negative (S702: NO), the storage controller 20 exchanges the slot of the VOL address 101 designated by the write command with an empty slot belonging to the relocation destination submap (S703). Further, the storage controller 20 may preferentially select the first VOL address 101 as the replacement destination in the difference bit off in the relocation destination submap. Then, the storage controller 20 proceeds to the process of S710.
 S710の処理において、ストレージコントローラ20は、ライト先のスロットにライトデータ(つまり差分データ)を格納する(S710)。ここで、S703でライト先のスロットが交換されている場合、差分データは、再配置先サブマップに属する交換先のスロットに格納されることになる。 In the processing of S710, the storage controller 20 stores the write data (that is, difference data) in the write destination slot (S710). If the write destination slot is exchanged in S703, the difference data is stored in the exchange destination slot belonging to the rearrangement destination submap.
 ストレージコントローラ20は、差分マップ90を更新する(S711)。すなわち、ストレージコントローラ20は、差分マップ90において、差分データが格納されたスロットに対応する差分ビットをオンに更新する。 The storage controller 20 updates the difference map 90 (S711). That is, the storage controller 20 updates the difference bit corresponding to the slot in which the difference data is stored in the difference map 90 to ON.
 ストレージコントローラ20は、サブマップ管理テーブル52を更新する(S712)。すなわち、ストレージコントローラ20は、サブマップ管理テーブル52において、再配置先サブマップに係るレコードの差分ビットオンの数に、S711において差分ビットがオンに更新された数を加算する。 The storage controller 20 updates the submap management table 52 (S712). That is, in the submap management table 52, the storage controller 20 adds the number of differential bits turned on in S711 to the number of differential bits on in the relocation destination submap.
 ストレージコントローラ20は、サブマップ管理テーブル52の差分データが格納されたサブマップに係るレコードの差分ビットオンの最後尾117を参照し、差分データが格納されたサブマップの差分ビットオンの最後尾117のVOLアドレス101が判明しているか否かを判定する(S720)。 The storage controller 20 refers to the difference bit-on tail 117 of the record related to the submap in which the difference data of the submap management table 52 is stored, and the difference bit-on tail 117 of the submap in which the difference data is stored. It is determined whether or not the VOL address 101 is known (S720).
 S720の判定結果が否定的な場合(S720:NO)、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。 If the determination result in S720 is negative (S720: NO), the storage controller 20 returns to the process shown in FIG. 12 (RETURN).
 S720の判定結果が肯定的な場合(S720:YES)、ストレージコントローラ20は次に、差分データのライト先のVOLアドレス101が、その差分ビットオンの最後尾のVOLアドレス101よりも後方であるか否かを判定する(S721)。 If the determination result in S720 is affirmative (S720: YES), then the storage controller 20 next determines whether the write destination VOL address 101 of the differential data is behind the last VOL address 101 of the differential bit on. It is determined whether or not (S721).
 S721の判定結果が否定的な場合(S721:NO)、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。 If the determination result in S721 is negative (S721: NO), the storage controller 20 returns to the process shown in FIG. 12 (RETURN).
 S721の判定結果が肯定的な場合(S721:YES)、ストレージコントローラ20は次に、サブマップ管理テーブル52において、当該サブマップに係るレコードの差分ビットオンの最後尾117を「-1」(不明)に更新する(S722)。そして、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。 If the determination result of S721 is affirmative (S721: YES), the storage controller 20 next sets “−1” (unknown) in the submap management table 52 for the difference bit-on end 117 of the record related to the submap. (S722). Then, the storage controller 20 returns to the process shown in FIG. 12 (RETURN).
 図15は、VOL同期プログラム42の処理の一例を示すフローチャートである。 FIG. 15 is a flowchart showing an example of processing of the VOL synchronization program 42.
 ストレージコントローラ20は、差分データ再配置プログラム43を実行したか否かを判定する(S801)。差分データ再配置プログラム43を実行しなかった場合(S801:NO)、ストレージコントローラ20は、通常のVOL間の再同期処理を実行し(S810)、S830の処理へ進む。 The storage controller 20 determines whether or not the differential data relocation program 43 has been executed (S801). When the differential data relocation program 43 has not been executed (S801: NO), the storage controller 20 executes a normal resynchronization process between VOLs (S810), and proceeds to the process of S830.
 差分データ再配置プログラム43を実行した場合(S801:YES)、ストレージコントローラ20は、次のS802の処理へ進む。 When the difference data relocation program 43 is executed (S801: YES), the storage controller 20 proceeds to the next process of S802.
 ストレージコントローラ20は、本VOL同期プログラム42において未選択のサブマップが存在するか否かを判定し(S802)、未選択のサブマップが存在しない場合(S802:NO)、S830の処理へ進む。 The storage controller 20 determines whether or not an unselected submap exists in the VOL synchronization program 42 (S802). If there is no unselected submap (S802: NO), the storage controller 20 proceeds to the process of S830.
 未選択のサブマップが存在する場合(S802:YES)、ストレージコントローラ20は、未選択のサブマップの中から、差分ビットオンの数が最大のサブマップを選択する(S803)。 If there is an unselected submap (S802: YES), the storage controller 20 selects a submap with the largest number of differential bit-ons from among the unselected submaps (S803).
 ストレージコントローラ20は、選択したサブマップにおいて差分ビットオンの最後尾117のVOLアドレス101が判明しているか否かを判定する(S820)。 The storage controller 20 determines whether or not the VOL address 101 at the end 117 of the differential bit on is found in the selected submap (S820).
 選択したサブマップにおいて差分ビットオンの最後尾117のVOLアドレス101が不明な場合(S820:NO)、ストレージコントローラ20は次の処理を行う。すなわちストレージコントローラ20は、そのサブマップ全体を探索して差分ビットオンを抽出する。そして、ストレージコントローラ20は、その抽出した差分ビットオンに対応する複数のVOLアドレス101のそれぞれの差分データを、ランダムアクセスのコマンドによって取得する(S822)。そして、ストレージコントローラ20は、S802の処理に戻る。 When the VOL address 101 of the last bit 117 of the difference bit on is unknown in the selected submap (S820: NO), the storage controller 20 performs the following process. That is, the storage controller 20 searches the entire submap and extracts differential bit-on. Then, the storage controller 20 acquires each difference data of the plurality of VOL addresses 101 corresponding to the extracted difference bit-on by a random access command (S822). Then, the storage controller 20 returns to the process of S802.
 選択したサブマップにおいて差分ビットオンの最後尾117のVOLアドレス101が判明している場合(S803:YES)、ストレージコントローラ20は次の処理を行う。すなわちストレージコントローラ20は、そのサブマップの先頭のVOLアドレス101から差分ビットオンの最後尾117のVOLアドレス101までの間の全ての差分データをシーケンシャルアクセスのコマンドによって一度に取得する(S822)。そして、ストレージコントローラ20は、S802の処理に戻る。 When the VOL address 101 of the last bit 117 of differential bit on is known in the selected submap (S803: YES), the storage controller 20 performs the following process. In other words, the storage controller 20 acquires all the differential data from the first VOL address 101 of the submap to the last VOL address 101 of the differential bit ON by a sequential access command (S822). Then, the storage controller 20 returns to the process of S802.
 S830においてストレージコントローラ20は、S821及びS822で取得した差分データを、同期先のストレージ装置に送信する(S830)。 In S830, the storage controller 20 transmits the difference data acquired in S821 and S822 to the synchronization destination storage device (S830).
 そして、ストレージコントローラ20は、同期時間管理テーブル58を更新し(S831)、本処理を終了する。 Then, the storage controller 20 updates the synchronization time management table 58 (S831), and ends this process.
 以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。 Although several embodiments have been described above, these are examples for explaining the present invention, and the scope of the present invention is not intended to be limited only to these embodiments. The present invention can be implemented in various other forms.
 上述では、2つのストレージ装置10aの有する第1VOL80aとストレージ装置10bの有する第2VOL80bとの間におけるコピー処理(リモートコピー処理)の実施形態について説明したが、上述の実施形態の内容は、他の構成にも適用可能である。例えば、上述の実施形態の内容は、1つのストレージ装置内におけるコピー処理(ローカルコピー処理)においても適用可能である。この場合、1つのストレージ装置10が、1つのストレージコントローラ20と、第1VOL80aと、第2VOL80bとを有し、1つのストレージコントローラ20において、第1VOL80aに関する差分マップ90aと第2VOL80bに関する差分マップ80bとを管理してよい。そして、1つのストレージ装置10内における第1VOL80aと第2VOL80bとの間のローカルコピー処理に、上述の実施形態の内容を適用してもよい。 In the above description, the embodiment of the copy process (remote copy process) between the first VOL 80a of the two storage apparatuses 10a and the second VOL 80b of the storage apparatus 10b has been described. However, the contents of the above-described embodiment include other configurations. It is also applicable to. For example, the contents of the above-described embodiment can be applied to a copy process (local copy process) in one storage apparatus. In this case, one storage apparatus 10 has one storage controller 20, a first VOL 80a, and a second VOL 80b. In one storage controller 20, a difference map 90a related to the first VOL 80a and a difference map 80b related to the second VOL 80b are provided. May be managed. The contents of the above-described embodiment may be applied to the local copy process between the first VOL 80a and the second VOL 80b in one storage apparatus 10.
 1:ストレージシステム 10:ストレージ装置 20:ストレージコントローラ 31:PDEV 80:ボリューム
 
 

 
1: Storage system 10: Storage device 20: Storage controller 31: PDEV 80: Volume


Claims (12)

  1.  第1のボリュームに格納されたデータが格納される1以上の記憶デバイスと、
     前記1以上の記憶デバイスを制御するストレージコントローラと
    を有し、
     前記第1のボリュームは、複数の記憶領域である複数のスロットに分割されており、
     前記ストレージコントローラは、所定のタイミング以降に格納されたデータを含む差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを前記複数のスロットの各々について表す差分情報を有し、
     前記ストレージコントローラは、
      前記差分情報を複数の差分情報部分に分割する分割処理と、
      前記複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択する選択処理と、
      前記第2の差分情報部分に属する使用スロットのアドレスと、前記第1の差分情報部分に属する空きスロットのアドレスとを交換する交換処理と
    を実行する
    ストレージシステム。
    One or more storage devices for storing data stored in the first volume;
    A storage controller that controls the one or more storage devices;
    The first volume is divided into a plurality of slots, which are a plurality of storage areas,
    The storage controller indicates, for each of the plurality of slots, whether it is a used slot in which differential data including data stored after a predetermined timing is stored or an empty slot in which differential data is not stored. Have information,
    The storage controller
    A dividing process for dividing the difference information into a plurality of difference information parts;
    A selection process for selecting a first difference information part and a second difference information part from the plurality of difference information parts;
    A storage system that executes exchange processing for exchanging addresses of used slots belonging to the second difference information portion and addresses of empty slots belonging to the first difference information portion.
  2.  前記ストレージコントローラは前記交換処理において、前記第2の差分情報部分に属する前記使用スロットのアドレスと、前記第1の差分情報部分に属する空きスロットの内の最先のアドレスとを交換する
    請求項1に記載のストレージシステム。
    The storage controller exchanges, in the exchange process, the address of the used slot belonging to the second difference information portion and the earliest address of the empty slots belonging to the first difference information portion. The storage system described in.
  3.  前記ストレージコントローラは、
      前記第1のボリュームに対するデータの格納要求を新たに受信した場合、前記受信した格納要求から特定される格納先が前記第2の差分情報部分に属するスロットであるか否かを判定し、
      当該判定結果が肯定的な場合、前記データの格納要求先のスロットのアドレスと、前記第1の差分情報部分に属する空きスロットのアドレスとを交換し、前記第1の差分情報部分に属する交換後のスロットに前記データを格納する
    請求項2に記載のストレージシステム。
    The storage controller
    If a new data storage request for the first volume is received, it is determined whether the storage location specified from the received storage request is a slot belonging to the second difference information portion;
    If the determination result is affirmative, the address of the data storage request destination slot is exchanged with the address of the empty slot belonging to the first difference information part, and after the exchange belonging to the first difference information part The storage system according to claim 2, wherein the data is stored in a slot.
  4.  前記第1のボリュームとペアを構成する第2のボリュームをさらに有し、
     前記ストレージコントローラは、前記交換処理の実行後、前記第1のボリュームから前記第1の差分情報部分に属する連続する複数の使用ブロックに格納されている複数の差分データをシーケンシャルに取得し、その取得した複数の差分データを前記第2のボリュームにコピーするコピー処理を実行する
    請求項3に記載のストレージシステム。
    A second volume that forms a pair with the first volume;
    The storage controller sequentially acquires a plurality of difference data stored in a plurality of consecutive used blocks belonging to the first difference information portion from the first volume after the execution of the exchange process, and acquires the difference data The storage system according to claim 3, wherein a copy process for copying the plurality of differential data to the second volume is executed.
  5.  前記ストレージコントローラは、前記差分情報における複数の使用スロットの数に対する連続する使用スロットの数の割合に関する値であるシーケンシャル比率が、所定の目標のシーケンシャル比率よりも小さいか否かを判定し、当該判定結果が肯定的な場合、前記シーケンシャル比率が前記目標のシーケンシャル比率以上となるまで前記交換処理を実行する
    請求項4に記載のストレージシステム。
    The storage controller determines whether or not a sequential ratio that is a value related to a ratio of the number of consecutive used slots to the number of used slots in the difference information is smaller than a predetermined target sequential ratio. 5. The storage system according to claim 4, wherein when the result is affirmative, the replacement process is executed until the sequential ratio becomes equal to or higher than the target sequential ratio.
  6.  前記ストレージコントローラは、前記コピー処理を所定の周期で実行するにあたり、
      今回の周期の前記コピー処理の実行時における差分データの予測数を、今回及び過去の周期における差分データの増加率に基づいて算出し、
      前記差分データの予測数が所定の閾値よりも大きいか否かを判定し、当該判定結果が肯定的な場合、前記交換処理を実行する
    請求項4に記載のストレージシステム。
    When the storage controller executes the copy process at a predetermined cycle,
    Calculate the estimated number of difference data at the time of execution of the copy process in the current cycle based on the increase rate of the difference data in the current and past cycles,
    The storage system according to claim 4, wherein it is determined whether or not the predicted number of the difference data is greater than a predetermined threshold value, and if the determination result is affirmative, the exchange process is executed.
  7.  前記ストレージコントローラは、前記分割処理において、前記差分情報に属する前記使用スロットの数及び前記空きスロットの数に基づいて前記差分情報の分割数を決定する
    請求項1に記載のストレージシステム。
    The storage system according to claim 1, wherein the storage controller determines the number of divisions of the difference information based on the number of used slots and the number of empty slots belonging to the difference information in the division processing.
  8.  前記ストレージコントローラは、前記選択処理において、前記複数の差分情報部分のそれぞれに属する前記使用スロットの数に基づいて、前記第1の差分情報部分及び前記第2の差分情報部分を選択する
    請求項1に記載のストレージシステム。
    The storage controller selects the first difference information portion and the second difference information portion based on the number of used slots belonging to each of the plurality of difference information portions in the selection process. The storage system described in.
  9.  前記ストレージコントローラは、前記選択処理において、前記複数の差分情報部分の内、前記使用スロットの数及び前記空きスロットの数の合計に対する前記使用スロットの数の割合の大きい差分情報部分を優先的に前記第1の差分情報部分に選択する
    請求項8に記載のストレージシステム。
    In the selection process, the storage controller preferentially selects a difference information part having a large ratio of the number of used slots to the total of the number of used slots and the number of empty slots among the plurality of difference information parts. The storage system according to claim 8, wherein the storage system is selected as the first difference information portion.
  10.  前記ストレージコントローラは、前記選択処理において、前記複数の差分情報部分の内、前記使用スロットの数及び前記空きスロットの数の合計に対する前記使用スロットの数の割合の小さい差分情報部分を優先的に前記第2の差分情報部分に選択する
    請求項8に記載のストレージシステム。
    In the selection process, the storage controller preferentially selects a difference information portion having a small ratio of the number of used slots to the total of the number of used slots and the number of empty slots among the plurality of difference information portions. The storage system according to claim 8, wherein the second difference information portion is selected.
  11.  前記ストレージコントローラは、当該ストレージコントローラに関する稼働率が所定の閾値以上ならば、前記稼働率が所定の閾値未満となった後に前記交換処理を実行する
    請求項1に記載のストレージシステム。
    2. The storage system according to claim 1, wherein the storage controller executes the replacement process after the operating rate falls below a predetermined threshold if the operating rate related to the storage controller is equal to or greater than a predetermined threshold.
  12.  格納されたデータを1以上の記憶デバイスに格納する第1のボリュームを、複数の記憶領域である複数のスロットに分割し、
    所定のタイミング以降に格納されたデータを含む差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを前記複数のスロットの各々について表す差分情報を、複数の差分情報部分に分割し、
     前記複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択し、
      前記第2の差分情報部分に属する使用スロットのアドレスと、前記第1の差分情報部分に属する空きスロットのアドレスとを交換する
    記憶制御方法。
     

     
    Dividing a first volume for storing stored data in one or more storage devices into a plurality of slots as a plurality of storage areas;
    Difference information representing each of the plurality of slots as to whether it is a use slot in which difference data including data stored after a predetermined timing is stored or an empty slot in which difference data is not stored, Divide into differential information parts,
    Selecting a first difference information portion and a second difference information portion from the plurality of difference information portions;
    A storage control method for exchanging addresses of used slots belonging to the second difference information portion and addresses of empty slots belonging to the first difference information portion.


PCT/JP2015/053964 2015-02-13 2015-02-13 Storage system and method for controlling storage WO2016129101A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/053964 WO2016129101A1 (en) 2015-02-13 2015-02-13 Storage system and method for controlling storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/053964 WO2016129101A1 (en) 2015-02-13 2015-02-13 Storage system and method for controlling storage

Publications (1)

Publication Number Publication Date
WO2016129101A1 true WO2016129101A1 (en) 2016-08-18

Family

ID=56614339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/053964 WO2016129101A1 (en) 2015-02-13 2015-02-13 Storage system and method for controlling storage

Country Status (1)

Country Link
WO (1) WO2016129101A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078899A (en) * 1996-09-02 1998-03-24 Hitachi Ltd Information recording and reproducing device
JP2005332067A (en) * 2004-05-18 2005-12-02 Hitachi Ltd Backup acquisition method and disk array device
JP2010176180A (en) * 2009-01-27 2010-08-12 Nec Corp Storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078899A (en) * 1996-09-02 1998-03-24 Hitachi Ltd Information recording and reproducing device
JP2005332067A (en) * 2004-05-18 2005-12-02 Hitachi Ltd Backup acquisition method and disk array device
JP2010176180A (en) * 2009-01-27 2010-08-12 Nec Corp Storage system

Similar Documents

Publication Publication Date Title
US9317436B2 (en) Cache node processing
US8316180B2 (en) Method and system for rebuilding data in a distributed RAID system
JP4890160B2 (en) Storage system and backup / recovery method
JP5981563B2 (en) Information storage system and method for controlling information storage system
JP6286622B2 (en) Storage system
JP6328335B2 (en) Storage apparatus and control method thereof
JP5073259B2 (en) Virtualization system and area allocation control method
US8639898B2 (en) Storage apparatus and data copy method
JP6007332B2 (en) Storage system and data write method
WO2014155525A1 (en) Storage system and control method
US10579540B2 (en) Raid data migration through stripe swapping
JP2013525912A (en) Storage apparatus and control method thereof
CN112181736A (en) Distributed storage system and configuration method thereof
US10067882B2 (en) Storage system and storage control method
US11740823B2 (en) Storage system and storage control method
WO2016139787A1 (en) Storage system and data writing control method
WO2015145617A1 (en) Storage system and memory control method
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
JP6019940B2 (en) Information processing apparatus, copy control program, and copy control method
US11061604B2 (en) Method and storage system architecture for accessing data by means of a compatible module
JP5712535B2 (en) Storage device, control unit, and storage device control method
WO2018055686A1 (en) Information processing system
WO2016129101A1 (en) Storage system and method for controlling storage
WO2014030249A1 (en) Verification system and verification method for i/o performance of volume
JP2020106999A (en) Storage system and data management method for storage system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15881976

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP