(57)【特許請求の範囲】
【請求項１】
データをマルチユーザ情報システム内において概ね一様に分配して格納するため、および／または、マルチ情報システム内に概ね一様に分配されて格納されたデータを取り出すための多重ディスク・ドライブ配列であって、
複数のディスク・ドライブと、
前記複数のディスク・ドライブの範囲内での複数のディスク・ドライブからなる複数のパリティ・グループに分割して取り扱うためのエラー修正手段であって、前記パリティ・グループのおのおのは、パリティ・ドライブとして指定されるディスク・ドライブを有する、エラー修正手段と、
データを、実質的に一様な分配が保たれるようにして、前記パリティ・グループに分配し、および／または、前記パリティ・グループからデータを受信することによって、前記複数のディスク・ドライブに対してデータを送信し、および／または、該複数のディスク・ドライブから、データを受信するように制御する制御手段と、
を備え、
前記制御手段は、パリティ・グループにおける複数のディスク・ドライブの１つが故障する故障状態の間においては、故障ディスク・ドライブが再び動作可能となるまで、前記パリティ・グループにおける前記パリティ・ドライブが前記故障ディスク・ドライブを代替すると共に、前記故障ディスク・ドライブが動作可能となったときに、前記パリティ・ドライブが前記故障ディスク・ドライブのための代替を終了することを特徴とする多重ディスク・ドライブ配列。
【請求項２】
前記エラー修正手段に結合され、前記ディスク・ドライブ配列に格納するためにデータを受信し、および／または、前記ディスク・ドライブ配列から取り出されたデータを出力するためのインタフェース手段をさらに備えることを特徴とする請求の範囲１に記載の多重ディスク・ドライブ配列。
【請求項３】
前記制御手段は、
前記エラー修正手段にそれぞれ結合された複数のディスク・コントローラと、
前記複数のディスク・コントローラのいずれかに結合され、さらに前記複数のディスク・ドライブ内の一つまたは複数のディスク・ドライブに結合された複数の通信バスと、を含むことを特徴とする請求の範囲２に記載の多重ディスク・ドライブ配列。
【請求項４】
前記複数のディスク・コントローラと前記エラー修正手段との間に挿入されたセグメント・バッファ配列をさらに含むことを特徴とする請求の範囲３に記載の多重ディスク・ドライブ配列。
【請求項５】
前記エラー修正手段と前記インタフェース手段との間に挿入された複数のバッファ回路、さらに含むことを特徴とする請求の範囲４に記載の多重ディスク・ドライブ配列。
【請求項６】
前記エラー修正手段、前記複数のバッファ回路、および前記セグメント・バッファ配列に結合され、これらの間のデータの転送を制御するためのプロセッサをさらに含むことを特徴とする請求の範囲５に記載の多重ディスク・ドライブ配列。
【請求項７】
前記パリティ・グループのおのおのが、前記複数のディスク・ドライブ内のディスク・ドライブの総数と比べて小さい数のディスク・ドライブを含むことを特徴とする請求の範囲１に記載の多重ディスク・ドライブ配列。
【請求項８】
前記複数のディスク・ドライブの数が２０〜１００の範囲であり、前記パリティ・グループのおのおのが５〜１０のディスク・ドライブを含むことを特徴とする請求の範囲７に記載の多重ディスク・ドライブ配列。
【請求項９】
前記パリティ・グループが、少なくとも一つのアクティブなディスク・ドライブと、パリティ・ドライブとして指定されるディスク・ドライブとを含み、前記制御手段は、データを、前記パリティ・グループの前記アクティブなディスク・ドライブの間で実質的に一様なデータの分配が保たれるようにして、前記各パリティ・グループ内の前記ディスク・ドライブにデータを送信し、および／または、該ディスク・ドライブから、データを受信することを特徴とする請求の範囲１に記載の多重ディスク・ドライブ配列。
【請求項１０】
データを格納し、および／または、取り出すための多重ディスク・ドライブ配列を備えたビデオ・サーバであって、
前記多重ディスク・ドライブは、
複数の通信バスと、
複数のディスク・ドライブ・グループであって、前記ディスク・ドライブ・グループのそれぞれは、前記通信バスの一つに結合された少なくとも一つのディスク・ドライブを含む、複数のディスク・ドライブ・グループと、
複数のディスク・コントローラであって、そのおのおのは前記通信バスに結合され、データを実質的に一様に分配されるようにして、前記ディスク・ドライブ・グループの前記ディスク・ドライブに格納し、および／または、実質的に一様なデータの分配を保ちながら、前記ディスク・ドライブからデータを取り出すように制御する、複数のディスク・コントローラと、
前記複数のディスク・ドライブを複数のパリティ・グループとして取り扱うためのエラー修正手段であって、前記パリティ・グループのそれぞれは、パリティ・ドライブと少なくとも１つのアクティブ・ディスク・ドライブとを有する、エラー修正手段と、
を備え、
前記エラー修正手段は、パリティ・グループにおける少なくとも前記１つのアクティブ・ディスク・ドライブが故障する故障状態の間では、故障ディスク・ドライブが再び動作可能となるまで、前記パリティ・グループにおける前記パリティ・ドライブが前記故障ディスク・ドライブを代替すると共に、前記故障ディスク・ドライブがアクティブになったときに、前記パリティ・ドライブが前記故障ディスク・ドライブのための代替を終了することを特徴とする、ビデオ・サーバ。
【請求項１１】
前記パリティ・グループのそれぞれは、前記複数のディスク・ドライブ・グループのうちの少なくとも二つの異なるグループから選択されたディスク・ドライブを含むことを特徴とする請求の範囲１０に記載のビデオ・サーバ。
【請求項１２】
前記パリティ・グループのそれぞれは、前記複数の通信バスのうちの共通する一つの通信バスに結合されたディスク・ドライブから構成されることを特徴とする請求の範囲１０に記載のビデオ・サーバ。
【発明の詳細な説明】
関連する特許出願
本出願は、本発明の譲受人に譲渡された“Multi-Channel Common-Pool Distributed Data Storage and Retrieval System”という名称の公報された欧州特許出願第646,874号において開示され請求されている装置と関連するために、この特許出願についても参照されたい。
発明の背景
１．発明の分野
本発明は、一般的には、マルチユーザ情報システム、より詳細には、個々の格納ユニット、例えば、ディスク・ドライブの一つあるいは複数の配列（array）から構成される大容量情報記憶媒体を含む、ビデオ・オン・デマンドなどのリアルタイム用途に適するシステムに関する。
２．関連する技術の説明
情報システム技術の急速な進歩のために、情報および娯楽材料の配信（分配）における大きな向上が見られる。このような配信は、ケーブルテレビジョンシステムなどによって提供される情報ネットワークの開発と迅速な普及によって可能にされてきた。娯楽産業における情報システムに関する最も有望な進歩は、テレビジョン視聴者に対して、いわゆる“ビデオ・オン・デマンド（video on demand）”というサービスが提供されるようになることである。ビデオ・オン・デマンドの基本的な概念は、比較的単純であり、同時に消費者にとって魅力的でもある。ビデオ・オン・デマンドの基本的な概念とは、個々の消費者すなわち視聴者が、複数の格納してある娯楽番組、例えば、映画などの、格納してあるデータ源に個別にアクセスすることが可能になるということである。この個別なアクセスによって、個々の消費者は、今日のケーブル・システムに見られる計画されたネットワーク配信の持つ制約から解放される。ビデオ・オン・デマンド・システムを利用することで、視聴者は、単にケーブル網を通じて媒体格納および分配（配信）設備を“呼び出す（dial up）”だけで、見たい番組をいつでも見ることが可能となる。
ビデオ・オン・デマンドの基本的な概念は単純ではあるが、ただし、これを現実の環境内で実現するのは、極度に困難、かつ、複雑である。このシステムは、個々の視聴者に対して、格納された娯楽番組への独立したアクセスを提供することを要求され、典型的なケーブル・システム環境においては、数千、あるいは数万もの視聴者を扱うことが必要となる。個々の視聴者に、多量の媒体目録からの複数の番組への独立したアクセスを提供することは大変な仕事である。さらに厄介なことに、娯楽材料すなわちビデオおよび音響情報は、送信すべき多量の情報をもつ。このために、ビデオ・オン・デマンド・システムを効果的なものにするためには、大容量の媒体内に膨大な量の番組材料を格納することに加えて、膨大な量の番組が格納されたこの大容量の媒体に多数の加入者が同時あるいはほぼ同時にアクセスできるようにすることが必要とされる。
大容量の媒体記憶システムに高容量高速アクセスする必要性は、ビデオ・オン・デマンドの提供に限られるものではない。同じようにこのような情報システムが使用される場合、例えば、対話型ビデオなどの情報システムの場合でも、データおよび／あるいは情報を、大容量媒体に迅速に格納し、あるいはこれから取り出することが必要とされる。さらに別の情報システム、例えば、映画およびテレビジョン産業における特殊効果および関連する操作、例えば、映像の構成（compositing）、編集（editing）、製作（post production）などにおいても、格納された多量の情報に迅速にアクセスできることが要求される。強力な計算システムの場合でも、大きなデータ格納システムへの高速アクセスが、同様に必要とされる。ただし、ビデオ・オン・デマンド・システムおよびビデオサーバは、多数の視聴者すなわちユーザにアクセスを提供する必要があるという点で、特にデマンドが多い環境内で動作する。加えて、アクセスは、迅速であり、ほぼリアルタイムにてアクセスができ、直ちにデータが伝送できることを必要とされる。コンピュータ・システムでは、データを待つことが可能であるが、ビデオ・オン・デマンドおよびビデオサーバでは、データがタイミング良く得られない場合は、“クラッシュ（crash）”が発生する。
必要な情報を格納し、格納された情報を多数のユーザによって迅速に取り出す手段として、ビデオサーバの分野における多くの技術者は、より高速なプロセッサを並列に用いることを試みているが、あまり成果があがっているとはいえない。特に成功しているシステム、より詳細には、上述のようなシステムの苛酷な要求を満たす新規の高速なシステムが上述の特許出願において開示されている。
高速多重アクセスが可能な大容量の情報の格納に対する必要性を満たす目的でさまざまなシステムが提供されている。これらシステムは、全てではないとしても殆どが、一つあるいは複数のランダムアクセス記憶デバイス、例えば、ディスク・ドライブ・メモリを利用する。ディスク・ドライブは、このような用途に対しては、高速に動作し、大きな記憶容量を持つことから非常に有効であり、ディスク・ドライブでは、ランダムアクセス、大容量、比較的迅速な情報の格納あるいは取り出しが可能である。典型的には、より大きな格納を得るために、複数のディスク・ドライブが、大きなアレイに配列され、一つあるいは複数のいわゆるディスクコントローラの調整およびインタフェースの下で動作する。ただし、この方法によっても、多数の視聴者に迅速なアクセスを提供する問題は解決できない。
多数のユーザリクエストに対するシステムの応答速度は、一部は、システムのディスク・ドライブの動作速度によって決定される。基本的には、データを取り出すためには、ディスク・ドライブは、最初にその位置を見つけだすことを必要とする。このために、ディスク・ドライブのヘッドが、ディスク上のデータが格納されている特定の部分の位置を見つけるまでに必要とされる時間間隔が存在する。この過程は、本質的には、ディスク・ドライブのヘッドを適当なディスク半径まで移動させるのに要する時間（通常“シーク（seek）”時間と呼ばれる）と、その後の、ディスクを要望されるディスク部分がドライブヘッドの近くに来るまで回転するのに要する時間（通常“ラテンシ（latency）”時間と呼ばれる）とを必要とする。この時間間隔の実際の長さは、ディスク・ドライブの特定の構造に依存し、ディスク・ドライブの設計によって異なる。ただし、全てのディスク・ドライブが、データ位置に至までのある待ち時間特性を持つ。
ユーザによってアクセスされるシステム、例えば、ビデオ・オン・デマンド等では、複数の視聴者がディスク配列に非同期的にアクセスできることが要求される。つまり、さまざまな視聴者が、システムに、特定な時間的関係を持たずにアクセスできることが必要とされる。視聴者は、ディスク配列に、遅延なしに迅速にアクセスできることもあるが、ただし、最も一般的には、システムが前のリクエストの処理を終えるまで、アクセスが遅延される。本質的に、最初にリクエストした視聴者は（最良の場合は）待つことなく、最後にリクエストした視聴者は（最悪の場合は）他の全ての視聴者のリクエストが処理されるまで待たされる。ある与えられたディスク・ドライブに対するデータ位置に至るまでの最小待ち時間をＴｄとし、アクセスを求めている視聴者の総数をＮｖとすると、このディスク配列のサービス時間すなわち応答時間（Ｔserv）は、最良の場合はＴｄ、最悪の場合は（Ｔｄ×Ｎｖ）となる。この結果、複数のユーザを扱う多重ディスク・ドライブ・システムは、各ユーザすなわち視聴者に対する全体としての平均的なシステム応答時間（Ｔserv）を持つこととなり、これは、概ね（Ｔｄ×Ｎｖ）の積の二分の一に等しい。
換言すれば、殆どの視聴者リクエストに対するディスク・ドライブ配列の応答時間は、視聴者の数と、ディスクのデータ位置に至るまでの待ち時間に比例する。
大きなディスク・ドライブ配列を使用する場合のもう一つの制約として、ドライブ自身が持つ故障率がある。多重ディスク・ドライブ・システムでは、ドライブの数の増加は、ドライブの故障の数の増加を意味し、これは、故障している間のシステムの動作時間の低減を意味する。このため、一方においては、ディスク配列に追加のディスク・ドライブを加えることによって記憶容量を増加することができるが、他方においては、ドライブが故障する確率が増加するために、全体としてのシステムの信頼性がこれに比例して低減する。
ディスク・ドライブの故障の問題を解決するために、通常“パリティ・システム”として知られているパリティ・エラー修正システムが採用される。このパリティ・システムを得るためには、通常パリティ・ドライブと呼ばれる追加のディスク・ドライブが、ディスク・ドライブの配列に加えられる。アクティブなドライブとパリティ・ドライブとの組合せは、パリティ・グループと呼ばれる。パリティ・エラー修正システムは、パリティ・グループ内において、ディスク・ドライブへの格納の前に、データすなわち情報に関して計算を遂行することでパリティ・データを計算し、これをパリティ・ドライブ内に格納する。パリティ・データの機能は、エラー修正システムに必要とされる情報を提供することにある。つまり、エラー修正システムは、ディスク配列内のアクティブなディスク・ドライブの内のあるディスク・ドライブが故障した場合、この情報を使用して損失したデータを再生し、これによって、システムが引き続き機能できるようにする。要するに、パリティ・ドライブに格納されたデータと、残りの正常なドライブ（アクティブなドライブ）上に格納された情報によって、故障したドライブ上に格納されていた情報およびデータの計算を行なうことが可能になる。この結果、パリティ・グループ内のディスク・ドライブの配列の動作を、一つのディスク・ドライブが故障した場合でも、継続することが可能になる。ただし、第二のドライブが故障した場合は、このディスク配列は、機能しなくなる。ディスク・ドライブが故障する確率は、ディスク配列内のドライブの数に比例して増加するために、システムの信頼性は、ディスク配列内のドライブの数が増加すると、これに比例して低減する。
典型的なビデオ・サーバ・システムにおいては、ディスク配列は、単一のパリティ・ドライブを持つ単一のパリティ・グループに編成される。単一のパリティ・グループを使用することで、ビデオ情報をディスク配列全体に分配することが容易になる。これは、一般的には、単一のドライブによってパリティ保護が確保され、残りのドライブがビデオ・データおよび関連するデータを格納するのに利用できるために、システムの記憶容量を最大にできるものと信じられている。ビデオ・サーバの動作においては、各ビデオ・フィールドがタイミング良く組み立てられることに最大の優先が置かれるために、データは、通常、ディスク配列のある部分に集中されるのではなく、ディスク配列全体に分配される。全体に分配された場合、データの取り出しが任意の一つのディスク・ドライブ上に長期間に渡って集中することなく、ディスク配列全体に渡って行なわれるために、データの取り出しにおける遅延の確率が最小となる。ユーザが待つのに慣れている計算システムとは異なり、ビデオ・サーバのユーザは、見掛け上、ビデオ・フィールドが連続して表示されることを必要とする。
幾つかのコンピュータ・システムにおいては、ディスク・ドライブ配列は、単一のパリティ・グループに構成されるのではなく、複数のパリティ・グループに分割される。これは、より多くのパリティ・ドライブを必要とする反面、システムの信頼性を改善する。ただし、このようなシステムでは、これら複数のパリティ・グループ上にデータがランダムに格納されるために、例えば、プロセッサが同一のパリティ・グループ内のデータに反復してアクセスすることを要求された場合などにおいて、応答時間が劣化する恐れがある。ただし、殆どの計算動作においては、データの取り出しにおける遅延は、全体としてのシステムの信頼性の向上を考えると堪えられるものである。本質的に、計算システムは、単に“待ち”、ユーザは、最悪の場合でも、長時間待たされるのにすぎない。
上述の基本的なパリティ・エラー修正システムのバリエーションが、Rowらに付与された“PARALLEL I/O NETWORK FILE SERVER ARCHITECTURE”という名称の米国特許第5,163,131号において開示されている。この中の関連する部分において、複数の格納プロセッサによってサポートされる３０個のＳＣＳＩディスク・ドライブから成るディスク・ドライブのグループについて開示されている。このディスク・ドライブのグループは、クライアント・プロセッサの立場からは、３つの大きな論理ディスクであるとも、あるいは３０個の独立したＳＣＳＩドライブであるとも見なされる。これらドライブが３つの論理ディスクとしてビジブルであると見なされる場合は、格納プロセッサは、ＲＡＩＤ５（redundant array of inexpensive drives, revision five）アルゴリズムを用いて、９つの物理ドライブ上の各論理ドライブにデータを分配する。１０番目のドライブは、予備である。データは、ストライプ状に分割され、これらが８個の異なるドライブ上に順番に記録される。９番目のパリティ・ストライプは、これら８個のデータ・ストライプの排他的ＯＲ演算によって生成され、こうして生成されたパリティ・ストライプが９番目のドライブ上に格納される。これらパリティ・ストライプは、書込み動作の際のドライブのコンテンションを回避するために、これら９個のドライブの間に分配される。
より速いコントローラとプロセッサを、パリティ・エラー修正と共に使用することで、商業的な可能性を持つコンピュータ・システムが実現されている。ただし、このようなシステムは、ビデオ・サーバ・システムとしては十分でなく、当分野においては、独立したアクセス、高速な格納および取出し、並びに大容量、の問題を解決することが可能な、より改善された効率を持ち、効果的、かつ、信頼できる情報格納および取出しシステムに対する必要性が引き続いて存在する。より詳細には、当分野においては、多数のディスク・ドライブを持つドライブ配列を、システムの信頼性の低減と、視聴者の入力および要求に対する応答時間の遅れを伴うことなしに使用することを可能にするディスク・ドライブ配列を提供する必要性が残されている。
発明の要約
従って、本発明の目的は、一般的には、信頼性がより高い改良された多重ディスク・ドライブ配列（multiple disk drive array）システムを提供することにある。本発明の目的は、より詳細には、信頼性がより高く、しかも、ユーザがアクセスする際の応答時間が短い改良された多重ディスク・ドライブ・メモリ配列を提供することにある。
本発明によると、ユーザの入力すなわち要求に対する応答時間は、ディスク・ドライブ配列を複数のディスク・ドライブ・グループに分割することによって短縮できることが発見された。さらに、各ディスク・ドライブ・グループに対して専用のパリティ・ドライブを提供することによって、ディスク・ドライブ配列に対するパリティ保護が確保でき、同時に、システムの信頼性が改善されることが発見された。
本発明は、マルチユーザ情報システムに、データを、概ね一様な分配が確保されるような方法にて、格納および／あるいは、データをこれから取出すために使用される多重ディスク・ドライブ配列を提供する。一つの実施例においては、この多重ディスク・ドライブ配列は：（ａ）複数のディスク・ドライブ；および（ｂ）これら複数のディスク・ドライブをディスク・ドライブの複数のパリティ・グループに分割した上でディスク・ドライブを扱うためのエラー修正手段を含む。ここで、各パリティ・グループは、パリティ・ドライブとして指定される一つのディスク・ドライブを持つ。この多重ディスク・ドライブ配列はさらに：（ｃ）これら複数のディスク・ドライブに、データを、実質的な一様な分配が確保されるような方法にて、送信および／あるいは、データをこれら受信するため、より詳細には、これら複数のパリティ・グループにデータを送信および／あるいはこれらから受信するためのコントローラ手段を含む。この実施例のもう一つの実現においては、各パリティ・グループは、これら複数のディスク・ドライブを構成するディスク・ドライブの総数と比べて比較的小さな数のディスク・ドライブを含む。
本発明のさらにもう一つの実施例においては、多重ディスク・ドライブ配列は：（ａ）複数の通信バス；（ｂ）おのおのが前記の複数の通信バスの一つに結合された少なくとも一つのディスク・ドライブを含む複数のディスク・ドライブ・グループ；（ｃ）おのおのが、データを、実質的に一様な分配が確保されるような方法にて、前記の複数のディスク・ドライブ・グループのディスク・ドライブに格納するため、および／あるいはこれらから取出すために使用される前記複数のバスの一つに結合された複数のディスクコントローラ；および（ｄ）これらディスク・ドライブを複数のパリティ・グループとして扱うためのエラー修正手段を含む。ここで、各パリティ・グループは、一つのパリティ・ドライブと少なくとも一つのアクティブなディスク・ドライブを含む。
本発明のさらにもう一つの実施例においては、多重ディスク・ドライブ配列は、複数のパリティ・グループに編成（分割）された複数のディスク・ドライブを含み、データは、これら複数のパリティ・グループの間に実質的に一様に分配される。各パリティ・グループは、複数のアクティブなドライブと、一つの指定されたパリティ・ドライブとを含み、各パリティ・グループのアクティブなディスク・ドライブにはデータが実質的に一様な方法で格納される。この実施例においては、これらパリティ・グループは、これら複数のディスク・ドライブを構成するディスク・ドライブの総数と比べて小さな数のディスク・ドライブを含む。
複数のユーザ（Ｎｖ）によってアクセスされるマルチユーザ情報システム内にデータを格納するためおよび／あるいはこれらからデータを取り出すために使用される本発明の一つの実施例においては、多重ディスク・ドライブ配列は、複数のディスク・ドライブを含む。各ディスク・ドライブはデータ位置に到達するための最小待ち時間（Ｔｄ）を持ち、これら複数のディスク・ドライブは、複数のパリティ・グループ（Ｇ）に編成（分割）される。各パリティ・グループは、指定される一つのパリティ・ドライブを含む。そして、パリティ・グループの数は、以下の式に従ってユーザのアクセスに対する適当なシステム応答時間（Ｔserv）が達成できるように選択される。：
Ｔserv＝（Ｎｖ×Ｔｄ）／Ｇ
【図面の簡単な説明】
本発明並びに本発明のその他の目的および長所は、以下の説明を図面を参照しながら読むことによって最も良く理解できるものである。図面中、同一の参照符号は、同一の要素を示す。
図１は、本発明に従って構成された格納配列を含む多重チャネル共通プール分配データ格納および検索システムのブロック図を示し；
図２は、本発明に従って構成された多重ディスク・ドライブ配列のブロック図を示す。
好ましい実施例の説明
図１は、冒頭で参照した係属中の特許出願において開示されているタイプのデータ格納および検索システム１０を示す。簡単に説明すると、このデータ格納および検索システム１０は、複数の格納配列（storage array）１１〜１６を利用して動作するが、これらが以下に詳細に説明されるように本発明に従って構成される。
本発明による多重ディスク・ドライブ配列システムは、一例としての動作環境として、上述のデータ格納および検索システム１０における格納配列１１〜１６のために使用されるが、当業者においては、以下の図２との関連での説明から、本発明は、上述のデータ格納および検索システム１０のようなシステム内での動作に制限されるものではないことを理解できるものである。実際、本発明は、複数のディスク・ドライブあるいは同等なデバイスをアレイに配列することで、大容量のデータを高速に格納および取り出すことを要求され、しかも、このディスク・ドライブ配列に多数のユーザが迅速にアクセスできることを要求される事実上あらゆる環境内で動作することが可能である。。
システム１０は、さらに、複数のビデオ・チャネル４０〜４５を含み、これらは、対応する複数の入／出力デバイス３０〜３５に結合される。ビデオ・チャネル４０〜４５は、例えば、ビデオ・オン・デマンド・システムへの複数の加入者入力から構成される。入／出力デバイス３０〜３５は、ビデオ・チャネル４０〜４５とのインタフェースとして機能し、必要な機能、例えば、ビデオ・チャネル４０〜４５によって用いられるフレーム編成のデータと、システム１０の残りの部分によって用いられる一般的なコンピュータのデータ・フォーマットとの間の情報フォーマットの変換を遂行する。上述の特許出願において開示されているように、整流子（commutator）２０は、入／出力デバイス３０〜３５と、格納配列１１〜１６との間の結合を、多重経路回転／開閉整流方式（multipath rotating/switching commutation）で結合し、入／出力デバイス３０〜３５のおのおのからのデータを、格納配列１１〜１６の各々に、あるいはこの逆に分配する。図１は、さらに、ホストコンピュータ２５を含む。これは、整流子２０、入／出力デバイス、並びに格納配列に接続され、システムの動作を管理する。上述の特許出願において説明されているように、データは、これら各格納配列に、典型的なコンピュータ・システムにおいては、概ねランダムすなわち不均等に分配されるのに反して、一様に分配される。こうしてデータが一様に分配されることと、ドライブが複数のパリティ・グループに分けられることによって、任意の数のユーザに対して、ユーザアクセスに対するより迅速な応答が達成される。ここで使用されるデータの一様な分配とは、任意の組合せのストリームが任意の数のユーザに向けて再生された場合、全てのパリティ・グループが全ての時間において動作中（busy）となるように、データの複数のストリームを、これら複数のパリティ・グループ上に記録する任意の方法を意味する。簡単に述べれば、どのパリティ・グループも動作待ち（idle）にならないようなデータの分配を意味する。
格納配列１１〜１６のおのおのは、複数のディスク・ドライブ・メモリを含む。これらディスク・ドライブ・メモリは、一つあるいは複数のディスク・コントローラの制御下で動作し、データ格納および検索が、高速かつランダムアクセスにてできるようにする。本発明によると、後に詳細に説明されるように、格納配列１１〜１６の各ディスク・ドライブ・メモリは、一つのパリティ・ドライブと、少数のアクティブなディスク・ドライブとを含む複数のパリティ・グループを形成するように編成および制御される。後に説明されるように、本発明によると、こうして、ディスク・ドライブ配列が、一つの専用のパリティ・ドライブと複数のアクティブなドライブとを含む複数のパリティ・グループに編成（分割）されることと、概ね一様にデータを分配することで、従来の技術の応答速度の制約と信頼性の問題が克服される。
要点を述べると、本発明のシステムは、ユーザの入力および要求に対する多重ディスク配列の応答速度は、ディスク配列が複数のより小さなグループに分割された場合、劇的に改善されるという発見を反映する。上述のように、各ユーザすなわち視聴者に対する最悪の場合のシステム応答時間は、以下の式によって定義することができる：
Ｔserv=Ｎv×Ｔｄ
ここで、Ｔserv（ユーザによってこのディスク配列へのアクセスを得るために必要とされる時間）は、Ｎｖ（このディスク配列内のドライブにアクセスしているユーザの数）に比例することに注意する。さらに、本発明が適用されるタイプのビデオサーバあるいはビデオ・オン・デマンド・システムは、視聴者リクエストのアクセス時間に極めて敏感であることに注意する。
ただし、本発明に対しては、上述の式内のＮvがＮeffによって置き換えられる。ここで、Ｎeffは、システムドライブにアクセスしている実効的な（effective）視聴者数である。そして、Ｎeff＝Ｎv／Ｇであることが発見された。ここで、Ｇは、このディスク配列のグループの数を表す。例えば、一つのパリティを持つ配列においては、この配列が１０個のパリティ・グループに分割された場合は、システム応答時間（Ｔserv）は、Ｎv×Ｔｄから、（Ｎv×Ｔｄ）／１０に短縮され、さらに、２０のグループに分割された場合は、Ｔservは、（Ｎv×Ｔｄ）／２０に短縮される。
システムの信頼性を同時に改善するために、各パリティ・グループは、一つの専用のパリティ・ドライブを含む。この結果、単一のドライブが故障した場合、パリティ保護はこの単一のグループのみが無効となり、他の全てのグループは、パリティ保護されたままとなる。
図２は、格納配列１１のより詳細なブロック図を示す。格納配列１１は、複数のディスク・ドライブ７０〜７５、８０〜８５、９０〜９５、１００〜１０５、１１０〜１１５、１２０〜１２５を利用する。これらから、６つのグループのディスク・ドライブが構成される。各ドライブ・グループは、共通のバス結合を使用して、ディスク・ドライブ・コントローラに結合される。より詳細には、格納配列１１は、ディスク・ドライブ・コントローラ６０を含み、これは、通信バス７６を持つ。通信バス７６は、例えば、一般的に小型コンピュータ標準インタフェース（Small Computer Standard Interface）すなわち“ＳＣＳＩ”バスとして知られているタイプの通信バスから構成される。ディスク・ドライブ７０〜７５は、バス７６に結合され、結果として、これらは、ディスクコントローラ６０に結合される。同様に、コントローラ６１は、通信バス８６に結合され、通信バス８６は、ディスク・ドライブ８０〜８５に結合される。同様に、ディスクコントローラ６２、６３、６４、６５は、それぞれ、通信バス９６、１０６、１１６、１２６に結合される。ディスク・ドライブ９０〜９５はバス９６に結合される。ディスク・ドライブ１００〜１０５は、通信バス１０６に結合される。一方、ディスク・ドライブ１１０〜１１５と、ディスク・ドライブ１２０〜１２５は、それぞれ、通信バス１１６と、通信バス１２５に結合される。コントローラ６０〜６５は、複数のセグメント・バッファ５３に結合され、後者は、パリティベースのエラー修正回路５２に結合される。
プロセッサ５４は、パリティ・エラー修正回路５２と、セグメント・バッファ５３に結合され、セグメント・バッファ５３とエラー修正回路５２との間のデータの転送を、上述の特許出願において説明される方法にて制御する。バッファの配列５１は、エラー修正システム５２をインタフェース５０に結合する。インタフェース５０は、データをシステムの動作環境に合うように適当にフォーマット化し、これをバッファ５１から格納配列１２に、あるいはこの逆に転送する。図１に示す例では、インタフェース５０は、整流子２０に結合される。ただし、格納配列１１が異なる動作環境内で使用される場合は、インタフェース５０はこの環境に合うように構成され、そのシステムの入／出力処理チャネルに結合されることに注意する。プロセッサ５４は、バッファ配列５１にも結合され、バッファ配列５２とエラー修正回路５２との間のデータの転送をシステム動作に従って制御する。
格納配列１１は、図示するように、６つのグループのディスク・ドライブを持ち、各グループは、６つのディスク・ドライブを利用する。ただし、当業者においては理解できるように、コントローラおよびディスク・ドライブ・グループの数、並びに、一つの共通のコントローラから制御される各グループ内のディスク・ドライブの数は、特定のシステムの要件および制約に合わせて変えられる。
本発明の目的は、複数のパリティ・グループを提供することにある。このために、格納配列１１内のディスク・ドライブが、複数のパリティ・グループに分割される。ここで、各グループは、一つのパリティ・ディスク・ドライブと、複数のアクティブなディスク・ドライブとを持つように構成される。エラー修正システム５２によって、複数のシステムドライブの間のパリティ関係が設定されるが、例えば、ディスク・ドライブ７０〜７５によって、パリティ・ドライブとして動作するディスク・ドライブ７５を持つ一つのパリティ・グループが形成される。こうして、６つのディスク・ドライブから成るサイズのパリティ・グループが形成される。各グループにおいて、５つのディスク・ドライブは、媒体データを受信および格納するために用いられ、６番目のディスク・ドライブは、パリティデータを受信および格納するために用いられる。同様に、エラー修正システム５２は、おのおのが、コントローラ６１〜６５に結合される他のパリティ・グループを設定する。例えば、ディスク・ドライブ８０〜８５によって一つのパリティ・グループが形成され、この中のディスク・ドライブ８５がパリティ・ドライブとして機能する。同様に、ディスク・ドライブ９０〜９５、１００〜１０５、１１０〜１１５、１２０〜１２５によって、６つのドライブから成るパリティ・グループが形成され、各グループ内において、それぞれ、ドライブ９５、１０５、１１５、１２５がパリティ・ドライブとして指定される。このように構成された場合、本発明に従って、格納配列１１は、一つのパリティ・ドライブと複数のアクティブなドライブとを含む実質的により多数のパリティ・グループを持つこととなる。エラー修正回路５２は、各パリティ・グループに対するパリティデータの計算を遂行し、パリティデータを各パリティ・ドライブに加える。上述の本発明のシステムの一つの重要な長所は、ディスク・ドライブ配列が、複数の比較的小さなパリティ・グループに分割されることで、全体としてのシステム応答時間が短縮されることである。５〜１０個の範囲のディスク・ドライブから成るパリティ・グループのサイズと、２０〜１００個のディスク・ドライブの総数が適当であることが発見された。ただし、当業者においては、本発明は、異なる数のドライブから成るドライブ配列においても実施できることは明らかである。
加えて、利用可能なパリティ・ドライブが増加するために、格納配列１１の全体としての信頼性が改善される。例えば、ドライブ７０が故障した場合、エラー修正システム５２は、周知の方法に従ってドライブ７１〜７４およびパリティ・ドライブ７５上に格納されているデータを使用してドライブ７０上に格納されたデータが損失したことを計算し、ドライブ７１〜７５から成るグループを再構成する。そして、ドライブ７５が故障した、ドライブ７０の代わりに機能し、ドライブ７０上に以前に格納されていたデータを受信するようにされる。この後、ドライブ７１〜７５が、ドライブ７０〜７４によってそれまで提供されていたのと同一の機能をコントローラ６０の制御下で遂行し、システムの動作を維持する。ドライブ７１〜７５によって形成された再編成されたグループのパリティ保護は、ドライブ７０が復旧あるいは交換された時点で回復される。ドライブ７０が復旧あるいは交換されるまでの間は、ドライブ７１〜７５は、パリティ保護なしに動作する。従来のシステムでは、一つのドライブが故障した場合、その故障したドライブが交換あるいは修理されるまでシステム全体のパリティ保護が無効になったが、本発明のシステムでは、ドライブ７１〜７５を除いては、パリティ・ドライブ７５がアクティブなドライブとして用いられた場合でも、格納配列１１の残りのグループは、ドライブの故障に対する保護を引き続いて持つ。ドライブ７０の故障に続いて、さらに、一つあるいはそれ以上の他のパリティ・グループ内のドライブが故障した場合は、エラー修正システム５２の動作が、故障した各パリティ・グループ内で遂行され、故障したドライブが補償あるいは代替される。当業者においては明らかなように、格納配列１１は、設定された各パリティ・グループ内の一つのアクティブなディスク・ドライブが故障した場合でも、動作を続行することができる。
各パリティ・グループがコントローラ６０〜６５の一つに結合されたディスク・ドライブから構成される上述の例は、単に解説のために示されたものである。パリティ・グループの選択および構成は、任意の特定なディスク・ドライブの物理的構成に制限されるものではない。例えば、エラー修正システム５２は、ディスク・ドライブ７０、８０、９０、１００、１１０、１２０から構成されるパリティ・グループを設定し、このグループ内のドライブの任意の一つ（例えば、ドライブ１００）をパリティ・ドライブとして指定することも可能である。同様に、追加のパリティ・グループをバス７６、８６、９６、１０６、１１６、１２６のおのおのからの一つのディスク・ドライブから構成することも可能である。例えば、第二のパリティ・グループを、ディスク・ドライブ７１、８１、９１、１０１、１１１、１２１から構成することも可能である。本発明の重要な点は、おのおのが全体の配列に対して少数のドライブから成る多数のパリティ・グループを提供することで、より高速なシステム応答と、より高い信頼性を達成することである。さらに、エラー修正システム５２は、ディスク・ドライブの配列内の特定の配列と無関係にパリティ・グループを構成することも可能である。加えて、パリティ・グループ当たりのドライブの数を低減し、ディスク・ドライブの配列内のパリティ・グループの数を増加することで、システムの応答速度と信頼性をさらに向上させることも可能である。例えば、４つのアクティブなドライブと一つの専用のパリティ・ドライブとを含む５つのディスク・ドライブから成るパリティ・グループを使用した場合は、６つのディスク・ドライブから成る上述の一例としてのパリティ・グループを使用した場合よりさらにシステムが改善される。
上述のことから、本発明は、ディスク配列が、単一のパリティ・グループに編成され、単一のパリティ・ドライブによってグループ全体が保護される従来のビデオサーバあるいは同等物とは異なることが当業者にとって明らかである。従来の方法とは異なり、本発明は、システムのユーザの入力および要求に応答する速度は、ディスク・ドライブ配列を複数のパリティ・グループに編成（分割）することで大幅に改善されるという発見に基づく。さらに、本発明のシステムは、複数のパリティ・グループの間にのみでなく、各グループ内のディスク・ドライブの間にも、上述の関連する出願において説明されるような方法にて、データを実質的に一様に分配する。複数のパリティ・グループの使用は、信頼性の向上にも寄与する。
ある与えられたサイズの配列の応答速度は、この配列を、単一のグループではなく、複数のグループに分割することによって改善されることが発見されたが、同時に、現在市販されているディスク・ドライブを使用するビデオ・オン・デマンド・サーバのようなシステムにおいても、ディスク・ドライブ配列を、おのおのが５〜１０個のディスク・ドライブを含むパリティ・グループを構成するように分割することによって、最適なシステム性能および応答時間が達成されることが発見された。さらに、このような配列内に含まれるディスク・ドライブの総数に関係なく、総システム格納容量を、許容できるレベルに維持できることが発見された。ビデオサーバあるいは同等物において使用されるための、複数のパリティ・グループを持つ改良された多重ディスク・ドライブ配列について開示されたが、これは、ユーザの入力および変更に対する迅速な応答を可能にし、同時に、信頼性を向上させる。
本発明の特定な実施例について説明されたが、当業者においては、広義に解釈して本発明から逸脱することなくさまざまな変更および修正を行なうことができることは明らかである。
【図１】
0004381480.tif 000002
【図２】
0004381480.tif 000003