WO2014010016A1 - プログラム、データ管理方法、および情報処理装置 - Google Patents
プログラム、データ管理方法、および情報処理装置 Download PDFInfo
- Publication number
- WO2014010016A1 WO2014010016A1 PCT/JP2012/067478 JP2012067478W WO2014010016A1 WO 2014010016 A1 WO2014010016 A1 WO 2014010016A1 JP 2012067478 W JP2012067478 W JP 2012067478W WO 2014010016 A1 WO2014010016 A1 WO 2014010016A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- read
- storage means
- virtual disk
- stored
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Definitions
- the present invention relates to a program for managing data stored in a plurality of storage devices, 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.
- 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.
- storage means is associated with each of a plurality of time zones, and the storage means stores data updated within the corresponding time zone, and receives a data read request. And determining whether or not the data is stored in a predetermined order for each storage means, and reading the data from the storage means storing the data specified by the read request, than the storage means.
- the information processing apparatus is caused to execute the process of storing the data in the storage means having a predetermined order earlier.
- FIG. 1 is a diagram illustrating a functional configuration example of the information processing apparatus according to the first embodiment.
- the information processing apparatus X according to the first embodiment includes a plurality of storage units 1a, 1b, 1c, 1d, and 1e, a determination unit 2, a reading unit 3, and a storage unit 4.
- the storage means 1a, 1b, 1c, 1d, and 1e are associated with a plurality of time zones T1, T2, T3, T4, and T5, respectively.
- the plurality of time zones T1, T2, T3, T4, and T5 are time zones that are divided using, for example, snapshot creation request input times t1, t2, t3, and t4 as boundaries.
- the storage means 1a, 1b, 1c, 1d, and 1e store data updated within the corresponding time zone.
- the storage units 1a, 1b, 1c, and 1d are Writing data in response to an external write request is prohibited. Thereby, data at the time of inputting the snapshot creation request is held.
- the storage unit 1e corresponding to the time period T5 after the input time t4 of the last snapshot creation request is a storage unit in operation, and stores data in response to an external data write request.
- the determination unit 2 sequentially determines whether or not the data is stored in the storage unit according to a predetermined determination order. For example, the determination unit 2 sequentially selects the corresponding time zone from the later storage unit, and determines whether the data to be read is stored in the selected storage unit. In this case, selection and determination are performed in the order of the storage unit 1e, the storage unit 1d, the storage unit 1c, the storage unit 1b, and the storage unit 1a.
- Read means 3 reads the data 5 from the storage means storing the data specified by the read request. For example, the reading unit 3 outputs the read data 5 as a response to the read request. The reading unit 3 temporarily stores, for example, the read data 5 as a cache.
- the storage unit 4 stores the data 5 in a storage unit that is earlier in the determination order than the storage unit in which the data 5 is stored. For example, the storage unit 4 receives the data 5 held as a cache from the reading unit 3 and stores it in any storage unit. For example, the storage unit 4 stores the data in any of the storage units 1a, 1b, 1c, and 1d corresponding to the time zone before the input time point of the last snapshot creation request.
- the storage unit 4 includes, for example, a storage unit that stores data for each storage unit that has an earlier determination order than the storage unit that stores the read data each time data is read. The value which shows the difference of the order of judgment between is calculated
- the reading unit 3 reads the data from the storage unit storing the data specified by the reading request.
- the storage means 4 stores the read data in the storage means that is earlier in the determination order than the read storage means.
- the data can be read from the storage means whose judgment order is earlier than the previous time. That is, it is possible to reduce the number of storage means to be determined as to whether or not data to be read is stored. As a result, the data read efficiency is improved.
- the determination unit 2 sequentially determines the presence / absence of data from the storage unit 1e. Then, the determination unit 2 determines that the data 5 is stored in the fifth storage unit 1a in the determination order.
- the reading unit 3 receives the identification information of the storage unit 1a in which the data 5 is stored from the determination unit 2, and reads the data 5 from the storage unit 1a.
- the reading unit 3 outputs the read data 5 as a response to the read request.
- the storage unit 4 receives the data 5 from the reading unit 3 and stores the data 5 in any of the storage units whose determination order is earlier than that of the storage unit 1a. For example, the storage unit 4 stores the data 5 in the storage unit 1d corresponding to the latest time zone among the storage units corresponding to the time zone before the input time t4 of the last snapshot creation request. As a result, the data 5 is stored in the storage unit 1d having the earliest determination order among the storage units that are prohibited from writing according to a write request from the outside by the snapshot.
- data 5 can be read from storage means 1d. Since the storage unit 1d precedes the storage unit 1a as the determination order of the presence / absence of data, the number of storage units that determine the presence / absence of data when reading the data 5 is small. As a result, the data read efficiency is improved.
- the determination unit 2, the reading unit 3, and the storage unit 4 can be realized by a processor included in the information processing apparatus X, for example.
- the storage units 1a, 1b, 1c, 1d, and 1e can be realized by, for example, a RAM (Random Access Memory) included in the information processing apparatus X.
- the management server 100 is a computer that creates virtual disks using RAID devices 41, 42, 43,.
- the management server 100 uses a software RAID technology and generates a virtual RAID group by combining LUs (Logical Units) of RAID devices 41, 42, 43,.
- the management server 100 sets the virtual RAID group generated in this way as a virtual disk.
- 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 central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD).
- 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 (Hard Disk Drive) 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.
- HDD Hard Disk Drive
- 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. 6).
- 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 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 executes a data read process in response to the read request while tracing the virtual disk in order from the active disk. In the process of reading data to each virtual disk, the access unit 140 refers to the update block list corresponding to the virtual disk and determines whether or not a block including the data to be read is stored in the virtual disk. To do. When the data to be read is not stored in the virtual disk, the access unit 140 sequentially executes a read process to the next virtual disk. Then, the access unit 140 reads a block including the corresponding data from the virtual disk having the data to be read.
- the access unit 140 is an example of a function that includes the determination unit 2, the reading unit 3, and the storage unit 4 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.
- the lines connecting the elements shown in FIG. 4 indicate a part of the communication paths, and communication paths other than the illustrated communication paths can be set.
- FIG. 5 is a diagram showing an example of the arrangement and internal structure of a virtual disk.
- five virtual disks 111 to 115 are included in the logical volume 110a.
- the virtual disks 111 to 115 are arranged from the left in the order of early use as the operation disks.
- Data is written in response to a write request from the business servers 31, 32,... Reading data in response to a read request from the business servers 31, 32,... Is executed in order from a virtual disk that has been used as a working disk later.
- data reading in response to the read request is sequentially performed from the rightmost virtual disk 115 sequentially to the left.
- the virtual disk 111 is an original disk that stores data (original data) written before a snapshot is created once.
- the virtual disk 111 is prohibited from writing data based on a write request from the business servers 31, 32,... After the first snapshot (snapshot # 1) is created.
- the original data stored in the virtual disk 111 corresponds to the first snapshot.
- the virtual disks 111 to 115 are arranged in order from the earliest used virtual disk with the virtual disk 111 as the original disk at the head.
- the virtual disk 111 is first
- the virtual disk 112 is second
- the virtual disk 113 is third
- the virtual disk 114 is fourth
- the virtual disk 115 is fifth.
- the virtual disk 112 stores data written between the creation of the first snapshot and the creation of the second snapshot (snapshot # 2). Data written to the virtual disk 112 is difference data from the original data. The virtual disk 112 is prohibited from writing data based on a write request from the business servers 31, 32,... After the second snapshot is created. The data stored in the virtual disks 111 and 112 corresponds to the second snapshot.
- the virtual disk 115 stores data written after the fourth snapshot creation. Data written to the virtual disk 115 is difference data from the fourth snapshot. The virtual disk 115 is still used as an operation disk and is writable.
- the data management unit 110 allocates a predetermined amount (for example, 2 GB) of storage area to the created virtual disks.
- a predetermined threshold for example, 800 MB
- the data management unit 110 adds a predetermined amount (for example, 2 GB) of storage area to the virtual disk. In this way, a certain amount of free space is always secured in the operating virtual disk. As a result, even if a large amount of data is written, it is not necessary to deplete the storage capacity of the operation disk.
- each of the virtual disks 111 to 115 includes free space. Therefore, in the second embodiment, the free areas of the virtual disks 111 to 114 in which data writing based on the write request from the business servers 31, 32,... Is prohibited are used as the copy destination of the read data. In this way, the free space is effectively utilized.
- Whether to copy the data to be read is determined based on the total number of movements of the data.
- the total number of movements is a cumulative value of the number of movements obtained each time data is read.
- the number of movements is a value indicating a difference in arrangement in the logical volume 110a from the virtual disk in which the read data is stored to the virtual disk corresponding to the read block management area.
- the total number of data movements is counted for each virtual volume and held in the management information storage unit 120.
- the total number of movements is an example of a determination value in the first embodiment.
- FIG. 6 is a diagram illustrating an example of the data structure of the management information storage unit.
- the management information storage unit 120 stores a plurality of read block management areas 121a, 121b, 121c,... And a plurality of update block lists 122a, 122b, 122c,.
- the read block management areas 121a, 121b, 121c,... are provided for each virtual disk newly incorporated in the logical volume 110a when the snapshot is created. For example, device numbers of corresponding virtual disks are set in the read block management areas 121a, 121b, 121c,. The device number is unique information in the virtual disk system.
- the read block management areas 121a, 121b, 121c,... Include numerical values that serve as indicators for whether or not the read data is to be copied to the corresponding virtual disk. For example, in the read block management areas 121a, 121b, 121c,..., A set of the read data offset and the number of movements is registered. The offset is an address difference from the beginning of the storage area of the logical volume 110a to the data.
- the data read process is executed when a data read request is input.
- the virtual disk that is the read start point can be specified.
- the virtual disk that is used as the operation disk at that time is designated as the read start point.
- the virtual disk that was used as the active disk until immediately before the snapshot creation is designated as the starting point.
- FIG. 7 is the first half of a flowchart showing an example of the data reading process. In the following, the process illustrated in FIG. 7 will be described in order of step number.
- Step S101 When a data read request is input, the access unit 140 selects a virtual disk as a starting point in the read request.
- Step S103 The access unit 140 newly selects a virtual disk that has been used as an active disk and advances the process to step S102. For example, the access unit 140 performs a data read process on the next virtual disk as a subroutine of a read process on the currently selected virtual disk.
- Step S113 The access unit 140 determines whether the selected virtual disk is a working disk. If the selected virtual disk is the active disk, the access unit 140 advances the process to step S117. If the selected virtual disk is not a working disk, the access unit 140 proceeds with the process to step S114.
- the access unit 140 adds 1 to the number of movements.
- the access unit 140 adds the current number of movements to the total number of movements of data to be read in the selected virtual disk. For example, the access unit 140 specifies the read block management area corresponding to the virtual disk based on the device number of the selected virtual disk from the management information storage unit 120. Next, the access unit 140 adds the current number of movements to the total number of movements corresponding to the offset value of the read data within the specified read block management area.
- Step S116 The access unit 140 determines whether the selected virtual disk is a virtual disk from which data is read. If the selected virtual disk is the read start point, the access unit 140 advances the process to step S117. If the selected virtual disk is not the read start point, the access unit 140 advances the process to step S112.
- the access unit 140 determines whether there is a virtual disk in which the total number of data to be read exceeds the threshold. For example, the access unit 140 extracts the total number of moves corresponding to the offset value of the data to be read from all the read block management areas 121a, 121b, 121c,... In the management information storage unit 120, and exceeds the threshold value. Judge whether there is a total number of moves. If there is at least one virtual disk whose total migration exceeds the threshold, the access unit 140 advances the process to step S118. If there is no virtual disk whose total migration exceeds the threshold, the access unit 140 ends the process without copying the data.
- Step S118 When there is a virtual disk whose total number of movements exceeds the threshold, the access unit 140 determines whether or not the virtual disk has enough free space to copy the data to be read. For example, the access unit 140 compares the free capacity of the virtual disk whose total migration exceeds the threshold with the data amount of the data to be read. If the free space is greater than or equal to the data amount, the access unit 140 determines that the virtual disk has sufficient free space. If there is sufficient free space, the access unit 140 proceeds with the process to step S119. If there is not enough free space, the access unit 140 ends the data reading process.
- the data reading process will be described using a specific example.
- the read request other than the read request for the snapshot data created in the past starts from the operation disk.
- FIG. 9 is a diagram showing an example of data read processing starting from the operation disk.
- a data read request 51 stored in the virtual disk 111 which is the original disk is input.
- a block including data to be read is designated by an offset value “xxxxx”.
- the access unit 140 determines whether or not data to be read is stored in order from the virtual disk 115 that is the active disk. Then, the access unit 140 detects that the data to be read is stored in the virtual disk 111 determined last, and reads the corresponding data 52 from the virtual disk 111 for each block including the data 52. The read data 52 is transmitted to the business server that transmitted the read request 51.
- FIG. 10 is a diagram illustrating an initial value of the number of movements of read data.
- the initial value of the movement number the movement number of the virtual disk 111 from which the data 52 has been read is set to “0”.
- the number of movements is updated while tracing the virtual disk array up to the virtual disk 115 at the starting point of the read request 51. For example, each time the user moves to the next virtual disk, the number of movements is incremented by one.
- FIG. 11 is a diagram showing an example of updating the total number of movements based on data read processing starting from the operation disk.
- the movement number of the virtual disk 111 from which the data 52 has been read is “0”, and the movement number of the next virtual disk 112 is “1”. Therefore, the total number of movements “1” is set in the read block management area 121 a corresponding to the virtual disk 112 in association with the offset value “xxxxx” of the block including the data 52.
- the number of movements of the virtual disk 112 after the virtual disk 112 is “2”. Therefore, the total number of movements “2” is set in the read block management area 121 b corresponding to the virtual disk 113 in association with the offset value “xxxxx” of the block including the data 52.
- the number of movements in the virtual disk 114 next to the virtual disk 113 is “3”. Accordingly, the total number of movements “3” is set in the read block management area 121 c corresponding to the virtual disk 114 in association with the offset value “xxxxx” of the block including the data 52.
- the virtual disk 115 used as the operation disk is excluded from the copy destination of the read data. Therefore, the total number of movements corresponding to the virtual disk 115 is not updated.
- FIG. 12 is a diagram illustrating an example of the second data read process.
- the second read request 53 for the data 52 is input, the presence or absence of the data 52 is determined in order from the virtual disk 115 that is the starting point, as in the previous case.
- the data 52 is read from the virtual disk 111 storing the data 52.
- the total number of movements of the data 52 in each virtual disk is updated.
- FIG. 13 is a diagram showing an example of updating the total number of movements according to the second data read.
- the number of movements in each of the virtual disks 111 to 114 is the same as in the first case shown in FIG.
- the number of movements in the virtual disk 112 is “1”. Therefore, in the read block management area 121a corresponding to the virtual disk 112, “1” is added to the total number of movements corresponding to the offset value “xxxxx” of the block including the data 52 and updated to “2”.
- the number of movements in the virtual disk 113 is “2”. Therefore, in the read block management area 121b corresponding to the virtual disk 113, “2” is added to the total number of movements corresponding to the offset value “xxxxx” of the block including the data 52 and updated to “4”.
- the number of movements in the virtual disk 114 is “3”. Therefore, in the read block management area 121c corresponding to the virtual disk 114, “3” is added to the total number of movements corresponding to the offset value “xxxxx” of the block including the data 52 and updated to “6”.
- the total number of movements “6” corresponding to the data 52 in the virtual disk 114 exceeds the threshold value “5”. Therefore, it is determined whether or not the virtual disk 114 has enough free space to copy the data 52.
- FIG. 14 is a diagram showing the determination status of the free capacity of the data copy destination.
- the data amount of the data 52 stored in the virtual disk 111 is a byte (a is a positive real number), and the free space capacity of the virtual disk 114 is b bytes (b is a positive real number). .
- FIG. 15 is a diagram showing a copy example of data.
- the data 52 of the virtual disk 111 is copied to the virtual disk 114.
- the copied data is stored in the virtual disk 114 as difference data.
- the offset value of the block including the data 52 is set in the update block list (see FIG. 6) corresponding to the virtual disk 114.
- FIG. 16 is a diagram illustrating an example of the third data read process.
- the third read request 54 for the data 52 is input, the presence / absence of the data 52 is determined in order from the virtual disk 115 as the starting point. Then, since the offset value of the block including the data 52 is set in the update block list of the virtual disk 114, it is determined that the data 52 is stored in the virtual disk 114. Therefore, the data 52 is read from the virtual disk 114.
- the fourth and subsequent readings of the data 52 can also be performed from the virtual disk 114.
- the data can be quickly read out by copying the data to a virtual disk that has a fast determination order of the presence or absence of data at the time of reading. .
- the presence / absence of the data 52 is determined for five virtual disks.
- the data 52 is read for the third time and thereafter, it is only necessary to determine whether or not the data 52 exists by using two virtual disks. As described above, the number of virtual disks for determining the presence or absence of the data 52 is reduced, so that the data read efficiency is improved.
- ⁇ Data read request may be made for snapshots created in the past.
- the virtual disk that has been used as the active disk until immediately before the creation of the snapshot is the starting point for determining whether there is data.
- FIG. 17 is a diagram illustrating an example of a process for reading snapshot data.
- a read request 55 that requests reading of the data 52 of the offset value “xxxxx” from the snapshot (snapshot # 3) created for the third time.
- the virtual disk 113 that has been used as the active disk until immediately before the third snapshot creation is the starting point for determining whether the data 52 exists.
- the data 52 is stored in the virtual disk 111 that is the original disk, and the data 52 is read from the virtual disk 111.
- the movement number is set for each of the virtual disks 111 to 113 from the virtual disk 111 from which the data 52 has been read to the starting virtual disk 113. . Based on the set number of movements, the total number of movements corresponding to the read data is set for each virtual disk.
- FIG. 18 is a diagram showing an example of setting the total number of movements when reading snapshot data.
- the movement number of the virtual disk 111 from which the data 52 has been read is “0”, and the movement number of the next virtual disk 112 is “1”. Therefore, in the read block management area 121a corresponding to the virtual disk 112, “1” is added to the total number of movements corresponding to the offset value “xxxxx” of the block including the data 52 and updated to “2”.
- the number of movements of the virtual disk 112 in the next virtual disk 113 is “2”. Therefore, in the read block management area 121b corresponding to the virtual disk 113, “2” is added to the total number of movements corresponding to the offset value “xxxxx” of the block including the data 52 and updated to “4”. At this time, there is no total number of movements exceeding the threshold “5”.
- FIG. 19 is a diagram illustrating an example of a second read process of snapshot data.
- a third read request 56 of the data 52 from the snapshot created for the third time is input, the presence or absence of the data 52 is determined in order from the virtual disk 113 that is the starting point, as in the first time. Then, the data 52 is read from the virtual disk 111 storing the data 52. Then, in accordance with the reading of the data 52, the total number of movements of the blocks including the data 52 in the virtual disks 112 and 113 is updated.
- the total number of movements of blocks including data 52 in the virtual disk 112 is updated to “3”, and the total number of movements of blocks including data 52 in the virtual disk 113 is updated to “6”.
- the total number of movements of the blocks including the data 52 in the virtual disk 113 exceeds the threshold “5”. Therefore, after confirming that the virtual disk 113 has sufficient free space, the block including the data 52 is copied to the virtual disk 113.
- FIG. 20 is a diagram showing an example of data copy in response to reading of snapshot data.
- the data 52 of the virtual disk 111 is copied to the virtual disk 113.
- the copied data is held in the virtual disk 113 as difference data.
- the offset value of the block including the data 52 is set in the update block list (see FIG. 6) corresponding to the virtual disk 113.
- the data 52 is read from the virtual disk 113.
- the total number of moves is also updated when snapshot data is read. That is, when the virtual disk in the logical volume 110a has a plurality of tiers due to the creation of the snapshot, the data can be read out during the operation and the snapshot data can be read out.
- the virtual disk that is the starting point for determining the presence / absence of data differs between when data is being read and when snapshot data is read.
- read efficiency can be improved by copying data with high read frequency near the virtual disk that is the starting point. Therefore, in the second embodiment, the number of movements is added to the total number of movements without distinguishing which virtual disk is the read request. Thereby, by determining the necessity of copying and the copy destination based on the total number of movements, it is possible to perform appropriate copying for improving the overall reading efficiency.
- the virtual disk used as the operation disk is excluded as the data copy destination, but the operation disk can be included in the data copy destination.
- the access unit 140 also provides a corresponding read block management area for the operational disk, and manages the total number of movements for each data. Then, when the total number of movements on the active disk exceeds the threshold, the access unit 140 copies the read data to the active disk. For example, data may be copied to the active disk when there is not enough free space on the virtual disk whose total number of movements exceeds the threshold and data cannot be copied to the virtual disk.
- the total number of data movements is calculated for each storage unit. This is also intended to improve the data reading efficiency when reading data from a created snapshot. It is.
- the access unit 140 moves the virtual disk before the operation disk. Calculate only the total number.
- the access unit 140 detects data in which the total number of movements in the virtual disk before the active disk exceeds the threshold, the access unit 140 stores the data in the virtual disk before the active disk.
- the logical volume 110a is composed of one or more virtual disks, but a physical disk or SSD (Solid State Drive) can be used instead of the virtual disk.
- SSD Solid State Drive
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データの読み出し効率を向上させる。 複数の時間帯(T1,T2,T3,T4,T5)それぞれに記憶手段(1a,1b,1c,1d,1e)が対応付けられている。記憶手段(1a,1b,1c,1d,1e)には、対応する時間帯内に更新されたデータが格納されている。判定手段(2)は、データ(5)の読み出し要求が入力されると、記憶手段ごとに所定の順番で、データ(5)が格納されているか否かを判定する。読み出し手段(3)は、読み出し要求で指定されたデータ(5)が格納されている記憶手段(1a)から、そのデータ(5)を読み出す。格納手段(4)は、記憶手段(1a)よりも所定の順番が早い記憶手段(1d)に、そのデータ(5)を格納する。
Description
本発明は、複数の記憶装置に格納されたデータを管理するプログラム、データ管理方法、および情報処理装置に関する。
ストレージ装置の管理技術として、スナップショットと呼ばれる技術がある。スナップショットは、ある一時点でのディスクの内容を再現可能な状態で保存することである。ある運用中のディスクのスナップショットを作成する場合、例えば、そのディスクに対する以後の書き込みが禁止され、そのディスクがオリジナルディスクとして保存される。そして他のディスクが新たな運用ディスクとして使用され、スナップショット作成時からの差分データが、新たな運用ディスクに格納される。
スナップショットの作成は、繰り返し行うことができる。2回目以降のスナップショットの作成では、その時点の運用ディスクに対する以降の書き込みが禁止され、以後の差分データを保存する新たな運用ディスクが追加される。このように、スナップショットの採取が繰り返し行われると、差分データを格納するディスクが多段構成となる。
スナップショット作成後にデータを読み出す場合には、保存しておいたオリジナルディスク、または差分データを格納しているディスクから、データが読み出される。差分データを格納するディスクが多段構成であれば、例えば、読み出し対象のデータが格納されているか否かが、新しい差分データを格納するディスクから順に判定される。差分データを格納するいずれのディスクにも該当データが格納されていなければ、最後に、オリジナルディスクにそのデータがあるか否かが判定される。そして読み出し対象のデータを保存しているディスクから、読み出し対象のデータが読み出される。
例えば、データのコピーに際し、コピー元のディスクに記録されたデータをすべてコピー先のディスクにコピーすることなく、書き込み対象となったデータ領域に記録されたデータのみをコピー先のディスクにコピーする技術がある。この技術では、読み出し対象となったデータがコピー先のディスクに存在しない場合には、コピー元のディスクからデータが検索される。
しかし、スナップショット作成のたびに差分データ格納用のディスクを追加する方式では、スナップショットの作成回数が増えるごとに、データの読み出し効率が悪化する。例えば、スナップショット作成を繰り返し行った後のデータ読み出しにおいて、オリジナルディスク上にデータが存在すると、読み出し対象のデータの有無の判定を多数のディスクに対して行うことになる。そのためスナップショット作成を繰り返し行った場合、オリジナルディスクや、初期のころに運用ディスクとして用いられていたディスク上に存在するデータの読み出しに時間がかかる。
1つの側面では、本発明は、データの読み出し効率を向上させるプログラム、データ管理方法、および情報処理装置を提供することを目的とする。
1態様のプログラムは、複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定し、前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出し、該記憶手段よりも所定の順番が早い記憶手段に、該データを格納する、処理を情報処理装置に実行させる。
1態様によれば、データの読み出し効率が向上する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、スナップショットにより差分データを格納する記憶手段が多段構成となっている環境において、データの読み出し時に、読み出し元の記憶手段よりもデータの無の判定が早く行われる記憶手段に、読み出したデータを格納するものである。これにより、以後、同じデータの読み出し時に、データの有無を判定する記憶手段の数が少なくなることで、データの読み出し時間が短縮される。
〔第1の実施の形態〕
まず第1の実施の形態について説明する。第1の実施の形態は、スナップショットにより差分データを格納する記憶手段が多段構成となっている環境において、データの読み出し時に、読み出し元の記憶手段よりもデータの無の判定が早く行われる記憶手段に、読み出したデータを格納するものである。これにより、以後、同じデータの読み出し時に、データの有無を判定する記憶手段の数が少なくなることで、データの読み出し時間が短縮される。
図1は、第1の実施の形態に係る情報処理装置の機能構成例を示す図である。第1の実施の形態に係る情報処理装置Xは、複数の記憶手段1a,1b,1c,1d,1e、判定手段2、読み出し手段3、および格納手段4を有している。
記憶手段1a,1b,1c,1d,1eは、複数の時間帯T1,T2,T3,T4,T5それぞれに対応付けられている。複数の時間帯T1,T2,T3,T4,T5は、例えば、スナップショット作成要求の入力時点t1,t2,t3,t4を境界として区分けされた時間帯である。記憶手段1a,1b,1c,1d,1eには、対応する時間帯内に更新されたデータが格納されている。
なお、記憶手段1a,1b,1c,1dのうち、最後のスナップショット作成要求の入力時点t4よりも前の時間帯T1,T2,T3,T4に対応する記憶手段1a,1b,1c,1dは、外部からの書き込み要求に応じたデータの書き込みは禁止されている。これにより、スナップショット作成要求の入力時点でのデータが保持される。一方、最後のスナップショット作成要求の入力時点t4よりも後の時間帯T5に対応する記憶手段1eは、運用中の記憶手段であり、外部からのデータの書き込み要求に応じて、データが格納される。
判定手段2は、データの読み出し要求が入力されると、記憶手段にそのデータが格納されているか否かを、所定の判定順に従って順番に判定する。例えば判定手段2は、対応する時間帯が後の記憶手段から順に選択し、選択した記憶手段について、読み出し対象のデータが格納されているか否かを判断する。この場合、記憶手段1e、記憶手段1d、記憶手段1c、記憶手段1b、記憶手段1aの順で選択および判定が行われる。
なおスナップショットで保持したデータの読み出し要求が入力される場合があり得る。この場合、判定手段2は、例えば、スナップショットの作成を指示するスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段について、所定の判定順に従って、読み出し対象のデータが格納されているか否かを、順番に判定する。
読み出し手段3は、読み出し要求で指定されたデータが格納されている記憶手段から、そのデータ5を読み出す。読み出し手段3は、例えば、読み出したデータ5を読み出し要求に対する応答として出力する。また読み出し手段3は、例えば読み出したデータ5をキャッシュとして、一時的に保存する。
格納手段4は、データ5が格納されている記憶手段よりも判定順が早い記憶手段に、そのデータ5を格納する。例えば格納手段4は、読み出し手段3からキャッシュとして保持したデータ5を受け取り、いずれかの記憶手段に格納する。例えば格納手段4は、最後のスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段1a,1b,1c,1dのいずれかに、データを格納する。
格納手段4は、例えば、データの格納条件が予め定義されており、読み出し要求で指定されたデータ5が格納されている記憶手段よりも所定の順番が早い記憶手段ごとに、データの格納条件が満たされるか否かを判断する。そして格納手段4は、書き込み条件が満たされる記憶手段に、読み出されたデータ5を格納する。
また格納手段4は、例えば、データの読み出しが行われるごとに、読み出されたデータが格納されている記憶手段よりも判定の順番が早い記憶手段ごとに、データが格納されている記憶手段との間の判定の順番の差を示す値を求める。そして格納手段4は、記憶手段ごとに求められた値を、その記憶手段に対する、読み出されたデータの格納の要否を示す判定値に加算する。この場合、格納手段4は、判定値が所定の閾値を超えた記憶手段に、読み出されたデータを格納する。
このような情報処理装置Xによれば、データの読み出し要求が入力されると、判定手段2により、記憶手段1a,1b,1c,1d,1eにデータが格納されているか否かが、所定の判定順に従って順番に判定される。次に、読み出し手段3により、読み出し要求で指定されたデータが格納されている記憶手段から、そのデータが読み出される。そして格納手段4により、読み出されたデータが、読み出された記憶手段よりも判定順が早い記憶手段に格納される。
これにより、次に同じデータの読み出し要求が入力されると、前回よりも判定順が早い記憶手段からデータを読み出すことができる。すなわち、読み出し対象のデータを格納しているか否かの判定対象となる記憶手段が少なくて済む。その結果、データの読み出し効率が向上する。
例えば図1の例では、読み出し要求で指定されたデータ5が、判定の順番として最後となる記憶手段1aに格納されていたものとする。この場合、判定手段2は、データの有無を、記憶手段1eから順に判定する。そして判定手段2は、判定の順番で5番目の記憶手段1aにデータ5が格納されていると判定する。
読み出し手段3は、判定手段2からデータ5が格納されている記憶手段1aの識別情報を受け取り、記憶手段1aからデータ5を読み出す。読み出し手段3は、読み出したデータ5を読み出し要求に対する応答として出力する。
格納手段4は、読み出し手段3からデータ5を受け取り、記憶手段1aよりも判定の順番が早い記憶手段のいずれかに、データ5を格納する。例えば格納手段4は、最後のスナップショット作成要求の入力時刻t4より前の時間帯に対応する記憶手段のうち、最も後の時間帯に対応する記憶手段1dにデータ5を格納する。これにより、スナップショットによって、外部からの書き込み要求に応じた書き込みが禁止されている記憶手段のうち、最も判定の順番が早い記憶手段1dにデータ5が格納される。
これにより、次にデータ5の読み出し要求があった場合、記憶手段1dからデータ5を読み出すことができる。記憶手段1dは、データの有無の判定順として記憶手段1aより前であるため、データ5の読み出し時にデータの有無の判定を行う記憶手段の数が少なくて済む。その結果、データの読み出し効率が向上する。
しかも、データが格納されている記憶手段が複数に分散することで、個々の記憶手段のI/O負荷が軽減される。また、階層を何段階も遡ったデータの読み出しが少なくなることで信頼性も向上する。さらに、外部からの書き込み要求に応じたデータの書き込みを禁止した記憶手段の空き領域にデータをコピーするようにしたことで、空き領域を有効利用することができ、資源の利用効率が向上する。
なお、判定手段2、読み出し手段3、および格納手段4は、例えば情報処理装置Xが有するプロセッサにより実現することができる。また、記憶手段1a,1b,1c,1d,1eは、例えば情報処理装置Xが有するRAM(Random Access Memory)により実現することができる。
また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
〔第2の実施の形態〕
次に第2の実施の形態について説明する。第2の実施の形態は、複数のRAID(Redundant Array of Inexpensive Disks)装置を組み合わせた仮想ディスクを用いて作成したスナップショットから、データを効率的に読み出すものである。
〔第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(論理ユニット:Logical Unit)を組み合わせて、仮想的な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以上の要素の組み合わせであってもよい。
管理サーバ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に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置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を有する。
図4は、管理サーバの機能を示すブロック図である。管理サーバ100は、データ管理部110、管理情報記憶部120、スナップショット作成部130、およびアクセス部140を有する。
データ管理部110は、仮想ディスク111,112,・・・を用いた論理ボリューム110aを管理する。仮想ディスク111,112,・・・は、例えばRAID装置41,42,43,・・・のLUを用い、ソフトウェアRAIDで作成されたRAIDグループ(またはそのRAIDグループ内のLU)である。
管理情報記憶部120は、スナップショットの作成や、データのアクセスに使用する管理情報を記憶する。管理情報の詳細は後述する(図6参照)。
スナップショット作成部130は、データ管理部110で管理されている論理ボリューム110aのスナップショットを作成する。例えばスナップショット作成部130は、業務サーバ31,32,・・・からのスナップショット作成要求に応じたスナップショットを作成する。スナップショット作成部130は、スナップショットの作成時には、データ管理部110に新たな仮想ディスクを作成させ、その仮想ディスクを新たな運用ディスクとする。以後、論理ボリューム110aへのデータの書き込みは、新たな運用ディスクに対して行われる。これにより、スナップショット作成前に論理ボリューム110aに組み込まれていた仮想ディスクに、スナップショット作成時のデータの状態が保存される。
スナップショット作成部130は、データ管理部110で管理されている論理ボリューム110aのスナップショットを作成する。例えばスナップショット作成部130は、業務サーバ31,32,・・・からのスナップショット作成要求に応じたスナップショットを作成する。スナップショット作成部130は、スナップショットの作成時には、データ管理部110に新たな仮想ディスクを作成させ、その仮想ディスクを新たな運用ディスクとする。以後、論理ボリューム110aへのデータの書き込みは、新たな運用ディスクに対して行われる。これにより、スナップショット作成前に論理ボリューム110aに組み込まれていた仮想ディスクに、スナップショット作成時のデータの状態が保存される。
アクセス部140は、業務サーバ31,32,・・・からのデータアクセス要求に応じて、データ管理部110が管理する論理ボリューム110a内のデータにアクセスする。アクセス部140は、例えばデータの書き込みは、運用ディスクに対して行う。またアクセス部140は、データの読み出しの際は、運用ディスクから順に仮想ディスクを辿りながら、読み出し要求に応じたデータの読み出し処理を実行する。各仮想ディスクへのデータの読み出し処理では、アクセス部140は、その仮想ディスクに対応する更新ブロックリストを参照して、その仮想ディスクに読み出し対象のデータを含むブロックが格納されているか否かを判断する。アクセス部140は、仮想ディスクに読み出し対象のデータが格納されていない場合、次の仮想ディスクへの読み出し処理を順次実行する。そしてアクセス部140は、読み出し対象のデータを有する仮想ディスクから、該当データを含むブロックを読み出す。
またアクセス部140は、読み出したデータが所定の条件を満たしている場合、そのデータを含むブロックを、データの有無の判定順がより早い仮想ディスクにコピーする。アクセス部140は、読み出し処理の効率化のために有用と判断した場合にのみ、データをコピーすることができる。例えばアクセス部140は、データの読み出し回数の多さや、データの有無の判定を行う仮想ディスク数の多さなどを考慮して、データの読み出しの効率化への寄与が大きいデータを含むブロックをコピーする。
なお、アクセス部140は、図1に示した第1の実施の形態における判定手段2、読み出し手段3、および格納手段4を包含する機能の一例である。仮想ディスク111,112,・・・は、図1に示した第1の実施の形態における記憶手段1a,1b,1c,1d,1eの一例である。さらに、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
次に、仮想ディスクの配列と内部構造について説明する。
図5は、仮想ディスクの配列と内部構造の一例を示す図である。図5の例では、論理ボリューム110a内に5つの仮想ディスク111~115が含まれている。仮想ディスク111~115は、運用ディスクとして使用された時期が早い順に、左から並べられている。業務サーバ31,32,・・・からの書き込み要求に応じた、データの書き込みは、現時点で運用ディスクとして使用されている仮想ディスク115に対して行われる。業務サーバ31,32,・・・からの読み出し要求に応じたデータの読み出しは、運用ディスクとして使用された時期が遅い仮想ディスクから順に実行される。図5の配置では、右端の仮想ディスク115から順に左に向かって、読み出し要求に応じたデータ読み出しが順次行われる。
図5は、仮想ディスクの配列と内部構造の一例を示す図である。図5の例では、論理ボリューム110a内に5つの仮想ディスク111~115が含まれている。仮想ディスク111~115は、運用ディスクとして使用された時期が早い順に、左から並べられている。業務サーバ31,32,・・・からの書き込み要求に応じた、データの書き込みは、現時点で運用ディスクとして使用されている仮想ディスク115に対して行われる。業務サーバ31,32,・・・からの読み出し要求に応じたデータの読み出しは、運用ディスクとして使用された時期が遅い仮想ディスクから順に実行される。図5の配置では、右端の仮想ディスク115から順に左に向かって、読み出し要求に応じたデータ読み出しが順次行われる。
仮想ディスク111は、スナップショットが1度も作成される前に書き込まれたデータ(オリジナルデータ)を記憶する、オリジナルディスクである。仮想ディスク111は、最初のスナップショット(スナップショット#1)作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111に格納されているオリジナルデータは、最初のスナップショットに相当する。
各仮想ディスク111~115は、オリジナルディスクである仮想ディスク111を先頭に、運用ディスクとして使用されたのが早い順に並べられている。図5の例では、仮想ディスク111が1番目、仮想ディスク112が2番目、仮想ディスク113が3番目、仮想ディスク114が4番目、仮想ディスク115が5番目である。
仮想ディスク112は、最初のスナップショット作成から2回目のスナップショット(スナップショット#2)作成までの間に書き込まれたデータを記憶する。仮想ディスク112に書き込まれたデータは、オリジナルデータからの差分データである。仮想ディスク112は、2回目のスナップショット作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111,112に格納されているデータは、2回目のスナップショットに相当する。
仮想ディスク113は、2回目のスナップショット作成から3回目のスナップショット(スナップショット#3)作成までの間に書き込まれたデータを記憶する。仮想ディスク113に書き込まれたデータは、2回目のスナップショットからの差分データである。仮想ディスク113は、3回目のスナップショット作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111~113に格納されているデータは、3回目のスナップショットに相当する。
仮想ディスク114は、3回目のスナップショット作成から4回目のスナップショット(スナップショット#4)作成までの間に書き込まれたデータを記憶する。仮想ディスク114に書き込まれたデータは、3回目のスナップショットからの差分データである。仮想ディスク114は、4回目のスナップショット作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111~114に格納されているデータは、4回目のスナップショットに相当する。
仮想ディスク115は、4回目のスナップショット作成以降に書き込まれたデータを記憶する。仮想ディスク115に書き込まれたデータは、4回目のスナップショットからの差分データである。仮想ディスク115は、現在も運用ディスクとして使用されており、書き込み可能である。
データ管理部110は、仮想ディスク111~115を作成する際には、作成した仮想ディスクに所定量(例えば2GB)の記憶領域を割り当てる。そして運用中の仮想ディスクにデータが書き込まれ、空き領域が所定の閾値(例えば800MB)以下になると、データ管理部110は、その仮想ディスクに所定量(例えば2GB)の記憶領域を追加する。このようにして、運用中の仮想ディスクには、ある程度以上の空き領域が常に確保される。その結果、大量のデータの書き込みが発生しても、運用ディスクの記憶容量を枯渇させずに済む。
ただし、このような運用をすることで、仮想ディスク111~115それぞれに空き領域が含まれることとなる。そこで第2の実施の形態では、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みが禁止された仮想ディスク111~114の空き領域を、読み出したデータのコピー先として使用することで、空き領域の有効活用を図る。なお、読み出し対象のデータをコピーするか否かは、そのデータの移動総数に基づいて決定する。移動総数は、データが読み出されるごとに求められる移動数の累積値である。移動数は、読み出されたデータが格納されていた仮想ディスクから、リードブロック管理域に対応する仮想ディスクまでの、論理ボリューム110a内での配列上の差を示す値である。データの移動総数は、仮想ボリュームごとに計数され、管理情報記憶部120で保持される。なお移動総数は、第1の実施の形態における判定値の一例である。
次に、管理情報記憶部120に格納されている管理情報について詳細に説明する。
図6は、管理情報記憶部のデータ構造の一例を示す図である。管理情報記憶部120には、複数のリードブロック管理域121a,121b,121c,・・・、と複数の更新ブロックリスト122a,122b,122c,・・・が格納されている。
図6は、管理情報記憶部のデータ構造の一例を示す図である。管理情報記憶部120には、複数のリードブロック管理域121a,121b,121c,・・・、と複数の更新ブロックリスト122a,122b,122c,・・・が格納されている。
リードブロック管理域121a,121b,121c,・・・は、スナップショット作成時に、新たに論理ボリューム110aに組み込まれた仮想ディスクごとに設けられている。例えばリードブロック管理域121a,121b,121c,・・・には、対応する仮想ディスクのデバイス番号が設定されている。デバイス番号は、仮想ディスクのシステム内での固有情報である。また、リードブロック管理域121a,121b,121c,・・・には、読み出しが行われたデータについて、対応する仮想ディスクにコピーするか否かの指標となる数値が含まれる。例えばリードブロック管理域121a,121b,121c,・・・には、読み出されたデータのオフセットと移動数との組が登録される。オフセットは、論理ボリューム110aの記憶領域の先頭からデータまでのアドレスの差分である。
更新ブロックリスト122a,122b,122c,・・・は、スナップショット作成時に、新たに論理ボリューム110aに組み込まれた仮想ディスクごとに設けられている。例えば更新ブロックリスト122a,122b,122c,・・・には、対応する仮想ディスクのデバイス番号が設定されている。また更新ブロックリスト122a,122b,122c,・・・には、対応する仮想ディスクに書き込まれたブロックのオフセットが登録されている。ブロックのオフセットは、例えば論理ボリューム110aの記憶領域の先頭からブロックまでのアドレスの差分である。
次に、データの読み出し処理の手順について説明する。なおデータ読み出し処理は、データの読み出し要求が入力されたときに実行される。データの読み出し要求では、読み出し起点となる仮想ディスクを指定できる。例えば運用中の論理ボリューム110aのデータの読み出しを行う場合には、そのときに運用ディスクとして使用されている仮想ディスクが、読み出しの起点として指定される。また過去に作成したスナップショットのデータを読み出す場合、スナップショット作成直前まで運用ディスクとして使用されていた仮想ディスクが、起点として指定される。
図7は、データ読み出し処理の一例を示すフローチャートの前半である。以下、図7に示す処理をステップ番号に沿って説明する。
[ステップS101]アクセス部140は、データの読み出し要求が入力されると、その読み出し要求における起点の仮想ディスクを選択する。
[ステップS101]アクセス部140は、データの読み出し要求が入力されると、その読み出し要求における起点の仮想ディスクを選択する。
[ステップS102]アクセス部140は、選択した仮想ディスクに読み出し対象のデータがあるか否かを判断する。例えばアクセス部140は、選択した仮想ディスクに対応する更新ブロックリストに、読み出し対象のデータを含むブロックのオフセットが登録されている場合、選択した仮想ディスクに読み出し対象のデータがあると判断する。アクセス部140は、読み出し対象のデータがある場合、処理をステップS104に進める。またアクセス部140は、読み出し対象のデータがない場合、処理をステップS103に進める。
[ステップS103]アクセス部140は、運用ディスクとして使用されていた時期が1つ前の仮想ディスクを新たに選択し、処理をステップS102に進める。例えばアクセス部140は、現在選択している仮想ディスクへの読み出し処理のサブルーチンとして、次の順番の仮想ディスクに対するデータ読み出し処理を行う。
[ステップS104]アクセス部140は、選択した仮想ディスクに読み出し対象のデータが格納されている場合、選択した仮想ディスクから、そのデータを含むブロックを読み出す。アクセス部140は、読み出したデータを、読み出し要求の送信元の業務サーバに送信する。なお、アクセス部140は、読み出したデータを、そのデータを含むブロックごと、RAM102内のアクセス部140が管理する記憶領域に保持しておくこともできる。アクセス部140は、その後、処理をステップS111(図8参照)に進める。
図8は、データ読み出し処理の一例を示すフローチャートの後半である。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS111]アクセス部140は、移動数に0を設定する。
[ステップS111]アクセス部140は、移動数に0を設定する。
[ステップS112]アクセス部140は、配列上で、運用ディスクとして使用されていた時期が1つ後の仮想ディスクを選択する。例えばアクセス部140は、現在選択されている仮想ディスクへの読み出し処理を終了し、その処理の呼び出し元であった処理に復帰する。そしてアクセス部140は、復帰した処理において読み出し対象となっていた仮想ディスクを選択する。
[ステップS113]アクセス部140は、選択した仮想ディスクが運用ディスクか否かを判断する。アクセス部140は、選択した仮想ディスクが運用ディスクであれば、処理をステップS117に進める。またアクセス部140は、選択した仮想ディスクが運用ディスクでなければ、処理をステップS114に進める。
[ステップS114]アクセス部140は、選択した仮想ディスクが運用ディスクでなければ、移動数に1を加算する。
[ステップS115]アクセス部140は、選択した仮想ディスクにおける、読み出し対象のデータの移動総数に、現在の移動数を加算する。例えばアクセス部140は、管理情報記憶部120から、選択した仮想ディスクのデバイス番号に基づいて、その仮想ディスクに対応するリードブロック管理域を特定する。次にアクセス部140は、特定したリードブロック管理域内で、読み出したデータのオフセット値に対応する移動総数に、現在の移動数を加算する。
[ステップS115]アクセス部140は、選択した仮想ディスクにおける、読み出し対象のデータの移動総数に、現在の移動数を加算する。例えばアクセス部140は、管理情報記憶部120から、選択した仮想ディスクのデバイス番号に基づいて、その仮想ディスクに対応するリードブロック管理域を特定する。次にアクセス部140は、特定したリードブロック管理域内で、読み出したデータのオフセット値に対応する移動総数に、現在の移動数を加算する。
[ステップS116]アクセス部140は、選択した仮想ディスクが、データ読み出しの起点の仮想ディスクか否かを判断する。アクセス部140は、選択した仮想ディスクが読み出しの起点の場合、処理をステップS117に進める。またアクセス部140は、選択した仮想ディスクが読み出しの起点でなければ、処理をステップS112に進める。
[ステップS117]アクセス部140は、読み出し対象のデータの移動総数が閾値を超えた仮想ディスクがあるか否かを判断する。例えばアクセス部140は、管理情報記憶部120内のすべてのリードブロック管理域121a,121b,121c,・・・から、読み出し対象のデータのオフセット値に対応する移動総数を抽出し、閾値を超えた移動総数の有無を判断する。アクセス部140は、移動総数が閾値を超えた仮想ディスクが少なくとも1つあれば、処理をステップS118に進める。またアクセス部140は、移動総数が閾値を超えた仮想ディスクがなければ、データのコピーを行わずに処理を終了する。
[ステップS118]アクセス部140は、移動総数が閾値を超えた仮想ディスクがある場合、その仮想ディスクに、読み出し対象のデータをコピーできるだけの空き容量があるか否かを判断する。例えばアクセス部140は、移動総数が閾値を超えた仮想ディスクの空き容量と、読み出し対象のデータのデータ量とを比較する。空き容量がデータ量以上であれば、アクセス部140は、その仮想ディスクに十分な空き容量があると判断する。アクセス部140は、十分な空き容量がある場合、処理をステップS119に進める。またアクセス部140は、十分な空き容量がなければ、データ読み出し処理を終了する。
[ステップS119]アクセス部140は、読み出し対象のデータの移動総数が閾値を超え、かつ十分な空き領域がある仮想ディスクに、読み出し対象のデータをコピーする。なお、該当する仮想ディスクが複数ある場合、アクセス部140は、例えば、配列上最も後の仮想ディスクにデータをコピーする。アクセス部140は、データの読み出し時に、そのデータを含むブロックをRAM102内に保持しておいた場合、RAM102内に保持しておいたブロックを仮想ディスクに格納する。その後、処理が終了する。
以下、データ読み出し処理を、具体例を用いて説明する。まず運用ディスクを起点としたデータの読み出し処理の例について説明する。なお第2の実施の形態では、過去に作成したスナップショットのデータの読み出し要求以外の読み出し要求は、運用ディスクが起点となる。
図9は、運用ディスクを起点としたデータの読み出し処理の例を示す図である。図9では、オリジナルディスクである仮想ディスク111に格納されているデータの読み出し要求51が入力されている。読み出し対象のデータを含むブロックが、オフセット値「xxxxx」で指定されている。
アクセス部140は、運用ディスクである仮想ディスク115から順に、読み出し対象のデータが格納されているか否かを判定する。そしてアクセス部140は、最後に判定した仮想ディスク111内に読み出し対象のデータが格納されていることを検出し、仮想ディスク111から該当データ52を、そのデータ52を含むブロックごと読み出す。読み出されたデータ52は、読み出し要求51を送信した業務サーバに送信される。
データ52が読み出されると、そのデータ52の有無の判定が行われた各仮想ディスクにおける移動数が決定される。
図10は、読み出されたデータの移動数の初期値を示す図である。まず、移動数の初期値として、データ52が読み出された仮想ディスク111の移動数を「0」とする。その後、読み出し要求51の起点の仮想ディスク115まで仮想ディスクの配列を辿りながら、移動数が更新される。例えば、次の仮想ディスクへ移動するごとに、移動数が1ずつカウントアップされる。
図10は、読み出されたデータの移動数の初期値を示す図である。まず、移動数の初期値として、データ52が読み出された仮想ディスク111の移動数を「0」とする。その後、読み出し要求51の起点の仮想ディスク115まで仮想ディスクの配列を辿りながら、移動数が更新される。例えば、次の仮想ディスクへ移動するごとに、移動数が1ずつカウントアップされる。
図11は、運用ディスクを起点としたデータの読み出し処理に基づく移動総数の更新例を示す図である。データ52を読み出した仮想ディスク111の移動数は「0」であり、その次の仮想ディスク112における移動数は「1」である。そこで、仮想ディスク112に対応するリードブロック管理域121aには、データ52を含むブロックのオフセット値「xxxxx」に対応付けて、移動総数「1」が設定される。
仮想ディスク112の次の仮想ディスク113における移動数は「2」である。そこで仮想ディスク113に対応するリードブロック管理域121bには、データ52を含むブロックのオフセット値「xxxxx」に対応付けて、移動総数「2」が設定される。
仮想ディスク113の次の仮想ディスク114における移動数は「3」である。そこで仮想ディスク114に対応するリードブロック管理域121cには、データ52を含むブロックのオフセット値「xxxxx」に対応付けて、移動総数「3」が設定される。
なお、第2の実施の形態では、運用ディスクとして使用されている仮想ディスク115は、読み出したデータのコピー先から除外されている。そのため、仮想ディスク115に対応する移動総数の更新は行われない。
各リードブロック管理域121a,121b,121cの移動総数の更新が完了すると、閾値を超えた移動総数があるか否かが判断される。例えば、データをコピーするための移動総数の閾値が「5」であるものとする。すると、図11に示した例では、すべての仮想ディスクについて、データ52を含むブロックに対応する移動総数が5を超えていない。
その後、運用ディスクを起点として、データ52に対する2回目の読み出しが行われたものとする。
図12は、データの2回目の読み出し処理の例を示す図である。データ52に対する2回目の読み出し要求53が入力されると、前回と同様に、起点となる仮想ディスク115から順に、データ52の有無が判定される。そして、データ52を格納している仮想ディスク111からそのデータ52が読み出される。そして、データ52の2回目の読み出しに応じて、各仮想ディスクにおけるデータ52の移動総数が更新される。
図12は、データの2回目の読み出し処理の例を示す図である。データ52に対する2回目の読み出し要求53が入力されると、前回と同様に、起点となる仮想ディスク115から順に、データ52の有無が判定される。そして、データ52を格納している仮想ディスク111からそのデータ52が読み出される。そして、データ52の2回目の読み出しに応じて、各仮想ディスクにおけるデータ52の移動総数が更新される。
図13は、2回目のデータの読み出しに応じた移動総数の更新例を示す図である。仮想ディスク111~114それぞれにおける移動数は、図11に示した1回目の場合と同様である。
仮想ディスク112における移動数は「1」である。そこで仮想ディスク112に対応するリードブロック管理域121aでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「1」が加算され「2」に更新されている。
仮想ディスク113における移動数は「2」である。そこで仮想ディスク113に対応するリードブロック管理域121bでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「2」が加算され「4」に更新されている。
仮想ディスク114における移動数は「3」である。そこで仮想ディスク114に対応するリードブロック管理域121cでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「3」が加算され「6」に更新されている。
図13の例では、仮想ディスク114において、データ52に対応する移動総数「6」が、閾値「5」を超えている。そこで、仮想ディスク114に、データ52をコピーできるだけの空き容量がある否かが判定される。
図14は、データのコピー先の空き容量の判定状況を示す図である。図14の例では、仮想ディスク111に格納されているデータ52のデータ量がaバイト(aは正の実数)、仮想ディスク114の空き領域の容量がbバイト(bは正の実数)である。この場合、「a≦b」の条件が満たされるかどうかが判定される。図14の例では、条件が満たされたものとする。その場合、データ52が仮想ディスク114の空き領域にコピーされる。
図15は、データのコピー例を示す図である。図15に示すように、仮想ディスク111のデータ52が、仮想ディスク114にコピーされる。コピーされたデータは、仮想ディスク114に、差分データとして保持される。このとき、仮想ディスク114に対応する更新ブロックリスト(図6参照)には、データ52を含むブロックのオフセット値が設定される。
その後、運用ディスクを起点として、データ52に対する3回目の読み出し要求が入力されると、仮想ディスク114からデータ52が読み出されることとなる。
図16は、データの3回目の読み出し処理の例を示す図である。データ52に対する3回目の読み出し要求54が入力されると、起点となる仮想ディスク115から順に、データ52の有無が判定される。すると、仮想ディスク114の更新ブロックリストにデータ52を含むブロックのオフセット値が設定されていることから、仮想ディスク114にデータ52が格納されていると判定される。そこで仮想ディスク114からデータ52が読み出される。4回目以降のデータ52の読み出しも、仮想ディスク114から行うことができる。
図16は、データの3回目の読み出し処理の例を示す図である。データ52に対する3回目の読み出し要求54が入力されると、起点となる仮想ディスク115から順に、データ52の有無が判定される。すると、仮想ディスク114の更新ブロックリストにデータ52を含むブロックのオフセット値が設定されていることから、仮想ディスク114にデータ52が格納されていると判定される。そこで仮想ディスク114からデータ52が読み出される。4回目以降のデータ52の読み出しも、仮想ディスク114から行うことができる。
このように、データの移動総数が閾値を超えた場合、そのデータを、読み出し時のデータの有無の判定順が早い仮想ディスクにコピーすることで、以後のデータの読み出しを迅速に行うことができる。図9~図16の例では、1回目と2回目のデータ52の読み出しの際には、5台の仮想ディスクに関して、そのデータ52の有無の判定が行われている。他方、3回目以降のデータ52の読み出しの際には、データ52の有無の判定を行うのは2台の仮想ディスクで済んでいる。このように、データ52の有無の判定を行う仮想ディスクが削減されることで、データの読み出し効率が向上している。
データの読み出し要求は、過去に作成したスナップショットに対して行われる場合もある。スナップショットに対するデータの読み出し要求の場合、そのスナップショット作成の直前まで運用ディスクとして使用されていた仮想ディスクが、データの有無の判定の起点となる。
図17は、スナップショットのデータの読み出し処理の例を示す図である。図17の例では、図11に示した状況となった後、3回目に作成したスナップショット(スナップショット#3)からの、オフセット値「xxxxx」のデータ52の読み出しを要求する、読み出し要求55が入力されている。この場合、3回目のスナップショット作成直前まで運用ディスクとして使用されていた仮想ディスク113が、データ52の有無判定の起点となる。そして仮想ディスクの配列上、仮想ディスク113から順に、前に向かって、各仮想ディスクにデータ52が格納されているか否かが判定される。図17の例では、オリジナルディスクである仮想ディスク111にデータ52が格納されていると判定され、仮想ディスク111からデータ52が読み出されている。
このように仮想ディスク113を起点としてデータ52の有無の判定を行った場合、データ52を読み出した仮想ディスク111から起点の仮想ディスク113までの各仮想ディスク111~113について、移動数が設定される。そして、設定された移動数に基づいて、仮想ディスクごとに、読み出されたデータに対応する移動総数が設定される。
図18は、スナップショットのデータ読み出し時の移動総数の設定例を示す図である。データ52を読み出した仮想ディスク111の移動数は「0」であり、その次の仮想ディスク112における移動数は「1」である。そこで、仮想ディスク112に対応するリードブロック管理域121aでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「1」が加算され、「2」に更新されている。仮想ディスク112の次の仮想ディスク113における移動数は「2」である。そこで仮想ディスク113に対応するリードブロック管理域121bでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「2」が加算され、「4」に更新されている。この時点では、閾値「5」を超えた移動総数はない。
以後、3回目に作成したスナップショットからの、オフセット値「xxxxx」のデータ52の読み出し要求が、もう一度入力されたものとする。するとデータ52が読み出されるごとに、仮想ディスク112,113におけるデータ52の移動総数が、さらに更新される。
図19は、スナップショットのデータの2回目の読み出し処理の例を示す図である。3回目に作成したスナップショットからの、データ52の3回目の読み出し要求56が入力されると、1回目と同様に、起点となる仮想ディスク113から順に、データ52の有無が判定される。そして、データ52を格納している仮想ディスク111からそのデータ52が読み出される。そして、データ52の読み出しに応じて、仮想ディスク112,113におけるデータ52を含むブロックの移動総数が更新される。
図19の例では、仮想ディスク112におけるデータ52を含むブロックの移動総数は「3」に更新され、仮想ディスク113におけるデータ52を含むブロックの移動総数は「6」に更新されている。この場合、仮想ディスク113におけるデータ52を含むブロックの移動総数が閾値「5」を超えている。そこで、仮想ディスク113に十分な空き容量があることを確認した上で、データ52を含むブロックが仮想ディスク113にコピーされる。
図20は、スナップショットのデータの読み出しに応じたデータコピーの例を示す図である。図20に示すように、仮想ディスク111のデータ52が、仮想ディスク113にコピーされる。コピーされたデータは、仮想ディスク113に、差分データとして保持される。このとき、仮想ディスク113に対応する更新ブロックリスト(図6参照)には、データ52を含むブロックのオフセット値が設定される。その後、仮想ディスク113を起点として、データ52に対する3回目の読み出し要求が入力されると、仮想ディスク113からデータ52が読み出されることとなる。
このように、移動総数は、スナップショットのデータを読み出したときにも更新される。すなわちスナップショットの作成により、論理ボリューム110a内の仮想ディスクが複数階層となった場合、データの読み出しは、運用中のデータの読み出しと、スナップショットのデータの読み出しとがあり得る。そして、運用中のデータの読み出しの場合と、スナップショットのデータの読み出しの場合とでは、データの有無の判定を行う際の起点となる仮想ディスクが異なる。一方、どの仮想ディスクを起点としたデータの読み出しであっても、読み出し頻度が高いデータを、起点となる仮想ディスク近くにコピーしておくことで、読み出し効率を向上させることができる。そこで、第2の実施の形態では、どの仮想ディスクを起点とした読み出し要求なのかを区別せずに、移動数を移動総数に加算していくようにした。これにより、移動総数に基づいてコピーの要否およびコピー先を決定することで、全体的な読み出し効率の向上するための適切なコピーを行うことができる。
〔その他の実施の形態〕
第2の実施の形態では、データのコピー先として、運用ディスクとして使用されている仮想ディスクを除外しているが、運用ディスクをデータのコピー先に含めることもできる。その場合、アクセス部140は、例えば、運用ディスクについても、対応するリードブロック管理域を設け、データごとの移動総数を管理する。そしてアクセス部140は、運用ディスクにおける移動総数が閾値を超えた場合、読み出したデータを運用ディスクにコピーする。例えば、移動総数が閾値を超えた仮想ディスクの空き領域が不足しており、その仮想ディスクにデータをコピーできない場合に、運用ディスクにデータをコピーするようにしてもよい。
第2の実施の形態では、データのコピー先として、運用ディスクとして使用されている仮想ディスクを除外しているが、運用ディスクをデータのコピー先に含めることもできる。その場合、アクセス部140は、例えば、運用ディスクについても、対応するリードブロック管理域を設け、データごとの移動総数を管理する。そしてアクセス部140は、運用ディスクにおける移動総数が閾値を超えた場合、読み出したデータを運用ディスクにコピーする。例えば、移動総数が閾値を超えた仮想ディスクの空き領域が不足しており、その仮想ディスクにデータをコピーできない場合に、運用ディスクにデータをコピーするようにしてもよい。
また第2の実施の形態では、記憶手段ごとにデータの移動総数を計算しているが、これは、作成したスナップショットからのデータの読み出しについても、データの読み出し効率が向上するようにしたものである。スナップショットからのデータの読み出し効率を考慮に入れず、運用ディスクを起点としたデータの読み出し処理の効率化のみを考慮した場合、例えば、アクセス部140は、運用ディスクの前の仮想ディスクについての移動総数のみを計算する。そして、アクセス部140は、運用ディスクの前の仮想ディスクにおける移動総数が閾値を超えたデータを検出すると、そのデータを運用ディスクの前の仮想ディスクに格納する。このようにすることで、アクセス部140の処理を簡略化し、処理の効率化を図ることができる。
さらに第2の実施の形態では、論理ボリューム110aを1または複数の仮想ディスクで構成しているが、仮想ディスクに代えて物理ディスクやSSD(Solid State Drive)を用いることもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1a,1b,1c,1d 記憶手段
2 判定手段
3 読み出し手段
4 格納手段
5 データ
X 情報処理装置
2 判定手段
3 読み出し手段
4 格納手段
5 データ
X 情報処理装置
Claims (7)
- 複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定し、
前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出し、
該記憶手段よりも前記所定の順番が早い記憶手段に、該データを格納する、
処理を情報処理装置に実行させるプログラム。 - 前記複数の時間帯は、スナップショット作成要求の入力時点を境界として区分けされており、
データの格納では、最後のスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段のいずれかに、データを格納することを特徴とする請求の範囲第1項記載のプログラム。 - データの格納では、データの格納条件が予め定義されており、前記読み出し要求で指定されたデータが格納されている記憶手段よりも前記所定の順番が早い記憶手段ごとに、該データの前記書き込み条件が満たされるか否かを判断し、前記書き込み条件が満たされる記憶手段に該データを格納することを特徴とする請求の範囲第1項または第2項記載のプログラム。
- データの格納では、データの読み出しが行われると、該データが格納されている記憶手段よりも前記所定の順番が早い記憶手段ごとに、該データが格納されている記憶手段との間の前記所定の順番の差を示す値を、該データの格納の要否を示す判定値に加算し、判定値が所定の閾値を超えた記憶手段に該データを格納することを特徴とする請求の範囲第3項記載のプログラム。
- 前記複数の時間帯は、スナップショット作成要求の入力時点を境界として区分けされており、
データが格納されているか否かの判定では、特定のスナップショットで保持したデータの読み出し要求が入力された場合には、該スナップショットの作成を指示するスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段について、前記所定の順番で、該データが格納されているか否かを順番に判定することを特徴とする請求の範囲第1項乃至第4項のいずれかに記載のプログラム。 - 情報処理装置が、
複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定し、
前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出し、
該記憶手段よりも前記所定の順番が早い記憶手段に、該データを格納する、
ことを特徴とするデータ管理方法。 - 複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定する判定手段と、
前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出す読み出し手段と、
該記憶手段よりも前記所定の順番が早い記憶手段に、該データを格納する格納手段と、
を有する情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/067478 WO2014010016A1 (ja) | 2012-07-09 | 2012-07-09 | プログラム、データ管理方法、および情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/067478 WO2014010016A1 (ja) | 2012-07-09 | 2012-07-09 | プログラム、データ管理方法、および情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014010016A1 true WO2014010016A1 (ja) | 2014-01-16 |
Family
ID=49915519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/067478 WO2014010016A1 (ja) | 2012-07-09 | 2012-07-09 | プログラム、データ管理方法、および情報処理装置 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2014010016A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017060495A1 (fr) * | 2015-10-08 | 2017-04-13 | The Roberto Giori Company Ltd | Procédé et système de sauvegarde répartie dynamique |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009146228A (ja) * | 2007-12-14 | 2009-07-02 | Fujitsu Ltd | バックアップ装置、バックアップ方法およびバックアッププログラム |
JP2009205307A (ja) * | 2008-02-26 | 2009-09-10 | Nec Corp | データ格納方法及びその装置、複製データ格納方法及びその装置並びにそれらの制御プログラム |
JP2012022490A (ja) * | 2010-07-14 | 2012-02-02 | Fujitsu Ltd | データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置 |
-
2012
- 2012-07-09 WO PCT/JP2012/067478 patent/WO2014010016A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009146228A (ja) * | 2007-12-14 | 2009-07-02 | Fujitsu Ltd | バックアップ装置、バックアップ方法およびバックアッププログラム |
JP2009205307A (ja) * | 2008-02-26 | 2009-09-10 | Nec Corp | データ格納方法及びその装置、複製データ格納方法及びその装置並びにそれらの制御プログラム |
JP2012022490A (ja) * | 2010-07-14 | 2012-02-02 | Fujitsu Ltd | データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017060495A1 (fr) * | 2015-10-08 | 2017-04-13 | The Roberto Giori Company Ltd | Procédé et système de sauvegarde répartie dynamique |
US10678468B2 (en) | 2015-10-08 | 2020-06-09 | The Robert Giori Company Ltd. | Method and system for dynamic dispersed saving |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776278B2 (en) | Storage control apparatus and computer-readable storage medium storing storage control program | |
JP4733461B2 (ja) | 計算機システム、管理計算機及び論理記憶領域の管理方法 | |
JP6476932B2 (ja) | ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 | |
CN102929786A (zh) | 非易失性存储设备集合的易失性存储器表示 | |
JP2013045379A (ja) | ストレージ制御方法、情報処理装置およびプログラム | |
JP2008015623A (ja) | 複数種類の記憶デバイスを備えたストレージシステムの制御装置 | |
US20130054727A1 (en) | Storage control method and information processing apparatus | |
US10789007B2 (en) | Information processing system, management device, and control method | |
US9703695B2 (en) | Control device, storage device, and computer-readable recording medium having stored therein control program | |
JP6558059B2 (ja) | ストレージ制御装置、ストレージ制御プログラム、およびストレージシステム | |
JP6867578B2 (ja) | ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム | |
US11429431B2 (en) | Information processing system and management device | |
CN107526533B (zh) | 存储管理方法及设备 | |
US10133517B2 (en) | Storage control device | |
US11010091B2 (en) | Multi-tier storage | |
JP7323769B2 (ja) | ストレージ装置、ストレージシステムおよびプログラム | |
US10430287B2 (en) | Computer | |
US20160224273A1 (en) | Controller and storage system | |
WO2014010016A1 (ja) | プログラム、データ管理方法、および情報処理装置 | |
WO2014010011A1 (ja) | プログラム、データ管理方法、および情報処理装置 | |
US11803469B2 (en) | Storing data in a log-structured format in a two-tier storage system | |
JP5924117B2 (ja) | コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム | |
JP2011242862A (ja) | ストレージサブシステム及びその制御方法 | |
US10324631B2 (en) | Control apparatus, storage apparatus and method | |
JP2018163457A (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: 12880767 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: 12880767 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |