JP2018173802A - Storage system, data sorting method, and program - Google Patents
Storage system, data sorting method, and program Download PDFInfo
- Publication number
- JP2018173802A JP2018173802A JP2017071246A JP2017071246A JP2018173802A JP 2018173802 A JP2018173802 A JP 2018173802A JP 2017071246 A JP2017071246 A JP 2017071246A JP 2017071246 A JP2017071246 A JP 2017071246A JP 2018173802 A JP2018173802 A JP 2018173802A
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- storage
- child
- storage system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 230000010076 replication Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 239000012634 fragment Substances 0.000 description 54
- 238000013500 data storage Methods 0.000 description 42
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Abstract
Description
本発明は、ストレージシステムに関し、特に、ストレージシステムで行う再格納処理に関する。 The present invention relates to a storage system, and more particularly to a re-store process performed in the storage system.
例えばバックアップストレージのようなストレージシステムには、読み出し性能の向上を図るため、格納したストリームデータを連続の並びになるようにソートして再配置乃至再格納する処理を実行するものがある。 For example, some storage systems, such as backup storage, execute a process of rearranging or re-storing the stored stream data so as to be continuously arranged in order to improve read performance.
ストレージシステムの負荷が高い状態にあるとき、ソート処理の完了には時間がかかる。このため、ストレージシステムに高負荷の状態が続くと、ソート処理が大量に滞留することがある。このようなとき、ストレージシステムで読み出し処理を実行すると、ソート処理を未処理のデータがストレージシステムの記憶領域上に大量に存在するので、読み出し処理に通常よりも長い時間がかかる。 When the load on the storage system is high, it takes time to complete the sort process. For this reason, if the storage system continues to be heavily loaded, a large amount of sort processing may remain. In such a case, if a read process is executed in the storage system, a large amount of unprocessed data exists in the storage area of the storage system, so the read process takes longer than usual.
本発明に関連するものとして特許文献1を挙げる。特許文献1は、複数ストリームで書き込んだデータの読み出し性能の向上を図るため、ストリームデータをバッファメモリからデータ記憶装置に書き出す時に、同じストリームIDを持つデータを連続配置することを開示している。 Patent document 1 is given as a thing relevant to this invention. Patent Document 1 discloses that data having the same stream ID is continuously arranged when the stream data is written from the buffer memory to the data storage device in order to improve the reading performance of the data written in a plurality of streams.
バッファメモリを超えるデータについては断片化され、例えば図9のようなデータ配置状態となる。F1〜F12はデータ格納領域を表し、利用者が書き込んだデータを上から順に格納する。ST1〜ST3は、複数のバックアップ対象データを区別するために割り当てた識別するストリームIDであり、図9においては、それぞれ利用者によって書き込まれた異なるデータを表す。この状態から、更なるデータ読み出し性能の向上を図るため、同じストリームIDを持つデータをソートする処理を再格納処理という。 The data exceeding the buffer memory is fragmented and becomes, for example, a data arrangement state as shown in FIG. F1 to F12 represent data storage areas, in which data written by the user is stored in order from the top. ST1 to ST3 are stream IDs that are assigned to distinguish a plurality of pieces of backup target data. In FIG. 9, each represents different data written by the user. From this state, in order to further improve the data reading performance, the process of sorting data having the same stream ID is referred to as a re-storing process.
一般に、再格納処理はシステムリソースに空きがある時に行われる。外部からの負荷がある場合、再格納処理の実行を待つ。システムの負荷が高い場合、再格納処理の実行前に、読み出し処理が実行される場合がある。 Generally, the re-storing process is performed when system resources are available. When there is a load from the outside, it waits for execution of the re-storing process. When the system load is high, the read process may be executed before the re-store process.
図9のようにデータを格納したストレージシステムにおいて、再格納処理が途中まで進行したところで、図10に示すように読み出し処理が発生したとする。図10の例では、データ格納フォルダF1〜F12それぞれの先頭から再格納処理を実行し、POSPまで完了している。一方、読み出し処理はPOSRまで進んでいる。データはPOSEまで格納され、再格納処理を待っている状況にある。 In the storage system storing data as shown in FIG. 9, it is assumed that a read process occurs as shown in FIG. In the example of FIG. 10, the re-storing process is executed from the head of each of the data storage folders F1 to F12, and the process up to POS P is completed. On the other hand, the reading process proceeds to POS R. Data is stored up to POS E and is waiting for a re-store process.
この状況ではPOSRがPOSPに先行している。この状況から、POSPがPOSRを追い抜いて、進行具合が逆転することは通常は起きない。このため、以後の読み出し処理は、常に、再格納処理が未処理の状態にあるデータに対して行われる。その結果、ストレージシステムの読み出し性能に悪影響を与えている。 In this situation, POS R precedes POS P. From this situation, it is not normal for POS P to overtake POS R and reverse the progress. For this reason, subsequent read processing is always performed on data that has not yet been re-stored. As a result, the read performance of the storage system is adversely affected.
本発明はこのような状況を鑑みてなされたものであり、本発明が解決しようとする課題は、読み出し性能の向上を図ることが可能なストレージシステム、データソート方法及びプログラムを提供することである。 The present invention has been made in view of such a situation, and a problem to be solved by the present invention is to provide a storage system, a data sort method, and a program capable of improving read performance. .
上述の課題を解決するため、本発明は、その一態様として、ひとつの親データを複数に分割して生成したデータを子データと呼ぶとき、互いに異なる親データを分割元とする子データを順番に記憶装置内のファイルに格納する手段、前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する手段、前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う手段を備えるストレージシステムを提供する。 In order to solve the above-mentioned problems, the present invention, as one aspect thereof, in the case where data generated by dividing one parent data into a plurality of pieces is called child data, the child data having different parent data as a division source is ordered. Means for storing in a file in the storage device, means for storing in the storage device the position read last from the file by the read processing in response to execution of the file read processing, and storing the child data in the file There is provided a storage system comprising means for performing a sorting process for sorting on the child files stored after the position.
また、本発明は、他の一態様として、ひとつの親データを複数に分割して生成したデータを子データと呼ぶとき、互いに異なる親データを分割元とする子データを順番に記憶装置内のファイルに格納する段階、前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する段階、前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う段階を含む、ストレージシステムに記憶したファイル内のデータをソートする方法を提供する。 Further, according to another aspect of the present invention, when data generated by dividing one parent data into a plurality of pieces is called child data, child data having different parent data as a division source is sequentially stored in the storage device. A step of storing in a file; a step of storing in a storage device a position read last from the file by the reading process in accordance with execution of the reading process of the file; a sorting process for sorting the child data in the file; A method for sorting data in a file stored in a storage system, including the step of performing the process on the child file stored after the location.
また、本発明は、他の一態様として、ひとつの親データを複数に分割して生成したデータを子データと呼ぶとき、互いに異なる親データを分割元とする子データを順番に記憶装置内のファイルに格納する手段、前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する手段、前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う手段をコンピュータに実現させるためのプログラムを提供する。 Further, according to another aspect of the present invention, when data generated by dividing one parent data into a plurality of pieces is called child data, child data having different parent data as a division source is sequentially stored in the storage device. Means for storing in a file; means for storing in a storage device the position read last from the file by the read process in accordance with execution of the file read process; and a sort process for sorting the child data in the file A program for causing a computer to realize means for the child file stored after the location is provided.
本発明によれば、ストレージシステムの読み出し性能の向上を図ることができる。 According to the present invention, it is possible to improve the read performance of the storage system.
[第1実施形態]
本発明の第1実施形態に係るストレージシステム1について説明する。図1を参照すると、ストレージシステム1は、記憶装置31、分割記憶制御部25、読み出し済み情報記憶部33、格納位置管理部26を備える。
[First Embodiment]
The storage system 1 according to the first embodiment of the present invention will be described. Referring to FIG. 1, the storage system 1 includes a
分散記憶制御部25は、ストレージシステム1に入力されたデータを記憶装置31に書き込む。その際、分散記憶制御部25はひとつのデータを複数のデータに分割して書き込みを行う。
The distributed
分割前後のデータの関係について説明する。ここでは分割前のデータを親データと呼び、分割後のデータを子データと呼ぶものとする。図2を参照すると、親データD1は子データd1-1、d1-2、…、d1-Lからなる(Lは自然数)。各子データは、入力された順に親データD1を所定のサイズで区切ったものである。同様に、親データD2は子データd2-1、d2-2、…、d2-M(Mは自然数)からなり、親データD3は子データd3-1、d3-2、…、d3-N(Nは自然数)からなる。 The relationship between the data before and after the division will be described. Here, data before division is called parent data, and data after division is called child data. Referring to FIG. 2, the parent data D1 includes child data d1-1, d1-2,..., D1-L (L is a natural number). Each child data is obtained by dividing the parent data D1 by a predetermined size in the input order. Similarly, the parent data D2 includes child data d2-1, d2-2,..., D2-M (M is a natural number), and the parent data D3 includes child data d3-1, d3-2,. N is a natural number).
ストレージシステム1に複数のデータが並行して入力される場合を考える。分散記憶制御部25は、入力された順序に従って記憶装置31に書き込む。その際、親データ単位での入力順序ではなく、子データ単位での入力順序に従って記憶装置31に書き込む。書き込みの直後、子データは例えば図3のように配置される。図3に示すように、分散記憶制御部25は、ファイルFの先頭から末尾に向かって、その子データが入力された順序に従ってファイルFに書き込む。
Consider a case where a plurality of data is input to the storage system 1 in parallel. The distributed
今、図3のファイルFに対して読み出し処理が発生し、図4に示すように、ファイルFを先頭から順に位置POSRまで読み出したとする。このとき、格納位置管理部26は、ファイルの読み出し処理の実行に応じて、その読み出し処理がそのファイルから最後に読み出した位置POSRを読み出し済み情報記憶部33に記憶する。
Now, the reading process is generated for the file F of FIG. 3, as shown in FIG. 4, and reads the file F from the head to position POS R in order. In this case, the storage
このとき、分散記憶制御部25は、ファイル内で子データをソートするソート処理、即ち、再格納処理を、読み出し済み情報記憶部33に記憶した位置以後に格納されている子ファイルに対して行う。再格納処理は、ファイルF内における子ファイルの配置を整理することにより、ファイルFの読み出し速度の改善を図るためのものである。
At this time, the distributed
再格納処理後のファイルF内のデータ配置の例を図5に示す。本例では、位置POSR以後、まず、分割元の親データによって各子データがまとめて配置されている。親データD1を分割元とする子データd1-9、d1-10が連続して格納され、次に、親データD2を分割元とする子データd2-6, d2-7が連続して格納され、最後に、親データD3を分割元とする子データd3-5, d3-6, …,d3-9が連続して格納されている。また、同じ親データを分割元とする子データは、入力順序に応じた順序に配置されている。 An example of the data arrangement in the file F after the re-storage process is shown in FIG. In this example, position POS R after, firstly, each child data are arranged together by dividing original parent data. Child data d1-9 and d1-10 with parent data D1 as the division source are stored in succession, and then child data d2-6 and d2-7 with parent data D2 as the division source are stored in succession. Finally, child data d3-5, d3-6,..., D3-9 having the parent data D3 as a division source are successively stored. Further, the child data having the same parent data as the division source is arranged in an order corresponding to the input order.
このように、読み出し処理が発生したとき、その最後の読み出し位置POSRを記憶し、その位置以後に格納されているデータに対して再格納処理を実行することにより、読み出し位置POSR以後に格納されているデータの読み出し処理を高速化することができる。 Thus storage, when the reading process has occurred, storing the last read position POS R, by executing the re-storing process to the data stored at that location after, the reading position POS R after It is possible to speed up the reading process of the data that has been read.
[第2実施形態]
本発明の第2実施形態に係るストレージシステム10について説明する。図6を参照すると、ストレージシステム10はデータ処理装置20及びデータ記憶装置30を備える。ストレージシステム10は単独或いは複数のコンピュータによって構成されるシステムである。データ処理装置20及びデータ記憶装置30を単独のコンピュータによって構成してもよいし、データ処理装置20及びデータ記憶装置30をそれぞれ別のコンピュータとして構成することとしてもよい。更に、データ処理装置20及びデータ記憶装置30をそれぞれ複数のコンピュータにより構成することとしてもよい。
[Second Embodiment]
A
ストレージシステム10はコンテンツアドレスストレージシステムである。コンテンツアドレスストレージシステムでは、データを分割及び冗長化し、分散して複数の記憶装置に記憶する。また、コンテンツアドレスストレージシステムでは、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定する。
The
データ処理装置20は、データ記憶装置30に対するデータの記憶及び読み出し動作を制御する。データ記憶装置30はデータを記憶する記憶媒体を備える装置である。データ処理装置20、データ記憶装置30をそれぞれ単独のコンピュータとして構成する場合、データ処理装置20、データ記憶装置30をそれぞれ例えばサーバコンピュータ装置にて構成することが考えられる。
The
データ処理装置20は、ストリームID(Identifier)付与部21、ブロック生成部22、重複チェック部23、フラグメント生成部24、分散記憶制御部25、格納位置管理部26を備える。データ記憶装置30は、複数の記憶装置31、格納位置情報記憶部32、読み出し済み情報記憶部33を備える。
The
ストリームID付与部21は、一群のデータである対象データAの入力を受けると、当該対象データAを区別する識別情報であるストリームIDを付与する。例えば、対象データAに対してストリームID=ST1を付与し、対象データB(図示せず)に対してストリームID=ST2を付与する。
When receiving the input of the target data A that is a group of data, the stream
ブロック生成部22は、対象データAの入力を受けると、当該対象データAを所定容量(例えば、64KB)のブロックデータDに分割する。
When receiving the input of the target data A, the
また、ブロック生成部22は、ブロックデータDのデータ内容に基づいて、当該ブロックデータDの内容を代表する固有のハッシュ値H(内容識別情報)を算出する。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。
Further, the
更に、ブロック生成部22は、対象データAに付与したストリームIDを、その対象データAを分割して生成した各ブロックデータDにも引き継いで付与する。
Furthermore, the
重複チェック部23は、対象データAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に記憶装置31に格納されているか否かを調べる。
The
具体的には、まず、既に格納されているブロックデータDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAが、関連付けてMFI(Main Fragment Index)ファイルに登録されている。従って、重複チェック部23は、格納前に算出したブロックデータDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のブロックデータDが格納されていると判断できる。
Specifically, first, the block data D that has already been stored has its hash value H and a content address CA representing the storage position associated with each other and registered in an MFI (Main Fragment Index) file. Therefore, when the hash value H of the block data D calculated before storage is present in the MFI file, the
この場合には、格納前のブロックデータDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、記憶要求にかかるブロックデータDのコンテンツアドレスCAとして返却する。 In this case, the content address CA associated with the hash value H in the MFI that matches the hash value H of the block data D before storage is acquired from the MFI file. Then, this content address CA is returned as the content address CA of the block data D relating to the storage request.
これにより、このコンテンツアドレスCAにて参照される既に格納されているデータが、記憶要求されたブロックデータDとして使用されることとなり、当該記憶要求にかかるブロックデータDは記憶する必要がなくなる。 As a result, the already stored data referred to by the content address CA is used as the block data D requested to be stored, and the block data D related to the storage request need not be stored.
フラグメント生成部24は、重複チェック部23にてまだ記憶されていないと判断されたブロックデータDを、圧縮して、複数の所定の容量のフラグメントデータに分割する。例えば、符号D1〜D9にそれぞれ対応する9つのフラグメントデータに分割する。
The
また、フラグメント生成部24は、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータを復元可能なよう冗長データを生成する。フラグメント生成部24は生成した冗長データをフラグメントデータに追加して、ひとつのデータセットを生成する。
In addition, the
例えば、フラグメント生成部24は、9つのフラグメントデータD1〜D9に対して、符号D10〜D12にそれぞれ対応する3つの冗長データを追加して、ひとつのデータセットを生成する。つまり、フラグメント生成部24は、重複チェック部23が未記憶と判断したブロックデータDに相当するデータセットを生成する。以下、フラグメントデータD1〜D9のように、ブロックデータDを圧縮、分割して生成したデータと、冗長データD10〜D12のように、冗長化を実現するために生成したデータの両方を、総称してフラグメントデータと呼ぶことがある。フラグメントデータD1〜D12は同じ容量になるように作成されることが好ましい。
For example, the
更に、フラグメント生成部24は、生成した全てのフラグメントデータD1〜D12に、当該フラグメントデータの元となるブロックデータD、つまり、フラグメントデータD1〜D12から復元されるブロックデータDに付与されたストリームIDを、それぞれ付与する。
Further, the
分散記憶制御部25は、フラグメント生成部24にて生成されたデータセットを構成する各フラグメントデータを、記憶装置31に形成された各記憶領域に、それぞれ分散して格納する。
The distributed
例えば、ストレージシステム10が複数の記憶装置31として12基の記憶装置を設けて、1基毎にデータ格納ファイルFを用意する。このとき、ストレージシステム10は12個のデータ格納ファイルF1〜F12をデータ格納領域として有する。分散記憶制御部25は、これら12個のデータ格納ファイルF1〜F12のそれぞれに、フラグメントデータD1〜D12のひとつを格納する。即ち、分散記憶制御部25は、ある1基の記憶装置31のデータ格納ファイルF1にフラグメントデータD1を格納し、別の1基の記憶装置31のデータ格納ファイルF2にフラグメントデータD2を格納する。同一のデータセットをなす複数のフラグメントデータを、別々の記憶装置のデータ格納ファイルに格納する。
For example, the
また、分散記憶制御部25は、同一データセットのフラグメントデータを別々の記憶装置31に格納する際、各データ格納ファイル内の同じ位置に格納する。
Further, when storing the fragment data of the same data set in
例えば、上述の例のように、ストレージシステム10が12基の記憶装置31を備え、各記憶装置31にデータ格納ファイルF1〜F12があり、あるブロックデータDに対応するデータセットが、12個のフラグメントデータD1〜D12からなるとする。分散記憶制御部25は、データ格納ファイルF1にフラグメントデータD1を格納する際、データ格納ファイルF1の先頭からUビット(Uは自然数)目に格納したとする。このとき、分散記憶制御部25は、データ格納ファイルF2にフラグメントデータD2を格納する際も、データ格納ファイルF2の先頭からUビット目に格納する。他のフラグメントデータD3〜D12の格納についても同様である。
For example, as in the above-described example, the
ストレージシステム10に複数の対象データを同時に格納する場合、分散記憶制御部25は、異なる対象データに由来するデータセットを交互にデータ格納ファイルに格納することがある。例えば、ストレージシステム10が同時期に3つの対象データの入力を受け付けたとする。ストリームID付与部21はこれら3つの対象データに対して、ストリームIDとしてST1、ST2、ST3を順に付与したとする。このとき、データ格納フォルダF1〜F12は例えば図7のようにフラグメントデータを格納する。
When storing a plurality of target data simultaneously in the
図7において、同一の対象データに由来するフラグメントデータには、同一の網掛けが施してある。即ち、ストリームID=ST1のフラグメントデータには、右上から左下に向かう斜線の網掛けが施してある。ストリームID=ST2のフラグメントデータには、格子状の網掛けが施してある。ストリームID=ST3のフラグメントデータには、斜方格子状の網掛けが施してある。 In FIG. 7, fragment data derived from the same target data are given the same shading. In other words, the fragment data of stream ID = ST1 is shaded with diagonal lines from the upper right to the lower left. The fragment data of stream ID = ST2 is given a grid-like shade. The fragment data of stream ID = ST3 is hatched in an oblique lattice pattern.
また、分散記憶制御部25は、各データ格納ファイルF1〜F12に格納する前に、各フラグメントデータD1〜D12をストリームID毎に区別して異なるバッファメモリに一旦格納する。そして、その後、バッファメモリ内のフラグメントデータD1〜D12を各データ格納ファイルF1〜F12に格納する。
Further, the distributed
また、分散記憶制御部25は、上述したように、フラグメントデータをデータ格納ファイルに格納する時のみならず、すでに格納されたフラグメントデータに対しても、同一のストリームIDのフラグメントデータが連続して配置されるよう、事後的に格納位置を変更する機能も有する。例えば、ストレージシステム10自体のリソースが所定値以上空いているときに、各データ格納ファイルF1〜F12に格納されているフラグメントデータを、ストリームIDが同一のものが連続するよう格納位置を移動する。具体的には、各データ格納ファイルF1〜F12の同一の格納位置(横一列)に格納されている全てのフラグメントデータの格納位置を、当該各フラグメントデータにて構成されるデータセット40ごと、変更することができる。これにより、ストリームIDが異なるデータセットが交互に格納された状態から、同一のストリームIDのものが連続する格納状態にすることができる。
In addition, as described above, the distributed
また、分散記憶制御部25は、データセット40を構成する各フラグメントデータD1〜D12に、同一のデータセット40を構成していることを識別するために、同一の識別情報(WriteRecordSeqNum)を付与して、各データ格納ファイルF1〜F12にそれぞれ格納する。そして、分散記憶制御部25は、ストレージシステム10のリソースが空いているときなど任意のタイミングで識別情報を調べる。これにより、同一のデータセット40を構成している各フラグメントデータが、各データ格納ファイルF1〜F12内の同一の格納位置に格納されているか、ということを調べることができる。従って、分散記憶制御部25は、各データ格納ファイルF1〜F12内の同一の格納位置に格納されている各フラグメントデータが、全て同一の識別情報(WriteRecordSeqNum)を含んでいなければ、当該各フラグメントデータが同一の格納位置に格納されるよう当該格納位置を修正して、データを再格納する。
In addition, the distributed
更に、分散記憶制御部25は、現に記憶装置31に格納しているデータの読み出し処理を行う。
Further, the distributed
格納位置管理部26は、上述したように記憶装置31に格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるブロックデータDの格納位置を表す、コンテンツアドレスCAを生成して管理する。具体的には、格納したブロックデータDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAを、ストレージシステム10内のファイルシステムに返却する。すると、ファイルシステムは、対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けて管理する。
As described above, the storage
また、格納位置管理部26は、ブロックデータDのコンテンツアドレスCAと、当該ブロックデータDのハッシュ値Hと、を関連付けて、各ストレージノード10BがMFIファイルにて管理する。このように、コンテンツアドレスCAは、ファイルを特定する情報やハッシュ値Hなどと関連付けられて、格納位置情報記憶部32に格納される。
Further, the storage
さらに、格納位置管理部26は、上述したように格納した対象データを読み出す制御を行う。例えば、ストレージシステム10に対して、特定のファイルを指定して読み出し要求があると、まず、ファイルシステムに基づいて、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、格納位置管理部26は、コンテンツアドレスCAがMFIファイルに登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。
Furthermore, the storage
一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルF1〜F12と、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。 On the other hand, if the content address CA related to the read request is registered, the storage location specified by the content address CA is specified, and each fragment data stored in the specified storage location is read out. As read data. At this time, if the data storage files F1 to F12 in which each fragment is stored and the storage position of one fragment data in the data storage file are known, the storage position of other fragment data is specified from the same storage position. be able to.
そして、格納位置管理部26は、読み出し要求に応じて読み出した各フラグメントデータからブロックデータDを復元する。さらに、格納位置管理部25は、復元したブロックデータDを複数連結し、ファイルAなどの一群のデータに復元して、読み出し元に返却する。
Then, the storage
データ記憶装置30は、複数の記憶装置31、格納位置情報記憶部32、読み出し済み情報記憶部33を備える。
The
記憶装置31は、それぞれ、ストレージシステム10に格納する対象となるデータを格納する記憶装置である。記憶装置31として用いる記憶装置は例えばハードディスクドライブ、SSD (Solid State Drive)である。
Each
格納位置情報記憶部32は、格納したデータの格納位置を記憶する記憶装置である。格納位置情報記憶部32として用いる記憶装置は例えばハードディスクドライブ、SSDである。
The storage position
読み出し済み情報記憶部33は、読み出し処理によるデータの読み出しを中断した位置を示す位置情報である、読み出し済みポインタPOSRを記憶する。また、読み出し済み情報記憶部33は、再格納処理を終了した位置、即ち、次回の再格納処理を開始する位置POSPを記憶する。
The read
次に、ストレージシステム10の動作について説明する。ストレージシステム10は、記憶装置31に格納したデータのうち、読み出し処理が既に終了した位置を示す位置情報を保持する。この位置情報に基づいて、再格納処理を行っていないデータのうち、読み出しを既に行ったデータについては、再格納処理の優先度を下げる。読み出しがまだのデータを優先して再格納処理を行う。再格納処理を行っていない、未ソートのデータについては、例えば、当該データの位置情報を昇順のリストで管理する。
Next, the operation of the
図7を参照して説明する。分散記憶制御部25は記憶装置31の全データを対象とした読み出し処理を開始する(ステップS1)。このような処理の例としては、レプリケーションの際に行うマスタサイトからの読み出し処理がある。この種の読み出し処理では、記憶装置31のある位置までの読み出し処理を終了した後、その終了した位置から読み出し処理を続けて行う。
This will be described with reference to FIG. The distributed
レプリケーションでは、マスタサイト側のファイルに対してデータの書き込みが発生すると、書き込みに伴う差分データをマスタサイトからレプリカサイトに転送する。転送の対象は差分であるため、一度レプリケーションによって読み出しの対象となったデータは、以後は参照されない。このため、マスタサイト側のファイルにおいて読み出し処理の対象となったデータは、以後は読み出し処理の対象にならない。 In replication, when data is written to a file on the master site side, differential data accompanying the writing is transferred from the master site to the replica site. Since the transfer target is a difference, the data once read by replication is not referred to thereafter. For this reason, the data subjected to the read process in the file on the master site side is not subjected to the read process thereafter.
次に、分散記憶制御部25は読み出し処理を終了する(ステップS2)。このときの位置を示すポインタを読み出し済みポインタと呼び、読み出し済みポインタの位置情報をPOSRとする。
Next, the distributed
次に、格納位置管理部26は、読み出し済ポインタ(位置情報)POSRを格納位置情報記憶部32に保持する(ステップS3)。
Next, the storage
次に、格納位置管理部26は、読み出し済みポインタの位置情報POSR、及び、再格納処理の終了/再開位置POSPを、格納位置情報記憶部32から読み出す(ステップS4)。
Next, the storage
次に、格納位置管理部26は、格納位置情報記憶部32から読み出した、位置POSRと位置POSPとを比較する(ステップS5)。
Next, the storage
読み出し処理の進行方向において、位置POSRが位置POSPよりも前方にある場合、即ち、次の読み出し処理を開始する位置POSRが、再格納処理を再開する位置POSPよりも、データ格納フォルダF1〜F12の末尾側にある場合、格納位置管理部26は、格納位置情報記憶部32に格納している再格納処理の終了/再開位置POSPの値を、読み出し済みポインタの位置POSRの値で更新する(ステップS6)。つまり、再格納処理を再開する位置POSPを、次の読み出し処理を開始する位置POSRまで飛ばす。
In the traveling direction of the reading process, when the position POS R is in the forward of the position POS P, i.e., the position POS R to start the next read process than re-storing process for resuming position POS P, data storage folder If it is located at the end of F1 to F12, the storage
このとき、図8に示すように、再格納処理の再開位置POSPを、先行していた読み出し処理の次回開始位置POSRに追いつかせた状態になる。データ格納ファイルF1〜F12において、読み出し処理の次回の開始位置以後に格納されているデータに対する再格納処理を優先して行うことになる。 At this time, as shown in FIG. 8, the restart position POS P of the re-storing process is brought to the state of following the next start position POS R of the preceding reading process. In the data storage files F <b> 1 to F <b> 12, priority is given to the re-storing process for data stored after the next start position of the reading process.
尚、読み出し処理の進行方向において、位置POSPが位置POSRよりも前方にある場合、即ち、次の読み出し処理を開始する位置POSRが、再格納処理を再開する位置POSPよりも、データ格納フォルダF1〜F12の先頭側にある場合は何もしない。 When the position POS P is ahead of the position POS R in the progress direction of the reading process, that is, the position POS R at which the next reading process is started is more data than the position POS P at which the re-storing process is restarted. If it is at the head of the storage folder F1 to F12, nothing is done.
次に、分割記憶制御部25は、格納位置情報記憶部32に格納されている位置POSPから再格納処理を開始する(ステップS7)。
Next, the divided
例えば、ステップS6、S7では、ストレージシステム10がレプリケーションのマスタサイトの記憶装置である場合、レプリケーションジョブの終了時に、レプリケーションジョブは最後に読み出した位置を読み出し済情報記憶部33に通知する。また、レプリケーションジョブは、読み出し済情報を更新したことを格納位置管理部26に通知する。この通知を受けて、格納位置管理部26は、読み出し済情報記憶部33を参照し、再格納処理開始位置が読み出し済情報記憶部33から読み出した位置に設定する。分割記憶制御部25は、再設定を行った位置から再格納処理を開始する。
For example, in steps S6 and S7, when the
本実施形態によれば、コンテンツアドレスストレージシステムの読み出し性能の向上を図ることができる。 According to this embodiment, the read performance of the content address storage system can be improved.
上記の実施形態の一部又は全部は以下の付記のようにも記載されうるが、以下には限られない。 A part or all of the above embodiment can be described as the following supplementary notes, but is not limited thereto.
(付記1)
ひとつの親データを複数に分割して生成したデータを子データと呼ぶとき、互いに異なる親データを分割元とする子データを順番に記憶装置内のファイルに格納する手段、
前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する手段、
前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う手段
を備えるストレージシステム。
(Appendix 1)
When data generated by dividing one parent data into a plurality of pieces is called child data, means for sequentially storing child data having different parent data as a division source in a file in the storage device,
Means for storing, in a storage device, a position at which the reading process was last read from the file in response to execution of the reading process of the file;
A storage system comprising means for performing a sorting process for sorting the child data in the file on the child file stored after the position.
(付記2)
前記ソート処理は、同じ前記親データを分割元とする前記子データが、前記ファイル内において連続するように前記子データをソートする、付記1に記載のストレージシステム。
(Appendix 2)
The storage system according to appendix 1, wherein the sorting process sorts the child data so that the child data having the same parent data as a division source is continuous in the file.
(付記3)
前記子データは、同じ親データを分割して生成した他の子データとの間に互いに順序関係を有し、
前記ソート処理は、同じ前記親データを分割元とする前記子データが前記ファイル内において前記順序関係に従って連続するように行う、
付記1または付記2に記載のストレージシステム。
(Appendix 3)
The child data has an order relationship with other child data generated by dividing the same parent data,
The sorting process is performed so that the child data having the same parent data as a division source is continuous according to the order relation in the file.
The storage system according to appendix 1 or appendix 2.
(付記4)
付記1乃至付記3のいずれかに記載のコンテンツアドレスストレージシステム。
(Appendix 4)
The content address storage system according to any one of appendix 1 to
(付記5)
前記ストレージシステムは、マスタサイトからレプリカサイトへレプリケーションを行う前記マスタサイトが備えるストレージシステムである、付記1乃至付記4のいずれかに記載のストレージシステム。
(Appendix 5)
The storage system according to any one of appendix 1 to appendix 4, wherein the storage system is a storage system included in the master site that performs replication from a master site to a replica site.
(付記6)
ひとつの親データを複数に分割して生成したデータを子データと呼ぶとき、互いに異なる親データを分割元とする子データを順番に記憶装置内のファイルに格納する段階、
前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する段階、
前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う段階
を含む、データソート方法。
(Appendix 6)
When the data generated by dividing one parent data into a plurality of child data is called child data, the step of storing child data having different parent data as a division source in a file in the storage device in order,
In response to execution of the file reading process, storing the position at which the reading process was last read from the file in a storage device;
A data sorting method, comprising: performing a sorting process for sorting the child data in the file on the child file stored after the position.
(付記7)
前記ソート処理は、同じ前記親データを分割元とする前記子データが、前記ファイル内において連続するように前記子データをソートする、付記6に記載の方法。
(Appendix 7)
The method according to
(付記8)
前記子データは、同じ親データを分割して生成した他の子データとの間に互いに順序関係を有し、
前記ソート処理は、同じ前記親データを分割元とする前記子データが前記ファイル内において前記順序関係に従って連続するように行う、
付記6または付記7に記載の方法。
(Appendix 8)
The child data has an order relationship with other child data generated by dividing the same parent data,
The sorting process is performed so that the child data having the same parent data as a division source is continuous according to the order relation in the file.
The method according to
(付記9)
前記ストレージシステムはコンテンツアドレスストレージシステムである、付記6乃至付記8のいずれかに記載の方法。
(Appendix 9)
9. The method according to any one of
(付記10)
前記ストレージシステムは、マスタサイトからレプリカサイトへレプリケーションを行う前記マスタサイトが備えるストレージシステムである、付記6乃至付記9のいずれかに記載の方法。
(Appendix 10)
The method according to any one of
(付記11)
ひとつの親データを複数に分割して生成したデータを子データと呼ぶとき、互いに異なる親データを分割元とする子データを順番に記憶装置内のファイルに格納する手段、
前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する手段、
前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う手段
をコンピュータに実現させるためのプログラム。
(Appendix 11)
When data generated by dividing one parent data into a plurality of pieces is called child data, means for sequentially storing child data having different parent data as a division source in a file in the storage device,
Means for storing, in a storage device, a position at which the reading process was last read from the file in response to execution of the reading process of the file;
A program for causing a computer to realize means for sorting the child data in the file with respect to the child file stored after the position.
(付記12)
前記ソート処理は、同じ前記親データを分割元とする前記子データが、前記ファイル内において連続するように前記子データをソートする、付記11に記載のプログラム。
(Appendix 12)
The program according to claim 11, wherein the sorting process sorts the child data so that the child data having the same parent data as a division source is continuous in the file.
(付記13)
前記子データは、同じ親データを分割して生成した他の子データとの間に互いに順序関係を有し、
前記ソート処理は、同じ前記親データを分割元とする前記子データが前記ファイル内において前記順序関係に従って連続するように行う、
付記11または付記12に記載のプログラム。
(Appendix 13)
The child data has an order relationship with other child data generated by dividing the same parent data,
The sorting process is performed so that the child data having the same parent data as a division source is continuous according to the order relation in the file.
The program according to appendix 11 or appendix 12.
1、10 ストレージシステム
21 ストリームID付与部
22 ブロック生成部
23 重複チェック部
24 フラグメント生成部
25 分散記憶制御部
26 格納位置管理部
30 データ記憶装置
31 記憶装置
32 格納位置情報記憶部
33 読み出し済み情報記憶部
1, 10
Claims (10)
前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する手段、
前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う手段
を備えるストレージシステム。 When data generated by dividing one parent data into a plurality of pieces is called child data, means for sequentially storing child data having different parent data as a division source in a file in the storage device,
Means for storing, in a storage device, a position at which the reading process was last read from the file in response to execution of the reading process of the file;
A storage system comprising means for performing a sorting process for sorting the child data in the file on the child file stored after the position.
前記ソート処理は、同じ前記親データを分割元とする前記子データが前記ファイル内において前記順序関係に従って連続するように行う、
請求項1または請求項2に記載のストレージシステム。 The child data has an order relationship with other child data generated by dividing the same parent data,
The sorting process is performed so that the child data having the same parent data as a division source is continuous according to the order relation in the file.
The storage system according to claim 1 or 2.
前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する段階、
前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う段階
を含む、データソート方法。 When the data generated by dividing one parent data into a plurality of child data is called child data, the step of storing child data having different parent data as a division source in a file in the storage device in order,
In response to execution of the file reading process, storing the position at which the reading process was last read from the file in a storage device;
A data sorting method, comprising: performing a sorting process for sorting the child data in the file on the child file stored after the position.
前記ソート処理は、同じ前記親データを分割元とする前記子データが前記ファイル内において前記順序関係に従って連続するように行う、
請求項6または請求項7に記載の方法。 The child data has an order relationship with other child data generated by dividing the same parent data,
The sorting process is performed so that the child data having the same parent data as a division source is continuous according to the order relation in the file.
8. A method according to claim 6 or claim 7.
前記ファイルの読み出し処理の実行に応じて、当該読み出し処理が前記ファイルから最後に読み出した位置を記憶装置に記憶する手段、
前記ファイル内で前記子データをソートするソート処理を、前記位置以後に格納されている前記子ファイルに対して行う手段
をコンピュータに実現させるためのプログラム。 When data generated by dividing one parent data into a plurality of pieces is called child data, means for sequentially storing child data having different parent data as a division source in a file in the storage device,
Means for storing, in a storage device, a position at which the reading process was last read from the file in response to execution of the reading process of the file;
A program for causing a computer to realize means for sorting the child data in the file with respect to the child file stored after the position.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017071246A JP6853506B2 (en) | 2017-03-31 | 2017-03-31 | Storage system, data sorting method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017071246A JP6853506B2 (en) | 2017-03-31 | 2017-03-31 | Storage system, data sorting method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018173802A true JP2018173802A (en) | 2018-11-08 |
JP6853506B2 JP6853506B2 (en) | 2021-03-31 |
Family
ID=64108645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017071246A Active JP6853506B2 (en) | 2017-03-31 | 2017-03-31 | Storage system, data sorting method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6853506B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857710A (en) * | 2019-01-04 | 2019-06-07 | 平安科技(深圳)有限公司 | File memory method and terminal device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282631A (en) * | 1998-03-27 | 1999-10-15 | Fujitsu Ltd | Input and output control device and method |
JP2001188658A (en) * | 1999-12-28 | 2001-07-10 | Toshiba Corp | Disk control system and data rearranging method |
JP2001285300A (en) * | 2000-03-29 | 2001-10-12 | Canon Inc | Communication method and communication system |
JP2002373098A (en) * | 2001-06-13 | 2002-12-26 | Nec Corp | Backup system |
JP2006268829A (en) * | 2005-03-24 | 2006-10-05 | Hitachi Ltd | Method and apparatus for mirroring object between storage systems |
JP2009145967A (en) * | 2007-12-11 | 2009-07-02 | Hitachi Ltd | Backup apparatus, method, and file reading apparatus |
JP2010176180A (en) * | 2009-01-27 | 2010-08-12 | Nec Corp | Storage system |
-
2017
- 2017-03-31 JP JP2017071246A patent/JP6853506B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11282631A (en) * | 1998-03-27 | 1999-10-15 | Fujitsu Ltd | Input and output control device and method |
US20020002658A1 (en) * | 1998-03-27 | 2002-01-03 | Naoaki Okayasu | Device and method for input/output control of a computer system for efficient prefetching of data based on lists of data read requests for different computers and time between access requests |
JP2001188658A (en) * | 1999-12-28 | 2001-07-10 | Toshiba Corp | Disk control system and data rearranging method |
JP2001285300A (en) * | 2000-03-29 | 2001-10-12 | Canon Inc | Communication method and communication system |
JP2002373098A (en) * | 2001-06-13 | 2002-12-26 | Nec Corp | Backup system |
JP2006268829A (en) * | 2005-03-24 | 2006-10-05 | Hitachi Ltd | Method and apparatus for mirroring object between storage systems |
JP2009145967A (en) * | 2007-12-11 | 2009-07-02 | Hitachi Ltd | Backup apparatus, method, and file reading apparatus |
JP2010176180A (en) * | 2009-01-27 | 2010-08-12 | Nec Corp | Storage system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857710A (en) * | 2019-01-04 | 2019-06-07 | 平安科技(深圳)有限公司 | File memory method and terminal device |
CN109857710B (en) * | 2019-01-04 | 2023-10-27 | 平安科技(深圳)有限公司 | File storage method and terminal equipment |
Also Published As
Publication number | Publication date |
---|---|
JP6853506B2 (en) | 2021-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5413948B2 (en) | Storage system | |
CN110096891B (en) | Object signatures in object libraries | |
JP5637552B2 (en) | Storage system | |
JP6094267B2 (en) | Storage system | |
JP6264666B2 (en) | Data storage method, data storage device, and storage device | |
US8725969B2 (en) | Distributed content storage system supporting different redundancy degrees | |
JP2012022490A (en) | Data processor, data processing method, data processing program and storage device | |
US8683121B2 (en) | Storage system | |
JP5517224B2 (en) | Storage device | |
JP6853506B2 (en) | Storage system, data sorting method and program | |
CN113419897A (en) | File processing method and device, electronic equipment and storage medium thereof | |
US9575679B2 (en) | Storage system in which connected data is divided | |
US10452496B2 (en) | System and method for managing storage transaction requests | |
JP6337982B1 (en) | Storage system | |
US11163642B2 (en) | Methods, devices and computer readable medium for managing a redundant array of independent disks | |
JP2017208113A (en) | Data storage method, data storage apparatus, and storage device | |
JP5342055B1 (en) | Storage device and data backup method | |
CN106250264A (en) | Data reconstruction method and system for distributed storage | |
JP2010191903A (en) | Distributed file system striping class selecting method and distributed file system | |
CN114968671B (en) | Method and device for realizing clone volume | |
JP6197872B2 (en) | Data processing system, data processing method, and data processing program | |
CN114691418B (en) | Information recovery method and device for storage device, electronic device and storage medium | |
JP6794827B2 (en) | Storage management equipment, storage systems, methods and programs | |
JP6819869B2 (en) | Storage device, program, information processing method | |
JP2013058133A (en) | Data writing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210208 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210223 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6853506 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |