WO2014010011A1 - プログラム、データ管理方法、および情報処理装置 - Google Patents

プログラム、データ管理方法、および情報処理装置 Download PDF

Info

Publication number
WO2014010011A1
WO2014010011A1 PCT/JP2012/067462 JP2012067462W WO2014010011A1 WO 2014010011 A1 WO2014010011 A1 WO 2014010011A1 JP 2012067462 W JP2012067462 W JP 2012067462W WO 2014010011 A1 WO2014010011 A1 WO 2014010011A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
read
disk
storage unit
updated
Prior art date
Application number
PCT/JP2012/067462
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/JP2012/067462 priority Critical patent/WO2014010011A1/ja
Publication of WO2014010011A1 publication Critical patent/WO2014010011A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Definitions

  • the present invention relates to a program for managing data at the time of creating a snapshot, a data management method, and an information processing apparatus.
  • snapshot is saving the contents of a disc at a certain point in a reproducible state.
  • subsequent writing to the disk is prohibited and the disk is stored as an original disk.
  • Another disk is used as a new operation disk, and difference data from the time of snapshot creation is stored in the new operation disk.
  • Snap shot creation can be repeated. In the creation of the second and subsequent snapshots, subsequent writing to the active disk at that time is prohibited, and a new active disk for storing subsequent differential data is added. As described above, when snapshots are repeatedly collected, the disk for storing the difference data has a multistage configuration.
  • the data is read from the saved original disk or the disk storing the difference data. If the disk storing the difference data has a multi-stage configuration, for example, it is determined in order from the disk storing the new difference data whether or not the data to be read is stored. If no corresponding data is stored in any disk that stores the difference data, it is finally determined whether or not the original disk has the data. Then, the data to be read is read from the disk storing the data to be read.
  • a snapshot of only a data section that is desired to be backed up from the mass storage means is used instead of taking a snapshot of all data in the mass storage means.
  • the data read efficiency deteriorates as the number of snapshot creation increases. For example, if data exists on the original disk in data reading after repeated creation of snapshots, the presence / absence of data to be read is determined for a large number of disks. Therefore, when snapshot creation is repeated, it takes time to read data existing on the original disk or a disk that was used as an operational disk in the early days.
  • an object of the present invention is to provide a program, a data management method, and an information processing apparatus that improve data reading efficiency when a snapshot is created a plurality of times.
  • a storage unit is associated with each of a plurality of time zones in the information processing apparatus, and updated data is written in the corresponding time zone, and a snapshot is created.
  • the request is input, the corresponding storage means is selected, and the new storage means for writing data to be updated after the snapshot creation request is input is later than the time zone corresponding to the selected storage means.
  • the updated data is copied, and in response to a read request designating the read target data, it is determined whether the read target data is stored in a storage unit other than the copy source storage unit in the copy, and the read A process of reading the data to be read from the storage means storing the target data is executed.
  • FIG. 1 is a diagram illustrating a functional configuration example of an apparatus according to the first embodiment.
  • the information processing apparatus X includes a plurality of storage units 1a, 1b, 1c, 1d, and 1e, a selection unit 2, a setting unit 3, a copy unit 4, a determination unit 5, and a reading unit 6.
  • the storage means 1a, 1b, 1c, 1d are associated with a plurality of time zones T1, T2, T3, T4, respectively.
  • the plurality of time zones T1, T2, T3, and T4 are time zones obtained by, for example, dividing the past snapshot creation request input time points (time t1, t2, t3) as boundaries.
  • data updated in the corresponding time zone is written.
  • a storage unit that is the next determination target in determining whether there is data to be read is set.
  • the storage means that is the next determination target of each storage means is indicated by a dashed arrow.
  • the next determination target of the storage unit 1d is the storage unit 1c
  • the next determination target of the storage unit 1c is the storage unit 1b
  • the next determination target of the storage unit 1b is the storage unit 1a.
  • the selection unit 2 selects a corresponding storage unit when a snapshot creation request is input. For example, the selection unit 2 selects one storage unit according to the data update amount after the snapshot is created. Specifically, for example, if there is a storage unit in which data updated after the corresponding time period exceeds a predetermined amount, the selection unit 2 selects the storage unit. Further, the selection unit 2 selects the storage unit corresponding to the latest time zone if there is no storage unit for which data updated after the corresponding time zone exceeds a predetermined amount.
  • the selection unit 2 selects the storage unit with the latest corresponding time zone among the corresponding storage units. For example, if there is a storage unit in which the ratio of the plurality of blocks that are storage units of data to the total number of blocks updated after the corresponding time zone exceeds a predetermined threshold, the selection unit 2 Select storage means.
  • the setting unit 3 is selected as the next determination target in the determination of the presence / absence of data to be read, with respect to the new storage unit 1e to which data to be updated after the input time (time t4) of the new snapshot creation request is written. Set the storage means.
  • the copy unit 4 copies the data updated after the time zone corresponding to the selected storage unit to the new storage unit 1e. For example, the copy unit 4 copies the data stored in the storage unit associated with the time zone later than the time zone associated with the selected storage unit to the storage unit 1e.
  • the update data input in the subsequent time zone T5 is written to the storage unit 1e.
  • the determination means 5 sets the new storage means 1e as the first determination target, and sequentially sets the storage means set as the next determination target in the determination target storage means. To be judged. Then, the determination unit 5 determines whether or not the data to be read is stored in the storage unit to be determined. For example, an address list of data written in the storage means may be provided in association with each of the storage means 1a, 1b, 1c, 1d, and 1e. In this case, the determination unit 5 refers to the address list of the determination target storage unit and determines whether there is data to be read in the storage unit.
  • the reading unit 6 reads the data to be read from the storage unit that is determined to store the data to be read.
  • a snapshot creation request is input at time t4 when update data is being written to the storage unit 1d.
  • the selection unit 2 selects the storage unit that is the next determination target of the storage unit 1e.
  • the storage area of the first storage unit 1a is managed in units of blocks, and data in 60% of the blocks is updated in the time zone T2.
  • the time zone T3 it is assumed that data in 10% of blocks other than the block updated in the time zone T2 is updated.
  • data in 10% of blocks other than the blocks updated in the time zones T2 and T3 are updated.
  • the selection means 2 shall select the memory
  • the storage means 1d has 10% of the blocks updated after the corresponding time zone T4 at time t4.
  • the storage unit 1c has 20% of blocks updated after the corresponding time zone T3 at time t4.
  • the storage unit 1b has 80% of the blocks updated after the corresponding time zone T2 at time t4, which exceeds 70%. Therefore, the selection unit 2 selects the storage unit 1b. For example, the selection unit 2 notifies the setting unit 3 and the copy unit 4 of the identification information “0x8002” of the selected storage unit 1b.
  • the setting unit 3 sets that the next determination target is the storage unit 1b with respect to the storage unit 1e that stores the update data of the time zone T5 after the input time (time t4) of the new snapshot creation request.
  • the copy unit 4 copies the data in the storage units 1c and 1d that store the update data input in the time zones T3 and T4 after the selected storage unit 1b to the storage unit 1e, for example, in units of blocks.
  • the same block data is updated a plurality of times within the time zones T3 and T4, the latest block data is copied to the storage means 1e.
  • the update data input in the subsequent time zone T5 is written in the storage unit 1e.
  • the determination unit 5 determines the time zone in which the update data was written in order from the later storage unit. A determination is made whether data is stored. For example, it is assumed that there is a request to read data that has not been updated after being input in the time zone T1 and stored in the storage unit 1a. In this case, the determination unit 5 first determines whether or not the data to be read is stored in the storage unit 1e. Next, the determination unit 5 determines whether or not data to be read is stored in the storage unit 1b that is the next determination target of the storage unit 1e.
  • the determination unit 5 determines whether or not the data to be read is stored in the storage unit 1a that is the next determination target of the storage unit 1b.
  • the determination unit 5 detects that data to be read is stored in the storage unit 1a. Thereafter, the determination unit 5 notifies the reading unit 6 of the identification information “0x8001” stored in the storage unit 1a, for example. Then, the data to be read is read from the storage unit 1 a by the reading unit 6.
  • the selection unit 2, the setting unit 3, the copy unit 4, the determination unit 5, and the reading unit 6 can be realized by, for example, a processor included in the information processing apparatus X executing a program.
  • the storage units 1a, 1b, 1c, 1d, and 1e can be realized by, for example, a RAM (Random Access Memory) or an HDD (Hard Disk Drive) included in the information processing apparatus X.
  • FIG. 2 is a diagram illustrating a system configuration example according to the second embodiment.
  • the management server 100 is connected to the two networks 21 and 22.
  • a plurality of business servers 31, 32,... Are connected to the network 21.
  • a plurality of RAID devices 41, 42, 43,... are connected to the network 22.
  • the management server 100 is a computer that creates virtual disks using RAID devices 41, 42, 43,. For example, the management server 100 generates a virtual RAID group by combining LUs (logical units) of the RAID devices 41, 42, 43,. The management server 100 sets the virtual RAID group generated in this way as a virtual disk.
  • LUs logical units
  • Management server 100 constructs a logical volume with one or a plurality of virtual disks. Then, the management server 100 accepts access specifying the address in the logical volume from the business servers 31, 32,. Then, the management server 100 accesses the physical area in the RAID device assigned to the designated address.
  • the management server 100 can create a snapshot of information stored in the logical volume. For example, when the management server 100 receives a snapshot creation request from the business servers 31, 32,..., The subsequent access to the data stored in the logical volume at that time is limited to read only (read only). To do. Thereafter, when there is a request to write data to the logical volume, the management server 100 stores the data as difference data.
  • FIG. 3 is a diagram illustrating a configuration example of hardware of the management server used in the present embodiment.
  • the management server 100 is entirely controlled by a processor 101.
  • a RAM 102 and a plurality of peripheral devices are connected to the processor 101 via a bus 109.
  • the processor 101 may be a multiprocessor.
  • the processor 101 is, for example, a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), or a PLD (Programmable Logic Device).
  • the processor 101 may be a combination of two or more elements among CPU, MPU, DSP, ASIC, and PLD.
  • the RAM 102 is used as a main storage device of the management server 100.
  • the RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the processor 101.
  • the RAM 102 stores various data necessary for processing by the processor 101.
  • Peripheral devices connected to the bus 109 include an HDD 103, a graphic processing device 104, an input interface 105, an optical drive device 106, a device connection interface 107, and network interfaces 108a and 108b.
  • the HDD 103 magnetically writes and reads data to and from the built-in disk.
  • the HDD 103 is used as an auxiliary storage device of the management server 100.
  • the HDD 103 stores an OS program, application programs, and various data.
  • a semiconductor storage device such as a flash memory can also be used as the auxiliary storage device.
  • a monitor 11 is connected to the graphic processing device 104.
  • the graphic processing device 104 displays an image on the screen of the monitor 11 in accordance with a command from the processor 101.
  • Examples of the monitor 11 include a display device using a CRT (Cathode Ray Tube) and a liquid crystal display device.
  • a keyboard 12 and a mouse 13 are connected to the input interface 105.
  • the input interface 105 transmits a signal transmitted from the keyboard 12 or the mouse 13 to the processor 101.
  • the mouse 13 is an example of a pointing device, and other pointing devices can also be used. Examples of other pointing devices include a touch panel, a tablet, a touch pad, and a trackball.
  • the optical drive device 106 reads data recorded on the optical disk 14 using a laser beam or the like.
  • the optical disk 14 is a portable recording medium on which data is recorded so that it can be read by reflection of light.
  • the optical disk 14 includes a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), a CD-R (Recordable) / RW (ReWritable), and the like.
  • the device connection interface 107 is a communication interface for connecting peripheral devices to the management server 100.
  • the memory device 15 and the memory reader / writer 16 can be connected to the device connection interface 107.
  • the memory device 15 is a recording medium equipped with a communication function with the device connection interface 107.
  • the memory reader / writer 16 is a device that writes data to the memory card 17 or reads data from the memory card 17.
  • the memory card 17 is a card type recording medium.
  • the network interface 108a is connected to the network 21.
  • the network interface 108a transmits / receives data to / from the business servers 31, 32,... Via the network 21.
  • the network interface 108b is connected to the network 22.
  • the network interface 108b transmits / receives data to / from the RAID devices 41, 42, 43,.
  • the information processing apparatus X shown in the first embodiment can also be realized by hardware similar to the management server 100 shown in FIG.
  • the management server 100 implements the processing functions of the second embodiment by executing a program recorded on a computer-readable recording medium, for example.
  • the program describing the processing contents to be executed by the management server 100 can be recorded in various recording media.
  • a program to be executed by the management server 100 can be stored in the HDD 103.
  • the processor 101 loads at least a part of the program in the HDD 103 into the RAM 102 and executes the program.
  • a program to be executed by the management server 100 can also be recorded on a portable recording medium such as the optical disc 14, the memory device 15, and the memory card 17.
  • the program stored in the portable recording medium becomes executable after being installed in the HDD 103 under the control of the processor 101, for example.
  • the processor 101 can also read and execute a program directly from a portable recording medium.
  • FIG. 4 is a block diagram illustrating functions of the management server.
  • the management server 100 includes a data management unit 110, a management information storage unit 120, a snapshot creation unit 130, and an access unit 140.
  • the data management unit 110 manages the logical volume 110a using the virtual disks 111, 112,.
  • the virtual disks 111, 112,... are, for example, RAID groups (or LUs within the RAID group) created by software RAID using LUs of RAID devices 41, 42, 43,.
  • the management information storage unit 120 stores management information used for creating a snapshot and accessing data. Details of the management information will be described later (see FIG. 5).
  • the snapshot creation unit 130 creates a snapshot of the logical volume 110a managed by the data management unit 110. For example, the snapshot creation unit 130 creates a snapshot in response to a snapshot creation request from the business servers 31, 32,. When creating a snapshot, the snapshot creation unit 130 causes the data management unit 110 to create a new virtual disk and sets the virtual disk as a new operational disk. Thereafter, data writing to the logical volume 110a is performed on the new operation disk. As a result, the data state at the time of creating the snapshot is stored in the virtual disk incorporated in the logical volume 110a before the creation of the snapshot.
  • the snapshot creation unit 130 When the snapshot creation unit 130 creates a new operation disk, it determines the master disk of the operation disk.
  • the master disk is a virtual disk that performs the next determination of the presence / absence of data when data to be read is not stored in the active disk.
  • the snapshot creation unit 130 stores information on the master disk corresponding to the new active disk in the management information storage unit 120.
  • the access unit 140 accesses data in the logical volume 110a managed by the data management unit 110 in response to a data access request from the business servers 31, 32,. For example, the access unit 140 writes data to the operation disk. Further, when reading data, the access unit 140 determines the presence or absence of data to be read while tracing the master disk in order from the active disk. Then, the access unit 140 reads the corresponding data from the virtual disk having the data to be read.
  • the snapshot creation unit 130 is an example of a function including the selection unit 2, the setting unit 3, and the copy unit 4 in the first embodiment illustrated in FIG.
  • the access unit 140 is an example of a function including the determination unit 5 and the reading unit 6 in the first embodiment shown in FIG.
  • the virtual disks 111, 112,... Are examples of the storage units 1a, 1b, 1c, 1d, and 1e in the first embodiment shown in FIG.
  • FIG. 5 is a diagram illustrating an example of a data structure of the management information storage unit.
  • the management information storage unit 120 stores a plurality of bitmaps 121a, 121b, 121c,..., A plurality of update block lists 122a, 122b, 122c,.
  • Bitmaps 121a, 121b, 121c,... are provided for each virtual disk newly incorporated in the logical volume 110a when the snapshot is created.
  • the device numbers of corresponding virtual disks are set in the bitmaps 121a, 121b, 121c,.
  • the device number is unique information in the virtual disk system.
  • the bitmap includes a set of bits corresponding to each block when the storage area of the logical volume 110a is divided into blocks. Each bit is a flag indicating whether or not the data of the corresponding block has been updated.
  • the update block lists 122a, 122b, 122c,... are provided for each virtual disk newly incorporated in the logical volume 110a when the snapshot is created.
  • the device numbers of the corresponding virtual disks are set in the update block lists 122a, 122b, 122c,.
  • the addresses of blocks written in the corresponding virtual disks are registered in the update block lists 122a, 122b, 122c,.
  • the master disk management information 123 management information of virtual disks incorporated in the logical volume 110a is registered. For example, in the master disk management information 123, a device number and master disk information are registered in association with virtual disk attribute information.
  • the virtual disk attribute information is attribute information that distinguishes whether a virtual disk is used as an active disk or a virtual disk that is prohibited from being updated by creating a snapshot. When a snapshot is created, the virtual disk that is the active disk is changed. At this time, a serial number indicating the depth of the hierarchy at the time of accessing the virtual disk is assigned as attribute information to a virtual disk (old operational disk) that is no longer an active disk.
  • the attribute information of the virtual disk that has been used as the active disk until immediately before the i-th (i is an integer greater than or equal to 1) snapshot creation is “snapshot #i”.
  • the virtual disk whose attribute information is “snapshot # 1” is an original disk in which all data at the time of creating the first snapshot is stored.
  • the master disk information is the device number of the virtual disk that is the master disk of the corresponding virtual disk.
  • FIG. 6 is a flowchart illustrating an example of a procedure of data writing processing. In the following, the process illustrated in FIG. 6 will be described in order of step number.
  • the data write process is executed when a data write request specifying the address of a block to be written is input to the management server 100 from any business server.
  • Step S101 The access unit 140 sets the bit corresponding to the write target block in the bitmap of the operation disk to 1. For example, the access unit 140 acquires a bitmap of the operational disk from the management information storage unit 120. Next, the access unit 140 changes the bit corresponding to the write request block in the acquired bitmap to “1”. Then, the access unit 140 writes back the bitmap in which the bit value is changed to the management information storage unit 120.
  • the access unit 140 registers the address of the write target block in the update block list of the operational disk. For example, the access unit 140 acquires an updated block list of the active disk from the management information storage unit 120. Next, the access unit 140 registers the address of the write target block in the acquired update block list. Then, the access unit 140 writes the updated block list after address registration back to the management information storage unit 120.
  • the access unit 140 writes the data of the block designated by the write request to the operation disk.
  • the access unit 140 acquires device information of the active disk from the master disk management information 123 in the management information storage unit 120.
  • the access unit 140 requests the data management unit 110 to write the data by specifying the acquired device information as a write destination virtual disk.
  • the data management unit 110 writes the designated data of the virtual disk that is currently used as the active disk.
  • the data management unit 110 identifies the LU of the RAID device that configures the virtual disk by software RAID, and writes the data to the corresponding LU in the RAID device.
  • FIG. 7 is a flowchart illustrating an example of a procedure of snapshot creation processing. In the following, the process illustrated in FIG. 7 will be described in order of step number.
  • the snapshot creation unit 130 selects an active disk. For example, the snapshot creation unit 130 refers to the master disk management information 123 in the management information storage unit 120 and acquires the device number of the virtual disk whose attribute information is “active disk”.
  • the snapshot creation unit 130 creates an update bitmap.
  • the update bitmap is a string of bits corresponding to each block in the logical volume 110a.
  • the initial value of each bit in the update bitmap is “0”.
  • Step S123 The snapshot creation unit 130 determines whether or not the selected operational disk is an original disk. For example, if the virtual disk managed by the data management unit 110 is only the operational disk, the operational disk is the original disk. If the operation disk is an original disk, the snapshot creation unit 130 proceeds with the process to step S131. If the operating disk is not the original disk, the snapshot creating unit 130 advances the process to step S124.
  • Step S124 The snapshot creation unit 130 performs an OR operation between the bitmap of the selected virtual disk and the update bitmap. In the logical sum operation, a logical sum is calculated between bits corresponding to the same block in each bitmap.
  • the snapshot creation unit 130 calculates a dirty rate of the bitmap obtained by the logical sum operation.
  • the dirty rate is the proportion of the bits whose value is “1” among all the bits in the bitmap.
  • the snapshot creation unit 130 determines whether or not the dirty rate exceeds a preset threshold value. If the dirty rate exceeds the threshold, the snapshot creation unit 130 advances the process to step S127. If the dirty rate is equal to or less than the threshold, the snapshot creation unit 130 advances the process to step S128.
  • Step S127 If the dirty rate exceeds the threshold value, the snapshot creation unit 130 determines the selected virtual disk as a master disk of a new operational disk. Thereafter, the snapshot creation unit 130 proceeds with the process to step S133.
  • Step S128 If the dirty rate is equal to or less than the threshold, the snapshot creation unit 130 determines whether the master disk of the selected virtual disk is an original disk.
  • the master disk of the selected disk can be grasped by referring to the master disk management information in the management information storage unit 120, for example. If the master disk is an original disk, the snapshot creation unit 130 proceeds with the process to step S131. If the master disk is not the original disk, the snapshot creation unit 130 proceeds with the process to step S129.
  • Step S129 The snapshot creation unit 130 updates the update bitmap with the bitmap obtained by the logical sum operation calculated in step S124.
  • the bitmap obtained as a result of the logical sum operation is set as a new update bitmap.
  • Step S130 The snapshot creation unit 130 newly selects a virtual disk that is a master disk of the selected virtual disk. Thereafter, the snapshot creation unit 130 proceeds with the process to step S124.
  • Step S131 If the dirty rate of the update bitmap does not exceed the threshold even after tracing to the original disk, the snapshot creation unit 130 makes the current operational disk the master disk of the virtual disk that will be the new operational disk. decide.
  • Step S132 The snapshot creation unit 130 initializes the update bitmap. For example, the snapshot creation unit 130 changes the values of all bits of the update bitmap to “0”.
  • the snapshot creation unit 130 creates a new operational disk that refers to the determined master disk.
  • the snapshot creation unit 130 requests the data management unit 110 to create a new virtual disk.
  • the data management unit 110 creates a virtual disk and incorporates the created virtual disk into the logical volume 110a managed by the data management unit 110.
  • the data management unit 110 notifies the snapshot creation unit 130 of the device number of the created virtual disk.
  • the snapshot creation unit 130 changes the attribute information of the record having the attribute information “active disk” in the master disk management information 123 to the format “snapshot #i”.
  • the snapshot creation unit 130 adds a record with attribute information “active disk” to the master disk management information 123.
  • the snapshot creation unit 130 sets the device number notified from the data management unit 110 as the device number of the added record.
  • the snapshot creation unit 130 sets the device number of the virtual disk determined in step S127 or step S131 as the master disk of the added record.
  • Step S134 The snapshot creation unit 130 copies the dirty data in the update bitmap to the newly created operational disk.
  • Data that is dirty in the update bitmap is data that is written in each virtual disk from the old operational disk to the virtual disk immediately before reaching the master disk of the new operational disk.
  • the snapshot creation unit 130 ends the snapshot creation processing after data copying.
  • a snapshot is created. That is, the state of the logical volume 110a at the time of creating the snapshot can be reproduced by a set of virtual disks that are reached by tracing the master disk from the old operational disk.
  • snapshot creation and data access will be described using examples.
  • FIG. 8 is a diagram showing an example of creating a snapshot from the original disk.
  • a new virtual disk 112 is incorporated into the logical volume 110a.
  • the virtual disk 111 that is the original disk is no longer an active disk, and “snapshot # 1” is assigned as attribute information.
  • the incorporated virtual disk 112 is used as attribute information “active disk”.
  • the master disk of the virtual disk 112 is determined to be the virtual disk 111.
  • the snapshot creation unit 130 generates a bitmap 121 a corresponding to the virtual disk 112 and stores it in the management information storage unit 120.
  • the snapshot creation unit 130 In the initial state of the bitmap 121a, the values of all bits are “0”. Further, the snapshot creation unit 130 generates an update block list 122 a corresponding to the virtual disk 112 and stores it in the management information storage unit 120.
  • the updated block list 122a immediately after generation is an empty state in which no address is registered.
  • FIG. 9 is a diagram illustrating an example of data writing.
  • the access unit 140 determines a virtual disk that is an active disk.
  • the virtual disk 112 is the active disk. Therefore, the access unit 140 sets “1” to the bit corresponding to the write target block in the bitmap 121a of the virtual disk 112 used as the active disk.
  • the access unit 140 registers the address of the block to which data is to be written in the update block list 122a corresponding to the virtual disk 112. Thereafter, the access unit 140 writes data to the virtual disk 112 that is used as an operation disk.
  • data is written to the virtual disk that is being used as the active disk at that time. Then, the contents of the bitmap and update block list corresponding to the operation disk are updated.
  • a master disk of a virtual disk to be newly used as a working disk is determined using a bitmap corresponding to each virtual disk.
  • FIG. 10 is a first diagram of a snapshot creation example.
  • processing at the time of the fourth snapshot is shown. Since three snapshots have already been created, writing to the three virtual disks 111 to 113 is prohibited.
  • the virtual disk 111 is an original disk, and the attribute information is “snapshot # 1”. Data at the time of creating the first snapshot can be reproduced based on the virtual disk 111.
  • the attribute information of the virtual disk 112 is “snapshot # 2”. Data at the time of creating the second snapshot can be reproduced based on the virtual disk 111 and the virtual disk 112. That is, by updating the data in the virtual disk 111 with the difference data stored in the virtual disk 112, the data at the time of the second snapshot creation can be reproduced.
  • “1” is set to the bit corresponding to the block in which data is written to the virtual disk 112.
  • “1” is set to 60% of all bits of the bitmap 121a. This indicates that data was written to 60% of all blocks in the logical volume 110a after the first snapshot was created and before the second snapshot was created.
  • the attribute information of the virtual disk 113 is “snapshot # 3”.
  • the data at the time of the third snapshot creation can be reproduced based on the virtual disk 111, the virtual disk 112, and the virtual disk 112. That is, by updating the data in the virtual disk 111 with the difference data stored in the difference data stored in the virtual disks 112 and 113, the data at the time of the third snapshot creation can be reproduced.
  • “1” is set to 10% of the bits. That is, after the second snapshot is created and before the third snapshot is created, data is written to 10% of all the blocks in the logical volume 110a.
  • the virtual disk 114 is incorporated in the logical volume 110a as a new operation disk when the third snapshot is created.
  • bitmap 121c of the virtual disk 114 “1” is set to the bit corresponding to the block in which data is written to the virtual disk 114 after the third snapshot is created.
  • bitmap 121c corresponding to the virtual disk 114 “1” is set to 10% of the bits. That is, after the third snapshot is created and before the fourth snapshot is created, data is written to 10% of all the blocks in the logical volume 110a.
  • an update bitmap 51 is first generated. At this time, the values of the bits in the update bitmap 51 are all “0”. Then, the logical sum of the update bitmap 51 and the bitmap 121c of the virtual disk 114 used as the operation disk is calculated.
  • FIG. 11 is a second diagram of a snapshot creation example.
  • FIG. 11 shows a logical sum operation result 52.
  • the dirty rate in the operation result 52 of the logical sum is calculated.
  • the dirty rate based on the OR operation result 52 is 10%. Therefore, the dirty rate does not exceed the threshold (70%). Therefore, the update bitmap 51 is updated by the logical sum operation result 52.
  • FIG. 12 is a third diagram of a snapshot creation example.
  • FIG. 12 shows the update status of each bit value in the update bitmap 51. As shown in FIG. 12, the bitmap shown in the logical sum operation result 52 becomes the update bitmap 51.
  • the master disk of the virtual disk 114 used as the operation disk is selected.
  • the virtual disk 113 is the master disk of the virtual disk 114. Therefore, the logical sum of the bitmap 121b corresponding to the virtual disk 113 and the update bitmap is calculated.
  • FIG. 13 is a fourth diagram of a snapshot creation example.
  • FIG. 13 shows a logical sum operation result 53 of the bitmap 121 b of the virtual disk 113 and the update bitmap 51.
  • the dirty rate based on the logical sum operation result 53 is 20%. Therefore, the dirty rate does not exceed the threshold (70%). Therefore, the update bitmap 51 is updated by the logical sum operation result 53.
  • FIG. 14 is a fifth diagram of the snapshot creation example.
  • FIG. 14 shows the update status of each bit value in the update bitmap 51.
  • the bitmap shown in the logical sum operation result 53 is the update bitmap 51.
  • the master disk of the virtual disk 113 is selected. For example, based on the master disk management information 123 illustrated in FIG. 5, the virtual disk 112 is the master disk of the virtual disk 113. Therefore, the logical sum of the bitmap 121a corresponding to the virtual disk 112 and the update bitmap is calculated.
  • FIG. 15 is a sixth diagram of a snapshot creation example.
  • FIG. 15 shows a logical sum operation result 54 of the bitmap 121 a of the virtual disk 112 and the update bitmap 51.
  • the dirty rate according to the logical sum operation result 54 is 80%. Therefore, the dirty rate exceeds the threshold (70%). Therefore, it is determined that the virtual disk 112 to be the master disk of the virtual disk newly incorporated in the logical volume 110a after the snapshot creation. Then, a virtual disk having the virtual disk 112 as a master disk is incorporated into the logical volume 110a.
  • FIG. 16 is a seventh diagram of the snapshot creation example.
  • the virtual disk 115 newly incorporated in the logical volume 110a is used as an operational disk and can be written and read.
  • the attribute information of the virtual disk 114 used as the active disk before the fourth snapshot creation is changed to “snapshot # 4”, and subsequent writing is prohibited.
  • a bitmap 121d corresponding to the virtual disk 115 is newly created. In the initial state of the bitmap 121d, the values of all bits are “0”.
  • the difference data from the virtual disk 112 determined as the master disk of the virtual disk 115 is copied to the virtual disk 115 newly used as the operation disk, and the bitmap 121d is updated.
  • FIG. 17 is an eighth diagram of the snapshot creation example.
  • FIG. 17 shows a copy of difference data from the virtual disk 112 and an update status of the bitmap 121d. Difference data from the virtual disk 112 is stored in the virtual disk 113 and the virtual disk 114. Therefore, the data stored in the virtual disk 113 and the virtual disk 114 is copied to the virtual disk 115 that is newly used as the operation disk.
  • the update bitmap 51 “1” is set in the bit corresponding to the block of difference data stored in the virtual disks 113 and 114. Therefore, the bitmap 121d corresponding to the virtual disk 115 is updated by the update bitmap 51. That is, each bit in the bitmap 121d is updated to the same value as the update bitmap 51.
  • the fourth snapshot creation is completed. That is, the data at the time of the fourth snapshot creation is stored in the virtual disks 111 to 114 for which writing is prohibited. The subsequent writing is performed on the virtual disk 115 used as the operation disk.
  • FIG. 18 is a flowchart illustrating an example of a procedure of data read processing. In the following, the process illustrated in FIG. 18 will be described in order of step number.
  • the data read process is executed when a data read request specifying the address of the block to be read is input to the management server 100 from any of the business servers.
  • the access unit 140 selects the operating disk as a determination target. For example, the access unit 140 refers to the master disk management information 123 and acquires the device number of the virtual disk used as the active disk. Then, the access unit 140 sets a virtual disk corresponding to the acquired device number as a determination target.
  • Step S142 The access unit 140 determines whether there is data on the operation disk. For example, the access unit 140 refers to the update block list to which the device number of the determination target virtual disk is assigned. Then, the access unit 140 determines whether or not the address indicated in the data read request is set in the referenced update block list. If the corresponding address is registered in the update block list, the access unit 140 determines that there is data on the operation disk. If there is data on the operational disk, the access unit 140 proceeds with the process to step S143. If there is no data on the operation disk, the access unit 140 advances the process to step S144.
  • the access unit 140 reads data from the virtual disk used as the operation disk. For example, the access unit 140 requests the data management unit 110 to read a block including data to be read from a virtual disk used as an operation disk. Then, the data management unit 110 reads the content of the corresponding block of the virtual disk from the storage device and transmits it to the access unit 140. The access unit 140 transmits the acquired data in the block to the business server that is the transmission source of the data read request. Thereafter, the data reading process ends.
  • the access unit 140 selects the master disk of the currently selected virtual disk as a new determination target. For example, the access unit 140 refers to the master disk management information 123 and acquires the device number of the master disk from the master disk information of the currently selected virtual disk. Then, the access unit 140 sets the virtual disk corresponding to the acquired device number as a new determination target.
  • Step S145 The access unit 140 determines whether there is data to be read on the determination target disk. If there is data to be read on the determination target disk, the access unit 140 advances the process to step S146. If there is no data to be read on the determination target disk, the access unit 140 advances the process to step S144.
  • Step S146 The access unit 140 reads data from the determination target virtual disk. By performing data reading in such a procedure, it is possible to improve data reading efficiency when repeated snapshots are created. For example, as shown in FIG. 17, it is assumed that data stored in the virtual disk 111, which is the original disk, is read in a situation where the virtual disk 115 is used as an operation disk. In this case, in the second embodiment, whether the corresponding data is stored is determined in the order of the virtual disk 115, the virtual disk 112, and the virtual disk 111. Then, it is found that the corresponding data exists in the virtual disk 111, and the data is read from the virtual disk 111.
  • the comparison target the case where it is determined whether or not there is data to be read sequentially from the new virtual disk in which the stored difference data is not traced as in the second embodiment.
  • the determination is started from the virtual disk 115. Thereafter, the presence / absence of data to be read is determined in the order of the virtual disk 114, the virtual disk 113, the virtual disk 112, and the virtual disk 111. The determination of the fifth virtual disk 111 reveals that the data to be read exists in the virtual disk 111.
  • the number of determinations until a virtual disk having data to be read is found is increased.
  • the number of determinations until a virtual disk having data to be read is found is reduced.
  • FIG. 19 is a diagram showing an example of information stored in the master disk management information.
  • snapshot creation is performed eight times.
  • the master disk of the virtual disk that is currently used as the active disk is the virtual disk with the device number “0x8003”.
  • the operational attribute of this virtual disk is “snapshot # 3”, and writing is prohibited after the third snapshot creation process.
  • FIG. 20 is a diagram illustrating an example of reading data.
  • nine virtual disks 111 to 119 are incorporated in the logical volume 110a. Of these, the virtual disk 119 is used as an operational disk.
  • a request to read data stored in the virtual disk 111 which is the original disk is issued.
  • the virtual disk 119 it is first determined whether or not data to be read is stored in the virtual disk 119.
  • the virtual disk 119 does not store read target data. Therefore, it is next determined whether or not data to be read is stored for the virtual disk 113 that is the master disk of the virtual disk 119. Thereafter, similarly, it is determined whether or not data to be read is stored for the virtual disk 112 and the virtual disk 111. Then, it is detected that data to be read is stored in the virtual disk 111, and the corresponding data is read from the virtual disk 111.
  • the logical volume 110a is composed of one or a plurality of virtual disks, but a physical disk or SSD (Solid State Drive) may be used instead of the virtual disk.
  • SSD Solid State Drive
  • the bitmap and the update block list are prepared separately for each virtual disk, but the other information can be generated from one information.
  • an updated block list can be created from a bitmap, and a bitmap can be created from an updated block list. Therefore, only one of the bitmap and the update block list may be stored in the management information storage unit 120 in association with the virtual disk.

