JP6343952B2 - Storage system - Google Patents
Storage system Download PDFInfo
- Publication number
- JP6343952B2 JP6343952B2 JP2014025237A JP2014025237A JP6343952B2 JP 6343952 B2 JP6343952 B2 JP 6343952B2 JP 2014025237 A JP2014025237 A JP 2014025237A JP 2014025237 A JP2014025237 A JP 2014025237A JP 6343952 B2 JP6343952 B2 JP 6343952B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- fragment
- index
- search target
- 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.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ストレージシステムにかかり、特に、データを分散して複数の記憶装置に記憶するストレージシステムに関する。 The present invention relates to a storage system, and more particularly to a storage system that distributes data and stores it in a plurality of storage devices.
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。 In recent years, with the development and spread of computers, various types of information have been converted into digital data. As a device for storing such digital data, there are storage devices such as a magnetic tape and a magnetic disk. Since the data to be stored increases day by day and becomes enormous, a large-capacity storage system is required. In addition, reliability is required while reducing the cost of the storage device. In addition to this, it is necessary that data can be easily retrieved later. As a result, there is a demand for a storage system that can automatically increase storage capacity and performance, eliminate duplicate storage, reduce storage costs, and have high redundancy.
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。
In response to such a situation, in recent years, a content address storage system has been developed as shown in
このように、コンテンツアドレスは、データの内容に応じて固有となるよう生成されるため、重複データであれば、同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。つまり、コンテンツアドレスストレージシステムでは、同一内容のデータが記憶されていない場合だけ、新たなデータが記憶されるという重複排除機能を有している。 As described above, since the content address is generated so as to be unique according to the content of the data, if it is duplicated data, the data of the same content can be acquired by referring to the data at the same storage position. . Therefore, it is not necessary to store the duplicate data separately, and duplicate recording can be eliminated and the data capacity can be reduced. That is, the content address storage system has a deduplication function in which new data is stored only when data of the same content is not stored.
また、ストレージシステムでは、所定容量のブロックデータを複数のフラグメントデータに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントデータをそれぞれ複数の記憶装置にそれぞれ格納している。そして、後にコンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているフラグメントデータを読み出し、複数のフラグメントデータから分割前のブロックデータを復元することができる。 Further, in the storage system, a predetermined amount of block data is divided into a plurality of fragment data, and a fragment that becomes redundant data is further added, and the plurality of fragment data are respectively stored in a plurality of storage devices. Then, by designating the content address later, the fragment data stored in the storage location specified by the content address can be read, and the block data before division can be restored from the plurality of fragment data.
このように、ストレージシステムは、冗長データとなるフラグメントデータを付加しているため、付加した冗長データのフラグメント数以下のフラグメントデータが失われた場合でも、元のブロックデータを再生成することができる。 As described above, since the storage system adds fragment data that becomes redundant data, even when fragment data equal to or less than the number of fragments of the added redundant data is lost, the original block data can be regenerated. .
さらに、ストレージシステムでは、複数の記憶装置にフラグメントデータを格納する際に、一度に多くのフラグメントデータが失われないよう、また、所定の記憶装置に負荷が集中しないよう、分散配置機能を有している。ここで、各記憶装置には、それぞれデータ格納用コンテナを有しており、各データ格納用コンテナにそれぞれフラグメントデータを格納して、負荷分散している。 Furthermore, when storing fragment data in multiple storage devices, the storage system has a distributed arrangement function so that a large amount of fragment data is not lost at one time and the load is not concentrated on a predetermined storage device. ing. Here, each storage device has a data storage container, and fragment data is stored in each data storage container to distribute the load.
ここで、上述したようなストレージシステムにおいては、書き込み時に同一のデータが既に記憶装置に格納されているか否かの重複判定を行うこととなるが、大量のデータの中から重複判定を行うことは容易ではない。そこで、データの重複判定の効率化のために、実際のデータを比較するのではなく、データの内容に基づいて算出されたフィンガプリント(ハッシュ値)を比較する方法が使用されている。ハッシュ値は、実データに比べてデータサイズが小さいため、重複判定の高速化が可能となる。そして、データの読み込み時にも同様に、対象となるデータのコンテンツアドレスと既に記憶されているハッシュ値とを比較することで、検索の高速化が可能となる。 Here, in the storage system as described above, it is determined whether or not the same data is already stored in the storage device at the time of writing. It's not easy. Therefore, in order to improve the efficiency of data duplication determination, a method is used in which fingerprints (hash values) calculated based on data contents are compared rather than comparing actual data. Since the hash value has a data size smaller than that of the actual data, it is possible to speed up duplication determination. Similarly, at the time of reading data, it is possible to speed up the search by comparing the content address of the target data with the already stored hash value.
一方で、上述したハッシュ値は、書き込みデータをあるサイズに分割(チャンキング)したブロックデータ単位で計算されるため、データ量の増加に伴って、その数が増加していくことになる。そして、ストレージシステムの多くは、書き込み、および読み込み性能が重要視されるため、重複判定の高速化のために、同一のハッシュ値を効率的に探索する手法が必要となってくる。 On the other hand, since the hash value described above is calculated in units of block data obtained by dividing (chunking) the write data into a certain size, the number increases as the data amount increases. In many storage systems, writing and reading performance is regarded as important, and thus a method for efficiently searching for the same hash value is required to speed up duplication determination.
そこで、ストレージシステムは、重複判定のために、ブロックデータのハッシュ値の一部であるショートハッシュをキーとして、そのハッシュ値に対応したデータにアクセスするための情報をまとめたテーブルであるハッシュテーブルを持つ。ハッシュテーブルを用いた場合には、ショートハッシュをベースに検索されるため、フルハッシュ値を比較する場合と比較して、検索性能を向上させることができる。また、重複判定のみならず、データの読み込みの際にも、読み込み要求のあった該当するブロックデータを検索する際に、ハッシュテーブルが使用される。 Therefore, the storage system uses a short hash that is a part of the hash value of the block data as a key for duplication determination, and a hash table that is a table that summarizes information for accessing data corresponding to the hash value. Have. When a hash table is used, search is performed based on a short hash, so that search performance can be improved as compared with a case where full hash values are compared. In addition to the determination of duplication, a hash table is used when searching for the corresponding block data requested to be read not only when data is read.
ここで、ストレージシステムは、データ格納専用に使用されるシステムのため、第一に、格納データ(データブロックや、そのフルハッシュ値)の信頼性が重要となってくる。そのため、格納データに関しては、信頼性を重視し、ジャーナル機能を持つファイルシステムに保存しているため、障害が発生した後には、ジャーナル情報から故障したデータの復旧が可能となる。 Here, since the storage system is a system used exclusively for data storage, first, the reliability of stored data (data block and its full hash value) becomes important. For this reason, the stored data is stored in a file system having a journal function with an emphasis on reliability. Therefore, after a failure occurs, the failed data can be recovered from the journal information.
一方で、ハッシュテーブルは、上述したようにデータの高速検索を目的としていることと、保存されているデータから再度生成できる情報であることから、重要度が低いデータであり、信頼性よりも性能を重視した構成となっている。つまり、上述した格納データとは異なり、ジャーナル機能を持たない。そのため、電源断などの異常再起動が発生すると、実際に格納されているデータとハッシュテーブル内に格納されているデータとの整合性が保てなくなるが、整合性の回復のために、格納データから再度ハッシュテーブルを構築する処理を行わなければならなくなる。 On the other hand, the hash table is less important data because it is intended for high-speed data retrieval as described above and can be generated again from stored data. It has a configuration that emphasizes. That is, unlike the above-described stored data, it does not have a journal function. Therefore, if an abnormal restart such as a power failure occurs, the data stored in the hash table cannot be consistent with the data stored in the hash table. Therefore, the process of building the hash table again must be performed.
しかしながら、ハッシュテーブルは、読み込み時の格納データの検索の際に最初にアクセスする情報であるために、その破損時や再構築中は、格納データへのアクセスができなくなる、という問題が生じる。そして、この再構築処理は、近年のデータの肥大化によって時間が長くなってきており、格納データにアクセスができない時間が長期化する、という問題も生じる。その結果、ストレージシステムの性能が低下する、という問題が生じる。 However, since the hash table is information that is first accessed when searching for stored data at the time of reading, there arises a problem that access to the stored data becomes impossible when the data is damaged or during reconstruction. This restructuring process has become longer due to the recent enlargement of data, and there is a problem that the time during which stored data cannot be accessed is prolonged. As a result, there arises a problem that the performance of the storage system is degraded.
このため、本発明の目的は、上述した課題である、ストレージシステムの性能が低下する、ということを解決することにある。 Therefore, an object of the present invention is to solve the above-described problem that the performance of the storage system is degraded.
本発明の一形態であるストレージシステムは、
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理手段と、
検索要求データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索要求データを構成する複数のフラグメントデータを検索するデータ検索手段と、を備え、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索手段は、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
という構成をとる。
A storage system according to an aspect of the present invention
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Distributed storage processing means;
Data for searching a plurality of fragment data constituting the search request data stored in the plurality of storage means by searching the summary table and the index data based on the summary data corresponding to the search request data A search means,
The distributed storage processing means stores the index data including write status information indicating a status at the time of writing the fragment data referred to by the index data,
The data search means stores the fragment data further referenced in the index data referenced by the unavailable summary table when at least a part of the summary table is unavailable. Searching the index data corresponding to a storage means different from the storage means, and writing the fragment data constituting the search target data based on the summary data of the search target data and the writing of the fragment data The other fragment constituting the search target data by specifying the status information, searching the index data corresponding to the specific storage means based on the specified write status information and the summary data of the search target data Identify the data,
The configuration is as follows.
本発明の他の形態であるプログラムは、
ストレージシステムの制御装置に、
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理手段と、
検索要求データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索要求データを構成する複数のフラグメントデータを検索するデータ検索手段と、
を実現させると共に、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索手段は、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ことを実現させる、
という構成をとる。
The program which is the other form of this invention is:
In the storage system control unit,
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Distributed storage processing means;
Data for searching a plurality of fragment data constituting the search request data stored in the plurality of storage means by searching the summary table and the index data based on the summary data corresponding to the search request data Search means;
And realize
The distributed storage processing means stores the index data including write status information indicating a status at the time of writing the fragment data referred to by the index data,
The data search means stores the fragment data further referenced in the index data referenced by the unavailable summary table when at least a part of the summary table is unavailable. Searching the index data corresponding to a storage means different from the storage means, and writing the fragment data constituting the search target data based on the summary data of the search target data and the writing of the fragment data The other fragment constituting the search target data by specifying the status information, searching the index data corresponding to the specific storage means based on the specified write status information and the summary data of the search target data Identify the data,
Make it happen,
The configuration is as follows.
本発明の他の形態であるデータ処理方法は、
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理を行い、
検索要求データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索要求データを構成する複数のフラグメントデータを検索するデータ検索処理を行う、データ処理方法であって、
前記分散記憶処理の際に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索処理の際に、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
という構成をとる。
A data processing method according to another aspect of the present invention includes:
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Perform distributed storage processing
Data for searching a plurality of fragment data constituting the search request data stored in the plurality of storage means by searching the summary table and the index data based on the summary data corresponding to the search request data A data processing method for performing search processing,
During the distributed storage process, the index data is stored including write status information indicating a status at the time of writing the fragment data referred to by the index data,
A specification for storing the fragment data further referred to in the index data referred to by the unavailable summary table when at least a part of the summary table is unavailable during the data search process The index data corresponding to the storage means different from the storage means is searched, and a part of the fragment data and the fragment data constituting the search target data based on the summary data of the search target data The write status information is specified, and the index data corresponding to the specific storage means is searched based on the specified write status information and the summary data of the search target data. Identifying the fragment data;
The configuration is as follows.
本発明は、以上のように構成されることにより、ストレージシステムの性能の低下を抑制することができる。 By configuring as described above, the present invention can suppress a decrease in performance of the storage system.
<実施形態1>
本発明の第1の実施形態を、図1乃至図12を参照して説明する。図1は、全体システムの構成を示すブロック図である。図2は、ストレージシステムの構成の概略を示すブロック図であり、図3は、ストレージシステムの構成を示す機能ブロック図である。図4乃至図8は、ストレージシステムに書き込まれるデータや検索時の様子を説明するための説明図である。図9乃至図11は、ストレージシステムの動作を示すフローチャートである。
<
A first embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a block diagram showing the configuration of the entire system. FIG. 2 is a block diagram showing an outline of the configuration of the storage system, and FIG. 3 is a functional block diagram showing the configuration of the storage system. 4 to 8 are explanatory diagrams for explaining data written in the storage system and a state at the time of retrieval. 9 to 11 are flowcharts showing the operation of the storage system.
[構成]
本実施形態は、後述する付記に記載のストレージシステム等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。
[Constitution]
This embodiment shows a specific example of a storage system or the like described in an appendix to be described later. In the following, a case where the storage system is configured by connecting a plurality of server computers will be described. However, the storage system according to the present invention is not limited to being configured by a plurality of computers, and may be configured by a single computer.
図1に示すように、本発明におけるストレージシステム1は、ネットワークNを介してバックアップ処理を制御するバックアップサーバ4に接続している。そして、バックアップサーバ4は、ネットワークNを介して接続されたバックアップ対象装置5に格納されているバックアップ対象データ(記憶対象データ)を取得し、ストレージシステム1に対して記憶するよう要求する。これにより、ストレージシステム1は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。
As shown in FIG. 1, the
ここで、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定されるコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
Here, the
図2に示すように、本実施形態におけるストレージシステム1は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム1は、ストレージシステム1自体における記憶再生動作を制御するサーバコンピュータであるアクセスノード2と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード3と、を備えている。
As shown in FIG. 2, the
上記アクセスノード2は、バックアップサーバ4とのデータの送受信を行い、バックアップサーバ4に対してファイルシステムサービスを提供する。そして、実際にバックアップ対象データのディスクへの格納は、ストレージノード3が行う。なお、図2では、2つのアクセスノード2と4つのストレージノード3を図示しているが、アクセスノード2の数とストレージノード3の数は、図2に示したものに限定されない。
The
図3に、本実施形態におけるストレージシステム1の構成を示す。この図に示すように、ストレージシステム1を構成するアクセスノード2は、装備された演算装置にプログラムが組み込まれることで構築された、I/O処理部21、データ送受信部22、重複判定部23、を備えている。また、ストレージノード3は、装備された演算装置にプログラムが組み込まれることで構築された、フラグメント処理部31、フラグメント探索部32、タイムスタンプ取得部33、ノード状態監視部34、を備える。そして、ストレージノード3は、装備された記憶装置35に、ハッシュテーブル36、インデックスファイル37、格納ファイル38を記憶する。
FIG. 3 shows the configuration of the
なお、上述した各部は、アクセスノード2あるいはストレージノード3のどちらに装備されていてもよい。つまり、上述した各部は、ストレージシステムに装備された制御装置に構築されていればよい。以下、各構成について詳述する。
Each unit described above may be provided in either the
アクセスノード2のI/O処理部21は、内部ネットワーク経由でバックアップサーバ4とバックアップデータの送信および受信を行う機能を有する。
The I /
アクセスノード2のデータ送受信部22(分散記憶処理手段)は、重複判定部23やストレージノード3の各部31等と協働して、バックアップサーバ4から書き込み要求されたデータを、コンテンツアドレスを利用して、ストレージノード3に分散すると共に、重複排除を行って記憶する機能を有する。
The data transmission / reception unit 22 (distributed storage processing means) of the
具体的に、データ送受信部22は、図4に示すように、まずバックアップサーバ4から書き込み要求されたファイルAを、所定容量(例えば、64KB)のブロックデータD(書き込み対象データ)に分割する。続いて、分割されたブロックデータDのデータ内容に基づいて、当該データ内容に基づく要約データであるハッシュ値Hを算出する。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、ブロックデータDのデータ内容から算出する。なお、本実施形態では、要約データとしてハッシュ値Hを挙げているが、要約データは、ブロックデータの内容に基づいていかなる方法で算出されてもよい。
Specifically, as shown in FIG. 4, the data transmitting / receiving
ここで、重複判定部23は、ファイルAのブロックデータDのハッシュ値Hを用いて、当該ブロックデータDが既に格納されているか否かを調べる。なお、重複判定処理については後述する。
Here, the
そして、データ送受信部22は、重複判定部23による重複判定の結果、既にブロックデータDがストレージノード3に格納されていると判定された場合には、既に記憶されているブロックデータDの記憶位置を表すコンテンツアドレスを、書き込み要求されたブロックデータのコンテンツアドレスとして用いる。つまり、重複している場合には、実際に書き込みを行うことなく、既に記憶されているブロックデータDの記憶位置を参照することとし、書き込み完了とする。
When the data transmission /
一方、データ送受信部22は、重複判定部23による重複判定の結果、書き込み要求にかかるブロックデータDが重複しておらず、まだ記憶されていないと判断された場合には、以下のようにしてブロックデータDの書き込みを行う。データ送受信部22は、ブロックデータDを複数の所定の容量のフラグメントデータに分割する。例えば、図4の符号D1〜D9に示すように、ブロックデータDを9つのフラグメントデータ(分割データF1)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータDを復元可能なよう冗長データを生成し、上記分割したフラグメントデータF1に追加する。例えば、図4の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データF2)を追加する。これにより、9つの分割データF1と、3つの冗長データF2とにより構成される12個のフラグメントデータからなるデータセットを生成する。なお、冗長データであるフラグメントデータの数は、設定により変化させることができる。
On the other hand, if the data transmission /
そして、データ送受信部22は、生成した複数のフラグメントデータからなるデータセットを各ストレージノード3に分散記憶するよう送信する。
Then, the data transmitting / receiving
ストレージノード3のフラグメント処理部31(分散記憶処理手段)は、アクセスノード2から送られてきたフラグメントデータをディスクに格納する。このとき、フラグメント処理部31は、複数のストレージノード3にまたがって形成された仮想ノードV01,V02・・・に設けられた複数のデータ格納用コンテナに分散して格納する。
The fragment processing unit 31 (distributed storage processing means) of the
ここで、仮想ノードV01,V02・・・について、図5を参照して説明する。図5の例では、仮想ノードV01は、複数のストレージノード3をまたがって、各ストレージノード3内に形成されたデータ格納領域となる12個のデータ格納用コンテナ(符号01〜12)で形成されている。ここでは、4つの仮想ノードV01,V02,V10,V11が形成されていることとする。
Here, the virtual nodes V01, V02... Will be described with reference to FIG. In the example of FIG. 5, the virtual node V01 is formed by twelve data storage containers (
そして、ブロックデータDから生成された12個のフラグメントデータがどの仮想ノードに格納されるかは、ブロックデータDのハッシュ値の先頭から既定のビット数を確認することで決定される。図5の例では、仮想ノードが4つであるため、ブロックデータのハッシュ値の先頭2ビットの値に基づいて格納場所を決定する。例えば、ハッシュ値が、「00001111...」である場合には、先頭2ビット「00」から、「V00」の仮想ノードに格納することが決定される。このとき、図4に示すように、12個のデータ格納用コンテナ(01〜12)に、それぞれ1つのフラグメントデータを格納する。 Then, which virtual node stores the 12 fragment data generated from the block data D is determined by confirming a predetermined number of bits from the head of the hash value of the block data D. In the example of FIG. 5, since there are four virtual nodes, the storage location is determined based on the value of the first 2 bits of the hash value of the block data. For example, when the hash value is “00001111...”, It is determined to store the first two bits “00” in the virtual node “V00”. At this time, as shown in FIG. 4, one piece of fragment data is stored in each of the 12 data storage containers (01 to 12).
そして、フラグメント処理部31は、上述したようにフラグメントデータを分散記憶する際には、以下のようにしてデータを管理する。まず、図6に示すように、データ格納用コンテナV00,V01は、フラグメントデータを格納する格納ファイル38と、当該フラグメントデータに関するフルハッシュ値などのメタデータを保存するインデックスファイル37と、を持つ。フラグメント処理部31は、送られてきたフラグメントデータを、格納ファイル38に追記的に保存する。格納ファイル38は、ファイルIDが1から昇順の番号で作成され、フラグメントデータがある一定の数だけ格納されると、ファイルIDの値を上げて、次の格納ファイルに書き出す。具体的に、格納ファイル38には、図7(C)に示すように、格納ファイル内の所定の格納位置を表す各オフセットの位置に、フラグメントデータ自体が格納される。
The
また、フラグメント処理部31は、格納ファイル38にフラグメントデータを書き終えると、続いて、フラグメントデータ毎のメタデータであるインデックスデータをエントリとして、インデックスファイルに追記的に格納する。図7(B)にインデックスファイルの一例を示す。このように、インデックスファイル37には、当該インデックスファイルの格納位置であるオフセット毎に、格納ファイル38に格納したフラグメントデータに対応するメタデータであるインデックスデータが格納される。各インデックスデータは、格納ファイル38に格納したフラグメントデータの元となるブロックデータDのフルハッシュ値、当該フラグメントデータへのポインタ(参照情報)を表す格納ファイルID及びそのオフセット、当該フラグメントデータが書き込まれた時刻に基づくタイムスタンプ(書き込み時刻情報)、を含む。
Further, when the
なお、上記インデックスファイル37は、当該インデックスファイル37に含まれる各インデックスデータにて参照されるフラグメントデータが記憶されたストレージノード3毎に、当該ストレージノード3内に記憶される。つまり、インデックスファイル37は、あるストレージノード3にフラグメントデータが記憶されると、そのフラグメントデータに対応するインデックスデータを、同一のストレージノード3に形成されたインデックスファイル37内に格納する。このとき、インデックスデータを、インデックスファイル37の格納領域に順番に追記する。
The
さらに、フラグメント処理部31は、ハッシュテーブル36(要約テーブル)に、格納ファイル38に格納したフラグメントデータ毎のエントリを、当該フラグメントデータに対応するインデックスデータを参照する情報とショートハッシュ値とを関連付けて格納する。図7(A)に、ハッシュテーブル36の一例を示す。ハッシュテーブル36の各エントリには、格納ファイル38に格納されたフラグメントデータの元となるブロックデータDのショートハッシュ値と、当該フラグメントデータを参照するインデックスデータへのポインタ(参照情報)を表すインデックスファイルID及びそのオフセットと、を格納している。なお、上記ショートハッシュ(部分要約データ)は、フラグメントデータの元となるブロックデータDのフルハッシュ値(例えば、20 bytes)の一部(例えば、先頭から8 bytes)の値である。
Further, the
なお、上記ハッシュテーブル36は、当該ハッシュテーブル36にて参照されるインデックスファイルつまり各インデックスデータに対応するフラグメントデータが記憶されたストレージノード3毎に、当該ストレージノード3内に記憶される。つまり、あるストレージノード3にフラグメントデータが記憶されると、そのフラグメントデータを参照するインデックスデータが含まれるインデックスファイルの参照情報とショートハッシュ値とのエントリを、同一のストレージノード3に形成されたハッシュテーブル36に格納する。このとき、各エントリを、ハッシュテーブル36の格納領域に順番に追記する。
The hash table 36 is stored in the
そして、フラグメント処理部31は、ブロックデータDの格納位置として、当該ブロックデータDのハッシュ値をデータ送受信部22に返す。すると、データ送受信部22は、ブロックデータDの識別情報とハッシュ値とを関連付けて管理する。これにより、後述するように、ブロックデータDの読み込み要求が有ったときに、ハッシュ値からその格納位置を検索することができる。
Then, the
ここで、上述したデータ送受信部22からの、ブロックデータDから生成された複数のフラグメントデータのフラグメント処理部31への書き込みの指示は、同一のタイミングで行われる。このため、各ストレージノード3の各フラグメント処理部31での書き込みもほぼ同一のタイミングで行われることとなる。すると、1つのブロックデータDから生成された複数のフラグメントデータの各ストレージノード3への書き込みは、ほぼ同一時刻で行われることとなる。その結果、これらフラグメントデータを参照する各インデックスデータに含まれるタイムスタンプの値も、同一あるいは近似した値となる。また、インデックスファイル37には、当該インデックスファイル37の格納領域に順番に追記して各インデックスデータが格納されるため、当該各インデックスデータは、書き込まれた順つまりタイムスタンプ順に並んで格納されることとなる。
Here, an instruction to write the plurality of fragment data generated from the block data D to the
また、インデックスファイル37に格納される各インデックスデータに含まれる「フルハッシュ値」は、当該各インデックスデータにて参照されるフラグメントデータの元となる分割される前のブロックデータDのハッシュ値である。そのため、12個のフラグメントデータの各インデックスデータに含まれるフルハッシュ値は、各フラグメントデータを格納した全てのストレージノード3の各インデックスファイル37内で同一となる。この性質を用いることで、後述するように、1つのブロックデータDから生成されたフラグメントデータを格納するどれかひとつのストレージノード3のインデックスファイルにアクセスできる場合、このフラグメントデータが書き込まれたタイムスタンプを取得することができる。そして、そのタイムスタンプに基づいて、残りのフラグメントデータも容易に検索することができる。
In addition, the “full hash value” included in each index data stored in the
以上のようにブロックデータDを格納することで、データ送受信部22及びフラグメント処理部31(分散記憶処理手段、データ検索手段)は、バックアップサーバ4からデータの読み込み要求が有った場合や重複判定時に、図8に示すようにして格納されているブロックデータDのコンテンツアドレスとなるハッシュ値やフラグメントデータにアクセスすることができる。
By storing the block data D as described above, the data transmitting / receiving
まず、検索対象となるブロックデータDのハッシュ値を確認し、そのショートハッシュ値から自ノード3に記憶されたハッシュテーブル36内を検索して、対象となるインデックスファイルIDとオフセットを取得する(矢印Y1参照)。続いて、取得した情報からインデックスファイル37にアクセスして、検索対象となるデータのフルハッシュ値と同一のフルハッシュ値が含まれるインデックスデータを探索する(矢印Y2参照)。これにより、検索対象となるブロックデータDと同一のフルハッシュ値が存在するか否かといった重複判定を行うことができる。そしてさらに、探索によって見つかったインデックスデータから格納ファイル38にアクセスして、検索対象のフラグメントデータを読み込むことができる(矢印Y3参照)。そして、各ストレージノード3から読み込まれたフラグメントデータを結合することで、検索対象となるブロックデータDを生成し、そのブロックデータDを返却することで、データの読み込みを行うことができる。
First, the hash value of the block data D to be searched is confirmed, the hash table 36 stored in the
なお、ストレージノード3は、自己であるストレージノード3のハッシュテーブル36が使用できない場合には、フラグメント探索部32及びタイムスタンプ取得部33(データ検索手段)にて、以下のようにして格納されているブロックデータDを構成するフラグメントデータにアクセスする。
If the hash table 36 of the
フラグメント探索部32は、タイムスタンプ取得部33を用いて、自己ではない別のストレージノード3に記憶されている検索対象となるブロックデータDの一部を構成するフラグメントデータのタイムスタンプを取得する。そして、フラグメント探索部32は、取得したタイムスタンプに基づいて、自己であるストレージノード3(特定のストレージノード)に記憶されているインデックスファイル37内のタイムスタンプから、近い時刻に書き込まれたフラグメントデータのリストを取得する。
The
タイムスタンプ取得部33は、フラグメント探索部32からの要求を受けて、検索対象となるブロックデータDのフラグメントデータを記憶する別のストレージノード3のハッシュテーブル36にリモートアクセスする。そして、別のストレージノード3のハッシュテーブル36を参照して、検索対象となるブロックデータDのハッシュ値を基に、別のストレージノード3に記憶されているインデックスファイル37内のインデックスデータを特定する。これにより、特定したインデックスデータに対応するフラグメントデータが書き込まれたタイムスタンプを取得する。そして、取得したタイムスタンプを、フラグメント探索部32に返す。
In response to the request from the
ノード状態監視部34は、正常に動作しているストレージノード3のリストを取得する機能を持つ。正常なストレージノード3とは、ストレージサービスとしての機能が動作していて、かつ、ハッシュテーブル36などのデータにアクセスすることができるノードである。
The node
なお、上述したフラグメント探索部32、タイムスタンプ取得部33、ノード状態監視部34の機能については、以下の動作説明の際に詳述する。
The functions of the
[動作]
次に、上述した構成のストレージシステムの動作、特に、データ書き込み処理、データ読み込み処理、ハッシュテーブル再構築中のデータ読み込み処理の動作を、主に図9乃至図11のフローチャートを参照して説明する。
[Operation]
Next, operations of the storage system having the above-described configuration, in particular, data write processing, data read processing, and data read processing during hash table reconstruction will be described with reference mainly to the flowcharts of FIGS. .
(書き込み処理)
まず、図9を参照して、データ書き込み処理を説明する。バックアップサーバ4からの書き込み要求をアクセスノード2が受け取ると(ステップS1)、書き込み対象となるストリームデータは、あるサイズのブロックデータDに分割される(ステップS2)。このブロックデータDに対して、ハッシュ関数を用いてハッシュ値を算出して取得する。求められたハッシュ値を入力として、重複判定が行われる(ステップS3)。ここで、重複判定処理を、図8を参照して説明する。
(Write process)
First, the data writing process will be described with reference to FIG. When the
上述したように算出したブロックデータDのハッシュ値を基にして、任意のストレージノード3のハッシュテーブル36にアクセスする。そして、ハッシュテーブル36からハッシュ値のショートハッシュ値を検索して、同一のショートハッシュ値を持つエントリ(インデックスデータ)が存在するかを確認する(矢印Y1参照)。この時に、エントリが見つからない場合は、記憶対象となるブロックデータDと同一内容のデータは、ストレージノード3には書き込まれておらず、「非重複」となる。エントリが見つかった場合は、そのショートハッシュ値に対応するインデックスファイルIDとオフセットを取得する。なお、ハッシュテーブル36ではショートハッシュ値のみで比較するため、複数のエントリが見つかる可能性がある。
Based on the hash value of the block data D calculated as described above, the hash table 36 of an
続いて、見つかったハッシュテーブル36のエントリの情報からインデックスファイル37にアクセスして、当該インデックスファイル37内のフルハッシュ値と算出したブロックデータDのフルハッシュ値と比較する(矢印Y2)。ここでフルハッシュ値が同一のエントリが見つかった場合は、書き込み対象となるブロックデータDと同一内容のデータが既にストレージノード3に書き込まれていると判断でき、「重複」となる。一方、同一のエントリが見つからなかった場合は、「非重複」となる。
Subsequently, the
上述した重複判定にて、「重複」となった場合は(ステップS3:Yes)、書き込み完了を返却する(ステップS8)。「非重複」の場合は(ステップS3:No)、ブロックデータDをフラグメントデータに分割して、各ストレージノード3に分散させる(ステップS4)。以下、各ストレージノード3にて破線Aで囲まれた処理が行われ、フラグメントデータが格納される。
In the duplication determination described above, when “duplication” is obtained (step S3: Yes), writing completion is returned (step S8). In the case of “non-overlapping” (step S3: No), the block data D is divided into fragment data and distributed to each storage node 3 (step S4). Thereafter, the processing surrounded by the broken line A is performed in each
ストレージノード3では、受け取ったフラグメントデータを、図4に示すように各データ格納用コンテナに保存する。データ格納用コンテナは、各仮想ノード(図5のV00等)に12個ずつ存在している(符号01−12)。ここでは、受け取ったハッシュ値の先頭2ビットを確認して、どの仮想ノードにデータを割り振るかを決定する。例えば、ハッシュ値が「1010101111...」の場合は、仮想ノードV10が、その12個のフラグメントデータを格納する。各データ格納用コンテナには、それぞれ1個のフラグメントデータが格納される。
The
フラグメントデータは、図6に示すように各データ格納用コンテナが持つ格納ファイル38に、図7(C)のように保存される(ステップS5)。格納ファイル38は、ファイルIDが1から昇順の番号で作成され、フラグメントデータがある一定の数溜まった場合に、次のファイルに書き出す。
As shown in FIG. 6, the fragment data is stored in the
格納ファイル38にフラグメントデータが保存された後は、当該フラグメントデータのインデックスデータを各エントリとして、インデックスファイル37に追記する。このとき、インデックスデータとして、フラグメントデータへのポインタである参照情報(格納ファイルID、オフセット)、フラグメントデータの元となるブロックデータDのフルハッシュ値、フラグメントデータが書き込まれたタイムスタンプを、図7(B)のように記憶する(ステップS6)。
After the fragment data is stored in the
最後に、ハッシュテーブル36に、書き込んだフラグメントデータに対応するインデックスデータを参照するエントリを書き込む。具体的には、各エントリとして、フラグメントデータの元となるブロックデータDのショートハッシュ値、当該フラグメントデータを参照するインデックスデータへのポインタ(インデックスファイルID、オフセット)を、図7(A)のように記憶する(ステップS7)。そして、記憶した各ブロックデータDとハッシュ値とを関連付けて管理して、書き込み完了となる(ステップS8)。 Finally, an entry that refers to the index data corresponding to the written fragment data is written in the hash table 36. Specifically, as each entry, the short hash value of the block data D that is the source of the fragment data and the pointer (index file ID, offset) to the index data that refers to the fragment data are as shown in FIG. (Step S7). Then, the stored block data D and the hash value are managed in association with each other, and the writing is completed (step S8).
(読み込み処理)
次に、図10を参照して、データ読み込み処理を説明する。バックアップサーバ4からの読み込み要求をアクセスノード2が受け取ると(ステップS11)、管理している情報から、読み込み対象となるブロックデータDのハッシュ値を確認する(ステップS12)。そして、アクセスノード2は、読み込み対象となるブロックデータDのハッシュ値を、全てのストレージノード3に分散させる(ステップS13)。
(Reading process)
Next, the data reading process will be described with reference to FIG. When the
続いて、各ストレージノード3は、それぞれ破線Bで囲まれた処理を行い、フラグメントデータの読み込みを行う。まず、受け取ったハッシュ値のショートハッシュ値を用いて図7(C)に示すようなハッシュテーブル36内を検索して(図8の矢印Y1参照)、対象となるインデックスファイルIDとオフセットを取得する(ステップS14)。そして、ストレージノード3は、取得した情報から、図7(B)に示すようなインデックスファイル37にアクセスして、対象となるデータのフルハッシュ値と同一になるエントリであるインデックスデータを探索する(ステップS15)(図8の矢印Y2参照)。探索によって見つかったインデックスファイル37のエントリであるインデックスデータから、図7(A)に示すような格納ファイル38にアクセスして(図8の矢印Y3参照)、対象のフラグメントデータを読み込む(ステップS16)。
Subsequently, each
その後、ストレージノード3あるいはアクセスノード2は、各ストレージノード3から読み込まれたフラグメントデータを結合して、読み込み対象となるブロックデータDを生成し(ステップ17)、そのブロックデータDを返却する(ステップS18)。
Thereafter, the
(ハッシュテーブル再構築中の読み込み処理)
次に、図11を参照して、ハッシュテーブル再構築中におけるデータ読み込み処理を説明する。バックアップサーバ4からの読み込み要求をアクセスノード2が受け取ると(ステップS21)、管理している情報から、読み込み対象となるブロックデータDのハッシュ値を確認する(ステップS22)。そして、アクセスノード2は、読み込み対象となるブロックデータDのハッシュ値を、全てのストレージノード3に分散させる(ステップS23)。
(Read processing during hash table reconstruction)
Next, with reference to FIG. 11, data reading processing during hash table reconstruction will be described. When the
続いて、各ストレージノード3は、それぞれ破線Cで囲まれた処理を行い、フラグメントデータの読み込みを行う。ここで、ストレージノード3は、自己であるストレージノード3に記憶されているハッシュテーブル36が正常か否かを調べ(ステップS24)、ハッシュテーブル36が正常である場合には(ステップS24:No)、上述した図10に示すような通常の読み込み処理を実行する(ステップS25)。一方、ストレージノード3は、自己であるストレージノード3に記憶されているハッシュテーブル36が再構築中の場合は(ステップS24:Yes)、次のような方法で読み込み対象のフラグメントデータを読み込む。なお、以下では、ハッシュテーブル36が再構築中であるストレージノード3を特定のストレージノード3と記し、その他のストレージノード3を別のストレージノード3と記す。
Subsequently, each
はじめに、特定のストレージノード3は、ノード状態監視部34を用いて、正常なストレージノード3のリストを取得する(ステップS26)。正常なノードとは、ストレージサービスとしての機能が動作しており、ハッシュテーブル36などのデータにアクセスできるノードである。正常なノードのリストから、同一のブロックデータDから生成されたフラグメントデータが格納されているストレージノード3を探索する。
First, the
具体的に、特定のストレージノード3による目的となるフラグメントデータが格納されている別のストレージノード3の探索は、データ格納時におけるフラグメントデータの振り分け規則を用いることができる。ここで、フラグメントデータは、ブロックデータDのハッシュ値の先頭2ビットを用いて格納される仮想ノードが決定し、各仮想ノードは、フラグメントデータが格納されたデータ格納用コンテナの位置情報を持っている。このため、特定のストレージノード3は、目的となるフラグメントデータにて構成されるブロックデータDのハッシュ値から、当該フラグメントデータを持つ別のストレージノード3を特定する。
Specifically, a search for another
続いて、特定のストレージノード3は、目的のフラグメントデータを持つ別のストレージノード3に記憶されているハッシュテーブル36に、ブロックデータDのショートハッシュ値をキーとしてアクセスする。そして、特定のストレージノード3は、別のストレージノード3のハッシュテーブル36から、目的のフラグメントデータのメタデータであり、当該別のストレージノード3に記憶されているインデックスデータにアクセスするための情報(インデックスファイルIDとオフセット)を取得する(ステップS27)。そして、特定のストレージノード3は、別のストレージノード3から取得したインデックスデータから、ブロックデータDのフルハッシュ値をキーとして、目的となるフラグメントデータのインデックスデータを特定する。これにより、特定のストレージノード3は、別のストレージノード3に記憶されている、読み込み対象のフラグメントデータが書き込まれた時刻を表すタイムスタンプを取得する(ステップS28)。
Subsequently, the
続いて、特定のストレージノード3は、別のストレージノード3から取得したタイムスタンプを基にして、自己である特定のストレージノード3に記憶されているインデックスファイル37を参照して、タイムスタンプの値が近いエントリであるインデックスデータを検索する(ステップS29)。このとき、インデックスファイル37内から検索するインデックスデータは、別のストレージノード3から取得したタイムスタンプの前後1分程度の範囲にあるタイムスタンプを有するインデックスデータとする。ここで、規則のないストレージの場合、タイムスタンプを基に全てのエントリを探索することは非効率であるが、本実施形態におけるストレージシステムの場合、インデックスファイルは実質として追記型のデータ構造を持っている。このため、インデックスファイル内のインデックスデータは、タイムスタンプ順に並んでいるため、タイムスタンプの値が近いインデックスデータの検索が容易となる。
Subsequently, the
続いて、特定のストレージノード3は、タイムスタンプから検索されたインデックスファイル内のエントリのフルハッシュ値を順に比較して、ハッシュ値が同一となるインデックスデータを探索する(ステップS30)。ここで、対象のエントリが見つからなかった場合は、読み込みエラーとして上位に返却する。対象のエントリが見つかった場合は、当該エントリであるインデックスデータにて参照される格納ファイル38からフラグメントデータを読み込む(ステップS31)。その後、特定のストレージノード3あるいはアクセスノード2は、各ストレージノード3から読み込まれたフラグメントデータを結合して、読み込み対象となるブロックデータDを生成して(ステップS32)、そのブロックデータDを返却する(ステップS33)。
Subsequently, the
以上のように、本発明におけるストレージシステムでは、高速検索のために設けているハッシュテーブルが障害となり復旧処理をしている最中でも、読み込み性能が低下することを抑制して、動作を継続することができる。その理由を以下に説明する。 As described above, in the storage system according to the present invention, even when the hash table provided for high-speed search becomes a failure and recovery processing is in progress, it is possible to suppress the decrease in reading performance and continue the operation. Can do. The reason will be described below.
まず、本発明のストレージシステムでは、フラグメントデータを保存する格納ファイル、フラグメントデータのメタデータを保存するインデックスファイルは、全てのストレージノードで実質的に追記型のデータ構造を持っている。このため、各ファイル内のデータは、タイムスタンプ順に並ぶこととなる。従って、ハッシュテーブル再構築中の場合に、ハッシュテーブルから格納データの情報を取得できなくても、そのフラグメントデータが書かれた時間(タイムスタンプ)がおおよそわかれば、どのファイルにフラグメントデータが格納されているかは、容易に推測することができる。 First, in the storage system of the present invention, the storage file for storing fragment data and the index file for storing fragment data metadata have substantially a write-once data structure in all storage nodes. For this reason, the data in each file is arranged in the order of the time stamp. Therefore, if the stored data information cannot be obtained from the hash table when the hash table is being reconstructed, the fragment data is stored in which file as long as the time (time stamp) at which the fragment data is written is known. It can be easily guessed.
また、本発明では、目的のブロックデータから生成された各フラグメントデータは、すぐに各ノードに分散格納されるため、これらのデータは近い時間帯に書き込まれる可能性が極めて高く、全てのフラグメントデータが持つタイムスタンプも近い値を持つ。そのため、他のフラグメントデータが書かれたタイムスタンプを取得することで、自ノードのフラグメントデータが書かれた時間が推測可能となる。 In the present invention, since each fragment data generated from the target block data is immediately distributed and stored in each node, it is highly likely that these data will be written in a close time zone, and all fragment data Also has a similar time stamp. Therefore, by acquiring a time stamp in which other fragment data is written, it is possible to estimate the time in which the fragment data of the own node is written.
そして、ハッシュテーブル再構築中には、当該ハッシュテーブルを用いず、他のフラグメントデータが書かれたタイムスタンプのみを用いて自ノードの中から絞り込んでいる。このとき、上述したようにタイムスタンプ順にメタデータ等が並ぶ性質を持っているため、データを極めて精度高く絞り込むことができ、フラグメントデータの格納場所を高速に検索することができる。 During reconstruction of the hash table, the hash table is not used, and only the time stamps in which other fragment data are written are used to narrow down from the own node. At this time, as described above, since the metadata and the like are arranged in the order of the time stamp, the data can be narrowed down with extremely high accuracy, and the storage location of the fragment data can be searched at high speed.
ここで、上記では、まず、別のストレージノード3のハッシュテーブル36を探索して、フラグメントデータのタイムスタンプを取得する場合を例示したが、かかる方法によりタイムスタンプを取得することに限定されない。例えば、読み込み対象となるブロックデータDのフルハッシュ値から、別のストレージノード3に記憶されているインデックスデータを探索して、当該フルハッシュ値を含むインデックスデータを取得してタイムスタンプを特定してもよい。
Here, the case where the hash table 36 of another
また、上述したインデックスデータには、参照するフラグメントデータを記憶した時刻を表すタイムスタンプを含めて記憶したが、タイムスタンプに替えて他のデータを記憶してもよい。例えば、同一のブロックデータDから生成されたフラグメントデータが同一のタイミングで書き込まれたことを表すような値からなるタイミング情報を、上記タイムスタンプに替えてインデックスデータ内に記憶してもよい。このとき、タイミング情報は、他のタイミングと区別できるような情報である。なお、上記タイムスタンプに替える情報としては、同一のブロックデータDから生成されたフラグメントデータの書き込み時の状況を、他のブロックデータの書き込み時の状況とは区別できる情報(書き込み状況情報)であれば、いかなる情報であってもよい。 Further, although the index data described above includes a time stamp indicating the time when the fragment data to be referenced is stored, other data may be stored instead of the time stamp. For example, timing information including a value indicating that fragment data generated from the same block data D is written at the same timing may be stored in the index data instead of the time stamp. At this time, the timing information is information that can be distinguished from other timings. Note that the information to be replaced with the time stamp may be information (write status information) that can distinguish the status at the time of writing fragment data generated from the same block data D from the status at the time of writing other block data. Any information may be used.
また、上記では、インデックスファイル37及びハッシュテーブル36を、参照するフラグメントデータが格納されたストレージノードに格納する場合を例示したが、本発明は、かかる構成に限定されない。例えば、インデックスファイル37やハッシュテーブル36は、いかなる記憶装置に記憶されていてもよい。但し、各インデックスファイルやハッシュテーブル36は、参照するフラグメントデータが格納されたストレージノード毎に区別されて記憶されているとよい。
Moreover, although the case where the
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム100(図12参照)、プログラム、データ処理方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
<Appendix>
Part or all of the above-described embodiment can be described as in the following supplementary notes. The outline of the configuration of the storage system 100 (see FIG. 12), the program, and the data processing method in the present invention will be described below. However, the present invention is not limited to the following configuration.
(付記1)
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段120にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理手段111と、
検索要求データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索要求データを構成する複数のフラグメントデータを検索するデータ検索手段112と、を備え、
前記分散記憶処理手段111は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索手段112は、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム100。
(Appendix 1)
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in the plurality of
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Distributed storage processing means 111;
Data for searching a plurality of fragment data constituting the search request data stored in the plurality of storage means by searching the summary table and the index data based on the summary data corresponding to the search request data Search means 112,
The distributed
The data search means 112 stores the fragment data further referenced in the index data referenced by the unavailable summary table when at least a part of the summary table is unavailable. Searching the index data corresponding to a storage means different from the storage means, and a part of the fragment data constituting the search target data based on the summary data of the search target data and the fragment data The write status information is specified, and the index data corresponding to the specific storage means is searched based on the specified write status information and the summary data of the search target data, and the other search data constituting the search target data Identify fragment data,
上記発明のストレージシステムによると、まず、データの書き込みの際には、記憶対象データから複数のフラグメントデータを生成し、これらを複数の記憶手段に分散記憶する。このとき、フラグメントデータを参照する情報と、フラグメントデータの書き込み状況情報と、記憶対象データの要約データと、を関連付けたインデックスデータを、記憶手段毎に区別して記憶する。さらに、インデックスデータを参照する情報と、記憶対象データの要約データの一部からなる部分要約データと、を関連付けた要約テーブルも記憶する。 According to the storage system of the present invention, first, when writing data, a plurality of fragment data is generated from the storage target data, and these are distributed and stored in a plurality of storage means. At this time, the index data in which the information for referring to the fragment data, the writing status information of the fragment data, and the summary data of the storage target data are associated with each other are stored for each storage unit. Furthermore, a summary table in which information that refers to the index data and partial summary data that is a part of the summary data of the storage target data is associated is also stored.
また、ストレージシステムは、データの読み込み時に、対象となるデータ(検索対象データ)が既に記憶されているか否かの検索を行う。このとき、まず、検索対象データの要約データの一部である部分要約データを用いて、要約テーブルを探索してインデックスデータを特定する。そして、検索対象データの要約データを用いて、特定したインデックスデータを探索して、検索対象データが存在するか否かを確認する。これにより、記憶位置を特定したフラグメントデータを読み出して、ブロックデータを再生成することで、読込処理を行う。 In addition, the storage system searches whether the target data (search target data) is already stored when reading the data. At this time, first, index data is specified by searching a summary table using partial summary data that is a part of summary data of search target data. Then, the specified index data is searched using the summary data of the search target data to check whether the search target data exists. Thereby, the read processing is performed by reading out the fragment data specifying the storage position and regenerating the block data.
そして、ストレージシステムは、要約テーブルの一部あるいは全部が利用不可である場合には、以下のようにして読み込み対象となるデータの検索を行う。まず、利用不可である要約テーブルに対応する特定の記憶手段とは異なる別の記憶手段に対応するインデックスデータから、検索対象データの要約データと一致するものと関連付けられたインデックスデータを探索して、検索対象データの一部のフラグメントデータ及びその書き込み状況情報を特定する。そして、この特定した書き込み状況情報を利用して、特定の記憶手段に対応するインデックスデータからも、検索対象データの要約データと一致するものと関連付けられたインデックスデータを探索して、残りのフラグメントデータを特定する。このように、検索対象データの一部のフラグメントデータの書き込み状況情報を利用することで、残りのフラグメントデータも容易かつ迅速に特定することができる。その結果、要約テーブルの少なくとも一部が利用できない場合であっても、容易かつ迅速にデータの検索を行うことができ、ストレージシステムの性能が低下することを抑制することができる。 When a part or all of the summary table is unavailable, the storage system searches for data to be read as follows. First, from the index data corresponding to another storage means different from the specific storage means corresponding to the unavailable summary table, the index data associated with the one that matches the summary data of the search target data is searched, A part of fragment data of the search target data and its writing status information are specified. Then, using this specified write status information, the index data associated with the summary data of the search target data is searched from the index data corresponding to the specific storage means, and the remaining fragment data Is identified. As described above, by using the writing status information of a part of fragment data of the search target data, the remaining fragment data can be easily and quickly identified. As a result, even when at least a part of the summary table cannot be used, data can be searched easily and quickly, and the performance of the storage system can be prevented from deteriorating.
(付記2)
付記1に記載のストレージシステムであって、
前記分散記憶処理手段は、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
前記データ検索手段は、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に対応する利用可能な前記要約テーブルを探索して、当該別の記憶手段に対応する前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。
(Appendix 2)
The storage system according to
The distributed storage processing unit stores the summary table separately for each storage unit serving as a storage destination of the fragment data further referred to by the index data referred to by the summary table,
The data search means searches the available summary table corresponding to the other storage means based on partial summary data which is a part of the summary data of the search target data, and the other storage means The index data corresponding to the search target data is searched, the fragment data constituting the search target data and the write status information of the fragment data are specified, and the specified write status information and the summary data of the search target data are specified. The index data corresponding to the specific storage means is searched based on and the other fragment data constituting the search target data is specified.
Storage system.
(付記3)
付記2に記載のストレージシステムであって、
前記分散記憶処理手段は、前記インデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、
前記データ検索手段は、前記特定の記憶手段に記憶された前記要約テーブルが利用不可である場合に、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に記憶されている利用可能な前記要約テーブルを探索して、当該別の記憶手段に記憶されている前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて、前記要約テーブルが利用不可である前記特定の記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。
(Appendix 3)
The storage system according to
The distributed storage processing unit stores the index data in the storage unit serving as a storage destination of the fragment data referred to by the index data, and the summary table is referred to by the index table. Storing it in the storage means as a storage destination of the fragment data further referred to by data;
The data search means, when the summary table stored in the specific storage means is not available, based on partial summary data that is a part of the summary data of the search target data, Searching the available summary table stored in the means, searching the index data stored in the other storage means, and a part of the fragment data and the fragment constituting the search target data The write status information of data is specified, and based on the specified write status information and the summary data of search target data, the index data stored in the specific storage means in which the summary table is unavailable Searching to identify other fragment data constituting the search object data;
Storage system.
上記構成のストレージシステムによると、要約テーブルの一部が利用不可である場合には、まず、利用可能である要約テーブルのみを用いて、検索対象データの要約データと一致するものと関連付けられたインデックスデータを探索して、検索対象データの一部のフラグメントデータ及びその書き込み状況情報を特定する。そして、この特定した書き込み状況情報を利用して、利用不可である要約テーブルが関連するインデックスデータからも、残りのフラグメントデータを特定する。これにより、要約テーブルの一部が利用できない場合であっても、容易かつ迅速にデータの検索を行うことができ、ストレージシステムの性能が低下することを抑制することができる。 According to the storage system having the above configuration, when a part of the summary table is unavailable, first, an index associated with the one that matches the summary data of the search target data using only the available summary table. The data is searched to identify a part of the fragment data of the search target data and its write status information. Then, using the specified writing status information, the remaining fragment data is specified also from the index data related to the unusable summary table. As a result, even when a part of the summary table cannot be used, data can be easily and quickly searched, and degradation of the performance of the storage system can be suppressed.
(付記4)
付記1乃至3のいずれかに記載のストレージシステムであって、
前記分散記憶処理手段は、1つの記憶対象データから生成された前記複数のフラグメントデータを同一のタイミングで前記複数の記憶手段にそれぞれ分散して記憶すると共に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込みタイミングに基づく値を表す書き込みタイミング情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索手段は、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込みタイミング情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。
(Appendix 4)
The storage system according to any one of
The distributed storage processing unit stores the plurality of fragment data generated from one storage target data in a distributed manner in the plurality of storage units at the same timing, and the index data includes the index data. Write timing information representing a value based on the write timing of the fragment data referred to is included and stored as the write status information,
The data search means includes the write timing information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target data Based on the summary data, the index data stored in the specific storage means is searched, and the other fragment data constituting the search target data is specified.
Storage system.
(付記5)
付記1乃至4のいずれかに記載のストレージシステムであって、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時刻に基づく値を表す書き込み時刻情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索手段は、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込み時刻情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。
(Appendix 5)
The storage system according to any one of
The distributed storage processing means stores, in the index data, write time information representing a value based on a write time of the fragment data referred to by the index data, including the write status information,
The data search means includes the write time information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target data Based on the summary data, the index data stored in the specific storage means is searched, and the other fragment data constituting the search target data is specified.
Storage system.
(付記6)
付記5に記載のストレージシステムであって、
前記データ検索手段は、前記特定の記憶手段に対応する前記インデックスデータを探索して、前記特定した書き込み時刻情報を基準として前後する所定時間内の前記書き込み時刻情報が関連付けられた前記インデックスデータから、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。
(Appendix 6)
The storage system according to
The data search means searches the index data corresponding to the specific storage means, from the index data associated with the write time information within a predetermined time before and after the specified write time information, Specifying the other fragment data constituting the search target data;
Storage system.
(付記7)
付記4乃至6のいずれかに記載のストレージシステムであって、
前記分散記憶処理手段は、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶する際に、当該各記憶手段内の記憶領域に順番に追記する、
ストレージシステム。
(Appendix 7)
The storage system according to any one of
The distributed storage processing means additionally writes in order to the storage area in each storage means when the plurality of fragment data is distributed and stored in the plurality of storage means, respectively.
Storage system.
上記構成のストレージシステムによると、まず、分散記憶の際に、インデックスデータには、フラグメントデータの書き込みのタイミングや時刻を表す情報が記憶される。そして、ストレージシステムは、まず、利用可能な要約テーブルに対応するインデックスデータを探索して、検索対象データの一部のフラグメントデータ、及び、その書き込み状況情報である書き込みのタイミングや時刻の情報を特定する。そして、この特定した書き込みのタイミングや時刻の情報から、利用不可である要約テーブルが関連するインデックスデータからも、残りのフラグメントデータを特定する。このとき、書き込みのタイミングや時刻が近い情報が関連付けられたフラグメントデータを特定することができる。そして、各記憶手段内の記憶領域に、書き込まれた順番でフラグメントデータが格納されている場合には、書き込みのタイミングや時刻を基準としてフラグメントデータを探索することがさらに容易となる。その結果、要約テーブルの一部又は全部が利用できない場合であっても、容易かつ迅速にデータの検索を行うことができ、ストレージシステムの性能が低下することを抑制することができる。 According to the storage system configured as described above, first, during distributed storage, information indicating the timing and time of writing fragment data is stored in the index data. Then, the storage system first searches the index data corresponding to the available summary table, and specifies part of the fragment data of the search target data and the write timing and time information that is the write status information. To do. The remaining fragment data is also specified from the index data associated with the unusable summary table from the specified writing timing and time information. At this time, it is possible to identify fragment data associated with information having similar writing timing and time. If the fragment data is stored in the storage area in each storage means in the order of writing, it becomes easier to search for the fragment data based on the write timing and time. As a result, even if a part or all of the summary table cannot be used, data can be easily and quickly searched, and the performance of the storage system can be prevented from deteriorating.
(付記8)
ストレージシステムの制御装置に、
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理手段と、
検索要求データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索要求データを構成する複数のフラグメントデータを検索するデータ検索手段と、
を実現させると共に、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索手段は、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ことを実現させるためのプログラム。
(Appendix 8)
In the storage system control unit,
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Distributed storage processing means;
Data for searching a plurality of fragment data constituting the search request data stored in the plurality of storage means by searching the summary table and the index data based on the summary data corresponding to the search request data Search means;
And realize
The distributed storage processing means stores the index data including write status information indicating a status at the time of writing the fragment data referred to by the index data,
The data search means stores the fragment data further referenced in the index data referenced by the unavailable summary table when at least a part of the summary table is unavailable. Searching the index data corresponding to a storage means different from the storage means, and writing the fragment data constituting the search target data based on the summary data of the search target data and the writing of the fragment data The other fragment constituting the search target data by specifying the status information, searching the index data corresponding to the specific storage means based on the specified write status information and the summary data of the search target data Identify the data,
A program to make things happen.
(付記8.1)
付記8に記載のプログラムであって、
前記分散記憶処理手段は、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
前記データ検索手段は、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に対応する利用可能な前記要約テーブルを探索して、当該別の記憶手段に対応する前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
プログラム。
(Appendix 8.1)
The program according to
The distributed storage processing unit stores the summary table separately for each storage unit serving as a storage destination of the fragment data further referred to by the index data referred to by the summary table,
The data search means searches the available summary table corresponding to the other storage means based on partial summary data which is a part of the summary data of the search target data, and the other storage means The index data corresponding to the search target data is searched, the fragment data constituting the search target data and the write status information of the fragment data are specified, and the specified write status information and the summary data of the search target data are specified. The index data corresponding to the specific storage means is searched based on and the other fragment data constituting the search target data is specified.
program.
(付記8.2)
付記8.1に記載のプログラムであって、
前記分散記憶処理手段は、前記インデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、
前記データ検索手段は、前記特定の記憶手段に記憶された前記要約テーブルが利用不可である場合に、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に記憶されている利用可能な前記要約テーブルを探索して、当該別の記憶手段に記憶されている前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて、前記要約テーブルが利用不可である前記特定の記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
プログラム。
(Appendix 8.2)
A program according to appendix 8.1,
The distributed storage processing unit stores the index data in the storage unit serving as a storage destination of the fragment data referred to by the index data, and the summary table is referred to by the index table. Storing it in the storage means as a storage destination of the fragment data further referred to by data;
The data search means, when the summary table stored in the specific storage means is not available, based on partial summary data that is a part of the summary data of the search target data, Searching the available summary table stored in the means, searching the index data stored in the other storage means, and a part of the fragment data and the fragment constituting the search target data The write status information of data is specified, and based on the specified write status information and the summary data of search target data, the index data stored in the specific storage means in which the summary table is unavailable Searching to identify other fragment data constituting the search object data;
program.
(付記8.3)
付記8乃至8.2のいずれかに記載のプログラムであって、
前記分散記憶処理手段は、1つの記憶対象データから生成された前記複数のフラグメントデータを同一のタイミングで前記複数の記憶手段にそれぞれ分散して記憶すると共に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込みタイミングに基づく値を表す書き込みタイミング情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索手段は、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込みタイミング情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
プログラム。
(Appendix 8.3)
A program according to any one of
The distributed storage processing unit stores the plurality of fragment data generated from one storage target data in a distributed manner in the plurality of storage units at the same timing, and the index data includes the index data. Write timing information representing a value based on the write timing of the fragment data referred to is included and stored as the write status information,
The data search means includes the write timing information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target data Based on the summary data, the index data stored in the specific storage means is searched, and the other fragment data constituting the search target data is specified.
program.
(付記8.4)
付記8乃至8.3のいずれかに記載のプログラムであって、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時刻に基づく値を表す書き込み時刻情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索手段は、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込み時刻情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
プログラム。
(Appendix 8.4)
A program according to any one of
The distributed storage processing means stores, in the index data, write time information representing a value based on a write time of the fragment data referred to by the index data, including the write status information,
The data search means includes the write time information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target data Based on the summary data, the index data stored in the specific storage means is searched, and the other fragment data constituting the search target data is specified.
program.
(付記9)
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理を行い、
検索要求データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索要求データを構成する複数のフラグメントデータを検索するデータ検索処理を行う、データ処理方法であって、
前記分散記憶処理の際に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索処理の際に、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
(Appendix 9)
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Perform distributed storage processing
Data for searching a plurality of fragment data constituting the search request data stored in the plurality of storage means by searching the summary table and the index data based on the summary data corresponding to the search request data A data processing method for performing search processing,
During the distributed storage process, the index data is stored including write status information indicating a status at the time of writing the fragment data referred to by the index data,
A specification for storing the fragment data further referred to in the index data referred to by the unavailable summary table when at least a part of the summary table is unavailable during the data search process The index data corresponding to the storage means different from the storage means is searched, and a part of the fragment data and the fragment data constituting the search target data based on the summary data of the search target data The write status information is specified, and the index data corresponding to the specific storage means is searched based on the specified write status information and the summary data of the search target data. Identifying the fragment data;
Data processing method.
(付記10)
付記9に記載のデータ処理方法であって、
前記分散記憶処理の際に、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
前記データ検索処理の際に、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に対応する利用可能な前記要約テーブルを探索して、当該別の記憶手段に対応する前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
(Appendix 10)
A data processing method according to attachment 9, wherein
During the distributed storage process, the summary table is stored separately for each storage unit that is a storage destination of the fragment data that is further referred to by the index data referenced by the summary table,
During the data search process, based on partial summary data that is a part of the summary data of the search target data, the available summary table corresponding to the other storage means is searched for, The index data corresponding to the storage unit is searched, the fragment data constituting the search target data and the write status information of the fragment data are specified, and the specified write status information and the search target data Search the index data corresponding to the specific storage means based on the summary data, and specify the other fragment data constituting the search target data,
Data processing method.
(付記10.1)
付記10に記載のデータ処理方法であって、
前記分散記憶処理の際に、前記インデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、
前記データ検索処理の際に、前記特定の記憶手段に記憶された前記要約テーブルが利用不可である場合に、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に記憶されている利用可能な前記要約テーブルを探索して、当該別の記憶手段に記憶されている前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて、前記要約テーブルが利用不可である前記特定の記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
(Appendix 10.1)
A data processing method according to
In the distributed storage processing, the index data is stored in the storage unit that is a storage destination of the fragment data referenced by the index data, and the summary table is referenced by the summary table. Storing it in the storage means as a storage destination of the fragment data further referred to by index data;
When the summary table stored in the specific storage means is unavailable during the data search process, the different summary data is based on partial summary data that is part of the summary data of the search target data. The available summary table stored in the storage means is searched, the index data stored in the other storage means is searched, a part of the fragment data constituting the search target data, and The index stored in the specific storage means that identifies the write status information of the fragment data, and based on the specified write status information and the summary data of the search target data, the summary table is unavailable Search the data to identify the other fragment data constituting the search target data.
Data processing method.
(付記10.2)
付記9乃至10.1のいずれかに記載のデータ処理方法であって、
前記分散記憶処理の際に、1つの記憶対象データから生成された前記複数のフラグメントデータを同一のタイミングで前記複数の記憶手段にそれぞれ分散して記憶すると共に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込みタイミングに基づく値を表す書き込みタイミング情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索処理の際に、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込みタイミング情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
(Appendix 10.2)
A data processing method according to any one of appendices 9 to 10.1,
In the distributed storage process, the plurality of fragment data generated from one storage target data is distributed and stored in the plurality of storage units at the same timing, and the index data is stored in the index data. Write timing information representing a value based on the write timing of the fragment data referred to is included and stored as the write status information,
In the data search process, the write timing information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target Searching the index data stored in the specific storage means based on the summary data of the data, and specifying the other fragment data constituting the search target data,
Data processing method.
(付記10.3)
付記9乃至10.2のいずれかに記載のデータ処理方法であって、
前記分散記憶処理の際に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時刻に基づく値を表す書き込み時刻情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索処理の際に、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込み時刻情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
(Appendix 10.3)
A data processing method according to any one of appendices 9 to 10.2,
During the distributed storage process, the index data includes write time information representing a value based on the write time of the fragment data referred to by the index data as the write status information.
In the data search process, the write time information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target Searching the index data stored in the specific storage means based on the summary data of the data, and specifying the other fragment data constituting the search target data,
Data processing method.
(付記10.4)
付記10.3に記載のデータ処理方法であって、
前記データ検索手段は、前記特定の記憶手段に対応する前記インデックスデータを探索して、前記特定した書き込み時刻情報を基準として前後する所定時間内の前記書き込み時刻情報が関連付けられた前記インデックスデータから、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
(Appendix 10.4)
A data processing method according to attachment 10.3,
The data search means searches the index data corresponding to the specific storage means, from the index data associated with the write time information within a predetermined time before and after the specified write time information, Specifying the other fragment data constituting the search target data;
Data processing method.
(付記10.5)
付記10.2乃至10.4のいずれかに記載のデータ処理方法であって、
前記分散記憶処理の際に、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶する際に、当該各記憶手段内の記憶領域に順番に追記する、
ストレージシステム。
(Appendix 10.5)
A data processing method according to any one of appendices 10.2 to 10.4,
In the distributed storage process, when the plurality of fragment data are respectively distributed and stored in the plurality of storage units, they are added to the storage areas in the storage units in order.
Storage system.
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。 Note that the above-described program is stored in a storage device or recorded on a computer-readable recording medium. For example, the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。 Although the present invention has been described with reference to the above-described embodiment and the like, the present invention is not limited to the above-described embodiment. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
1 ストレージシステム
2 アクセスノード
21 I/O処理部
22 データ送受信部
23 重複判定部
3 ストレージノード
31 フラグメント処理部
32 フラグメント探索部
33 タイムスタンプ取得部
34 ノード状態監視部
35 ディスク
36 ハッシュテーブル
37 インデックスファイル
38 格納ファイル
4 バックアップシステム
5 バックアップ対象装置
100 ストレージシステム
111 分散記憶処理手段
112 データ検索手段
120 記憶手段
DESCRIPTION OF
Claims (10)
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理手段と、
検索対象データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索対象データを構成する複数のフラグメントデータを検索するデータ検索手段と、を備え、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索手段は、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。 A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Distributed storage processing means;
Data that searches the summary table and the index data based on the summary data corresponding to the search target data, and searches a plurality of fragment data constituting the search target data stored in the plurality of storage means A search means,
The distributed storage processing means stores the index data including write status information indicating a status at the time of writing the fragment data referred to by the index data,
The data search means stores the fragment data further referenced in the index data referenced by the unavailable summary table when at least a part of the summary table is unavailable. Searching the index data corresponding to a storage means different from the storage means, and writing the fragment data constituting the search target data based on the summary data of the search target data and the writing of the fragment data The other fragment constituting the search target data by specifying the status information, searching the index data corresponding to the specific storage means based on the specified write status information and the summary data of the search target data Identify the data,
Storage system.
前記分散記憶処理手段は、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
前記データ検索手段は、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に対応する利用可能な前記要約テーブルを探索して、当該別の記憶手段に対応する前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。 The storage system according to claim 1,
The distributed storage processing unit stores the summary table separately for each storage unit serving as a storage destination of the fragment data further referred to by the index data referred to by the summary table,
The data search means searches the available summary table corresponding to the other storage means based on partial summary data which is a part of the summary data of the search target data, and the other storage means The index data corresponding to the search target data is searched, the fragment data constituting the search target data and the write status information of the fragment data are specified, and the specified write status information and the summary data of the search target data are specified. The index data corresponding to the specific storage means is searched based on and the other fragment data constituting the search target data is specified.
Storage system.
前記分散記憶処理手段は、前記インデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段に記憶し、
前記データ検索手段は、前記特定の記憶手段に記憶された前記要約テーブルが利用不可である場合に、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に記憶されている利用可能な前記要約テーブルを探索して、当該別の記憶手段に記憶されている前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて、前記要約テーブルが利用不可である前記特定の記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。 The storage system according to claim 2,
The distributed storage processing unit stores the index data in the storage unit serving as a storage destination of the fragment data referred to by the index data, and the summary table is referred to by the index table. Storing it in the storage means as a storage destination of the fragment data further referred to by data;
The data search means, when the summary table stored in the specific storage means is not available, based on partial summary data that is a part of the summary data of the search target data, Searching the available summary table stored in the means, searching the index data stored in the other storage means, and a part of the fragment data and the fragment constituting the search target data The write status information of data is specified, and based on the specified write status information and the summary data of search target data, the index data stored in the specific storage means in which the summary table is unavailable Searching to identify other fragment data constituting the search object data;
Storage system.
前記分散記憶処理手段は、1つの記憶対象データから生成された前記複数のフラグメントデータを同一のタイミングで前記複数の記憶手段にそれぞれ分散して記憶すると共に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込みタイミングに基づく値を表す書き込みタイミング情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索手段は、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込みタイミング情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。 The storage system according to any one of claims 1 to 3,
The distributed storage processing unit stores the plurality of fragment data generated from one storage target data in a distributed manner in the plurality of storage units at the same timing, and the index data includes the index data. Write timing information representing a value based on the write timing of the fragment data referred to is included and stored as the write status information,
The data search means includes the write timing information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target data Based on the summary data, the index data stored in the specific storage means is searched, and the other fragment data constituting the search target data is specified.
Storage system.
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時刻に基づく値を表す書き込み時刻情報を、前記書き込み状況情報として含めて記憶し、
前記データ検索手段は、前記別の記憶手段に対応する前記インデックスデータから特定した前記検索対象データを構成する一部のフラグメントデータの前記書き込み状況情報である前記書き込み時刻情報、及び、検索対象データの前記要約データに基づいて、前記特定の前記記憶手段に記憶されている前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。 The storage system according to any one of claims 1 to 4,
The distributed storage processing means stores, in the index data, write time information representing a value based on a write time of the fragment data referred to by the index data, including the write status information,
The data search means includes the write time information which is the write status information of a part of fragment data constituting the search target data specified from the index data corresponding to the other storage means, and the search target data Based on the summary data, the index data stored in the specific storage means is searched, and the other fragment data constituting the search target data is specified.
Storage system.
前記データ検索手段は、前記特定の記憶手段に対応する前記インデックスデータを探索して、前記特定した書き込み時刻情報を基準として前後する所定時間内の前記書き込み時刻情報が関連付けられた前記インデックスデータから、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ストレージシステム。 The storage system according to claim 5,
The data search means searches the index data corresponding to the specific storage means, from the index data associated with the write time information within a predetermined time before and after the specified write time information, Specifying the other fragment data constituting the search target data;
Storage system.
前記分散記憶処理手段は、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶する際に、当該各記憶手段内の記憶領域に順番に追記する、
ストレージシステム。 The storage system according to any one of claims 4 to 6,
The distributed storage processing means additionally writes in order to the storage area in each storage means when the plurality of fragment data is distributed and stored in the plurality of storage means, respectively.
Storage system.
記憶対象データを複数に分割した分割データを含む複数のフラグメントデータを生成して、当該複数のフラグメントデータを複数の記憶手段にそれぞれ分散して記憶すると共に、
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理手段と、
検索対象データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索対象データを構成する複数のフラグメントデータを検索するデータ検索手段と、
を実現させると共に、
前記分散記憶処理手段は、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索手段は、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
ことを実現させるためのプログラム。 In the storage system control unit,
A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Distributed storage processing means;
Data that searches the summary table and the index data based on the summary data corresponding to the search target data, and searches a plurality of fragment data constituting the search target data stored in the plurality of storage means Search means;
And realize
The distributed storage processing means stores the index data including write status information indicating a status at the time of writing the fragment data referred to by the index data,
The data search means stores the fragment data further referenced in the index data referenced by the unavailable summary table when at least a part of the summary table is unavailable. Searching the index data corresponding to a storage means different from the storage means, and writing the fragment data constituting the search target data based on the summary data of the search target data and the writing of the fragment data The other fragment constituting the search target data by specifying the status information, searching the index data corresponding to the specific storage means based on the specified write status information and the summary data of the search target data Identify the data,
A program to make things happen.
前記フラグメントデータを参照する情報と、当該フラグメントデータにて構成される前記記憶対象データのデータ内容に基づいて算出された要約データと、を関連付けたインデックスデータを、当該インデックスデータにて参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
さらに、前記インデックスデータを参照する情報と、当該インデックスデータに含まれた前記要約データの一部からなる部分要約データと、を関連付けた要約テーブルを記憶する、
分散記憶処理を行い、
検索対象データに対応する前記要約データに基づいて、前記要約テーブル及び前記インデックスデータを探索して、前記複数の記憶手段に記憶されている前記検索対象データを構成する複数のフラグメントデータを検索するデータ検索処理を行う、データ処理方法であって、
前記分散記憶処理の際に、前記インデックスデータに、当該インデックスデータにて参照される前記フラグメントデータの書き込み時の状況を表す書き込み状況情報を含めて記憶し、
前記データ検索処理の際に、前記要約テーブルの少なくとも一部が利用不可である場合に、当該利用不可である要約テーブルによって参照される前記インデックスデータにてさらに参照される前記フラグメントデータを記憶する特定の前記記憶手段とは別の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データの前記要約データに基づいて当該検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。 A plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces, and the plurality of fragment data are respectively distributed and stored in a plurality of storage units;
The index data that associates the information that refers to the fragment data with the summary data that is calculated based on the data content of the storage target data that is configured with the fragment data is referred to in the index data. Storing each of the storage means as fragment data storage destinations separately,
Further, a summary table that associates information that refers to the index data and partial summary data that includes a part of the summary data included in the index data is stored.
Perform distributed storage processing
Data that searches the summary table and the index data based on the summary data corresponding to the search target data, and searches a plurality of fragment data constituting the search target data stored in the plurality of storage means A data processing method for performing search processing,
During the distributed storage process, the index data is stored including write status information indicating a status at the time of writing the fragment data referred to by the index data,
A specification for storing the fragment data further referred to in the index data referred to by the unavailable summary table when at least a part of the summary table is unavailable during the data search process The index data corresponding to the storage means different from the storage means is searched, and a part of the fragment data and the fragment data constituting the search target data based on the summary data of the search target data The write status information is specified, and the index data corresponding to the specific storage means is searched based on the specified write status information and the summary data of the search target data. Identifying the fragment data;
Data processing method.
前記分散記憶処理の際に、前記要約テーブルを、当該要約テーブルにて参照される前記インデックスデータにてさらに参照される前記フラグメントデータの記憶先となる前記記憶手段毎に区別して記憶し、
前記データ検索処理の際に、前記検索対象データの前記要約データの一部である部分要約データに基づいて、前記別の記憶手段に対応する利用可能な前記要約テーブルを探索して、当該別の記憶手段に対応する前記インデックスデータを探索し、前記検索対象データを構成する一部の前記フラグメントデータ及び当該フラグメントデータの前記書き込み状況情報を特定し、この特定した書き込み状況情報及び検索対象データの前記要約データに基づいて前記特定の記憶手段に対応する前記インデックスデータを探索して、前記検索対象データを構成する他の前記フラグメントデータを特定する、
データ処理方法。
A data processing method according to claim 9, wherein
During the distributed storage process, the summary table is stored separately for each storage unit that is a storage destination of the fragment data that is further referred to by the index data referenced by the summary table,
During the data search process, based on partial summary data that is a part of the summary data of the search target data, the available summary table corresponding to the other storage means is searched for, The index data corresponding to the storage unit is searched, the fragment data constituting the search target data and the write status information of the fragment data are specified, and the specified write status information and the search target data Search the index data corresponding to the specific storage means based on the summary data, and specify the other fragment data constituting the search target data,
Data processing method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014025237A JP6343952B2 (en) | 2014-02-13 | 2014-02-13 | Storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014025237A JP6343952B2 (en) | 2014-02-13 | 2014-02-13 | Storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015153067A JP2015153067A (en) | 2015-08-24 |
JP6343952B2 true JP6343952B2 (en) | 2018-06-20 |
Family
ID=53895261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014025237A Active JP6343952B2 (en) | 2014-02-13 | 2014-02-13 | Storage system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6343952B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007011500A (en) * | 2005-06-28 | 2007-01-18 | Mitsubishi Electric Corp | Home gateway |
JP5655628B2 (en) * | 2011-02-25 | 2015-01-21 | 日本電気株式会社 | Information processing system, data backup method, information processing apparatus, control method thereof, and control program |
-
2014
- 2014-02-13 JP JP2014025237A patent/JP6343952B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015153067A (en) | 2015-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977124B2 (en) | Distributed storage system, data storage method, and software program | |
JP6708948B2 (en) | Block storage | |
US11461015B2 (en) | Available storage space in a system with varying data redundancy schemes | |
US9892005B2 (en) | System and method for object-based continuous data protection | |
US8239621B2 (en) | Distributed data storage system, data distribution method, and apparatus and program to be used for the same | |
US9996421B2 (en) | Data storage method, data storage apparatus, and storage device | |
US20170083412A1 (en) | System and method for generating backups of a protected system from a recovery system | |
US20110313971A1 (en) | Storage system | |
JP5569074B2 (en) | Storage system | |
JP5561425B2 (en) | Storage system | |
US20200043524A1 (en) | RAID Storage System with Logical Data Group Priority | |
CN110147203B (en) | File management method and device, electronic equipment and storage medium | |
US8683121B2 (en) | Storage system | |
US20150302021A1 (en) | Storage system | |
JP5517224B2 (en) | Storage device | |
JP5660617B2 (en) | Storage device | |
JP5459388B2 (en) | Storage device | |
JP6343952B2 (en) | Storage system | |
JP2015148919A (en) | storage system | |
KR101686340B1 (en) | Method for efficient non-volatile cache load management for high capacity storage apparatus | |
JP5891842B2 (en) | Storage system | |
JP6201340B2 (en) | Replication system | |
WO2021189315A1 (en) | Proxy server crash recovery in object storage system using enhanced meta structure | |
JP2014153873A (en) | Information processing device, information processing method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171225 |
|
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: 20180424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180507 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6343952 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |