(57)【要約】冗長アレイは、複数のディスクと、これらディスクを結合するためのバスと、受信装置と、これらディスクの何れかに格納されたブロックを復元するための装置とを含む。この装置は、他のディスクからの関連付けられたデータ及びパリティブロックを用いて当該ブロックを復元する。何れかのディスクの利用不可能又は機能低下に応答して、この装置は復元したブロックを受信装置に伝送する。
2004536404.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスクアレイ（ＲＡＩＤ）装置構成を含むクラスターシステムからデータを読み出す方法であって、
前記クラスターシステムの複数要素の内の要求側要素から、前記ＲＡＩＤ装置内のドライブからの後続の読み出し動作に関わる特定ブロックの次の位置を示すメッセージを受け取る段階と、
前記クラスターシステムの前記要求側要素に、前記後続の読み出し動作に関わる位置に対応した前記ＲＡＩＤ装置内の前記ドライブの状態を示すヒントを返す段階とを含む、クラスターシステムからデータを読み出す方法。
【請求項２】
前記ヒントが、前記装置の機能が低下しているか、前記装置が使用不能であることを示す、請求項１に記載の方法。
【請求項３】
前記システムが、前記要求側装置に次の不良バイトオフセット・メッセージを返す、請求項1に記載の方法。
【請求項４】
前記要求側要素が、前記ドライブは読み飛ばして、代わりに前記ＲＡＩＤ装置内の他のドライブの１つから冗長情報及び少なくとも１つのデータブロックを読み出す、請求項１に記載の方法。
【請求項５】
前記要求側要素が、前記読み飛ばしたドライブからのデータを、前記ＲＡＩＤ装置内の他のドライブの１つから読み出した冗長情報から復元する、請求項１に記載の方法。
【請求項６】
パリティ及びデータに排他的論理和演算を実行して、前記読み飛ばしたドライブ上のデータに対応したミッシングデータを復元する段階を更に含む、請求項１に記載の方法。
【請求項７】
前記ＲＡＩＤ構成の第１ディスクに、該ディスクに格納されている第１データブロックを受信装置に伝送するよう要求する段階と、
前記ＲＡＩＤ構成の他のディスクに格納されている関連付けられたデータから前記第１データブロックを復元する段階と、
前記復元された第１データブロックを前記受信装置に直接的に伝送する段階とを含む、請求項１に記載の方法。
【請求項８】
前記復元する段階及び前記伝送する段階が、前記装置の機能が低下しているか、前記装置が使用不能であることを示すヒントの受信に応答して実行される、請求項７に記載の方法。
【請求項９】
任意のディスクが次の不良バイトオフセットを返し、前記要求側システムが、前記次の不良バイトオフセットを受信し、前記ＲＡＩＤアレイが不良又は再構築中のドライブを含んでいることを特定する、請求項６に記載の方法。
【請求項１０】
前記ヒントが返されたことが、前記要求側システムにとって、パフォーマンスが低下するのを待たず回復プロセス又は要求プロセスを開始する命令となる、請求項１に記載の方法。
【請求項１１】
データブロックを受信装置に伝送するための複数のディスクアレイ（ＲＡＩＤ）構成を含むクラスターシステムであって、
任意のクラスター要素が、それ以外のクラスター要素の少なくとも一部にデータを転送できるような態様で結合されている複数のクラスター要素であって、それぞれが、
前記データブロックを格納し、前記格納したブロックを前記受信装置に伝送するよう適合された複数のディスクと、
前記複数のディスクからの読み出し及び該ディスクへの書き込みを制御するためのプロセッサと、
前記ＲＡＩＤ装置内のドライブからの後続の読み出し動作に関わる特定ブロックの次の位置を示すメッセージを受け取り、前記後続の読み出し動作に関わる位置に対応した、前記ＲＡＩＤ装置内の前記ドライブの状態を示すヒントを生成するためのプロセスと、を含む複数のクラスター要素を含むクラスターシステム。
【請求項１２】
前記ディスクアレイ内の前記ドライブの状態を示すヒントに応答して、特定のブロックを関連付けられたブロックから復元し、該復元したブロックを受信装置に伝送するための装置を更に含む、請求項１１に記載の構成。
【請求項１３】
前記プロセッサが前記ヒントの状態に基づいて回復プロセスを開始する、請求項１１に記載の構成。
【請求項１４】
任意のディスク制御機構が次の不良バイトオフセットを返し、前記要求側システムが、前記次の不良バイトオフセットを受信し、前記ＲＡＩＤアレイが不良又は再構築中のドライブを含んでいることを特定する、請求項１１に記載の構成。
【請求項１５】
クラスター構成であって、
それぞれがディスクアレイ（ＲＡＩＤ）と、該アレイにブロックを書き込み、該アレイからブロックを読み出すよう適合されたプロセッサとを含んだ複数のノードと、
前記ノ―ドの何れかの前記ディスクアレイ内のドライブからの後続の読み出し動作に関わる特定ブロックの次の位置を示すメッセージを受け取り、前記後続の読み出し動作に関わる位置に対応した前記ディスクアレイ内の前記ドライブの状態を示すヒントを生成するためのプロセスとを含む、クラスター構成。
【請求項１６】
第２レベルディスクアレイ内の前記ドライブの状態を示すヒントに応答して、特定のブロックを関連付けられたブロック及びパリティ情報から復元し、該復元したブロックを受信装置に伝送するための装置を更に含む、請求項１５に記載の構成。
【請求項１７】
前記ヒントが、前記装置の機能が低下しているか、前記装置が使用不能であることを示す、請求項１５に記載の構成。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ＲＡＩＤ装置及びクラスターコンピュータシステムへのデータ伝送及びこれら装置及びシステムにおけるデータ格納に関する。
【０００２】
デジタルビデオ及びテレビジョンシステムは、高帯域幅データ伝送及び短い待ち時間を必要とする。ディスクアレイ（ＲＡＩＤ）は、高帯域幅データ伝送及び非常に短い待ち時間をサポートする。ＲＡＩＤ格納は、冗長性及び／又はパリティブロックを用いてディスクの障害をマスクする。ＲＡＩＤアレイは、復元キャッシュのサイズが固定されているため、障害処理の能力が限られている。
【０００３】
ＲＡＩＤ格納は、受信したデータストリームを一連のブロックに分割し、この一連の連続ブロックをアレイ内の異なるディスクに書き込む。データを取り出すには、これらブロックをアレイのディスクから読み出して、該読み出しブロックから元のデータストリームを復元する。受信及び伝送速度を向上させるには、ＲＡＩＤ格納のアレイ内の様々なディスクに並列で書き込み、読み出せばよい。
【０００４】
ＲＡＩＤ格納構成の個々のディスクは、ディスク表面の欠陥や不良ブロック再ベクタリング（原語：bad block re-vectoring）により、時として機能停止に陥ったり、アクセス要求に対する応答が遅くなったりすることがある。あるドライブが、他のドライブの情報から再構築又は再構成される時にも別の問題が起こる。応答が遅くなると、１つのディスクが要求されているデータを伝送し終わるのを、ＲＡＩＤ構成全体が待つことにもなりかねない。従って、１つのディスクの応答が遅くなると、ＲＡＩＤ構成からの読み出し動作に長い待ち時間が発生することがある。
【０００５】
デジタルビデオ及びケーブルシステムでは、ビデオ受信機の入力バッファを満たしておくには、データが概ね一定の速度でこの受信機に到着する必要があり、応答が遅い１つのディスクが大きな障害を引き起こすこともある。長い伝送待ち時間が続くと、入力バッファが空になることもある。遅いＲＡＩＤ構成が伝送のとぎれの原因になって受信機の入力バッファが空になると、視聴者は、視聴中のビデオに顕著な中断が起こったことを感知することもある。欠陥のないビデオ伝送を行うには、こうした中断を無くす必要がある。
【発明の開示】
【０００６】
本発明の一局面によれば、複数のディスクアレイ（ＲＡＩＤ）装置構成からなるクラスターシステムからデータを読み出す方法は、前記クラスターシステムの複数要素内の要求側要素から、前記ＲＡＩＤ装置内のドライブからの後続の読み出し動作に関わる特定ブロックの次の位置を示すメッセージを受け取る段階と、前記クラスターシステムの前記要求側要素に、前記後続の読み出し動作に関わる位置に対応した前記ＲＡＩＤ装置内の前記ドライブの状態を示すヒントを返す段階とを含む。
【０００７】
本発明の付加的な局面によれば、データブロックを受信装置に伝送するための複数のディスクアレイ（ＲＡＩＤ）構成からなるクラスターシステムは、複数のクラスター要素であって、任意のクラスター要素が、それ以外のクラスター要素の少なくとも一部にデータを転送できるように結合されている複数のクラスター要素を含む。各クラスター要素は、前記ブロックを格納し、前記格納したブロックを前記受信装置に伝送するよう適合された複数のディスクと、前記複数のディスクからの読み出し及び該ディスクへの書き込みを制御するためのプロセッサとを含む。更に、前記要素は、前記ＲＡＩＤ装置内のドライブからの後続の読み出し動作に関わる特定ブロックの次の位置を示すメッセージを受け取り、前記後続の読み出し動作に関わる位置に対応した、前記ＲＡＩＤ装置内の前記ドライブの状態を示すヒントを生成するためのプロセスを含む。
【０００８】
本発明の付加的な局面によれば、クラスター構成は、それぞれがディスクアレイ（ＲＡＩＤ）と、前記アレイにブロックを書き込み、前記アレイからブロックを読み出すよう適合されたプロセッサとを含んだ複数のクラスターノードと、前記ノ―ドの何れかの前記ディスクアレイ内のドライブからの後続の読み出し動作に関わる特定ブロックの次の位置を示すメッセージを受け取り、前記後続の読み出し動作に関わる位置に対応した前記ディスクアレイ内の前記ドライブの状態を示すヒントを生成するためのプロセスとを含む。
【０００９】
次の利点の１つ又は複数が、本発明の１つ又は複数の局面によって提供されうる。
【００１０】
クラスターシステムは複数のクラスター要素を含む。前記クラスターシステムが、前記クラスター要素の何れかのＲＡＩＤ構成からデータを要求すると、特定ブロックの次の読み出しに関わる要素の状態を示すメッセージが返される。このメッセージすなわちヒントは、特定ブロック読み出しが遅くなるか、この装置の機能が低下しているか或いは利用できないことを示すことができる。前記システムがこの特定ブロックを読み出す際は、前記システムはこの不良ドライブは読み飛ばして、代わりに他のドライブからパリティ及びデータブロックを読み出す。復元器が、パリティ及びデータに排他的論理和演算を実行して、前記不良又は再構築中のドライブに対応したミッシングデータを復元する。従って、不良ドライブを読み飛ばし、遅い又は機能低下したノード又はドライブが応答するのを待たずデ―タ復元に取りかかることにより、機能低下状態にあるこのＲＡＩＤアレイのパフォーマンスが改善し、正常パフォーマンスに近づくか或いは達する。
【００１１】
本発明の１つ又は複数の実施形態の詳細は、添付の図面及び以下の説明に記載されている。本発明のその他の特徴、目的、及び利点は、詳細な説明及び図面、並びに特許請求の範囲から明らかとなるはずである。
【発明を実施するための最良の形態】
【００１２】
図１を参照すると、コンピュータノード１１はＲＡＩＤ構成１２及びプロセッサ２０を含む。ＲＡＩＤ構成１２はプロセッサ２０の制御下にあり、３つの格納ディスク１４ａ、１４ｂ、及び１４ｃ、並びに個別のディスク制御機構（図示しない）を含む。ＲＡＩＤ構成１２は、プロセッサ２０の制御下で３つのディスク１４ａ、１４ｂ、及び１４ｃへの書き込みデータ及び読み出しデータを伝送するためのバス１６も含む。概して、こうした構成１２はＮ個のディスクを備えることができるが、Ｎは３以上である。幾つかの実施形態では、ミラーリングが許可されていれば２つのディスクドライブを使用してもよい。書き込み及び読み出しはデータ及び／又はパリティブロックに関するものである。プロセッサ２０は、故障したディスク１４ａ、１４ｂ、及び１４ｃからのデータブロックを復元するための復元器２２を含む。バス１６は、ディスク１４ａ、１４ｂ、及び１４ｃそれぞれに別個のデータ及び制御線（図示しない）を備えることができる。読み出し及び書き込みは、ディスク１４ａ、１４ｂ、及び１４ｃの全て又はその一部への並行アクセスでよい。他の実施形態では、一組のデータ及び複数の制御線がＲＡＩＤ構成１２の各ディスク１４ａ、１４ｂ、及び１４ｃに接続しており、プロセッサ２０は、これら共有データ線を介して別々のディスク１４ａ、１４ｂ、及び１４ｃへの逐次書き込み及び読み出しを行う。この場合、バス１６は１つのＳＣＳＩバスか、又は別の種類の共有若しくは専用相互接続でよい。
【００１３】
プロセッサ２０は復元器２２も含む。幾つかの実施形態では、プロセッサ２０は復元器２２を実現するようにプログラムされている。他の実施形態では、復元器２２は、後述するようにコプロセッサとして実装されている。
【００１４】
プロセッサ２０は、データブロックを例えばバス若しくはケーブルなどのインターフェース又は線１７、又はエアウエーブなどを介して要求側の装置１９に伝送する。プロセッサ２０はプロセス４０を実行して、プロセッサ２０又は実施形態によっては遠隔受信装置（例えば、受信装置１９）が使用するヒントを生成し、このヒントは、データ要求が、不良ディスク又は応答が遅いディスクに送られようとしている可能性があることを示す。プロセッサ２０上で実行されるファイルシステム（後述する）は、データがどのようにディスクドライブに格納されているかに関する情報を保持している。このファイルシステムは、データブロックのディスク格納場所へのマッピングを保持している。ディスク制御機構（図示しない）は、ファイルシステムにディスクドライブの状態を示すメッセージを返す。マッピング及びディスクドライブの状態に関するメッセージを用いて、ファイルシステムはプロセッサ２０又は場合によっては要求側システム１９に上述のヒントを生成できる。プロセッサ２０又は要求側システム１９は、ドライブからブロックを読み出すか、或いは回復モードを開始して、他のドライブから対応するパリティブロック及びデータを読み出して不良ドライブを避けるかどうかを決定する。ファイルシステムを含むソフトウェア構成要素７０は図６に示す。
【００１５】
図２を参照すると、図１と同様に、クラスターシステム１０は、ＲＡＩＤ構成１２、１２’、及び１２”をそれぞれ含んだ複数のノード１１、１１’、及び１１”を備えている。クラスターシステム１０は、一組の疎結合されたコンピュータシステム１１にデータ（例えば、ビデオオンデマンドの実施形態、ＭＰＥＧビデオ及びオーディオ）を格納するアーキテクチャである。各ノード１１、１１’、及び１１”は、それぞれＲＡＩＤ構成１２、１２’、及び１２”とローカル及び遠隔ファイルシステム（後述する）とを含み、任意のノードがクラスターシステム１０内の他のノード１２乃至１２”の何れか及び／又は全てのデータにアクセスできるように構成されている。ノード１１、１１’、及び１１”は、クラスター１０の任意のクラスター要素が幾つか又は全ての他要素と直接通信できるようにネットワーク３５により相互接続されている。例示的なネットワークには、ポイントツーポイント、交換網、パケット、又はセルネットワーク（原語：cell network）、バス構成、ハイパーキューブ構成などが含まれる。幾つかの実施形態では、ディスクドライブ自体が冗長ＲＡＩＤ構成或いはＲＡＩＤ構成である必要はない。例示的な冗長ＲＡＩＤ構成にはＲＡＩＤ−５及びＲＡＩＤ−４が含まれる。
【００１６】
例えばプロセッサ２０などの第１のプロセッサが、連続グループのデータブロックペアを受信し、各データブロックペアに関連付けられたパリティブロックを生成する。第１プロセッサ２０は、各ＲＡＩＤ構成１２、１２’、及び１２”に、３つのブロックからなる関連付けられたグループそれぞれから１つのブロックを送る。ＲＡＩＤ構成１２、１２’、及び１２”のそれぞれのプロセッサ２０、２０’、及び２０”は、続いて、各ブロックを２つの小型ブロックに分割して、これら２つの小型ブロックに関連付けられたパリティ小型ブロックを生成する。第２レベルのＲＡＩＤ構成１２、１２’、及び１２”は、それぞれ図３及び４に図示されたように、これら小型ブロックをそれぞれのディスクドライブ１４ａ乃至１４ｃ、１４ａ’乃至１４ｃ’、及び１４ａ”乃至１４ｃ”に格納する。又、第１プロセッサ２０は、ＲＡＩＤ構成１２、１２’、及び１２”からブロックを取り出して、取り出したブロックをインターフェースを介して受信装置１９に転送できる。
【００１７】
図２を続けて参照すると、クラスターシステム１０は、ブロックを復元してそれら復元ブロックを伝送することで、反応が遅い装置、ミッシング装置、又は機能低下した（原語：degraded）装置に対処する。それぞれの復元器２２、２２’、及び２２”は、機能低下したＲＡＩＤ構成１２、１２’、及び１２”の任意のブロックを復元して、受信装置１９に復元ブロックを伝送する。より具体的には、復元器（例えばプロセッサ２０の復元器２２）は、機能低下したＲＡＩＤ構成１２、１２’、及び１２”の何れかの機能低下した又は応答が遅いディスクドライブのデータを復元して、復元データを伝送する。機能低下したＲＡＩＤ構成１２、１２’、及び１２”の存在は、機能低下したＲＡＩＤ構成１２、１２’、及び１２”により要求側プロセッサ（例えば、この例のプロセッサ２０）に送られるヒントにより通知される。プロセッサ２０及び復元器２２は、機能低下したディスクの応答に起因する待ち時間に対処する。第１プロセッサ２０は、ＲＡＩＤ構成１０の読み出し待ち時間への予測を可能とする。受信装置１９は、各構成１２に埋め込むこともでき、或いはビデオオンデマンド用途のセットトップボックスなどの外部装置でもよい。
【００１８】
クラスター１０は、ＲＡＩＤプロセスを用いて単一プロセッサ群からなる障害許容クラスターシステム（原語：a fault tolerant clustered system of single  processors）を構築する。データオブジェクトは、名前付き断片ファイルとしてクラスターの要素全体にわたって格納される。データオブジェクトは、ＲＡＩＤ−５処理（又はＲＡＩＤ−４処理などの他の処理）に従ってストライプ化し、且つパリティ情報と共に格納して、クラスター要素（ノード）１１が障害を起こした場合は、ミッシング名前付き断片ファイルの復元を可能とする。
【００１９】
図３を参照すると、システム１０からのデータストリームの断片５０が図示されている。断片５０は、図１のＲＡＩＤ構成１２乃至１２”に格納されることになる。プロセッサ２０は、断片５０をブロックＤ（０），Ｄ（１），．．．Ｄ（ｉ）からなる順序列に分割し、データブロックＤ（ｉ），Ｄ（ｉ＋１）の連続対５２，５４に関連付けるパリティブロックＰ（ｉ，ｉ＋１）（ｉ＝０，２，４，．．．）を特定する。パリティブロックＰ（ｉ，ｉ＋１）は、データブロックＤ（ｉ），Ｄ（ｉ＋１）の関連付けられた対５２，５４の各対の等価ビットに関する少なくとも１つのパリティビットを符号化する。プロセッサ１５は、データブロックＤ（ｉ），Ｄ（ｉ＋１）の関連付けた対５２，５４それぞれと、パリティブロックＰ（ｉ，ｉ＋１）とを、図１に説明したように３つのＲＡＩＤ構成１２、１２’、及び１２”に並列又は直列に書き込むことができる。
【００２０】
図４を参照すると、図示したようにプロセッサ２０は、データ及びパリティブロックを、ＲＡＩＤ構成１２、１２’、及び１２”の３つのディスク１４ａ乃至１４ｃ、１４ａ’乃至１４ｃ’、及び１４ａ”乃至１４ｃ”の格納場所に書き込む。このデータはストライプＳ１乃至Ｓ６に配列される。各ストライプＳ１乃至Ｓ６は、３つの関連付けられたブロックからなるグループであって、データブロックＤ（ｉ），Ｄ（ｉ＋１）の連続対と、この対から作成したパリティブロックＰ（ｉ，ｉ＋１）とを含む。ＲＡＩＤ構成の実現例によっては、各構成１２乃至１２”の１つのストライプＳ１乃至Ｓ６の部分は、データブロックＤ（ｉ），Ｄ（ｉ＋１）の一方又はパリティブロックＰ（ｉ，ｉ＋１）の何れかを格納する。プロセッサ２０は、各連続ストライプのパリティブロックＰ（ｉ，ｉ＋１）の記憶場所を循環的に桁送りすることにより、順次対に関連付けられたパリティブロックを構成１２乃至１２”の異なるものに書き込む。これを、構成１２乃至１２”におけるパリティブロックＰ（ｉ，ｉ＋１）のローテーションと呼ぶ。パリティブロックの記憶位置をローテーションすることにより、データブロックＤ（ｊ）を構成１２乃至１２”全体にわたってより均等に分配し、データ書き込み及び読み出し時のアクセス負担を、異なる構成１２乃至１２”全体にわたりより均等に分散する。
【００２１】
図１及び４に示した構成はしばしばＲＡＩＤ−５構成と呼ばれる。ＲＡＩＤ−４などの他の構成を用いることもできる。例えば、ＲＡＩＤ−４では、ＲＡＩＤ−５のようにパリティをアレイの複数ドライブに分配するのでなく、ＲＡＩＤアレイの専用パリティドライブに格納する。言うまでもなく、１つの障害だけでなく複数の障害を考慮できるように、例えば種々の形式のハフマン符号化及び他の冗長符号化技法を含んだ他の冗長方法を用いることができる。データの書き込み及び読み出し処理の増加に関連してコストが発生することがある。
【００２２】
図５を参照すると、復元器２２は、メモリ素子６２及びハードウェアプロセッサ６４を含む。メモリ素子６２及びプロセッサ６４は、プロセッサ２０の一部をなすバス（図示しない）に接続されている。実施形態によっては、プロセッサ６４は２０、２０‘’、又は２０”と同一のプロセッサでよく、或いは異なるプロセッサ（例えばコプロセッサ）でもよい。メモリ素子６２は、その機能の一部として、バス１６を介して構成１２乃至１２”からデータ及び／又はパリティブロックを受信する。メモリ素子６２は、応答が遅い構成１２乃至１２”の関連付けられたブロックを復元するために、関連付けられたデータ及びパリティブロックを格納する。
【００２３】
プロセッサ６４は、関連付けられたパリティ及びデータブロックの排他的論理和（ＸＯＲ）演算を実行して、構成１２乃至１２”内で機能停止しているもののデータブロックを復元する。排他的論理和を実行するに当たり、プロセッサ６４は、メモリ素子６２から関連付けられたブロックを読み出す。プロセッサ６４は、読み出した関連付けパリティ及びデータブロックの対応したビットに対し、バイト毎に排他的論理和を実行する。プロセッサ６４はこの排他的論理和の結果をメモリ素子６２に書き込んで、受信装置３９乃至３９”の適切なものに伝送できるようにする。復元器２２は、構成１２乃至１２”のうち何れのものにもブロックを復元できる。
【００２４】
ここで図６を参照すると、プロセッサ２０、２０’、及び２０”のソフトウェア構成要素７０が図示されている。ソフトウェア構成要素７０は、ポートドライバ７１及びクラスドライバ７２を含む。更に、ソフトウェアには、遠隔ファイルプロバイダ７４、ローカルファイルプロバイダ７６、及びファイルシステム７８（ＳｅａＦｉｌｅ、ＦＡＴ、ＮＴＦＳ）を含むファイルシステムが含まれる。ソフトウェアには、高速イーサネット（登録商標）アダプタ８４及びＳｅａＮｅｔトランスポート層８６に加え、ＳＣＳＩドライバ８０及びＲＡＩＤ制御機構８２が含まれる。
【００２５】
透過的なデータオブジェクトアクセスを実現するため、ＲＡＩＤポートドライバは、データオブジェクトが一組の名前付き断片ファイルとして存在していることはマスクする。ポートドライバは、名前付き断片ファイルをデータストリームに併合するための多重化及び逆多重化サービスを提供する。このＲＡＩＤポートドライバは、プロバイダとしても消費者としても登録される。前述のクラスドライバがデータオブジェクトを開こうとする際は、システム中の全てのプロバイダポートドライバを呼び出す。呼び出されると、ＲＡＩＤポートドライバは消費者となり、クラスドライバを用いてデータオブジェクトを構成するデータ断片それぞれを開ける。セッションが名前付き断片ファイルぞれぞれに確立されると、すなわち、名前付き断片ファイルそれぞれへのアクセスが与えられると、ＲＡＩＤポートドライバはオープンコールバックを実行して、クラスドライバにデータオブジェクトが利用可能となったことを通知する。
【００２６】
データ（例えばビデオ）オブジェクトにアクセスする応用例では、ポートドライバは、クラスターに格納されているデータ（ビデオ）オブジェクトにアクセスする。遠隔ファイルプロバイダは、このクラスター技術を利用しうる任意のサードパーティアプリケーション又はデバイスドライバである。クラスターボリュームのディスク上構成（ファイルシステム５４）は、ＮＴＦＳ、ＦＡＴ、ＳｅａＦｉｌｅ又はロウディスクアクセスの何れかでよい。このファイルシステム構成要素は、名前付き断片ファイルの格納及び取り出しの役目を担う。
【００２７】
図７を参照すると、クラスター１０からデータを読み出すためのプロセス１００が図示されている。プロセッサ２０は、伝送対象となる関連付けられたデータブロックを備えたストリップを選択して、先読み情報を提供する（１０２）。プロセッサ１５は、以前のアクセスからのヒントに、ディスク３１乃至３３の何れかが障害を起こしたことが示されていたかを特定する（１０６）。これが示されていなければ、プロセッサ２０は要求されたデータブロックを転送する（１０８）。ヒントがドライブ３１乃至３３の何れかが障害起こしていたことを示していた場合は、復元器２２は、ドライブ３１乃至３３の障害を起こしていないドライブのデータブロック及びパリティを要求して、障害を起こしたドライブにアクセスしないで障害ディスクドライブ３１乃至３３のデータブロックを復元する。復元器２２は、他のディスク３１乃至３３（応答が遅くなっていたり、機能が低下したりしていない）の同一ストライプＳ１の記憶位置から関連付けられたデータ及びパリティブロックを受信する。復元器２２はこのデータを復元し、復元したデータブロックをデータ要求装置１９に送る（１１２）。プロセッサ２０は、将来の要求に備えて各ノード又はＲＡＩＤ構成１２乃至１２”から返されたヒントを保管しておく（１１４）。
【００２８】
プロセッサ２０（図１）は要求を処理し、同時に先読みメッセージをファイルシステムに提供して、ファイルシステムが次のブロックを読み出してキャッシュ（図示しない）に入れておけるようにする。この先読みメッセージは、次回は要求装置が、例えばオフセット＋６４キロバイトを読み出すことを示す。構成によっては（例えばＲＡＩＤ−５の実現例）、６４キロバイト（ＫＢ）分のデータは飛ばして、パリティバイトデータを読み飛ばすこともある。しかし、ＲＡＩＤ−４実現例では、パリティは別のドライブにあって、要求はそのパリティドライブになされるので、ブロックを読み飛ばす必要はない。
【００２９】
この先読みメッセージは、パリティの場所を示すために用いられる。以前のＩ／Ｏトランザクションが完了していれば、プロセッサ２０のファイルシステムは、ＲＡＩＤ制御機構（図示しない）との通信を完了しており、次のブロックが有効か（例えば、ＲＡＩＤ制御機構から利用可能か、時間どおりに応答するかなど）どうかの判断を完了している。プロセッサ２０のファイルシステムは、ヒントメッセージを介して次のブロックが有効か無効かを示す。無効の場合は、ファイルシステムは、次のブロックが遅延読み出しとなるか、利用不可能となることを示すヒントを要求プロセッサ２０、２０’、及び２０”に返す。これによって、構成１２乃至１２”の内の要求している構成が不良ブロックを回避した読み出しを開始でき、すなわちこの不良ドライブへの次の読み出し要求を回避でき、その代わり、正常なドライブからパリティ及びデータを要求できる。
【００３０】
ヒントメッセージは、「次の不良バイトオフセット」を示すことができる。次の不良バイトオフセットは、適当なオフセットに基づいて不良ブロックの位置を示すものである。要求側システムは「次の不良バイトオフセット」を受信し、ＲＡＩＤアレイが不良又は再構築中のドライブを含んでいることを特定できる。要求側システムはこのドライブを読み飛ばして、代わりに他のドライブからパリティ及びデータブロックを読み出す。復元器２２は、パリティ及びデータに排他的論理和演算を実行して、不良又は再構築中のドライブに対応したミッシングデータを復元する。従って、不良ドライブを読み飛ばし、遅いドライブが応答するのを待たずデ―タ復元に取りかかることにより、ＲＡＩＤアレイのパフォーマンスが改善して正常パフォーマンスに近づく。
【００３１】
ヒントが返されたことが、要求側システムにとって、パフォーマンスが低下するのを待たず回復プロセス又は要求プロセスを開始する命令となる。プロセッサ２０は、ファイルシステムを介して、ＲＡＩＤ構成１１及びディスクドライブ１４ａ乃至１４ｃのブロックマッピング及びファイル構造を周知している。従って、プロセッサ２０は、要求アドレスと、当該ブロックがディスクドライブ３１乃至３３のどこに格納されているかを示す格納済みブロックマップ（図示しない）とを検査する。この情報から、ファイルシステムは、不良ブロックを要求するはずの装置に送られる、ＲＡＩＤアレイの状態を示すヒントを作成する。このヒントはＲＡＩＤアレイの様々な障害をマスクする。
【００３２】
クラスター１０のノード１１、１１’、及び１１”はピアツーピアであり、クラスターシステム１０のデータを消費し、データをシステム１０に提供する。ヒントは、故障したディスクサブシステムのパフォーマンスを向上させる。ドライブが回復の見込みがないか、或いはＲＡＩＤアレイで再構築中であれば、プロセッサ２０は障害を起こしたドライブのミッシングデータを復元するには、ストライプ行全体を読み出す必要がある。多数の読み出しスレッド（原語：reader  thread）が機能低下したＲＡＩＤアレイに位置している場合は、新たな要求を処理する間に復元キャッシュを消去する。ＲＡＩＤアレイの復元キャッシュはそのサイズが固定されているので、データブロックの一部／全てを二度読み出す必要がある。これは、こうしたブロックは、不良ブロックを復元するのに用いられる前にクリアされるからである。この場合、ＲＡＩＤ制御機構のパフォーマンスは、機能低下していないパフォーマンスの半分又はそれ以上に落ち込んでしまう。ヒントメッセージを用いて障害を起こしたドライブを避けることにより、故障したＲＡＩＤアレイは、１２分の１１の効率で実行できる（ドライブが１２あるアレイと仮定して）。障害を起こしたドライブからの出入力要求は、クラスター中の他のシステムによりパリティデータ要求の形式で処理される（ＲＡＩＤアレイへの１２分の１の負荷）。
【００３３】
プロセス１００は、上述のようにパリティ及びデータからブロックを復元する。ヒントが不良読み出しを示すと、先読みは停止する。これは、こうした読み出し動作を実行するとシステム１０のパフォーマンスが低下するからである。先読みキャッシュ（図示しない）を不能とするのは、ファイルシステムが、バイトオフセットでの次の要求が不良ドライブに当たることを指し示したヒントを要求側システムに返した時点である。
【００３４】
他の実施形態では、ファイルシステム７４は更に先取りし、不良ドライブへの次の要求がどこに当たるかを示すヒントを遠隔システム１９に生成し、従って、要求側システム１１がその点まで読み出して、不良ドライブを読み飛ばすことができる。プロセッサ２０上のローカルファイルシステム７４は、遠隔エンドにおいてファイル断片を管理し、ファイルの次のブロックが不良か良好かを把握している。ファイルシステム７４はヒントを要求側システム１１に返す。要求側システム１９は、ドライブからブロックを読み出すか、回復モードを開始して他のドライブから対応するパリティブロック及びデータを読み出し、パリティを用いてデータに排他的論理和演算を実行して、失われたブロックを回復するかを決定する。
【００３５】
ファイルシステム７４が２つのシステムで同じ状況に遭遇した場合は、均衡打破アルゴリズム（例えば、システム１０がまず１つのノードを読み次に他方のノードをから読み出す、ラウンドロビン法）を実行できる。
【００３６】
図１乃至３を再び参照すると、プロセッサ２０は、復元されたデータブロックの復元及び伝送を制御する。受信したヒントが問題の存在を示していれば、プロセッサ２０は残りのノード１２乃至１２”に、関連付けられたブロックを復元器２２（例えばメモリ素子６２）へ送るよう命令する。図４では、関連付けられたデータ及びパリティブロックは、欠陥又は応答が遅いディスク１４ａ乃至１４ｃからの未伝送データブロックと同じストライプＳ１乃至Ｓ６に格納されている。従って、プロセッサ２０は関連付けられたストライプＳ１乃至Ｓ６の読み出しを命令して、関連付けられたブロックを入手する。プロセッサ２０は復元器２２に信号を送って、例えば図３のプロセッサ６４に送る信号などにより、応答が遅いディスクからのデータブロックを復元する。従って、プロセッサ２０は、復元器２２（例えば、メモリ素子６２）から復元されたブロックを読み出し、復元されたブロックをインターフェースすなわち線１７を介して伝送する。
【００３７】
プロセッサ２０は、データ伝送要求を送ることにより応答が遅いディスク１４ａ乃至１４ｃが回復するのを妨げることはない。その代わり、プロセッサ２０は、復元器２２に命令して正常に応答しているノード１２乃至１２”の関連付けられたブロックからミッシングデータを復元させる。
【００３８】
図８を参照すると、図１のシステム１０を用いるビデオ伝送システム１５０が図示されている。受信機１５２は、線１７を介してインターフェースから伝送されたデータブロックを入力端末１５６において受信する。システム１０と受信機１５２との間の伝送は、電波、光、及び／又はケーブル伝送によるものでよい。入力端末１５６は、入力データバッファ（例えば、先入れ先出しバッファ）に接続している。入力データバッファ１５４は、図２Ｂに示した１つのデータブロックに含まれたデータ量の二倍乃至数倍を格納する。入力データバッファ１５４に格納されたデータは、短い伝送中断が発生した場合、連続的なビデオデータ処理を可能とする。
【００３９】
ビデオ伝送システム１５０は、ヒントの受信に応答して復元済みデータブロックを伝送することで視聴休止の発生を低下させる。システム１５０の一実施形態では、システム１０のＲＡＩＤ構成１１はデータブロックを伝送し、復元するのに約１００ミリ秒を必要とする。受信機の入力データバッファ１１７は、約２０００ミリ秒のビデオデータを格納する。この格納装置は、ヒントの受信に応答して失われたデータを復元するのに十分な時間を提供する一方、正常なビデオを転送するのに十分な格納データを提供する。
【００４０】
これ以外の実施形態も添付の請求項の範囲に入る。
【図面の簡単な説明】
【００４１】
【図１】ディスクアレイ（ＲＡＩＤ）の構成を示すブロック図である。
【図２】図１に示したディスクアレイ（ＲＡＩＤ）を用いたクラスターコンピュータシステムのブロック図である。
【図３】図１のＲＡＩＤ構成に送られるデータストリームの１つの断片を示す。
【図４】図１のＲＡＩＤ構成おいて図３のデータ断片を格納する一例を示す。
【図５】図１のＲＡＩＤ構成で使用されるデータブロックの復元器を示すブロック図である。
【図６】図１のＲＡＩＤ構成で使用されるプロセッサのソフトウェア層を示す略図である。
【図７】図１のＲＡＩＤ構成からデータを読み出すための処理を示すフローチャートである。
【図８】図１のＲＡＩＤ構成を用いるビデオシステムのブロック図である。
【図１】
2004536404.tif 000003
【図２】
2004536404.tif 000004
【図３】
2004536404.tif 000005
【図４】
2004536404.tif 000006
【図５】
2004536404.tif 000007
【図６】
2004536404.tif 000008
【図７】
2004536404.tif 000009
【図８】
2004536404.tif 000010
【国際公開パンフレット】
2004536404.tif 000011
2004536404.tif 000012
2004536404.tif 000013
2004536404.tif 000014
2004536404.tif 000015
2004536404.tif 000016
2004536404.tif 000017
2004536404.tif 000018
2004536404.tif 000019
2004536404.tif 000020
2004536404.tif 000021
2004536404.tif 000022
2004536404.tif 000023
2004536404.tif 000024
2004536404.tif 000025
2004536404.tif 000026
2004536404.tif 000027
2004536404.tif 000028
2004536404.tif 000029
2004536404.tif 000030
2004536404.tif 000031
2004536404.tif 000032
【国際公開パンフレット（コレクトバージョン）】
2004536404.tif 000033
2004536404.tif 000034
【国際調査報告】
2004536404.tif 000035
2004536404.tif 000036
2004536404.tif 000037