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

ストレージシステム、及び、記憶制御方法 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
English (en)
French (fr)
Inventor
直人 柳
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2015/053964 priority Critical patent/WO2016129101A1/ja
Publication of WO2016129101A1 publication Critical patent/WO2016129101A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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

 ストレージコントローラは、第1のボリュームにおける差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを複数のスロットの各々について表す差分情報を有する。そして、ストレージコントローラは、差分情報を複数の差分情報部分に分割し、複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択し、第2の差分情報部分に属する使用スロットのアドレスと、第1の差分情報部分に属する空きスロットのアドレスとを交換する。

Description

ストレージシステム、及び、記憶制御方法
 本発明は、概して、ストレージシステム及び記憶制御方法の技術に関する。
 第1のストレージ装置に新たに書き込まれたデータのみをネットワークを通じて第2のストレージ装置にコピーすることにより、第1のストレージ装置のデータを第2のストレージ装置にバックアップする技術が知られている。
 特許文献1には次のことが開示されている。第1のストレージ装置は、ホストコンピュータから受信した書き込みデータを転送用バッファに格納し、その転送用バッファ内の複数の書き込みデータをトラック単位で並び替え、その並び替えた複数の書き込みデータを第2のストレージ装置に送信する。第2のストレージ装置は、その並び替えられた書き込みデータを受信し、その並び替えられた順序で書き込みデータをHDD(Hard Disk Drive)に書き込む。これにより、第2のストレージ装置におけるディスクヘッドは、HDDに対してシーケンシャルにアクセスできる。この結果、第2のストレージ装置におけるHDDへのデータの展開処理が短縮される。
特開2013-73388号公報
 第1のストレージ装置は、自分の記憶デバイス(HDD、SSD(Solid State Drive)など)に新たに書き込まれたデータ(上書きされたデータも含む。以下「差分データ」という)を第2のストレージ装置に送信するためにはまず、差分データを読み出す必要がある。差分データの読み出しにかかる時間は、差分データの量が増大するにつれて長くなる。したがって、第1のストレージ装置の全ての差分データを第2のストレージ装置にコピーする処理(「コピー処理」という)にかかる時間は、差分データの量が増大するにつれて長くなる。そこで、本発明の目的の1つは、第1のストレージ装置における差分データの読み出しにかかる時間を短縮することにある。
 一実施形態に係るストレージシステムは、第1のボリュームに格納されたデータが格納される1以上の記憶デバイスと、1以上の記憶デバイスを制御するストレージコントローラとを有する。第1のボリュームは、複数の記憶領域である複数のスロットに分割されている。ストレージコントローラは、所定のタイミング以降に格納されたデータを含む差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを複数のスロットの各々について表す差分情報を有する。そして、ストレージコントローラは、差分情報を複数の差分情報部分に分割する分割処理と、複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択する選択処理と、第2の差分情報部分に属する使用スロットのアドレスと、第2の差分情報部分に属する空きスロットのアドレスとを交換する交換処理とを実行する。
 本発明の一実施形態によれば、第1のストレージ装置における差分データの読み出しにかかる時間を短縮することができる。