Abstract

 スナップショットの作成が複数回行われたときのデータの読み出し効率を向上させる。 選択手段(2)は、スナップショット作成要求が入力されると、対応する記憶手段を選択する。コピー手段(4)は、新たなスナップショット作成要求の入力時点t4より後に更新するデータを書き込む新たな記憶手段(1e)に対し、選択された記憶手段(1b)に対応する時間帯より後に更新されたデータをコピーする。判定手段(5)は、読み出し対象のデータを指定した読み出し要求に応じ、コピーにおけるコピー元の記憶手段以外の記憶手段に読み出し対象のデータが格納されているか否かを判定する。そして読み出し手段(6)が、読み出し対象のデータを読み出す。

Description

プログラム、データ管理方法、および情報処理装置
 本発明は、スナップショット作成時のデータを管理するプログラム、データ管理方法、および情報処理装置に関する。
 ストレージ装置の管理技術として、スナップショットと呼ばれる技術がある。スナップショットは、ある一時点でのディスクの内容を再現可能な状態で保存することである。ある運用中のディスクのスナップショットを作成する場合、例えば、そのディスクに対するそれ以降の書き込みが禁止され、そのディスクがオリジナルディスクとして保存される。そして他のディスクが新たな運用ディスクとして使用され、スナップショット作成時からの差分データが、新たな運用ディスクに格納される。
 スナップショットの作成は、繰り返し行うことができる。2回目以降のスナップショットの作成では、その時点の運用ディスクに対する以降の書き込みが禁止され、以後の差分データを保存する新たな運用ディスクが追加される。このように、スナップショットの採取が繰り返し行われると、差分データを格納するディスクが多段構成となる。
 スナップショット作成後にデータを読み出す場合には、保存しておいたオリジナルディスク、または差分データを格納しているディスクから、データが読み出される。差分データを格納するディスクが多段構成であれば、例えば、読み出し対象のデータが格納されているか否かが、新しい差分データを格納するディスクから順に判定される。差分データを格納するいずれのディスクにも該当データが格納されていなければ、最後に、オリジナルディスクにそのデータがあるか否かが判定される。そして読み出し対象のデータを保存しているディスクから、読み出し対象のデータが読み出される。
 なお、スナップショットに関する技術としては、例えば、大容量記憶手段の中のすべてのデータのスナップショットをとるのではなく、大容量記憶手段からバックアップされることが所望されるデータセクションだけのスナップショットをとる技術がある。
特表2005-512191号公報
 しかし、スナップショット作成のたびに差分データ格納用のディスクを追加する方式では、スナップショットの作成回数が増えるごとに、データの読み出し効率が悪化する。例えば、スナップショット作成を繰り返し行った後のデータ読み出しにおいて、オリジナルディスク上にデータが存在すると、読み出し対象のデータの有無の判定を多数のディスクに対して行うことになる。そのためスナップショット作成を繰り返し行った場合、オリジナルディスクや、初期のころに運用ディスクとして用いられていたディスク上に存在するデータの読み出しに時間がかかる。
 1つの側面では、本発明は、スナップショットの作成が複数回行われたときのデータの読み出し効率を向上させるプログラム、データ管理方法、および情報処理装置を提供することを目的とする。
 1態様のプログラムは、情報処理装置に、複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが書き込まれており、スナップショット作成要求が入力されると、対応する記憶手段を選択し、スナップショット作成要求が入力された時点より後に更新するデータを書き込む新たな記憶手段に対し、選択された記憶手段に対応する時間帯より後に更新されたデータをコピーし、読み出し対象のデータを指定した読み出し要求に応じ、コピーにおけるコピー元の記憶手段以外の記憶手段に該読み出し対象のデータが格納されているか否かを判定し、該読み出し対象のデータを格納している記憶手段から該読み出し対象のデータを読み出す処理を実行させる。
 1態様によれば、スナップショットの作成が複数回行われたときのデータの読み出し効率が向上する。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態に係る装置の機能構成例を示す図である。 第2の実施の形態のシステム構成例を示す図である。 本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。 管理サーバの機能を示すブロック図である。 管理情報記憶部のデータ構造の一例を示す図である。 データの書き込み処理の手順の一例を示すフローチャートである。 スナップショット作成処理の手順の一例を示すフローチャートである。 オリジナルディスクからのスナップショット作成例を示す図である。 データの書き込み例を示す図である。 スナップショット作成例の第1の図である。 スナップショット作成例の第2の図である。 スナップショット作成例の第3の図である。 スナップショット作成例の第4の図である。 スナップショット作成例の第5の図である。 スナップショット作成例の第6の図である。 スナップショット作成例の第7の図である。 スナップショット作成例の第8の図である。 データの読み出し処理の手順の一例を示すフローチャートである。 マスタディスク管理情報に格納される情報の一例を示す図である。 データの読み出し例を示す図である。
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 まず第1の実施の形態について説明する。第1の実施の形態は、スナップショット作成時に、直近の所定量の更新データを新たな記憶手段にコピーし、データ読み出し時には、コピー元の記憶手段をアクセス対象から除外することで、データの読み出し効率を向上させるものである。
 図1は、第1の実施の形態に係る装置の機能構成例を示す図である。情報処理装置Xは、複数の記憶手段1a,1b,1c,1d,1e、選択手段2、設定手段3、コピー手段4、判定手段5、および読み出し手段6を有する。
 記憶手段1a,1b,1c,1dは、複数の時間帯T1,T2,T3,T4それぞれに対応付けられている。複数の時間帯T1,T2,T3,T4は、例えば、過去のスナップショット作成要求の入力時点(時刻t1,t2,t3)を境界として区分けすることで得られた時間帯である。各記憶手段1a,1b,1c,1dには、対応する時間帯内に更新されたデータが書き込まれている。また各記憶手段1a,1b,1c,1dには、読み出し対象のデータの有無の判定における次の判定対象の記憶手段が設定されている。図1の例では、各記憶手段の次の判定対象の記憶手段が、破線の矢印で示されている。例えば記憶手段1dの次の判定対象は記憶手段1cであり、記憶手段1cの次の判定対象は記憶手段1bであり、記憶手段1bの次の判定対象は記憶手段1aである。
 選択手段2は、スナップショット作成要求が入力されると、対応する記憶手段を選択する。例えば選択手段2は、スナップショット作成後のデータの更新量に応じて、1つの記憶手段を選択する。具体的には、例えば選択手段2は、対応する時間帯以降に更新されたデータが所定量を超える記憶手段があれば、その記憶手段を選択する。また選択手段2は、対応する時間帯以降に更新されたデータが所定量を超える記憶手段がなければ、最も後の時間帯に対応する記憶手段を選択する。
 例えば選択手段2は、対応する時間帯以降に更新されたデータが所定量を超える記憶手段が複数ある場合、該当する記憶手段のうち、対応する時間帯が最も後の記憶手段を選択する。また選択手段2は、例えば、データの格納単位である複数のブロックのうちの、対応する時間帯以降に更新されたブロックの全ブロックに対する割合が、所定の閾値を超える記憶手段があれば、その記憶手段を選択する。
 設定手段3は、新たなスナップショット作成要求の入力時点(時刻t4)より後に更新するデータを書き込む新たな記憶手段1eに対し、読み出し対象のデータの有無の判定における次の判定対象として、選択された記憶手段を設定する。
 コピー手段4は、選択された記憶手段に対応する時間帯より後に更新されたデータを、新たな記憶手段1eにコピーする。例えばコピー手段4は、選択された記憶手段が対応付けられた時間帯よりも後の時間帯に対応付けられた記憶手段に格納されているデータを、記憶手段1eにコピーする。以後の時間帯T5に入力された更新データは、記憶手段1eに対して書き込まれる。
 判定手段5は、読み出し対象のデータを指定した読み出し要求に応じ、新たな記憶手段1eを最初の判定対象とすると共に、判定対象の記憶手段で次の判定対象に設定されている記憶手段を順番に判定対象とする。そして判定手段5は、判定対象の記憶手段に読み出し対象のデータが格納されているか否かを判定する。例えば記憶手段1a,1b,1c,1d,1eそれぞれに対応付けて、記憶手段に書き込まれたデータのアドレスリストが設けられている場合がある。この場合、判定手段5は、判定対象の記憶手段のアドレスリストを参照して、その記憶手段に読み出し対象のデータがあるか否かを判断する。
 読み出し手段6は、読み出し対象のデータが格納されていると判定された記憶手段から、読み出し対象のデータを読み出す。
 このような情報処理装置Xにおいて、更新データの書き込みが記憶手段1dに対して行われているときに、時刻t4にスナップショット作成要求が入力された場合を想定する。この場合、選択手段2によって、記憶手段1eの次の判定対象とする記憶手段が選択される。例えば、最初の記憶手段1aの記憶領域がブロック単位で管理されているものとし、時間帯T2では、60%のブロック内のデータが更新されたものとする。また時間帯T3では、時間帯T2で更新されたブロックとは別の10%のブロック内のデータが更新されたものとする。さらに時間帯T3では、時間帯T2,T3で更新されたブロックとは別の10%のブロック内のデータが更新されたものとする。そして選択手段2は、対応する時間帯以降に更新されたブロックの割合が70%を超える記憶手段のうち、最も後の時間帯に対応する記憶手段を選択するものとする。この場合、選択手段2は、対応する時間帯が後の記憶手段から順に、選択すべきか否かを判断する。記憶手段1dは、時刻t4の時点で、対応する時間帯T4以後に更新されたブロックは10%である。記憶手段1cは、時刻t4の時点で、対応する時間帯T3以後に更新されたブロックは20%である。記憶手段1bは、時刻t4の時点で、対応する時間帯T2以後に更新されたブロックは80%であり、70%を超えている。そこで、選択手段2は、記憶手段1bを選択する。そして選択手段2は、例えば選択した記憶手段1bの識別情報「0x8002」を、設定手段3とコピー手段4とに通知する。
 設定手段3では、新たなスナップショット作成要求の入力時点(時刻t4)以降の時間帯T5の更新データを格納する記憶手段1eに対し、次の判定対象が記憶手段1bであることを設定する。コピー手段4は、選択された記憶手段1bより後の時間帯T3,T4に入力された更新データを格納する記憶手段1c,1d内のデータを、例えばブロック単位で記憶手段1eにコピーする。なお時間帯T3,T4内に同じブロックデータが複数回更新された場合、最新のブロックのデータが記憶手段1eにコピーされる。その後の時間帯T5に入力された更新データは、記憶手段1eに書き込まれることとなる。
 最後のスナップショット作成要求が入力された時刻t4以後にデータの読み出し要求が入力されると、判定手段5によって、更新データの書き込みが行われた時間帯が後の記憶手段から順に、読み出し対象のデータが格納されているか否かの判定が行われる。例えば時間帯T1に入力され記憶手段1aに格納された後、更新されていないデータの読み出し要求があった場合を想定する。この場合、判定手段5は、まず記憶手段1eに読み出し対象のデータが格納されているか否かを判定する。次に判定手段5は、記憶手段1eの次の判定対象である記憶手段1bに、読み出し対象のデータが格納されているか否かを判定する。さらに判定手段5は、記憶手段1bの次の判定対象である記憶手段1aに、読み出し対象のデータが格納されているか否かを判定する。そして判定手段5は、記憶手段1aに読み出し対象のデータが格納されていることを検出する。その後、判定手段5は、例えば記憶手段1aの識別情報「0x8001」を読み出し手段6に通知する。すると読み出し手段6によって、記憶手段1aから、読み出し対象のデータが読み出される。
 このようにスナップショット作成が繰り返し行われ、記憶手段が多段構成となった場合であっても、データの読み出し時に、次の判定対象の指定に沿って該当データの有無を判定することで、データの有無の判定を行う記憶手段の数が少なくなる。その結果、データの読み出し効率が向上し、データの読み出し時間が短縮される。
 なお、選択手段2、設定手段3、コピー手段4、判定手段5、および読み出し手段6は、例えば情報処理装置Xが有するプロセッサが、プログラムを実行することにより実現することができる。また、記憶手段1a,1b,1c,1d,1eは、例えば情報処理装置Xが有するRAM(Random Access Memory)またはHDD(Hard Disk Drive)により実現することができる。
 また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
 〔第2の実施の形態〕
 次に第2の実施の形態について説明する。第2の実施の形態は、複数のRAID(Redundant Array of Inexpensive Disks)装置を組み合わせた仮想ディスクから、効率的なリードアクセスが可能なように、スナップショットを作成するものである。
 図2は、第2の実施の形態のシステム構成例を示す図である。管理サーバ100は、2つのネットワーク21,22に接続されている。ネットワーク21には、複数の業務サーバ31,32,・・・が接続されている。ネットワーク22には、複数のRAID装置41,42,43,・・・が接続されている。
 管理サーバ100は、RAID装置41,42,43,・・・を用いて仮想ディスクを作成するコンピュータである。例えば管理サーバ100は、ソフトウェアRAID技術を用い、RAID装置41,42,43,・・・のLU(論理ユニット)を組み合わせて、仮想的なRAIDグループを生成する。そして管理サーバ100は、このようにして生成された仮想的なRAIDグループを、仮想ディスクとする。
 管理サーバ100は、1または複数の仮想ディスクによって論理ボリュームを構築する。そして管理サーバ100は、業務サーバ31,32,・・・から、論理ボリューム内のアドレスを指定したアクセスを受け付ける。そして管理サーバ100は、指定されたアドレスに割り当てられたRAID装置内の物理領域にアクセスを行う。
 また管理サーバ100は、論理ボリュームに格納された情報のスナップショットを作成することができる。例えば管理サーバ100は、業務サーバ31,32,・・・からスナップショットの作成要求を受信すると、その時点で論理ボリュームに格納されているデータに対する以後のアクセスを、読み出しのみ(リードオンリー)に制限する。そして管理サーバ100は、以後、論理ボリュームへのデータの書き込み要求があると、そのデータを差分データとして格納する。
 図3は、本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。管理サーバ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
 RAM102は、管理サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
 バス109に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
 HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
 グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
 入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をプロセッサ101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
 光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
 機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置15やメモリリーダライタ16を接続することができる。メモリ装置15は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ16は、メモリカード17へのデータの書き込み、またはメモリカード17からのデータの読み出しを行う装置である。メモリカード17は、カード型の記録媒体である。
 ネットワークインタフェース108aは、ネットワーク21に接続されている。ネットワークインタフェース108aは、ネットワーク21を介して、業務サーバ31,32,・・・との間でデータの送受信を行う。
 ネットワークインタフェース108bは、ネットワーク22に接続されている。ネットワークインタフェース108bは、ネットワーク22を介して、RAID装置41,42,43,・・・との間でデータの送受信を行う。
 以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置Xも、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。
 管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク14、メモリ装置15、メモリカード17などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
 次に、管理サーバ100におけるデータアクセスとスナップショット作成機能について説明する。
 図4は、管理サーバの機能を示すブロック図である。管理サーバ100は、データ管理部110、管理情報記憶部120、スナップショット作成部130、およびアクセス部140を有する。
 データ管理部110は、仮想ディスク111,112,・・・を用いた論理ボリューム110aを管理する。仮想ディスク111,112,・・・は、例えばRAID装置41,42,43,・・・のLUを用い、ソフトウェアRAIDで作成されたRAIDグループ(またはそのRAIDグループ内のLU)である。
 管理情報記憶部120は、スナップショットの作成や、データのアクセスに使用する管理情報を記憶する。管理情報の詳細は、後述する(図5参照)。
 スナップショット作成部130は、データ管理部110で管理されている論理ボリューム110aのスナップショットを作成する。例えばスナップショット作成部130は、業務サーバ31,32,・・・からのスナップショット作成要求に応じたスナップショットを作成する。スナップショット作成部130は、スナップショットの作成時には、データ管理部110に新たな仮想ディスクを作成させ、その仮想ディスクを新たな運用ディスクとする。以後、論理ボリューム110aへのデータの書き込みは、新たな運用ディスクに対して行われる。これにより、スナップショット作成前に論理ボリューム110aに組み込まれていた仮想ディスクに、スナップショット作成時のデータの状態が保存される。
 スナップショット作成部130は、新たな運用ディスクを作成すると、その運用ディスクのマスタディスクを決定する。マスタディスクは、読み出し対象のデータが運用ディスクに格納されていない場合に、データの有無の判定を次に行う仮想ディスクである。例えばスナップショット作成部130は、新たな運用ディスクに対応するマスタディスクの情報を、管理情報記憶部120に格納する。
 アクセス部140は、業務サーバ31,32,・・・からのデータアクセス要求に応じて、データ管理部110が管理する論理ボリューム110a内のデータにアクセスする。アクセス部140は、例えばデータの書き込みは、運用ディスクに対して行う。またアクセス部140は、データの読み出しの際は、読み出し対象のデータの有無を、運用ディスクから順にマスタディスクを辿りながら判定する。そしてアクセス部140は、読み出し対象のデータを有する仮想ディスクから該当データを読み出す。
 なお、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。またスナップショット作成部130は、図1に示した第1の実施の形態における選択手段2、設定手段3、およびコピー手段4を包含する機能の一例である。アクセス部140は、図1に示した第1の実施の形態における判定手段5および読み出し手段6を包含する機能の一例である。仮想ディスク111,112,・・・は、図1に示した第1の実施の形態における記憶手段1a,1b,1c,1d,1eの一例である。
 次に、管理情報記憶部120に格納されている管理情報について詳細に説明する。
 図5は、管理情報記憶部のデータ構造の一例を示す図である。管理情報記憶部120には、複数のビットマップ121a,121b,121c,・・・、複数の更新ブロックリスト122a,122b,122c,・・・、およびマスタディスク管理情報123が格納されている。
 ビットマップ121a,121b,121c,・・・は、スナップショット作成時に、新たに論理ボリューム110aに組み込まれた仮想ディスクごとに設けられている。例えばビットマップ121a,121b,121c,・・・には、対応する仮想ディスクのデバイス番号が設定されている。デバイス番号は、仮想ディスクのシステム内での固有情報である。また、ビットマップには、論理ボリューム110aの記憶領域をブロック単位に分割したときの、各ブロックに対応するビットの集合が含まれる。各ビットは、対応するブロックのデータが更新されたか否かを示すフラグである。
 更新ブロックリスト122a,122b,122c,・・・は、スナップショット作成時に、新たに論理ボリューム110aに組み込まれた仮想ディスクごとに設けられている。例えば更新ブロックリスト122a,122b,122c,・・・には、対応する仮想ディスクのデバイス番号が設定されている。また更新ブロックリスト122a,122b,122c,・・・には、対応する仮想ディスクに書き込まれたブロックのアドレスが登録されている。
 マスタディスク管理情報123は、論理ボリューム110aに組み込まれている仮想ディスクの管理情報が登録されている。例えばマスタディスク管理情報123には、仮想ディスクの属性情報に対応付けて、デバイス番号とマスタディスク情報とが登録されている。仮想ディスクの属性情報は、運用ディスクとして使用されている仮想ディスクか、スナップショット作成により更新が禁止された仮想ディスクかなどを区別する属性情報である。スナップショットが作成された場合、運用ディスクとなる仮想ディスクが変更される。この際、運用ディスクではなくなる仮想ディスク(旧運用ディスク)に対して、属性情報として、その仮想ディスクのアクセス時の階層の深さを表す通し番号が付与される。第2の実施の形態では、i回目(iは1以上の整数)のスナップショット作成時の直前まで運用ディスクトして使用されていた仮想ディスクの属性情報を、「スナップショット#i」としている。属性情報が「スナップショット#1」の仮想ディスクは、初回のスナップショット作成時のすべてのデータが格納されているオリジナルディスクである。マスタディスク情報は、対応する仮想ディスクのマスタディスクである、仮想ディスクのデバイス番号である。
 次に、管理サーバ100におけるデータの書き込み処理の手順について説明する。
 図6は、データの書き込み処理の手順の一例を示すフローチャートである。以下、図6に示す処理をステップ番号に沿って説明する。なおデータの書き込み処理は、いずれかの業務サーバから、書き込み対象のブロックのアドレスを指定した、データの書き込み要求が管理サーバ100に入力された場合に実行される。
 [ステップS101]アクセス部140は、運用ディスクのビットマップの、書き込み対象のブロックに対応するビットを、1に設定する。例えばアクセス部140は、管理情報記憶部120から運用ディスクのビットマップを取得する。次にアクセス部140は、取得したビットマップの、書き込み要求のブロックに対応するビットを「1」に変更する。そしてアクセス部140は、ビットの値を変更したビットマップを、管理情報記憶部120に書き戻す。
 [ステップS102]アクセス部140は、運用ディスクの更新ブロックリストに、書き込み対象のブロックのアドレスを登録する。例えばアクセス部140は、管理情報記憶部120から運用ディスクの更新ブロックリストを取得する。次にアクセス部140は、取得した更新ブロックリストに、書き込み対象のブロックのアドレスを登録する。そしてアクセス部140は、アドレス登録後の更新ブロックリストを、管理情報記憶部120に書き戻す。
 [ステップS103]アクセス部140は、運用ディスクに、書き込み要求で指定されたブロックのデータを書き込む。例えばアクセス部140は、管理情報記憶部120内のマスタディスク管理情報123から、運用ディスクのデバイス情報を取得する。そしてアクセス部140は、データ管理部110に対して、取得したデバイス情報を書き込み先の仮想ディスクとして指定して、データの書き込みを要求する。するとデータ管理部110は、現在、運用ディスクとして使用されている仮想ディスクの指定されたデータを書き込む。例えばデータ管理部110は、ソフトウェアRAIDにより仮想ディスクを構成するRAID装置のLUを特定し、RAID装置内の該当するLUにデータを書き込む。
 このようにして、書き込み要求に応じたデータの書き込みが、運用ディスクに対して実行される。
 次に、スナップショット作成処理の手順について説明する。
 図7は、スナップショット作成処理の手順の一例を示すフローチャートである。以下、図7に示す処理をステップ番号に沿って説明する。
 [ステップS121]スナップショット作成部130は、運用ディスクを選択する。例えばスナップショット作成部130は、管理情報記憶部120内のマスタディスク管理情報123を参照し、属性情報が「運用ディスク」となっている仮想ディスクのデバイス番号を取得する。
 [ステップS122]スナップショット作成部130は、更新用ビットマップを作成する。更新用ビットマップは、論理ボリューム110a内の各ブロックに対応するビットの列である。更新用ビットマップの各ビットの値の初期値は「0」である。
 [ステップS123]スナップショット作成部130は、選択した運用ディスクがオリジナルディスクか否かを判断する。例えばデータ管理部110が管理している仮想ディスクが、運用ディスクのみであれば、その運用ディスクはオリジナルディスクである。スナップショット作成部130は、運用ディスクがオリジナルディスクであれば、処理をステップS131に進める。またスナップショット作成部130は、運用ディスクがオリジナルディスクでなければ、処理をステップS124に進める。
 [ステップS124]スナップショット作成部130は、選択した仮想ディスクのビットマップと、更新用ビットマップとの論理和演算を行う。論理和演算では、それぞれのビットマップ内の同じブロックに対応するビット同士で論理和が計算される。
 [ステップS125]スナップショット作成部130は、論理和演算により得られたビットマップのダーティ(dirty)率を計算する。ダーティ率は、ビットマップ中の全ビットのうち、値が「1」のビットの割合である。ダーティ率は、以下の式で計算できる。
