WO2014010016A1 - Program, data management method, and information processing device - Google Patents

Program, data management method, and information processing device Download PDF

Info

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
Application number
PCT/JP2012/067478
Other languages
French (fr)
Japanese (ja)
Inventor
英治 浜本
修三 西野
尚 小山内
秀行 安本
藤田 大輔
輝 中田
幸美 橋本
山上 正人
正勝 岩本
英季 堀岡
俊介 元井
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2012/067478 priority Critical patent/WO2014010016A1/en
Publication of WO2014010016A1 publication Critical patent/WO2014010016A1/en

Links

Images

Classifications

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

Abstract

The present invention improves data-reading efficiency. Storing means (1a, 1b, 1c, 1d, 1e) are associated, respectively, with a plurality of time periods (T1, T2, T3, T4, T5). Storing means (1a, 1b, 1c, 1d, 1e) store data updated within the corresponding time periods. Upon receiving input of a read request for data (5), a determination means (2) determines, in a prescribed order, whether the data (5) is stored in each of the storing means. A reading means (3) reads the data (5) from the storing means (1a) in which the data (5) designated by the read request is stored. A storage means (4) then stores the data (5) in a storing means (1d), which has an earlier prescribed order than the storing means (1a) does.

Description

プログラム、データ管理方法、および情報処理装置Program, data management method, and information processing apparatus
 本発明は、複数の記憶装置に格納されたデータを管理するプログラム、データ管理方法、および情報処理装置に関する。 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.
 ストレージ装置の管理技術として、スナップショットと呼ばれる技術がある。スナップショットは、ある一時点でのディスクの内容を再現可能な状態で保存することである。ある運用中のディスクのスナップショットを作成する場合、例えば、そのディスクに対する以後の書き込みが禁止され、そのディスクがオリジナルディスクとして保存される。そして他のディスクが新たな運用ディスクとして使用され、スナップショット作成時からの差分データが、新たな運用ディスクに格納される。 There is a technology called snapshot as a storage device management technology. Snapshot is saving the contents of a disc at a certain point in a reproducible state. When creating a snapshot of a disk in operation, for example, 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.
 スナップショットの作成は、繰り返し行うことができる。2回目以降のスナップショットの作成では、その時点の運用ディスクに対する以降の書き込みが禁止され、以後の差分データを保存する新たな運用ディスクが追加される。このように、スナップショットの採取が繰り返し行われると、差分データを格納するディスクが多段構成となる。 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.
 スナップショット作成後にデータを読み出す場合には、保存しておいたオリジナルディスク、または差分データを格納しているディスクから、データが読み出される。差分データを格納するディスクが多段構成であれば、例えば、読み出し対象のデータが格納されているか否かが、新しい差分データを格納するディスクから順に判定される。差分データを格納するいずれのディスクにも該当データが格納されていなければ、最後に、オリジナルディスクにそのデータがあるか否かが判定される。そして読み出し対象のデータを保存しているディスクから、読み出し対象のデータが読み出される。 When reading data after creating a snapshot, 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.
 例えば、データのコピーに際し、コピー元のディスクに記録されたデータをすべてコピー先のディスクにコピーすることなく、書き込み対象となったデータ領域に記録されたデータのみをコピー先のディスクにコピーする技術がある。この技術では、読み出し対象となったデータがコピー先のディスクに存在しない場合には、コピー元のディスクからデータが検索される。 For example, when copying data, a technology that copies only the data recorded in the data area to be written to the copy destination disk without copying all the data recorded on the copy source disk to the copy destination disk. There is. In this technique, when the data to be read does not exist on the copy destination disk, the data is retrieved from the copy source disk.
特開2007-172082号公報JP 2007-172082 A
 しかし、スナップショット作成のたびに差分データ格納用のディスクを追加する方式では、スナップショットの作成回数が増えるごとに、データの読み出し効率が悪化する。例えば、スナップショット作成を繰り返し行った後のデータ読み出しにおいて、オリジナルディスク上にデータが存在すると、読み出し対象のデータの有無の判定を多数のディスクに対して行うことになる。そのためスナップショット作成を繰り返し行った場合、オリジナルディスクや、初期のころに運用ディスクとして用いられていたディスク上に存在するデータの読み出しに時間がかかる。 However, in the method of adding a disk for storing differential data each time a snapshot is created, 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.
 1つの側面では、本発明は、データの読み出し効率を向上させるプログラム、データ管理方法、および情報処理装置を提供することを目的とする。 In one aspect, 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.
 1態様のプログラムは、複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定し、前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出し、該記憶手段よりも所定の順番が早い記憶手段に、該データを格納する、処理を情報処理装置に実行させる。 In one aspect of the program, 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.
 1態様によれば、データの読み出し効率が向上する。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
According to one aspect, data read efficiency is improved.
These and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings which illustrate preferred embodiments by way of example of the present invention.
第1の実施の形態に係る情報処理装置の機能構成例を示す図である。It is a figure which shows the function structural example of the information processing apparatus which concerns on 1st Embodiment. 第2の実施の形態のシステム構成例を示す図である。It is a figure which shows the system configuration example of 2nd Embodiment. 本実施の形態に用いる管理サーバのハードウェアの一構成例を示す図である。It is a figure which shows one structural example of the hardware of the management server used for this Embodiment. 管理サーバの機能を示すブロック図である。It is a block diagram which shows the function of a management server. 仮想ディスクの配列と内部構造の一例を示す図である。It is a figure which shows an example of the arrangement | sequence and internal structure of a virtual disk. 管理情報記憶部のデータ構造の一例を示す図である。It is a figure which shows an example of the data structure of a management information storage part. データ読み出し処理の一例を示すフローチャートの前半である。It is the first half of the flowchart which shows an example of a data read-out process. データ読み出し処理の一例を示すフローチャートの後半である。It is the latter half of the flowchart which shows an example of a data read-out process. 運用ディスクを起点としたデータの読み出し処理の例を示す図である。It is a figure which shows the example of the read-out process of the data from the operation | use disk. 読み出されたデータの移動数の初期値を示す図である。It is a figure which shows the initial value of the movement number of the read data. 運用ディスクを起点としたデータの読み出し処理に基づく移動総数の更新例を示す図である。It is a figure which shows the update example of the total number of movements based on the read-out process of the data from an operation disk. データの2回目の読み出し処理の例を示す図である。It is a figure which shows the example of the 2nd read-out process of data. 2回目のデータの読み出しに応じた移動総数の更新例を示す図である。It is a figure which shows the update example of the movement total according to the reading of the data of the 2nd time. データのコピー先の空き容量の判定状況を示す図である。It is a figure which shows the judgment condition of the free capacity of the data copy destination. データのコピー例を示す図である。It is a figure which shows the example of a copy of data. データの3回目の読み出し処理の例を示す図である。It is a figure which shows the example of the read-out process of the 3rd time of data. スナップショットのデータの読み出し処理の例を示す図である。It is a figure which shows the example of the read-out process of the data of a snapshot. スナップショットのデータ読み出し時の移動総数の設定例を示す図である。It is a figure which shows the example of a setting of the total number of movement at the time of the data reading of a snapshot. スナップショットのデータの2回目の読み出し処理の例を示す図である。It is a figure which shows the example of the reading process of the 2nd time of the data of a snapshot. スナップショットのデータの読み出しに応じたデータコピーの例を示す図である。It is a figure which shows the example of the data copy according to reading of the data of a snapshot.
 以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
 〔第1の実施の形態〕
 まず第1の実施の形態について説明する。第1の実施の形態は、スナップショットにより差分データを格納する記憶手段が多段構成となっている環境において、データの読み出し時に、読み出し元の記憶手段よりもデータの無の判定が早く行われる記憶手段に、読み出したデータを格納するものである。これにより、以後、同じデータの読み出し時に、データの有無を判定する記憶手段の数が少なくなることで、データの読み出し時間が短縮される。