本実施形態に係るストレージシステムの概要を示す模式図である。 差分データ再配置処理の一例を説明するための図である。 ストレージシステムにおける構成の一例を示す模式図である。 差分マップの構成例を示す。 サブマップ管理テーブルの構成例を示す。 同期設定テーブルの構成例を示す。 同期時間分析テーブルの構成例を示す。 同期時間管理テーブルの構成例を示す。 稼働率閾値設定テーブルの構成例を示す。 採用判定設定テーブルの構成例を示す。 差分データ再配置処理の一例を示すフローチャートである。 要否判定処理の一例を示すフローチャートである。 サブマップに関する処理の一例を示すフローチャートである。 差分マップ更新処理の一例を示すフローチャートである。 VOL同期処理の一例を示すフローチャートである。
 以下の説明では、「×××テーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「×××テーブル」を「×××情報」と呼ぶことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
 また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用することがある。例えば、VOLを特に区別しないで説明する場合には、「VOL80」と記載し、個々のVOLを区別して説明する場合には、「VOL80a」、「VOL80b」のように記載することがある。また、以下の説明では、I/O(Input/Output)要求は、ライト要求又はリード要求であり、アクセス要求と呼ばれてもよい。
 また、以下の説明では、「記憶部」は、メモリを含んだ1以上の記憶デバイスでよい。例えば、記憶部は、主記憶デバイス(典型的には揮発性のメモリ)及び補助記憶デバイス(典型的には不揮発性の記憶デバイス)のうちの少なくとも主記憶デバイスでよい。また、記憶部は、キャッシュ領域(例えばキャッシュメモリ又はその一部領域)とバッファ領域(例えばバッファメモリ又はその一部領域)とのうちの少なくとも1つを含んでもよい。キャッシュ領域及びバッファ領域は、PDEVに入出力されるデータが一時格納される点で共通し、読み出されたデータが残るか否かで相違してよい。具体的には、キャッシュ領域から読み出されたデータは、キャッシュ領域に残り、バッファ領域から一旦読み出されたデータは、バッファ領域には残らないでよい。また、以下の説明では、「PDEV」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。PDEVは、例えば、HDD又はSSDでよい。
 また、以下の説明では、「RAID」は、Redundant Array of Independent (or Inexpensive) Disksの略である。RAIDグループは、複数のPDEVで構成され、そのRAIDグループに関連付けられたRAIDレベルに従いデータを記憶する。RAIDグループは、パリティグループと呼ばれてもよい。パリティグループは、例えば、パリティを格納するRAIDグループのことでよい。
 また、以下の説明において、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行ってよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置又はシステムが行う処理としてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
 また、以下の説明では、管理システムは、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が情報を表示する場合(具体的には、例えば、管理計算機が自分の表示デバイスに情報を表示する、或いは、管理計算機が表示用情報を遠隔の表示用計算機に送信する場合)、管理計算機が管理システムである。また、例えば、複数の計算機で管理計算機と同等の機能が実現されている場合は、当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機を含んでよい)が、管理システムである。管理計算機(例えば管理システム)は、表示システムを含むI/Oシステムに接続されたインターフェースデバイスと、記憶資源(例えばメモリ)と、インターフェースデバイス及び記憶資源に接続されたプロセッサとを有してよい。表示システムは、管理計算機が有する表示デバイスでもよいし、管理計算機に接続された表示用計算機でもよい。I/Oシステムは、管理計算機が有するI/Oデバイス(例えばキーボード及びポインティングデバイス、タッチパネル)でもよいし、管理計算機に接続された表示用計算機又は別の計算機でもよい。管理計算機が「表示用情報を表示する」ことは、表示システムに表示用情報を表示することであり、これは、管理計算機が有する表示デバイスに表示用情報を表示することであってもよいし、管理計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。また、管理計算機が情報を入出力するとは、管理計算機が有するI/Oデバイスとの間で情報の入出力を行うことであってもよいし、管理計算機に接続された遠隔の計算機(例えば表示用計算機)との間で情報の入出力を行うことであってもよい。情報の出力は、情報の表示であってもよい。
 また、以下の説明では、「ホストシステム」は、ストレージシステムにI/Oリクエストを送信するシステムであり、インターフェースデバイスと、記憶資源(例えばメモリ)と、それらに接続されたプロセッサとを有してよい。ホストシステムは、1以上のホスト計算機で構成されてよい。少なくとも1つのホスト計算機は、物理的な計算機でよく、ホストシステムは、物理的なホスト計算機に加えて仮想的なホスト計算機を含んでよい。
 また、以下の説明では、「ストレージシステム」は、1以上のストレージ装置でよく、複数のPDEV(例えば1以上のRAIDグループ)と、複数のPDEVに対するI/Oを制御するストレージコントローラとを有してよい。ストレージコントローラは、複数のPDEVに接続されるバックエンドのインターフェースデバイスと、ホストシステム及び管理システムのうちの少なくとも1つに接続されるフロントエンドのインターフェースデバイスと、記憶資源と、それらに接続されたプロセッサとを有してよい。ストレージコントローラは、冗長化されていてもよい。
 また、以下の説明では、「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でよい。
 図1は、本実施形態に係るストレージシステムの概要を示す模式図である。
 ストレージシステム1は、ストレージ装置10aとストレージ装置10bとを有する。ストレージ装置10aとストレージ装置10bとは、所定のネットワーク又は通信線を通じてデータを送受信できる。
 ストレージ装置10aは、PDEVと、そのPDEVを制御するストレージコントローラ20aとを有する。ストレージコントローラ20aは、PDEVを制御して第1VOL80aを構成する。ストレージ装置10bも同様にPDEVとそのPDEVを制御するストレージコントローラ20bとを有する。ストレージコントローラ20bは、第2VOL80bを構成する。
 第1VOL80aのデータを第2VOL80bにバックアップする場合、ストレージコントローラ20aは次の処理を行う。
 (A1)ストレージコントローラ20aは、第1VOL80aに格納されている全てのデータを第2VOL80bにバックアップする。これにより、第1VOL80aと第2VOL80bが同じデータを有する状態(同期状態)となる。
 (A2)ストレージコントローラ20aは、第1VOL80aと第2VOL80bが同期状態となった後に第1VOL80aに新たに書き込まれたデータ(上書きされたデータも含む。つまり差分データ)を、第1VOL80aの所定の領域(「差分データ格納領域」という)102aに格納する。
 (A3)ストレージコントローラ20aは、所定のタイミング(一定周期の経過後、又は、差分データが所定量以上格納されたときなど)に、差分データ格納領域102aから差分データを取得し、その取得した差分データをストレージ装置10bに送信する。
 (A4)ストレージコントローラ20bは、その差分データを受信し、第2VOL80bの差分データ格納領域102bに格納する。
 差分データ格納領域は複数のスロットで構成されており、差分データはスロットの単位で管理される。スロット単位でデータが書き込まれた場合、スロットに格納されたデータそれ自体が差分データとなるが、スロットより小さい単位でデータが書き込まれた場合、書き込まれたデータを含んだデータ(スロット単位のデータ)が差分データとなる。差分データ格納領域を構成する複数のスロットには順番を示すVOLアドレスが付与されている。
 ストレージコントローラ20aは、第1VOL80aの差分データ格納領域102aにおける各スロットに差分データが格納されているか否かを示す情報を有する。この情報を差分マップ90aという。差分マップ90aは複数の差分ビットから構成されており、差分ビットと差分データ格納領域のスロット(VOLアドレス)とは1対1に対応する。差分データが格納されているスロットに対応する差分ビットは、差分ビットオン(例えば「1」)となる。差分データが格納されていない、つまり空のスロットに対応する差分ビットは、差分ビットオフ(例えば「0」)となる。
 ストレージコントローラ20aが差分データ格納領域102aから差分データを取得する方法には、シーケンシャルアクセスとランダムアクセスがある。
 シーケンシャルアクセスは、VOLアドレスの連続するスロットから一度に差分データを取得する場合に用いることができる。例えば、ストレージコントローラ20aは、先頭のVOLアドレス及びデータ長を指定したシーケンシャルアクセスのコマンドを発行することにより、その先頭のVOLアドレスからデータ長までの間の複数のスロットにそれぞれ格納されている複数の差分データをシーケンシャルに取得することができる。
 ランダムアクセスは、それぞれのスロットから差分データを取得する場合に用いることができる。例えば、ストレージコントローラ20aは、VOLアドレスを指定したランダムアクセスのコマンドを発行することにより、そのVOLアドレスに対応するスロットに格納されている差分データを取得することができる。
 すなわち、ランダムアクセスによって差分データを取得するよりも、シーケンシャルアクセスによって差分データを取得する方が、1回のコマンド発行で多くの差分データを取得できる。よって、上記(A3)の処理にかかる時間が短縮され得る。
 そこでストレージコントローラ20aは、差分データ格納領域102aに対して差分データ再配置処理を行う。差分データ再配置処理は、差分データが連続するように差分データを再配置する処理である。ストレージコントローラ20aは、1回のシーケンシャルアクセスで多くの差分データを再配置後の差分データ格納領域102aから取得できるようになる。次に、この差分データ再配置処理について説明する。
 図2は、差分データ再配置処理の一例を説明するための図である。
 差分データ格納領域102aにおけるスロットと差分マップ90における差分ビットとは、1対1で対応している。差分マップ90の再配置処理は、例えば以下のステップで行われる。
 (B1)ストレージコントローラ20aは、差分情報の一例である差分マップ90-1を、差分情報部分の一例である複数のサブマップに分割する。図2では、差分マップ90-1を、サブマップR1、R2、R3、R4の4つに分割している。
 (B2)ストレージコントローラ20aは、各サブマップの差分ビットオンを数える。図2の差分マップ90-1において、サブマップR1における差分ビットオン(黒色のブロック)の数は「9」、サブマップR2における差分ビットオンの数は「5」、サブマップR3における差分ビットオンの数は「8」、サブマップR4における差分ビットオンの数は「7」である。
 (B3)ストレージコントローラ20aは、複数のサブマップの中から、差分データを再配置先(移動先)となるサブマップ(「再配置先サブマップ」という)を選択する。ストレージコントローラ20aは、差分ビットオンの数が多いサブマップを優先的に再配置先に選択してよい。図2の差分マップ90-1において、サブマップR1の差分ビットオンの数が最大であるので、ストレージコントローラ20aは、このサブマップR1を再配置先に選択してよい。
 (B4)ストレージコントローラ20aは、複数のサブマップの中から、差分データの再配置元(移動元)となるサブマップ(「再配置元サブマップ」という)を選択する。ストレージコントローラ20aは、差分ビットオンの数が少ないサブマップを優先的に再配置元に選択してよい。例えば、図2の差分マップ90-1において、サブマップR2の差分ビットオンの数が最少であるので、ストレージコントローラ20aは、このサブマップR2を再配置元に選択する。
 (B5)ストレージコントローラ20aは、再配置先サブマップの差分ビットオフの中から、再配置元サブマップの差分ビットオンの交換先となる差分ビットオフを選択する。ストレージコントローラ20aは、交換先となる差分ビットオフとして、再配置先サブマップの差分ビットオフの内、VOLアドレスが最先の差分ビットオフを優先的に選択してよい。これにより、再配置先サブマップにおいて、差分ビットオンが連続的に再配置され得る。例えば、図2の差分ビットマップ90-1において、再配置元サブマップR2の差分ビットオン2002の交換先として、再配置先サブマップR1の差分ビットオフ1002が選択される。例えば、再配置元サブマップR2の差分ビットオン2004の交換先として、再配置先サブマップR1の差分ビットオフ1003が選択される。
 (B6)ストレージコントローラ20aは、再配置元サブマップの交換元の差分ビットオンと、再配置先サブマップの交換先の差分ビットオフとを交換する(S11)。すなわち、ストレージコントローラ20aは、交換元のVOLアドレスに対応する差分データ格納済みの物理アドレスと、交換先のVOLアドレスに対応する差分データ未格納の物理アドレスとを交換する。これにより、交換元のVOLアドレスには差分データ未格納の物理アドレスが対応付けられ、交換先のVOLアドレスには差分データ格納済みの物理アドレスが対応付けられる。ここで、物理アドレスは、VOLを構成する記憶領域に対応するアドレスであってよい。例えば、物理アドレスは、VOLを構成するPDEV31上の記憶領域に対応するアドレスであってよい。例えば、物理アドレスは、VOLを構成する下位の論理的な記憶領域に対応するアドレスであってよい。以下においても、差分マップ90における差分ビットオンを再配置した場合には、その差分ビットオンの再配置に伴って差分データ格納領域102aにおける差分データも再配置されるとする。図2の差分マップ90-2は、再配置元サブマップR2の差分ビットオンを全て、再配置先サブマップR1の差分ビットオフと交換した状態である。
 (B7)ストレージコントローラ20aは、他のサブマップについても、上記(B4)~(B6)を実行する。図2において、ストレージコントローラ20aは、サブマップR2の次に差分ビットオンの数が少ないサブマップR4を再配置元に選択し、上記(B4)~(B6)を実行し(S12)、最後にサブマップR3を再配置元に選択し、上記(B4)~(B6)を実行する(S13)。これらの処理が完了すると、図2の差分マップ90-2は、図2の差分マップ90-3の状態となる。
 (B8)ストレージコントローラ20aは、再配置先サブマップの差分ビットオンに係る差分データを取得する。このとき、ストレージコントローラ20aは、再配置先サブマップにおいて、連続的に配置されている差分ビットオン、つまり連続的に格納されている差分データを、シーケンシャルアクセスのコマンドを用いて取得する。図2の差分マップ90-3において、差分ビットオン1001~1029が連続的に配置されている。そこで、ストレージコントローラ20aは、シーケンシャルアクセスのコマンドを1回発行し、差分ビットオン1001~1029に対応する連続する差分データを一度に取得する。これにより、ストレージコントローラ20aは、差分データを取得するためのコマンドの発行回数を削減することができる。
 (B9)ストレージコントローラ20aは、その取得した複数の差分データを、第2ストレージ装置10bに送信する。
 (B10)ストレージコントローラ20bは、この送信された複数の差分データを第2VOL80bに格納する。これにより、第1VOL80aと第2VOL80bが再び同期状態となる。
 上記(B1)において、ストレージコントローラ20aは、差分マップ90をどのように分割してもよい。例えばストレージコントローラ20aは、図2の差分マップ90を十字形に分割してもよい。上記(B1)において、差分マップ90-1の分割数は、差分マップ90-1の差分ビット数に基づいて決定されてよい。例えば、各サブマップに属する差分ビットが所定数となるように、分割数が決定されてよい。上記(B1)において、ストレージコントローラ20aは、各サブマップの差分ビット数ができるだけ同じになるように差分マップ90を分割してよい。上記(B3)及び(B4)における差分ビットオンの数の比較を容易にするためである。各サブマップの差分ビット数が異なる場合、ストレージコントローラ20aは、上記(B3)及び(B4)において、サブマップの差分ビットオンの数に代えて、サブマップにおける差分ビットの総数に対する差分ビットオンの数の割合を用いてもよい。例えばストレージコントローラ20aは、上記(B3)において、差分ビットオンの数の割合が大きいサブマップを優先的に再配置先に選択し、上記(B4)において、差分ビットオンの割合が小さいサブマップを優先的に再配置元に選択してよい。
 上記(B3)において、差分ビット数が多いサブマップを優先的に再配置先に選択している。これにより、より少ない再配置数で、再配置先サブマップにおける差分ビットオンの連続性を高めることができる。再配置数を少なくすることで、ストレージ装置における再配置による処理負荷も軽減することができる。
 上記(B4)において、差分ビットオン数が少ないサブマップを優先的に再配置元に選択している。これにより、より少ない再配置数で、再配置元サブマップにおける全ての差分ビットオンを差分ビットオフにすることができる。そして、全てが差分ビットオフのサブマップは、上記(B8)において、差分ビットオンに係る差分データの検索対象から除外することができる。つまり、上記(B8)における処理時間を短縮することができる。
 図3は、ストレージシステム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)又はこれらの組み合わせなどであってよい。
 管理システム9は、ストレージシステム1を管理するためのシステムである。管理システム9は、1以上の管理計算機で構成されてよい。
 ホストシステム8は、ストレージシステム1を利用するシステムである。ホストシステム8は、1以上のホスト計算機で構成されてよい。ホスト計算機は、ライト要求をストレージ装置10へ送信して、データをストレージ装置10に格納できてよい。ホスト計算機は、リード要求をストレージ装置10へ送信して、ストレージ装置10からデータを取得できてよい。
 ストレージ装置10は、1以上のストレージコントローラ20と、1以上のPDEV31を有する。PDEV31は物理的な記憶デバイスの一例である。PDEV31は、例えば、HDD、SSD又はFMパッケージなどであってよい。
 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)が採用されてもよい。
 ストレージコントローラ20は、PDEV31を制御して、論理的な記憶デバイスであるVOLを構成する。VOLは、実体的なVOL(RVOL)であってもよいし、仮想的なVOL(VVOL)であってもよい。
 ストレージコントローラ20は、VOLに対するI/Oを処理する。例えば、ストレージコントローラ20は、ホストシステム8から送信されたライト要求を受信すると、その受信したライトデータをVOLに格納する。すなわち、ストレージコントローラ20は、そのVOLを構成するPDEV31にライトデータを書き込む。ストレージコントローラ20は、ホストシステム8からリード要求を受信すると、その要求されたリードデータをVOLから取得し、ホストシステム8に返す。ストレージコントローラ20における他の処理については後述する。
 ストレージコントローラ20は、プロセッサ21と、ローカルメモリ22と、共有メモリ23と、キャッシュメモリ24と、ホストI/F26と、ディスクI/F25と、リモートI/F27と、これらの要素間で双方向のデータ通信を可能とする内部バス28によって構成されてよい。これらの要素はそれぞれ複数であってもよい。ストレージコントローラ20における処理は、これらの要素が連携して動作することによって実現されてよい。
 ローカルメモリ22は、プロセッサ21から利用される様々なデータ及びプログラムなどを格納するためのメモリである。ローカルメモリ22に格納されるデータ及びプログラムの例については後述する。
 共有メモリ23は、複数の要素から共有で利用されるデータなどを格納するためのメモリである。共有メモリ23に格納されるデータの例については後述する。
 キャッシュメモリ24は、一時的なデータなどを格納するためのメモリである。例えば、ストレージコントローラ20のリード要求又はライト要求に対する応答時間を短縮するために、リードデータ又はライトデータが一時的にキャッシュメモリ24に格納される。
 ホストI/F26は、ストレージコントローラ20(のプロセッサ21)が、通信ネットワーク7を通じて、ホストシステム8とデータを送受信するためのI/Fである。ホストI/F26は、例えば、SASアダプタ、LANアダプタなどである。
 ディスクI/F25は、ストレージコントローラ20(のプロセッサ21)がPDEV31とデータを送受信するためのI/Fである。ディスクI/F25は、例えば、PCIeアダプタ、SATAアダプタ、SASアダプタなどである。
 リモートI/F27は、ストレージ装置10aとその同期対象であるストレージ装置10bとの間でデータを送受信するためのI/Fである。すなわち、ストレージ装置10aにおける差分データは、このリモートI/F27を通じて、ストレージ装置10bに送信される。リモートI/F27は、通信ネットワーク7に接続されてもよいし、ストレージ装置10bに繋がる所定の通信線又は通信網に接続されてもよい
 ストレージコントローラ20は、I/Oプログラム41と、差分データ再配置プログラム43と、VOL同期プログラム42とを実行し得る。これらのプログラムはローカルメモリ22に格納されてよい。そして、これらのプログラムがプロセッサ21に実行されることにより、これらの処理の内容が実現されてよい。又は、これらの処理は所定の論理演算回路(例えばASIC(Application Specific Integrated Circuit))として構成されてよい。そして、これらの論理演算回路が、独立して、又は、プロセッサ21と協調して動作することにより、これらの処理の内容が実現されよい。
 ストレージコントローラ20は、サブマップ管理テーブル52と、同期設定テーブル54と、同期時間分析テーブル56と、同期時間管理テーブル58と、稼働率閾値設定テーブル60と、採用判定設定テーブル62とを管理する。ストレージコントローラ20は、これらのテーブルの何れかのみを管理してもよい。これらのテーブルは、ローカルメモリ22に格納されてよい。又は、これらのテーブルは、共有メモリ23又はPDEV31の何れに格納されてもよい。又は、これらのテーブルは、通信ネットワーク7によって接続されている他の装置に格納されてもよい。ストレージコントローラ20は、差分マップ90を管理する。差分マップ90は、ローカルメモリ22、共有メモリ23又はPDEV31の何れに格納されてもよい。
 差分データ再配置プログラム43は、差分データ格納領域の差分データを再配置するための処理である。差分データ再配置プログラム43は、差分マップ90を2以上のサブマップに分割する分割処理と、複数のサブマップの中から再配置先サブマップを選択する選択処理と、再配置元サブマップの差分ビットオンと再配置先サブマップの差分ビットオフとを交換する交換処理を含んでよい。
 差分マップ90の分割数は、差分マップ90に含まれる差分ビットの総数に基づいて決定されてよい。差分マップ90は、各サブマップに含まれる差分ビットの総数ができるだけ同じになるように分割されてよい。又は差分マップ90は、各サブマップが所定の差分ビットの総数となるように分割されてよい。サブマップ同士の比較を容易にするためである。
 差分データ再配置プログラム43は、必要な場合に実行され、不要な場合には実行されなくてもよい。なぜなら、再同期処理にかけることのできる時間はストレージシステムを使用するユーザのポリシーによって様々であり、ユーザのポリシーを満たす場合にまで処理負荷のかかる差分データ再配置処理を実行する必要はないからである。例えばストレージコントローラ20は、次回のVOL同期プログラム42の実行時における差分データの数(予測数)を算出し、その差分データの予測数が所定の閾値よりも大きいか否かを判定する。そしてストレージコントローラ20は、当該判定結果が肯定的な場合には交換処理を実行し、当該判定結果が否定的な場合には交換処理を実行しなくてもよい。差分データの予測数は、過去のVOL同期プログラム42に基づいて算出されてよい。
 VOL同期プログラム42は、第1VOL80aと第2VOL80bのデータを同期させるための処理である。VOL同期プログラム42は、同期状態後に第1VOL80aに新たに格納された差分データを第2VOL80bに送信する処理を含んでよい。VOL同期プログラム42は、一定の周期で実行されてよい。又は、VOL同期プログラム42は、差分データが所定量以上蓄積したときに実行されてよい。
 ストレージコントローラ20は、VOL同期プログラム42を実行するにあたり、まず、第1VOL80aの差分データ格納領域から再配置後の差分データを取得する。そして、ストレージコントローラ20はその取得した差分データを、第2VOL80bを有するストレージ装置10bに送信する。送信された差分データは、ストレージ装置10bの第2VOL80bに格納(すなわち同期)される。VOL同期プログラム42には、連続的に格納されている複数の差分データをシーケンシャルアクセスのコマンドで一度に取得する処理が含まれてよい。VOL同期プログラム42には、非連続的に格納されている差分データをランダムアクセスのコマンドでそれぞれ取得する処理が含まれてよい。
 I/Oプログラム41は、ホストシステム8から受信したライト要求及びリード要求を制御するための処理である。I/Oプログラム41は、ホストシステム8からライト要求を受信すると、そのライトデータ(差分データ)を第1VOL80aに格納し、そのライト要求に対する応答(成功又は失敗など)をホストシステム8に送信する処理を含む。I/Oプログラム41は、ホストシステム8からリード要求を受信すると、その要求に係るデータを第1VOL80aから取得し、その取得したデータをホストシステム8に送信する処理を含む。
 I/Oプログラム41は、差分データ再配置プログラム43の実行中にライト要求を受信した場合に、そのライトデータ(差分データ)を、再配置先サブマップに属する空きスロットに優先的に格納する処理を含んでよい。これにより、再配置先サブマップにおける差分ビットオンの連続性を高めることができる。また、再配置を完了した再配置元サブマップに新たに差分ビットオンが発生することを防止することができる。当該処理の詳細については後述する(図15参照)。
 差分マップ90は上記で説明したとおりである。詳細については後述する(図4参照)。サブマップ管理テーブル52は、各サブマップに関する情報を管理するためのテーブルである。詳細については後述する(図5参照)。同期設定テーブル54は、VOL同期プログラム42に関する設定値が格納されるテーブルである。詳細については後述する(図6参照)。同期時間分析テーブル56は、VOL同期プログラム42にかかる時間を分析するための値が格納されるテーブルである。詳細については後述する(図7参照)。同期時間管理テーブル58は、VOL同期プログラム42にかかる時間に関する情報を管理するためのテーブルである。詳細については後述する(図8参照)。稼働率閾値設定テーブル60は、差分データ再配置プログラム43の実行要否の判定に用いられる閾値が格納されるテーブルである。詳細については後述する(図9参照)。採用判定設定テーブル62は、差分データ再配置プログラム43の実行要否に関する各判定の採用可否が格納されるテーブルである。詳細については後述する(図10参照)。
 図4は、差分マップ90の構成例を示す。
 差分マップ90は、VOLにおけるスロットに付与されているアドレス(「VOLアドレス」という)と、そのスロットに差分データが格納されているか否かを示す差分ビットとを対応付けて管理するための情報である。差分マップ90は、フィールド値として、VOLアドレス101と、差分ビット102と、を有してよい。
 VOLアドレス101は、VOLの差分データ格納領域に含まれるスロットに付与されているアドレスである。
 差分ビット102は、VOLアドレス101の示すスロットに差分データが格納されているか否かを示すフラグである。差分データが格納されているVOLアドレス101に対応する差分ビットは差分ビットオン(「1」)となり、差分データの格納されていないVOLアドレス10に対応する差分ビットは差分ビットオフ(「0」)となる。
 次に、図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つの差分ビットが連続してオンとなる。これを繰り返すことにより、再配置先サブマップにおける差分ビットオンの連続性を高めることができる。
 図5は、サブマップ管理テーブル52の構成例を示す。
 サブマップ管理テーブル52は、差分マップ90に対する分割処理によって分割された各サブマップに関する情報を管理するためのテーブルである。サブマップ管理テーブル52は、フィールド値として、サブマップID111と、VOLアドレス区間112と、差分ビットオンの数113と、差分ビットの総数114と、差分ビットオンの割合115と、順位116と、差分ビットオンの最後尾117とを有してよい。
 サブマップID111は、サブマップを識別するための値である。サブマップID111は、差分マップ90のIDであってもよい。例えば図5におけるサブマップID111「R」は差分マップ90のIDであり、サブマップID111「R1」~「R4」は、差分マップ90「R」から分割されたサブマップのIDであってよい。
 VOLアドレス区間112は、サブマップID111のサブマップに属するVOLアドレスの区間である。
 差分ビットオンの数113は、サブマップID111のサブマップに属する差分ビットオンの数(すなわち、差分データの数)である。
 差分ビットの総数114は、サブマップID111のサブマップに属する差分ビットの総数(すなわちスロットの総数)である。
 差分ビットオンの割合115は、サブマップID111のサブマップにおける差分ビットの総数114に対する差分ビットオンの数113の割合である。
 順位116は、サブマップID111のサブマップにおける差分ビットオンの割合115が、同一の差分マップ90から分割された全てのサブマップの中で何番目に大きいかを示す値である。
 差分ビットオンの最後尾117は、サブマップID111のサブマップにおいて、VOLアドレスの最後尾の差分ビットオンに関する情報である。サブマップID111のサブマップに差分ビットオンが存在しない場合、差分ビットオンの最後尾117は「0」であってよい。サブマップID111のサブマップにおいて、最後尾の差分ビットオンのVOLアドレスが不明の場合、差分ビットオンの最後尾117は「-1」であってよい。サブマップID111のサブマップにおいて、最後尾の差分ビットオンのVOLアドレスが判明している場合、差分ビットオンの最後尾117はその判明しているVOLアドレスであってよい。
 図6は、同期設定テーブル54の構成例を示す。
 同期設定テーブル54は、VOL同期プログラム42に関する設定値が格納されるテーブルである。同期設定テーブル54は、フィールド値として、ペアID121と、上限時間122と、前回の再同期時間123と、安全係数124と、次回の再配置要否125とを有してよい。
 ペアID121は、同期対象(バックアップ対象)のVOLのペアを識別するための値である。ペアID121は、例えば同期対象の2つのVOLのIDの組み合わせであってよい。
 上限時間122は、ペアID121のVOL間において、VOL同期プログラム42にかけることのできる時間の上限を示す値である。上限時間122は、ユーザが設定してもよいし、ストレージコントローラ20が自動的に設定してもよい。
 前回の再同期時間123は、ペアID121のVOL間において、前回のVOL同期プログラム42にかかった時間である。
 安全係数124は、上限時間122に対してどのくらいの余裕を持たせるかを示す値である。例えば図6のペアID121「第1VOL:第2VOL」の上限時間122は「200分」、安全係数124は「10%」である。この場合、第1VOL80aと第2VOL80bとの間におけるVOL同期プログラム42は、「200分×(100%-10%)=180分」以内に完了することが望ましい。安全係数124は、ユーザが設定してもよいし、ストレージコントローラ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にかかる時間が短縮し得るからである。
 ストレージコントローラ20は、ペアID121毎に上限時間122及び安全係数124を入力できるGUI(Graphical User Interface)を生成してもよい。このGUIには、入力された上限時間122及び安全係数124に連動して次回の再配置要否125の結果が表示されてもよい。このGUIは、ユーザが使用しているホストシステム8の表示装置に出力されてよい。
 図7は、同期時間分析テーブル56の構成例を示す。
 同期時間分析テーブル56は、VOL同期プログラム42かかる時間を分析するための値が格納されるテーブルである。同期時間分析テーブル56には、過去のVOL同期プログラム42における実測値を含むレコードと、今後のVOL同期プログラム42における予測値を含むレコードの両方が格納されてよい。同期時間分析テーブル56は、フィールド値として、同期ID131と、Q到達時間132と、差分ビットオンの数133と、差分ビットオンの増加率134と、再同期にかかる時間135とを有してよい。
 同期ID131は、レコードが何れのVOL同期プログラム42に関するものであるかを識別するための情報である。同期ID131は、そのレコードが実測値又は予測値の何れのものであるかを識別する情報を含んでよい。例えば図7の同期ID131「1(実測)」は、そのレコードが、実行済みである1回目のVOL同期プログラム42における実測値を含むことを示す。同期ID131「2(予測)」は、そのレコードが、実行予定である2回目のVOL同期プログラム42における予測値を含むことを示す。同期ID131は、VOL同期プログラム42が実行された時刻又は実行される予定の時刻であってよい。
 Q到達時間132は、同期ID131のVOL同期プログラム42において、差分ビットオン133の数が閾値Qに到達するまでにかかった実際の時間である。Q到達時間132は、実測及び予測の何れのレコードにおいても実測値であってよい。
 実測に係る差分ビットオンの数133は、同期ID131のVOL同期プログラム42が実行されたときの実際の差分ビットオンの数である。予測に係る差分ビットオンの数133は、同期IDのVOL同期プログラム42が実行されるときに予測される差分ビットオンの数である。
 実測に係る差分ビットオンの増加率134は、同期ID131のVOL同期プログラム42が実際に実行されたときまでの間における、単位時間当たりの差分ビットオンの数の増加の割合を示す値である。予測に係る差分ビットオンの増加率134は、同期ID131のVOL同期プログラム42が実行されるときまでの間において予測される、単位時間当たりの差分ビットオンの数の増加の割合を示す値である。
 実測に係る再同期にかかる時間135は、同期ID131のVOL同期プログラム42の開始から完了までに実際にかかった時間である。予測に係る再同期にかかる時間135は、同期ID131のVOL同期プログラム42の開始から完了までにかかると予測される時間である。
 例えば図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」として算出されてよい。
 図8は、同期時間管理テーブル58の構成例を示す。
 同期時間管理テーブル58は、VOL同期プログラム42にかかる時間に関する情報を管理するためのテーブルである。同期時間管理テーブル58は、フィールド値として、ペアID141と、上限時間142と、安全係数143と、許容時間144と、予測時間145と、予測超過時間146と、実測シーケンシャル比率147と、目標シーケンシャル比率148とを有してよい。ペアID141、上限時間142、及び、安全係数143は、上記で説明したとおりである(図6参照)。
 許容時間144は、ペアID141のVOL間におけるVOL同期プログラム42に許容される時間である。許容時間144は、上限時間142と安全係数143に基づいて、ストレージコントローラ20によって自動的に算出されてよい。例えば、上限時間142「400分」、安全係数143「20%」の場合、許容時間144は「400分×(100%-20%)=320分」と算出されてよい。
 予測時間145は、ペアID141のVOL間におけるVOL同期プログラム42の開始から完了までにかかると予測される時間である。ストレージコントローラ20は、過去のVOL同期プログラム42にかかった時間(実測値)に基づいて、この予測時間145を自動的に算出してよい。
 予測超過時間146は、ペアID141のVOL間において、予測時間145が許容時間144をどのくらい超過するかを示す予測値である。例えば、予測時間145「350分」、許容時間144「320分」の場合、予測超過時間146は「350分-320分=30分」と算出されてよい。
 シーケンシャル比率は、差分マップ90において、連続性を有する差分ビットオンの数と、連続性を有さない(ランダムな)差分ビットオンの数の総和に対する連続性を有する差分ビットオンの数の割合を示す値であってよい。連続性を有する差分ビットオンであるか否かは、例えば、差分ビットオンが所定数以上連続しているか否かに基づいて判定されてよい。
 実測シーケンシャル比率147は、ペアID141の同期元VOLにおいて或る時点(例えば現時点)に実測されたシーケンシャル比率である。
 目標シーケンシャル比率148は、ペアID141の同期元VOLが目標とするシーケンシャル比率である。目標シーケンシャル比率148は、VOL同期プログラム42を許容時間144内に完了するために必要なシーケンシャル比率であってよい。すなわち、VOL同期プログラム42を許容時間144内に完了するためには、実測シーケンシャル比率147が目標シーケンシャル比率148以上になるまで差分データ再配置プログラム43を実行すればよい。
 図9は、稼働率閾値設定テーブル60の構成例を示す。
 稼働率閾値設定テーブル60は、差分データ再配置プログラム43の実行要否の判定に用いられるリソース稼働率の閾値が格納されるテーブルである。稼働率閾値設定テーブル60は、フィールド値として、リソースID151と、稼働率閾値152とを有してよい。
 リソースID151は、ストレージ装置10におけるリソースを識別するための情報である。リソースは、例えば、プロセッサリソース、メモリリソース、又は、ネットワークリソースなどであってよい。
 稼働率閾値152は、リソースID151のリソースの稼働率に対する閾値を示す。
 例えば、ストレージコントローラ20は、リソースID151のリソースの稼働率がそのリソースID151に対応する稼働率閾値152を超える場合、そのリソースID151のリソースの稼働率がそのリソースID151に対応する稼働率閾値152以下となるまで、差分データ再配置プログラム43の実行を一時中止する。なぜなら、稼働率が高いときに差分データ再配置プログラム43を実行すると、更に稼働率が高くなり、他の処理の性能(例えばI/Oプログラム41の性能)が低下し得るからである。
 ストレージコントローラ20は、リソースID151毎に稼働率閾値152を入力できるGUIを生成してもよい。このGUIは、ユーザが利用しているホストシステム8の表示装置に出力されてよい。
 図10は、採用判定設定テーブル62の構成例を示す。
 採用判定設定テーブル62は、差分データ再配置プログラム43の実行要否に関する各判定の採用可否が格納されるテーブルである。採用判定設定テーブル62は、フィールド値として、判定内容161と、採用可否162とを有してよい。
 判定内容161は、差分データ再配置プログラム43の実行可否に関する判定の内容を示す情報である。
 採用可否162は、判定内容の判定を採用するか否かを示す情報である。採用可否161は、ユーザが設定してもよいし、ストレージコントローラ20が自動的に設定してもよい。
 図11は、差分データ再配置プログラム43の処理の一例を示すフローチャートである。
 ストレージコントローラ20は、差分データ再配置プログラム43を実行する必要があるか否かを判定する要否判定処理を実行する(S101)。要否判定処理の詳細については後述する(図12参照)。
 ストレージコントローラ20は、差分データ再配置プログラム43を実行する必要が無いと判定した場合(S101:再配置不要)、本処理を終了する。ストレージコントローラ20は、差分データ再配置プログラム43を実行する必要があると判定した場合(S101:再配置必要)、次のS102の処理に進む。
 ストレージコントローラ20は、差分マップ90の分割処理を実行する(S102)。差分マップ90の分割処理の詳細については後述する。
 ストレージコントローラ20は、差分マップ90の分割処理(S102)によって分割されたサブマップに関する処理を実行する(S103)。サブマップに関する処理の詳細については後述する(図13参照)。
 ここで、ストレージコントローラ20は、差分データの再配置が完了したと判定した場合(S103:再配置完了)、本処理を終了する。ストレージコントローラ20は、差分データの再配置が未完了と判定した場合(S103:再配置未完了)、次のS104の処理へ進んでよい。
 ストレージコントローラ20は、差分ビットの交換処理を行う(S104)。交換処理の詳細については後述する。
 ストレージコントローラ20は、後処理を実行する(S105)。後処理の詳細については後述する。そして、ストレージコントローラ20は、S103の処理に戻る。
 図12は、要否判定処理(S101)の詳細を示すフローチャートである。
 ストレージコントローラ20は、差分マップ90を新規に作成し、初期化(例えば差分ビットを全てオフに)する(S201)。
 ストレージコントローラ20は、差分マップ90において、差分ビットオンの数が閾値Q以上となるまでのQ到達時間132「tc」の計測を開始する(S202)。
 ストレージコントローラ20は、同期元のVOLに対するライトコマンドを受信した場合(S210:YES)、差分マップ更新処理を実行し(S211)、そうでない場合(S210:NO)、S210の処理に戻る。差分マップ更新処理の詳細については後述する(図14参照)。
 ストレージコントローラ20は、差分マップ90における差分ビットオンの数が閾値Q以上であるか否かを判定し(S220)、その判定結果が否定的な場合(S220:NO)、S210の処理に戻る。
 その判定結果が肯定的な場合(S220:YES)、ストレージコントローラ20は、Q到達時間「tc」の計測を終了し、その計測した時間「tc」を同期時間分析テーブル56に格納する(S221)。
 ストレージコントローラ20は、予測に係る差分ビットオンの数133「Nc」を算出する(S222)。例えば、ストレージコントローラ20は「Nc=(tp/tc)×Np」を算出する。
 ストレージコントローラ20は、予測に係る再同期にかかる時間135「Tc」を算出する(S223)。例えば、ストレージコントローラ20は「Tc=(tp/tc)×Tp」を算出する。
 ストレージコントローラ20は、予測に係る再同期にかかる時間135「Tc」が許容時間144を超えているか否か判定する(S230)。
 S230の判定結果が肯定的な場合(S230:YES)、ストレージコントローラ20は、差分データの再配置が必要と判定する(S231)。この場合、図12のS102以降の処理が実行される。
 S230の判定結果が否定的な場合(S230:NO)、ストレージコントローラ20は、差分データの再配置が不要と判定する(S232)。この場合、図12のS102以降の処理は実行されない。
 次に、差分マップ90の分割処理(S102)の詳細を説明する。
 ストレージコントローラ20は、差分マップ90における予測に係る差分ビットオンの数133「Nc」に基づいて、差分マップ90の分割数を決定する(S301)。
 ストレージコントローラ20は、その決定した分割数で差分マップ90を分割し、複数のサブマップを生成する(S302)。ストレージコントローラ20は、それぞれのサブマップにおけるサブマップID111、VOLアドレス区間112、及び、差分ビットの総数114を、サブマップ管理テーブル52に格納する。
 ストレージコントローラ20は、それぞれのサブマップにおける差分ビットオンの数113を、サブマップ管理テーブル52に格納する(S303)。
 ストレージコントローラ20は、複数のサブマップの中から差分ビットオンの数113が最も多いサブマップを、再配置先サブマップに選択する(S304)。ストレージコントローラ20は、それぞれのサブマップの差分ビットオンの数113に基づいて、差分ビットオンの割合115、及び、順位116などを算出し、サブマップ管理テーブル52に格納する。
 図13は、サブマップに関する処理(S103)の詳細を示すフローチャートである。
 ストレージコントローラ20は、本処理において未選択のサブマップが存在するか否かを判定する(S401)。未選択のサブマップが存在しない場合(S401:NO)、ストレージコントローラ20は、「再配置完了」と判定し(S412)、図11に示す処理に戻る(RETURN)。この場合、図11に示すサブマップに関する処理(S103)の判定結果が「再配置完了」となり、差分データ再配置プログラム43が終了する。
 未選択のサブマップが存在する場合(S401:YES)、ストレージコントローラ20は、未選択のサブマップの中から、差分ビットオンの数113の最も少ないサブマップを再配置元サブマップに選択する(S402)。
 ストレージコントローラ20は、再配置元サブマップが再配置処理の対象であるか否かを判定する(S403)。例えば、サブマップ管理テーブル52において再配置元サブマップに係る差分ビットオンの最後尾117が「0」の場合(差分ビットオンが存在しない場合)、又は、再配置元サブマップと再配置先サブマップが同一の場合、ストレージコントローラ20は、S403の判定結果を否定的としてよい。S403の判定結果が否定的な場合(S403:NO)、ストレージコントローラ20は、S401の処理に戻る。S403の判定結果が肯定的な場合(S403:YES)、ストレージコントローラ20は次のS410の処理に進む。
 ストレージコントローラ20は、差分マップ90の直近の実測シーケンシャル比率147が、目標シーケンシャル比率148以上であるか否かを判定する(S410)。S410の判定結果が肯定的な場合(S410:YES)、ストレージコントローラ20は「再配置完了」と判定し(S410)、図11に示す処理に戻る(RETURN)。これ以上差分データの再配置をせずとも、現状の差分マップ90のままで、VOL同期プログラム42が許容時間144以内に完了し得るからである。この場合、図12に示すサブマップに関する処理の判定結果が「再配置完了」となり、差分データ再配置プログラム43が終了する。S410の条件が満たされた時点で再配置を完了としているのは、再配置処理にはそれなりに処理負荷がかかるからである。また、差分ビットオン数が多いサブマップを優先的に再配置先に選択することにより、より少ない再配置数でシーケンシャル比率を高めることができる。
 S410の判定結果が否定的な場合(S410:NO)、ストレージコントローラ20はS413の処理に進む。なお、採用判定設定テーブル62において、このS410の判定内容161を採用しない(採用可否162「NO」)と設定されている場合、ストレージコントローラ20は、このS410の判定を実行せずにそのままS413の処理に進んでよい。
 ストレージコントローラ20は、再配置元サブマップに属する差分ビットオンの中の1つを交換元の差分ビットオンに選択する(S413)。
 ストレージコントローラ20は、直近に測定されたリソースの稼働率が、稼働率閾値設定テーブル60におけるこのリソースのID151に対応する稼働率閾値152以上であるか否かを判定する(S420)。
 S420の判定結果が肯定的な場合(S420:YES)、ストレージコントローラ20は、その交換元の差分ビットオンを所定のキューに登録し(S431)、一定時間待機後(S432)、S420の処理に戻る。
 S420の判定結果が否定的な場合(S420:NO)、ストレージコントローラ20は、「再配置未完了」と判定し(S421)、図12に示す処理に戻る(RETURN)。この場合、図11に示すサブマップに関する処理(S103)の判定結果が「再配置未完了」となり、次の交換処理(S104)が実行される。
 次に、交換処理(S104)の詳細を説明する。
 ストレージコントローラ20は、再配置先サブマップにおける差分ビットオフの中から、交換先の差分ビットオフを選択する(S501)。ここで、ストレージコントローラ20は、再配置先サブマップにおいて、VOLアドレス101が最先の差分ビットオフを優先的に選択してよい。再配置先サブマップにおいて、差分ビットオンができるだけ連続して配置されるようにするためである。
 ストレージコントローラ20は、再配置元サブマップにおいて交換元に選択された差分ビットオンと、再配置先サブマップにおいて交換先に選択された差分ビットオンとを交換する(S502)。すなわち、ストレージコントローラ20は、交換元の差分ビットオンに対応する差分データの格納されているスロットと、交換先の差分ビットオフに対応する空きスロットとを交換する。そして、ストレージコントローラ20は、図11に示す処理に戻る(RETURN)。
 次に、後処理(S105)の詳細を説明する。
 ストレージコントローラ20は、サブマップ管理テーブル52において、再配置先サブマップに係るレコードの差分ビットオンの数113、差分ビットオンの割合115、及び、差分ビットオンの最後尾117を更新する(S601)。
 ストレージコントローラ20は、サブマップ管理テーブル52において、再配置元サブマップに係るレコードの差分ビットオンの数113、差分ビットオンの割合115、及び、差分ビットオンの最後尾117を更新する(S602)。
 ストレージコントローラ20は、同期時間管理テーブル58において、実測シーケンシャル比率147を更新する(S603)。そして、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。図11に示す処理において、ストレージコントローラ20は、S103の処理に戻る。
 図14は、差分マップ更新処理(S211)の一例を示すフローチャートである。
 差分マップ更新処理(S211)は、図12に示すように、同期元VOLに対するライトコマンドを受信した場合に実行される。
 ストレージコントローラ20は、再配置先サブマップが既に決定しているか否かを判定する(S701)。再配置先サブマップが未だ決定していない場合(S701:NO)、ストレージコントローラ20はS710の処理に進む。
 再配置先サブマップが既に決定している場合(S701:YES)、ストレージコントローラ20は次に、ライトコマンドの指定するVOLアドレス101が再配置先サブマップに属するか否かを判定する(S702)。S702の判定結果が肯定的な場合(S702:YES)、ストレージコントローラ20はS710の処理に進む。
 S702の判定結果が否定的な場合(S702:NO)、ストレージコントローラ20は、ライトコマンドの指定するVOLアドレス101のスロットと、再配置先サブマップに属する空きスロットとを交換する(S703)。また、ストレージコントローラ20は、再配置先サブマップにおける差分ビットオフの内、最先のVOLアドレス101を優先的に交換先に選択してよい。そして、ストレージコントローラ20はS710の処理に進む。
 S710の処理において、ストレージコントローラ20は、ライト先のスロットにライトデータ(つまり差分データ)を格納する(S710)。ここで、S703でライト先のスロットが交換されている場合、差分データは、再配置先サブマップに属する交換先のスロットに格納されることになる。
 ストレージコントローラ20は、差分マップ90を更新する(S711)。すなわち、ストレージコントローラ20は、差分マップ90において、差分データが格納されたスロットに対応する差分ビットをオンに更新する。
 ストレージコントローラ20は、サブマップ管理テーブル52を更新する(S712)。すなわち、ストレージコントローラ20は、サブマップ管理テーブル52において、再配置先サブマップに係るレコードの差分ビットオンの数に、S711において差分ビットがオンに更新された数を加算する。
 ストレージコントローラ20は、サブマップ管理テーブル52の差分データが格納されたサブマップに係るレコードの差分ビットオンの最後尾117を参照し、差分データが格納されたサブマップの差分ビットオンの最後尾117のVOLアドレス101が判明しているか否かを判定する(S720)。
 S720の判定結果が否定的な場合(S720:NO)、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。
 S720の判定結果が肯定的な場合(S720:YES)、ストレージコントローラ20は次に、差分データのライト先のVOLアドレス101が、その差分ビットオンの最後尾のVOLアドレス101よりも後方であるか否かを判定する(S721)。
 S721の判定結果が否定的な場合(S721:NO)、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。
 S721の判定結果が肯定的な場合(S721:YES)、ストレージコントローラ20は次に、サブマップ管理テーブル52において、当該サブマップに係るレコードの差分ビットオンの最後尾117を「-1」(不明)に更新する(S722)。そして、ストレージコントローラ20は、図12に示す処理に戻る(RETURN)。
 図15は、VOL同期プログラム42の処理の一例を示すフローチャートである。
 ストレージコントローラ20は、差分データ再配置プログラム43を実行したか否かを判定する(S801)。差分データ再配置プログラム43を実行しなかった場合(S801:NO)、ストレージコントローラ20は、通常のVOL間の再同期処理を実行し(S810)、S830の処理へ進む。
 差分データ再配置プログラム43を実行した場合(S801:YES)、ストレージコントローラ20は、次のS802の処理へ進む。
 ストレージコントローラ20は、本VOL同期プログラム42において未選択のサブマップが存在するか否かを判定し(S802)、未選択のサブマップが存在しない場合(S802:NO)、S830の処理へ進む。
 未選択のサブマップが存在する場合(S802:YES)、ストレージコントローラ20は、未選択のサブマップの中から、差分ビットオンの数が最大のサブマップを選択する(S803)。
 ストレージコントローラ20は、選択したサブマップにおいて差分ビットオンの最後尾117のVOLアドレス101が判明しているか否かを判定する(S820)。
 選択したサブマップにおいて差分ビットオンの最後尾117のVOLアドレス101が不明な場合(S820:NO)、ストレージコントローラ20は次の処理を行う。すなわちストレージコントローラ20は、そのサブマップ全体を探索して差分ビットオンを抽出する。そして、ストレージコントローラ20は、その抽出した差分ビットオンに対応する複数のVOLアドレス101のそれぞれの差分データを、ランダムアクセスのコマンドによって取得する(S822)。そして、ストレージコントローラ20は、S802の処理に戻る。
 選択したサブマップにおいて差分ビットオンの最後尾117のVOLアドレス101が判明している場合(S803:YES)、ストレージコントローラ20は次の処理を行う。すなわちストレージコントローラ20は、そのサブマップの先頭のVOLアドレス101から差分ビットオンの最後尾117のVOLアドレス101までの間の全ての差分データをシーケンシャルアクセスのコマンドによって一度に取得する(S822)。そして、ストレージコントローラ20は、S802の処理に戻る。
 S830においてストレージコントローラ20は、S821及びS822で取得した差分データを、同期先のストレージ装置に送信する(S830)。
 そして、ストレージコントローラ20は、同期時間管理テーブル58を更新し(S831)、本処理を終了する。
 以上、幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
 上述では、2つのストレージ装置10aの有する第1VOL80aとストレージ装置10bの有する第2VOL80bとの間におけるコピー処理(リモートコピー処理)の実施形態について説明したが、上述の実施形態の内容は、他の構成にも適用可能である。例えば、上述の実施形態の内容は、1つのストレージ装置内におけるコピー処理(ローカルコピー処理)においても適用可能である。この場合、1つのストレージ装置10が、1つのストレージコントローラ20と、第1VOL80aと、第2VOL80bとを有し、1つのストレージコントローラ20において、第1VOL80aに関する差分マップ90aと第2VOL80bに関する差分マップ80bとを管理してよい。そして、1つのストレージ装置10内における第1VOL80aと第2VOL80bとの間のローカルコピー処理に、上述の実施形態の内容を適用してもよい。
 1:ストレージシステム 10:ストレージ装置 20:ストレージコントローラ 31:PDEV 80:ボリューム
 
 

 

Claims (12)

  1.  第1のボリュームに格納されたデータが格納される1以上の記憶デバイスと、
     前記1以上の記憶デバイスを制御するストレージコントローラと
    を有し、
     前記第1のボリュームは、複数の記憶領域である複数のスロットに分割されており、
     前記ストレージコントローラは、所定のタイミング以降に格納されたデータを含む差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを前記複数のスロットの各々について表す差分情報を有し、
     前記ストレージコントローラは、
      前記差分情報を複数の差分情報部分に分割する分割処理と、
      前記複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択する選択処理と、
      前記第2の差分情報部分に属する使用スロットのアドレスと、前記第1の差分情報部分に属する空きスロットのアドレスとを交換する交換処理と
    を実行する
    ストレージシステム。
  2.  前記ストレージコントローラは前記交換処理において、前記第2の差分情報部分に属する前記使用スロットのアドレスと、前記第1の差分情報部分に属する空きスロットの内の最先のアドレスとを交換する
    請求項1に記載のストレージシステム。
  3.  前記ストレージコントローラは、
      前記第1のボリュームに対するデータの格納要求を新たに受信した場合、前記受信した格納要求から特定される格納先が前記第2の差分情報部分に属するスロットであるか否かを判定し、
      当該判定結果が肯定的な場合、前記データの格納要求先のスロットのアドレスと、前記第1の差分情報部分に属する空きスロットのアドレスとを交換し、前記第1の差分情報部分に属する交換後のスロットに前記データを格納する
    請求項2に記載のストレージシステム。
  4.  前記第1のボリュームとペアを構成する第2のボリュームをさらに有し、
     前記ストレージコントローラは、前記交換処理の実行後、前記第1のボリュームから前記第1の差分情報部分に属する連続する複数の使用ブロックに格納されている複数の差分データをシーケンシャルに取得し、その取得した複数の差分データを前記第2のボリュームにコピーするコピー処理を実行する
    請求項3に記載のストレージシステム。
  5.  前記ストレージコントローラは、前記差分情報における複数の使用スロットの数に対する連続する使用スロットの数の割合に関する値であるシーケンシャル比率が、所定の目標のシーケンシャル比率よりも小さいか否かを判定し、当該判定結果が肯定的な場合、前記シーケンシャル比率が前記目標のシーケンシャル比率以上となるまで前記交換処理を実行する
    請求項4に記載のストレージシステム。
  6.  前記ストレージコントローラは、前記コピー処理を所定の周期で実行するにあたり、
      今回の周期の前記コピー処理の実行時における差分データの予測数を、今回及び過去の周期における差分データの増加率に基づいて算出し、
      前記差分データの予測数が所定の閾値よりも大きいか否かを判定し、当該判定結果が肯定的な場合、前記交換処理を実行する
    請求項4に記載のストレージシステム。
  7.  前記ストレージコントローラは、前記分割処理において、前記差分情報に属する前記使用スロットの数及び前記空きスロットの数に基づいて前記差分情報の分割数を決定する
    請求項1に記載のストレージシステム。
  8.  前記ストレージコントローラは、前記選択処理において、前記複数の差分情報部分のそれぞれに属する前記使用スロットの数に基づいて、前記第1の差分情報部分及び前記第2の差分情報部分を選択する
    請求項1に記載のストレージシステム。
  9.  前記ストレージコントローラは、前記選択処理において、前記複数の差分情報部分の内、前記使用スロットの数及び前記空きスロットの数の合計に対する前記使用スロットの数の割合の大きい差分情報部分を優先的に前記第1の差分情報部分に選択する
    請求項8に記載のストレージシステム。
  10.  前記ストレージコントローラは、前記選択処理において、前記複数の差分情報部分の内、前記使用スロットの数及び前記空きスロットの数の合計に対する前記使用スロットの数の割合の小さい差分情報部分を優先的に前記第2の差分情報部分に選択する
    請求項8に記載のストレージシステム。
  11.  前記ストレージコントローラは、当該ストレージコントローラに関する稼働率が所定の閾値以上ならば、前記稼働率が所定の閾値未満となった後に前記交換処理を実行する
    請求項1に記載のストレージシステム。
  12.  格納されたデータを1以上の記憶デバイスに格納する第1のボリュームを、複数の記憶領域である複数のスロットに分割し、
    所定のタイミング以降に格納されたデータを含む差分データが格納されている使用スロットであるか差分データが格納されていない空きスロットであるかを前記複数のスロットの各々について表す差分情報を、複数の差分情報部分に分割し、
     前記複数の差分情報部分の中から第1の差分情報部分及び第2の差分情報部分を選択し、
      前記第2の差分情報部分に属する使用スロットのアドレスと、前記第1の差分情報部分に属する空きスロットのアドレスとを交換する
    記憶制御方法。
     

     
PCT/JP2015/053964 2015-02-13 2015-02-13 ストレージシステム、及び、記憶制御方法 WO2016129101A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/053964 WO2016129101A1 (ja) 2015-02-13 2015-02-13 ストレージシステム、及び、記憶制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/053964 WO2016129101A1 (ja) 2015-02-13 2015-02-13 ストレージシステム、及び、記憶制御方法

Publications (1)

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

Family

ID=56614339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/053964 WO2016129101A1 (ja) 2015-02-13 2015-02-13 ストレージシステム、及び、記憶制御方法

Country Status (1)

Country Link
WO (1) WO2016129101A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078899A (ja) * 1996-09-02 1998-03-24 Hitachi Ltd 情報記録再生装置
JP2005332067A (ja) * 2004-05-18 2005-12-02 Hitachi Ltd バックアップ取得方法及びディスクアレイ装置
JP2010176180A (ja) * 2009-01-27 2010-08-12 Nec Corp ストレージシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078899A (ja) * 1996-09-02 1998-03-24 Hitachi Ltd 情報記録再生装置
JP2005332067A (ja) * 2004-05-18 2005-12-02 Hitachi Ltd バックアップ取得方法及びディスクアレイ装置
JP2010176180A (ja) * 2009-01-27 2010-08-12 Nec Corp ストレージシステム

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 (ja) ストレージシステム及びバックアップ/リカバリ方法
JP5981563B2 (ja) 情報記憶システム及び情報記憶システムの制御方法
JP6286622B2 (ja) ストレージシステム
JP6328335B2 (ja) ストレージ装置及びその制御方法
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
US8639898B2 (en) Storage apparatus and data copy method
JP6007332B2 (ja) ストレージシステム及びデータライト方法
WO2014155525A1 (ja) ストレージシステム及び制御方法
US10579540B2 (en) Raid data migration through stripe swapping
CN113360082B (zh) 存储***及其控制方法
CN112181736A (zh) 分布式存储***及分布式存储***的配置方法
US10067882B2 (en) Storage system and storage control method
US11740823B2 (en) Storage system and storage control method
WO2016139787A1 (ja) ストレージシステム及びデータ書込み制御方法
US8572347B2 (en) Storage apparatus and method of controlling storage apparatus
JP6019940B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
US11061604B2 (en) Method and storage system architecture for accessing data by means of a compatible module
JP5712535B2 (ja) ストレージ装置、制御部およびストレージ装置制御方法
WO2018055686A1 (ja) 情報処理システム
WO2016129101A1 (ja) ストレージシステム、及び、記憶制御方法
JP2020106999A (ja) ストレージシステムおよびストレージシステムのデータ管理方法
JP2019121129A (ja) 不揮発性メモリモジュール
WO2018167950A1 (ja) ストレージシステム及び複製制御方法

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