(57)【要約】  データ記憶システムが、複数のサーバグループを有し、各グループは複数のデータ記憶サーバを有する。ファイルが、複数のサーバのうちの２つ以上にわたって散在させられることによって、システム内に記憶される。サーバは、内部パケットスイッチに通信可能に結合される。１つの外部パケットスイッチが、複数の内部パケットスイッチに通信可能に結合される。サーバのそれぞれへのクライアントアクセスは、内部パケットスイッチのうちの１つと、外部パケットスイッチとを経由する。その他の実施形態も説明され特許請求される。
2009529295.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶システムであって、
第１の複数のサーバグループであって、各グループは複数のデータ記憶サーバを有し、ファイルが、前記グループの前記データ記憶サーバのうちの２つ以上にわたって散在させられることによって、前記システム内に記憶される第１の複数のサーバグループと、
前記第１の複数のサーバグループの前記データ記憶サーバがそれぞれ、通信可能に結合された第１の複数の内部パケットスイッチと、
前記複数の内部パケットスイッチに通信可能に結合された第１の外部パケットスイッチであって、前記データ記憶サーバのそれぞれへのクライアントアクセスは、前記内部パケットスイッチのうちの１つと、前記外部パケットスイッチとを経由する第１の外部パケットスイッチとを含むことを特徴とするデータ記憶システム。
【請求項２】
各グループ内の前記データ記憶サーバは、メタデータサーバと複数のコンテンツサーバとを含み、
前記ファイルは、メタデータサーバによって決定されたとおりに前記システム内の前記コンテンツサーバのうちの２つ以上にわたって散在させられることによって、前記システム内に記憶されることを特徴とする請求項１に記載のシステム。
【請求項３】
各グループ内の前記データ記憶サーバは、物理層において、前記第１の外部パケットスイッチではなく、前記内部パケットスイッチのうちのそれぞれの１つと通信を行うことを特徴とする請求項２に記載のシステム。
【請求項４】
前記内部パケットスイッチのうちの１つを介した前記データ記憶サーバのそれぞれへの冗長クライアントアクセスを提供するために、前記複数の内部パケットスイッチに通信可能に結合された第２の外部パケットスイッチをさらに備えたことを特徴とする請求項３に記載のシステム。
【請求項５】
複数のアダプタスイッチをさらに備え、
各アダプタスイッチは、ａ）前記サーバグループのうちのそれぞれの１つの前記データ記憶サーバと、ｂ）前記内部パケットスイッチのうちのそれぞれの１つとの間に通信可能に結合され、
各アダプタスイッチは、ａ）前記それぞれのサーバグループの前記データ記憶サーバに結合された複数の低帯域幅ポートと、ｂ）前記それぞれの内部パケットスイッチに結合された複数の高帯域幅ポートとを有することを特徴とする請求項４に記載のシステム。
【請求項６】
複数のアダプタスイッチをさらに備え、
各アダプタスイッチは、ａ）前記サーバグループのうちのそれぞれの１つの前記データ記憶サーバと、ｂ）前記内部パケットスイッチのうちのそれぞれの１つと、の間に通信可能に結合され、
各アダプタスイッチは、ａ）前記それぞれのサーバグループの前記データ記憶サーバに結合された複数の低帯域幅ポートと、ｂ）前記それぞれの内部パケットスイッチに結合された複数の高帯域幅ポートとを有することを特徴とする請求項１に記載のシステム。
【請求項７】
前記サーバグループのそれぞれは、独自の電源およびファンを含む別個のエンクロージャを含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記別個のエンクロージャは、サーバラックであることを特徴とする請求項７に記載のシステム。
【請求項９】
データ記憶システムであって、
第１の複数のクラスタであって、各クラスタは複数のサーバグループと１つの内部パケットスイッチとを有し、クラスタ内の各サーバグループは、前記クラスタの前記内部パケットスイッチに通信可能に結合された複数のコンテンツサーバと１つのメタデータサーバとを有し、ファイルが、メタデータサーバによって決定されたとおりに２つ以上のコンテンツサーバにわたって散在させられることによって、前記システム内に記憶される第１の複数のクラスタと、
第１の複数の外部パケットスイッチであって、それぞれが、前記複数のクラスタに、各クラスタの前記内部パケットスイッチを介して通信可能に結合された第１の複数の外部パケットスイッチとを備えたことを特徴とするデータ記憶システム。
【請求項１０】
前記外部パケットスイッチは、イーサネット（登録商標）スイッチであることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記外部パケットスイッチは、インフィニバンドスイッチであることを特徴とする請求項９に記載のシステム。
【請求項１２】
第２の複数の外部パケットスイッチであって、それぞれが、前記複数のクラスタに各クラスタの前記内部パケットスイッチを介して通信可能に結合された第２の複数の外部パケットスイッチをさらに備えたことを特徴とする請求項９に記載のシステム。
【請求項１３】
前記外部パケットスイッチのそれぞれはＮ個のポートを有し、前記Ｎ個のポートのうちの半分は、それぞれ、前記複数のクラスタに結合されており、そして前記Ｎ個のポートのうちの半分は利用可能であることを特徴とする請求項９に記載のシステム。
【請求項１４】
第２の複数のクラスタであって、各クラスタは、前記外部パケットスイッチの前記利用可能なポートに通信可能に結合されたＮ／２個のポートを有する第２の複数のクラスタをさらに含むことを特徴とする請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般に、比較的高い容量、性能、およびデータ可用性を有する電子データ記憶システムに関し、特に、記憶容量およびクライアントを追加することに関してスケーラブルな電子データ記憶システムに関する。その他の実施形態も説明され特許請求される。
【背景技術】
【０００２】
今日の情報集約的環境においては、膨大な量のデジタルデータを記憶する必要のある、多くの企業およびその他の団体が存在する。それらには、ネットワークで結ばれた何千人もの従業員によって共有される企業内情報を記憶する大企業などの事業体、何百万もの製品に関する情報を記憶するオンライン販売業者、ならびに、大規模な文献の収集物を有する図書館および教育機関が含まれる。大規模データ記憶システムの使用に対する最近のニーズは、放送テレビジョンの番組編成市場にある。そのような業務は、テレビ番組の作成、編集、および放送のための古いアナログ技術から、全デジタルの手法へと推移しつつある。（コマーシャルなどの）コンテンツ自体がデジタルビデオファイルの形式で記憶されるのみでなく、放送のための準備における、番組およびコマーシャルの、編集およびシーケンシング（ｓｅｑｕｅｎｃｉｎｇ）も、強力なコンピュータシステムを使用してデジタル処理される。データ記憶システム内に記憶されてもよいその他のタイプのデジタルコンテンツとしては、地震予知のための地震探査データ、および地図作成のための衛星画像データが挙げられる。
【０００３】
メディアサーバと呼ばれる強力なデータ記憶システムが、カリフォルニア州サニーヴェール（Ｓｕｎｎｙｖａｌｅ，Ｃａｌｉｆｏｒｎｉａ）のオムネオン・ビデオネットワークス（Ｏｍｎｅｏｎ  Ｖｉｄｅｏ  Ｎｅｔｗｏｒｋｓ）（本特許出願の譲受人）によって提供されている。メディアサーバは、サーバマシンのネットワーク上で実行されている複数のソフトウェア構成要素から構成される。サーバマシンは、データを記憶する回転磁気ディスクドライブなどの大容量記憶装置を有する。サーバは、ファイルの作成、書き込み、または読み出しの要求を受け入れ、そして、１つ以上のディスクドライブ内にデータを転送するプロセス、または要求された読み出しデータをそれらのディスクドライブから送り出すプロセスを管理する。サーバは、どのファイルがどのドライブに記憶されているかを追跡記録する。ファイルへのアクセス要求、すなわち、作成、書き込み、または読み出しの要求は、通常、サーバネットワークに接続されたクライアントマシン上で実行されていてもよい、クライアントアプリケーションプログラムと呼ばれるものから受信される。例えば、アプリケーションプログラムは、（システム内にデジタルビデオファイルとして記憶された）特定のビデオクリップを必要とする、テレビジョンスタジオのワークステーション上で実行されているビデオ編集のアプリケーションであってもよい。
【０００４】
ビデオデータは、例えばＭｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）フォーマットの形式の圧縮を使用したとしても、大容量である。したがって、そのような環境のためのデータ記憶システムは、数十テラバイト、またはそれよりも大きな記憶容量を提供するように設計される。さらに、高速データ通信リンクが、ネットワークのサーバマシンを接続するために使用され、そして場合によっては、システムへのアクセス用に１００Ｇｂ／秒以上の共有総帯域幅を提供する特定のクライアントマシンと接続するためにも使用される。記憶システムは、さらに、複数のクライアントによるアクセスサービスを同時に提供することが可能である。
【０００５】
記憶システムの全体的コストの低減を支援するために、分散アーキテクチャが使用される。何百もの小さな、比較的低コストの、大量生産ディスクドライブ（現在では、各ユニットが１００Ｇバイト以上の容量を有する）が、はるかに大きな総記憶容量に到達するように、一緒にネットワーク接続されてもよい。しかし、記憶容量のこの分散は、システム内で正常なアクセスを妨げる障害が発生する可能性も増加させる。そのような障害は、システムハードウェア内（例えば、ケーブル、コネクタ、ファン、電源、またはディスクドライブユニット）だけでなくソフトウェア内（特定のクライアントアプリケーションプログラムにおけるバグなど）も含むさまざまな異なる場所で、発生する可能性がある。他の場合ならばそのアクセスを阻止していたであろうディスク障害にもかかわらず、所与のアクセスサービスを提供するために（例えば、要求されたデータを利用可能にするために）、記憶システムは、ｒｅｄｕｎｄａｎｔ  ａｒｒａｙ  ｏｆ  ｉｎｅｘｐｅｎｓｉｖｅ  ｄｉｓｋｓ（ＲＡＩＤ）の形式で、冗長性を実装している。システムは、さらに、代替えドライブ内へ、故障したディスクドライブのコンテンツを再構築することも可能にする。
【０００６】
記憶システムは、さらに、複雑で広範囲なハードウェアおよびソフトウェアの交換を行う必要なしに、より大きなデータ記憶の要求、および増加するクライアント負荷に対処するために、容易に拡張するようにスケーラブルでなければならない。
【０００７】
本発明の実施形態は、限定のためではなく、例として、同様の参照符は同様の要素を示す添付の図面の図中に示されている。本開示における、本発明の「一（ａｎ）」実施形態への言及は、必ずしも同じ実施形態への言及とは限らず、そしてそれらは、少なくとも１つを意味していることに留意すべきである。
【発明を実施するための最良の形態】
【０００８】
本発明の一実施形態は、容量、性能、およびデータ可用性の厳しい要求を、よりスケーラブルなアーキテクチャを使用して、より良く達成することが可能な、データ記憶システムである。図１は、ビデオおよびオーディオ情報処理環境の一部としての記憶システムを示す。しかし、以下に記載するデータ記憶システムならびにその構成要素または特徴は、代わりに、その他のタイプの適用例（例えば、図書館、地震探査データ処理センター、販売業者の製品カタログ、中央企業情報記憶など）において使用されてもよいということに留意すべきである。オムネオンコンテンツライブラリ（Ｏｍｎｉｏｎ  ｃｏｎｔｅｎｔ  ｌｉｂｒａｒｙ）（ＯＣＬ）システムとも呼ばれる記憶システム１０２は、データ保護、ならびに、ハードウェアおよびソフトウェアの耐障害性と復旧とを提供する。
【０００９】
システム１０２は、さまざまな異なる形態を取ってもよく、クライアントマシンまたはクライアントネットワークを使用してアクセスされてもよい。例えば、メディアサーバ１０４によって、コンテンツファイル（この例では、ＭＰＥＧおよび高品位（ｈｉｇｈ  ｄｅｆｉｎｉｔｉｏｎ）（ＨＤ）を含むさまざまなタイプのデジタルメディアファイル）が記憶されるように要求されてもよい。図１に示すように、メディアサーバ１０４は、そのようなファイルを作成するために、メディア処理の「インジェスト」段階では、標準的なデジタルビデオカメラ、テープレコーダ、および衛星フィードをインタフェースとしてもよい。代替として、クライアントマシンがインターネットなどの遠隔ネットワーク上にあってもよい。「プロダクション」段階においては、記憶されたファイルが、閲覧、編集、およびアーカイブのために、ＯＣＬシステムからクライアントマシンにストリーミングされてもよい。変更されたファイルは、次に、「プレイアウト」段階では、配信のために、システム１０２からメディアサーバ１０４へ、または、遠隔ネットワークを介して直接、送信されてもよい。
【００１０】
ＯＣＬシステムは、同時クライアントアクセスの数が増加するにつれて、または総記憶容量の要求が増加するにつれて拡張することが特に容易であるアーキテクチャを有する、比較的高性能、高可用性の記憶サブシステムを提供する。（図１におけるような）メディアサーバ１０４と（以下で説明する）コンテンツゲートウェイとの追加は、さまざまな送信元からのデータが１つの高性能／高可用性システムに集約され、それにより、企業が管理しなければならない記憶ユニットの総数を減らすることを可能にする。（さまざまなサイズのファイル、およびさまざまなクライアント負荷を含む）さまざまなタイプの作業負荷の処理が可能であることに加えて、システム１０２の実施形態は、自動負荷バランシング、高速ネットワークスイッチング相互接続、データキャッシング、およびデータ複製を含む特徴を有してもよい。本発明の一実施形態によれば、ＯＣＬシステムは、性能において、比較的小規模な、すなわち６６テラバイト未満のシステム上での２０Ｇｂ／秒から、より大規模な、すなわち１ペタバイトを超えるシステムの場合の６００Ｇｂ／秒を超える性能まで、必要に応じて拡張する。直接接続されたクライアントにとって、これは、現在のところ、実際には６０〜１００メガバイト／秒の転送速度になり、コンテンツゲートウェイに接続されたクライアントにとっては、４０〜６０メガバイト／秒になる。そのような数は、当然ながら、ＯＣＬシステムの現在の能力の例にすぎず、請求される本発明の範囲全体を限定することを意図するものではない。
【００１１】
本発明の一実施形態は、停止することなく動作するために設計されたＯＣＬシステムであって、記憶装置と、クライアントと、その構成要素間のネットワーキング帯域幅との拡張を、進行中のアクセスをシャットダウン、あるいは、それらのアクセスに影響を及ぼすことなく行うことが可能になるシステムである。ＯＣＬシステムは、障害となるただ１つの点（ｓｉｎｇｌｅ  ｐｏｉｎｔ  ｏｆ  ｆａｉｌｕｒｅ）が存在しないように、十分な冗長性を有することが好ましい。ＯＣＬシステム内に記憶されたデータは複数の複製を有し、したがって、大容量記憶ユニット（例えば、ディスクドライブユニット）、さらにはサーバ全体が損なわれても、データを失うことはない。一般的なＲＡＩＤシステムとは異なり、ＯＣＬシステムの交換されたドライブユニットは、先の（故障した）ドライブと同じデータを含む必要はない。その理由は、ドライブの交換が実際に発生するまでには、関連するデータ（故障したドライブに記憶されていたファイルスライス）は、ファイルの作成時に始まったファイル複製のプロセスによって、すでに他の場所に保存されているからである。ファイルは、ハードウェア障害から保護するために、さまざまなドライブにわたって、システム内に複製される。これは、一時点における任意の１つのドライブの障害が、記憶されたファイルがシステムによって再構成されることが不可能になることはないことを意味し、その理由は、ファイルのいかなる失なわれたスライスも、他のドライブ内で依然として見つけることが可能だからである。複製は、さらに、ファイルをより多くのサーバからアクセス可能にすることによって、読み出し性能の向上を支援する。
【００１２】
大容量記憶ユニットの障害に加えて、ＯＣＬシステムは、任意のより大きな構成部分、または、さらには、構成要素全体（例えば、メタデータサーバ、コンテンツサーバ、およびネットワーキングスイッチ）の障害からの保護を提供できるかもしれない。以下で説明するように、それぞれのエンクロージャまたはラック内に配置された、サーバの３つ以上のグループを有するシステムなどのより大規模なシステムでは、エンクロージャまたはラック全体の障害の場合でもＯＣＬシステムが動作を継続するような、十分な冗長性が存在する。
【００１３】
次に、図２を参照すると、本発明の一実施形態による、複数のクライアントに接続されたデータ記憶システムのシステムアーキテクチャが示されている。システムは複数のメタデータサーバマシンを有し、各メタデータサーバマシンは、システム内に記憶されている複数のファイルについてのメタデータを記憶する。そのようなマシン内で実行されているソフトウェアは、メタデータサーバ２０４と呼ばれる。メタデータサーバは、ＯＣＬシステムの動作の管理を担当してもよく、そして、クライアントにとっての最初の接点である。スマートクライアント２０８およびレガシークライアント２１０という、２つのタイプのクライアントが示されていることに留意されたい。スマートクライアントは、システムの現在のインタフェースの知識を有し、システムのシステム相互接続２１４（ここでは、例えば、Ｇｂ「イーサネット」ネットワーキングスイッチを含む）に直接接続することが可能である。システム相互接続は、図示されているように、複数のコンテンツサーバ２１６およびメタデータサーバ２０４の間の選択的ブリッジとして働いてもよい。もう一方のタイプのクライアントは、現在のファイルシステムドライバ（ＦＳＤ）がインストールされていない、またはＯＣＬシステムのために現在提供されているソフトウェア開発キット（ＳＤＫ）を使用しない、レガシークライアントである。レガシークライアントは、ＯＣＬシステム専用ではない一般的なファイルシステムプログラミングインタフェースを使用して、図示されているようにプロキシまたはコンテンツゲートウェイ２１９を介して、システム相互接続２１４と間接的に通信を行う。
【００１４】
ファイルシステムドライバすなわちＦＳＤは、ＯＣＬシステムにアクセスするための標準的なファイルシステムインタフェースを提示するクライアントマシン上にインストールされるソフトウェアである。他方、ソフトウェア開発キットすなわちＳＤＫは、ソフトウェア開発者がＯＣＬに、アプリケーションプログラムから直接アクセスすることを可能にする。この選択肢は、さらに、以下で説明する複製因子（ｒｅｐｌｉｃａｔｉｏｎ  ｆａｃｔｏｒ）の設定などの、ＯＣＬ固有の機能を、クライアントマシンのユーザが利用することを可能にする。
【００１５】
ＯＣＬシステムでは、ファイルは、通常、複数のコンテンツサーバにわたって記憶される際に、スライスに分割される。各コンテンツサーバプログラムは、１つ以上のローカルディスクドライブの独自の組を備えた異なるマシン上で実行される。これがシステムの記憶要素の好ましい実施形態である。したがって、ファイルの部分は、さまざまなディスクドライブにわたって、すなわちさまざまな記憶要素内に散在させられる。本実施形態では、スライスは、固定サイズが好ましく、従来のディスクブロックよりもはるかに大きく、それにより、大規模データファイル（例えば、現在では、大規模ビデオおよびオーディオメディアファイルに好適な、８Ｍバイト）に対してより良い性能を持たせることを可能にする。さらに、ファイルは、ハードウェア障害から保護するために、さまざまなドライブにわたって、システム内で複製される。これは、一時点における任意の１つのドライブの障害が、記憶されたファイルがシステムによって再構成されることが不可能になることはないことを意味し、その理由は、ファイルのいかなる紛失したスライスも、他のドライブ内で依然として見つけることが可能だからである。複製は、さらに、ファイルをより多くのサーバからアクセス可能にすることによって、読み出し性能の向上を支援する。どのファイルがどこに記憶されているか（または、ファイルのスライスがどこに記憶されているか）を追跡記録するために、各メタデータサーバプログラムは、新たに作成されたか、または以前に記憶されたファイルのファイル名と、そのスライスと、スライスを実際に含むシステムの記憶要素の識別情報との間の、マッピングを含むメタデータ（ファイルに関する情報）の知識を有する。
【００１６】
メタデータサーバは、コンテンツサーバのうちのどれが、実際のコンテンツまたはデータを記憶のために受信するのに利用可能であるかを決定する。メタデータサーバは、さらに、負荷バランスを取るように機能し、これはすなわち、帯域幅の制限により、または特定のコンテンツサーバがいっぱいになっていることにより、コンテンツサーバのうちのどれが新しいデータの部分を記憶するために使用されるべきで、どれが使用されるべきでないかの決定を行うことである。データ可用性およびデータ保護を支援するために、ファイルシステムメタデータは、複数回複製されてもよい。例えば、少なくとも２つのコピーが、各メタデータサーバマシン上に（そして、例えば、各ハードディスクドライブユニット上に１つ）記憶されてもよい。メタデータの複数のチェックポイントが、定期的に取られるべきである。チェックポイントは、システム内で実行中のファイルシステムまたはデータファブリックのポイントインタイムスナップショット（ｐｏｉｎｔ  ｉｎ  ｔｉｍｅ  ｓｎａｐｓｈｏｔ）であり、システム復旧の場合に使用される。ＯＣＬシステムのほとんどの実施形態において、全体的なシステムの動作への影響が最小であるように、チェックポイントが発生するためには数分の時間しか必要とされないことが期待される。
【００１７】
通常の動作では、すべてのファイルアクセスは、メタデータサーバを介して開始または終了する。メタデータサーバは、例えば、ファイルオープン要求に対して、読み出しまたは書き込み動作のために利用可能なコンテンツサーバのリストを返すことによって応答する。それ以降は、そのファイルについてのクライアント通信（例えば、読み出し、書き込み）は、メタデータサーバではなく、コンテンツサーバに向けられる。ＯＣＬ  ＳＤＫおよびＦＳＤは、当然、それらの動作の詳細がクライアントからは見えないようにする。上述のように、メタデータサーバは、ファイルおよびスライスの配置を制御して、コンテンツサーバのバランスのとれた利用を提供する。
【００１８】
図２には示していないが、ＯＣＬシステムのコンフィギュレーションおよび監視を担当する、例えば、独立したラックマウント式サーバマシン上で動作するシステムマネージャがさらに提供されてもよい。
【００１９】
ＯＣＬシステムのさまざまな構成要素間の、すなわち、コンテンツサーバおよびメタデータサーバ間の接続は、システム相互接続の障害の場合に必要な冗長性を提供しなければならない。比較的小規模なＯＣＬシステムのシステム相互接続についての、論理的および物理的なネットワークトポロジをさらに示す図３を参照されたい。接続は、「イーサネット」規格によって享受される広範な業界から支持され、かつ、技術的にも成熟しているという利点を活用するように、ＯＣＬシステム全体にわたってＧｂ「イーサネット」であることが好ましい。その利点は、より低いハードウェアコストですみ、より広範な技術要員によって熟知され、さらに、アプリケーション層においてより迅速に導入できるという利点をもたらすことが期待される。ＯＣＬシステムのさまざまなサーバ間の通信は、現在の、インターネットプロトコル（ＩＰ）ネットワーキング技術を使用することが好ましい。しかし、その他の相互接続ハードウェアおよびソフトウェアが、サーバ間でのパケットの転送に必要とされる速度をそれらが提供する限り代わりに使用されてもよい。
【００２０】
１つ以上のネットワークスイッチ（例えば、「イーサネット」スイッチ、インフィニバンドスイッチ）が、システム相互接続の部分として使用されることが好ましい。そのような装置は、自動的にネットワークを複数のセグメントに分割し、セグメント間を高速に選択するブリッジとして働き、ネットワーク帯域幅に関して他のコンピュータのペアと競合しないように複数のコンピュータのペアの同時接続をサポートする。そのような装置は、これを各宛先アドレスとそのポートとのテーブルを維持することによって達成する。スイッチは、パケットを受信したらパケット内のヘッダ情報から宛先アドレスを読み出し、送信元ポートと宛先ポートとの間で一時的な接続を確立し、パケットをその接続上で送信し、そして、次に、接続を終了してもよい。
【００２１】
スイッチは、コンピュータのペア間で複数の一時的なクロスオーバケーブル接続を確立していると考えることができる。スイッチ内の高速電子回路は、送信側コンピュータからの１つのケーブルの端（送信元ポート）を、受信側コンピュータに至る別のケーブルの端（宛先ポート）に、例えばパケットごとに、自動的に接続する。複数のこのような接続が、同時に発生してもよい。
【００２２】
図３のトポロジ例では、システムのさまざまな構成要素間の必要な接続を提供するために、マルチＧｂ「イーサネット」スイッチ３０２、３０４、３０６が使用されている。現在の例では、１Ｇｂ「イーサネット」および１０Ｇｂ「イーサネット」スイッチを使用し、クライアントは４０Ｇｂ／秒の帯域幅を利用可能である。しかし、将来はさらに高速なスイッチが使用されてもよいため、これらは本発明の範囲を限定することを意図するものではない。図３のトポロジ例は、サブネットＡおよびサブネットＢという２つのサブネットを有し、サブネットＡおよびサブネットＢ内にはコンテンツサーバが配置されている。各コンテンツサーバは２つのネットワークインタフェースを有し、１つはサブネットＡへの、そしてもう１つはサブネットＢへのネットワークインタフェースであり、それにより、各コンテンツサーバは、いずれのサブネットからでもアクセス可能になっている。サブネットケーブルにより、コンテンツサーバは２つのスイッチに接続され、各スイッチは、それぞれのサブネットに接続するポートを有する。これらの１Ｇｂ「イーサネット」スイッチのそれぞれは、１０Ｇｂ「イーサネット」スイッチへの２回線１０Ｇｂ「イーサネット」接続を有し、１０Ｇｂ「イーサネット」スイッチは、さらに、クライアントマシンのネットワークに接続されている。
【００２３】
この例では、３つのメタデータサーバが存在し、それぞれのメタデータサーバは、１Ｇｂ「イーサネット」スイッチに、別個のインタフェースで接続されている。言い換えると、各１Ｇｂ「イーサネット」スイッチは、３つのメタデータサーバのそれぞれへ少なくとも１つ接続している。さらに、ネットワーキング配置は、プライベートリング１およびプライベートリング２と呼ばれる２つのプライベートネットワークが存在し、各プライベートネットワークは３つのメタデータサーバをそのノードとして備えている。メタデータサーバは互いに、リングネットワークのトポロジを用いて接続され、２つのリングネットワークは冗長性を提供する。メタデータサーバおよびコンテンツサーバは、本明細書で説明するような、メッシュネットワークのトポロジで接続されることが好ましい。図３の実施形態の物理的実装の例は、各コンテンツサーバを別個のサーバブレード内に実装し、すべてのサーバブレードを同じエンクロージャまたはラックの内部に実装するものである。「イーサネット」スイッチ、および３つのメタデータサーバも、同じラック内に配置されてもよい。本発明は、当然、１ラックの実施形態には限定されない。コンテンツサーバ、メタデータサーバ、およびスイッチで満たされた追加のラックが、ＯＣＬシステムを拡張するために追加されてもよい。
【００２４】
次に、図４を参照すると、ＯＣＬシステムのソフトウェアアーキテクチャの例が示されている。ＯＣＬシステムは、システムの複雑さが複数のクライアントマシンのユーザからは見えないようにするための、メタデータサーバマシン、コンテンツサーバマシン、および、クライアントマシンの一部またはすべてにおいて実行される分散ファイルシステムプログラムまたはデータファブリックを有している。言い換えると、ユーザは、この場合はオーディオおよび／またはビデオ情報の記憶および取り出しを、クライアントプログラムを介して要求してもよく、ファイルシステムまたはデータファブリックは、ＯＣＬシステムを、ユーザから１つの単純な記憶リポジトリとして見えるようにする。ファイルの作成、書き込み、または読み出しの要求は、ネットワーク接続されたクライアントから、メタデータサーバによって受信される。ファイルシステムソフトウェア、あるいは、この場合は、そのソフトウェアのメタデータサーバ部分は、受信した完全なファイル名に対応するスライスハンドルに変換し、スライスハンドルは、特定のファイルの構成要素のスライスが記憶されているまたは作成されるべきコンテンツサーバ内の位置を指す。記憶される実際のコンテンツまたはデータは、クライアントによって直接コンテンツサーバに示される。同様に、読み出し動作は、クライアントによってコンテンツサーバに直接要求される。
【００２５】
各コンテンツサーバマシンまたは記憶要素は、例えば回転磁気ディスクドライブユニットなどの、ローカル大容量記憶ユニットを１つ以上有してもよく、そして、その関連するコンテンツサーバプログラムが、その１つ以上のドライブ上への特定のスライスのマッピングを管理する。ファイルシステムまたはデータファブリックは、複製によって、ファイルの冗長性を実装する。好ましい実施形態では、複製動作はスライスレベルで制御される。コンテンツサーバは、クライアントを関与させずに、スライスの複製を達成し、スライスの書き込みの検証をお互いに取得するために、相互に通信を行う。
【００２６】
その上、ファイルシステムまたはデータファブリックは、複数のマシン間に分散させられているため、ファイルシステムは、それが存在している各マシン（それがコンテンツサーバであれ、クライアントであれ、メタデータサーバマシンであれ）の処理能力を使用する。図４の実施形態に関連して以下で説明するように、記憶容量を増加させるためにコンテンツサーバを追加すると、システム内のネットワークインタフェースの総数は自動的に増加し、これは、システム内のデータにアクセスするために利用可能な帯域幅も自動的に増加することを意味している。さらに、各コンテンツサーバマシン内の中央処理ユニットおよび関連するメインメモリの存在により、全体としてのシステムの処理能力も増加する。より多くのクライアントをシステムに追加することも、システム全体の処理能力を上昇させる。そのような拡張要素（スケーリング・ファクター、scaling  factor）は、より多くのストレージおよびより多くのクライアントが追加されるにつれて、システムの処理能力および帯域幅は比例的に増加し、システムがより大きくなるにつれて動きが取れなくなることはないということが保証されることを意味している。
【００２７】
図４をさらに参照すると、メタデータサーバは、非アクティブなバックアップユニットであるのとは対照的に、システムのアクティブなメンバーであると考えられる。言い換えると、ＯＣＬシステムのメタデータサーバは同時にアクティブになり、そしてそれらは、意思決定において協働する。例えば、それらのメタデータサーバは、記憶されるファイルのスライスを複製する回数とどのドライブ上に複製するかを決定することにおいて協働する。例えば、１つのコンテンツサーバが故障した場合、そのコンテンツサーバ上に記憶されていたコンテンツは、各スライスに対して要求されている複製因子を維持するために、残っているコンテンツサーバから複製される。複製プロセスは、メタデータサーバによって管理される。複製プロセスは、メタデータサーバ間に等しく分配され、そして、各メタデータサーバが複製プロセスのその部分を担当する。クライアントの負荷がメタデータサーバ間に分散させられるため、これによりシステムがより多くのクライアントに対処できるように拡張することを可能にする。クライアント負荷がさらに増加するにつれて、追加のメタデータサーバが追加されてもよい。
【００２８】
本発明の一実施形態によれば、複製の量（「複製因子」とも呼ばれる）は、各ファイルと個別に関連付けられる。ファイル内のすべてのスライスは、同じ複製因子を共有することが好ましい。この複製因子は、ユーザによって動的に変更されてもよい。例えば、ファイルを開くためのＯＣＬシステムのアプリケーションプログラミングインタフェース（ＡＰＩ）関数は、複製因子を指定する引数を含んでもよい。冗長性および性能対記憶コストのこのきめの細かい制御は、ユーザが、各ファイルについて別個に決定を行うことと、ファイル内に記憶されているデータの変化する価値を反映するようにそれらの決定を時間とともに変更することと、を可能にする。例えば、ＯＣＬシステムが、放送されるべき一連のコマーシャルと生番組部分とを作成するために使用される場合、スポーツの試合の中間の休みに続く一番初めのコマーシャルは、特に高価なコマーシャルである可能性がある。したがって、ユーザは、そのようなコマーシャルファイルについての複製因子を、コマーシャルのプレイアウトの後までは一時的に増加させ、そして次に、コマーシャルが放送されたら複製因子を適切なレベルに戻るように減少させることを望むかもしれない。
【００２９】
本発明の別の実施形態によれば、ＯＣＬシステム内のコンテンツサーバは、グループにまとめられる。グループは、スライスの複製の位置についての決定を行うために使用される。例えば、物理的に同じ装置ラックまたはエンクロージャ内にあるコンテンツサーバのすべてが、１つのグループ内に配置されてもよい。ユーザは、したがって、エンクロージャ内のサーバマシンの配線に基づいて、コンテンツサーバ間の物理的関係をシステムに指示してもよい。スライスの複製は、次に、２つの複製がコンテンツサーバの同じグループ内にあることがないように、散在させられる。これは、ＯＣＬシステムが、ラック全体を巻き込み得るハードウェア障害に対する耐性を有することを可能にする。
【００３０】
［複製］
スライスの複製は、コンテンツサーバの間で内部的に処理されることが好ましい。クライアントは、したがって、それらのファイルの複数のコピーを書き込む追加の帯域幅を費やすことは要求されない。本発明の一実施形態によれば、ＯＣＬシステムは、書き込まれているファイルについての実際の複製因子よりも少ない数の複製の書き込みの確認応答（ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）を、クライアントが要求することができる確認応答の方式を提供する。例えば、複製因子は数百であってもよく、その結果、何百もの複製についての確認応答を待つことにより、クライアントの処理に大幅な遅延がもたらされる。これは、クライアントが、書き込みの速さとファイルデータの保護レベルの確実性とをトレードオフすることになるかもしれない。速度に敏感なクライアントは、少数の複製のみが作成された後に確認応答を要求してもよい。対照的に、書き込みに敏感なクライアントまたは価値の高いデータを書き込むクライアントは、指定された数の複製がすべて作成された後にのみ、コンテンツサーバによって確認応答が提供されることを要求してもよい。
【００３１】
［インテリジェントスライス］
本発明の一実施形態によれば、ファイルは、ＯＣＬシステム内に記憶される際に、スライスに分割される。好ましい場合、スライスは、一般的なＲＡＩＤまたはストレージエリアネットワーク（ＳＡＮ）システム内で使用される従来のディスクブロックまたはストライプとは対照的な、インテリジェントなオブジェクトであると考えることができる。インテリジェンスは、少なくとも２つの特徴に由来する。第１に、各スライスは、ファイル（そのファイルのデータをそのスライスが保持する）に関する情報を含んでいてもよい。これによりスライスは自己の位置が（ｓｅｌｆ−ｌｏｃａｔｉｎｇ）決められる。第２に、各スライスは、チェックサム情報を保持してもよく、これによりスライスは自己検証（ｓｅｌｆ−ｖａｌｉｄａｔｉｎｇ）する。従来のファイルシステムで、（ハードウェア障害またはその他の障害により）ファイルデータの位置を示すメタデータが失われた場合、ファイルデータはファイルの断片を継ぎ合わるための骨の折れる手作業によってのみ、回復することが可能である。本発明の一実施形態によれば、ＯＣＬシステムは、スライス自体の中に記憶されたファイル情報を使用して、自動的にファイルを継ぎ合わせることが可能である。これは、ＯＣＬシステムにおける複製機構に加えて、追加の保護を提供する。従来のブロックまたはストライプとは異なり、スライスは集中型のデータ構造における破損によって失われることはありえない。
【００３２】
ファイルコンテンツ情報に加えて、スライスは、スライス作成の瞬間に作成することができるチェックサム情報も保持する。このチェックサム情報は、スライスとともに存在するように命じられ、そして、スライスが複製される際に、スライスとともにシステム全体にわたって運ばれる。チェックサム情報は、すべての複雑な電子システム内に一般に存在するランダムなハードウェアエラーによってスライス内のデータが破損してはいないことの検証を提供する。コンテンツサーバは、それらの中に記憶されているすべてのスライスについて、読み出しとチェックサム計算の実行とを継続的に行うことが好ましい。これは、データの破損のアクティブ検査とも呼ばれる。これは、スライスデータがクライアントによって要求される前に事前の警告を提供するタイプのバックグラウンドの検査活動であり、したがって、ファイル読み出しの間にエラーが発生する可能性が減少し、そして、他の場合ならばスライスの複製が破損したままになっている可能性がある時間を少なくする。
【００３３】
［スケーラブルなネットワークトポロジ］
本発明の別の実施形態によれば、ＯＣＬデータ記憶システムなどのマルチノードコンピュータシステムは、図５に示すような物理的なネットワークトポロジを有する。示されているのは、スイッチングネットワーク相互接続の冗長性が、（例えば、記憶容量またはクライアント帯域幅が増加する際の）システムの複雑さに対応することを確実にするのを支援するスケーラブルな分散スイッチングファブリックである。本発明の一実施形態によれば、より多くのデータ記憶サーバラックがシステムに追加されるにつれて、スイッチングファブリックは比例的に増加し、システムを構成するラック間に分散させられる。例えば、記憶サーバユニットの数が２倍になった場合、それらの記憶サーバユニットにサービスを提供する「内部」スイッチの数も同様に２倍になる。以下で説明する例から理解されるように、これは、ユニット間の帯域幅も２倍になり、それにより、記憶容量の増加に対応する。例として、図５は、８つのサーバグループ５０８が存在するＯＣＬデータ記憶システムの、ネットワークトポロジのブロック図を示す。各サーバグループ５０８に、内部スイッチ５１０が関連付けられている。各サーバグループは複数のデータ記憶サーバを有し、ＯＣＬシステム内に記憶されるファイルは、さまざまなグループ内のそのようなサーバのうちの２つ以上にわたって散在させられる。サーバグループ５０８内のデータ記憶サーバは、それらの関連する内部スイッチ５１０に通信可能に結合される。例えば、サーバグループ５０８は、冗長リンク５１１を介して内部スイッチ５１０に接続された２つ以上のコンテンツサーバ（コンテンツサーバ）を有してもよい。リンク５１１は、「イーサネット」ケーブルのペアを含んでもよく、各ケーブルは、一方の端がコンテンツサーバのポートに接続され、もう一方の端は、内部スイッチの別個のネットワークインタフェースポートに接続される。例として、各ネットワークインタフェースポートは、１０Ｇｂ「イーサネット」ポートであってもよい。
【００３４】
内部パケットスイッチ５１０のそれぞれは、外部パケットスイッチ５１２＿１に通信可能に結合される。この例では、外部スイッチ５１２は、８つのサーバグループによって（各グループによって２つ）使用されている１６のポートを有する。外部スイッチ５１２は、記憶システムへのクライアントアクセスを提供するために、クライアントマシン（図示せず）に通信可能に結合された追加のポート（図示せず）を有する。このトポロジにおいては、データ記憶サーバへのクライアントアクセスは、その記憶サーバの関連する内部パケットスイッチ５１０と外部スイッチ５１２とを経由することに留意されたい。各サーバグループ５０８のデータ記憶サーバは、物理層において、（外部スイッチ５１２とではなく）それらのそれぞれの内部パケットスイッチ５１０と通信する。
【００３５】
冗長性のために、追加の外部スイッチ５１２＿２が、図示されているようにシステムに追加されてもよい。その場合、各内部スイッチ５１０を外部スイッチ５１２＿２に、例えば、外部スイッチ５１２＿２内のそれぞれのポートペアに、ケーブルペアを介して接続されたさらなるポートペアを経由して接続するさらなる冗長リンク５１３が存在する。データ記憶サーバへの冗長クライアントアクセスの提供（明確にするために再度述べると、図５には、外部スイッチ５１２＿２から、いかなるクライアントマシンへの接続も図示されていない）に加えた、第２の外部スイッチ５１２＿２の提供は、システムへのクライアントアクセスのために利用可能な帯域幅をさらに増加させる。
【００３６】
内部スイッチ５１０および外部スイッチ５１２のそれぞれは、独自の電源と、プロセッサと、メモリと、ポートと、パケット転送テーブル（ｐａｃｋｅｔ  ｆｏｒｗａｒｄｉｎｇ  ｔａｂｌｅ）とを含む、別個のエンクロージャ内にあることが好ましいということに留意すべきである。代替として、各内部スイッチ５１０は、マルチＧｂ「イーサネット」ケーブルのペアによって相互に通信可能に結合された、別個のスイッチエンクロージャのペアであってもよい。したがって、各内部スイッチ５１０は、１つ以上の別個のスイッチエンクロージャから構成されてもよい。各スイッチエンクロージャは、標準的な電気通信ラックまたは装置キャビネット内に搭載可能な、１Ｕ高さの積み重ね可能スイッチユニットであってもよい。
【００３７】
図５に示すネットワークトポロジの拡張性（スケーラビリティ、scalability）を説明するために、図６は、システム内のサーバグループ５０８の数が２倍に、この場合は、８から１６になった例を示す。トポロジは、サーバグループ５０８の数を２倍にするには、内部スイッチ５１０の数を２倍にすることを必要とするものである。さらに、サーバグループ５０８と通信するために実際に使用される外部スイッチ６１２内のポートの数も２倍になる。外部スイッチ６１２は、この場合、１６のサーバグループと（それらのそれぞれの内部スイッチ５１０を介して）通信可能に結合するための３２のネットワークインタフェースポートを有する。
【００３８】
したがって、図５に示す本発明の一実施形態によれば、ネットワークトポロジは、記憶容量が増加させられるにつれて、直線的または比例的に拡張（スケーリング、scaling）されることがわかる。この場合、サーバグループの数を２倍にすることにより、ＯＣＬシステムの記憶容量を２倍にすることが期待される。これは、さらに、（例えば、１６ポートの外部スイッチ５１２を３２ポートの外部スイッチ６１２に交換して）外部スイッチ内のポートの数を２倍にし、したがって、以下で説明するように、サーバグループまたはクラスタ間の帯域幅を含むシステムの内部帯域幅を比例的に増加させる。
【００３９】
図５および図６のネットワークトポロジの拡張性を別の方法で説明するために、以下の例を、図１３のフロー図と組み合わせて考慮する。この図は、複数の既存のサーバグループ（例えば、サーバグループ５０８＿１．．．、５０８＿８、図５参照）を有するデータ記憶システムが提供される、動作１３０４から始まる方法を示す。この例では、既存のサーバグループの数は８である。動作１３０８において、既存の１６ポート外部スイッチ５１２が、一度に１つずつ３２ポートスイッチ６１２にそれぞれ交換される。２つの外部スイッチ５１２＿１、５１２＿２における冗長性は、スイッチ交換プロセスの全体を通して、システムが、クライアント要求へのサービスの提供を継続することを可能にする。
【００４０】
動作１３１６において、複数のアップグレードサーバグループと、複数のアップグレード内部パケットスイッチとが提供される。アップグレードが、サーバグループ５０８＿９．．．、５０８＿１６と、内部パケットスイッチ５１０＿９．．．、５１０＿１６とを含む、図６を例として参照されたい。アップグレード内部パケットスイッチのポートが、次に、外部パケットスイッチ６１２＿１、６１２＿２の複数の利用可能なポートに接続される（動作１３１８）。少なくとも２つの、そしてより一般的には、好ましくは常に２のべき乗（すなわち、２、４、８、その他）の個数の外部スイッチ５１２＿１、５１２＿２が存在するため、（上述の）アップグレードプロセスが行われる順序はほとんど重要ではなく、外部スイッチが一度に１つずつ交換される限りシステムの機能を低下させることはない。これに加えて、２倍のサイズの内部スイッチを使用すれば、２つの既存のサーバグループが併合されることが可能になる。４倍のサイズのスイッチを使用すれば、４つの既存のサーバグループが、併合されることが可能であり、すなわち、外部スイッチと通信するために同じ内部スイッチを共有するようになる。各外部または内部スイッチは、好ましくは、その独自のエンクロージャと、電源と、プロセッサと、メモリと、転送テーブルとを有する（例えば、別個のラックマウント式マルチＧｂ「イーサネット」またはインフィニバンドスイッチ）。
【００４１】
次に、図７を参照すると、本発明の一実施形態による、サーバグループと内部スイッチとを組み合わせたさまざまな構成要素の間の物理的接続を示すブロック図が示されている。この場合におけるサーバグループは、その独自の別個のエンクロージャ内に、例えば、少なくとも４１のスロットを備えた１つのテルコラックまたは装置キャビネット内に、収容されることが好ましい。この例では、それらのスロットのうちの３６のスロットのみが、３６のコンテンツサーバ（ＣＳ）マシンによって埋められており、各ＣＳマシン７０４は、独自の別個のエンクロージャを備えた別個のサーバブレードである。ＣＳマシン７０４のそれぞれは、ネットワークインタフェースポートのペアを介して、２つのアダプタスイッチ７０８のうちの１つに接続される。アダプタスイッチ７０８は、この例では、３６のＣＳマシン７０４にそれぞれ接続された３６の低帯域幅（例えば、１Ｇｂ「イーサネット」）のポートを持つ帯域幅アダプタスイッチである。さらに、アダプタスイッチ７０８の１つの低い帯域幅のポートは、２つのメタデータサーバ（ＭＤＳ）マシンのポートのうちの１つに接続される。言い換えると、１つのメタデータサーバマシン７１０は、２つのポートを有し、各ポートは、別個のアダプタスイッチ７０８に接続される。
【００４２】
各アダプタスイッチ７０８は、内部スイッチ５１０＿１＿Ａ、５１０＿１＿Ｂの両方につながる高帯域幅（例えば、１０Ｇｂ「イーサネット」）の別個のペアにより、接続される。これらのスイッチのそれぞれは、外部スイッチ（例えば、外部スイッチ５１２または６１２）に接続された１つ以上の高帯域幅のポートを備えている。
【００４３】
図７の実施形態では、１つのグループ内のデータ記憶サーバが、外部スイッチを通過することなしに別のグループのデータ記憶サーバと通信できるように、追加の通信リンクが提供されてもよい。「クラスタ」は、本明細書で使用する場合、相互に通信するために内部スイッチに接続され、そして内部スイッチを実際に共有する２つ以上のサーバグループを意味する。例えば、図７において、追加リンク７１６、７１８のそれぞれは、アダプタスイッチ７０８＿１、７０８＿２のうちの１つを、隣接するラックのアダプタスイッチに接続する１０本の「イーサネット」ケーブルの組である。これは、図８において、２つのラックのクラスタについて示されている。ラック内に収容されているサーバグループのデータ記憶サーバは、この図によって示されているポイントをわかりにくくしないために、図示されていないことに留意されたい。この実施形態では、各ラックのアダプタスイッチ７０８＿１、７０８＿２に、各高帯域幅の内部スイッチ５１０＿１＿Ａ、５１０＿１＿Ｂから２つのポートが使われる。内部スイッチ５１０＿１＿Ａ、５１０＿１＿Ｂが、それぞれ、追加の４ポートを新しいアダプタスイッチ（それらは、同じ帯域幅を持つものであってもよい）として利用可能にすることができるならば、図８のクラスタは４ラックに拡張することができる。例えば、各内部スイッチ５１０＿１＿Ａ、５１０＿１＿Ｂが、合計１０ポートを備えている場合、２ラックから４ラックへの拡張は、クライアント帯域幅を同じにする（この場合、各内部スイッチ５１０＿１＿Ａ、５１０＿１＿Ｂについて、２つのマルチＧｂ「イーサネット」ポートに留まる）。
【００４４】
次に、図９を参照すると、拡張性を向上させ冗長性を維持するために、相互に通信可能に結合されたクラスタおよび外部パケットスイッチのネットワークトポロジを有する本発明の別の実施形態によるデータ記憶システムのブロック図が示されている。この場合は、システム内に８つのみのクラスタ９０４が存在しているが、一般には、２つ以上のクラスタ９０４が存在すればよい。各クラスタ９０４は図８によるものであってもよく、ここで、各クラスタは、２つ以上のサーバグループ（例えば、各グループは別個のラック内）と、１つの共有内部パケットスイッチとを備える。各クラスタの内部パケットスイッチは、外部パケットスイッチ９０８の各１つに対して、別個のパケット伝送リンク９０７によって接続される。言い換えると、クラスタ１は、４つのすべての外部スイッチ９０８＿１．．．、９０８＿４それぞれに、４つの伝送リンク９０７＿１．．．、９０７＿４によって接続され、そして、４つのすべての外部スイッチ９１０＿１、．．．、９１０＿４に、４つの伝送リンク９０９＿１、．．．、９０９＿４を介して接続される。この実施形態では、したがって、８つのすべてのクラスタを４つの外部スイッチ９０８に接続する３２の伝送リンクが存在する。上述のように、各伝送リンクは、別個のマルチＧｂ「イーサネット」ケーブルから構成されてもよく、ここで、各ケーブルの一方の端は、内部スイッチのネットワークインタフェースポートに接続され、他方の端は、外部スイッチのネットワークインタフェースポートに接続される。
【００４５】
図９に示すトポロジの拡張性を説明するために、以下の例を考慮する。システムは４つのみのクラスタを有して出荷され、各外部スイッチ９０８、９１０は、そのポートの半分が、将来の拡張のために利用可能であり、すなわち、最初の４つのクラスタのいずれにも接続されていない。
【００４６】
次に、システムは、４つの追加のクラスタ９０４＿５、．．．９０４＿８を使用してアップグレードされると仮定する。各追加のクラスタは、図９に示すように、システムの既存の外部パケットスイッチに通信可能に結合される８つのポートを有する。これらのポートのうちの半分、すなわち、それらのポートのうちの４つは、それぞれ４つの外部スイッチ９０８に接続され、残りの４つは、それぞれ４つの外部スイッチ９１０に接続される。そのような例では、アップグレードには、既存のシステムの既存の外部または内部スイッチのうちのいずれを置き換えることも含まない。
【００４７】
次に、図１０を参照すると、本発明の一実施形態によるネットワークトポロジを有し、そして図１１に示すように５０％だけアップグレードされる、データ記憶システムが示されている。図１０では、既存のシステムは、データ記憶サーバの２つのラックを備えた１つの既存のクラスタを有する。１個の８ポート内部スイッチ５１０は、２つのラックによって、その個々のアダプタスイッチ８０８、８１０を介して共有される。冗長リンクの２つのペアが、クラスタを６ポート外部スイッチ９０８に接続する。クライアントアクセスのために利用可能な帯域幅は、外部スイッチ９０８の２ポートである。
【００４８】
次に、システムは約５０％だけアップグレードされる、すなわち、１つのアップグレードラックが追加されると仮定する（図１１参照）。アップグレードラックは、クラスタの既存のラックと本質的に同じであってもよい。しかし、アップグレード中に、８ポートの内部スイッチ５１０は、１２ポートを有するもの（８２０）に置き換えられる（アップグレードスイッチ８２０のポートが、既存のスイッチのポートとほぼ同じ帯域幅を有すると仮定すると、帯域幅の約５０％の増加）。アップグレードラックは、アップグレード内部スイッチ８２０に接続される。言い換えると、アップグレードされたクラスタを作成するために、アップグレードラックは既存のクラスタと併合される。さらに、使用中の６つのポートを有する既存の外部スイッチは、システムによって使用される９つのポートを有するアップグレード外部スイッチ８２４に置き換えられる。したがって、ネットワークトポロジは、ラック内のサーバと外部スイッチとの間の内部帯域幅のみにおける直線的または比例的な増加だけでなく、クライアントネットワークと接続するために利用可能な帯域幅における直線的または比例的な増加も発生させるということがわかる。図１０および図１１では、システムは、１つの外部スイッチおよび１つのクラスタのみを使用して示されているが、拡張手法は、上述の図９に示すものなどの、複数の外部スイッチと複数のクラスタとを備えたより大規模なシステムにも等しく適用可能であることに留意されたい。例えば、各クラスタの内部スイッチを、２倍の数のポートを有するものに置き換える場合、２つの既存のクラスタが併合されてもよい。代わりに、４倍のサイズの内部スイッチが提供される場合、４つの既存のクラスタが併合されてもよい。この操作に続いて、既存の外部スイッチが、２倍、４倍などの数のポートを備えたものに置き換えられてもよい。ここでも、少なくとも２つの外部スイッチがあるため、それらは、外部スイッチの置き換え全体を通じて、システムが機能を維持している間に、一度に１つずつ置き換えられてもよい。
【００４９】
次に、図１２を参照すると、本発明の別の実施形態による、データ記憶システムのネットワークトポロジが示されている。図１２は、１６のサーバグループ５０８＿１．．．、５０８＿１６から、３２のサーバグループ５０８＿１．．．、５０８＿３２にアップグレードされた後の記憶システムを示す。アップグレードのための追加ハードウェア、すなわち、サーバグループ５０８＿１７．．．、５０８＿３２、内部スイッチ５１０＿１７．．．、５１０＿３２、および外部スイッチ６１２＿３、６１２＿４は、点線の右側に示されている。既存のシステムでは、各サーバグループ５０８＿１．．．、５０８＿１６は、外部スイッチ６１２＿１および６１２＿２のそれぞれに、１０Ｇｂ「イーサネット」リンクの別個のペアを介して通信可能に結合されていることに留意されたい。しかし、アップグレードに伴い、各既存のペアのリンクのうちの１つが切断され、次に、外部スイッチ６１２＿３または６１２＿４のポートに再接続されている。この場合、したがって、内部スイッチと外部スイッチとの間の帯域幅は、アップグレードしても同じままとなり、しかしパケットトラフィックは、既存の外部スイッチ６１２＿１とアップグレード外部スイッチ６１２＿３との間で分配される。これは、アップグレード内部スイッチ５１０＿１７．．．、５１０＿３２と、既存のおよびアップグレード外部スイッチとの間の帯域幅についても当てはまる。つまり、アップグレードに伴い、この場合、記憶容量が２倍になったのと同様に、サーバグループと外部スイッチとの間の総内部帯域幅も２倍になっている。さらに、アップグレード外部スイッチが、クライアントマシンまたはクライアントネットワークと接続するためのポートを、既存の外部スイッチが有するのと少なくとも同じ数だけ有すると仮定すると、クライアントネットワークへの帯域幅も倍になっている。既存のサーバグループは、現在では、既存のおよびアップグレードスイッチの両方に接続されていることに留意されたい。アップグレードサーバグループも、既存のおよびアップグレード外部スイッチの両方に接続されている。
【００５０】
さまざまなネットワークトポロジの物理的接続に関する上記の説明は、データ記憶サーバマシン内で実行中のソフトウェアが、例えばそれぞれのＩＰアドレスによって、システム内の他のデータ記憶サーバマシンに、パケットスイッチング相互接続を介して、どのようにアクセスするかを認識していると仮定している。システムの各ノードに、システム内のその他のノードのアドレスを認識させるための、周知のアルゴリズムが用いられてもよい。その上、内部および外部スイッチ内の経路選択および／または転送テーブルは、問題経路を回避し、代わりに、パケットをその送信元からその示された宛先アドレスに配信するための最も効率的な経路を選択するために既知の経路選択アルゴリズムが用いられてもよい。
【００５１】
本発明の一実施形態は、上述の動作のうちの一部を実行するように１つ以上のプロセッサをプログラムする命令が記憶された機械で読み取り可能な媒体であってもよい。他の実施形態では、それらの動作のうちの一部は、ハードウェアロジックを含む特定のハードウェア構成要素によって実行されてもよい。それらの動作は、代わりに、プログラムされたコンピュータ構成要素とカスタム化されたハードウェア構成要素との任意の組み合わせによって実行されてもよい。
【００５２】
機械読み取り可能な媒体は、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ）、およびインターネット上の伝送に限定されない、マシン（例えば、コンピュータ）による読み出しが可能な形態で情報を記憶または伝送するための任意の機構を含んでもよい。
【００５３】
本発明は、上述の特定の実施形態に限定されない。例えば、ＯＣＬシステムは、大容量記憶ユニットとして回転磁気ディスクドライブのみを使用する現在のバージョンを用いて説明したが、磁気ディスクドライブの代替が、システムに必要な速度、記憶容量、およびコストの要求をそれらが満たす限り可能である。したがって、その他の実施形態が特許請求の範囲に含まれる。
【図面の簡単な説明】
【００５４】
【図１】ビデオ処理環境の一部として使用されている、本発明の一実施形態による、データ記憶システムを示す。
【図２】本発明の一実施形態による、データ記憶システムのシステムアーキテクチャを示す。
【図３】データ記憶システムの一実施形態のネットワークトポロジを示す。
【図４】本発明の一実施形態による、データ記憶システムのソフトウェアアーキテクチャを示す。
【図５】８つのサーバグループを有するデータ記憶システムの、ネットワークトポロジのブロック図を示す。
【図６】８つから１６のサーバグループにアップグレードされたデータ記憶システムの、ネットワークトポロジのブロック図を示す。
【図７】サーバグループと内部スイッチとの組み合わせの例の、さまざまなハードウェア構成要素の間の物理的接続のブロック図である。
【図８】クラスタの例のブロック図を示す。
【図９】クラスタを使用するデータ記憶システムの、別のネットワークトポロジのブロック図を示す。
【図１０】本発明の一実施形態によるネットワークトポロジを有するデータ記憶システムの例を示す。
【図１１】本発明の一実施形態によるネットワークトポロジを有するデータ記憶システムの例を示す。
【図１２】本発明の別の実施形態による、データ記憶システムのネットワークトポロジを示す。
【図１３】本発明の一実施形態による、スケーラブルなデータ記憶システムを提供するための方法のフロー図である。
【図１】
2009529295.tif 000003
【図２】
2009529295.tif 000004
【図３】
2009529295.tif 000005
【図４】
2009529295.tif 000006
【図５】
2009529295.tif 000007
【図６】
2009529295.tif 000008
【図７】
2009529295.tif 000009
【図８】
2009529295.tif 000010
【図９】
2009529295.tif 000011
【図１０】
2009529295.tif 000012
【図１１】
2009529295.tif 000013
【図１２】
2009529295.tif 000014
【図１３】
2009529295.tif 000015
【国際調査報告】
2009529295.tif 000016
2009529295.tif 000017