ダーティ率=論理和ビットマップで1のビット数/全ビット数
 [ステップS126]スナップショット作成部130は、ダーティ率が、予め設定されている閾値を超えているか否かを判断する。スナップショット作成部130は、ダーティ率が閾値を超えていれば、処理をステップS127に進める。またスナップショット作成部130は、ダーティ率が閾値以下であれば、処理をステップS128に進める。
 [ステップS127]スナップショット作成部130は、ダーティ率が閾値を超えていれば、選択した仮想ディスクを、新たな運用ディスクのマスタディスクに決定する。その後、スナップショット作成部130は、処理をステップS133に進める。
 [ステップS128]スナップショット作成部130は、ダーティ率が閾値以下であれば、選択している仮想ディスクのマスタディスクがオリジナルディスクか否かを判断する。なお選択しているディスクのマスタディスクは、例えば管理情報記憶部120内のマスタディスク管理情報を参照することで把握できる。スナップショット作成部130は、マスタディスクがオリジナルディスクであれば、処理をステップS131に進める。またスナップショット作成部130は、マスタディスクがオリジナルディスクでなければ、処理をステップS129に進める。
 [ステップS129]スナップショット作成部130は、ステップS124で計算した論理和演算により得られたビットマップにより、更新用ビットマップを更新する。換言すると、論理和演算の結果のビットマップを、新たな更新用ビットマップとする。
 [ステップS130]スナップショット作成部130は、選択している仮想ディスクのマスタディスクである仮想ディスクを、新たに選択する。その後、スナップショット作成部130は、処理をステップS124に進める。
 [ステップS131]スナップショット作成部130は、オリジナルディスクまで辿っても更新用ビットマップのダーティ率が閾値を超えなかった場合、現在の運用ディスクを、新たに運用ディスクとする仮想ディスクのマスタディスクに決定する。
 [ステップS132]スナップショット作成部130は、更新用ビットマップを初期化する。例えばスナップショット作成部130は、更新用ビットマップのすべてのビットの値を「0」に変更する。
 [ステップS133]スナップショット作成部130は、決定したマスタディスクを参照する新たな運用ディスクを作成する。例えばスナップショット作成部130は、データ管理部110に新たな仮想ディスクの作成を依頼する。するとデータ管理部110は、仮想ディスクを作成し、作成した仮想ディスクを、データ管理部110が管理する論理ボリューム110aに組み込む。そしてデータ管理部110は、作成した仮想ディスクのデバイス番号をスナップショット作成部130に通知する。スナップショット作成部130は、マスタディスク管理情報123において、属性情報「運用ディスク」となっているレコードの属性情報を、「スナップショット#i」の形式に変更する。次に、スナップショット作成部130は、マスタディスク管理情報123に、属性情報を「運用ディスク」とするレコードを追加する。さらにスナップショット作成部130は、追加したレコードのデバイス番号として、データ管理部110から通知されたデバイス番号を設定する。さらにスナップショット作成部130は、追加したレコードのマスタディスクとして、ステップS127またはステップS131で決定した仮想ディスクのデバイス番号を設定する。
 [ステップS134]スナップショット作成部130は、更新用ビットマップでダーティとなっているデータを、新たに作成した運用ディスクにコピーする。更新用ビットマップでダーティとなっているデータは、旧運用ディスクから順にマスタディスクを辿り、新たな運用ディスクのマスタディスクに達する直前の仮想ディスクまでの各仮想ディスクに書き込まれたデータである。スナップショット作成部130は、データコピー後、スナップショット作成処理を終了する。
 このようにして、スナップショットが作成される。すなわち、旧運用ディスクからマスタディスクを辿ることで到達する仮想ディスクの集合により、スナップショット作成時の論理ボリューム110aの状態を再現できる。以下、スナップショット作成、およびデータアクセスについて、例を用いて説明する。
 まず、オリジナルディスクからのスナップショット作成例について説明する。
 図8は、オリジナルディスクからのスナップショット作成例を示す図である。オリジナルディスクである仮想ディスク111が運用ディスクとして使用されているときに、最初のスナップショットが作成されると、論理ボリューム110aに新たな仮想ディスク112が組み込まれる。オリジナルディスクである仮想ディスク111は、運用ディスクではなくなり、属性情報として「スナップショット#1」が付与される。組み込まれた仮想ディスク112は、属性情報「運用ディスク」として使用される。このとき、仮想ディスク112のマスタディスクは、仮想ディスク111に決定される。またスナップショット作成部130により、仮想ディスク112に対応するビットマップ121aが生成され、管理情報記憶部120に格納される。ビットマップ121aの初期状態は、すべてのビットの値が「0」である。さらにスナップショット作成部130により、仮想ディスク112に対応する更新ブロックリスト122aが生成され、管理情報記憶部120に格納される。生成直後の更新ブロックリスト122aは、アドレスが登録されていない、空の状態である。
 スナップショット作成後は、データの書き込みは、オリジナルディスクではなく、運用ディスクに対して行われる。
 図9は、データの書き込み例を示す図である。アクセス部140は、論理ボリューム110aへのデータの書き込み要求を取得すると、運用ディスクとなっている仮想ディスクを判断する。図9の例では、仮想ディスク112が運用ディスクである。そこでアクセス部140は、運用ディスクとして利用されている仮想ディスク112のビットマップ121aにおける、書き込み対象のブロックに対応するビットに「1」を設定する。またアクセス部140は、仮想ディスク112に対応する更新ブロックリスト122aに、データの書き込み対象のブロックのアドレスを登録する。その後、アクセス部140は、運用ディスクトして使用している仮想ディスク112にデータの書き込みを行う。
 図9に示したように、データの書き込みが、そのとき運用ディスクとして使用されている仮想ディスクに対して行われる。そして運用ディスクに対応するビットマップや更新ブロックリストの内容が更新される。スナップショット作成時には、各仮想ディスクに対応するビットマップを用いて、新たに運用ディスクとして使用する仮想ディスクのマスタディスクを決定する。
 以下、図10~図17を参照して、スナップショット作成例について説明する。なお以下の例では、ダーティ率の閾値が70%であるものとする。
 図10は、スナップショット作成例の第1の図である。図10の例では、4回目のスナップショット時の処理を示している。既に3回のスナップショットが作成されているため、3つの仮想ディスク111~113は、書き込み禁止となっている。仮想ディスク111は、オリジナルディスクであり、属性情報は「スナップショット#1」である。1回目のスナップショット作成時のデータは、仮想ディスク111に基づいて再現できる。
 仮想ディスク112の属性情報は「スナップショット#2」である。2回目のスナップショット作成時のデータは、仮想ディスク111と仮想ディスク112とに基づいて再現できる。すなわち仮想ディスク111内のデータを、仮想ディスク112に格納された差分データで更新することで、2回目のスナップショット作成時のデータが再現できる。また仮想ディスク112に対応するビットマップ121aには、仮想ディスク112にデータが書き込まれたブロックに対応するビットに「1」が設定されている。図10の例では、ビットマップ121aの全ビットのうち60%のビットに「1」が設定されている。これは、1回目のスナップショット作成後、2回目のスナップショット作成前に、論理ボリューム110a内の全ブロックのうち、60%のブロックにデータの書き込みが行われたことを示している。
 仮想ディスク113の属性情報は「スナップショット#3」である。3回目のスナップショット作成時のデータは、仮想ディスク111、仮想ディスク112、および仮想ディスク112に基づいて再現できる。すなわち仮想ディスク111内のデータを、仮想ディスク112,113に格納された差分データに格納された差分データで更新することで、3回目のスナップショット作成時のデータが再現できる。仮想ディスク113に対応するビットマップ121bでは、10%のビットに「1」が設定されている。すなわち2回目のスナップショット作成後、3回目のスナップショット作成前に、論理ボリューム110a内の全ブロックのうち、10%のブロックにデータの書き込みが行われている。
 仮想ディスク114は、3回目のスナップショット作成時に、新たな運用ディスクとして論理ボリューム110aに組み込まれている。仮想ディスク114のビットマップ121cは、3回目のスナップショット作成後に仮想ディスク114にデータが書き込まれたブロックに対応するビットに「1」が設定されている。仮想ディスク114に対応するビットマップ121cでは、10%のビットに「1」が設定されている。すなわち3回目のスナップショット作成後、4回目のスナップショット作成前に、論理ボリューム110a内の全ブロックのうち、10%のブロックにデータの書き込みが行われている。
 4回目のスナップショットの作成時には、まず更新用ビットマップ51が生成される。この時点では、更新用ビットマップ51内の各ビットの値は、すべて「0」である。そして、更新用ビットマップ51と、運用ディスクとして使用されている仮想ディスク114のビットマップ121cとの論理和が計算される。
 図11は、スナップショット作成例の第2の図である。図11には、論理和の演算結果52を示している。ここで、論理和の演算結果52におけるダーティ率が計算される。論理和の演算結果52によるダーティ率は10%である。そのため、ダーティ率が閾値(70%)を超えていない。そこで、論理和の演算結果52によって、更新用ビットマップ51が更新される。
 図12は、スナップショット作成例の第3の図である。図12には、更新用ビットマップ51の各ビットの値の更新状況を示している。図12に示すように、論理和の演算結果52に示されるビットマップが、更新用ビットマップ51となる。
 次に運用ディスクとして使用されている仮想ディスク114のマスタディスクが選択される。例えば図5に示したマスタディスク管理情報123に基づけば、仮想ディスク113が仮想ディスク114のマスタディスクである。そこで仮想ディスク113に対応するビットマップ121bと更新用ビットマップとの論理和が計算される。
 図13は、スナップショット作成例の第4の図である。図13には、仮想ディスク113のビットマップ121bと更新用ビットマップ51との論理和の演算結果53を示している。論理和の演算結果53によるダーティ率は20%である。そのため、ダーティ率が閾値(70%)を超えていない。そこで、論理和の演算結果53によって、更新用ビットマップ51が更新される。
 図14は、スナップショット作成例の第5の図である。図14には、更新用ビットマップ51の各ビットの値の更新状況を示している。図14に示すように、論理和の演算結果53に示されるビットマップが、更新用ビットマップ51となる。
 次に仮想ディスク113のマスタディスクが選択される。例えば図5に示したマスタディスク管理情報123に基づけば、仮想ディスク112が仮想ディスク113のマスタディスクである。そこで仮想ディスク112に対応するビットマップ121aと更新用ビットマップとの論理和が計算される。
 図15は、スナップショット作成例の第6の図である。図15には、仮想ディスク112のビットマップ121aと更新用ビットマップ51との論理和の演算結果54を示している。論理和の演算結果54によるダーティ率は80%である。そのため、ダーティ率が閾値(70%)を超えている。そこで、スナップショット作成より新たに論理ボリューム110aに組み込まれる仮想ディスクのマスタディスクを、仮想ディスク112にすることが決定される。そして、仮想ディスク112をマスタディスクとする仮想ディスクが、論理ボリューム110aに組み込まれる。
 図16は、スナップショット作成例の第7の図である。論理ボリューム110aに新たに組み込まれた仮想ディスク115は、運用ディスクとして使用され、書き込みと読み出しが可能である。他方、4回目のスナップショット作成以前に運用ディスクとして使用されていた仮想ディスク114は、属性情報が「スナップショット#4」に変更され、以後の書き込みが禁止される。また仮想ディスク115に対応するビットマップ121dが新たに作成される。ビットマップ121dの初期状態は、すべてのビットの値が「0」である。
 新たに運用ディスクとして使用される仮想ディスク115には、仮想ディスク115のマスタディスクとして決定した仮想ディスク112からの差分データがコピーされると共に、ビットマップ121dが更新される。
 図17は、スナップショット作成例の第8の図である。図17には、仮想ディスク112からの差分データのコピーと、ビットマップ121dの更新状況とを示している。仮想ディスク112からの差分データは、仮想ディスク113と仮想ディスク114とに格納されている。そこで仮想ディスク113と仮想ディスク114とに格納されているデータが、新たに運用ディスクとして使用される仮想ディスク115にコピーされる。
 更新用ビットマップ51は、仮想ディスク113,114に格納された差分データのブロックに対応するビットに「1」が設定されている。そこで更新用ビットマップ51によって、仮想ディスク115に対応するビットマップ121dが更新される。すなわち、ビットマップ121d内の各ビットが、更新用ビットマップ51と同じ値に更新される。
 このようにして、4回目のスナップショット作成が完了する。すなわち、書き込みが禁止された仮想ディスク111~114に、4回目のスナップショット作成時のデータが保存される。そして以後の書き込みは、運用ディスクとして使用される仮想ディスク115に対して行われる。
 次に、スナップショット作成後のデータの読み出し処理について説明する。
 図18は、データの読み出し処理の手順の一例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。なおデータの読み出し処理は、いずれかの業務サーバから、読み出し対象のブロックのアドレスを指定した、データの読み出し要求が管理サーバ100に入力された場合に実行される。
 [ステップS141]アクセス部140は、運用ディスクを判定対象に選択する。例えばアクセス部140は、マスタディスク管理情報123を参照し、運用ディスクとして使用されている仮想ディスクのデバイス番号を取得する。そしてアクセス部140は、取得したデバイス番号に対応する仮想ディスクを、判定対象とする。
 [ステップS142]アクセス部140は、運用ディスクにデータがあるか否かを判断する。例えばアクセス部140は、判定対象の仮想ディスクのデバイス番号が付与された更新ブロックリストを参照する。そしてアクセス部140は、参照した更新ブロックリストに、データの読み出し要求に示されるアドレスが設定されているか否かを判断する。更新ブロックリストに、該当アドレスが登録されていれば、アクセス部140は、運用ディスクにデータがあると判断する。運用ディスクにデータがある場合、アクセス部140は、処理をステップS143に進める。また運用ディスクにデータがない場合、アクセス部140は、処理をステップS144に進める。
 [ステップS143]アクセス部140は、運用ディスクとして使用されている仮想ディスクからデータを読み出す。例えばアクセス部140は、データ管理部110に対して、運用ディスクとして使用している仮想ディスクからの、読み出し対象のデータを含むブロックの読み出しを要求する。するとデータ管理部110は、仮想ディスクの該当ブロックの内容を、ストレージ装置から読み出し、アクセス部140に送信する。アクセス部140は、取得したブロック内のデータを、データ読み出し要求の送信元の業務サーバに送信する。その後、データの読み出し処理は終了する。
 [ステップS144]アクセス部140は、現在選択している仮想ディスクのマスタディスクを、新たな判定対象として選択する。例えばアクセス部140は、マスタディスク管理情報123を参照し、現在選択している仮想ディスクのマスタディスク情報から、マスタディスクのデバイス番号を取得する。そしてアクセス部140は、取得したデバイス番号に対応する仮想ディスクを、新たな判定対象とする。
 [ステップS145]アクセス部140は、判定対象のディスクに読み出し対象のデータがあるか否かを判断する。アクセス部140は、判定対象のディスクに読み出し対象のデータがある場合、処理をステップS146に進める。またアクセス部140は、判定対象のディスクに読み出し対象のデータがない場合、処理をステップS144に進める。
 [ステップS146]アクセス部140は、判定対象の仮想ディスクからデータを読み出す。
 このような手順でデータの読み出しを行うことで、繰り返しスナップショットが作成された場合のデータの読み出し効率を向上させることができる。例えば、図17に示したように、仮想ディスク115を運用ディスクとして使用している状況で、オリジナルディスクである仮想ディスク111に格納されているデータを読み出す場合を想定する。この場合、第2の実施の形態であれば、該当するデータが格納されているか否かの判定が、仮想ディスク115、仮想ディスク112、仮想ディスク111の順で行われる。そして、仮想ディスク111に該当データがあることが判明し、仮想ディスク111からデータが読み出される。
 ここで、比較対象として、第2の実施の形態のようにマスタディスクを辿ることをせずに、格納されている差分データが新しい仮想ディスクから順に、読み出し対象のデータの有無を判定した場合を想定する。このような判定順を採用する場合において、オリジナルディスクである仮想ディスク111に格納されているデータの読み出し要求があると、仮想ディスク115から判定が開始される。以後、仮想ディスク114、仮想ディスク113、仮想ディスク112、仮想ディスク111の順で、順番に読み出し対象のデータの有無が判定される。そして5台目に当たる仮想ディスク111の判定により、仮想ディスク111に読み出し対象のデータが存在することが判明する。すなわち、第2の実施の形態を適用した場合に比べ、読み出し対象のデータを有する仮想ディスクを見つけ出すまでの判定回数が多くなる。換言すると、第2の実施の形態のようにマスタディスクを辿ってデータの有無を判定することで、読み出し対象のデータを有する仮想ディスクを見つけ出すまでの判定回数が削減される。
 論理ボリューム110aに組み込む仮想ディスクと、その仮想ディスクのマスタディスクとの間の差分データを格納する仮想ディスクの数が多いほど、読み出し対象のデータを有する仮想ディスクを見つけ出すまでの判定回数の削減効果は大きくなる。以下、図19、図20を参照して、読み出し対象のデータを有する仮想ディスクを見つけ出すまでの判定回数の削減効果について説明する。
 図19は、マスタディスク管理情報に格納される情報の一例を示す図である。図19の例では、スナップショットの作成が8回行われている。現在、運用ディスクとして使用されている仮想ディスクのマスタディスクは、デバイス番号「0x8003」の仮想ディスクである。この仮想ディスクの運用属性は「スナップショット#3」であり、3回目のスナップショット作成処理以降、書き込みが禁止されている。
 次に、図19のような状態で論理ボリューム110aが運用されているときに、オリジナルディスクに格納されたデータの読み出し要求が出された場合を想定する。
 図20は、データの読み出し例を示す図である。図20の例では、9台の仮想ディスク111~119が論理ボリューム110aに組み込まれている。そのうち、仮想ディスク119が運用ディスクトして使用されている。このとき、オリジナルディスクである仮想ディスク111に格納されたデータの読み出し要求が出されたものとする。
 この場合、最初に仮想ディスク119に読み出し対象のデータが格納されているか否かが判定される。この例は、仮想ディスク119は、読み出し対象のデータが格納されていない。そのため、次に、仮想ディスク119のマスタディスクである仮想ディスク113について、読み出し対象のデータが格納されているか否かが判定される。その後、同様に、仮想ディスク112、仮想ディスク111について、読み出し対象のデータが格納されているか否かが判定される。そして仮想ディスク111に読み出し対象のデータが格納されていることが検出され、仮想ディスク111から該当データが読み出される。
 図20の例では、仮想ディスク114~118については、読み出し対象のデータが格納されているか否かの判定を行わずにすむ。従って、データの読み出しを効率的に行うことができる。
 〔その他の実施の形態〕
 第2の実施の形態では、論理ボリューム110aを1または複数の仮想ディスクで構成しているが、仮想ディスクに代えて物理ディスクやSSD(Solid State Drive)を用いることもできる。
 また第2の実施の形態では、仮想ディスクごとにビットマップと更新ブロックリストとを別々に用意しているが、一方の情報から他方の情報を生成することが可能である。例えばビットマップから更新ブロックリストを作成すること、また更新ブロックリストからビットマップを作成することが可能である。従って、仮想ディスクに対応付けて、ビットマップと更新ブロックリストとの一方のみを管理情報記憶部120に格納しておいてもよい。
 以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
 1a,1b,1c,1d,1e 記憶手段
 2 選択手段
 3 設定手段
 4 コピー手段
 5 判定手段
 6 読み出し手段
 X 情報処理装置