Hereinafter, the present embodiment will be described with reference to the drawings. Each embodiment can be implemented by combining a plurality of embodiments within a consistent range.
[First Embodiment]
First, a first embodiment will be described. In the first embodiment, in an environment in which storage means for storing difference data by snapshots has a multi-stage configuration, at the time of reading data, the determination that the absence of data is performed earlier than the storage means of the reading source is performed. The means stores the read data. As a result, the time for reading data is shortened by reducing the number of storage means for determining the presence / absence of data when reading the same data thereafter.
 図1は、第1の実施の形態に係る情報処理装置の機能構成例を示す図である。第1の実施の形態に係る情報処理装置Xは、複数の記憶手段1a,1b,1c,1d,1e、判定手段2、読み出し手段3、および格納手段4を有している。 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.
 記憶手段1a,1b,1c,1d,1eは、複数の時間帯T1,T2,T3,T4,T5それぞれに対応付けられている。複数の時間帯T1,T2,T3,T4,T5は、例えば、スナップショット作成要求の入力時点t1,t2,t3,t4を境界として区分けされた時間帯である。記憶手段1a,1b,1c,1d,1eには、対応する時間帯内に更新されたデータが格納されている。 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.
 なお、記憶手段1a,1b,1c,1dのうち、最後のスナップショット作成要求の入力時点t4よりも前の時間帯T1,T2,T3,T4に対応する記憶手段1a,1b,1c,1dは、外部からの書き込み要求に応じたデータの書き込みは禁止されている。これにより、スナップショット作成要求の入力時点でのデータが保持される。一方、最後のスナップショット作成要求の入力時点t4よりも後の時間帯T5に対応する記憶手段1eは、運用中の記憶手段であり、外部からのデータの書き込み要求に応じて、データが格納される。 Of the storage units 1a, 1b, 1c, and 1d, the storage units 1a, 1b, 1c, and 1d corresponding to the time zones T1, T2, T3, and T4 before the last snapshot creation request input time t4 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. On the other hand, 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
 判定手段2は、データの読み出し要求が入力されると、記憶手段にそのデータが格納されているか否かを、所定の判定順に従って順番に判定する。例えば判定手段2は、対応する時間帯が後の記憶手段から順に選択し、選択した記憶手段について、読み出し対象のデータが格納されているか否かを判断する。この場合、記憶手段1e、記憶手段1d、記憶手段1c、記憶手段1b、記憶手段1aの順で選択および判定が行われる。 When the data read request is input, 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.
 なおスナップショットで保持したデータの読み出し要求が入力される場合があり得る。この場合、判定手段2は、例えば、スナップショットの作成を指示するスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段について、所定の判定順に従って、読み出し対象のデータが格納されているか否かを、順番に判定する。 Note that a request to read data held in a snapshot may be input. In this case, the determination unit 2 stores, for example, data to be read according to a predetermined determination order for the storage unit corresponding to the time zone before the input time point of the snapshot creation request instructing the creation of the snapshot. It is determined in turn whether or not.
 読み出し手段3は、読み出し要求で指定されたデータが格納されている記憶手段から、そのデータ5を読み出す。読み出し手段3は、例えば、読み出したデータ5を読み出し要求に対する応答として出力する。また読み出し手段3は、例えば読み出したデータ5をキャッシュとして、一時的に保存する。 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.
 格納手段4は、データ5が格納されている記憶手段よりも判定順が早い記憶手段に、そのデータ5を格納する。例えば格納手段4は、読み出し手段3からキャッシュとして保持したデータ5を受け取り、いずれかの記憶手段に格納する。例えば格納手段4は、最後のスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段1a,1b,1c,1dのいずれかに、データを格納する。 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.
 格納手段4は、例えば、データの格納条件が予め定義されており、読み出し要求で指定されたデータ5が格納されている記憶手段よりも所定の順番が早い記憶手段ごとに、データの格納条件が満たされるか否かを判断する。そして格納手段4は、書き込み条件が満たされる記憶手段に、読み出されたデータ5を格納する。 In the storage means 4, for example, the data storage conditions are defined in advance, and the data storage conditions are determined for each storage means that has a predetermined order earlier than the storage means in which the data 5 designated by the read request is stored. Determine if it is satisfied. Then, the storage unit 4 stores the read data 5 in the storage unit that satisfies the write condition.
 また格納手段4は、例えば、データの読み出しが行われるごとに、読み出されたデータが格納されている記憶手段よりも判定の順番が早い記憶手段ごとに、データが格納されている記憶手段との間の判定の順番の差を示す値を求める。そして格納手段4は、記憶手段ごとに求められた値を、その記憶手段に対する、読み出されたデータの格納の要否を示す判定値に加算する。この場合、格納手段4は、判定値が所定の閾値を超えた記憶手段に、読み出されたデータを格納する。 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 | required. Then, the storage unit 4 adds the value obtained for each storage unit to a determination value indicating whether the storage unit needs to store the read data. In this case, the storage unit 4 stores the read data in the storage unit whose determination value exceeds a predetermined threshold value.
 このような情報処理装置Xによれば、データの読み出し要求が入力されると、判定手段2により、記憶手段1a,1b,1c,1d,1eにデータが格納されているか否かが、所定の判定順に従って順番に判定される。次に、読み出し手段3により、読み出し要求で指定されたデータが格納されている記憶手段から、そのデータが読み出される。そして格納手段4により、読み出されたデータが、読み出された記憶手段よりも判定順が早い記憶手段に格納される。 According to such an information processing apparatus X, when a data read request is input, whether or not data is stored in the storage units 1a, 1b, 1c, 1d, and 1e by the determination unit 2 is determined in advance. The determination is made in order according to the determination order. Next, the reading unit 3 reads the data from the storage unit storing the data specified by the reading request. Then, the storage means 4 stores the read data in the storage means that is earlier in the determination order than the read storage means.
 これにより、次に同じデータの読み出し要求が入力されると、前回よりも判定順が早い記憶手段からデータを読み出すことができる。すなわち、読み出し対象のデータを格納しているか否かの判定対象となる記憶手段が少なくて済む。その結果、データの読み出し効率が向上する。 Thereby, when the same data read request is input next, 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.
 例えば図1の例では、読み出し要求で指定されたデータ5が、判定の順番として最後となる記憶手段1aに格納されていたものとする。この場合、判定手段2は、データの有無を、記憶手段1eから順に判定する。そして判定手段2は、判定の順番で5番目の記憶手段1aにデータ5が格納されていると判定する。 For example, in the example of FIG. 1, it is assumed that the data 5 specified by the read request is stored in the last storage unit 1a as the order of determination. In this case, 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.
 読み出し手段3は、判定手段2からデータ5が格納されている記憶手段1aの識別情報を受け取り、記憶手段1aからデータ5を読み出す。読み出し手段3は、読み出したデータ5を読み出し要求に対する応答として出力する。 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.
 格納手段4は、読み出し手段3からデータ5を受け取り、記憶手段1aよりも判定の順番が早い記憶手段のいずれかに、データ5を格納する。例えば格納手段4は、最後のスナップショット作成要求の入力時刻t4より前の時間帯に対応する記憶手段のうち、最も後の時間帯に対応する記憶手段1dにデータ5を格納する。これにより、スナップショットによって、外部からの書き込み要求に応じた書き込みが禁止されている記憶手段のうち、最も判定の順番が早い記憶手段1dにデータ5が格納される。 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.
 これにより、次にデータ5の読み出し要求があった場合、記憶手段1dからデータ5を読み出すことができる。記憶手段1dは、データの有無の判定順として記憶手段1aより前であるため、データ5の読み出し時にデータの有無の判定を行う記憶手段の数が少なくて済む。その結果、データの読み出し効率が向上する。 Thus, when there is a next request to read data 5, 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.
 しかも、データが格納されている記憶手段が複数に分散することで、個々の記憶手段のI/O負荷が軽減される。また、階層を何段階も遡ったデータの読み出しが少なくなることで信頼性も向上する。さらに、外部からの書き込み要求に応じたデータの書き込みを禁止した記憶手段の空き領域にデータをコピーするようにしたことで、空き領域を有効利用することができ、資源の利用効率が向上する。 In addition, since the storage means storing the data is distributed in plural, the I / O load of each storage means is reduced. In addition, reliability is improved by reducing the reading of data that goes back many steps in the hierarchy. Furthermore, since the data is copied to the free area of the storage means that is prohibited from writing data in response to an external write request, the free area can be used effectively, and the resource utilization efficiency is improved.
 なお、判定手段2、読み出し手段3、および格納手段4は、例えば情報処理装置Xが有するプロセッサにより実現することができる。また、記憶手段1a,1b,1c,1d,1eは、例えば情報処理装置Xが有するRAM(Random Access Memory)により実現することができる。 Note that 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.
 また、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。
 〔第2の実施の形態〕
 次に第2の実施の形態について説明する。第2の実施の形態は、複数のRAID(Redundant Array of Inexpensive Disks)装置を組み合わせた仮想ディスクを用いて作成したスナップショットから、データを効率的に読み出すものである。
