JP2011520182A - 分散データストレージシステムの信頼性の動的定量化と改善 - Google Patents

分散データストレージシステムの信頼性の動的定量化と改善 Download PDF

Info

Publication number
JP2011520182A
JP2011520182A JP2011505075A JP2011505075A JP2011520182A JP 2011520182 A JP2011520182 A JP 2011520182A JP 2011505075 A JP2011505075 A JP 2011505075A JP 2011505075 A JP2011505075 A JP 2011505075A JP 2011520182 A JP2011520182 A JP 2011520182A
Authority
JP
Japan
Prior art keywords
score
calculating
normal
value
calculated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011505075A
Other languages
English (en)
Other versions
JP5289557B2 (ja
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 Laboratories America Inc
Original Assignee
NEC Laboratories America Inc
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 Laboratories America Inc filed Critical NEC Laboratories America Inc
Publication of JP2011520182A publication Critical patent/JP2011520182A/ja
Application granted granted Critical
Publication of JP5289557B2 publication Critical patent/JP5289557B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system

Abstract

データが複数のディスクを有する分散データストレージシステムに保存されている。ディスクが故障すると、システムの信頼性は、スケジュールにしたがって再構築の集合を実行することによって回復する。システムの信頼性は、動的なノーマルシーディービエイションスコアによって特徴付けられている。再構築の集合を実行するスケジュールは、最小の交差ポリシーによって定められる。再構築の集合を受け付けると、再構築の集合を最低の冗長性レベルから最高の冗長性レベルまでの範囲内にある冗長性レベルによって順序付けされているキューの集合に分割する。各キュー内の再構築について、交差行列が計算される。各ディスクについてディスクスコアが計算される。再構築の集合のスケジュールは交差行列、ノーマルシーディービエイションスコア、およびディスクスコアの少なくとも一部に基づいている。
【選択図】図1

Description

本出願は、2008年4月17日に出願された米国仮出願第61/045,718号の利益を主張し、その開示をここに取り込む。
本発明は、データストレージシステムに関し、特に、分散データストレージシステムの信頼性の動的定量化と改善に関する
信頼性の高いデータの保存は、例えば、個人記録、金融取引、マルチメディアサービス、工業プロセス制御、および基礎研究などの広範なアプリケーションにわたって重要な作業である。データは、半導体媒体(例えば、フラッシュメモリ)、光電子媒体(例えば、コンパクトディスクやデジタルビデオディスク)、磁気媒体(例えば、テープやハードディスク)などの物理媒体に保存される。大容量および高速の動的読み/書き速度が要求されるアプリケーションにおいては、磁気ハードディスクが現在最も一般的なデータストレージ装置である。しかし、他の媒体の容量および読み/書き速度も増大し続けている。
大容量のデータストレージシステムの場合、複数のデータストレージ装置を相互に接続することがある。例えば、複数のハードディスクドライブをローカルインターフェイスを介して接続してデータストレージユニットを構成する。そして、複数のデータストレージユニットをデータ通信ネットワークを介して接続して分散データストレージシステムを構成する。各装置が故障する可能性があるため、分散データストレージシステムには複数の障害点が設けられている。信頼性を改善するために、しばしば冗長化が行われる。その場合、RAID−1または複製ベースの分散システム(replica-based distributed system)などにおいて、複数のデータブロックを複製したり、RAID−5または消失符号化分散システム(erasure-coded distributed system)などにおいて、追加の情報を保存したりする。システム内の冗長性の量が過度に大きくない場合は、大規模システム内で装置が故障した時に、その装置に保存されていたデータを直ちに他の装置上で再構築する必要がある。その理由は、装置の修理や交換には長時間かかることがあり、その間に新しい故障が発生する可能性があるためである。しかし、高冗長化は、装置を追加する費用が伴うため、ハードウェアを追加する代わりに、障害管理ポリシーを通じて信頼性を改善することが好ましい。
信頼性を改善するためには、まず、分散データストレージシステムの信頼性を特徴付ける定量的な測定基準を定義する必要がある。既存の測定基準としては、データ損失確率(PDL:Probability of Data Loss)および平均データ損失時間(MTTDL:Mean Time To Data Loss)がある。PDLは、結果的にデータ損失が発生したシミュレーションの割合として推定されるか、または、システムに対するPDLのモデル(通常はモデルの組み合わせ)を使用して推定される。同様に、MTTDLは、多くのシミュレーションを通してデータ損失が発生するまでの時間の平均値として推定されるか、または、システムの信頼性のモデル(通常はマルコフモデル)を使用して推定される。しかし、PDLおよびMTTDLは、どのように計算される場合も、時間やシステムの現在の状態とは関係のない1つの静的な尺度を使用して信頼性を定量化している。これらの測定基準は、アプリケーションによっては有用であるが、巨視的、長期的な視野でシステムの信頼性を提供しているに過ぎず、装置の障害、データの再構築、装置の交換が発生した時に、その時点での信頼性を評価することはできない。
装置のさらなる冗長化を行うことなく、分散データストレージシステムの信頼性を動的に定量化するとともに、信頼性を改善する方法および装置が必要とされている。
本発明の実施形態においては、データは、複数のディスクを有する分散データストレージシステムに保存される。ディスクの故障時には、システムの信頼性は、スケジュールにしたがって再構築の集合(set)を実行することによって回復する。再構築の集合は、受け付けられると、最低の冗長性レベルから最高の冗長性レベルまでの範囲内にある冗長性レベルによって順序付けされているキューの集合(set)に分割される。冗長性レベルが最も低いキュー内の再構築用の第1の交差行列(intersection matrix)が計算される。システムの信頼性を特徴付ける第1のノーマルシーディービエイションスコア(Normalcy Deviation Score)が計算される。各ディスクの第1のディスクスコアが計算される。第1の交差行列と、第1のノーマルシーディービエイションスコアと、第1のディスクスコアと、の少なくとも一部に基づいて、受け付けた再構築の集合に対して第1のスケジュールが生成される。残りのキューについても上記プロセスが繰り返され、最終的なスケジュールが生成される。
本発明のこれらおよびその他の効果は、以下の詳細な説明と添付の図面とを参照することによって、当業者に対して明らかになろう。
データ通信システムの概略図である。 クラスタ割り当てについての冗長性スキームを示す図である。 チェーン化デクラスタリング(chained declustering)割り当てについての冗長性スキームを示す図である。 デクラスタリング割り当てについての冗長性スキームを示す図である。 回復プロセスについてのステップを示すフローチャートである。 MinIポリシーについてのステップを示すフローチャートである。 MinIポリシーについてのステップを示すフローチャートである。 MinIポリシーについてのステップを示すフローチャートである。 MinIポリシーについてのステップを示すフローチャートである。 コンピュータの概略図である。
図1は、データ通信システムの概略図である。様々なネットワーク要素がデータネットワーク102を介して通信を行う。ネットワーク要素の数は多くてもよい(数千以上)。代表的なネットワーク要素には、ネットワークサーバ1 108、ネットワークサーバ2 110、ユーザ装置1 112、およびユーザ装置2 114がある。ユーザ装置の例としては、ワークステーション、パーソナルコンピュータ、および携帯電話がある。データは、フラッシュドライブ、CDドライブ、DVDドライブ、および磁気ハードドライブなどの物理データストレージ装置に保存される。ここでは、個別の物理データストレージ装置を「ディスク」と呼ぶ。「ディスク」は、磁気ハードドライブには限定されておらず、任意の物理データストレージ装置を指すことに留意されたい。複数のディスクを接続してハードドライブのバンク(組み立て品)などのデータストレージユニットを構成することができる。ここでは、データストレージユニットは、ディスクが1つである場合も含んでいる。複数のデータストレージユニットをデータネットワーク102を介して接続して分散データストレージシステムを構成することができる。ここでは、分散データストレージシステムは、データストレージユニットが1つである場合も含んでいる。ここでは、分散データストレージシステムは、ディスクの集合を有している。
図1において、分散データストレージシステム104は、3つのデータストレージユニット:データストレージユニット1 120、データストレージユニット2 130、およびデータストレージユニット3 140を有している。各データストレージユニットは3つのディスクを有しており、データストレージユニット1 120はディスク1 122、ディスク2 124、およびディスク3 126を有し、データストレージユニット1 130はディスク1 132、ディスク2 134、およびディスク3 136を有し、データストレージユニット3 140はディスク1 142、ディスク2 144、およびディスク3 146を有している。一般に、データストレージユニット内のディスクの数は多く、例えば、現在のデータストレージユニットは12個のハードドライブを有している。技術の進歩に伴い、その数は増え続けている。分散データストレージシステム内のデータストレージユニットの数も多く、例えば、数百以上である。
図1は、データ通信システム用の代表的なネットワークアーキテクチャを示している。本発明の実施形態は、特定のネットワークアーキテクチャに適合することができる。例えば、各データストレージユニット内のディスクの数は様々であり、また、データストレージユニットのグループをローカルインターフェイスまたはローカルエリアネットワークを介して接続することができる。そして、複数のグループを接続して分散データストレージシステムを構成することができる。一般に、データストレージユニットは、特定のサイトが停電したり破壊されたりした場合、複数のサイトに地理的に分散させて冗長性を実現することができる。ディスクまたはデータストレージユニットは、専用のスタンドアローンユニット、または、ネットワークサーバ1 108もしくはユーザ装置1 112などのネットワーク要素の不可欠な部分であってもよいことに留意されたい。
分散データストレージシステムの信頼性ステータスは動的に変化し、ディスクおよびデータストレージユニットが故障すると、それらのデータは再構築され、故障した装置は交換されたり修理されたりする。ある時点でのシステムの信頼性を定量化する測定基準は、2つの一般的なクラス:前向き(forward-looking)および後ろ向き(backward-looking)に分類される。前向きの測定基準においては、各時点での信頼性は、データ損失につながる可能性のある潜在的(potencial)な将来のイベントに関して特徴付けられる。前向きの動的な測定基準は、将来のイベントの確率に依存しているPDLやMTTDLなどの従来の静的な測定基準と同様である。後ろ向きの測定基準は、潜在的な将来のイベントには依存しておらず、システムの実際の現在のステータスを表している。現在の信頼性は、データの冗長性が減少した過去のイベントの関数である。
本発明の実施形態においては、システムの信頼性は、ノーマルシーディービエイションスコア(NDS)と呼んでいる動的な後ろ向きの測定基準によって特徴付けられる。この定式化において、データはデータブロックにまとめられている。ここでは、データブロックをブロックとも呼ぶ。ブロックはフラグメントに分割される。フラグメントの部分集合(subset)によってブロックを再構築することが求められる。ここでは、ブロックはフラグメントの集合を有している。詳細は後述する。時刻tでのNDSはアルゴリズムにしたがって計算される。
Figure 2011520182
ここで、kは、正常動作下での分散データシステム内の全てのブロックの冗長性レベルである。ここで、正常動作とは、全てのディスクが動作可能であって、全てのデータブロックの冗長性が損なわれていない分散データストレージシステムの状態を指す。
iは、時間tで残っている、冗長性レベルがiのブロックの数、
allocは、ディスクを再構築するための最短時間、
fは、ユーザ(ここでは、システム管理者とも呼ぶ)が選択したスケーリング係数(scaling factor)である。
パラメータTallocは、後述するデータ割り当てスキームに依存する。当業者は他の構造にしたがってまとめられているデータに対するNDSアルゴリズムを開発することができる。
システム管理者は、冗長性レベルのさらなる損失がさらにどれだけ重大かを反映するようにfを選択してもよい。例えば、f=10の場合、各冗長性レベルの損失によって、システムの信頼性は、さらに1桁だけ低下する。kの値は、システムの冗長性レベルに依存している。システムの冗長性は、記号(n,m)で表すことが可能である。各データブロックは、n個のフラグメントに複製され、ストライプ化され、または符号化されているが、そのうちm(m≦n)個だけがブロックの読み取りに必要となる。ここで、kはn−mに等しい。例えば、RAID−1システムは、(2,1)でk=1と記述することが可能である。これは各ブロックが複製を持つが、そのコピー(フラグメント)のうち1つだけがブロックの読み取りに必要なためである。特定のデータブロックについての全てのフラグメントが存在する場合、残っている冗長性のレベルはkである。特定のデータブロックについての1つのフラグメントが損失した場合、残っている冗長性のレベルはk−1である。一般に、特定のデータブロックについての残っている冗長性のレベルは、ブロックのデータが失われることなくデータブロックがさらに失ってもよいフラグメントの数である。各ディスクが任意のデータブロックの1つのフラグメントをホストしている実施形態では、特定のデータブロックについての残っている冗長性のレベルは、特定のデータブロックが失われるまでに故障してもよいディスクの数である。つまり、残っている冗長性のレベルは、k−(失われたフラグメントの数)である。
1つまたは2つ以上のフラグメントが失われた場合に、再構築を実行して、システムの信頼性を正常動作下での信頼性となるように回復する。ここでは、「フラグメント再構築」は、そのブロックの他のフラグメントを使用して、失われたフラグメントを再作成(再組み立て)するプロセスを指す。ここでは、「ブロック再構築」は、ブロックの失われたフラグメントを再構築するプロセスを指す。
NDS測定基準の主な利点を以下に示す。
(a)動的かつ効率的に計算できる。分散データストレージシステムには正確な動作のためにデータ割り当ておよび装置障害情報が必要であるため、biについての情報が直ちに利用可能である。さらに、指数成分を予め容易に計算可能であり、Tallocも予め容易に計算可能な定数である。
(b)フレキシブルであり、特定の装置に関して、ユーザ(システム管理者)がパラメータを構成可能である。システム管理者は、fを適切に設定することによって、冗長性の損失を重み付けすることができる。
(c)失われそうなブロックには、測定基準において重みを大きくすることができる。NDSは、冗長性の損失にfで指数的に重み付けをし、各冗長性レベルにおけるブロック数に線形的に重み付けをする。
(d)比較的少数のブロックの冗長性の重大な損失は、システムに残っている大量の冗長性によってならされることはない(not amortized)。NDSは冗長性を失っていないブロックには影響されない。その理由は、iが0からk−1の範囲となるためである。
(e)ディスク上でデータを再構築する時間も考慮される。ディスクサイズが増加するにしたがい、失われた冗長性を再構築する時間は、システムの信頼性においてますます重要な要因となる。パラメータとして再構築時間を明示的に含めることによって、同じ障害イベント下での様々なデータ割り当てを比較することができる。NDSはディスクを再構築する時間を線形的とみなす。
(式1)によって記述される実施形態においては、NDSには単位がない。正常動作下では、測定基準の値は0に等しい。全てのブロックが冗長性を失った場合(つまり、装置内のいずれかの場所でのもう1回の障害がデータ損失の原因となる場合)、その値はB×fk×Tallocとなる。データが失われると、NDSは正の無限大となるように定義されている。したがって、測定基準の値がより小さいと、システムの信頼性がより良好になる。他の実施形態においては、NDS値は、実現可能な最悪のスコア(データ損失前)に対して正規化(normalize)され、正規化されたスコアについて0から1の範囲となる。
NDSによって、同じシステムの状態の比較、または、同じ冗長性スキーム(つまり、nおよびmの値が同じ)を有しているが異なるデータ割り当てスキームを有している異なるシステムの状態の比較が可能になる。また、NDSは、正常動作下での信頼性予測に使用可能なPDLやMTTDLなどの標準的な(静的)信頼性の測定基準と組み合わせることも可能である。
前述のように、Tallocはデータ割り当てスキームに依存している。3つの一般的なデータ割り当てスキームに適用される本発明の実施形態を以下に説明する。これらのデータ割り当てスキームは、クラスタリング(Talloc=Tclus)、チェーン化デクラスタリング(Talloc=Tcdc)、およびデクラスタリング(Talloc=Tdealloc)と呼ばれる。
クラスタリングは、同じブロックのフラグメントを保存しているディスクの数が最小になるように、データブロックのフラグメントを配置する。図2Aは、4個のディスク(D0 202〜D3 208と符号が付されている)と全部で12個のブロック(各々が2個のフラグメントを備える)とを備えている(2,1)のデータストレージシステムを示している。ブロックの読み取りには1個のフラグメントだけが必要である。図2Aにおいて、ブロックおよびフラグメントはインデックスブロック:フラグメントによって示されており、例えば、表記0:1はブロック0とフラグメント1を示している。図2Aに示すように、ディスクD0 202およびディスクD1 204は、ブロック0から5のフラグメントを保存しているのに対して、ディスクD2 206およびディスクD3 208は、ブロック6から11のフラグメントを保存している。図2Bに示すように、ディスクD0 202に障害が発生すると、次の障害の影響されやすい唯一のデータは、ディスクD1 204上に保存されているデータであって、データ損失の可能性のある唯一の状況は、ディスクD1 204が故障することである。しかし、ディスクD0 202上に保存されているフラグメントを再構築するには、ディスクD1 204が唯一の回復元であり、つまり、このディスクが全てのフラグメントの再構築の回復集合における唯一のディスクである。そのため、全ての再構築がディスクD1 204上の回復帯域(recovery bandwidth)を巡って競合することになる。
この場合の(一定の回復帯域ついての)最適なスケジュールは、再構築を並列にではなく順番に実行するものになる。一般に、重複している回復集合によって再構築を実行すると、重複しているディスクの回復帯域が分割されて、全ての再構築が遅くなる。クラスタリングの下で、ディスクの障害後に並列に実行可能な再構築の最大数は
Figure 2011520182
となる。回復帯域が一定の場合、この数の再構築を並列に実行すると最小の再構築時間となる。したがって、クラスタリングの下での故障したディスクの全てのデータフラグメントを再構築する最小時間は:
Figure 2011520182
となる。ここで、dsizeは故障したディスクに保存されているデータの量、brは回復帯域である。ただし、Tclusは、データ再構築だけを考慮しており、元のディスクが交換または修理されたり、システムに再統合されたりした後に、それらのデータを元のディスクに転送することは無視していることに留意されたい。この選択の理由は、NDSは冗長性に関するものであり、ハードウェア障害後の再構築によって冗長性が増加するのに対して、元のディスクへデータを転送して戻してもそうはならないからである。さらに、Tclusは、ディスクが素早く交換されたり修理されたりする場合でも、データを再構築する最小時間になることに留意されたい。ディスクは、オンラインになったときには空だと仮定される。つまり、ディスクの内容全体をコピーして戻せるようになる前に再構築しなければならない。以下のTcdcとTdeclusとは同様に定義されている。
チェーン化デクラスタリングは、各ブロックのフラグメントを、論理的に隣接しているディスクにバランスよく保存されるように、分散させる。例えば、図3Aは、この冗長性スキームの下でのフラグメントの配置を示している。データストレージシステムは、D0 302〜D3 308と符号が付されている4つのディスクを有している。例えば、図3Bにおいて、ディスクD0 302が故障すると、ディスクD1 304およびD3 308の両方が再構築の構築元としての役割を果たすことができる。2つのフラグメントは並列に再構築され、クラスタリング割り当てスキームに比べると、全体の再構築時間と、データが脆弱である期間と、が減少する。しかし、ディスクD0 302上のデータが再構築される前に、ディスクD1 304またはD3 308のいずれかが故障すると、その障害によってデータは失われることになる。この割り当てスキームを仮定すると、ディスクの障害後に並列に実行可能な再構築の最大数は
Figure 2011520182
となる。回復帯域が一定であると仮定すると、故障したディスク上に保存されているデータを再構築するのに要する最小時間は
Figure 2011520182
となる。
デクラスタリング(グループロケイティドデクラスタリング(Group Rotated Declustering)を省略して呼んだもの)は、ディスク間でのコロケーションの程度を最小にするように、データブロックのフラグメントを分散させる。これは、グループ内の作動中のディスクにわたって再構築の負荷を均等にさせることにつながる。図4Aは、デクラスタリングのための複数のデータフラグメントの配置を示している。データストレージシステムは、D0 403〜D3 408と符号が付されている4つのディスクを有している。図4Bに示すように、ディスクD0 402が故障すると、残りのディスク(D1 404〜D3 408)の各々は、正確に2つのフラグメントの再構築の回復元としての役割を果たすことができ、3つの再構築を並列に実行することができる。しかし、ディスクD0 402上に保存されているデータが再構築できる前に、他のディスクのいずれかが故障すると、データが失われることになる。3つの割り当てスキームの中で、ディスク再構築を完了する時間は、デクラスタリングが最小となるであろう。デクラスタリングはフラグメントを均等に展開するため、潜在的に並列に実行可能な再構築の数は
Figure 2011520182
となる。ここで、dgは、各グループ内のディスクの数、つまり各ディスクのデータが展開されているディスクの数である。再び、回復帯域が一定であると仮定すると、故障したディスクのデータを再構築するのに要する最小時間は
Figure 2011520182
となる。
本発明の実施形態においては、データを故障したディスクおよびデータストレージユニットから素早く再構築して、分散データストレージシステムの長期間の冗長性の減少を避けるために、NDSがデータ回復スケジューリングポリシー(アルゴリズム)の測定基準として使用されている。このポリシーは、ここでは最小交差(MinI)と呼ばれ、各フラグメントの再構築に対して回復集合を選択し、全体の再構築時間を最小化するよう再構築の集合の順番を設定する。ここでは、回復集合は、回復元ディスクおよび回復先ディスクの集合を指す。指定された回復先ディスクについて、回復集合は、回復元ディスクの集合も指す。ここでは、回復先ディスクは目標ディスクとも呼ばれる。MinIは、各再構築をいつ実行し、どのディスクがそれに関わるかを定める。冗長性のために、各再構築において、複数のディスクが潜在的にデータ回復元となり得る。高性能化のために、MinIは、各回復について異なる目標(回復先)ディスクを使用する。この判断のために、MinIはNDS測定基準を活用して、信頼性と性能とをトレードオフする。例えば、ある実施形態において、ディスク帯域の増加によって予測されたパーセント損失(percentage loss)を超えるパーセントNDS利得(percentage NDS gain)が発生する場合、MinIは、予め定められている限界まで再構築専用のディスク帯域を増加させる。
MinIスケジューリングアルゴリズムは、以下の原理に基づいて、グリードな発見的問題解決法を使用する。
(a)MinIは、現在の冗長性レベルに基づいて再構築を順序付けする。現在の冗長性の量が低ければ、優先度は高くなる。最も脆弱なデータブロックのフラグメントを最初に再構築することによって、さらなる障害が発生した場合のデータ損失の可能性を最小にすることが保証される。さらに、再構築はコピーバックよりも優先度が高く、後者は冗長性を増加させない。そのため、対応するディスク上で何らの再構築も実行されていないときにのみコピーバックを実行することができる。
(b)MinIは、干渉を回避しながら、並列性を最大化するように各再構築の回復集合を選択する。フラグメントを再構築するためには、同じブロックの残りのフラグメントのうち任意のm個のフラグメントを使用することができる。MinIは、回復元ディスクを柔軟に選択して、並列再構築の回復集合内の交差を最小化する。また、2次元ディスクスコアとグリードなアルゴリズムとを使用して、ディスクスコアが最小であるm個のディスクを選択する。NDSによって計算される信頼性の利得が通常のアクセス性能における潜在的な損失を正当化するものである場合、完全に独立して実行できない(つまり、重複している回復集合を有している)再構築は、並列に実行されるだけである。
(c)回復に割り当てられているディスク帯域の増加によって全体の信頼性が改善される。しかし、回復帯域が広くなると、分散データストレージシステムに実際にアクセスする帯域幅が狭くなる。さらに、システム内の全ディスクの回復帯域の増加は、ディスクの小さな集合だけが回復処理のボトルネックになっているときには、効果的ではないことがある。MinIは、複数の再構築に関連しているディスクの部分集合の回復帯域を、予め定められている限界値まで動的に増加させる。限界はユーザ(システム管理者)が指定することができる。このアプローチの結果、通常のアクセス帯域の損失が小さいのに、システム信頼性は高くなる。
MinIは、入力として、実施すべき再構築の集合を取り込み、出力として、スケジュールを生成する。スケジュールには、次に実施すべき再構築と使用すべき回復集合とが含まれている。入力される再構築の集合は、特定のブロックの失われたフラグメントの再作成に使用可能な既存のフラグメントの位置によって定められる。スケジュールを計算するために、MinIは、冗長性の残りの量に基づいて、再構築の集合を独立のキューに分割する。つまり、残っているフラグメントの数が同数であるブロックの再構築をグループにまとめる。キューは、最低の冗長性レベルから最高の冗長性レベルまでの範囲内にある冗長性レベルで順序付けされる。ポリシーは、残っている冗長性の量が最小で空ではないキューに関連付けられている再構築のスケジューリングから開始する。以下で説明するように、交差行列はこれらの再構築について計算される。MinIは、交差行列の中から、交差が最小の潜在的なディスク回復元の集合を有している再構築のペアを選択する。交差が最小の複数のペアが存在する場合、集合内のランダムなペアが選択される。本発明の他の実施形態は、同じ冗長性レベル内の将来的な交差を最小にする、より高度なタイブレーキングアプローチを使用してもよい。
その後、以下で説明するように、MinIは、2次元ディスクスコアを使用して選択された再構築に対して回復集合を選択する。選択された再構築が重複する回復集合を有している場合、MinIは、信頼性と性能との間のトレードオフに応じてそれらをスケジュールに追加する。以下で説明するように、実際のトレードオフ関数はユーザが指定することができる。そして、ポリシーは、現在の冗長性レベルのキュー内の残りの再構築を繰り返し行い、(この冗長性レベルに対する交差行列を再び参照して)すでにスケジュール内にある再構築と最も交差が少ない再構築を選択し、回復集合を割り当て、前述のように信頼性と性能とのトレードオフを取る。残りの冗長性の昇順に、他の冗長性レベルのキュー内の再構築に関する前述の処理を繰り返す。他の各冗長性レベルについて、スケジュール内に存在する以前のキューの再構築と現在のキュー内の再構築との交差が計算される。この交差についての情報は現在の交差行列内に現れる。
各冗長性レベルについて、第1の再構築をスケジュールに含めることが拒絶された後は、さらなる再構築を考慮する必要はない。全ての冗長性レベルのキューにわたる再構築をスケジュールに含めることが考慮された後にポリシーは停止する。スケジュールに含められない再構築は、現在のスケジュールが実行された後で再度考慮されることになる。
交差行列は、各冗長性レベルのキューについて計算される。行列の各要素は、そのキュー内の再構築の潜在的な回復元の集合のペアの交差の大きさを有している。i番目の行は、i番目の再構築の回復元の集合およびそのキュー内の残りの全ての再構築の交差の大きさを含んでいる。したがって、各交差行列は対称である。つまり、交差(i、j)は(j、i)と同じである。
ディスクスコアは、システム内の全てのディスクについて計算された2次元的なスコアである。ディスクスコアは静的スコアと動的スコアとを有している。ディスクの静的スコアは、回復元または回復先となり得る再構築の数を示している。ディスクの動的スコアは、回復集合が回復元または回復先のいずれかに属している、スケジュールされた再構築の数を示している。初期には、全てのディスクにディスクスコア0:0が割り当てられている。1番目の数は静的スコアを示し、2番目の数は動的スコアを示している。MinIは、再構築を繰り返し、幾つかの再構築の回復元になる可能性がある各ディスクの静的スコアを増加させる。動的スコアは、MinIが現在のスケジュールに再構築を追加すると更新される。2つのディスクのディスクスコアの比較には、最初に行われる動的スコアの比較と、動的スコアが同じである場合に続いて行われる静的スコアの比較とが含まれる。
MinIは、潜在的な回復元集合内のディスクのディスクスコアを使用して、ディスクスコアが最小となるm個のディスクを選択する。回復先のディスクが選択されていない場合(以前に開始された同じ再構築が、システム内の他のイベントによって中断されている場合、そのディスクが選択されていることがある)、他の使用可能なディスクの中から最小のディスクスコアを有するディスクが選択され、その動的スコアも増加させる。
MinIは、NDSを利用して信頼性と性能とのトレードオフを取り、性能の低下に比べてNDSを十分に改善できる場合にだけ、2つの独立してない再構築を並列にスケジューリングする。性能が低下する理由は、MinIは、回復帯域を、(以下で説明するユーザ指定の限界まで)ディスク上で並列に実行されている各再構築に対し、各再構築があたかもディスク上で単独で実行されているように、割り当てるからである。このことは、重複している回復集合の再構築によって、通常のストレージアクセスに使用可能な帯域幅が奪われることを意味する。したがって、性能と信頼性とのトレードオフを取る場合、性能の変化は、通常のアクセス帯域幅のパーセント損失によって表される。ここで、通常のアクセスの帯域幅のパーセント損失は、可変損失によって表される。NDSの利得は、再構築前のNDS値と再構築後の予測されるNDS値との間のパーセント差として計算される。ここでは、NDSの利得は可変利得によって表される。
再構築の回復集合が、スケジュール上にすでに存在している他の再構築の回復集合と重複する場合、MinIは、スケジュール上の再構築の各NDSの利得の総和を、重複しているディスクの回復帯域が増加した場合にシステムが被るさらなる性能損失と比較する。当業者は、本発明の実施形態に対して様々な比較関数を指定できる。ここでは、比較関数は、トレードオフ関数とも呼ばれ、利得および損失の関数:トレードオフ(利得、損失)である。本発明の一実施形態においては、MinIは、信頼性利得と潜在的な性能損失との間の線形比較を使用する。言い換えると、信頼性のパーセント利得(percentage gain)が性能のパーセント損失よりも高い場合、再構築がスケジュールに追加される。最後に、再構築にさらなるディスク帯域幅を割り当てたことに起因する、最大許容可能性能損失には、ユーザが定義した限界が存在する。MinIは、信頼性の利得が性能の損失よりも比較的小さい場合または性能の損失の限界に達した場合に、次の冗長性レベルのキューにジャンプする。
図5は、回復プロセス全体の実施形態の模式図を示している。ステップ502において、ディスクまたはデータストレージユニットの故障が検出される。続いて、ステップ504に進み、回復タスクの集合(再構築の集合)が構成される。これらのタスクはステップ506でモニターされる。ステップ508において、ステータスチェックが実施される。実行を待っているタスクがない場合、ステップ510に進み、プロセスは終了する:つまり、故障が回復している。実行を待っているタスクが存在する場合、ステップ512に進み、MinIポリシーが実行される。ステップ512のさらなる詳細な説明は以下で説明する。ステップ512の出力はタスクの集合であり、それらタスクの集合は、ステップ514でスケジュールされ、ステップ516で実行される。その後、ステップ506にループバックし、ステップ506〜ステップ516が繰り返される。
MinIポリシー(ステップ512)の詳細を図6A〜図6Dに示す。ステップ512の入力および出力は、それぞれA501およびB503で示されている。図6Aを参照する。ステップ602において、アルゴリズムのパラメータが初期化される。スケジュールされ実行されschedListと表されるタスクの一覧は空集合に初期化される。パラメータrLevelQsは、冗長性の残りの量によって順序付けられている冗長性キューの一覧に設定される。全てのディスクに対するディスクスコアが初期化される。
続いて、ステップ604に進み、ステータスチェックが実施される。rLevelQsが空である場合は、ステップ610に進み、schedListが戻され、MinIポリシーを抜ける。rLevelQsが空ではない場合は、ステップ606に進む。パラメータrLevelQはrLevelQs内の第1のリスト要素として定義され、rLevelQs.first_list_elementと表される。続いて、この第1のリスト要素は、rLevelQsから取り除かれる。続いて、ステップ608に進み、ステータスチェックが実施される。rLevelQが空である場合は、ステップ604に戻る。rLevelQが空ではない場合は、ステップ612に進む(図6Bを参照)。ステップ612においては、rLevelQ内の再構築について交差行列が作られる。
続いて、ステップ614に進み、ステータスチェックが実施される。rLevelQが空である場合は、ステップ604(図6A)に戻る。rLevelQが空ではない場合は、ステップ616に進み、ステータスチェックが実施される。schedListが空ではない場合、ステップ618に進む(図6C参照)。schedListが空ではない場合、ステップ630に進む(図6D参照)。
まず、ステップ618から始まる分岐について説明する。ステップ618(図6C)において、以下の処理が実施される:(a)rLevelQから、交差行列を使用して、交差が最小である再構築のペアを選択する。そのようなペアが2つ以上存在する場合、ペアの1つを無作為に選択する。(b)各再構築について、ディスクスコアが最小であるm個の回復元ディスクを選択する。そのような回復元ディスクの集合が2つ以上存在する場合、集合の1つを無作為に選択する、(c)各再構築について、ディスクスコアが最小である他のディスクを回復先ディスクとして選択する。そのようなディスクが2つ以上存在する場合、ディスクの1つを無作為に選択する。続いて、ステップ620に進み、以下のパラメータが設定される:(a)第1の再構築の全ての回復元ディスクと回復先ディスクの集合であるrecovery_set_1、(b)第2の再構築の全ての回復元ディスクと回復先ディスクの集合であるrecovery_set_2、(c)recovery_set_1とrecovery_set_2の両方に属しているディスクの集合であるintersection。
続いて、ステップ622に進み、ステータスチェックが実施される。intersectionが空である場合、ステップ624に進み、再構築のペアがschedListに追加されるとともに、rLevelQから削除される。続いて、ステップ614(図6B)に戻る。intersectionが空ではない場合、ステップ626に進み、再構築のペアに対する利得、損失、およびトレードオフが(前述のように)計算される。続いて、ステップ628に進み、ステータスチェックが実施される。トレードオフの値が受け入れられる場合、ステップ624に進み、その後にステップ614(図6B)に戻る。トレードオフの値が受け入れられない場合、ステップ604(図6A)に戻る。
図6Bのステップ616を再度参照すると、schedListが空ではない場合、ステップ630(図6D)に進む。ステップ630において、以下の処理が実施される:(a)rLevelQから、交差行列を使用して、交差が最小である再構築を選択する。そのような再構築が2つ以上存在する場合、そのうちの1つを無作為に選択する。(b)再構築について、ディスクスコアが最小であるm個の回復元ディスクを選択する。そのような回復元ディスクの集合が2つ以上ある場合、そのうちの1つを無作為に選択する、(c)再構築について、ディスクスコアが最小である他のディスクを回復先ディスクとして選択する。そのようなディスクが2つ以上ある場合、そのうちの1つを無作為に選択する。続いて、ステップ632に進み、以下のパラメータが設定される:(a)再構築の全ての回復元ディスクと回復先ディスクの集合であるrecovery_set、(b)recovery_setとschedListの両方に属しているディスクの集合であるintersection。
続いて、ステップ634に進み、ステータスチェックが実施される。intersectionが空である場合、ステップ636に進み、再構築がschedListに追加されるとともに、rLevelQから削除される。続いて、ステップ614(図6B)に戻る。intersectionが空ではない場合、ステップ638に進み、再構築の利得、損失、およびトレードオフが計算される。続いて、ステップ640に進み、ステータスチェックが実施される。トレードオフの値が受け入れられる場合、ステップ636に進み、その後にステップ614(図6B)に戻る。トレードオフの値が受け入れられない場合、ステップ604(図6A)に戻る。
本発明の実施形態は、データネットワーク102を介して分散データストレージシステム104と通信する回復マネージャ106として図1に模式的に示したコンピュータに、実装することができる。MinIポリシーは、回復すべき再構築が存在する場合は、常に、回復マネージャ106によって起動される。本発明の実施形態において、回復マネージャ106は、各データストレージユニット(データストレージユニット1 120、データストレージユニット2 130、およびストレージユニット3 140)に対し、故障しているディスク、それらの内容、各フラグメントの再構築の潜在的な回復元を問い合わせることによって、必要な再構築を追跡する。本発明の他の実施形態において、データストレージユニットは、自立的に情報(ステータスと故障警報など)を回復マネージャ106に送信してもよい。回復マネージャ106は、MinIの出力にしたがって即座に複数の再構築を並列にスケジューリングする。これらの再構築が完了すると、回復マネージャ106は、全ての再構築が実施されるまでは、MinIを再度呼び出す。回復マネージャ106は、再度データストレージユニットと相互動作をすることによって、ディスクが交換されたことを検出する。これらの信頼性イベント(故障、再構築、および交換)の後に、回復マネージャ106は前述のモデルを使用してシステムのNDSを計算する。
図7は、本実施形態の回復マネージャ106の概略図であり、回復マネージャ106は、公知のコンピュータとすることができ、中央処理装置CPU 702、メモリ704、データストレージ装置706、および、データネットワークインターフェイス708を有している。データストレージ装置706は、ハードディスク、不揮発性メモリ、または、その他のコンピュータ読み取り可能な記録媒体(読み取り専用メモリであるコンパクトディスクなど)を有している。データネットワークインターフェイス708は、回復マネージャ106をデータネットワーク102に接続する。回復マネージャ106は、ユーザ入出力インターフェイス710を介してユーザ入出力装置712(キーボードやマウスなど)に接続されるとともに、ビデオディスプレイインターフェイス714を介してビデオディスプレイ716に接続される。
公知のように、コンピュータは、コンピュータの全体動作およびアプリケーションを定めているコンピュータソフトウェアの制御の下で動作する。CPU 702は、コンピュータの全体動作およびアプリケーションを定めているコンピュータプログラム命令を実行することによって、コンピュータの全体動作およびアプリケーションを制御する。コンピュータプログラム命令は、記憶装置706に保存され、プログラム命令の実行が必要なときに、メモリ704にロードすることができる。図5および図6A〜6Dの方法ステップは、メモリ704またはデータストレージ装置706(または、メモリ704とデータストレージ装置706との組み合わせ)に保存されているコンピュータプログラム命令によって定められ、コンピュータプログラム命令を実行するCPU 702によって制御される。例えば、コンピュータプログラム命令は、図5および図6A〜6Dの方法ステップが実装されたアルゴリズムを実行するように、当業者によってプログラムされたコンピュータ実行可能コードとして実装することができる。したがって、コンピュータプログラム命令を実行することによって、CPU 702は図5および図6A〜6Dの方法ステップが実装されたアルゴリズムを実行することになる。
当業者であれば、実際のコンピュータには他の構成要素も実装できることと、図7はコンピュータの幾つかの構成要素を図示の便宜上高レベルに表示していることが理解できるであろう。
前述の発明を実施するための最良の形態は、あらゆる観点において、例示的で典型的であって、限定的ではないと理解されるべきであり、本明細書において開示している本発明の範囲は、発明を実施するための最良の形態から定められるのではなく、むしろ、特許法によって認められる全範囲にしたがって解釈されるように特許請求の範囲から定められる。当然、本明細書で示し詳述した実施形態は、本発明の原理を単に例示しており、当業者は本発明の範囲と精神から逸脱することなく様々な修正を実装することができる。当業者は、本発明の範囲と精神から逸脱することなく、様々な他の特徴の組み合わせを実装することができる。

Claims (27)

  1. 複数のディスクを有する分散データストレージシステムに保存されているデータの再構築をスケジューリングする方法であって、
    再構築の集合(set)を受け付けるステップと、
    前記再構築の集合を最低の冗長性レベルから最高の冗長性レベルまでの範囲内にある冗長性レベルによって順序付けされているキューの集合(set)に分割するステップと、
    前記最低の冗長性レベルを有している第1のキューにおいて再構築用の第1の交差行列(intersection matrix)を計算するステップと、
    第1のノーマルシーディービエイションスコア(Normalcy Deviation Score)を計算するステップと、
    前記複数のディスクの各々について第1のディスクスコアを計算するステップと、
    前記第1の交差行列と、前記第1のノーマルシーディービエイションスコアと、前記第1のディスクスコアと、の少なくとも一部に基づいて、前記受け付けた再構築の集合に対して第1のスケジュールを生成するステップと、を有する方法。
  2. 前記データは、ブロックにまとめられており、
    前記第1のノーマルシーディービエイションスコアを計算するステップは、前記ノーマルシーディービエイションスコアを以下のアルゴリズムにしたがって計算するステップを有する、請求項1に記載の方法。
    Figure 2011520182
    ここで、
    NDS(t)は、時間tでのノーマルシーディービエイションスコア、
    kは、正常動作下での前記分散データストレージシステム内の全てのブロックの冗長性レベル、
    iは、時間tで残っている、冗長性レベルがiのブロックの数、
    allocは、ディスクを再構築するための最短時間、
    fは、ユーザが定義したスケーリング係数(scaling factor)である。
  3. 前記第1のノーマルシーディービエイションスコアの少なくとも一部に基づいて、第1の利得値を計算するステップと、
    第1の性能損失値(performance loss value)を計算するステップと、
    前記計算された第1の利得値と、前記計算された第1の性能損失と、の少なくとも一部に基づいて、第1のトレードオフ値を計算するステップと、
    前記計算された第1のトレードオフ値の少なくとも一部に基づいて、前記第1のスケジュールを生成するステップと、をさらに有する、請求項1に記載の方法。
  4. 前記計算された第1のトレードオフ値が、ユーザが定義した値よりも大きい場合、回復帯域(recovery bandwidth)を広げるステップをさらに有する、請求項3に記載の方法。
  5. 前記キューの集合の中の特定のキューの各々に対する交差行列は、前記特定のキュー内の再構築用の潜在的な(potential)回復元ディスクのペアの交差の大きさを有する、請求項1に記載の方法。
  6. 前記ディスクスコアは静的スコアと動的スコアとを有する、請求項1に記載の方法。
  7. 2番目に低い冗長性レベルを有している第2のキューにおいて再構築用の第2の交差行列を計算するステップと、
    第2のノーマルシーディービエイションスコアを計算するステップと、
    前記複数のディスクの各々について第2のディスクスコアを計算するステップと、
    前記第1の交差行列と、前記第1のノーマルシーディービエイションスコアと、前記第1のディスクスコアと、前記第2の交差行列と、前記第2のノーマルシーディービエイションスコアと、前記第2のディスクスコアと、の少なくとも一部に基づいて、前記受け付けた再構築の集合に対して第2のスケジュールを生成するステップと、をさらに有する、請求項1に記載の方法。
  8. 前記第2のノーマルシーディービエイションスコアの少なくとも一部に基づいて、第2の利得値を計算するステップと、
    第2の性能損失値を計算するステップと、
    前記計算された第2の利得値と、前記計算された第2の性能損失と、の少なくとも一部に基づいて、第2のトレードオフ値を計算するステップと、
    前記計算された第2のトレードオフ値の少なくとも一部に基づいて、前記第2のスケジュールを生成するステップと、をさらに有する、請求項7に記載の方法。
  9. 前記計算された第2のトレードオフ値が、ユーザが定義した値よりも大きい場合、回復帯域を広げるステップをさらに有する、請求項8に記載の方法。
  10. 複数のディスクを有する分散データストレージシステムに保存されているデータの再構築をスケジューリングする装置であって、
    再構築の集合を受け付ける手段と、
    前記再構築の集合を最低の冗長性レベルから最高の冗長性レベルまでの範囲内にある冗長性レベルによって順序付けされているキューの集合に分割する手段と、
    前記最低の冗長性レベルを有している第1のキューにおいて再構築用の第1の交差行列を計算する手段と、
    第1のノーマルシーディービエイションスコアを計算する手段と、
    前記複数のディスクの各々について第1のディスクスコアを計算する手段と、
    前記第1の交差行列と、前記第1のノーマルシーディービエイションスコアと、前記第1のディスクスコアと、の少なくとも一部に基づいて、前記受け付けた再構築の集合に対して第1のスケジュールを生成する手段と、を有する装置。
  11. 前記データは、ブロックにまとめられており、
    前記ノーマルシーディービエイションスコアを計算する手段は、前記ノーマルシーディービエイションスコアを以下のアルゴリズムにしたがって計算する手段を有する、請求項10に記載の装置。
    Figure 2011520182
    ここで、
    NDS(t)は、時間tでのノーマルシーディービエイションスコア、
    kは、正常動作下での前記分散データストレージシステム内の全てのブロックの冗長性レベル、
    iは、時間tで残っている、冗長性レベルがiのブロックの数、
    allocは、ディスクを再構築するための最短時間、
    fは、ユーザが定義したスケーリング係数である。
  12. 前記第1のノーマルシーディービエイションスコアの少なくとも一部に基づいて、第1の利得値を計算する手段と、
    第1の性能損失値を計算する手段と、
    前記計算された第1の利得値と、前記計算された第1の性能損失と、の少なくとも一部に基づいて、第1のトレードオフ値を計算する手段と、
    前記計算された第1のトレードオフ値の少なくとも一部に基づいて、前記第1のスケジュールを生成する手段と、をさらに有する、請求項10に記載の装置。
  13. 前記計算された第1のトレードオフ値が、ユーザが定義した値よりも大きい場合、回復帯域を広げる手段をさらに有する、請求項12に記載の装置。
  14. 前記キューの集合の中の特定のキューの各々に対する交差行列は、前記特定のキュー内の再構築用の潜在的な回復元ディスクのペアの交差の大きさを有する、請求項10に記載に装置。
  15. 前記ディスクスコアは静的スコアと動的スコアとを有する、請求項10に記載の装置。
  16. 2番目に低い冗長性レベルを有している第2のキューにおいて再構築用の第2の交差行列を計算する手段と、
    第2のノーマルシーディービエイションスコアを計算する手段と、
    前記複数のディスクの各々について第2のディスクスコアを計算する手段と、
    前記第1の交差行列と、前記第1のノーマルシーディービエイションスコアと、前記第1のディスクスコアと、前記第2の交差行列と、前記第2のノーマルシーディービエイションスコアと、前記第2のディスクスコアと、の少なくとも一部に基づいて、前記受け付けた再構築の集合に対して第2のスケジュールを生成する手段と、をさらに有する、請求項10に記載の装置。
  17. 前記第2のノーマルシーディービエイションスコアの少なくとも一部に基づいて、第2の利得値を計算する手段と、
    第2の性能損失値を計算する手段と、
    前記計算された第2の利得値と、前記計算された第2の性能損失と、の少なくとも一部に基づいて、第2のトレードオフ値を計算する手段と、
    前記計算された第2のトレードオフ値の少なくとも一部に基づいて、前記第2のスケジュールを生成する手段と、をさらに有する、請求項16に記載の装置。
  18. 前記計算された第2のトレードオフ値が、ユーザが定義した値よりも大きい場合、回復帯域を広げる手段をさらに有する、請求項17に記載の装置。
  19. 複数のディスクを有する分散データストレージシステム内のデータの再構築をスケジューリングするコンピュータプログラム命令を保存しているコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータプログラム命令は、
    再構築の集合を受け付けるステップと、
    前記再構築の集合を最低の冗長性レベルから最高の冗長性レベルまでの範囲内にある冗長性レベルによって順序付けされているキューの集合に分割するステップと、
    前記最低の冗長性レベルを有している第1のキューにおいて再構築用の第1の交差行列を計算するステップと、
    第1のノーマルシーディービエイションスコアを計算するステップと、
    前記複数のディスクの各々について第1のディスクスコアを計算するステップと、
    前記第1の交差行列と、前記第1のノーマルシーディービエイションスコアと、前記第1のディスクスコアと、の少なくとも一部に基づいて、前記受け付けた再構築の集合に対して第1のスケジュールを生成するステップと、を定義するコンピュータ読み取り可能な記録媒体。
  20. 前記データは、複数のブロックにまとめられており、
    前記ノーマルシーディービエイションスコアを計算するステップを定義するコンピュータプログラム命令は、前記ノーマルシーディービエイションスコアを以下のアルゴリズムにしたがって計算するステップを定義するコンピュータプログラム命令を有する、請求項19に記載のコンピュータ読み取り可能な記録媒体。
    Figure 2011520182
    ここで、
    NDS(t)は、時間tでのノーマルシーディービエイションスコア、
    kは、正常動作下での前記分散データストレージシステム内の全てのブロックの冗長性レベル、
    iは、時間tで残っている、冗長性レベルがiのブロックの数、
    allocは、ディスクを再構築するための最短時間、
    fは、ユーザが定義したスケーリング係数である。
  21. データの再構築をスケジューリングするコンピュータプログラム命令は
    前記第1のノーマルシーディービエイションスコアの少なくとも一部に基づいて、第1の利得値を計算するステップと、
    第1の性能損失値を計算するステップと、
    前記計算された第1の利得値と、前記計算された第1の性能損失と、の少なくとも一部に基づいて、第1のトレードオフ値を計算するステップと、
    前記計算された前記第1のトレードオフ値の少なくとも一部に基づいて、前記第1のスケジュールを生成するステップと、を定義するコンピュータプログラム命令をさらに有する、請求項19に記載のコンピュータ読み取り可能な記録媒体。
  22. データの再構築をスケジューリングするコンピュータプログラム命令は、前記計算された第1のトレードオフ値が、ユーザが定義した値よりも大きい場合、回復帯域を広げるステップを定義するコンピュータプログラム命令をさらに有する、請求項19に記載のコンピュータ読み取り可能な記録媒体。
  23. 前記キューの集合の中の特定のキューの各々に対する交差行列は、前記特定のキュー内の再構築用の潜在的な回復元ディスクのペアの交差の大きさを有する、請求項19に記載のコンピュータ読み取り可能な記録媒体。
  24. 前記ディスクスコアは静的スコアと動的スコアとを有する、請求項19に記載のコンピュータ読み取り可能な記録媒体。
  25. データの再構築をスケジューリングするコンピュータプログラム命令は、
    2番目に低い冗長性レベルを有している第2のキューにおいて再構築用の第2の交差行列を計算するステップと、
    第2のノーマルシーディービエイションスコアを計算するステップと、
    前記複数のディスクの各々について第2のディスクスコアを計算するステップと、
    前記第1の交差行列と、前記第1のノーマルシーディービエイションスコアと、前記第1のディスクスコアと、前記第2の交差行列と、前記第2のノーマルシーディービエイションスコアと、前記第2のディスクスコアと、の少なくとも一部に基づいて、第2のスケジュールを生成するステップと、を定義するコンピュータプログラム命令をさらに有する、請求項19に記載のコンピュータ読み取り可能な記録媒体。
  26. データの再構築をスケジューリングするコンピュータプログラム命令は、
    前記第2のノーマルシーディービエイションスコアの少なくとも一部に基づいて、第2の利得値を計算するステップと、
    第2の性能損失値を計算するステップと、
    前記計算された第2の利得値と、前記計算された第2の性能損失と、の少なくとも一部に基づいて、第2のトレードオフ値を計算するステップと、
    前記計算された第2のトレードオフ値の少なくとも一部に基づいて、前記第2のスケジュールを生成するステップと、を定義するコンピュータプログラム命令をさらに有する、請求項25に記載のコンピュータ読み取り可能な記録媒体。
  27. データの再構築をスケジューリングするコンピュータプログラム命令は、前記計算された第2のトレードオフ値が、ユーザが定義した値よりも大きい場合、回復帯域を広げるステップを定義するコンピュータプログラム命令をさらに有する、請求項26に記載のコンピュータ読み取り可能な記録媒体。
JP2011505075A 2008-04-17 2009-04-02 分散データストレージシステムの信頼性の動的定量化と改善 Active JP5289557B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4571808P 2008-04-17 2008-04-17
US61/045,718 2008-04-17
US12/397,371 US8019728B2 (en) 2008-04-17 2009-03-04 Dynamically quantifying and improving the reliability of distributed data storage systems
US12/397,371 2009-03-04
PCT/US2009/039271 WO2009129054A2 (en) 2008-04-17 2009-04-02 Dynamically quantifying and improving the reliability of distributed data storage systems

Publications (2)

Publication Number Publication Date
JP2011520182A true JP2011520182A (ja) 2011-07-14
JP5289557B2 JP5289557B2 (ja) 2013-09-11

Family

ID=41199641

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011505075A Active JP5289557B2 (ja) 2008-04-17 2009-04-02 分散データストレージシステムの信頼性の動的定量化と改善

Country Status (6)

Country Link
US (1) US8019728B2 (ja)
EP (1) EP2272001B1 (ja)
JP (1) JP5289557B2 (ja)
CN (1) CN101971168B (ja)
CA (1) CA2717549C (ja)
WO (1) WO2009129054A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013174984A (ja) * 2012-02-24 2013-09-05 Nec Corp ストレージシステム
JP2013196274A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd マルチノードストレージシステムのノード装置および処理速度管理方法

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITRM20080037A1 (it) * 2008-01-23 2009-07-24 Uni Degli Studi Perugia Procedimento per la ultrapurificazione di alginati.
US8458287B2 (en) 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US20110078343A1 (en) * 2009-09-29 2011-03-31 Cleversafe, Inc. Distributed storage network including memory diversity
US9898373B2 (en) * 2010-04-26 2018-02-20 International Business Machines Corporation Prioritizing rebuilding of stored data in a dispersed storage network
WO2012089701A1 (en) * 2010-12-27 2012-07-05 Amplidata Nv A distributed object storage system comprising performance optimizations
EP2672387B1 (en) * 2012-06-04 2018-08-01 Amplidata NV A distributed object storage system
CN103034739A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 一种分布式存储系统及其更新和查询方法
US9600365B2 (en) 2013-04-16 2017-03-21 Microsoft Technology Licensing, Llc Local erasure codes for data storage
US9336091B2 (en) 2014-03-06 2016-05-10 International Business Machines Corporation Reliability enhancement in a distributed storage system
US9430443B1 (en) 2015-05-08 2016-08-30 Norwegian University Of Science And Technology Systematic coding technique
GB2538110B (en) * 2015-05-08 2017-07-26 Norwegian Univ Of Science And Tech (Ntnu) Systematic coding technique
CN106293492B (zh) * 2015-05-14 2021-08-20 中兴通讯股份有限公司 一种存储管理方法及分布式文件系统
US20170060700A1 (en) 2015-08-28 2017-03-02 Qualcomm Incorporated Systems and methods for verification of code resiliency for data storage
US9678824B2 (en) * 2015-11-05 2017-06-13 International Business Machines Corporation Durability and availability evaluation for distributed storage systems
US10275302B2 (en) 2015-12-18 2019-04-30 Microsoft Technology Licensing, Llc System reliability by prioritizing recovery of objects
US9665446B1 (en) 2015-12-29 2017-05-30 International Business Machines Corporation Fully distributed intelligent rebuild
CN106250055A (zh) * 2016-07-12 2016-12-21 乐视控股(北京)有限公司 一种数据存储方法及系统
US10310749B2 (en) * 2016-09-16 2019-06-04 Netscout Systems Texas, Llc System and method for predicting disk failure
CN107977578B (zh) * 2016-10-25 2022-12-02 中兴通讯股份有限公司 一种分布式存储系统及其数据修复方法和装置
CN106648992A (zh) * 2016-12-29 2017-05-10 创新科存储技术(深圳)有限公司 一种分布式存储系统中重构热点消除方法和装置
US10911307B2 (en) 2019-01-29 2021-02-02 Dell Products L.P. System and method for out of the box solution-level configuration and diagnostic logging and reporting
US10972343B2 (en) 2019-01-29 2021-04-06 Dell Products L.P. System and method for device configuration update
US10901641B2 (en) 2019-01-29 2021-01-26 Dell Products L.P. Method and system for inline deduplication
US10979312B2 (en) 2019-01-29 2021-04-13 Dell Products L.P. System and method to assign, monitor, and validate solution infrastructure deployment prerequisites in a customer data center
US11442642B2 (en) 2019-01-29 2022-09-13 Dell Products L.P. Method and system for inline deduplication using erasure coding to minimize read and write operations
US20200241781A1 (en) 2019-01-29 2020-07-30 Dell Products L.P. Method and system for inline deduplication using erasure coding
US10929243B2 (en) * 2019-04-11 2021-02-23 EMC IP Holding Company LLC Service-level rebuild
US11609820B2 (en) 2019-07-31 2023-03-21 Dell Products L.P. Method and system for redundant distribution and reconstruction of storage metadata
US11328071B2 (en) 2019-07-31 2022-05-10 Dell Products L.P. Method and system for identifying actor of a fraudulent action during legal hold and litigation
US11372730B2 (en) 2019-07-31 2022-06-28 Dell Products L.P. Method and system for offloading a continuous health-check and reconstruction of data in a non-accelerator pool
US10963345B2 (en) * 2019-07-31 2021-03-30 Dell Products L.P. Method and system for a proactive health check and reconstruction of data
US11775193B2 (en) 2019-08-01 2023-10-03 Dell Products L.P. System and method for indirect data classification in a storage system operations
US11645013B2 (en) 2019-11-25 2023-05-09 International Business Machines Corporation Managing dispersed storage network background tasks
US11281535B2 (en) 2020-03-06 2022-03-22 Dell Products L.P. Method and system for performing a checkpoint zone operation for a spare persistent storage
US11416357B2 (en) 2020-03-06 2022-08-16 Dell Products L.P. Method and system for managing a spare fault domain in a multi-fault domain data cluster
US11301327B2 (en) 2020-03-06 2022-04-12 Dell Products L.P. Method and system for managing a spare persistent storage device and a spare node in a multi-node data cluster
US11119858B1 (en) 2020-03-06 2021-09-14 Dell Products L.P. Method and system for performing a proactive copy operation for a spare persistent storage
US11175842B2 (en) 2020-03-06 2021-11-16 Dell Products L.P. Method and system for performing data deduplication in a data pipeline
US11418326B2 (en) 2020-05-21 2022-08-16 Dell Products L.P. Method and system for performing secure data transactions in a data cluster
CN116149576B (zh) * 2023-04-20 2023-07-25 北京大学 面向服务器无感知计算的磁盘冗余阵列重建方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100960A (ja) * 1991-06-13 1993-04-23 Internatl Business Mach Corp <Ibm> 記憶サブシステム及びパリテイ・グループの一部を再生する方法
JP2001147785A (ja) * 1999-10-29 2001-05-29 Hewlett Packard Co <Hp> データを管理する方法
JP2001290746A (ja) * 2000-03-23 2001-10-19 Hewlett Packard Co <Hp> I/o要求に優先順位を与える方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974544A (en) * 1991-12-17 1999-10-26 Dell Usa, L.P. Method and controller for defect tracking in a redundant array
CN1281560A (zh) * 1997-10-08 2001-01-24 西加特技术有限责任公司 混合数据存储和重建系统以及用于数据存储装置的方法
JP4601969B2 (ja) * 2004-01-27 2010-12-22 株式会社日立製作所 ファイル入出力制御装置
US7305579B2 (en) * 2005-03-22 2007-12-04 Xiotech Corporation Method, apparatus and program storage device for providing intelligent rebuild order selection
US20080077638A1 (en) * 2006-09-21 2008-03-27 Microsoft Corporation Distributed storage in a computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100960A (ja) * 1991-06-13 1993-04-23 Internatl Business Mach Corp <Ibm> 記憶サブシステム及びパリテイ・グループの一部を再生する方法
JP2001147785A (ja) * 1999-10-29 2001-05-29 Hewlett Packard Co <Hp> データを管理する方法
JP2001290746A (ja) * 2000-03-23 2001-10-19 Hewlett Packard Co <Hp> I/o要求に優先順位を与える方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013174984A (ja) * 2012-02-24 2013-09-05 Nec Corp ストレージシステム
JP2013196274A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd マルチノードストレージシステムのノード装置および処理速度管理方法

Also Published As

Publication number Publication date
CN101971168B (zh) 2013-11-06
CA2717549C (en) 2014-12-09
WO2009129054A3 (en) 2010-01-07
US8019728B2 (en) 2011-09-13
WO2009129054A2 (en) 2009-10-22
EP2272001A4 (en) 2014-05-07
EP2272001A2 (en) 2011-01-12
CN101971168A (zh) 2011-02-09
CA2717549A1 (en) 2009-10-22
EP2272001B1 (en) 2016-12-14
US20090265360A1 (en) 2009-10-22
JP5289557B2 (ja) 2013-09-11

Similar Documents

Publication Publication Date Title
JP5289557B2 (ja) 分散データストレージシステムの信頼性の動的定量化と改善
CN109725826B (zh) 管理存储系统的方法、设备和计算机可读介质
US9378093B2 (en) Controlling data storage in an array of storage devices
EP2972872B1 (en) Virtual disk recovery and redistribution
US8464090B2 (en) Recovery of failed disks in an array of disks
US20110167219A1 (en) System and method for raid management, reallocation, and restripping
US9606866B2 (en) Method of, and apparatus for, improved data recovery in a storage system
US8775733B2 (en) Distribution design for fast raid rebuild architecture based on load to limit number of redundant storage devices
US7496785B2 (en) Enclosure-based raid parity assist
US7308532B1 (en) Method for dynamically implementing N+K redundancy in a storage subsystem
US20060236149A1 (en) System and method for rebuilding a storage disk
US20140281689A1 (en) Method and system for rebuilding data following a disk failure within a raid storage system
US7426655B2 (en) System and method of enhancing storage array read performance using a spare storage array
CN110737393A (zh) 数据读取方法、设备和计算机程序产品
US6223323B1 (en) Method for storing parity information in a disk array storage system
JP2018508073A (ja) データ除去、割り当て、及び再構築
CN110413203A (zh) 用于管理存储系统的方法、设备和计算机程序产品
US9176818B2 (en) N-way parity for virtual disk resiliency
US10210062B2 (en) Data storage system comprising an array of drives
US20150378622A1 (en) Management of data operations
US11604611B2 (en) Variable sparing of disk drives in storage array
US11953991B2 (en) Method, device and computer program product for storage management
US11347407B2 (en) RAID (redundant array of independent disks) group configuration and storage drive distribution based on storage drive health
US20230418518A1 (en) Peer RAID Control Among Peer Data Storage Devices
US10061524B2 (en) Wear-leveling of memory devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130604

R150 Certificate of patent or registration of utility model

Ref document number: 5289557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350