JP6269120B2 - Storage system - Google Patents

Storage system Download PDF

Info

Publication number
JP6269120B2
JP6269120B2 JP2014021092A JP2014021092A JP6269120B2 JP 6269120 B2 JP6269120 B2 JP 6269120B2 JP 2014021092 A JP2014021092 A JP 2014021092A JP 2014021092 A JP2014021092 A JP 2014021092A JP 6269120 B2 JP6269120 B2 JP 6269120B2
Authority
JP
Japan
Prior art keywords
data
storage
fragment
restored
fragment data
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
Application number
JP2014021092A
Other languages
Japanese (ja)
Other versions
JP2015148919A (en
Inventor
賢治 野田
賢治 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014021092A priority Critical patent/JP6269120B2/en
Publication of JP2015148919A publication Critical patent/JP2015148919A/en
Application granted granted Critical
Publication of JP6269120B2 publication Critical patent/JP6269120B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (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 Patent Document 1. In this content address storage system, data is distributed and stored in a plurality of storage devices, and the storage location where the data is stored is specified by a unique content address specified according to the content of the data.

このように、コンテンツアドレスは、データの内容に応じて固有となるよう生成されるため、重複データであれば、同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。つまり、コンテンツアドレスストレージシステムでは、同一内容のデータが記憶されていない場合だけ、新たなデータが記憶されるという重複排除機能を有している。   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.

また、ストレージシステムでは、所定容量のブロックデータであるチャンクを複数のフラグメントデータに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントデータをそれぞれ複数の記憶装置にそれぞれ格納している。そして、後にコンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているフラグメントデータを読み出し、複数のフラグメントデータから分割前の所定のデータを復元することができる。   In addition, the storage system divides a chunk, which is block data of a predetermined capacity, into a plurality of fragment data, and further adds a fragment that becomes redundant data, and stores each of the plurality of fragment data in a plurality of storage devices. ing. Then, by designating the content address later, the fragment data stored at the storage location specified by the content address can be read, and the predetermined data before division can be restored from the plurality of fragment data.

このように、ストレージシステムは、冗長データとなるフラグメントデータを付加しているため、付加した冗長データのフラグメント数以下のフラグメントデータが失われた場合でも、元のチャンクを再生成することができる。   In this way, since the storage system adds fragment data that becomes redundant data, even if fragment data equal to or less than the number of fragments of the added redundant data is lost, the original chunk can be regenerated.

また、ストレージシステムでは、複数の記憶装置であるノードを備えている場合には、ノード間で負荷が偏ったり集中したりしないよう、分散配置機能を有している。ここで、各ノードには、それぞれコンポーネントと呼ばれるデータ格納領域を有しており、各コンポーネントにそれぞれフラグメントデータを格納している。そして、コンテンツアドレスストレージシステムでは、コンポーネント単位で負荷分散を行っている。   In addition, when a storage system includes nodes that are a plurality of storage devices, the storage system has a distributed arrangement function so that loads are not biased or concentrated between the nodes. Here, each node has a data storage area called a component, and fragment data is stored in each component. In the content address storage system, load distribution is performed on a component basis.

ここで、図1に、ストレージシステムにおけるコンポーネントの配置例を示す。まず、ストレージシステムは、1つのチャンクから生成された複数のフラグメントデータをそれぞれ格納する複数のコンポーネントを、複数のノードに分散して配置する際の「分散パターン」を複数有している。ここでは、各「分散パターン」は、それぞれ12個のコンポーネント(符号01〜12)を有しており、5つのノードに2個あるいは3個のコンポーネントをそれぞれ配置する5つのパターン(符号P1〜P5)となっている。   Here, FIG. 1 shows an example of component arrangement in the storage system. First, the storage system has a plurality of “distribution patterns” for distributing a plurality of components each storing a plurality of fragment data generated from one chunk to a plurality of nodes. Here, each “distributed pattern” has twelve components (reference numerals 01 to 12), and five patterns (reference numerals P1 to P5) in which two or three components are arranged in five nodes, respectively. ).

そして、ストレージシステムは、フラグメントデータを生成する元となるチャンク毎に、当該データ内容に基づくハッシュ値を算出し、そのハッシュ値に応じて「分散パターン」を決定し、その「分散パターン」で各フラグメントデータを各コンポーネントに格納する。   Then, the storage system calculates a hash value based on the data content for each chunk from which fragment data is generated, and determines a “distribution pattern” according to the hash value. Store fragment data in each component.

ここで、データが書き込まれてから各ノードに分散格納するまでの例を、図2に示す。まず、ストレージシステムは、重複判定機能によってまだ記憶されていないユニークと判断されたチャンクDを、9個のフラグメントデータF1に分割すると共に、3個の冗長データであるフラグメントデータF2を付加して、これらをノード間に分散配置する。このブロックデータについては、そのハッシュ値から図1に示す「分散パターン1」が選択されており、各フラグメントデータを、各ノードの対応するコンポーネントに格納している。   Here, FIG. 2 shows an example from when data is written until it is distributed and stored in each node. First, the storage system divides chunk D determined to be unique, which has not yet been stored by the duplication determination function, into nine pieces of fragment data F1, and adds fragment data F2, which is three pieces of redundant data, These are distributed between nodes. For this block data, “distribution pattern 1” shown in FIG. 1 is selected from the hash value, and each fragment data is stored in the corresponding component of each node.

このように、フラグメントデータをノード間に分散格納させることによって、ノード障害が発生した場合でも、一度に失われるフラグメントデータの数を少なくしている。そして、ノード障害により一部のフラグメントデータが失われた場合であっても、冗長データを付加しているため、元のチャンクを再生成することができる。例えば、特許文献1に示すように、障害ノードに格納されていた失われたデータを、他のノードの空き領域に再配置することで、データを復元することができる。   As described above, by distributing and storing fragment data among nodes, even when a node failure occurs, the number of fragment data lost at one time is reduced. Even if some fragment data is lost due to a node failure, the original chunk can be regenerated because redundant data is added. For example, as shown in Patent Document 1, data can be restored by rearranging lost data stored in a failed node in a free area of another node.

特開2010−191558JP 2010-191558 A

しかしながら、上述したストレージシステムでは、障害が発生したノード上のフラグメントデータを復元することによって、システムの容量を圧迫してしまう、という問題が生じる。   However, in the above-described storage system, there is a problem that the capacity of the system is compressed by restoring fragment data on the node where the failure has occurred.

一例として、5台のノードから構成されるストレージシステムを考え、各ノードの容量をそれぞれ「100」(単位は任意)とする。そして、システムの80%の容量が使用されている場合、各容量は以下のようになる。
・使用済み容量:400(=100×5台×0.8)
・空き容量 :100(=100×5台−使用済み容量)
As an example, a storage system composed of five nodes is considered, and the capacity of each node is “100” (unit is arbitrary). And when 80% capacity of the system is used, each capacity is as follows.
・ Used capacity: 400 (= 100 x 5 units x 0.8)
-Free capacity: 100 (= 100 x 5 units-used capacity)

そして、ノード障害が発生した場合、障害となったノード上のフラグメントデータが復元され、残りのノードに再配置される。その際、以下のように、空き容量が「0」となる。つまり、障害となったノード上には、「80」(=100×0.8)の容量のデータが配置されていたが、これらが復元されて、残りの4台のノードに「20」の容量ずつ分散配置されることとなる。
・使用済み容量:400(復元後。ノード障害前と同等)
・空き容量 :0(=100×5台−使用済み容量)
When a node failure occurs, fragment data on the failed node is restored and relocated to the remaining nodes. At that time, the free space becomes “0” as follows. In other words, data with a capacity of “80” (= 100 × 0.8) was arranged on the failed node, but these were restored and “20” was stored in the remaining four nodes. The capacity is distributed and arranged.
-Used capacity: 400 (after restoration, equivalent to before node failure)
-Free capacity: 0 (= 100 x 5 units-used capacity)

このように、データを分散配置したストレージシステムにおいて、ノード障害の際にシステムの容量が枯渇してしまう、という問題が生じる。   As described above, in a storage system in which data is distributed and arranged, there arises a problem that the capacity of the system is exhausted when a node failure occurs.

このため、本発明の目的は、上述した課題である、データを分散配置したストレージシステムにおいて、ノード障害の際にシステムの容量が枯渇してしまう、ということを解決することにある。   Therefore, an object of the present invention is to solve the above-mentioned problem that the capacity of the system is exhausted in the event of a node failure in a storage system in which data is distributed and arranged.

本発明の一形態であるストレージシステムは、
複数の記憶手段に対してデータを記憶する際に、記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、前記複数の記憶手段にそれぞれ分散して記憶する分散記憶処理手段と、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元手段と、を備え、
前記データ復元手段は、前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する復元データ数決定手段を有する、
という構成をとる。
A storage system according to an aspect of the present invention
When storing data in a plurality of storage means, generate a plurality of fragment data consisting of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, Distributed storage processing means for distributing and storing each in the storage means;
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. Data restoration means for restoring based on the fragment data and storing in the other storage means,
The data restoration means calculates all data capacities in the storage system after restoration when at least a part of the lost fragment data is restored, and all the calculated data capacities after restoration, Reconstructed data number determining means for determining the number of fragment data to be restored based on the capacity of the storage means in which no failure has occurred;
The configuration is as follows.

また、本発明の一形態であるプログラムは、
情報処理装置に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、複数の記憶手段にそれぞれ分散して記憶する分散記憶処理手段と、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元手段と、を実現させると共に、
前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する復元データ数決定手段を有する前記データ復元手段を実現させる、
という構成をとる。
In addition, a program which is one embodiment of the present invention is
In the information processing device,
Distributed storage processing means for generating a plurality of fragment data composed of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, and storing each of the fragment data in a plurality of storage means,
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. And restoring the data based on the fragment data and storing the data in the other storage means,
Calculate all data capacities in the restored storage system when at least a part of the lost fragment data is restored, and no faults have occurred with the calculated data capacities after restoration. Realizing the data restoration means having restoration data number determination means for determining the number of fragment data to be restored based on the capacity of the storage means;
The configuration is as follows.

また、本発明の一形態であるデータ処理方法は、
複数の記憶手段に対してデータを記憶する際に、記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、前記複数の記憶手段にそれぞれ分散して記憶し、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元処理を行い、
前記データ復元処理の際に、前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
という構成をとる。
A data processing method according to one aspect of the present invention includes:
When storing data in a plurality of storage means, generate a plurality of fragment data consisting of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, Each of the storage means is distributed and stored,
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. The data is restored based on the fragment data and stored in the other storage means.
During the data restoration process, all data capacities in the storage system after restoration when at least a part of the lost fragment data is restored are calculated, and all the calculated data capacities after restoration are calculated. And determining the number of fragment data to be restored based on the capacity of the storage means in which no failure has occurred,
The configuration is as follows.

本発明は、以上のように構成されることにより、データを分散配置したストレージシステムにおいてノード障害の際にシステムの容量の枯渇を抑制することができる。   With the configuration as described above, the present invention can suppress system capacity depletion in the event of a node failure in a storage system in which data is distributed.

本発明に関連するストレージシステムにおける複数のノードに対するフラグメントデータの分散パターンを示す図である。It is a figure which shows the distribution pattern of the fragment data with respect to several nodes in the storage system relevant to this invention. 本発明に関連するストレージシステムにおけるデータ書き込み時の様子を示す図である。It is a figure which shows the mode at the time of the data writing in the storage system relevant to this invention. 本発明の実施形態1におけるストレージシステムを含む全体システムの構成を示すブロック図である。1 is a block diagram showing a configuration of an entire system including a storage system in Embodiment 1 of the present invention. 図3に開示したストレージシステムの全体構成を示すブロック図である。FIG. 4 is a block diagram illustrating an overall configuration of the storage system disclosed in FIG. 3. 図4に開示したストレージシステムの構成を示す機能ブロック図である。FIG. 5 is a functional block diagram illustrating a configuration of the storage system disclosed in FIG. 4. 図5に開示したストレージシステムの動作を説明するための説明図である。FIG. 6 is an explanatory diagram for explaining the operation of the storage system disclosed in FIG. 5. 図5に開示したストレージシステムの動作を説明するための説明図である。FIG. 6 is an explanatory diagram for explaining the operation of the storage system disclosed in FIG. 5. 図5に開示したストレージシステムの動作を説明するための説明図である。FIG. 6 is an explanatory diagram for explaining the operation of the storage system disclosed in FIG. 5. 図5に開示したストレージシステムの動作を示すフローチャートである。6 is a flowchart showing an operation of the storage system disclosed in FIG. 5. 図5に開示したストレージシステムの動作を示すフローチャートである。6 is a flowchart showing an operation of the storage system disclosed in FIG. 5. 図5に開示したストレージシステムの動作を示すフローチャートである。6 is a flowchart showing an operation of the storage system disclosed in FIG. 5. 本発明の付記1におけるストレージシステムの構成を示す図である。It is a figure which shows the structure of the storage system in attachment 1 of this invention.

<実施形態1>
本発明の第1の実施形態を、図3乃至図11を参照して説明する。図3は、全体システムの構成を示すブロック図である。図4は、ストレージシステムの構成の概略を示すブロック図であり、図5は、ストレージシステムの構成を示す機能ブロック図である。図6乃至図8は、ストレージシステムにおけるデータ書き込み処理及びデータ復元処理の動作を説明するための説明図である。図9乃至図11は、ストレージシステムの動作を示すフローチャートである。
<Embodiment 1>
A first embodiment of the present invention will be described with reference to FIGS. FIG. 3 is a block diagram showing the configuration of the entire system. FIG. 4 is a block diagram showing an outline of the configuration of the storage system, and FIG. 5 is a functional block diagram showing the configuration of the storage system. 6 to 8 are explanatory diagrams for explaining operations of data writing processing and data restoration processing in the storage system. 9 to 11 are flowcharts showing the operation of the storage system.

ここで、本実施形態は、後述する付記に記載のストレージシステム等の具体的な一例を示すものである。そして、以下では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、1台のコンピュータで構成されていてもよい。   Here, 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.

図3に示すように、本発明におけるストレージシステム1は、ネットワークNを介してバックアップ処理を制御するバックアップシステム4に接続している。そして、バックアップシステム4は、ネットワークNを介して接続されたバックアップ対象装置5に格納されているバックアップ対象データ(記憶対象データ)を取得し、ストレージシステム1に対して記憶するよう要求する。これにより、ストレージシステム1は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。   As shown in FIG. 3, the storage system 1 according to the present invention is connected to a backup system 4 that controls backup processing via a network N. Then, the backup system 4 acquires backup target data (storage target data) stored in the backup target device 5 connected via the network N and requests the storage system 1 to store it. Thereby, the storage system 1 stores the backup target data requested to be stored for backup.

図4に示すように、本実施形態におけるストレージシステム1は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム1は、ストレージシステム1自体における記憶再生動作を制御するサーバコンピュータであるアクセスノード2と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード3と、を備えている。なお、アクセスノード2の数とストレージノード3の数は、図4に示したものに限定されず、さらに多くの各ノード2,3が接続されて構成されていてもよい。   As shown in FIG. 4, the storage system 1 in this embodiment has a configuration in which a plurality of server computers are connected. Specifically, the storage system 1 includes an access node 2 that is a server computer that controls storage and reproduction operations in the storage system 1 itself, and a storage node 3 that is a server computer including a storage device that stores data. Yes. Note that the number of access nodes 2 and the number of storage nodes 3 are not limited to those shown in FIG. 4, and more nodes 2 and 3 may be connected.

そして、本実施形態におけるストレージシステム1は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。   The storage system 1 in the present embodiment divides and makes the data redundant, stores the data in a plurality of storage devices, and stores the data by a unique content address set according to the content of the stored data. It is a content address storage system for specifying a stored location. This content address storage system will be described in detail later.

なお、以下では、ストレージシステム1がアクセスノード2とストレージノード3とによって構築されていることとして説明するが、必ずしもアクセスノード2とストレージノード3とを備えていることに限定されず、いかなる構成であってもよい。例えば、本発明におけるストージシステムは、1台のコンピュータにて構成されていてもよい。さらには、ストレージシステム1は、コンテンツアドレスストレージシステムであることにも限定されず、データを複数の記憶装置に分散記憶する機能を有しているストレージシステムであればよい。   In the following description, it is assumed that the storage system 1 is constructed by the access node 2 and the storage node 3. However, the storage system 1 is not necessarily limited to the access node 2 and the storage node 3, and any configuration is possible. There may be. For example, the storage system in the present invention may be configured by a single computer. Furthermore, the storage system 1 is not limited to being a content address storage system, but may be any storage system having a function of distributing and storing data in a plurality of storage devices.

図5に、本実施形態におけるストレージシステム1の構成を示す。この図に示すように、ストレージシステム1を構成するアクセスノード2は、装備された演算装置にプログラムが組み込まれることで構築された、ファイルシステムサービス20、重複排除機能部21、フラグメント分散機能部22、ノード死活監視機能部23、データ復元制御機能部24、を備えている。また、アクセスノード2は、装備された記憶装置に記憶する情報として、ハッシュテーブル25、コンポーネント容量情報26、コンポーネント数情報27、システム容量情報28、コンポーネント配置情報29、を持つ。   FIG. 5 shows the configuration of the storage system 1 in this embodiment. As shown in this figure, the access node 2 constituting the storage system 1 has a file system service 20, a deduplication function unit 21, and a fragment distribution function unit 22, which are constructed by incorporating a program into the equipped arithmetic device. The node alive monitoring function unit 23 and the data restoration control function unit 24 are provided. Further, the access node 2 has a hash table 25, component capacity information 26, component number information 27, system capacity information 28, and component arrangement information 29 as information stored in the equipped storage device.

また、ストレージノード3は、装備された演算装置にプログラムが組み込まれることで構築された、フラグメント格納機能部31、データ復元機能部32、ディスク死活監視機能部33、を備える。また、ストレージノード3は、後述するようにフラグメンドデータを記憶する記憶装置として、物理ディスク30を持つ。なお、図5に示す全てのストレージノード3も、同じ構成を有している。   In addition, the storage node 3 includes a fragment storage function unit 31, a data restoration function unit 32, and a disk alive monitoring function unit 33, which are constructed by incorporating a program in the equipped arithmetic device. The storage node 3 has a physical disk 30 as a storage device for storing fragmented data as will be described later. All the storage nodes 3 shown in FIG. 5 have the same configuration.

ここで、上述したように、本実施形態におけるストレージシステム1は、コンテンツアドレスストレージシステムである。このため、ストレージシステム1は、コンテンツアドレスを利用してデータをストレージノード3の物理ディスク30に格納する機能を有しており、以下に説明するように、データを分割及び分散し、かつ、コンテンツアドレスにて格納位置を特定して、データを格納する。   Here, as described above, the storage system 1 in the present embodiment is a content address storage system. For this reason, the storage system 1 has a function of storing data in the physical disk 30 of the storage node 3 using the content address. As will be described below, the data is divided and distributed, and the content The storage location is specified by the address, and the data is stored.

まず、ストレージシステム1によるデータ書き込み処理について、図6乃至図8の説明図、および、図9のフローチャートを参照して説明する。   First, data write processing by the storage system 1 will be described with reference to the explanatory diagrams of FIGS. 6 to 8 and the flowchart of FIG.

まず、アクセスノード2に記憶される情報について説明する。ハッシュテーブル25は、後述するように、既にストレージノード3の物理ディスク30に記憶されているチャンクDのハッシュ値を記憶する。コンポーネント容量情報26は、コンポーネント1つあたりの容量を記憶する。コンポーネント数情報27は、分散パターン1つあたりのコンポーネントの総数を記憶する。システム容量情報28は、各ストレージノード3の記憶容量の情報を記憶する。コンポーネント配置情報29は、複数のストレージノード3に対するコンポーネントの配置情報を記憶する。   First, information stored in the access node 2 will be described. As will be described later, the hash table 25 stores the hash value of the chunk D that is already stored in the physical disk 30 of the storage node 3. The component capacity information 26 stores the capacity per component. The component number information 27 stores the total number of components per distribution pattern. The system capacity information 28 stores information on the storage capacity of each storage node 3. The component arrangement information 29 stores component arrangement information for a plurality of storage nodes 3.

書き込み処理は、図7及び図8の矢印Y1に示すように、アクセスノード2のファイルシステムサービス20が上位装置から書き込み要求されたデータであるファイルAを受信することで開始される(ステップS1)。そして、アクセスノード2の重複排除機能部21が、図7及び図8の矢印Y2に示すように、ファイルAを所定容量(例えば、64KB)のブロックデータであるチャンクD(書き込み対象データ)に分割する(ステップS2)。   The write process is started when the file system service 20 of the access node 2 receives the file A, which is the data requested to be written from the host device, as indicated by the arrow Y1 in FIGS. 7 and 8 (step S1). . Then, the deduplication function unit 21 of the access node 2 divides the file A into chunks D (data to be written) that is block data of a predetermined capacity (for example, 64 KB) as shown by an arrow Y2 in FIGS. (Step S2).

続いて、分割されたチャンクDのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Hを算出する(図8の矢印Y3)(ステップS3)。例えば、ハッシュ値Hは、予め設定されたハッシュ関数を用いて、チャンクDのデータ内容から算出する。   Subsequently, a unique hash value H representing the data content is calculated based on the data content of the divided chunk D (arrow Y3 in FIG. 8) (step S3). For example, the hash value H is calculated from the data content of the chunk D using a preset hash function.

続いて、ファイルAのチャンクDのハッシュ値Hを用いて、当該チャンクDが既に格納されているか否かを調べる(ステップS4)。このとき、既に格納されているチャンクDは、そのハッシュ値Hと格納位置を表すコンテンツアドレスCAとが関連付けられて記憶されたMFI(Main Fragment Index)ファイルであるハッシュテーブル25に登録されている。従って、格納前に算出したチャンクDのハッシュ値HがMFIファイル内に存在している場合には、既に同一内容のチャンクDが格納されていると判断できる(図8の矢印Y4)。この場合には、格納前のチャンクDのハッシュ値Hと一致したMFI内のハッシュ値Hに関連付けられているコンテンツアドレスCAを、当該MFIファイルから取得する。そして、このコンテンツアドレスCAを、書き込み要求されたチャンクDのコンテンツアドレスCAとして返却する。   Subsequently, using the hash value H of the chunk D of the file A, it is checked whether or not the chunk D has already been stored (step S4). At this time, the chunk D that has already been stored is registered in the hash table 25 that is an MFI (Main Fragment Index) file in which the hash value H and the content address CA representing the storage location are stored in association with each other. Therefore, if the hash value H of the chunk D calculated before storage exists in the MFI file, it can be determined that the chunk D having the same content has already been stored (arrow Y4 in FIG. 8). In this case, the content address CA associated with the hash value H in the MFI that matches the hash value H of the chunk D before storage is acquired from the MFI file. Then, this content address CA is returned as the content address CA of the chunk D requested to be written.

そして、返却されたコンテンツアドレスCAが参照する既に格納されているデータを、書き込み要求されたチャンクDとして使用する。つまり、書き込み要求されたチャンクDの格納先として、返却されたコンテンツアドレスCAが参照する領域を指定することで、当該書き込み要求されたチャンクDを記憶したこととする。このように、書き込み要求にかかるチャンクDが重複していると判断された場合(ステップS5:Yes)、実際に書き込みを行うことなく、上位に書き込み完了が通知される。   Then, the already stored data referred to by the returned content address CA is used as the chunk D requested to be written. That is, it is assumed that the chunk D requested to be written is stored by designating an area referred to by the returned content address CA as a storage destination of the chunk D requested to be written. As described above, when it is determined that the chunks D related to the write request are duplicated (step S5: Yes), the write completion is notified to the upper level without actually writing.

一方、書き込み要求にかかるチャンクDが重複しておらず、まだ記憶されていないと判断された場合には(ステップS5:No)、以下のようにしてユニークなチャンクDの書き込みを行う。まず、フラグメント分散機能部22は、チャンクDを圧縮して、図8の矢印Y5に示すように、複数の所定の容量のフラグメントデータに分割する(ステップS6)。例えば、図7の符号D1〜D9に示すように、チャンクDを9つのフラグメントデータ(分割データF1)に分割する。そしてさらに、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるチャンクDを復元可能なよう冗長データを生成し、上記分割したフラグメントデータF1に追加する(ステップS7)。例えば、図7の符号D10〜D12に示すように、3つのフラグメントデータ(冗長データF2)を追加する。これにより、9つの分割データF1と、3つの冗長データF2とにより構成される12個のフラグメントデータからなるデータセットを生成する。   On the other hand, when it is determined that the chunk D related to the write request is not duplicated and has not been stored yet (step S5: No), the unique chunk D is written as follows. First, the fragment distribution function unit 22 compresses the chunk D and divides the chunk D into a plurality of pieces of fragment data having a predetermined capacity as indicated by an arrow Y5 in FIG. 8 (step S6). For example, as indicated by reference numerals D1 to D9 in FIG. 7, the chunk D is divided into nine fragment data (divided data F1). Further, even if some of the divided fragment data is missing, redundant data is generated so that the original chunk D can be restored and added to the divided fragment data F1 (step S7). For example, three pieces of fragment data (redundant data F2) are added as indicated by reference numerals D10 to D12 in FIG. As a result, a data set composed of 12 fragment data composed of 9 divided data F1 and 3 redundant data F2 is generated.

このとき、フラグメント分散機能部22は、後述する分散パターンあたりのコンポーネントの総数を表すコンポーネント数情報27を元に、冗長データのフラグメントの数を設定して、複数のフラグメントデータからなるデータセットを生成する。例えば、コンポーネント数情報が「12」である場合には、上述したように9つの分割データF1と、3つの冗長データF2とにより構成される12個のフラグメントデータからなるデータセットを生成する。また、コンポーネント数情報が「10」である場合には、上述したように9つの分割データF1と、1つの冗長データF2とにより構成される10個のフラグメントデータからなるデータセットを生成する。なお、コンポーネント数情報は、初期状態では「12」に設定されているが、後述するデータ復元機能部24,32等によって更新される値である。   At this time, the fragment distribution function unit 22 sets the number of redundant data fragments based on component number information 27 indicating the total number of components per distribution pattern, which will be described later, and generates a data set composed of a plurality of fragment data. To do. For example, when the number-of-components information is “12”, as described above, a data set composed of 12 fragment data composed of nine divided data F1 and three redundant data F2 is generated. When the number-of-components information is “10”, as described above, a data set composed of ten fragment data composed of nine divided data F1 and one redundant data F2 is generated. The component number information is set to “12” in the initial state, but is a value updated by the data restoration function units 24 and 32 described later.

続いて、フラグメント分散機能部22は、ストレージノード3のフラグメント格納機能部31と協働して、上述したように生成されたデータセットを構成する各フラグメントデータを、複数のストレージノード3の物理ディスク30に分散して格納する。このとき、フラグメント分散機能部22は、フラグメントデータの元となるチャンクのハッシュ値を元に、当該チャンクのフラグメントデータの分散パターンを決定する。そして、フラグメント分散機能部22は、決定された分散パターンに従って、各ストレージノード3の物理ディスク30にそれぞれコンポーネントと呼ばれるデータ格納領域を配置し、各コンポーネントにそれぞれフラグメントデータを格納する(図8の矢印Y6参照)(ステップS8)。   Subsequently, the fragment distribution function unit 22 cooperates with the fragment storage function unit 31 of the storage node 3 to transfer each fragment data constituting the data set generated as described above to the physical disks of the plurality of storage nodes 3. 30 are stored in a distributed manner. At this time, the fragment distribution function unit 22 determines the distribution pattern of the fragment data of the chunk based on the hash value of the chunk that is the source of the fragment data. Then, according to the determined distribution pattern, the fragment distribution function unit 22 arranges data storage areas called components on the physical disks 30 of the respective storage nodes 3, and stores fragment data in the respective components (arrows in FIG. 8). (See Y6) (Step S8).

ここで、分散パターンは、1つのチャンクDから構成される複数のフラグメントデータが分散記憶される各コンポーネントの、複数のストレージノード3に対する配置を表す情報である。そして、分散パターンは、予めいくつかの種類が設定されており、例えば、図6に示すようにコンポーネント配置情報29に記憶されている。ここでは、各「分散パターン」(P1〜P5)は、それぞれ12個のコンポーネント(符号01〜12)を有しており、5つのノードに2個あるいは3個のコンポーネントをそれぞれ配置する5つのパターンとなっている。   Here, the distribution pattern is information representing the arrangement of each component in which a plurality of fragment data composed of one chunk D is distributed and stored with respect to a plurality of storage nodes 3. Several types of distribution patterns are set in advance, and are stored in the component arrangement information 29 as shown in FIG. 6, for example. Here, each “distributed pattern” (P1 to P5) has twelve components (reference numerals 01 to 12), and five patterns in which two or three components are arranged in five nodes, respectively. It has become.

図7に示す例では、チャンクDのハッシュ値から「分散パターン1」(P1)を決定し、かかる分散パターンで各ストレージノード3に各コンポーネントを配置して、各フラグメントデータを格納している。つまり、この例では、5つのストレージノードのうち、2つのストレージノードにそれぞれ3つのフラグメントデータが格納され、3つのストレージノードにそれぞれ2つのフラグメントデータが格納される。   In the example shown in FIG. 7, “distribution pattern 1” (P1) is determined from the hash value of chunk D, each component is arranged in each storage node 3 with this distribution pattern, and each fragment data is stored. That is, in this example, among the five storage nodes, three fragment data are stored in two storage nodes, and two fragment data are stored in three storage nodes.

このとき、フラグメント分散機能部22は、各コンポーネントに書き込まれたフラグメントデータの容量を元に、当該コンポーネント毎の容量をコンポーネント容量情報29に記憶して更新を行う(ステップS9)。   At this time, the fragment distribution function unit 22 stores and updates the capacity of each component in the component capacity information 29 based on the capacity of the fragment data written in each component (step S9).

続いて、フラグメント分散機能部22は、上述したように格納したフラグメントデータD1〜D12の格納位置、つまり、当該フラグメントデータD1〜D12にて復元されるチャンクDの格納位置を表すコンテンツアドレスCAを生成して管理する。具体的には、格納したチャンクDの内容に基づいて算出したハッシュ値Hの一部(ショートハッシュ)(例えば、ハッシュ値Hの先頭8B(バイト))と、論理格納位置を表す情報と、を組み合わせて、コンテンツアドレスCAを生成する。そして、このコンテンツアドレスCAをファイルシステムサービス20に返却し(図8の矢印Y7)、バックアップ対象データのファイル名などの識別情報と、コンテンツアドレスCAとを関連付けて上述したMFIファイルにて管理する。これにより、記憶したチャンクDのコンテンツアドレスCAが、ハッシュテーブル25に格納されることとなる。なお、このとき、各チャンクDの分散パターンも併せて管理される。例えば、各チャンクDのフラグメントデータを分散記憶したときの分散パターンを、コンポーネント配置情報29やMFIファイルに記憶して管理する。   Subsequently, the fragment distribution function unit 22 generates a content address CA indicating the storage position of the fragment data D1 to D12 stored as described above, that is, the storage position of the chunk D restored by the fragment data D1 to D12. And manage. Specifically, a part (short hash) of the hash value H calculated based on the contents of the stored chunk D (for example, the top 8B (bytes) of the hash value H) and information indicating the logical storage position, In combination, a content address CA is generated. Then, the content address CA is returned to the file system service 20 (arrow Y7 in FIG. 8), and the identification information such as the file name of the data to be backed up is associated with the content address CA and managed by the MFI file described above. As a result, the stored content address CA of the chunk D is stored in the hash table 25. At this time, the distribution pattern of each chunk D is also managed. For example, the distribution pattern when the fragment data of each chunk D is distributed and stored is stored and managed in the component arrangement information 29 and the MFI file.

そして、ファイルシステムサービス20は、書き込み要求されたデータの書き込み完了を、上位装置に通知する(ステップS10)。このようにして、書き込み処理が完了する。   Then, the file system service 20 notifies the host device of the completion of writing the data requested to be written (step S10). In this way, the writing process is completed.

次に、ストレージシステム1によるデータ読み出し処理について説明する。上位装置からストレージシステム1のファイルシステムサービス20に対して、特定のファイルを指定して読み出し要求があると、まず、読み出し要求にかかるファイルに対応するハッシュ値の一部であるショートハッシュと論理位置の情報からなるコンテンツアドレスCAを指定する。そして、コンテンツアドレスCAがMFIファイルであるハッシュテーブル25に登録されているか否かを調べる。登録されていなければ、要求されたデータは格納されていないため、エラーを返却する。   Next, data read processing by the storage system 1 will be described. When a read request is made by designating a specific file to the file system service 20 of the storage system 1 from the host device, first, a short hash and a logical position that are part of the hash value corresponding to the file related to the read request A content address CA consisting of the above information is designated. Then, it is checked whether or not the content address CA is registered in the hash table 25 that is an MFI file. If it is not registered, the requested data is not stored and an error is returned.

一方、読み出し要求にかかるコンテンツアドレスCAが登録されている場合には、上記コンテンツアドレスCAにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出す。このとき、各フラグメントが格納されているデータ格納ファイルと、当該データ格納ファイルのうち1つのフラグメントデータの格納位置が分かれば、同一の格納位置から他のフラグメントデータの格納位置を特定することができる。   On the other hand, when the content address CA related to the read request is registered, the storage location specified by the content address CA is specified, and each fragment data stored in the specified storage location is read. Read as requested data. At this time, if the data storage file in which each fragment is stored and the storage position of one fragment data in the data storage file are known, the storage position of other fragment data can be specified from the same storage position. .

そして、読み出し要求に応じて読み出した各フラグメントデータから元となるチャンクDを復元する。さらに、復元したチャンクDを複数連結し、ファイルAなどの一群のデータに復元して返却する。   Then, the original chunk D is restored from each fragment data read in response to the read request. Further, a plurality of restored chunks D are connected, restored to a group of data such as file A, and returned.

次に、複数のストレージノード3のうち、いずれか1つに障害が発生し、データを復元するときのデータ復元処理について、図9乃至図10のフローチャートを参照して説明する。   Next, data restoration processing when a failure occurs in any one of the plurality of storage nodes 3 and data is restored will be described with reference to the flowcharts of FIGS. 9 to 10.

まず、アクセスノード2のノード死活監視機能部23で、ストレージノード3のノード障害を検出した場合(ステップS21)、アクセスノード2のデータ復元制御機能部24は、コンポーネント配置情報29から、失われたコンポーネント配下のフラグメントデータが復元可能か確認を行う(ステップS22)。例えば、冗長データ数より多いフラグメントデータが失われていないかどうかにより、復元可能か否かの確認を行う。フラグメントデータが復元不可能と判断された場合は(ステップS23:No)、なにも行わずに処理を終える。フラグメントデータが復元可能であると判断された場合は(ステップS23:Yes)、コンポーネントをどこまで復元するか決定する(ステップS24)。   First, when the node alive monitoring function unit 23 of the access node 2 detects a node failure of the storage node 3 (step S21), the data restoration control function unit 24 of the access node 2 is lost from the component arrangement information 29. It is confirmed whether the fragment data under the component can be restored (step S22). For example, whether or not restoration is possible is confirmed based on whether or not fragment data larger than the number of redundant data is lost. If it is determined that the fragment data cannot be restored (step S23: No), the process is terminated without performing anything. If it is determined that the fragment data can be restored (step S23: Yes), it is determined how far the component is restored (step S24).

ここで、上記ステップS24のコンポーネントをどこまで復元するかを決定する処理の詳細を、図11のフローチャートを参照して説明する。なお、この処理は、アクセスノード2のデータ復元機能部24とストレージノード3のデータ復元機能部32及びフラグメント格納機能部31とが協働して行う。   Details of the process for determining how far the component in step S24 is to be restored will be described with reference to the flowchart of FIG. This process is performed by the data restoration function unit 24 of the access node 2, the data restoration function unit 32 and the fragment storage function unit 31 of the storage node 3 in cooperation.

まず、データ復元機能部24,32等(データ復元手段、復元データ数決定手段)は、ノード障害によって失われたコンポーネント配下のフラグメントが復元可能と判断された場合(ステップS31)、いくつのコンポーネントの復元を行うかの判断を行う。このとき、以下に説明するように、2段階で復元するコンポーネントの決定を行う。1段階目は、分散パターン毎に個別で復元するコンポーネントを決定する処理を行い、2段階目は、全ての分散パターンで所定数のコンポーネントを復元した場合における全データ容量が、予め設定されている閾値(許容容量値)以下となるか否かによって決定する。なお、閾値は、システムの利用者によってシステムの使用状況等から決定されるものであり、例えば、障害が生じていない残りのストレージノード3の全ての容量の90%に設定されている。但し、閾値は、上述した値であることに限定されず、障害が発生していない残りのストレージノード3の全容量や空き容量に応じて設定される値であってもよい。   First, when it is determined that the fragment under the component lost due to the node failure can be restored (step S31), the data restoration function units 24, 32, etc. (data restoration means, restoration data number determination means) Determine whether to restore. At this time, as will be described below, the component to be restored is determined in two stages. In the first stage, processing for determining the components to be restored individually for each distribution pattern is performed, and in the second stage, the total data capacity when a predetermined number of components are restored in all the distribution patterns is preset. It is determined by whether or not the threshold value (allowable capacity value) or less. Note that the threshold value is determined by the system user based on the usage status of the system, and is set to 90% of the total capacity of the remaining storage nodes 3 in which no failure has occurred, for example. However, the threshold value is not limited to the value described above, and may be a value set according to the total capacity or the free capacity of the remaining storage node 3 in which no failure has occurred.

具体的に、まず、コンポーネント配置情報29や各チャンクDの分散パターンの管理情報から、ノード障害により各分散パターンにおいて失われた各チャンクDのコンポーネント数を確認する(ステップS32)。そして、分散パターン間で失われたコンポーネント数が異なる場合は(ステップS32:Yes)、失われたコンポーネント数の多い分散パターンに該当する各チャンクDのコンポーネントの復元を決定する(ステップS33)。このとき、各分散パターンの各チャンクDで失われたコンポーネント数が同一となるよう、失われたコンポーネント数が多い分散パターンに該当する各チャンクDついてのコンポーネントを復元するよう決定する。例えば、図6に示す分散パターンで各チャンクが記憶されておりあり、ノード5に障害が生じた場合には、分散パターンP1,P2,P3のチャンクDでは2つのコンポーネントが失われ、分散パターンP4,P5のチャンクでは3つのコンポーネントが失われることとなる。このため、各分散パターンP4,P5の各チャンクDのコンポーネントをそれぞれ1つ復元するよう決定する。なお、失われたコンポーネント数が全ての分散パターンで均一の場合は(ステップS32:No)、ここではなにも行われない。   Specifically, first, the number of components of each chunk D lost in each distribution pattern due to a node failure is confirmed from the component arrangement information 29 and the distribution pattern management information of each chunk D (step S32). If the number of components lost between the distribution patterns is different (step S32: Yes), the restoration of the components of each chunk D corresponding to the distribution pattern with many lost components is determined (step S33). At this time, it is determined to restore the component for each chunk D corresponding to the distributed pattern having a large number of lost components so that the number of components lost in each chunk D of each distributed pattern is the same. For example, when each chunk is stored in the distribution pattern shown in FIG. 6 and a failure occurs in the node 5, two components are lost in the chunk D of the distribution patterns P1, P2, and P3, and the distribution pattern P4 , P5 chunks will lose three components. Therefore, it is determined to restore one component of each chunk D of each of the dispersion patterns P4 and P5. If the number of lost components is uniform in all the distribution patterns (step S32: No), nothing is performed here.

次に、データ復元機能部24,32等(データ復元手段、復元データ数決定手段)は、コンポーネント配置情報29や各チャンクDの分散パターンの管理情報に基づいて、復元するコンポーネントの数を変更していき、各数のコンポーネントを復元したときの復元後のデータ容量が、いつ閾値を下回るかを確認する(ステップS34,S35:No,S36)。このとき、全ての分散パターンに該当するチャンクDにおけるコンポーネント数が同一となるよう、復元数を失われたコンポーネントの最小数から1つずつ減少させていき、コンポーネントの復元数を変更していく。例えば、図6に示す分散パターンでノード5に障害が生じた場合には、まずは復元数を「2」とし、その後、「1」、「0」と変更していく。データ復元機能部24,32等は、各復元数のコンポーネントを全ての分散パターンのチャンクDで復元した場合における復元後の全てのデータ容量を、コンポーネント容量情報26に基づいて算出する。そして、算出したデータ容量が、上記閾値を下回るかどうか確認する。   Next, the data restoration function units 24 and 32 (data restoration means, restoration data number determination means) change the number of components to be restored based on the component arrangement information 29 and the distribution pattern management information of each chunk D. Then, it is confirmed when the restored data capacity when each number of components is restored falls below the threshold (steps S34, S35: No, S36). At this time, the number of restorations is decreased one by one from the minimum number of components lost so that the number of components in the chunk D corresponding to all the distribution patterns is the same, and the number of restorations of components is changed. For example, when a failure occurs in the node 5 in the distributed pattern shown in FIG. 6, the number of restorations is first set to “2”, and then changed to “1” and “0”. The data restoration function units 24, 32, etc. calculate all the restored data capacities based on the component capacity information 26 when the respective restoration number components are restored with all the distributed pattern chunks D. And it is confirmed whether the calculated data capacity is less than the said threshold value.

そして、全ての分散パターンのチャンクDでn個(nは0ではない整数)のコンポーネントの復元時に、復元するデータ容量が閾値を下回ることを確認できた場合に(ステップS36:No)、全ての分散パターンのチャンクDでn個のコンポーネントを復元することを決定する(ステップS38)。復元するコンポーネント数が決定すると、当該復元する数と残っているコンポーネント数とを足した値を、新たなコンポーネント数情報27として更新する(ステップS39)。   When it is confirmed that the data capacity to be restored is less than the threshold when restoring n components (n is an integer other than 0) in all the distributed pattern chunks D (step S36: No), It is determined to restore n components in chunk D of the distribution pattern (step S38). When the number of components to be restored is determined, a value obtained by adding the number to be restored and the number of remaining components is updated as new component number information 27 (step S39).

以上のようにして、全ての分散パターンにおいて復元するコンポーネントの数が決定された後の動作を、図10のステップS24以降を参照して説明する。上述したように、復元するコンポーネント数が決定され(ステップS24)、コンポーネント数情報27を更新すると(ステップS25)、復元を行うコンポーネントが存在するか否かを確認する(ステップS26)。復元するコンポーネントが存在する場合は(ステップS26:No)、各ストレージノード3の容量負荷を考慮して、どのストレージノード3上にコンポーネントを復元するか決定し(ステップS27)、コンポーネント、および、その配下のフラグメントの復元を行い(ステップS28)、コンポーネントにフラグメントを確認する(ステップS29)。   The operation after determining the number of components to be restored in all the distribution patterns as described above will be described with reference to step S24 and subsequent steps in FIG. As described above, the number of components to be restored is determined (step S24), and when the component number information 27 is updated (step S25), it is confirmed whether there is a component to be restored (step S26). When there is a component to be restored (step S26: No), it is determined on which storage node 3 the component is restored in consideration of the capacity load of each storage node 3 (step S27). The subordinate fragment is restored (step S28), and the fragment is confirmed in the component (step S29).

ここで、上述したストレージシステムにおけるノード障害時のデータ復元の具体例を説明する。まず、図6に示すように、5つのストレージノードに、コンポーネント総数の12個の5つの分散パターン(P1〜P5)のチャンクDが記憶されている場合を想定する。このとき、各ストレージノードの容量が「100」(単位は任意)、各コンポーネントの容量が「7」であることとする。また、上述した閾値は、「90%」であることとする。   Here, a specific example of data restoration at the time of a node failure in the above-described storage system will be described. First, as shown in FIG. 6, a case is assumed where chunks D of 12 distribution patterns (P1 to P5) of the total number of components are stored in 5 storage nodes. At this time, the capacity of each storage node is “100” (unit is arbitrary), and the capacity of each component is “7”. The threshold value described above is “90%”.

上記条件によると、いずれのストレージノードにも障害が生じていない場合には、ストレージノード3全体の容量は、「500」であり、コンポーネントの合計容量は、「420」(=7×60コンポーネント)である。すると、ストレージノード3の使用量は、「84%」となる。   According to the above conditions, if no failure has occurred in any storage node, the capacity of the entire storage node 3 is “500”, and the total capacity of the components is “420” (= 7 × 60 components). It is. Then, the usage amount of the storage node 3 is “84%”.

上記状況で、「ストレージノード5」に障害が発生した場合、失われたコンポーネント数は、「分散パターン1,2,3」でそれぞれ「2つ」、「分散パターン4,5」でそれぞれ「3つ」となる。すると、「分散パターン1,2,3」と「分散パターン4,5」との各チャンクDで、失われたコンポーネントの数が異なるため、これらを同一にするよう、「分散パターン4,5」のコンポーネントの「各1つ」が復元対象として決定される。これにより、コンポーネントを復元した場合に失われたコンポーネント数が、全ての分散パターンにおいて「2つ」というように同一となる。   In the above situation, when a failure occurs in “storage node 5”, the number of components lost is “2” for “distribution patterns 1, 2, 3” and “3” for “distribution patterns 4, 5”, respectively. "" Then, since the number of lost components is different in each chunk D of “distribution patterns 1, 2, 3” and “distribution patterns 4, 5”, the “distribution patterns 4, 5” are made to be the same. The “one each” of the components is determined as a restoration target. As a result, the number of components lost when the components are restored becomes the same as “two” in all the distribution patterns.

次に、全ての分散パターンで、復元するコンポーネントの数を決定する。まずは、全ての分散パターンで「2つ」(n=2)のコンポーネントを復元する場合のコンポーネントの合計容量、つまり、復元後の全てのデータ容量を計算する。
・コンポーネント合計容量=420(=7×12コンポーネント×5分散パターン)
上記コンポーネント合計容量は、ストレージノード障害後における4台ストレージノード全体の容量「400」(=100×4)の105%となるため、閾値を超えることとなり、n=2でコンポーネントの復元は行われない。
Next, the number of components to be restored is determined for all distribution patterns. First, the total capacity of components when “two” (n = 2) components are restored in all distribution patterns, that is, the total data capacity after restoration is calculated.
Component total capacity = 420 (= 7 × 12 components × 5 distribution pattern)
The total component capacity is 105% of the total capacity “400” (= 100 × 4) of the four storage nodes after the storage node failure, and thus exceeds the threshold value. The component is restored when n = 2. Absent.

次に、全ての分散パターンで「1つ」(n=1)のコンポーネントを復元する場合のコンポーネントの合計容量を計算する。
・コンポーネント合計容量=385(=7×11コンポーネント×5分散パターン)
上記コンポーネント合計容量は、ストレージノード障害後における4台ストレージノード全体の容量「400」の約96%となるため、閾値を超えることとなり、n=1でのコンポーネントの復元も行われない。
Next, the total capacity of the components when restoring “one” (n = 1) components in all the distribution patterns is calculated.
Component total capacity = 385 (= 7 × 11 components × 5 distribution pattern)
The total component capacity is about 96% of the total capacity “400” of the four storage nodes after the storage node failure, and thus exceeds the threshold value, and the component is not restored when n = 1.

結果的に、上述した例では、「分散パターン4,5」にそれぞれ該当する各チャンクDにおいて、1つずつのコンポーネントが復元される。このとき、分散パターンあたりのコンポーネントの総数は「10」となり、コンポーネント数情報27が更新される。これにより、フラグメント分散機能部22では、ノード障害前には、1つのチャンクDについて9つのフラグメントに3つの冗長フラグメントを付加して12個のフラグメントデータを生成していたが、ノード障害後には、1つのチャンクDについて9つのフラグメントに1つの冗長フラグメントを付加して10個のフラグメントデータを生成するようになる。   As a result, in the above-described example, one component is restored in each chunk D corresponding to each of “distribution patterns 4 and 5”. At this time, the total number of components per distributed pattern is “10”, and the component number information 27 is updated. As a result, the fragment distribution function unit 22 generates 12 pieces of fragment data by adding three redundant fragments to nine fragments for one chunk D before the node failure. For one chunk D, one redundant fragment is added to nine fragments to generate ten fragment data.

なお、上述した具体例において、仮に、閾値が97%である場合には、n=1、つまり、全ての分散パターンで復元数が「1」となり、上述した「分散パターン4,5」で復元するコンポーネントと併せると、全ての分散パターンでコンポーネント総数が「11」となるよう復元されることとなる。   In the specific example described above, if the threshold value is 97%, n = 1, that is, the number of restorations is “1” in all the dispersion patterns, and restoration is performed using the above-described “dispersion patterns 4 and 5”. When combined with the component to be restored, the total number of components is restored to “11” in all distribution patterns.

以上のように、ストレージノードの障害後に容量が「400」となった際に、全てのコンポーネントを復元すると、「420」の容量となってしまい、フラグメント復元中にシステム容量が枯渇する可能性があった。しかしながら、本発明におけるストレージシステムでは、一部のコンポーネントのフラグメントのみ復元を行うため、システム容量の枯渇を抑制することができる。   As described above, when all the components are restored when the capacity becomes “400” after the failure of the storage node, the capacity becomes “420”, and the system capacity may be exhausted during fragment restoration. there were. However, in the storage system according to the present invention, only a fragment of some components is restored, so that the system capacity can be prevented from being exhausted.

このとき、ストレージノード障害前の空き容量は「100」であり、本システムでは、冗長用フラグメントが付加されるため、実際に上位から書き込める容量は、「75」(=100×9/12)であった。一方、ストレージノード障害後は、空き容量が「50」(=400−350)であるが、冗長用フラグメントの数が「3」から「1」になっているため、上位から書き込みが可能な容量は「45」となる。すなわち、空き容量は、「100」から「50」へと「50%」に減少しているが、実際に書き込める容量は、「75」から「45」へと「40%」の減少で済むこととなり、記憶容量の効率的な利用を図ることができる。   At this time, the free capacity before the failure of the storage node is “100”, and in this system, since a redundant fragment is added, the capacity that can actually be written from the upper level is “75” (= 100 × 9/12). there were. On the other hand, after the storage node failure, the free capacity is “50” (= 400−350), but the number of redundant fragments has changed from “3” to “1”, so that the capacity that can be written from the upper level is available. Becomes “45”. That is, the free space has decreased from “100” to “50” to “50%”, but the actual writable capacity can be reduced by “40%” from “75” to “45”. Thus, efficient use of the storage capacity can be achieved.

また、上述した例では、コンポーネントを全く復元しなかった場合には、データの冗長性が低下する。ここで、その後に、例えばディスク死活監視機能部33により各ストレージノード3における物理ディスクの障害等が検出されることによってフラグメントが一部失われた場合を考える。この場合、「分散パターン1,2,3」ではチャンクは再構成可能であるが、「分散パターン4,5」では、冗長フラグメント3つに対して3つのフラグメントデータを失っているため、チャンクは再構成不可能となる。しかしながら、本発明では、「分散パターン1,2,3」とコンポーネント数を同一すべく、「分散パターン4,5」でそれぞれコンポーネントを1つ復元しているため、フラグメントデータが一部失われた場合であっても、「分散パターン4,5」においてもチャンクが再構成可能となる。その結果、チャンクの耐性つまり冗長性を一定に保つことができ、システムの信頼性の向上を図ることができる。   Further, in the above-described example, if no component is restored, data redundancy is reduced. Here, a case is considered in which, for example, a part of the fragment is lost due to, for example, a physical disk failure detected in each storage node 3 detected by the disk alive monitoring function unit 33. In this case, chunks can be reconfigured in “distributed patterns 1, 2, 3”, but in “distributed patterns 4, 5”, three pieces of fragment data are lost for three redundant fragments. It cannot be reconfigured. However, in the present invention, in order to make the number of components the same as “distribution patterns 1, 2, and 3”, one component is restored in each of “distribution patterns 4 and 5”, so a part of fragment data is lost. Even in this case, chunks can be reconfigured even in “distributed patterns 4 and 5”. As a result, the chunk tolerance, that is, the redundancy can be kept constant, and the reliability of the system can be improved.

<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム(図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 (see FIG. 12), program, and data processing method according to the present invention will be described below. However, the present invention is not limited to the following configuration.

(付記1)
複数の記憶手段120に対してデータを記憶する際に、記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、前記複数の記憶手段にそれぞれ分散して記憶する分散記憶処理手段111と、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元手段112と、を備え、
前記データ復元手段112は、前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する復元データ数決定手段113を有する、
ストレージシステム100。
(Appendix 1)
When storing data in the plurality of storage means 120, a plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data are generated, and the plurality Distributed storage processing means 111 for storing each of the storage means in a distributed manner,
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. Data restoring means 112 for restoring based on the fragment data and storing it in the other storage means,
The data restoration unit 112 calculates all data capacities in the storage system after restoration when at least a part of the lost fragment data is restored, and all the calculated data capacities after restoration A restoration data number determining means 113 for determining the number of fragment data to be restored based on the capacity of the storage means in which no failure has occurred,
Storage system 100.

(付記2)
付記1に記載のストレージシステムであって、
前記復元データ数決定手段は、前記算出した復元後の全てのデータ容量が、障害が発生していない前記記憶手段の容量に基づく許容容量値以下となるよう、復元する前記フラグメントデータの数を決定する、
ストレージシステム。
(Appendix 2)
The storage system according to attachment 1, wherein
The restoration data number determining means determines the number of fragment data to be restored so that the calculated data capacity after restoration is not more than an allowable capacity value based on the capacity of the storage means in which no failure has occurred. To
Storage system.

(付記3)
付記1又は2に記載のストレージシステムであって、
前記分散記憶手段は、1つの記憶対象データから生成された前記複数のフラグメントデータの前記各記憶手段に対する配置状況を表す分散パターンに従って、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記分散パターンに基づいて、障害が発生することにより失われた前記フラグメントデータの数を確認し、当該失われた前記フラグメントデータのうち復元する当該フラグメントデータの数を変更しながら復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
ストレージシステム。
(Appendix 3)
The storage system according to appendix 1 or 2,
The distributed storage unit distributes the plurality of fragment data to the plurality of storage units according to a distribution pattern representing an arrangement state of the plurality of fragment data generated from one storage target data with respect to each storage unit. Remember,
The restoration data number determining means confirms the number of fragment data lost due to a failure based on the distribution pattern, and determines the number of fragment data to be restored from the lost fragment data. The fragment to be restored is calculated based on all the calculated data capacities in the restored storage system while changing, and the calculated capacity of the restored storage means and the capacity of the storage means in which no failure has occurred. Determine the number of data,
Storage system.

(付記4)
付記3に記載のストレージシステムであって、
前記分散記憶手段は、前記記憶対象データ毎に、前記複数の記憶手段に対する前記フラグメントデータの配置状況がそれぞれ異なる前記分散パターンに従って、それぞれ前記フラグメントデータをそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記各分散パターンにて分散記憶された全ての前記記憶対象データについて、復元後の前記フラグメントデータの数が同一となるよう、復元する前記フラグメントデータの数を決定する、
ストレージシステム。
(Appendix 4)
The storage system according to attachment 3, wherein
The distributed storage means stores the fragment data in a distributed manner according to the distribution pattern in which the arrangement state of the fragment data in the plurality of storage means is different for each storage target data,
The restoration data number determination means decides the number of fragment data to be restored so that the number of fragment data after restoration is the same for all the storage target data distributed and stored in each distribution pattern. ,
Storage system.

上記発明によると、複数の記憶手段のうちいずれかに障害が発生したときに、障害が発生していない残りの記憶手段の容量に基づいて、復元するフラグメントデータの数を決定して、失われたフラグメントデータの全て又は一部を復元する。具体的には、全ての記憶対象データについて失われたフラグメントデータが複数ある場合には、全ての記憶対象データについてのフラグメントデータの数が同一になり、かつ、復元後のデータ容量が残りの記憶手段の容量に基づく許容容量値以下となるよう、復元するフラグメントデータの数を決定する。そして、決定された数のフラグメントデータのみを復元することで、データの復元によるシステムの信頼性を維持しつつ、システム全体の容量の枯渇を抑制することができる。   According to the above invention, when a failure occurs in any one of the plurality of storage means, the number of fragment data to be restored is determined based on the capacity of the remaining storage means in which no failure has occurred. Restore all or part of the fragment data. Specifically, when there are a plurality of lost fragment data for all the storage target data, the number of fragment data for all the storage target data is the same, and the restored data capacity is the remaining storage capacity. The number of fragment data to be restored is determined so as to be less than the allowable capacity value based on the capacity of the means. Then, by restoring only the determined number of fragment data, it is possible to suppress the depletion of the capacity of the entire system while maintaining the reliability of the system due to the restoration of the data.

(付記5)
付記4に記載のストレージシステムであって、
前記復元データ数決定手段は、復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
ストレージシステム。
(Appendix 5)
The storage system according to appendix 4, wherein
The restoration data number determining means determines the number of lost fragment data for each storage target data distributed and stored in each distribution pattern before determining the number of fragment data to be restored. Deciding to restore the fragment data of the storage target data with a large number of lost fragment data,
Storage system.

(付記6)
付記5に記載のストレージシステムであって、
前記復元データ数決定手段は、復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、当該フラグメントデータの数が同一となるよう、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
ストレージシステム。
(Appendix 6)
The storage system according to appendix 5,
The restoration data number determining means determines the number of lost fragment data for each storage target data distributed and stored in each distribution pattern before determining the number of fragment data to be restored. Deciding to restore the fragment data of the storage target data with a large number of lost fragment data so that the number of the fragment data is the same.
Storage system.

上記構成により、分散パターンが異なることにより、記憶対象データ間で失われたフラグメントデータの数が異なる場合には、失われた数が多い記憶対象データについてのフラグメントデータが優先して復元される。これにより、その後における記憶対象データの耐性つまり冗長性を一定に保つことができ、システムの信頼性の向上を図ることができる。   With the above configuration, when the number of fragment data lost among the storage target data differs due to different distribution patterns, the fragment data for the storage target data with a large number of lost is preferentially restored. As a result, the durability, that is, the redundancy of the data to be stored thereafter can be kept constant, and the reliability of the system can be improved.

(付記7)
付記1乃至6のいずれかに記載のストレージシステムであって、
前記分散記憶処理手段は、前記復元データ数決定手段にて決定された復元する前記フラグメントデータの数に基づく復元後の前記記憶対象データについてのフラグメントデータの数を、前記記憶対象データから生成する前記フラグメントデータの数として設定し、当該数のフラグメントデータを前記記憶対象データから生成して、前記複数の記憶手段に分散して記憶する、
ストレージシステム。
(Appendix 7)
The storage system according to any one of appendices 1 to 6,
The distributed storage processing unit generates the number of fragment data for the storage target data after restoration based on the number of fragment data to be restored determined by the restoration data number determination unit from the storage target data. Set as the number of fragment data, generate the number of fragment data from the storage target data, and distribute and store in the plurality of storage means,
Storage system.

上記構成により、記憶手段の障害発生後においても、容量の枯渇を抑制しつつ、冗長性を確保し、さらには、記憶容量の効率的な利用を図ることができる。   With the above configuration, even after a failure of the storage means, it is possible to ensure redundancy while suppressing the depletion of the capacity, and to efficiently use the storage capacity.

(付記8)
情報処理装置に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、複数の記憶手段にそれぞれ分散して記憶する分散記憶処理手段と、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元手段と、を実現させると共に、
前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する復元データ数決定手段を有する前記データ復元手段を実現させる、
ためのプログラム。
(Appendix 8)
In the information processing device,
Distributed storage processing means for generating a plurality of fragment data composed of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, and storing each of the fragment data in a plurality of storage means,
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. And restoring the data based on the fragment data and storing the data in the other storage means,
Calculate all data capacities in the restored storage system when at least a part of the lost fragment data is restored, and no faults have occurred with the calculated data capacities after restoration. Realizing the data restoration means having restoration data number determination means for determining the number of fragment data to be restored based on the capacity of the storage means;
Program for.

(付記8.1)
付記8に記載のプログラムであって、
前記分散記憶手段は、1つの記憶対象データから生成された前記複数のフラグメントデータの前記各記憶手段に対する配置状況を表す分散パターンに従って、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記分散パターンに基づいて、障害が発生することにより失われた前記フラグメントデータの数を確認し、当該失われた前記フラグメントデータのうち復元する当該フラグメントデータの数を変更しながら復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
プログラム。
(Appendix 8.1)
The program according to attachment 8, wherein
The distributed storage unit distributes the plurality of fragment data to the plurality of storage units according to a distribution pattern representing an arrangement state of the plurality of fragment data generated from one storage target data with respect to each storage unit. Remember,
The restoration data number determining means confirms the number of fragment data lost due to a failure based on the distribution pattern, and determines the number of fragment data to be restored from the lost fragment data. The fragment to be restored is calculated based on all the calculated data capacities in the restored storage system while changing, and the calculated capacity of the restored storage means and the capacity of the storage means in which no failure has occurred. Determine the number of data,
program.

(付記8.2)
付記8.1に記載のプログラムであって、
前記分散記憶手段は、前記記憶対象データ毎に、前記複数の記憶手段に対する前記フラグメントデータの配置状況がそれぞれ異なる前記分散パターンに従って、それぞれ前記フラグメントデータをそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記各分散パターンにて分散記憶された全ての前記記憶対象データについて、復元後の前記フラグメントデータの数が同一となるよう、復元する前記フラグメントデータの数を決定する、
プログラム。
(Appendix 8.2)
A program according to appendix 8.1,
The distributed storage means stores the fragment data in a distributed manner according to the distribution pattern in which the arrangement state of the fragment data in the plurality of storage means is different for each storage target data,
The restoration data number determination means decides the number of fragment data to be restored so that the number of fragment data after restoration is the same for all the storage target data distributed and stored in each distribution pattern. ,
program.

(付記8.3)
付記8.2に記載のプログラムであって、
前記復元データ数決定手段は、復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
プログラム。
(Appendix 8.3)
A program according to appendix 8.2,
The restoration data number determining means determines the number of lost fragment data for each storage target data distributed and stored in each distribution pattern before determining the number of fragment data to be restored. Deciding to restore the fragment data of the storage target data with a large number of lost fragment data,
program.

(付記8.4)
付記8.3に記載のプログラムであって、
前記復元データ数決定手段は、復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、当該フラグメントデータの数が同一となるよう、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
プログラム。
(Appendix 8.4)
The program according to attachment 8.3,
The restoration data number determining means determines the number of lost fragment data for each storage target data distributed and stored in each distribution pattern before determining the number of fragment data to be restored. Deciding to restore the fragment data of the storage target data with a large number of lost fragment data so that the number of the fragment data is the same.
program.

(付記9)
複数の記憶手段に対してデータを記憶する際に、記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、前記複数の記憶手段にそれぞれ分散して記憶し、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元処理を行い、
前記データ復元処理の際に、前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
データ処理方法。
(Appendix 9)
When storing data in a plurality of storage means, generate a plurality of fragment data consisting of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, Each of the storage means is distributed and stored,
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. The data is restored based on the fragment data and stored in the other storage means.
During the data restoration process, all data capacities in the storage system after restoration when at least a part of the lost fragment data is restored are calculated, and all the calculated data capacities after restoration are calculated. And determining the number of fragment data to be restored based on the capacity of the storage means in which no failure has occurred,
Data processing method.

(付記10)
付記9に記載のデータ処理方法であって、
データを記憶する際に、1つの記憶対象データから生成された前記複数のフラグメントデータの前記各記憶手段に対する配置状況を表す分散パターンに従って、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶し、
復元する前記フラグメントデータの数を決定する際に、前記分散パターンに基づいて、障害が発生することにより失われた前記フラグメントデータの数を確認し、当該失われた前記フラグメントデータのうち復元する当該フラグメントデータの数を変更しながら復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
データ処理方法。
(Appendix 10)
A data processing method according to attachment 9, wherein
When storing data, each of the plurality of fragment data is distributed to the plurality of storage units according to a distribution pattern representing an arrangement state of the plurality of fragment data generated from one storage target data with respect to each storage unit. Remember,
When determining the number of fragment data to be restored, based on the distribution pattern, the number of fragment data lost due to a failure is confirmed, and the fragment data to be restored is restored. Calculate all data capacities in the restored storage system while changing the number of fragment data, and based on the calculated all data capacities after restoration and the capacity of the storage means in which no failure has occurred Determine the number of fragment data to be restored;
Data processing method.

(付記10.1)
付記10に記載のデータ処理方法であって、
データを記憶する際に、前記記憶対象データ毎に、前記複数の記憶手段に対する前記フラグメントデータの配置状況がそれぞれ異なる前記分散パターンに従って、それぞれ前記フラグメントデータをそれぞれ分散して記憶し、
復元する前記フラグメントデータの数を決定する際に、前記各分散パターンにて分散記憶された全ての前記記憶対象データについて、復元後の前記フラグメントデータの数が同一となるよう、復元する前記フラグメントデータの数を決定する、
データ処理方法。
(Appendix 10.1)
A data processing method according to attachment 10, wherein
When storing data, for each of the storage target data, according to the distribution pattern in which the fragment data arrangement status with respect to the plurality of storage means are different, respectively, the fragment data is respectively distributed and stored,
When determining the number of fragment data to be restored, the fragment data to be restored so that the number of fragment data after restoration is the same for all the storage target data distributed and stored in each of the distribution patterns Determine the number of
Data processing method.

(付記10.2)
付記10.1に記載のデータ処理方法であって、
復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
データ処理方法。
(Appendix 10.2)
A data processing method according to attachment 10.1,
Before determining the number of fragment data to be restored, if the number of fragment data lost is different for each storage target data distributed and stored in each distribution pattern, the lost fragment data Determining to restore the fragment data of the storage target data having a large number;
Data processing method.

(付記10.3)
付記10.2に記載のデータ処理方法であって、
復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、当該フラグメントデータの数が同一となるよう、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
データ処理方法。
(Appendix 10.3)
A data processing method according to attachment 10.2,
Before determining the number of fragment data to be restored, the number of fragment data is the same when the number of lost fragment data is different for each storage target data distributed and stored in each distribution pattern. Determining to restore the fragment data of the storage target data in which the number of lost fragment data is large so that
Data processing method.

なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。   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 アクセスノード
20 ファイルシステムサービス
21 重複排除機能部
22 フラグメント分散機能部
23 ノード死活監視機能部
24 データ復元機能部
25 ハッシュテーブル
26 コンポーネント容量情報
27 コンポーネント数情報
28 システム容量情報
29 コンポーネント配置情報
3 ストレージノード
30 物理ディスク
31 フラグメント格納機能部
32 データ復元機能部
33 ディスク死活監視機能部
4 バックアップシステム
5 バックアップ対象装置
100 ストレージシステム
111 分散記憶処理手段
112 データ復元手段
113 復元データ数決定手段
120 記憶手段
DESCRIPTION OF SYMBOLS 1 Storage system 2 Access node 20 File system service 21 Deduplication function part 22 Fragment distribution function part 23 Node alive monitoring function part 24 Data restoration function part 25 Hash table 26 Component capacity information 27 Component number information 28 System capacity information 29 Component arrangement information 3 Storage node 30 Physical disk 31 Fragment storage function unit 32 Data restoration function unit 33 Disk alive monitoring function unit 4 Backup system 5 Backup target device 100 Storage system 111 Distributed storage processing unit 112 Data restoration unit 113 Restored data number determination unit 120 Storage unit

Claims (8)

複数の記憶手段に対してデータを記憶する際に、記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、前記複数の記憶手段にそれぞれ分散して記憶する分散記憶処理手段と、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元手段と、を備え、
前記データ復元手段は、前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する復元データ数決定手段を有し、
前記分散記憶処理手段は、1つの記憶対象データから生成された前記複数のフラグメントデータの前記各記憶手段に対する配置状況を表す分散パターンに従って、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記分散パターンに基づいて、障害が発生することにより失われた前記フラグメントデータの数を確認し、当該失われた前記フラグメントデータのうち復元する当該フラグメントデータの数を変更しながら復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
ストレージシステム。
When storing data in a plurality of storage means, generate a plurality of fragment data consisting of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, Distributed storage processing means for distributing and storing each in the storage means;
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. Data restoration means for restoring based on the fragment data and storing in the other storage means,
The data restoration means calculates all data capacities in the storage system after restoration when at least a part of the lost fragment data is restored, and all the calculated data capacities after restoration, based on the capacity of the storage means there is no failure, have a restoring data number determining means for determining the number of the fragment data to be restored,
The distributed storage processing unit distributes the plurality of fragment data to the plurality of storage units according to a distribution pattern representing an arrangement state of the plurality of fragment data generated from one storage target data with respect to each storage unit. Remember,
The restoration data number determining means confirms the number of fragment data lost due to a failure based on the distribution pattern, and determines the number of fragment data to be restored from the lost fragment data. The fragment to be restored is calculated based on all the calculated data capacities in the restored storage system while changing, and the calculated capacity of the restored storage means and the capacity of the storage means in which no failure has occurred. Determine the number of data,
Storage system.
請求項1に記載のストレージシステムであって、
前記復元データ数決定手段は、前記算出した復元後の全てのデータ容量が、障害が発生していない前記記憶手段の容量に基づく許容容量値以下となるよう、復元する前記フラグメントデータの数を決定する、
ストレージシステム。
The storage system according to claim 1,
The restoration data number determining means determines the number of fragment data to be restored so that the calculated data capacity after restoration is not more than an allowable capacity value based on the capacity of the storage means in which no failure has occurred. To
Storage system.
請求項1又は2に記載のストレージシステムであって、
前記分散記憶処理手段は、前記記憶対象データ毎に、前記複数の記憶手段に対する前記フラグメントデータの配置状況がそれぞれ異なる前記分散パターンに従って、それぞれ前記フラグメントデータをそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記各分散パターンにて分散記憶された全ての前記記憶対象データについて、復元後の前記フラグメントデータの数が同一となるよう、復元する前記フラグメントデータの数を決定する、
ストレージシステム。
The storage system according to claim 1 or 2 ,
The distributed storage processing means stores the fragment data in a distributed manner in accordance with the distribution pattern in which the fragment data arrangement status with respect to the plurality of storage means is different for each storage target data,
The restoration data number determination means decides the number of fragment data to be restored so that the number of fragment data after restoration is the same for all the storage target data distributed and stored in each distribution pattern. ,
Storage system.
請求項に記載のストレージシステムであって、
前記復元データ数決定手段は、復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
ストレージシステム。
The storage system according to claim 3 ,
The restoration data number determining means determines the number of lost fragment data for each storage target data distributed and stored in each distribution pattern before determining the number of fragment data to be restored. Deciding to restore the fragment data of the storage target data with a large number of lost fragment data,
Storage system.
請求項に記載のストレージシステムであって、
前記復元データ数決定手段は、復元する前記フラグメントデータの数を決定する前に、前記各分散パターンにて分散記憶された前記各記憶対象データについて、失われた前記フラグメントデータの数が異なる場合に、当該フラグメントデータの数が同一となるよう、失われた前記フラグメントデータの数が多い前記記憶対象データの前記フラグメントデータを復元することを決定する、
ストレージシステム。
The storage system according to claim 4 ,
The restoration data number determining means determines the number of lost fragment data for each storage target data distributed and stored in each distribution pattern before determining the number of fragment data to be restored. Deciding to restore the fragment data of the storage target data with a large number of lost fragment data so that the number of the fragment data is the same.
Storage system.
請求項1乃至のいずれかに記載のストレージシステムであって、
前記分散記憶処理手段は、前記復元データ数決定手段にて決定された復元する前記フラグメントデータの数に基づく復元後の前記記憶対象データについてのフラグメントデータの数を、前記記憶対象データから生成する前記フラグメントデータの数として設定し、当該数のフラグメントデータを前記記憶対象データから生成して、前記複数の記憶手段に分散して記憶する、
ストレージシステム。
The storage system according to any one of claims 1 to 5 ,
The distributed storage processing unit generates the number of fragment data for the storage target data after restoration based on the number of fragment data to be restored determined by the restoration data number determination unit from the storage target data. Set as the number of fragment data, generate the number of fragment data from the storage target data, and distribute and store in the plurality of storage means,
Storage system.
情報処理装置に、
記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、複数の記憶手段にそれぞれ分散して記憶する分散記憶処理手段と、
前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元手段と、を実現させると共に、
前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する復元データ数決定手段を有する前記データ復元手段を実現させ、
前記分散記憶処理手段は、1つの記憶対象データから生成された前記複数のフラグメントデータの前記各記憶手段に対する配置状況を表す分散パターンに従って、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶し、
前記復元データ数決定手段は、前記分散パターンに基づいて、障害が発生することにより失われた前記フラグメントデータの数を確認し、当該失われた前記フラグメントデータのうち復元する当該フラグメントデータの数を変更しながら復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
ことを実現させるためのプログラム。
In the information processing device,
Distributed storage processing means for generating a plurality of fragment data composed of divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data, and storing each of the fragment data in a plurality of storage means,
If a failure occurs in any of the storage means, the fragment data lost due to the occurrence of the failure is stored in another storage means different from the storage means in which the failure has occurred. And restoring the data based on the fragment data and storing the data in the other storage means,
Calculate all data capacities in the restored storage system when at least a part of the lost fragment data is restored, and no faults have occurred with the calculated data capacities after restoration. Based on the capacity of the storage means, realizing the data restoration means having restoration data number determination means for determining the number of fragment data to be restored ,
The distributed storage processing unit distributes the plurality of fragment data to the plurality of storage units according to a distribution pattern representing an arrangement state of the plurality of fragment data generated from one storage target data with respect to each storage unit. Remember,
The restoration data number determining means confirms the number of fragment data lost due to a failure based on the distribution pattern, and determines the number of fragment data to be restored from the lost fragment data. The fragment to be restored is calculated based on all the calculated data capacities in the restored storage system while changing, and the calculated capacity of the restored storage means and the capacity of the storage means in which no failure has occurred. Determine the number of data,
A program to make things happen .
情報処理装置が、複数の記憶手段に対してデータを記憶する際に、記憶対象データを複数に分割した分割データ及び当該記憶対象データを復元するための冗長データからなる複数のフラグメントデータを生成して、前記複数の記憶手段にそれぞれ分散して記憶し、
前記情報処理装置が、前記記憶手段のいずれかに障害が発生した場合に、当該障害が発生することにより失われた前記フラグメントデータを、当該障害が発生した前記記憶手段とは異なる他の記憶手段に記憶されている他のフラグメントデータに基づいて復元して、当該他の記憶手段に記憶するデータ復元処理を行い、
前記情報処理装置が、前記データ復元処理の際に、前記失われたフラグメントデータのうち、少なくとも一部を復元した場合における復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定し、
前記情報処理装置が、データを記憶する際に、1つの記憶対象データから生成された前記複数のフラグメントデータの前記各記憶手段に対する配置状況を表す分散パターンに従って、前記複数のフラグメントデータを前記複数の記憶手段にそれぞれ分散して記憶し、
前記情報処理装置が、復元する前記フラグメントデータの数を決定する際に、前記分散パターンに基づいて、障害が発生することにより失われた前記フラグメントデータの数を確認し、当該失われた前記フラグメントデータのうち復元する当該フラグメントデータの数を変更しながら復元後のストレージシステム内の全てのデータ容量を算出し、当該算出した復元後の全てのデータ容量と、障害が発生していない前記記憶手段の容量とに基づいて、復元する前記フラグメントデータの数を決定する、
データ処理方法。
When the information processing apparatus stores data in a plurality of storage means, it generates a plurality of fragment data including divided data obtained by dividing the storage target data into a plurality of pieces and redundant data for restoring the storage target data. Each of the plurality of storage means is distributed and stored,
When the information processing apparatus fails in any of the storage means, the fragment data lost as a result of the failure is stored in another storage means different from the storage means in which the failure has occurred. Is restored based on the other fragment data stored in the data, and is stored in the other storage means,
The information processing apparatus calculates all data capacities in the storage system after restoration when at least a part of the lost fragment data is restored during the data restoration processing, and the calculated restoration Based on all subsequent data capacity and the capacity of the storage means in which no failure has occurred, determine the number of fragment data to be restored ,
When the information processing apparatus stores data, the plurality of fragment data is converted into the plurality of fragment data according to a distribution pattern representing an arrangement state of the plurality of fragment data generated from one storage target data with respect to each storage unit. Each of the storage means is distributed and stored,
When the information processing apparatus determines the number of fragment data to be restored, the information processing apparatus confirms the number of fragment data lost due to a failure based on the distribution pattern, and the lost fragment Calculate all data capacities in the restored storage system while changing the number of fragment data to be restored among the data, and calculate all the data capacities after restoration and the storage means in which no failure has occurred Determine the number of fragment data to be restored based on the capacity of
Data processing method.
JP2014021092A 2014-02-06 2014-02-06 Storage system Active JP6269120B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014021092A JP6269120B2 (en) 2014-02-06 2014-02-06 Storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014021092A JP6269120B2 (en) 2014-02-06 2014-02-06 Storage system

Publications (2)

Publication Number Publication Date
JP2015148919A JP2015148919A (en) 2015-08-20
JP6269120B2 true JP6269120B2 (en) 2018-01-31

Family

ID=53892235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014021092A Active JP6269120B2 (en) 2014-02-06 2014-02-06 Storage system

Country Status (1)

Country Link
JP (1) JP6269120B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6733214B2 (en) * 2016-02-19 2020-07-29 日本電気株式会社 Control device, storage system, control method, and program
CN114640867A (en) * 2022-05-20 2022-06-17 广州万协通信息技术有限公司 Video data processing method and device based on video stream authentication
CN114710693A (en) * 2022-05-25 2022-07-05 广州万协通信息技术有限公司 Video stream distributed transmission method and device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06230903A (en) * 1993-01-31 1994-08-19 Hitachi Ltd Fault recovery method for disk array device and disk array device
US7979771B2 (en) * 2006-04-04 2011-07-12 Permabit Technology Corporation Erasure coding technique for scalable and fault tolerant storage system
JP5556192B2 (en) * 2010-01-26 2014-07-23 日本電気株式会社 Storage system

Also Published As

Publication number Publication date
JP2015148919A (en) 2015-08-20

Similar Documents

Publication Publication Date Title
US10977124B2 (en) Distributed storage system, data storage method, and software program
JP5637552B2 (en) Storage system
US10353635B2 (en) Data control across multiple logical arrays
US10303570B2 (en) Method and apparatus for managing data recovery of distributed storage system
US11144212B2 (en) Independent partitions within an array
JP2018508073A (en) Data removal, allocation and reconstruction
US11734186B2 (en) Heterogeneous storage with preserved addressing
KR20120032920A (en) System and method for distributely processing file volume for chunk unit
WO2024148856A1 (en) Data writing method and system, and storage hard disk, electronic device and storage medium
JP6653370B2 (en) Storage system
JP5556192B2 (en) Storage system
JP6269120B2 (en) Storage system
US20160328162A1 (en) Logical arrays running on physical hardware where reserve physical capacity is available
JP2010176181A (en) Storage system
JP6337982B1 (en) Storage system
JP5660617B2 (en) Storage device
JP5929326B2 (en) Storage system
JP5365236B2 (en) Storage system
JP2020190812A (en) Deduplication storage method, deduplication storage control device, deduplication storage system, and program
JP5891842B2 (en) Storage system
JP7491545B2 (en) Information Processing Method
JP6343952B2 (en) Storage system

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6269120

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150