Also, the lines connecting the elements shown in FIG. 1 indicate a part of the communication path, and communication paths other than the illustrated communication paths can be set.
[Second Embodiment]
Next, a second embodiment will be described. In the second embodiment, data is efficiently read from a snapshot created using a virtual disk that is a combination of a plurality of RAID (Redundant Array of Inexpensive Disks) devices.
 図2は、第2の実施の形態のシステム構成例を示す図である。管理サーバ100は、2つのネットワーク21,22に接続されている。ネットワーク21には、複数の業務サーバ31,32,・・・が接続されている。ネットワーク22には、複数のRAID装置41,42,43,・・・が接続されている。 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.
 管理サーバ100は、RAID装置41,42,43,・・・を用いて仮想ディスクを作成するコンピュータである。例えば管理サーバ100は、ソフトウェアRAID技術を用い、RAID装置41,42,43,・・・のLU(論理ユニット:Logical Unit)を組み合わせて、仮想的なRAIDグループを生成する。そして管理サーバ100は、このようにして生成された仮想的なRAIDグループを、仮想ディスクとする。 The management server 100 is a computer that creates virtual disks using RAID devices 41, 42, 43,. For example, 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.
 管理サーバ100は、1または複数の仮想ディスクによって論理ボリュームを構築する。そして管理サーバ100は、業務サーバ31,32,・・・から、論理ボリューム内のアドレスを指定したアクセスを受け付ける。そして管理サーバ100は、指定されたアドレスに割り当てられたRAID装置内の物理領域にアクセスを行う。 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.
 また管理サーバ100は、論理ボリュームに格納された情報のスナップショットを作成することができる。例えば管理サーバ100は、業務サーバ31,32,・・・からスナップショットの作成要求を受信すると、その時点で論理ボリュームに格納されているデータに対する以後のアクセスを、読み出しのみ(リードオンリー)に制限する。そして管理サーバ100は、以後、論理ボリュームへのデータの書き込み要求があると、そのデータを差分データとして格納する。 In addition, 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.
 図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以上の要素の組み合わせであってもよい。
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.
 RAM102は、管理サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。 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.
 バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。 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.
 HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、管理サーバ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。 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. Note that a semiconductor storage device such as a flash memory can also be used as the auxiliary storage device.
 グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。 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.
 入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をプロセッサ101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。 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.
 光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。 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.
 機器接続インタフェース107は、管理サーバ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置15やメモリリーダライタ16を接続することができる。メモリ装置15は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ16は、メモリカード17へのデータの書き込み、またはメモリカード17からのデータの読み出しを行う装置である。メモリカード17は、カード型の記録媒体である。 The device connection interface 107 is a communication interface for connecting peripheral devices to the management server 100. For example, 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.
 ネットワークインタフェース108aは、ネットワーク21に接続されている。ネットワークインタフェース108aは、ネットワーク21を介して、業務サーバ31,32,・・・との間でデータの送受信を行う。 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.
 ネットワークインタフェース108bは、ネットワーク22に接続されている。ネットワークインタフェース108bは、ネットワーク22を介して、RAID装置41,42,43,・・・との間でデータの送受信を行う。 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,.
 以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置Xも、図3に示した管理サーバ100と同様のハードウェアにより実現することができる。 With the hardware configuration as described above, the processing function of the second embodiment can be realized. 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.
 管理サーバ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理サーバ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理サーバ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また管理サーバ100に実行させるプログラムを、光ディスク14、メモリ装置15、メモリカード17などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。 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. For example, 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.
 次に、管理サーバ100におけるデータアクセスとスナップショット作成機能について説明する。
 図4は、管理サーバの機能を示すブロック図である。管理サーバ100は、データ管理部110、管理情報記憶部120、スナップショット作成部130、およびアクセス部140を有する。
Next, the data access and snapshot creation function in the management server 100 will be described.
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.
 データ管理部110は、仮想ディスク111,112,・・・を用いた論理ボリューム110aを管理する。仮想ディスク111,112,・・・は、例えばRAID装置41,42,43,・・・のLUを用い、ソフトウェアRAIDで作成されたRAIDグループ(またはそのRAIDグループ内のLU)である。 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,.
 管理情報記憶部120は、スナップショットの作成や、データのアクセスに使用する管理情報を記憶する。管理情報の詳細は後述する(図6参照)。
 スナップショット作成部130は、データ管理部110で管理されている論理ボリューム110aのスナップショットを作成する。例えばスナップショット作成部130は、業務サーバ31,32,・・・からのスナップショット作成要求に応じたスナップショットを作成する。スナップショット作成部130は、スナップショットの作成時には、データ管理部110に新たな仮想ディスクを作成させ、その仮想ディスクを新たな運用ディスクとする。以後、論理ボリューム110aへのデータの書き込みは、新たな運用ディスクに対して行われる。これにより、スナップショット作成前に論理ボリューム110aに組み込まれていた仮想ディスクに、スナップショット作成時のデータの状態が保存される。
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.
 アクセス部140は、業務サーバ31,32,・・・からのデータアクセス要求に応じて、データ管理部110が管理する論理ボリューム110a内のデータにアクセスする。アクセス部140は、例えばデータの書き込みは、運用ディスクに対して行う。またアクセス部140は、データの読み出しの際は、運用ディスクから順に仮想ディスクを辿りながら、読み出し要求に応じたデータの読み出し処理を実行する。各仮想ディスクへのデータの読み出し処理では、アクセス部140は、その仮想ディスクに対応する更新ブロックリストを参照して、その仮想ディスクに読み出し対象のデータを含むブロックが格納されているか否かを判断する。アクセス部140は、仮想ディスクに読み出し対象のデータが格納されていない場合、次の仮想ディスクへの読み出し処理を順次実行する。そしてアクセス部140は、読み出し対象のデータを有する仮想ディスクから、該当データを含むブロックを読み出す。 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.
 またアクセス部140は、読み出したデータが所定の条件を満たしている場合、そのデータを含むブロックを、データの有無の判定順がより早い仮想ディスクにコピーする。アクセス部140は、読み出し処理の効率化のために有用と判断した場合にのみ、データをコピーすることができる。例えばアクセス部140は、データの読み出し回数の多さや、データの有無の判定を行う仮想ディスク数の多さなどを考慮して、データの読み出しの効率化への寄与が大きいデータを含むブロックをコピーする。 In addition, when the read data satisfies a predetermined condition, the access unit 140 copies a block including the data to a virtual disk whose determination order of presence / absence of data is earlier. The access unit 140 can copy data only when it is determined that it is useful for improving the efficiency of the reading process. For example, the access unit 140 copies a block including data that greatly contributes to the efficiency of data reading in consideration of the number of times data is read and the number of virtual disks that determine the presence or absence of data. To do.
 なお、アクセス部140は、図1に示した第1の実施の形態における判定手段2、読み出し手段3、および格納手段4を包含する機能の一例である。仮想ディスク111,112,・・・は、図1に示した第1の実施の形態における記憶手段1a,1b,1c,1d,1eの一例である。さらに、図4に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。 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. Furthermore, 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.
 次に、仮想ディスクの配列と内部構造について説明する。
 図5は、仮想ディスクの配列と内部構造の一例を示す図である。図5の例では、論理ボリューム110a内に5つの仮想ディスク111~115が含まれている。仮想ディスク111~115は、運用ディスクとして使用された時期が早い順に、左から並べられている。業務サーバ31,32,・・・からの書き込み要求に応じた、データの書き込みは、現時点で運用ディスクとして使用されている仮想ディスク115に対して行われる。業務サーバ31,32,・・・からの読み出し要求に応じたデータの読み出しは、運用ディスクとして使用された時期が遅い仮想ディスクから順に実行される。図5の配置では、右端の仮想ディスク115から順に左に向かって、読み出し要求に応じたデータ読み出しが順次行われる。
