JP2009529190A - 冗長データファブリックの動的分割のための方法 - Google Patents
冗長データファブリックの動的分割のための方法 Download PDFInfo
- Publication number
- JP2009529190A JP2009529190A JP2008558394A JP2008558394A JP2009529190A JP 2009529190 A JP2009529190 A JP 2009529190A JP 2008558394 A JP2008558394 A JP 2008558394A JP 2008558394 A JP2008558394 A JP 2008558394A JP 2009529190 A JP2009529190 A JP 2009529190A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- data
- storage elements
- partition
- software
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データ記憶システムの記憶要素から、記憶装置の負荷および使用に関する定量的データが収集される。記憶要素は、収集された定量的データに従ってランク付けされる。ユーザによって要求されたファイルを記憶する、記憶要素にわたるパーティションが決定される。パーティションのメンバーは、記憶要素のうちの1つ以上であると特定される。メンバーは、ランク付けから選択される。ランク付けが古くなったこと、またはシステムが修復またはアップグレードされたことに応えて、ランク付けは更新される。その他の実施形態も説明され特許請求される。
Description
本発明の実施形態は、一般に、高い容量、性能、およびデータ可用性を有する電子データ記憶システムに関し、特に、記憶容量およびクライアントを追加することに関してスケーラブルな電子データ記憶システムに関する。その他の実施形態も説明され特許請求される。
今日の情報集約的環境においては、膨大な量のデジタルデータを記憶する必要のある、多くの企業およびその他の団体が存在する。それらには、ネットワークで結ばれた何千人もの従業員によって共有される企業内情報を記憶する大企業などの事業体、何百万もの製品に関する情報を記憶するオンライン販売業者、ならびに、大規模な文献の収集物を有する図書館および教育機関が含まれる。大規模データ記憶システムの使用に対する最近のニーズは、放送テレビジョンの番組編成市場にある。そのような業務は、テレビ番組の作成、編集、および放送のための古いアナログ技術から、全デジタルの手法へと推移しつつある。(コマーシャルなどの)コンテンツ自体がデジタルビデオファイルの形式で記憶されるのみでなく、放送のための準備における番組およびコマーシャルの編集およびシーケンシング(sequencing)も、強力なコンピュータシステムを使用してデジタル処理される。データ記憶システム内に記憶されてもよいその他のタイプのデジタルコンテンツとしては、地震予知のための地震探査データ、および地図作成のための衛星画像データが挙げられる。
メディアサーバと呼ばれる強力なデータ記憶システムが、カリフォルニア州サニーヴェール(Sunnyvale,California)のオムネオン・ビデオネットワークス(Omneon Video Networks)(本特許出願の譲受人)によって提供されている。メディアサーバは、サーバマシンのネットワーク上で実行されている複数のソフトウェア構成要素から構成される。サーバマシンは、データを記憶する回転磁気ディスクドライブなどの大容量記憶装置を有する。サーバは、ファイルの作成、書き込み、または読み出しの要求を受け入れ、そして、1つ以上のディスクドライブ内にデータを転送するプロセス、または要求された読み出しデータをそれらのディスクドライブから送り出すプロセスを管理する。サーバは、どのファイルがどのドライブに記憶されているかを追跡記録する。ファイルへのアクセス要求、すなわち、作成、書き込み、または読み出しの要求は、通常、サーバネットワークに接続されたクライアントマシン上で実行されていてもよい、クライアントアプリケーションプログラムと呼ばれるものから受信される。例えば、アプリケーションプログラムは、(システム内にデジタルビデオファイルとして記憶された)特定のビデオクリップを必要とする、テレビジョンスタジオのワークステーション上で実行されているビデオ編集アプリケーションであってもよい。
ビデオデータは、例えばMotion Picture Experts Group(MPEG)フォーマットの形式の圧縮を使用したとしても、大容量である。したがって、そのような環境のためのデータ記憶システムは、数百テラバイト、またはそれよりも大きな記憶容量を提供するように設計される。さらに、高速データ通信リンクが、ネットワークのサーバマシンを接続するために使用され、そして場合によっては、システムへのアクセス用に100Gb/秒以上の共有総帯域幅を提供する特定のクライアントマシンと接続するためにも使用される。記憶システムは、さらに、複数のクライアントによるアクセスサービスを同時に提供することが可能である。
記憶システムの全体的コストの低減を支援するために、分散アーキテクチャが使用される。何百もの小さな、比較的低コストの、大量生産ディスクドライブ(現在では、各ユニットが100Gバイト以上の容量を有する)が、はるかに大きな総記憶容量に到達するように、一緒にネットワーク接続されてもよい。しかし、記憶容量のこの分散は、システム内で正常なアクセスを妨げる障害が発生する可能性も増加させる。そのような障害は、システムハードウェア内(例えば、ケーブル、コネクタ、ファン、電源、またはディスクドライブユニット)だけでなくソフトウェア内(特定のクライアントアプリケーションプログラムにおけるバグなど)も含むさまざまな異なる場所で発生する可能性がある。他の場合ならばそのアクセスを阻止していたであろうディスク障害にもかかわらず所与のアクセスサービスを提供するために(例えば、要求されたデータを利用可能にするために)、記憶システムは、redundant array of inexpensive disks(RAID)の形式で、冗長性を実装している。システムは、さらに、代替えドライブ内へ、故障したディスクドライブのコンテンツを再構築することも可能にする。
記憶システムは、さらに、複雑なハードウェアおよびソフトウェアの交換を行う必要なしに、より大きなデータ記憶の要求、および増加するクライアント負荷に対処するために、容易に拡張するように、スケーラブルでなければならない。
本発明の実施形態は、限定のためではなく、例として、同様の参照符は同様の要素を示す添付の図面の図中に示されている。本開示における、本発明の「一(an)」実施形態への言及は、必ずしも同じ実施形態への言及とは限らず、そしてそれらは、少なくとも1つを意味していることに留意すべきである。
本発明の一実施形態は、容量、性能、およびデータ可用性の厳しい要求を、よりスケーラブルなアーキテクチャを使用して、より良く達成することが可能なデータ記憶システムである。図1は、ビデオおよびオーディオ情報処理環境の一部としての、そのような記憶システムを示す。しかし、以下に記載するデータ記憶システムならびにその構成要素または特徴は、代わりに、その他のタイプの適用例(例えば、図書館、地震探査データ処理センター、販売業者の製品カタログ、中央企業情報記憶など)において使用されてもよいということに留意すべきである。オムネオンコンテンツライブラリ(Omnion content library)(OCL)システムとも呼ばれる、記憶システム102は、データ保護、ならびに、ハードウェアおよびソフトウェアの耐障害性と復旧とを提供する。
システム102は、さまざまな異なる形態を取ってもよい、クライアントマシンまたはクライアントネットワークを使用してアクセスされてもよい。例えば、メディアサーバ104によって、コンテンツファイル(この例では、MPEGおよび高品位(high definition)(HD)を含むさまざまなタイプのデジタルメディアファイル)が記憶されるように要求されてもよい。図1に示すように、メディアサーバ104は、そのようなファイルを作成するために、メディア処理の「インジェスト」段階では、標準的なデジタルビデオカメラ、テープレコーダ、および衛星フィードをインタフェースとしてもよい。代替として、クライアントマシンがインターネットなどの遠隔ネットワーク上にあってもよい。「プロダクション」段階においては、記憶されたファイルが、閲覧、編集、およびアーカイブのために、システムからクライアントマシンにストリーミングされてもよい。変更されたファイルは、次に、「プレイアウト」段階では、配信のために、システム102からメディアサーバ104へ、または、遠隔ネットワークを介して直接、送信されてもよい。
OCLシステムは、同時クライアントアクセスの数が増加するにつれて、または総記憶容量の要求が増加するにつれて拡張することが特に容易であると判明しうるアーキテクチャを有する、高性能、高可用性の記憶サブシステムを提供する。(図1におけるような)メディアサーバ104と(以下で説明する)コンテンツゲートウェイとの追加は、さまざまな送信元からのデータが1つの高性能/高可用性システムに集約され、それにより、企業が管理しなければならない記憶ユニットの総数を減らすることを可能にする。(さまざまなサイズのファイル、およびさまざまなクライアント負荷を含む)さまざまなタイプの作業負荷の処理が可能であることに加えて、システム102の実施形態は、自動負荷バランシング、高速ネットワークスイッチング相互接続、データキャッシング、およびデータ複製を含む特徴を有してもよい。本発明の一実施形態によれば、OCLシステムは、性能において、比較的小規模な、すなわち66テラバイト未満のシステム上での20Gb/秒から、より大規模な、すなわち1ペタバイトを超えるシステムの場合の600Gb/秒を超える性能まで、必要に応じて拡張する。そのような数は、当然ながら、OCLシステムの現在の能力の例にすぎず、請求される本発明の範囲全体を限定することを意図するものではない。
本発明の一実施形態は、停止することなく動作するために設計されたOCLシステムであって、記憶装置と、クライアントと、その構成要素間のネットワーキング帯域幅との拡張を、進行中のアクセスをシャットダウン、あるいは、それらのアクセスに影響を及ぼすことなく行うことが可能になるシステムである。OCLシステムは、障害となるただ1つの点(single point of failure)が存在しないように、十分な冗長性を有することが好ましい。OCLシステム内に記憶されたデータは複数の複製を有し、したがって、大容量記憶ユニット(例えば、ディスクドライブユニット)、さらにはサーバ全体が損なわれても、データを失うことはない。一般的なRAIDシステムとは異なり、OCLシステムの交換されたドライブユニットは、先の(故障した)ドライブと同じデータを含む必要はない。その理由は、ドライブの交換が実際に発生するまでには、関連するデータ(故障したドライブに記憶されていたファイルスライス)は、ファイルの作成時に始まったファイル複製のプロセスによって、すでに他の場所に保存されているからである。ファイルは、ハードウェア障害から保護するために、さまざまなドライブにわたって、システム内に複製される。これは、一時点における任意の1つのドライブの障害が、記憶されたファイルがシステムによって再構成されることが不可能になることはないことを意味し、その理由は、ファイルのいかなる失われたスライスも、他のドライブ内で依然として見つけることが可能だからである。複製は、さらに、ファイルをより多くのサーバからアクセス可能にすることによって、読み出し性能の向上を支援する。
どのファイルがどこに記憶されているか(または、ファイルのスライスがどこに記憶されているか)を追跡記録するために、OCLシステムは、新たに作成された、または以前に記憶されたファイルのファイル名と、そのスライスと、スライスを実際に含むシステムの記憶要素の識別情報との間のマッピングを含むメタデータ(ファイルに関する情報)の知識を有するメタデータサーバプログラムを有する。
大容量記憶ユニットの障害に加えて、OCLシステムは、任意のより大きな構成部分、または、さらには、構成要素全体(例えば、メタデータサーバ、コンテンツサーバ、およびネットワーキングスイッチ)の障害からの保護を提供できるかもしれない。以下で説明するように、それぞれのエンクロージャまたはラック内に配置された、サーバの3つ以上のグループを有するシステムなどのより大規模なシステムでは、エンクロージャまたはラック全体の障害の場合でもOCLシステムが動作を継続するような、十分な冗長性が存在する。
次に、図2を参照すると、本発明の一実施形態による、複数のクライアントに接続されたデータ記憶システムのシステムアーキテクチャが示されている。システムは、システム内に記憶されている複数のファイルについてのメタデータをそれぞれが記憶する複数のメタデータサーバマシンを有する。そのようなマシン内で実行されているソフトウェアは、メタデータサーバまたはメタデータサーバ204と呼ばれる。メタデータサーバは、OCLシステムの動作の管理を担当してもよく、そして、クライアントにとっての最初の接点である。スマートクライアント208およびレガシークライアント210という、2つのタイプのクライアントが図示されていることに留意されたい。スマートクライアントは、システムの現在のインタフェースの知識を有し、システムのネットワーキングスイッチ相互接続214(ここでは、Gbイーサネット(登録商標)スイッチ)に直接接続することが可能である。スイッチ相互接続は、図示されているように、複数のコンテンツサーバ216およびメタデータサーバ204の間の選択的ブリッジとして働く。もう一方のタイプのクライアントは、現在のファイルシステムドライバ(FSD)がインストールされていないか、または、OCLシステムのために現在提供されているソフトウェア開発キット(SDK)を使用しないレガシークライアントである。レガシークライアントは、OCLシステム専用ではない一般的なファイルシステムインタフェースを使用して、図示されているようにプロキシまたはコンテンツゲートウェイ219を介して、システム相互接続214と間接的に通信を行う。
ファイルシステムドライバすなわちFSDは、OCLシステムにアクセスするための標準的なファイルシステムインタフェースを提示する、クライアントマシン上にインストールされるソフトウェアである。他方、ソフトウェア開発キットすなわちSDKは、ソフトウェア開発者がOCLに、アプリケーションプログラムから直接アクセスすることを可能にする。この選択肢は、さらに、以下で説明する複製因子(replication factor)の設定などのOCL固有の機能を、クライアントマシンのユーザが利用することを可能にする。
OCLシステムでは、ファイルは、通常、複数のコンテンツサーバ(コンテンツサーバとも呼ばれる)にわたって記憶される際に、スライスに分割される。各コンテンツサーバは、1つ以上のローカルディスクドライバの独自の組を備えた異なるマシン上で実行される。これがシステムの記憶要素の好ましい実施形態である。したがって、ファイルの部分は、さまざまな記憶要素内のさまざまなディスクドライブにわたって散在させられる。現在の一実施形態では、スライスは、固定サイズが好ましく、従来のディスクブロックよりもはるかに大きく、それにより、大規模データファイル(例えば、現在では、大規模なビデオおよびオーディオメディアファイルに好適な、8Mバイト)に対してより良い性能を持たせることを可能にする。さらに、ファイルは、ハードウェア障害から保護するために、さまざまなドライブにわたって、システム内で複製される。これは、一時点における任意の1つのドライブの障害が、記憶されたファイルがシステムによって再構成されることが不可能になることはないことを意味し、その理由は、ファイルの、いかなる紛失したスライスも、他のドライブ内で依然として見つけることが可能だからである。複製は、さらに、ファイルをより多くのサーバからアクセス可能にすることによって、読み出し性能の向上を支援する。システム内の各メタデータサーバは、どのファイルがどこに記憶されているか(または、ファイルのスライスがどこに記憶されているか)を追跡記録する。
メタデータサーバは、コンテンツサーバのうちのどれが、実際のコンテンツまたはデータを記憶のために受信するのに利用可能であるかを決定する。メタデータサーバは、さらに、負荷バランスを取るように機能し、これはすなわち、帯域幅の制限により、または特定のコンテンツサーバがいっぱいになっていることにより、コンテンツサーバのうちのどれが新しいデータの部分を記憶するために使用されるべきで、どれが使用されるべきでないかの決定を行うことである。データ可用性およびデータ保護を支援するために、ファイルシステムメタデータは、複数回複製されてもよい。例えば、少なくとも2つのコピーが、各メタデータサーバマシン上に(そして、例えば、各ハードディスクドライブユニット上に1つ)記憶されてもよい。メタデータの複数のチェックポイントが、定期的に取られる。チェックポイントは、システム内で実行中のファイルシステムまたはデータファブリックのポイントインタイムスナップショット(point in time snapshot)であり、システム復旧の場合に使用される。OCLシステムのほとんどの実施形態において、全体的なシステムの動作への影響が最小であるように、チェックポイントが発生するためには数分の時間しか必要とされないことが期待される。
通常の動作では、すべてのファイルアクセスは、メタデータサーバを介して開始または終了する。メタデータサーバは、例えば、ファイルオープン要求に対して、読み出しまたは書き込み動作のために利用可能なコンテンツサーバのリストを返すことによって応答する。それ以降は、そのファイルについてのクライアント通信(例えば、読み出し、書き込み)は、メタデータサーバではなく、コンテンツサーバに向けられる。OCL SDKおよびFSDは、当然、それらの動作の詳細からクライアントから見えないように隠す。上述のように、メタデータサーバは、ファイルおよびスライスの配置を制御して、コンテンツサーバのバランスのとれた利用を提供する。
図2には示していないが、OCLシステムのコンフィギュレーションおよび監視を担当する、例えば、独立したラックマウント式サーバマシン上で動作するシステムマネージャがさらに提供されてもよい。
OCLシステムのさまざまな構成要素間の、すなわち、コンテンツサーバおよびメタデータサーバ間の接続は、システム相互接続の障害の場合に必要な冗長性を提供しなければならない。比較的小規模なOCLシステムのシステム相互接続についての、論理的および物理的なネットワークトポロジをさらに示す図3を参照されたい。接続は、「イーサネット」規格によって享受される広範な業界から支持され、かつ、技術的にも成熟しているという利点を活用するように、OCLシステム全体にわたってGb「イーサネット」であることが好ましい。その利点は、より低いハードウェアコスト、より広範な技術要員によって熟知され、およびアプリケーション層においてより迅速に導入できるという利点をもたらすことが期待される。OCLシステムのさまざまなサーバ間の通信は、現在のインターネットプロトコル(IP)ネットワーキング技術を使用することが好ましい。しかし、その他の相互接続ハードウェアおよびソフトウェアが、サーバ間でのパケットの転送に必要とされる速度をそれらが提供する限り、代わりに使用されてもよい。
ネットワークスイッチが、システム相互接続の部分として使用されることが好ましい。そのような装置は、自動的にネットワークを複数のセグメントに分割し、セグメント間を高速に選択するブリッジとして働き、ネットワーク帯域幅に関して他のコンピュータのペアと競合しないように複数のコンピュータのペアの同時接続をサポートする。そのような装置は、これを各宛先アドレスとそのポートとのテーブルを維持することによって達成する。スイッチは、パケットを受信したら、パケット内のヘッダ情報から宛先アドレスを読み出し、送信元ポートと宛先ポートとの間で一時的な接続を確立し、パケットをその接続上で送信し、そして、次に、接続を終了してもよい。
スイッチは、コンピュータのペア間で複数の一時的なクロスオーバケーブル接続を確立していると考えることができる。スイッチ内の高速電子回路は、送信側コンピュータからの1つのケーブルの端(送信元ポート)を、受信側コンピュータに至る別のケーブルの端(宛先ポート)に、例えばパケットごとに、自動的に接続する。複数のこのような接続が、同時に発生してもよい。
図3のトポロジの例では、システムのさまざまな構成要素間の必要な接続を提供するために、マルチGb「イーサネット」スイッチ302、304、306が使用されている。現在の例では、1Gb「イーサネット」および10Gb「イーサネット」スイッチを使用し、クライアントは40Gb/秒の帯域幅を利用可能である。しかし、将来はさらに高速なスイッチが使用されてもよいため、これらは本発明の範囲を限定することを意図するものではない。図3のトポロジ例は、サブネットAおよびサブネットBという2つのサブネットを有し、サブネットAおよびサブネットB内にはコンテンツサーバが配置されている。各コンテンツサーバは2つのネットワークインタフェースを有し、1つはサブネットAへの、そしてもう1つはサブネットBへのネットワークインタフェースであり、それにより、各コンテンツサーバは、いずれのサブネットからでもアクセス可能になっている。サブネットケーブルにより、コンテンツサーバは2つのスイッチに接続され、各スイッチは、それぞれのサブネットに接続するポートを有する。これらの1Gb「イーサネット」スイッチのそれぞれは、10Gb「イーサネット」スイッチへの2回線10Gb「イーサネット」接続を有し、10Gb「イーサネット」スイッチは、さらに、クライアントマシンのネットワークに接続されている。
この例では、3つのメタデータサーバが存在し、それぞれのメタデータサーバは、1Gb「イーサネット」スイッチに別個のインタフェースで接続されている。言い換えると、各1Gb「イーサネット」スイッチは、3つのメタデータサーバのそれぞれへ少なくとも1つ接続している。さらに、ネットワーキング配置は、プライベートリング1およびプライベートリング2と呼ばれる2つのプライベートネットワークが存在し、各プライベートネットワークは3つのメタデータサーバをそのノードとして備えている。メタデータサーバは互いに、リングネットワークのトポロジを用いて接続され、2つのリングネットワークは冗長性を提供する。メタデータサーバおよびコンテンツサーバは、メッシュネットワークのトポロジで接続されることが好ましい(本出願の一部であるかのように、参照により本明細書に援用される、Adrian Sfartiらによる「Network Topology for a Scalable Data Storage System」と題された米国特許出願−P020を参照されたい)。図3の実施形態の物理的実装の例は、各コンテンツサーバを別個のサーバブレードとして実装し、すべてのサーバブレードを同じエンクロージャまたはラックの内部に実装するものである。「イーサネット」スイッチ、および3つのメタデータサーバも、同じラック内に配置されてもよい。本発明は、当然、1ラックの実施形態には限定されない。コンテンツサーバ、メタデータサーバ、およびスイッチで満たされた追加のラックが、OCLシステムを拡張するために追加されてもよい。より一般的には、システムのコンテンツサーバマシンはグループにまとめられてもよく、各グループ内のメンバーは、電源、モデルタイプ、および特定のスイッチングトポロジへの接続性などの、何らかの共通の設置パラメータ(installation parameters)を共有する。例えば、一つのグループ分けにおいては、各グループは、同じラック内にあり、かつ同じ電源を共有するすべてのサーバブレードを含む。
次に、図4を参照すると、OCLシステムのソフトウェアアーキテクチャの例が示されている。OCLシステムは、システムの複雑さを複数のクライアントマシンのユーザから遮蔽するための、メタデータサーバマシン、コンテンツサーバマシン、およびクライアントマシンの一部またはすべてにおいて実行される、分散ファイルシステムプログラムまたはデータファブリックを有している。言い換えると、ユーザは、この場合はオーディオおよび/またはビデオ情報の記憶および取り出しを、クライアントプログラムを介して要求してもよく、ファイルシステムまたはデータファブリックは、OCLシステムを、ユーザから1つの単純な記憶リポジトリとして見えるようにする。ファイルの作成、書き込み、または読み出しの要求は、ネットワーク接続されたクライアントから、メタデータサーバによって受信される。ファイルシステムまたはデータファブリックのソフトウェア、あるいは、この場合は、そのソフトウェアのメタデータサーバ部分は、受信した完全なファイル名を対応するスライスハンドルに変換し、スライスハンドルは、特定のファイルの構成要素のスライスが記憶されているまたは作成されるべきコンテンツサーバ内の位置を指す。記憶される実際のコンテンツまたはデータは、クライアントによって直接コンテンツサーバに示される。同様に、読み出し動作は、クライアントによってコンテンツサーバに直接要求される。
各コンテンツサーバマシンまたは記憶要素は、例えば回転磁気ディスクドライブユニットなどの、ローカル大容量記憶ユニットを1つ以上有してもよく、そして、その関連するコンテンツサーバプログラムが、その1つ以上のドライブ上への特定のスライスのマッピングを管理する。ファイルシステムまたはデータファブリックは、複製によって、ファイルの冗長性を実装する。好ましい実施形態では、複製動作はスライスレベルで制御される。コンテンツサーバは、クライアントを関与させずにスライスの複製を達成し、スライスの書き込みの検証をお互いに取得するために相互に通信を行う。
その上、ファイルシステムまたはデータファブリックは、複数のマシン間に分散させられているため、ファイルシステムは、それが存在している各マシン(それがコンテンツサーバであれ、クライアントであれ、メタデータサーバマシンであれ)の処理能力を使用する。図4の実施形態に関連して以下で説明するように、記憶容量を増加させるためにコンテンツサーバを追加すると、システム内のネットワークインタフェースの総数は自動的に増加し、これは、システム内のデータにアクセスするために利用可能な帯域幅も自動的に増加することを意味している。さらに、各コンテンツサーバマシン内の中央処理ユニットおよび関連するメインメモリの存在により、全体としてのシステムの処理能力も増加する。より多くのクライアントをシステムに追加することも、システム全体の処理能力を上昇させる。そのような拡張要素(スケーリング・ファクター、scaling factor)は、より多くのストレージ(記憶装置)およびより多くのクライアントが追加されるにつれて、システムの処理能力および帯域幅は比例的に増加し、システムがより大きくなるにつれて動きが取れなくなることはないということが保証されることを意味している。
図4をさらに参照すると、メタデータサーバは、非アクティブなバックアップユニットであるのとは対照的に、システムのアクティブなメンバーであると考えられる。言い換えると、OCLシステムのメタデータサーバは、同時にアクティブになり、そしてそれらは、意思決定において協働する。クライアントの負荷がメタデータサーバ間に分散させられるため、これによりシステムがより多くのクライアントに対処できるように拡張することを可能にする。クライアント負荷がさらに増加するにつれて、追加のメタデータサーバが追加されてもよい。
複数のメタデータサーバによる協働処理の例は、コンテンツサーバ上に記憶されたスライス情報の整合性の検証である。メタデータサーバは、スライス記憶の、そのメタデータサーバのビューとコンテンツサーバのビューとの間のあらゆる違いを調整する。それらのビューは、より数の少ないディスクを持つサーバがシステムに再び加えられる場合や、あるいは、より早い使用時から、異なっている可能性がある。何十万ものスライスが1つのコンテンツサーバ上に記憶されてもよいため、それらのビューの違いを調整するためのオーバヘッドは、かなり大きい可能性がある。それらのビューのあらゆる違いが調整されるまで、コンテンツサーバの準備は確立されないため、スライスビューのあらゆる違いも調整するための時間を最小にすることにより即座にメリットが得られる。複数のメタデータサーバが、そのようなコンテンツサーバによってサポートされるデータファブリックの部分を分割し、さまざまなパーティションを並行して同時に調整する。この並行処理の間にメタデータサーバが故障した場合、残りのメタデータサーバは、すべての未処理の調整が完了するように分割を再調整する。メタデータサーバのスライスビューのいかなる変化も、すべてのアクティブなメタデータサーバ間で動的に共有される。
別の例は、1つまたは複数のコンテンツサーバがデータファブリックをもはやサポートできなくなった場合に、大規模な再複製を共同で処理することである。大規模な再複製は、追加のネットワークのオーバヘッドと処理のオーバヘッドとを意味する。これらの場合、メタデータサーバは、このオーバヘッドが、利用可能なメタデータサーバおよび対応するネットワーク接続間に散在させられるように再複製領域を動的に分割(パーティショニング)して、データファブリックおよび対応するデータファイル内の対応する「壊れた部分」をインテリジェントに修復する。
別の例は、1つまたは複数のコンテンツサーバがデータファブリックをもはやサポートできないということを共同で確認することである。場合によっては、コンテンツサーバは、完全にアクセス不可能ではないが部分的にアクセス不可能になることがある。例えば、組み込まれたネットワーク冗長性のため、スイッチの構成要素が故障する場合がある。これは、すべてではないが一部のメタデータサーバが、1つまたは複数のコンテンツサーバとの監視の連絡が行えないという結果になる可能性がある。コンテンツサーバが、少なくとも1つのメタデータサーバにアクセスできる場合には、関連するデータパーティションサブセットは再複製される必要はない。大規模な再複製は、かなりの処理のオーバヘッドを生じさせる可能性があるため、メタデータサーバにとって、不必要な再複製を回避することは重要である。これを達成するために、メタデータサーバは、ネットワーク内のアクティブなコンテンツサーバのそれらのビューを交換する。1つのメタデータサーバが、特定のコンテンツサーバをもはや監視することができない場合、そのメタデータサーバは、いかなる大規模な再複製の開始を決定する前にも、他のメタデータサーバと協議する。
本発明の一実施形態によれば、複製の量(「複製因子」とも呼ばれる)は、各ファイルと個別に関連付けられる。ファイル内のすべてのスライスは、同じ複製因子を共有することが好ましい。この複製因子は、ユーザによって動的に変更されてもよい。例えば、ファイルを開くための、OCLシステムのアプリケーションプログラミングインタフェース(API)関数は、複製因子を指定する引数を含んでもよい。冗長性および性能対記憶コストのこのきめの細かい制御は、ユーザが、各ファイルについて別個に決定を行うことと、ファイル内に記憶されているデータの変化する価値を反映するようにそれらの決定を時間とともに変更することと、を可能にする。例えば、OCLシステムが、放送されるべき一連のコマーシャルと生番組部分とを作成するために使用される場合、スポーツの試合の中間の休みに続く一番初めのコマーシャルは、特に高価なコマーシャルである可能性がある。したがって、ユーザは、そのようなコマーシャルファイルについての複製因子を、コマーシャルのプレイアウトの後までは一時的に増加させ、そして次に、コマーシャルが放送されたら、複製因子を適切なレベルに戻るように減少させることを望むかもしれない。
メタデータサーバによる協働の別の例は、複製因子の減少が指定された場合に発生する。それらの場合、負荷のバランスを取ることデータ可用性とネットワーク経路とに従ってどの位置を解除するかを決定するために、データファブリックのグローバルビューが使用される。
本発明の別の実施形態によれば、OCLシステム内のコンテンツサーバは、グループにまとめられる。グループは、スライスの複製の位置について決定を行うために使用される。例えば、物理的に同じ装置ラックまたはエンクロージャ内にあるコンテンツサーバのすべてが、1つのグループ内に配置されてもよい。ユーザは、したがって、エンクロージャ内のサーバマシンの配線によって、コンテンツサーバ間の物理的な関係をシステムに示してもよい。スライスの複製は、次に、2つの複製がコンテンツサーバの同じグループ内にあることがないように散在させる。これは、OCLシステムが、ラック全体を巻き込み得るハードウェア障害に対する耐性を有することを可能にする。
[複製]
スライスの複製は、コンテンツサーバの間で内部的に処理されることが好ましい。クライアントは、したがって、それらのファイルの複数のコピーを書き込む追加の帯域幅を費やすことは要求されない。本発明の一実施形態によれば、OCLシステムは、書き込まれているファイルについての実際の複製因子よりも少ない数の複製の書き込みの確認応答(acknowledgement)を、クライアントが要求することができる確認応答の方式を提供する。例えば、複製因子は数百であってもよく、その結果、何百もの複製についての確認応答を待つことにより、クライアントの処理に大幅な遅延がもたらされる。これは、クライアントが、書き込みの速さとファイルデータの保護レベルの確実性とをトレードオフすることになるかもしれない。速度に敏感なクライアントは、ほんの少しの複製のみが作成された後の確認応答を要求してもよい。対照的に、書き込みに敏感なクライアントまたは価値の高いデータを書き込むクライアントは、指定された数の複製がすべて作成された後にのみ、コンテンツサーバによって確認応答が提供されることを要求してもよい。
スライスの複製は、コンテンツサーバの間で内部的に処理されることが好ましい。クライアントは、したがって、それらのファイルの複数のコピーを書き込む追加の帯域幅を費やすことは要求されない。本発明の一実施形態によれば、OCLシステムは、書き込まれているファイルについての実際の複製因子よりも少ない数の複製の書き込みの確認応答(acknowledgement)を、クライアントが要求することができる確認応答の方式を提供する。例えば、複製因子は数百であってもよく、その結果、何百もの複製についての確認応答を待つことにより、クライアントの処理に大幅な遅延がもたらされる。これは、クライアントが、書き込みの速さとファイルデータの保護レベルの確実性とをトレードオフすることになるかもしれない。速度に敏感なクライアントは、ほんの少しの複製のみが作成された後の確認応答を要求してもよい。対照的に、書き込みに敏感なクライアントまたは価値の高いデータを書き込むクライアントは、指定された数の複製がすべて作成された後にのみ、コンテンツサーバによって確認応答が提供されることを要求してもよい。
[インテリジェントスライス]
本発明の一実施形態によれば、ファイルは、OCLシステム内に記憶される際に、スライスに分割される。好ましい場合、スライスは、一般的なRAIDまたはストレージエリアネットワーク(SAN)システム内で使用される従来のディスクブロックまたはストライプとは対照的な、インテリジェントなオブジェクトであると考えることができる。インテリジェンスは、少なくとも2つの特徴に由来する。第1に、各スライスは、ファイル(そのファイルのデータをそのスライスが保持する)に関する情報を含んでいてもよい。これによりスライスは自己の位置が(self−locating)決められる。第2に、各スライスは、チェックサム情報を保持してもよく、これによりスライスは自己検証(self−validating)する。従来のファイルシステムで、(ハードウェアまたはその他の障害により)ファイルデータの位置を示すメタデータが失われた場合、ファイルデータは、ファイルの断片を継ぎ合わせるための骨の折れる手作業によってのみ、回復することが可能である。本発明の一実施形態によれば、OCLシステムは、スライス自体の中に記憶されたファイル情報を使用して、自動的にファイルを継ぎ合わせることが可能である。これは、OCLシステムにおける複製機構に加えて、追加の保護を提供する。従来のブロックまたはストライプとは異なり、スライスは、集中型データ構造における破損によって失われることはありえない。
本発明の一実施形態によれば、ファイルは、OCLシステム内に記憶される際に、スライスに分割される。好ましい場合、スライスは、一般的なRAIDまたはストレージエリアネットワーク(SAN)システム内で使用される従来のディスクブロックまたはストライプとは対照的な、インテリジェントなオブジェクトであると考えることができる。インテリジェンスは、少なくとも2つの特徴に由来する。第1に、各スライスは、ファイル(そのファイルのデータをそのスライスが保持する)に関する情報を含んでいてもよい。これによりスライスは自己の位置が(self−locating)決められる。第2に、各スライスは、チェックサム情報を保持してもよく、これによりスライスは自己検証(self−validating)する。従来のファイルシステムで、(ハードウェアまたはその他の障害により)ファイルデータの位置を示すメタデータが失われた場合、ファイルデータは、ファイルの断片を継ぎ合わせるための骨の折れる手作業によってのみ、回復することが可能である。本発明の一実施形態によれば、OCLシステムは、スライス自体の中に記憶されたファイル情報を使用して、自動的にファイルを継ぎ合わせることが可能である。これは、OCLシステムにおける複製機構に加えて、追加の保護を提供する。従来のブロックまたはストライプとは異なり、スライスは、集中型データ構造における破損によって失われることはありえない。
ファイルコンテンツ情報に加えて、スライスは、スライス作成の瞬間に作成することができるチェックサム情報も保持する。このチェックサム情報は、スライスとともに存在するように命じられ、そして、スライスが複製される際に、スライスとともにシステム全体にわたって運ばれる。チェックサム情報は、すべての複雑な電子システム内に一般に存在するランダムなハードウェアエラーによってスライス内のデータが破損してはいないことの検証を提供する。コンテンツサーバは、それらの中に記憶されているすべてのスライスについて、読み出しとチェックサム計算の実行とを継続的に行うことが好ましい。これは、データの破損のアクティブ検査とも呼ばれる。これは、スライスデータがクライアントによって要求される前に事前の警告を提供するタイプのバックグラウンド検査活動であり、したがって、ファイル読み出しの間にエラーが発生する可能性は減少し、そして、他の場合ならばスライスの複製が破損したままになっている可能性がある時間の量を減少させる。
[冗長データファブリックの動的分割]
次に、図5を参照すると、本発明の一実施形態による、冗長データファブリックの動的分割のための方法を説明するブロック図が示されている。データファブリックはデータ記憶システムの一部であり、システム内に記憶されているファイルのメタデータをそれぞれに記憶するための多数のメタデータサーバマシンと、メタデータによって示された位置にファイルのスライスを記憶するための多数の記憶要素とを備えている。この図は、システムを構成する記憶要素572_1、572_2、...572_Kを示しているが、その他の構成要素は示していない。例えば、メタデータサーバマシンと、記憶要素と、サーバマシンおよび記憶要素が通信可能に結合されたシステム相互接続とを備えたデータ記憶システムの例を示す図3を参照されたい。データファブリックは、それらのハードウェア構成要素の一部またはすべてにおいて実行され、システムの複雑さをクライアントユーザから見えないようにして隠すように設計される。
次に、図5を参照すると、本発明の一実施形態による、冗長データファブリックの動的分割のための方法を説明するブロック図が示されている。データファブリックはデータ記憶システムの一部であり、システム内に記憶されているファイルのメタデータをそれぞれに記憶するための多数のメタデータサーバマシンと、メタデータによって示された位置にファイルのスライスを記憶するための多数の記憶要素とを備えている。この図は、システムを構成する記憶要素572_1、572_2、...572_Kを示しているが、その他の構成要素は示していない。例えば、メタデータサーバマシンと、記憶要素と、サーバマシンおよび記憶要素が通信可能に結合されたシステム相互接続とを備えたデータ記憶システムの例を示す図3を参照されたい。データファブリックは、それらのハードウェア構成要素の一部またはすべてにおいて実行され、システムの複雑さをクライアントユーザから見えないようにして隠すように設計される。
データファブリックは、さらに、クライアントによって要求されたデータを記憶する複数の記憶要素572_1、572_2、...572_Kにわたるパーティションを決定するために、好ましくはメタデータサーバマシンのうちの1つにおいて実行されるソフトウェアを備えている。データは、クライアント要求に対して、新しいファイルを作成し、そして、それに関連する書き込みデータを記憶装置内に書き込むためのものであってもよい。パーティション580は、複数の記憶要素572に分散させられたデータ記憶空間となるように決定される。ソフトウェアは、記憶要素572のうちのいずれがパーティション580のメンバーとなるかを特定する。例として、数百の記憶要素572が存在してもよく、そして、与えられたシステム内で許容されるスライスのサイズとクライアントによってオープンが要求されたファイルのタイプ、または、記憶することが要求されるデータの量とを考慮すると、K個の記憶要素572のサブセットが要求されたパーティションサイズを満たすためには十分であるかもしれない。システムは、したがって、特定のクライアント要求について、K個の記憶要素572のうちのいずれがパーティション580のメンバーとなるかを決定または特定する必要がある。
図5をさらに参照すると、動的分割プロセスは、システム全体について、特に、記憶要素572の負荷、および、使用状況の統計をソフトウェアが継続的に収集する動作583を行う。図3を再び参照すると、本発明の一実施形態は、各記憶要素またはコンテンツサーバから、集中型メタデータサーバへのメッセージベースの制御経路を含む。制御経路は、(例えば、図3における、スイッチのネットワークインタフェースポートとサーバとを接続するマルチGb「イーサネット」リンクとは別個の)独立したバス上にあってもよい。この制御経路は、メタデータサーバマシン内のソフトウェアによって、システムの記憶要素に対して、記憶可用性を含むストレージ(記憶装置)の負荷、および使用状況の統計を、システムの実行時に継続的に収集するために使用される。メタデータサーバソフトウェアは、次に、データファブリックのグローバルな可用性を計算する。これは、記憶要素のグローバルリスト590の更新が図5の動作585で行われるかもしれない。グローバルリスト590は、1つ以上の負荷および使用状況の基準(使用基準)に従ってソートされたシステム内のすべての記憶要素またはコンテンツサーバのリストである。これは、グローバルリスト590から「グローバルに最適」であると考えられるパーティションを、記憶システムのクライアントプログラムが要求することを可能にする。例えば、グローバルリスト590で特定される上位50の記憶要素が、要求されるパーティション580のメンバーとなるように選択されてもよい。これは、グローバルリスト590の中にあるK個のソートされたエントリのサブセットを選択592したことが図5に示されている。このようにしてパーティション580が決定されたら、クライアントによって要求されたデータは、次に、定義されたパーティション580に1つまたは複数のコピーが書きこまれる。
集中型の冗長メタデータサーバ上で、データファブリックの最適な可用性をグローバルに計算することによって、本方法では、記憶要素のアクセス可能性における変化をより迅速に認識して対応を行う。メタデータサーバは、さらに、記憶要素に関するスケジュールされたサービスと、近い将来のデータファブリックの修復のための記憶要素の割り当てを事前に知る(知識を得る)ことができるため、グローバルリストをグローバルに形成することは、複数の記憶要素にわたって分散させるよりもよりも包括的な方法である。
データファブリックの可用性は、継続的に変化するシステム内のストレージの負荷および記憶要素の使用状況の統計を組み合わせた動的な複合物である。メタデータサーバマシン内で実行されるソフトウェアは、データファブリック全体にわたってデータのコピーを再複製することによりデータファブリックの修復も担当する。特定のコンテンツサーバのキューに入れられて待機している修復作業の量について知ること(知識)により、例えば、最適な可用性のあるパーティションの形成の過程において、記憶要素の可用性を予測するためにも用いられてもよい。
統計が収集された記憶装置の負荷および使用基準には、以下のものを含んでもよい。
記憶要素がデータファブリックに参加した度合い(degree)、
記憶要素がパーティション内で参照された回数、
記憶要素がデータファブリックの修復に関わっている度合い、
記憶要素内のデータキャッシュの満杯度(fullness)、
記憶要素内の空き領域の量、
システムのクライアントのために記憶要素によって実行された読み出しおよび書き込みの量、
記憶要素内の要求キューの長さ、
メタデータサーバのためにデータファブリックを修復するために、記憶要素について保留中になっている書き込みの数、
記憶要素によって最近ログ記録されたデータエラーの数、
各メタデータサーバによって追跡記録された接続性エラーの数、および、
メタデータサーバとコンテンツサーバとの間で制御コマンドを完了するために要した時間。
記憶要素がパーティション内で参照された回数、
記憶要素がデータファブリックの修復に関わっている度合い、
記憶要素内のデータキャッシュの満杯度(fullness)、
記憶要素内の空き領域の量、
システムのクライアントのために記憶要素によって実行された読み出しおよび書き込みの量、
記憶要素内の要求キューの長さ、
メタデータサーバのためにデータファブリックを修復するために、記憶要素について保留中になっている書き込みの数、
記憶要素によって最近ログ記録されたデータエラーの数、
各メタデータサーバによって追跡記録された接続性エラーの数、および、
メタデータサーバとコンテンツサーバとの間で制御コマンドを完了するために要した時間。
収集されたストレージの負荷および使用状況の統計のさらなる例は、以下のとおりである。
記憶要素を含む、未処理のデータファブリック修復の数、
例えば、記憶要素の周囲温度、残りのバックアップ電源の数、動作中のファンの数などの環境条件が、動作限界に近付いているかどうか、および、
内部整合性サービスのために割り当てられている(例えば、メタデータサーバテーブルのチェックポイントイメージのバックアップの宛先として対象にされている)記憶要素の近さ。
例えば、記憶要素の周囲温度、残りのバックアップ電源の数、動作中のファンの数などの環境条件が、動作限界に近付いているかどうか、および、
内部整合性サービスのために割り当てられている(例えば、メタデータサーバテーブルのチェックポイントイメージのバックアップの宛先として対象にされている)記憶要素の近さ。
次に、図6を参照すると、システムの記憶要素572は、図示されているように静的にグループ分けすることができる。ソフトウェアは、パーティション580のメンバーを、メンバーのそれぞれが異なるグループから選択するのが好ましい。図6に見ることができるように、これは、パーティション580の最初のL個のメンバー(ここで、Lは、システム内の記憶要素のグループの総数)が、それぞれ異なるグループ内にあることを意味する。記憶要素のグループ分けは、例えば、電源、モデルタイプ、および特定のスイッチングトポロジへの接続性などの共通の設置パラメータ(installation parameters)に従ってもよい。各グループは、それぞれ共通の設置パラメータを持っている2つ以上の記憶要素572を有する。例えば、図6において、グループ1は、同じラックまたはエンクロージャ内にあり、同じ電源を共有している(この場合は、記憶要素572_8を含む)記憶要素のセットであってもよい。グループ2内の記憶要素は、異なるラック内にあり、異なる電源を共有しているものかもしれない。別のグループ分け方法は、特定のモデルタイプのディスクドライブを備えたすべての記憶要素を、同じグループ内に配置したものであってもよい。別の方法では、システムの第1の外部パケットスイッチに接続された記憶要素が、第2の外部パケットスイッチに接続された記憶要素とは別個にグループ分けされる。以下で説明するように、このタイプの静的なグループ分けは、システムの記憶要素のセット(そこから、所与のパーティションのメンバーが選択される)全体の中での「ストライド」を決定する。
次に、図7を参照すると、グローバルな可用性パーティションまたはグローバルリスト590(図5参照)を決定するためのプロセスのフロー図が示されている。グローバルリスト590は、システムのメタデータサーバマシンのそれぞれの中にキャッシュされ、それと一緒に新しいパーティションに対するクライアントの要求に対してキャッシュされたグローバルリストから新しいパーティションのメンバーを選択して応答するソフトウェアもキャッシュされるのが好ましい。クライアントが可用性パーティションを要求すると、メタデータサーバに関連付けられたソフトウェアは、最適な可用性パーティションのセグメントを、要求しているクライアントに割り当てることによって応答する。メタデータサーバによるそのような応答は、グローバルに保持された最適な可用性パーティションまたはグローバルリストが古くなるまで、または、データファブリックが大幅に変更されるまで継続される。グローバルリスト590は、例えば、記憶要素内またはシステム相互接続内に変化があった場合(例えば、所与の記憶要素のディスクドライブが故障して交換された場合)、あるいは、記憶容量または帯域幅の増加に関してシステムのアップグレードが行われた場合に更新される。
データファブリック内のそのような変化は、メタデータサーバによる記憶要素の定期的な監視と、記憶要素からメタデータサーバへのイベント駆動型の通知との組み合わせによって認識される。記憶要素は、データファブリックに動的に接続、切断、または再接続して、それにより、最適な可用性パーティションの選択を変更することが可能である。ディスクドライブのホットスワッピングなどによる記憶のコンフィギュレーションにおける変化も、最適な可用性パーティションの選択を変更する。
ここで、図7を参照すると、「最適」な可用性パーティションまたはグローバルリスト590を決定するためのプロセスは、システムのすべてのグループ分けされた記憶要素に対する作業用セットを、初期化することから始まる(704)。変数Nは、パーティション要求カウントを意味し、グローバルリストまたはグローバルパーティションのために選択される記憶要素のメンバーの総数を示すために用いられる(0に初期化される)。パーティション要求カウントは、例えば、要求されるファイルのタイプまたはファイルの最大サイズなどに基づいた最大の期待されるクライアント要求に基づいて定義される。
グローバルパーティションに選択された記憶要素のメンバーの数が、要求カウントよりも小さい間は(708)、プロセスは、それまでにパーティションに選択された記憶要素のメンバーの数が、システム内のグループの数よりも少ないか否かについて判定する(712)。上述のように、システムの記憶要素は、各グループのメンバーが1つ以上の共通の設置パラメータを有することに基づいてグループにまとめられてもよい。パーティションに選択されたメンバーの数がグループの数よりも少ない場合は、作業用セットは、上記パーティションにすでに加えられたグループに属するあらゆる記憶要素またはサーバを除くように調整される。最初のパスでは、作業用セットへの調整は行われず、次に、可用性のソート基準の初期化に進む(716)。ソート基準は、上述のストレージの負荷および使用基準のうちのいくつかを含む。ソート基準のうちの特定の1つについて(720)、作業用セットはソートされる(724)。例えば、このパスにおけるソート基準は、記憶要素がデータファブリックにつながる度合い(アクティブなネットワーク接続の数、接続速度、および接続性エラーを意味する)であると仮定する。作業用セットは、次に、特定のしきい値未満の要素、すなわち、「最適」より下の(例えば、平均未満の)要素を除くように調整される。プロセスは、次に、動作720にループバックし、そこで次のソート基準が取得されて、作業用セットは再びソートされ(724)、そして再び、「最適」より下の要素を除くように調整される(726)。このループは、ソート基準がすべて使い果たされるまで継続して繰り返され(728)、すべて使い果たされた時点で、パーティションの次のメンバーが選択される(730)。この例では、選択されるメンバーは、残っている作業用セットのうちの第1のまたは最高位のメンバーである(730)。変数N(最適可用性パーティションのために選択された記憶要素メンバーの数)はインクリメントされ(730)、そして、いま選択されたメンバーを提供しているグループが、グループリストに追加される(732)。
動作708から始まる上述のプロセスが、次に、パーティションの次のメンバーを選択するために繰り返される。動作716において、作業用セットは、パーティション内ですでに加えられたグループに属するあらゆるサーバまたは記憶要素を除去することによって、毎回再初期化されることに留意されたい。
パーティション内のメンバーの数が静的なグループの数に達したら(動作712)、次のメンバーは、グループ順序が繰り返されるように選択される。したがって、動作734において、グループリスト内の次のグループが取得され、これがグループリストの最後ではない場合(736)、作業用セットは、このパーティションのためにすでに選択されていないグループのメンバーに再初期化される(738)。したがって、すべてのグループがパーティションに最初に加えられた後は、公平となるようにストライドを維持するために、パーティションの次のメンバーは、最初に選択された記憶要素を提供しているグループから選択される。
各グループがその記憶要素のうちの2つによってパーティションに加えられるように、グループリストが使い果たされたら(動作736)、パーティション要求カウントが満たされるまで、パーティションの次のメンバーが既存のパーティションの順に繰り返すことにより選択されてもよい(740)。冗長データファブリックを動的に分割するその他の方法であってもよい。
本発明の一実施形態は、上述の動作のうちの一部を実行するように1つ以上のプロセッサをプログラムする命令が記憶された、機械読み取り可能な媒体であってもよい。他の実施形態では、それらの動作のうちの一部は、ハードウェアロジックを含む特定のハードウェア構成要素によって実行されてもよい。それらの動作は、代わりに、プログラムされたコンピュータ構成要素と、カスタムハードウェア構成要素との、任意の組み合わせによって実行されてもよい。
機械読み取り可能な媒体は、コンパクトディスク読み出し専用メモリ(CD−ROM)、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、およびインターネット上の伝送に限定されない、マシン(例えば、コンピュータ)による読み出しが可能な形態で情報を記憶または伝送するための任意の機構を含んでもよい。
本発明は、上述の特定の実施形態に限定されない。例えば、OCLシステムは、大容量記憶ユニットとして回転磁気ディスクドライブのみを使用する、現在のバージョンを使用して説明したが、磁気ディスクドライブの代替が、システムに必要な速度、記憶容量、およびコストの要求をそれらが満たす限り、可能である。したがって、その他の実施形態が特許請求の範囲に含まれる。
Claims (13)
- データ記憶システムであって、前記データ記憶システムは、
複数のメタデータサーバマシンであって、それぞれは、前記システム内に記憶されている複数のファイルについてのメタデータを記憶する複数のメタデータサーバマシンと、
前記ファイルのスライスを、前記メタデータによって示された位置において記憶する複数の記憶要素と、
前記メタデータサーバマシンおよび記憶要素が通信可能に結合されたシステム相互接続と、
前記メタデータサーバマシン内で実行されるデータファブリックであって、前記データファブリックは、前記システムの複雑さを複数のクライアントユーザから隠すデータファブリックと、
前記メタデータサーバマシンのうちの1つの中で実行されるように構成されたソフトウェアであって、クライアントによって要求されたデータを記憶する前記記憶要素にわたるパーティションを決定するためのソフトウェアとを含み、
前記ソフトウェアは、前記記憶要素のうちのいくつかを前記パーティションのメンバーとして識別するように構成され、前記ソフトウェアは、前記記憶要素から記憶装置の負荷および使用状況の統計を継続的に収集するように、かつ、負荷および使用状況の基準に従ってソートされた前記記憶要素のグローバルリストを繰り返し更新するように構成され、前記ソフトウェアは、前記グローバルリストに基づいて、前記パーティションの前記メンバーを選択するように構成され、
前記記憶要素は複数のグループとして配備され、各グループは、共通の設置パラメータを有するそれぞれの2つ以上の前記記憶要素を有し、前記ソフトウェアは、このグループ分けの知識を使用して前記記憶要素をソートし、
前記ソフトウェアは、前記パーティションの前記メンバーを、前記メンバーのそれぞれが前記グループのうちの異なる1つから選択することを特徴とするデータ記憶システム。 - 前記共通の設置パラメータは、電源と、モデルタイプと、前記システム相互接続への接続性とからなる群のうちの1つを含むことを特徴とする請求項1に記載の記憶システム。
- 前記グローバルリストは、前記メタデータサーバマシンのそれぞれの中にキャッシュされ、それと一緒に、新しいパーティションに対するクライアント要求に対して、前記キャッシュされたグローバルリストから前記新しいパーティションのメンバーを選択することによって応答するソフトウェアもキャッシュされることを特徴とする請求項1に記載の記憶システム。
- 前記ソフトウェアは、前記グローバルリストが所定の寿命に到達した場合に、前記グローバルリストを更新することを特徴とする請求項3に記載の記憶システム。
- 前記ソフトウェアは、前記記憶要素内または前記システム相互接続内に変化があった場合に、前記グローバルリストを更新することを特徴とする請求項3に記載の記憶システム。
- 収集される前記記憶装置の負荷および使用状況の統計は、
記憶要素が前記データファブリックに参加した度合いと、
記憶要素がパーティション内で参照された回数と、
記憶要素がデータファブリックの修復に関わっている度合いと、
記憶要素内のデータキャッシュの満杯度と、
記憶要素内の空き領域の量と、
前記記憶システムのクライアントのために記憶要素によって実行された読み出しおよび書き込みの量と、
記憶要素によってログ記録されたデータエラーの数とを含むことを特徴とする請求項2に記載の記憶システム。 - 前記ソフトウェアは、
a)作業用セットを、前記記憶要素のうちのすべてを含むように初期化し、次に、
b)前記作業用セットを、第1の記憶装置の負荷または使用状況の基準に従ってソートし、次に、
c)前記作業用セットを、前記記憶要素のうちの1つ以上を除去することによって減少させ、次に、
d)前記作業用セットを、第2の記憶装置の負荷または使用状況の基準に従ってソートし、次に、
前記作業用セットから前記グローバルリストの第1のメンバーを選択することによって、前記グローバルリストを更新することを特徴とする請求項2に記載の記憶システム。 - 前記ソフトウェアは、
前記作業用セットから前記グローバルリストの前記第1のメンバーを選択した後で、前記作業用セットを、前記選択された第1のメンバーと同じグループに属する記憶要素を除く、すべての前記記憶要素を含むように初期化し、次に、
b)〜d)を繰り返し、次に、
前記作業用セットから前記グローバルリストの第2のメンバーを選択することによって、前記グローバルリストを更新することを特徴とする請求項7に記載の記憶システム。 - データ記憶システムを動作させるための方法であって、
a)前記システムの複数の記憶要素から、記憶装置の負荷および使用に関する定量的データを収集するステップと、
b)前記収集された定量的データに従って、前記記憶要素をランク付けするステップと、
c)前記システムのユーザによって要求されたファイルを記憶する、前記記憶要素にわたるパーティションを、前記記憶要素のうちのいくつかを前記パーティションのメンバーとして識別することによって決定することであって、前記メンバーは前記ランク付けから選択され、前記記憶要素は複数のグループとして配備され、各グループは、共通の設置パラメータを有する、それぞれの2つ以上の前記記憶要素を有し、ソフトウェアは、このグループ分けの知識を使用して前記記憶要素をソートし、前記パーティションの前記メンバーは、前記メンバーのそれぞれが、前記グループのうちの異なる1つからのものであるように選択されるステップと、
d)複数のユーザ要求に対してc)を実行するステップと、
e)1)前記ランク付けが古くなったこと、2)前記システムが修復されたこと、および3)前記システムがアップグレードされたことからなる群のうちの1つに応えて、前記ランク付けを更新するためにb)を実行するステップとを含むことを特徴とする方法。 - 負荷の基準は、記憶要素内のデータキャッシュの満杯度と、前記記憶要素内の空き領域の量と、前記記憶要素が前記システムの修復に関わっている度合いと、前記記憶要素によってログ記録されたデータエラーの数とからなる群のうちの1つを含むことを特徴とする請求項9に記載の方法。
- 使用状況の基準は、記憶要素がパーティション内で参照された回数と、前記システムのクライアントのために前記記憶要素によって実行された読み出しおよび書き込みの量とからなる群のうちの1つを含むことを特徴とする請求項10に記載の方法。
- オーディオビデオ処理システムであって、
前記システムの複雑さを複数のクライアントから隠すためのデータファブリックを有する分散記憶システムであって、前記データファブリックは、クライアントによって要求されたデータを記憶する前記システムの複数の記憶要素にわたるパーティションを決定し、前記データファブリックは、前記記憶要素から記憶装置の負荷および使用状況の統計を収集し、パーティション内での使用のためにより好適なものからパーティション内での使用のためにより好適でないものへとソートされた前記記憶要素のリストを維持するために前記収集された統計を使用し、前記データファブリックは、前記リストから前記パーティションのメンバーを選択し、前記記憶要素は複数のグループとして配備され、各グループは、共通の設置パラメータを有するそれぞれの2つ以上の前記記憶要素を有し、ソフトウェアは、このグループ分けの知識を使用して前記記憶要素をソートし、前記パーティションの前記メンバーは、前記メンバーのそれぞれが前記グループのうちの異なる1つから選択される分散記憶システムと、
オーディオおよびビデオの取り込みソースからデータを取得するための、および、前記データの記憶の要求において前記データファブリックのクライアントとして働くメディアサーバとを含むことを特徴とするオーディオビデオ処理システム。 - 前記データファブリックは、前記リストが更新されるまで、前記リストを、複数のクライアント要求のためのパーティションを決定するために使用し、
前記データファブリックは、1)前記リストが古くなったこと、2)前記システムが修復されたこと、および3)前記システムがアップグレードされたことからなる群のうちの1つに応えて、前記リストを更新することを特徴とする請求項12に記載のオーディオビデオ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/371,393 US20070214183A1 (en) | 2006-03-08 | 2006-03-08 | Methods for dynamic partitioning of a redundant data fabric |
PCT/US2007/005917 WO2007103493A2 (en) | 2006-03-08 | 2007-03-07 | Methods for dynamic partitioning of a redundant data fabric |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009529190A true JP2009529190A (ja) | 2009-08-13 |
Family
ID=38337872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008558394A Pending JP2009529190A (ja) | 2006-03-08 | 2007-03-07 | 冗長データファブリックの動的分割のための方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070214183A1 (ja) |
EP (1) | EP1999655A2 (ja) |
JP (1) | JP2009529190A (ja) |
WO (1) | WO2007103493A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012008950A (ja) * | 2010-06-28 | 2012-01-12 | Nippon Telegr & Teleph Corp <Ntt> | 分散型マルチメディアサーバシステム、分散型マルチメディア蓄積方法、及び分散型マルチメディア配信方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070233868A1 (en) * | 2006-03-31 | 2007-10-04 | Tyrrell John C | System and method for intelligent provisioning of storage across a plurality of storage systems |
EP2073120B1 (en) * | 2007-12-18 | 2017-09-27 | Sound View Innovations, LLC | Reliable storage of data in a distributed storage system |
US8103628B2 (en) * | 2008-04-09 | 2012-01-24 | Harmonic Inc. | Directed placement of data in a redundant data storage system |
US7992037B2 (en) * | 2008-09-11 | 2011-08-02 | Nec Laboratories America, Inc. | Scalable secondary storage systems and methods |
US9201890B2 (en) * | 2010-10-04 | 2015-12-01 | Dell Products L.P. | Storage optimization manager |
US9311374B2 (en) * | 2010-11-30 | 2016-04-12 | Red Hat, Inc. | Replicating data objects within a storage network based on resource attributes |
US10108500B2 (en) | 2010-11-30 | 2018-10-23 | Red Hat, Inc. | Replicating a group of data objects within a storage network |
US9152640B2 (en) * | 2012-05-10 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Determining file allocation based on file operations |
US9594801B2 (en) * | 2014-03-28 | 2017-03-14 | Akamai Technologies, Inc. | Systems and methods for allocating work for various types of services among nodes in a distributed computing system |
WO2016051512A1 (ja) * | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
US10705909B2 (en) * | 2015-06-25 | 2020-07-07 | International Business Machines Corporation | File level defined de-clustered redundant array of independent storage devices solution |
US10275468B2 (en) * | 2016-02-11 | 2019-04-30 | Red Hat, Inc. | Replication of data in a distributed file system using an arbiter |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11316749A (ja) * | 1998-02-06 | 1999-11-16 | Ncr Internatl Inc | デ―タ・ストレ―ジ・システムにおける冗長デ―タの識別方法 |
US20020178162A1 (en) * | 2001-01-29 | 2002-11-28 | Ulrich Thomas R. | Integrated distributed file system with variable parity groups |
JP2005505814A (ja) * | 2001-09-28 | 2005-02-24 | マランティ ネットワークス インコーポレイテッド | 記憶ネットワーク中の負荷平衡 |
JP2006048627A (ja) * | 2004-06-01 | 2006-02-16 | Hitachi Ltd | ストレージシステムのダイナミック負荷バランシング |
JP2006506741A (ja) * | 2002-11-14 | 2006-02-23 | アイシロン・システムズ・インコーポレーテッド | 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5881311A (en) * | 1996-06-05 | 1999-03-09 | Fastor Technologies, Inc. | Data storage subsystem with block based data management |
US5893920A (en) * | 1996-09-30 | 1999-04-13 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
US6597956B1 (en) * | 1999-08-23 | 2003-07-22 | Terraspring, Inc. | Method and apparatus for controlling an extensible computing system |
US6977908B2 (en) * | 2000-08-25 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for discovering computer systems in a distributed multi-system cluster |
US6970939B2 (en) * | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
US6647396B2 (en) * | 2000-12-28 | 2003-11-11 | Trilogy Development Group, Inc. | Classification based content management system |
US20020191311A1 (en) * | 2001-01-29 | 2002-12-19 | Ulrich Thomas R. | Dynamically scalable disk array |
US7054927B2 (en) * | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US7685126B2 (en) * | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US20030037187A1 (en) * | 2001-08-14 | 2003-02-20 | Hinton Walter H. | Method and apparatus for data storage information gathering |
US6978398B2 (en) * | 2001-08-15 | 2005-12-20 | International Business Machines Corporation | Method and system for proactively reducing the outage time of a computer system |
US7092977B2 (en) * | 2001-08-31 | 2006-08-15 | Arkivio, Inc. | Techniques for storing data based upon storage policies |
US7024427B2 (en) * | 2001-12-19 | 2006-04-04 | Emc Corporation | Virtual file system |
US20040088380A1 (en) * | 2002-03-12 | 2004-05-06 | Chung Randall M. | Splitting and redundant storage on multiple servers |
US7155464B2 (en) * | 2002-03-29 | 2006-12-26 | Panasas, Inc. | Recovering and checking large file systems in an object-based data storage system |
US7007047B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Internally consistent file system image in distributed object-based data storage |
US7194467B2 (en) * | 2002-03-29 | 2007-03-20 | Panasas, Inc | Using whole-file and dual-mode locks to reduce locking traffic in data storage systems |
US7036039B2 (en) * | 2002-03-29 | 2006-04-25 | Panasas, Inc. | Distributing manager failure-induced workload through the use of a manager-naming scheme |
US7007024B2 (en) * | 2002-03-29 | 2006-02-28 | Panasas, Inc. | Hashing objects into multiple directories for better concurrency and manageability |
WO2004061605A2 (en) * | 2003-01-02 | 2004-07-22 | Attune Systems, Inc. | Medata based file switch and switched file system |
AU2004208274B2 (en) * | 2003-01-28 | 2007-09-06 | Samsung Electronics Co., Ltd. | Method and system for managing media file database |
US7210091B2 (en) * | 2003-11-20 | 2007-04-24 | International Business Machines Corporation | Recovering track format information mismatch errors using data reconstruction |
US7747836B2 (en) * | 2005-03-08 | 2010-06-29 | Netapp, Inc. | Integrated storage virtualization and switch system |
US7660807B2 (en) * | 2005-11-28 | 2010-02-09 | Commvault Systems, Inc. | Systems and methods for cataloging metadata for a metabase |
US8229897B2 (en) * | 2006-02-03 | 2012-07-24 | International Business Machines Corporation | Restoring a file to its proper storage tier in an information lifecycle management environment |
US8103628B2 (en) * | 2008-04-09 | 2012-01-24 | Harmonic Inc. | Directed placement of data in a redundant data storage system |
-
2006
- 2006-03-08 US US11/371,393 patent/US20070214183A1/en not_active Abandoned
-
2007
- 2007-03-07 JP JP2008558394A patent/JP2009529190A/ja active Pending
- 2007-03-07 WO PCT/US2007/005917 patent/WO2007103493A2/en active Application Filing
- 2007-03-07 EP EP07752604A patent/EP1999655A2/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11316749A (ja) * | 1998-02-06 | 1999-11-16 | Ncr Internatl Inc | デ―タ・ストレ―ジ・システムにおける冗長デ―タの識別方法 |
US20020178162A1 (en) * | 2001-01-29 | 2002-11-28 | Ulrich Thomas R. | Integrated distributed file system with variable parity groups |
JP2005505814A (ja) * | 2001-09-28 | 2005-02-24 | マランティ ネットワークス インコーポレイテッド | 記憶ネットワーク中の負荷平衡 |
JP2006506741A (ja) * | 2002-11-14 | 2006-02-23 | アイシロン・システムズ・インコーポレーテッド | 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法 |
JP2006048627A (ja) * | 2004-06-01 | 2006-02-16 | Hitachi Ltd | ストレージシステムのダイナミック負荷バランシング |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012008950A (ja) * | 2010-06-28 | 2012-01-12 | Nippon Telegr & Teleph Corp <Ntt> | 分散型マルチメディアサーバシステム、分散型マルチメディア蓄積方法、及び分散型マルチメディア配信方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1999655A2 (en) | 2008-12-10 |
WO2007103493B1 (en) | 2007-12-27 |
WO2007103493A3 (en) | 2007-11-15 |
US20070214183A1 (en) | 2007-09-13 |
WO2007103493A2 (en) | 2007-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5004975B2 (ja) | データ記憶システム | |
JP4934790B2 (ja) | スケーラブルなデータ記憶システムのためのネットワークトポロジ | |
JP2009529190A (ja) | 冗長データファブリックの動的分割のための方法 | |
JP5006395B2 (ja) | 分散ファイルシステムのためのトランスコーディング | |
US7721157B2 (en) | Multi-node computer system component proactive monitoring and proactive repair | |
US11226777B2 (en) | Cluster configuration information replication | |
US11016864B2 (en) | Cluster-wide service agents | |
US7941455B2 (en) | Notification for a distributed file system | |
US20060167838A1 (en) | File-based hybrid file storage scheme supporting multiple file switches | |
US20070214285A1 (en) | Gateway server | |
US20100228819A1 (en) | System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications | |
US9348715B2 (en) | Storage device health status synchronization | |
US11431798B2 (en) | Data storage system | |
US11775186B1 (en) | Dynamic usage-metric-based configuration of storage volumes | |
US11561709B1 (en) | Dynamic recovery-objective-based configuration of backup volumes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110531 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110831 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110907 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111122 |