Claims (8)

  1.  情報処理装置に、
     複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが書き込まれており、スナップショット作成要求が入力されると、対応する記憶手段を選択し、
     前記スナップショット作成要求が入力された時点より後に更新するデータを書き込む新たな記憶手段に対し、前記選択された記憶手段に対応する時間帯より後に更新されたデータをコピーし、
     読み出し対象のデータを指定した読み出し要求に応じ、前記コピーにおけるコピー元の記憶手段以外の記憶手段に該読み出し対象のデータが格納されているか否かを判定し、
     該読み出し対象のデータを格納している記憶手段から該読み出し対象のデータを読み出す、
     処理を実行させるプログラム。
  2.  前記選択では、対応する時間帯以降に更新されたデータが所定量を超える記憶手段があれば、該記憶手段を選択し、該記憶手段がなければ、最も後の時間帯に対応する記憶手段を選択することを特徴とする請求の範囲第1項記載のプログラム。
  3.  前記選択では、対応する時間帯以降に更新されたデータが所定量を超える記憶手段が複数ある場合、該当する記憶手段のうち、対応する時間帯が最も後の記憶手段を選択することを特徴とする請求の範囲第2項記載のプログラム。
  4.  前記選択では、データの格納単位である複数のブロックのうち対応する時間帯以降に更新されたブロックの全ブロックに対する割合が所定の閾値を超える記憶手段があれば、該記憶手段を選択することを特徴とする請求の範囲第1項乃至第3項のいずれかに記載のプログラム。
  5.  記憶手段に対応付けられたビットマップでは、データが更新されたブロックに対応するビットに1が設定されており、
     前記選択では、最も後の時間帯に対応する記憶装置のビットマップに対し、対応する時間帯が後の記憶手段のビットマップから順に、ビットマップの論理和演算を施していき、論理和の計算結果のビットマットマップ中の値が1のビットの割合が前記閾値を超えたときに、最後に論理和演算で加えたビットマップに対応する記憶手段を選択することを特徴とする請求の範囲第4項記載のプログラム。
  6.  前記情報処理装置に、さらに、
     前記スナップショット作成要求が入力された時点より後に更新するデータを書き込む新たな記憶手段の、読み出し対象のデータの有無の判定における次の判定対象として、前記選択された記憶手段を設定する処理を実行させ、
     前記判定では、前記新たな記憶手段を最初の判定対象とすると共に、判定対象の記憶手段で次の判定対象に設定されている記憶手段を順番に判定対象として、判定対象の記憶手段に該読み出し対象のデータが格納されているか否かを判定する請求の範囲第1項乃至第5項のいずれかに記載のプログラム。
  7.  情報処理装置が、
     複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが書き込まれており、スナップショット作成要求が入力されると、対応する記憶手段を選択し、
     前記スナップショット作成要求の入力時点より後に更新するデータを書き込む新たな記憶手段に対し、前記選択された記憶手段に対応する時間帯より後に更新されたデータをコピーし、
     読み出し対象のデータを指定した読み出し要求に応じ、前記コピーにおけるコピー元の記憶手段以外の記憶手段に該読み出し対象のデータが格納されているか否かを判定し、
     該読み出し対象のデータを格納している記憶手段から該読み出し対象のデータを読み出す、
     ことを特徴とするデータ管理方法。
  8.  複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが書き込まれており、スナップショット作成要求が入力されると、対応する記憶手段を選択する選択手段と、
     前記スナップショット作成要求が入力された時点より後に更新するデータを書き込む新たな記憶手段に対し、前記選択された記憶手段に対応する時間帯より後に更新されたデータをコピーするコピー手段と、
     読み出し対象のデータを指定した読み出し要求に応じ、前記コピーにおけるコピー元の記憶手段以外の記憶手段に該読み出し対象のデータが格納されているか否かを判定する判定手段と、
     該読み出し対象のデータを格納している記憶手段から該読み出し対象のデータを読み出す読み出し手段と、
     を有する情報処理装置。