Next, the arrangement and internal structure of the virtual disk will be described.
FIG. 5 is a diagram showing an example of the arrangement and internal structure of a virtual disk. In the example of FIG. 5, 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. In the arrangement of FIG. 5, data reading in response to the read request is sequentially performed from the rightmost virtual disk 115 sequentially to the left.
 仮想ディスク111は、スナップショットが1度も作成される前に書き込まれたデータ(オリジナルデータ)を記憶する、オリジナルディスクである。仮想ディスク111は、最初のスナップショット(スナップショット#1)作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111に格納されているオリジナルデータは、最初のスナップショットに相当する。 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.
 各仮想ディスク111~115は、オリジナルディスクである仮想ディスク111を先頭に、運用ディスクとして使用されたのが早い順に並べられている。図5の例では、仮想ディスク111が1番目、仮想ディスク112が2番目、仮想ディスク113が3番目、仮想ディスク114が4番目、仮想ディスク115が5番目である。 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. In the example of FIG. 5, the virtual disk 111 is first, the virtual disk 112 is second, the virtual disk 113 is third, the virtual disk 114 is fourth, and the virtual disk 115 is fifth.
 仮想ディスク112は、最初のスナップショット作成から2回目のスナップショット(スナップショット#2)作成までの間に書き込まれたデータを記憶する。仮想ディスク112に書き込まれたデータは、オリジナルデータからの差分データである。仮想ディスク112は、2回目のスナップショット作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111,112に格納されているデータは、2回目のスナップショットに相当する。 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.
 仮想ディスク113は、2回目のスナップショット作成から3回目のスナップショット(スナップショット#3)作成までの間に書き込まれたデータを記憶する。仮想ディスク113に書き込まれたデータは、2回目のスナップショットからの差分データである。仮想ディスク113は、3回目のスナップショット作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111~113に格納されているデータは、3回目のスナップショットに相当する。 The virtual disk 113 stores data written between the time when the second snapshot is created and the time when the third snapshot (snapshot # 3) is created. Data written to the virtual disk 113 is difference data from the second snapshot. The virtual disk 113 is prohibited from writing data based on a write request from the business servers 31, 32,... After the third snapshot creation. The data stored in the virtual disks 111 to 113 corresponds to the third snapshot.
 仮想ディスク114は、3回目のスナップショット作成から4回目のスナップショット(スナップショット#4)作成までの間に書き込まれたデータを記憶する。仮想ディスク114に書き込まれたデータは、3回目のスナップショットからの差分データである。仮想ディスク114は、4回目のスナップショット作成時以降、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みは禁止される。仮想ディスク111~114に格納されているデータは、4回目のスナップショットに相当する。 The virtual disk 114 stores data written between the third snapshot creation and the fourth snapshot (snapshot # 4) creation. Data written to the virtual disk 114 is differential data from the third snapshot. The virtual disk 114 is prohibited from writing data based on a write request from the business servers 31, 32,... After the fourth snapshot is created. The data stored in the virtual disks 111 to 114 corresponds to the fourth snapshot.
 仮想ディスク115は、4回目のスナップショット作成以降に書き込まれたデータを記憶する。仮想ディスク115に書き込まれたデータは、4回目のスナップショットからの差分データである。仮想ディスク115は、現在も運用ディスクとして使用されており、書き込み可能である。 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.
 データ管理部110は、仮想ディスク111~115を作成する際には、作成した仮想ディスクに所定量(例えば2GB)の記憶領域を割り当てる。そして運用中の仮想ディスクにデータが書き込まれ、空き領域が所定の閾値(例えば800MB)以下になると、データ管理部110は、その仮想ディスクに所定量(例えば2GB)の記憶領域を追加する。このようにして、運用中の仮想ディスクには、ある程度以上の空き領域が常に確保される。その結果、大量のデータの書き込みが発生しても、運用ディスクの記憶容量を枯渇させずに済む。 When creating the virtual disks 111 to 115, the data management unit 110 allocates a predetermined amount (for example, 2 GB) of storage area to the created virtual disks. When data is written to the operating virtual disk and the free space becomes a predetermined threshold (for example, 800 MB) or less, 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.
 ただし、このような運用をすることで、仮想ディスク111~115それぞれに空き領域が含まれることとなる。そこで第2の実施の形態では、業務サーバ31,32,・・・からの書き込み要求に基づくデータの書き込みが禁止された仮想ディスク111~114の空き領域を、読み出したデータのコピー先として使用することで、空き領域の有効活用を図る。なお、読み出し対象のデータをコピーするか否かは、そのデータの移動総数に基づいて決定する。移動総数は、データが読み出されるごとに求められる移動数の累積値である。移動数は、読み出されたデータが格納されていた仮想ディスクから、リードブロック管理域に対応する仮想ディスクまでの、論理ボリューム110a内での配列上の差を示す値である。データの移動総数は、仮想ボリュームごとに計数され、管理情報記憶部120で保持される。なお移動総数は、第1の実施の形態における判定値の一例である。 However, by performing such an operation, 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.
 次に、管理情報記憶部120に格納されている管理情報について詳細に説明する。
 図6は、管理情報記憶部のデータ構造の一例を示す図である。管理情報記憶部120には、複数のリードブロック管理域121a,121b,121c,・・・、と複数の更新ブロックリスト122a,122b,122c,・・・が格納されている。
Next, the management information stored in the management information storage unit 120 will be described in detail.
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,.
 リードブロック管理域121a,121b,121c,・・・は、スナップショット作成時に、新たに論理ボリューム110aに組み込まれた仮想ディスクごとに設けられている。例えばリードブロック管理域121a,121b,121c,・・・には、対応する仮想ディスクのデバイス番号が設定されている。デバイス番号は、仮想ディスクのシステム内での固有情報である。また、リードブロック管理域121a,121b,121c,・・・には、読み出しが行われたデータについて、対応する仮想ディスクにコピーするか否かの指標となる数値が含まれる。例えばリードブロック管理域121a,121b,121c,・・・には、読み出されたデータのオフセットと移動数との組が登録される。オフセットは、論理ボリューム110aの記憶領域の先頭からデータまでのアドレスの差分である。 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. In addition, 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.
 更新ブロックリスト122a,122b,122c,・・・は、スナップショット作成時に、新たに論理ボリューム110aに組み込まれた仮想ディスクごとに設けられている。例えば更新ブロックリスト122a,122b,122c,・・・には、対応する仮想ディスクのデバイス番号が設定されている。また更新ブロックリスト122a,122b,122c,・・・には、対応する仮想ディスクに書き込まれたブロックのオフセットが登録されている。ブロックのオフセットは、例えば論理ボリューム110aの記憶領域の先頭からブロックまでのアドレスの差分である。 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. For example, the device numbers of the corresponding virtual disks are set in the update block lists 122a, 122b, 122c,. In addition, offsets of blocks written in the corresponding virtual disks are registered in the update block lists 122a, 122b, 122c,. The block offset is, for example, an address difference from the beginning of the storage area of the logical volume 110a to the block.
 次に、データの読み出し処理の手順について説明する。なおデータ読み出し処理は、データの読み出し要求が入力されたときに実行される。データの読み出し要求では、読み出し起点となる仮想ディスクを指定できる。例えば運用中の論理ボリューム110aのデータの読み出しを行う場合には、そのときに運用ディスクとして使用されている仮想ディスクが、読み出しの起点として指定される。また過去に作成したスナップショットのデータを読み出す場合、スナップショット作成直前まで運用ディスクとして使用されていた仮想ディスクが、起点として指定される。 Next, the procedure for reading data will be described. The data read process is executed when a data read request is input. In the data read request, the virtual disk that is the read start point can be specified. For example, when data is read from the logical volume 110a in operation, the virtual disk that is used as the operation disk at that time is designated as the read start point. When reading snapshot data created in the past, the virtual disk that was used as the active disk until immediately before the snapshot creation is designated as the starting point.
 図7は、データ読み出し処理の一例を示すフローチャートの前半である。以下、図7に示す処理をステップ番号に沿って説明する。
 [ステップS101]アクセス部140は、データの読み出し要求が入力されると、その読み出し要求における起点の仮想ディスクを選択する。
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.
 [ステップS102]アクセス部140は、選択した仮想ディスクに読み出し対象のデータがあるか否かを判断する。例えばアクセス部140は、選択した仮想ディスクに対応する更新ブロックリストに、読み出し対象のデータを含むブロックのオフセットが登録されている場合、選択した仮想ディスクに読み出し対象のデータがあると判断する。アクセス部140は、読み出し対象のデータがある場合、処理をステップS104に進める。またアクセス部140は、読み出し対象のデータがない場合、処理をステップS103に進める。 [Step S102] The access unit 140 determines whether there is data to be read on the selected virtual disk. For example, when the offset of a block including data to be read is registered in the update block list corresponding to the selected virtual disk, the access unit 140 determines that there is data to be read on the selected virtual disk. If there is data to be read, the access unit 140 proceeds with the process to step S104. If there is no data to be read, the access unit 140 proceeds with the process to step S103.
 [ステップS103]アクセス部140は、運用ディスクとして使用されていた時期が1つ前の仮想ディスクを新たに選択し、処理をステップS102に進める。例えばアクセス部140は、現在選択している仮想ディスクへの読み出し処理のサブルーチンとして、次の順番の仮想ディスクに対するデータ読み出し処理を行う。 [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.
 [ステップS104]アクセス部140は、選択した仮想ディスクに読み出し対象のデータが格納されている場合、選択した仮想ディスクから、そのデータを含むブロックを読み出す。アクセス部140は、読み出したデータを、読み出し要求の送信元の業務サーバに送信する。なお、アクセス部140は、読み出したデータを、そのデータを含むブロックごと、RAM102内のアクセス部140が管理する記憶領域に保持しておくこともできる。アクセス部140は、その後、処理をステップS111(図8参照)に進める。 [Step S104] When the data to be read is stored in the selected virtual disk, the access unit 140 reads a block including the data from the selected virtual disk. The access unit 140 transmits the read data to the business server that is the transmission source of the read request. The access unit 140 can also store the read data for each block including the data in a storage area managed by the access unit 140 in the RAM 102. Thereafter, the access unit 140 proceeds with the process to step S111 (see FIG. 8).
 図8は、データ読み出し処理の一例を示すフローチャートの後半である。以下、図8に示す処理をステップ番号に沿って説明する。
 [ステップS111]アクセス部140は、移動数に0を設定する。
FIG. 8 is the second half of the flowchart showing an example of the data reading process. In the following, the process illustrated in FIG. 8 will be described in order of step number.
[Step S111] The access unit 140 sets 0 as the number of movements.
 [ステップS112]アクセス部140は、配列上で、運用ディスクとして使用されていた時期が1つ後の仮想ディスクを選択する。例えばアクセス部140は、現在選択されている仮想ディスクへの読み出し処理を終了し、その処理の呼び出し元であった処理に復帰する。そしてアクセス部140は、復帰した処理において読み出し対象となっていた仮想ディスクを選択する。 [Step S112] The access unit 140 selects a virtual disk that has been used as a working disk in the array by the next time. For example, the access unit 140 ends the reading process for the currently selected virtual disk, and returns to the process that has called the process. Then, the access unit 140 selects a virtual disk that has been a read target in the restored process.
 [ステップS113]アクセス部140は、選択した仮想ディスクが運用ディスクか否かを判断する。アクセス部140は、選択した仮想ディスクが運用ディスクであれば、処理をステップS117に進める。またアクセス部140は、選択した仮想ディスクが運用ディスクでなければ、処理をステップS114に進める。 [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.
 [ステップS114]アクセス部140は、選択した仮想ディスクが運用ディスクでなければ、移動数に1を加算する。
 [ステップS115]アクセス部140は、選択した仮想ディスクにおける、読み出し対象のデータの移動総数に、現在の移動数を加算する。例えばアクセス部140は、管理情報記憶部120から、選択した仮想ディスクのデバイス番号に基づいて、その仮想ディスクに対応するリードブロック管理域を特定する。次にアクセス部140は、特定したリードブロック管理域内で、読み出したデータのオフセット値に対応する移動総数に、現在の移動数を加算する。
[Step S114] If the selected virtual disk is not the active disk, the access unit 140 adds 1 to the number of movements.
[Step S115] 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.
 [ステップS116]アクセス部140は、選択した仮想ディスクが、データ読み出しの起点の仮想ディスクか否かを判断する。アクセス部140は、選択した仮想ディスクが読み出しの起点の場合、処理をステップS117に進める。またアクセス部140は、選択した仮想ディスクが読み出しの起点でなければ、処理をステップS112に進める。 [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.
 [ステップS117]アクセス部140は、読み出し対象のデータの移動総数が閾値を超えた仮想ディスクがあるか否かを判断する。例えばアクセス部140は、管理情報記憶部120内のすべてのリードブロック管理域121a,121b,121c,・・・から、読み出し対象のデータのオフセット値に対応する移動総数を抽出し、閾値を超えた移動総数の有無を判断する。アクセス部140は、移動総数が閾値を超えた仮想ディスクが少なくとも1つあれば、処理をステップS118に進める。またアクセス部140は、移動総数が閾値を超えた仮想ディスクがなければ、データのコピーを行わずに処理を終了する。 [Step S117] 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.
 [ステップS118]アクセス部140は、移動総数が閾値を超えた仮想ディスクがある場合、その仮想ディスクに、読み出し対象のデータをコピーできるだけの空き容量があるか否かを判断する。例えばアクセス部140は、移動総数が閾値を超えた仮想ディスクの空き容量と、読み出し対象のデータのデータ量とを比較する。空き容量がデータ量以上であれば、アクセス部140は、その仮想ディスクに十分な空き容量があると判断する。アクセス部140は、十分な空き容量がある場合、処理をステップS119に進める。またアクセス部140は、十分な空き容量がなければ、データ読み出し処理を終了する。 [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.
 [ステップS119]アクセス部140は、読み出し対象のデータの移動総数が閾値を超え、かつ十分な空き領域がある仮想ディスクに、読み出し対象のデータをコピーする。なお、該当する仮想ディスクが複数ある場合、アクセス部140は、例えば、配列上最も後の仮想ディスクにデータをコピーする。アクセス部140は、データの読み出し時に、そのデータを含むブロックをRAM102内に保持しておいた場合、RAM102内に保持しておいたブロックを仮想ディスクに格納する。その後、処理が終了する。 [Step S119] The access unit 140 copies the data to be read to a virtual disk in which the total number of movements of the data to be read exceeds a threshold and has sufficient free space. When there are a plurality of corresponding virtual disks, for example, the access unit 140 copies data to the last virtual disk in the array. When the block including the data is held in the RAM 102 when reading the data, the access unit 140 stores the block held in the RAM 102 in the virtual disk. Thereafter, the process ends.
 以下、データ読み出し処理を、具体例を用いて説明する。まず運用ディスクを起点としたデータの読み出し処理の例について説明する。なお第2の実施の形態では、過去に作成したスナップショットのデータの読み出し要求以外の読み出し要求は、運用ディスクが起点となる。 Hereinafter, the data reading process will be described using a specific example. First, an example of data read processing starting from the operation disk will be described. In the second embodiment, the read request other than the read request for the snapshot data created in the past starts from the operation disk.
 図9は、運用ディスクを起点としたデータの読み出し処理の例を示す図である。図9では、オリジナルディスクである仮想ディスク111に格納されているデータの読み出し要求51が入力されている。読み出し対象のデータを含むブロックが、オフセット値「xxxxx」で指定されている。 FIG. 9 is a diagram showing an example of data read processing starting from the operation disk. In FIG. 9, 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”.
 アクセス部140は、運用ディスクである仮想ディスク115から順に、読み出し対象のデータが格納されているか否かを判定する。そしてアクセス部140は、最後に判定した仮想ディスク111内に読み出し対象のデータが格納されていることを検出し、仮想ディスク111から該当データ52を、そのデータ52を含むブロックごと読み出す。読み出されたデータ52は、読み出し要求51を送信した業務サーバに送信される。 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.
 データ52が読み出されると、そのデータ52の有無の判定が行われた各仮想ディスクにおける移動数が決定される。
 図10は、読み出されたデータの移動数の初期値を示す図である。まず、移動数の初期値として、データ52が読み出された仮想ディスク111の移動数を「0」とする。その後、読み出し要求51の起点の仮想ディスク115まで仮想ディスクの配列を辿りながら、移動数が更新される。例えば、次の仮想ディスクへ移動するごとに、移動数が1ずつカウントアップされる。
When the data 52 is read, the number of movements in each virtual disk for which the presence / absence of the data 52 has been determined is determined.
FIG. 10 is a diagram illustrating an initial value of the number of movements of read data. First, as 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”. Thereafter, 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.
 図11は、運用ディスクを起点としたデータの読み出し処理に基づく移動総数の更新例を示す図である。データ52を読み出した仮想ディスク111の移動数は「0」であり、その次の仮想ディスク112における移動数は「1」である。そこで、仮想ディスク112に対応するリードブロック管理域121aには、データ52を含むブロックのオフセット値「xxxxx」に対応付けて、移動総数「1」が設定される。 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.
 仮想ディスク112の次の仮想ディスク113における移動数は「2」である。そこで仮想ディスク113に対応するリードブロック管理域121bには、データ52を含むブロックのオフセット値「xxxxx」に対応付けて、移動総数「2」が設定される。 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.
 仮想ディスク113の次の仮想ディスク114における移動数は「3」である。そこで仮想ディスク114に対応するリードブロック管理域121cには、データ52を含むブロックのオフセット値「xxxxx」に対応付けて、移動総数「3」が設定される。 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.
 なお、第2の実施の形態では、運用ディスクとして使用されている仮想ディスク115は、読み出したデータのコピー先から除外されている。そのため、仮想ディスク115に対応する移動総数の更新は行われない。 In the second embodiment, 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.
 各リードブロック管理域121a,121b,121cの移動総数の更新が完了すると、閾値を超えた移動総数があるか否かが判断される。例えば、データをコピーするための移動総数の閾値が「5」であるものとする。すると、図11に示した例では、すべての仮想ディスクについて、データ52を含むブロックに対応する移動総数が5を超えていない。 When the update of the total number of moves in each read block management area 121a, 121b, 121c is completed, it is determined whether there is a total number of moves exceeding the threshold. For example, it is assumed that the threshold of the total number of movements for copying data is “5”. Then, in the example shown in FIG. 11, the total number of movements corresponding to the block including the data 52 does not exceed 5 for all virtual disks.
 その後、運用ディスクを起点として、データ52に対する2回目の読み出しが行われたものとする。
 図12は、データの2回目の読み出し処理の例を示す図である。データ52に対する2回目の読み出し要求53が入力されると、前回と同様に、起点となる仮想ディスク115から順に、データ52の有無が判定される。そして、データ52を格納している仮想ディスク111からそのデータ52が読み出される。そして、データ52の2回目の読み出しに応じて、各仮想ディスクにおけるデータ52の移動総数が更新される。
After that, it is assumed that the data 52 is read a second time starting from the operation disk.
FIG. 12 is a diagram illustrating an example of the second data read process. When 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. Then, the data 52 is read from the virtual disk 111 storing the data 52. Then, in accordance with the second reading of the data 52, the total number of movements of the data 52 in each virtual disk is updated.
 図13は、2回目のデータの読み出しに応じた移動総数の更新例を示す図である。仮想ディスク111~114それぞれにおける移動数は、図11に示した1回目の場合と同様である。 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.
 仮想ディスク112における移動数は「1」である。そこで仮想ディスク112に対応するリードブロック管理域121aでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「1」が加算され「2」に更新されている。 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”.
 仮想ディスク113における移動数は「2」である。そこで仮想ディスク113に対応するリードブロック管理域121bでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「2」が加算され「4」に更新されている。 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”.
 仮想ディスク114における移動数は「3」である。そこで仮想ディスク114に対応するリードブロック管理域121cでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「3」が加算され「6」に更新されている。 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”.
 図13の例では、仮想ディスク114において、データ52に対応する移動総数「6」が、閾値「5」を超えている。そこで、仮想ディスク114に、データ52をコピーできるだけの空き容量がある否かが判定される。 In the example of FIG. 13, 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.
 図14は、データのコピー先の空き容量の判定状況を示す図である。図14の例では、仮想ディスク111に格納されているデータ52のデータ量がaバイト(aは正の実数)、仮想ディスク114の空き領域の容量がbバイト(bは正の実数)である。この場合、「a≦b」の条件が満たされるかどうかが判定される。図14の例では、条件が満たされたものとする。その場合、データ52が仮想ディスク114の空き領域にコピーされる。 FIG. 14 is a diagram showing the determination status of the free capacity of the data copy destination. In the example of FIG. 14, 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). . In this case, it is determined whether or not the condition “a ≦ b” is satisfied. In the example of FIG. 14, it is assumed that the condition is satisfied. In that case, the data 52 is copied to a free area of the virtual disk 114.
 図15は、データのコピー例を示す図である。図15に示すように、仮想ディスク111のデータ52が、仮想ディスク114にコピーされる。コピーされたデータは、仮想ディスク114に、差分データとして保持される。このとき、仮想ディスク114に対応する更新ブロックリスト(図6参照)には、データ52を含むブロックのオフセット値が設定される。 FIG. 15 is a diagram showing a copy example of data. As shown in FIG. 15, 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. At this time, 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.
 その後、運用ディスクを起点として、データ52に対する3回目の読み出し要求が入力されると、仮想ディスク114からデータ52が読み出されることとなる。
 図16は、データの3回目の読み出し処理の例を示す図である。データ52に対する3回目の読み出し要求54が入力されると、起点となる仮想ディスク115から順に、データ52の有無が判定される。すると、仮想ディスク114の更新ブロックリストにデータ52を含むブロックのオフセット値が設定されていることから、仮想ディスク114にデータ52が格納されていると判定される。そこで仮想ディスク114からデータ52が読み出される。4回目以降のデータ52の読み出しも、仮想ディスク114から行うことができる。
Thereafter, when the third read request for the data 52 is input starting from the operation disk, the data 52 is read from the virtual disk 114.
FIG. 16 is a diagram illustrating an example of the third data read process. When 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.
 このように、データの移動総数が閾値を超えた場合、そのデータを、読み出し時のデータの有無の判定順が早い仮想ディスクにコピーすることで、以後のデータの読み出しを迅速に行うことができる。図9~図16の例では、1回目と2回目のデータ52の読み出しの際には、5台の仮想ディスクに関して、そのデータ52の有無の判定が行われている。他方、3回目以降のデータ52の読み出しの際には、データ52の有無の判定を行うのは2台の仮想ディスクで済んでいる。このように、データ52の有無の判定を行う仮想ディスクが削減されることで、データの読み出し効率が向上している。 In this way, when the total number of data movements exceeds the threshold value, 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. . In the examples of FIGS. 9 to 16, when the first and second data 52 are read, the presence / absence of the data 52 is determined for five virtual disks. On the other hand, when 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. In the case of a data read request for a snapshot, 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.
 図17は、スナップショットのデータの読み出し処理の例を示す図である。図17の例では、図11に示した状況となった後、3回目に作成したスナップショット(スナップショット#3)からの、オフセット値「xxxxx」のデータ52の読み出しを要求する、読み出し要求55が入力されている。この場合、3回目のスナップショット作成直前まで運用ディスクとして使用されていた仮想ディスク113が、データ52の有無判定の起点となる。そして仮想ディスクの配列上、仮想ディスク113から順に、前に向かって、各仮想ディスクにデータ52が格納されているか否かが判定される。図17の例では、オリジナルディスクである仮想ディスク111にデータ52が格納されていると判定され、仮想ディスク111からデータ52が読み出されている。 FIG. 17 is a diagram illustrating an example of a process for reading snapshot data. In the example of FIG. 17, after the situation shown in FIG. 11 is reached, 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. Is entered. In this case, 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. Then, it is determined whether or not data 52 is stored in each virtual disk in order from the virtual disk 113 in the order of the virtual disks. In the example of FIG. 17, it is determined that 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.
 このように仮想ディスク113を起点としてデータ52の有無の判定を行った場合、データ52を読み出した仮想ディスク111から起点の仮想ディスク113までの各仮想ディスク111~113について、移動数が設定される。そして、設定された移動数に基づいて、仮想ディスクごとに、読み出されたデータに対応する移動総数が設定される。 In this way, when the presence / absence of the data 52 is determined using the virtual disk 113 as a starting point, 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.
 図18は、スナップショットのデータ読み出し時の移動総数の設定例を示す図である。データ52を読み出した仮想ディスク111の移動数は「0」であり、その次の仮想ディスク112における移動数は「1」である。そこで、仮想ディスク112に対応するリードブロック管理域121aでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「1」が加算され、「2」に更新されている。仮想ディスク112の次の仮想ディスク113における移動数は「2」である。そこで仮想ディスク113に対応するリードブロック管理域121bでは、データ52を含むブロックのオフセット値「xxxxx」に対応する移動総数に「2」が加算され、「4」に更新されている。この時点では、閾値「5」を超えた移動総数はない。 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”.
 以後、3回目に作成したスナップショットからの、オフセット値「xxxxx」のデータ52の読み出し要求が、もう一度入力されたものとする。するとデータ52が読み出されるごとに、仮想ディスク112,113におけるデータ52の移動総数が、さらに更新される。 Hereinafter, it is assumed that the read request of the data 52 with the offset value “xxxxx” from the snapshot created for the third time is input again. Then, each time the data 52 is read, the total number of movements of the data 52 in the virtual disks 112 and 113 is further updated.
 図19は、スナップショットのデータの2回目の読み出し処理の例を示す図である。3回目に作成したスナップショットからの、データ52の3回目の読み出し要求56が入力されると、1回目と同様に、起点となる仮想ディスク113から順に、データ52の有無が判定される。そして、データ52を格納している仮想ディスク111からそのデータ52が読み出される。そして、データ52の読み出しに応じて、仮想ディスク112,113におけるデータ52を含むブロックの移動総数が更新される。 FIG. 19 is a diagram illustrating an example of a second read process of snapshot data. When 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.
 図19の例では、仮想ディスク112におけるデータ52を含むブロックの移動総数は「3」に更新され、仮想ディスク113におけるデータ52を含むブロックの移動総数は「6」に更新されている。この場合、仮想ディスク113におけるデータ52を含むブロックの移動総数が閾値「5」を超えている。そこで、仮想ディスク113に十分な空き容量があることを確認した上で、データ52を含むブロックが仮想ディスク113にコピーされる。 In the example of FIG. 19, 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”. In this case, 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.
 図20は、スナップショットのデータの読み出しに応じたデータコピーの例を示す図である。図20に示すように、仮想ディスク111のデータ52が、仮想ディスク113にコピーされる。コピーされたデータは、仮想ディスク113に、差分データとして保持される。このとき、仮想ディスク113に対応する更新ブロックリスト(図6参照)には、データ52を含むブロックのオフセット値が設定される。その後、仮想ディスク113を起点として、データ52に対する3回目の読み出し要求が入力されると、仮想ディスク113からデータ52が読み出されることとなる。 FIG. 20 is a diagram showing an example of data copy in response to reading of snapshot data. As shown in FIG. 20, 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. At this time, 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. Thereafter, when the third read request for the data 52 is input starting from the virtual disk 113, the data 52 is read from the virtual disk 113.
 このように、移動総数は、スナップショットのデータを読み出したときにも更新される。すなわちスナップショットの作成により、論理ボリューム110a内の仮想ディスクが複数階層となった場合、データの読み出しは、運用中のデータの読み出しと、スナップショットのデータの読み出しとがあり得る。そして、運用中のデータの読み出しの場合と、スナップショットのデータの読み出しの場合とでは、データの有無の判定を行う際の起点となる仮想ディスクが異なる。一方、どの仮想ディスクを起点としたデータの読み出しであっても、読み出し頻度が高いデータを、起点となる仮想ディスク近くにコピーしておくことで、読み出し効率を向上させることができる。そこで、第2の実施の形態では、どの仮想ディスクを起点とした読み出し要求なのかを区別せずに、移動数を移動総数に加算していくようにした。これにより、移動総数に基づいてコピーの要否およびコピー先を決定することで、全体的な読み出し効率の向上するための適切なコピーを行うことができる。 Thus, 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. On the other hand, even when data is read from any virtual disk, 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.
 〔その他の実施の形態〕
 第2の実施の形態では、データのコピー先として、運用ディスクとして使用されている仮想ディスクを除外しているが、運用ディスクをデータのコピー先に含めることもできる。その場合、アクセス部140は、例えば、運用ディスクについても、対応するリードブロック管理域を設け、データごとの移動総数を管理する。そしてアクセス部140は、運用ディスクにおける移動総数が閾値を超えた場合、読み出したデータを運用ディスクにコピーする。例えば、移動総数が閾値を超えた仮想ディスクの空き領域が不足しており、その仮想ディスクにデータをコピーできない場合に、運用ディスクにデータをコピーするようにしてもよい。
[Other Embodiments]
In the second embodiment, 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. In this case, for example, 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.
 また第2の実施の形態では、記憶手段ごとにデータの移動総数を計算しているが、これは、作成したスナップショットからのデータの読み出しについても、データの読み出し効率が向上するようにしたものである。スナップショットからのデータの読み出し効率を考慮に入れず、運用ディスクを起点としたデータの読み出し処理の効率化のみを考慮した場合、例えば、アクセス部140は、運用ディスクの前の仮想ディスクについての移動総数のみを計算する。そして、アクセス部140は、運用ディスクの前の仮想ディスクにおける移動総数が閾値を超えたデータを検出すると、そのデータを運用ディスクの前の仮想ディスクに格納する。このようにすることで、アクセス部140の処理を簡略化し、処理の効率化を図ることができる。 In the second embodiment, 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. When the efficiency of reading data from the operation disk is not taken into consideration and only the efficiency of the data read process starting from the operation disk is considered, for example, the access unit 140 moves the virtual disk before the operation disk. Calculate only the total number. When 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. By doing in this way, the process of the access part 140 can be simplified and the efficiency of a process can be aimed at.
 さらに第2の実施の形態では、論理ボリューム110aを1または複数の仮想ディスクで構成しているが、仮想ディスクに代えて物理ディスクやSSD(Solid State Drive)を用いることもできる。 In the second embodiment, 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.
 上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。 The above merely shows the principle of the present invention. In addition, many modifications and changes can be made by those skilled in the art, and the present invention is not limited to the precise configuration and application shown and described above, and all corresponding modifications and equivalents may be And the equivalents thereof are considered to be within the scope of the invention.
 1a,1b,1c,1d 記憶手段
 2 判定手段
 3 読み出し手段
 4 格納手段
 5 データ
 X 情報処理装置
1a, 1b, 1c, 1d Storage means 2 Judgment means 3 Reading means 4 Storage means 5 Data X Information processing apparatus

Claims (7)

  1.  複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定し、
     前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出し、
     該記憶手段よりも前記所定の順番が早い記憶手段に、該データを格納する、
     処理を情報処理装置に実行させるプログラム。
    A storage means is associated with each of a plurality of time zones, and the storage means stores updated data within the corresponding time zone. When a data read request is input, each storage means Determine whether the data is stored in a predetermined order,
    Read the data from the storage means storing the data specified in the read request,
    Storing the data in a storage means earlier in the predetermined order than the storage means;
    A program that causes an information processing apparatus to execute processing.
  2.  前記複数の時間帯は、スナップショット作成要求の入力時点を境界として区分けされており、
     データの格納では、最後のスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段のいずれかに、データを格納することを特徴とする請求の範囲第1項記載のプログラム。
    The plurality of time zones are divided with the input time point of the snapshot creation request as a boundary,
    2. The program according to claim 1, wherein the data is stored in any of storage means corresponding to a time zone before the input time point of the last snapshot creation request.
  3.  データの格納では、データの格納条件が予め定義されており、前記読み出し要求で指定されたデータが格納されている記憶手段よりも前記所定の順番が早い記憶手段ごとに、該データの前記書き込み条件が満たされるか否かを判断し、前記書き込み条件が満たされる記憶手段に該データを格納することを特徴とする請求の範囲第1項または第2項記載のプログラム。 In data storage, data storage conditions are defined in advance, and the data write conditions are stored for each storage means earlier in the predetermined order than the storage means storing the data specified in the read request. 3. The program according to claim 1, wherein the data is stored in storage means that satisfies the write condition.
  4.  データの格納では、データの読み出しが行われると、該データが格納されている記憶手段よりも前記所定の順番が早い記憶手段ごとに、該データが格納されている記憶手段との間の前記所定の順番の差を示す値を、該データの格納の要否を示す判定値に加算し、判定値が所定の閾値を超えた記憶手段に該データを格納することを特徴とする請求の範囲第3項記載のプログラム。 In the data storage, when the data is read, the predetermined number of storage units storing the data is stored for each storage unit whose predetermined order is earlier than the storage unit storing the data. A value indicating a difference in order of the data is added to a determination value indicating whether the data needs to be stored, and the data is stored in a storage unit whose determination value exceeds a predetermined threshold value. The program according to item 3.
  5.  前記複数の時間帯は、スナップショット作成要求の入力時点を境界として区分けされており、
     データが格納されているか否かの判定では、特定のスナップショットで保持したデータの読み出し要求が入力された場合には、該スナップショットの作成を指示するスナップショット作成要求の入力時点より前の時間帯に対応する記憶手段について、前記所定の順番で、該データが格納されているか否かを順番に判定することを特徴とする請求の範囲第1項乃至第4項のいずれかに記載のプログラム。
    The plurality of time zones are divided with the input time point of the snapshot creation request as a boundary,
    When determining whether or not data is stored, when a read request for data held in a specific snapshot is input, the time before the input of the snapshot creation request instructing creation of the snapshot The program according to any one of claims 1 to 4, wherein the storage unit corresponding to the band sequentially determines whether or not the data is stored in the predetermined order. .
  6.  情報処理装置が、
     複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定し、
     前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出し、
     該記憶手段よりも前記所定の順番が早い記憶手段に、該データを格納する、
     ことを特徴とするデータ管理方法。
    Information processing device
    A storage means is associated with each of a plurality of time zones, and the storage means stores updated data within the corresponding time zone. When a data read request is input, each storage means Determine whether the data is stored in a predetermined order,
    Read the data from the storage means storing the data specified in the read request,
    Storing the data in a storage means earlier in the predetermined order than the storage means;
    A data management method characterized by the above.
  7.  複数の時間帯それぞれに記憶手段が対応付けられており、記憶手段には、対応する時間帯内に更新されたデータが格納されており、データの読み出し要求が入力されると、記憶手段ごとに所定の順番で、該データが格納されているか否かを判定する判定手段と、
     前記読み出し要求で指定されたデータが格納されている記憶手段から該データを読み出す読み出し手段と、
     該記憶手段よりも前記所定の順番が早い記憶手段に、該データを格納する格納手段と、
     を有する情報処理装置。
    A storage means is associated with each of a plurality of time zones, and the storage means stores updated data within the corresponding time zone. When a data read request is input, each storage means Determining means for determining whether or not the data is stored in a predetermined order;
    Reading means for reading the data from the storage means storing the data specified in the read request;
    Storage means for storing the data in the storage means earlier in the predetermined order than the storage means;
    An information processing apparatus.
PCT/JP2012/067478 2012-07-09 2012-07-09 Program, data management method, and information processing device WO2014010016A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067478 WO2014010016A1 (en) 2012-07-09 2012-07-09 Program, data management method, and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067478 WO2014010016A1 (en) 2012-07-09 2012-07-09 Program, data management method, and information processing device

Publications (1)

Publication Number Publication Date
WO2014010016A1 true WO2014010016A1 (en) 2014-01-16

Family

ID=49915519

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067478 WO2014010016A1 (en) 2012-07-09 2012-07-09 Program, data management method, and information processing device

Country Status (1)

Country Link
WO (1) WO2014010016A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017060495A1 (en) * 2015-10-08 2017-04-13 The Roberto Giori Company Ltd Dynamically distributed backup method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146228A (en) * 2007-12-14 2009-07-02 Fujitsu Ltd Backing-up apparatus, backing-up method, and backing-up program
JP2009205307A (en) * 2008-02-26 2009-09-10 Nec Corp Data storage method and its device, duplicate data storage method, its device, and control program for those items
JP2012022490A (en) * 2010-07-14 2012-02-02 Fujitsu Ltd Data processor, data processing method, data processing program and storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009146228A (en) * 2007-12-14 2009-07-02 Fujitsu Ltd Backing-up apparatus, backing-up method, and backing-up program
JP2009205307A (en) * 2008-02-26 2009-09-10 Nec Corp Data storage method and its device, duplicate data storage method, its device, and control program for those items
JP2012022490A (en) * 2010-07-14 2012-02-02 Fujitsu Ltd Data processor, data processing method, data processing program and storage device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017060495A1 (en) * 2015-10-08 2017-04-13 The Roberto Giori Company Ltd Dynamically distributed backup method and system
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 (en) Computer system, management computer, and logical storage area management method
JP6476932B2 (en) Storage device, control program, storage system, and data transfer method
CN102929786A (en) Volatile memory representation of nonvolatile storage device set
JP2013045379A (en) Storage control method, information processing device and program
JP2008015623A (en) Controller of storage system equipped with many kinds of storage devices
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 (en) Storage control device, storage control program, and storage system
JP6867578B2 (en) Storage controller, storage system, storage control method and storage control program
US11429431B2 (en) Information processing system and management device
CN107526533B (en) Storage management method and equipment
US10133517B2 (en) Storage control device
US11010091B2 (en) Multi-tier storage
JP7323769B2 (en) Storage devices, storage systems and programs
US10430287B2 (en) Computer
US20160224273A1 (en) Controller and storage system
WO2014010016A1 (en) Program, data management method, and information processing device
WO2014010011A1 (en) Program, data management method, and information processing device
US11803469B2 (en) Storing data in a log-structured format in a two-tier storage system
JP2011242862A (en) Storage subsystem and control method for the same
US10324631B2 (en) Control apparatus, storage apparatus and method
JP2018163457A (en) Storage control device, cache memory control method and storage system
JP5924117B2 (en) Computer, data storage method, data storage program, and information processing system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 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