PCT/JP2012/067462 2012-07-09 2012-07-09 プログラム、データ管理方法、および情報処理装置 WO2014010011A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067462 WO2014010011A1 (ja) 2012-07-09 2012-07-09 プログラム、データ管理方法、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067462 WO2014010011A1 (ja) 2012-07-09 2012-07-09 プログラム、データ管理方法、および情報処理装置

Publications (1)

Publication Number Publication Date
WO2014010011A1 true WO2014010011A1 (ja) 2014-01-16

Family

ID=49915514

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067462 WO2014010011A1 (ja) 2012-07-09 2012-07-09 プログラム、データ管理方法、および情報処理装置

Country Status (1)

Country Link
WO (1) WO2014010011A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107798130A (zh) * 2017-11-17 2018-03-13 广西广播电视信息网络股份有限公司 一种分布式存储的快照方法
US20220398217A1 (en) * 2021-06-10 2022-12-15 EMC IP Holding Company, LLC System and Method for Snapshot Rule Time Zone Value

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146228A (ja) * 2007-12-14 2009-07-02 Fujitsu Ltd バックアップ装置、バックアップ方法およびバックアッププログラム
JP2010055314A (ja) * 2008-08-27 2010-03-11 Hitachi Ltd 計算機システム及びそのバックアップ方法
WO2010137179A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Computer system and its data control method
JP2012022490A (ja) * 2010-07-14 2012-02-02 Fujitsu Ltd データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146228A (ja) * 2007-12-14 2009-07-02 Fujitsu Ltd バックアップ装置、バックアップ方法およびバックアッププログラム
JP2010055314A (ja) * 2008-08-27 2010-03-11 Hitachi Ltd 計算機システム及びそのバックアップ方法
WO2010137179A1 (en) * 2009-05-25 2010-12-02 Hitachi,Ltd. Computer system and its data control method
JP2012022490A (ja) * 2010-07-14 2012-02-02 Fujitsu Ltd データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107798130A (zh) * 2017-11-17 2018-03-13 广西广播电视信息网络股份有限公司 一种分布式存储的快照方法
CN107798130B (zh) * 2017-11-17 2020-08-07 广西广播电视信息网络股份有限公司 一种分布式存储快照的方法
US20220398217A1 (en) * 2021-06-10 2022-12-15 EMC IP Holding Company, LLC System and Method for Snapshot Rule Time Zone Value

Similar Documents

Publication Publication Date Title
US8661220B2 (en) Computer system, and backup method and program for computer system
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
US5915264A (en) System for providing write notification during data set copy
JP6341918B2 (ja) ストレージを含むデータをコピーするためのコンピュータ・プログラム、システム、および方法
US8015155B2 (en) Non-disruptive backup copy in a database online reorganization environment
JP2011118712A (ja) データ管理プログラム、データ管理装置、およびデータ管理方法
CN103827804B (zh) 在物理区块间拷贝数据的磁盘阵列装置、磁盘阵列控制器以及方法
JP6511795B2 (ja) ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム
CN102929786A (zh) 非易失性存储设备集合的易失性存储器表示
US20100268689A1 (en) Providing information relating to usage of a simulated snapshot
JP2015026112A (ja) ストレージ制御装置、制御プログラム及び制御方法
JP7054001B2 (ja) 情報処理システム、管理装置および制御方法
JP2008102590A (ja) ストレージシステムの運用管理方法およびストレージシステム
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US7853769B2 (en) Computer system for managing number of writes for storage medium and control method therefor
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
CN111007990B (zh) 一种对快照系统中数据块引用进行快速定位的定位方法
JP2016212551A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム
US7676644B2 (en) Data processing system, storage apparatus and management console
WO2014010011A1 (ja) プログラム、データ管理方法、および情報処理装置
US8688938B2 (en) Data copying
JP2016143166A (ja) 制御装置,ストレージシステム及び制御プログラム
WO2014010016A1 (ja) プログラム、データ管理方法、および情報処理装置
JP2001101039A (ja) 階層ストレージ管理装置
KR101834082B1 (ko) 다중 ssd 시스템 관리 장치 및 방법

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP