JP3600334B2 - 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置 - Google Patents

連続データサーバ装置、連続データ送出方法及びディスクアレイ装置 Download PDF

Info

Publication number
JP3600334B2
JP3600334B2 JP31557895A JP31557895A JP3600334B2 JP 3600334 B2 JP3600334 B2 JP 3600334B2 JP 31557895 A JP31557895 A JP 31557895A JP 31557895 A JP31557895 A JP 31557895A JP 3600334 B2 JP3600334 B2 JP 3600334B2
Authority
JP
Japan
Prior art keywords
data
unit
buffer storage
units
buffer
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.)
Expired - Fee Related
Application number
JP31557895A
Other languages
English (en)
Other versions
JPH09138735A (ja
Inventor
達徳 金井
滋博 浅野
健 相川
真家 天野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP31557895A priority Critical patent/JP3600334B2/ja
Priority to DE69632424T priority patent/DE69632424T2/de
Priority to US08/603,759 priority patent/US5862403A/en
Priority to EP96102361A priority patent/EP0727750B1/en
Publication of JPH09138735A publication Critical patent/JPH09138735A/ja
Application granted granted Critical
Publication of JP3600334B2 publication Critical patent/JP3600334B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数の連続データのアクセス要求に同時に応答して映像や音声等の連続データのサービスを行う連続データサーバ装置および連続データ送出方法、ならびに複数系統のディスク装置を接続しデータを組にして入出力するディスクアレイ装置に関する。
【0002】
【従来の技術】
映像や音声のような連続データを扱う連続データサーバ装置は、記憶装置に記憶した連続データを読み出し、端末装置に対して時間に同期しながらリアルタイムに連続的にデータを送り出す機能を持つ。このような連続データサーバ装置は、複数の映画等のビデオデータを記憶し、端末からのリクエストに応じて任意の映画を送り出すビデオ・オン・デマンドや、ネットワークを介して映像による商品情報を提供するオンラインショッピングなどの分野で使用される。それゆえ、連続データサーバ装置には、複数のユーザからランダムにリクエストが送られてくるので、同時に多数のユーザに対してそれぞれ異なる連続データの送り出しを行う能力が要求されることになる。
【0003】
以下、従来の連続データサーバ装置について詳しく説明する。
【0004】
従来の連続データサーバ装置の1つに、図57に示すような構成を持つものがある。このような連続データサーバ装置において、ユーザあるいはアプリケーションプログラムによって発せられた連続データへのアクセス要求が、プロセス間通信やネットワークを経由した通信等によって送られて来る。このアクセス要求は、通信制御装置706からバス720を介して中央制御装置710に伝えられ、受理される。中央制御装置710は、要求された連続データの読み出しを、必要なデータ記憶制御装置704に伝える。データ記憶制御装置704は、指示された連続データをデータ記憶装置702から読み出してバッファ記憶装置708に書き込む。中央制御装置710は、バッファ記憶装置708上のデータの送り出しを通信制御装置706に指示する。通信制御装置706は、アクセス要求にて指定された転送先に向けて、連続データを送り出す。中央制御装置710は、基本的には、電子計算機と同じように、CPUとメモリ装置から構成される。中央制御装置710は、アクセス要求を伝えるための通信装置を備え、ユーザあるいはアプリケーションプログラムからのアクセス要求は、通信制御装置706ではなく中央制御装置の持つ通信制御によって伝えられる。連続データを記憶するデータ記憶装置702には、ディスク装置を用いることが多い。ディスク装置としては、磁気ディスク装置を用いる場合が多いが、光ディスクや光磁気ディスク装置等を用いる場合もある。ディスク装置以外にも、RAMやEEPROM等の半導体記憶装置を用いることもある。
【0005】
さて、図57のような従来の連続データサーバ装置において、例えばデータ記憶装置702としてディスク装置を用いたものを考えると、特定のディスク装置に記憶している連続データの異なる部分へ同時に多数のユーザからのアクセスが集中することがある。例えば、連続データとして1台の磁気ディスクにビデオが入っており、1本のビデオを多数のユーザが1分おきにずれて見るような状況がこれにあたる。このような場合、従来の連続データサーバ装置では、ディスクのアクセス速度が隘路となり、すべてのユーザにリアルタイムでデータを送り出すことができなくなる不具合がある。例えば、映像データを扱う場合、1人のユーザの端末に対して平均1.5Mbit/secの速度で連続データを送り出すものとし、この映像データを記憶する磁気ディスク装置が最大2MByte/secの速度でデータを読み出せるものとすると、1台の磁気ディスク装置から同時に最大10ユーザへの送出を行う能力しか得られないことになる。
【0006】
このようなディスク装置の問題を解消する手法として、ストライピングという技法が知られている。ストライピング技法は、複数台のディスク装置を用いて全体のデータ転送能力(総バンド幅)を大きくするとともに、1つの連続データを分割して複数台のディスク装置に記憶することによって、同一の連続データへより多数のユーザが同時にアクセスすることを可能にするものである。ストライピングを行うことで、複数のユーザが同一の連続データの異なる部分へアクセスするような最悪の場合にも対処できるバンド幅の広い記憶装置を構成することが可能になる。
【0007】
ところが、図57のように1台の中央制御装置710に数多くのディスク装置を接続し、ストライピングでバンド幅を稼いだとしても、その中央制御装置710の持つバス720の転送速度によって同時にアクセスできるユーザ数は限定されてしまう。例えば、133MByte/secの転送能力を持つPCIバスの場合、1本の連続データのアクセス速度が1.5Mbit/secであるとすると、1本あたりディスク装置702からバッファ記憶装置708に転送するために使う1.5Mbit/secとバッファ記憶装置708から通信制御装置706に転送するために使う1.5Mbit/secの合計3Mbit/secのバス720のデータ転送能力(バンド幅)を占有する。よって、バスが100%の効率で動作すると仮定した場合でも354本までの連続データしか同時にアクセスできないことになる。実際には、バスを100%の効率で動作させることはないので、同時にアクセスできるユーザ数はさらに低減される。
【0008】
そこで、従来の1系統の連続データサーバ装置だけでは実現できないような多数のユーザに対する同時アクセスを実現するために、図57のような1系統の連続データサーバ装置を複数系統並設した構成が考えられる。そのような連続データサーバ装置を図58に示す。この場合、連続データは、1つの連続データサーバ装置800に接続されたデータ記憶装置802間でストライピングを行って記憶される(異なる連続データサーバ装置800に接続されたデータ記憶装置802間ではストライピングは行なわない)。この場合、全体制御用計算機801が、統括して連続データのアクセス要求を受け、要求された連続データを持つ連続データサーバ装置800に対してアクセス要求を伝える。その後、アクセス要求を伝えられた連続データサーバ装置800の中央制御装置(図示せず)がデータの送り出しを制御する。図58のようなシステムによれば、連続データサーバ装置800の系統を増設することによって、同時に連続データにアクセスできるユーザ数を容易に増加させることができる。
【0009】
しかしながら、多数系統の連続データサーバ装置800のデータ記憶装置802に同じデータのコピーを持たせなければ、同一の連続データの異なる部分に全ユーザがアクセスするような場合には対処できない。したがって、全データのコピーを多くの系統の連続データサーバ装置800に持たせるためのコストが非常に大きくなるという欠点があった。
【0010】
連続データのコピーを多くの系統の連続データサーバ装置に持たせずに、同時にアクセスできるユーザ数を増やす方法としては、図59に示すように複数の中央制御装置(CPU)910,911をデータ転送能力(バンド幅)の大きなスイッチ(結合路)921で接続した超並列計算機を利用して、データ記憶装置902から通信制御装置906へ至るデータパスを多重化する方式がある。この場合、各中央制御装置910,911の持つ記憶装置908,909をバッファ記憶装置として使う。中央制御装置910,911間を接続するスイッチ921は、任意のデータ記憶制御装置904を持つ中央制御装置910と任意の通信制御装置906を持つ中央制御装置911の間でのデータ転送を可能とする必要があるため、クロスバスイッチやハイパーキューブあるいはATMのような多段網を用いる。
【0011】
ところが、このような構成を持つ連続データサーバ装置では、通信制御装置906を持つ1つの中央制御装置911に対してデータ記憶制御装置902を持つ複数の中央制御装置910からデータの転送が発生するため、アービトレーションの機能が必要となる。そのため、結合路921を構成するクロスバスイッチやATMネットワーク等のハードウェアが複雑となり、コストも非常に大きくなる欠点があった。
【0012】
【発明が解決しようとする課題】
従来、1台の連続データサーバ装置で同時に連続データにアクセスできるユーザ数は、連続データサーバ装置を構成するバス等のデータパスのバンド幅によって制限されるという問題点があった。
【0013】
1台の連続データサーバ装置の能力よりも多くのユーザが同時に連続データに対してアクセスすることを可能にするために、複数系統の連続データサーバ装置を用いて、それぞれに連続データのコピーを持たせたものでは、データ記憶装置のコストが大きいという問題点があった。
【0014】
クロスバスイッチやATM等のスイッチを用いてデータパスの多重化を行うことで、同時にアクセス可能なユーザ数を大きくしたものでは、スイッチのハードウェアが複雑になり、コストも大きいという問題点があった。
【0015】
本発明は、上記事情に鑑みてなされたものであり、コストを増大させることなく、従来の1台の連続データサーバ装置の能力を越えるような多数のユーザからの連続データへの同時アクセスに応答できるようにした連続データサーバ装置および連続データ送出方法を提供すること目的とする。
【0016】
また、本発明は、複数系統のディスク装置の接続口を有するディスクアレイ装置に接続したディスク装置の故障により失われた情報の復元を少ないハードウェア構成で実現することのできるディスクアレイ装置を提供すること目的とする。
【0017】
【課題を解決するための手段】
本発明(請求項1)に係る連続データサーバ装置は、連続データを記憶するデータ記憶部から所望の連続データを読み出す複数のデータ記憶制御部と、前記データ記憶制御部によって読み出された前記連続データを保持するための複数のバッファ記憶部と、前記バッファ記憶部に保持されている前記連続データを読み出し、収容した通信路に送り出す複数の通信制御部とを備え、前記バッファ記憶部を、1つ又は複数のデータ記憶制御部からなる1つのデータ記憶制御部群と1つ又は複数の通信制御部からなる1つの通信制御部群とからなる群の組合せのそれぞれに対して少なくとも1つずつ専用に存在するように設けたことを特徴とする。
好ましくは、少なくとも1つの前記バッファ記憶部は、該バッファ記憶部に書き込みを行なう前記データ記憶制御部群を複数受持つものであり、複数の前記データ記憶制御部群を受持つ前記バッファ記憶部は、アクセス要求のあった連続データを記憶する前記データ記憶部に対応する前記データ記憶制御部の属する前記データ記憶制御部群を選択する選択手段を有するようにしてもよい。
好ましくは、前記データ記憶部は、連続データを分割して順に記憶させた複数のデータ記憶装置からなるようにしてもよい。
好ましくは、前記データ記憶制御部群と前記バッファ記憶部との間を接続するパスと、前記通信制御部群と前記バッファ記憶部との間を接続するパスとを互いに独立して設ける
ようにしてもよい。
好ましくは、前記データ記憶制御部群と前記バッファ記憶部との間を接続するパスを、各々の前記データ記憶制御部群ごとに独立して設けるようにしてもよい。
好ましくは、前記通信制御部群と前記バッファ記憶部との間を接続するパスを、各々の前記通信制御部群ごとに独立して設けるようにしてもよい。
好ましくは、対応する前記データ記憶制御部群と前記バッファ記憶部との間にそれぞれ接続された4端子を有する複数の演算部を更に備え、前記複数の演算部は上下に直列に接続され、前記演算部夫々は、バッファ記憶部側の端子から入力したデータと上側の端子から入力したデータを元に、排他的論理和演算を行ない、演算結果を下側の端子に出力する第1の機能と、上側の端子から入力したデータを下側の端子に出力する第2の機能と、前記データ記憶制御部群側の端子から入力したデータをバッファ記憶部側の端子から出力する第3の機能とを有し、最上位の演算部の上端の端子からは0を入力するように設定され、データ記憶制御部がデータ記憶部から読み出したデータは対応するバッファ記憶部に接続している演算部が前記第3の機能で動作させてそのバッファ記憶部に書き込み、いずれかのバッファ記憶部からデータを読み出す場合には、そのバッファ記憶部に接続している演算部は前記第1の機能で動作させ、その演算部以外の演算部は前記第2の機能で動作させ、最下段の演算部の下端の端子からデータを読み出し、いずれかのバッファ記憶部に対応するデータを復元しながら読み出す場合には、そのバッファ記憶部に接続している演算部は前記第2の機能で動作させ、その演算部以外の演算部は前記第1の機能で動作させ、最下段の演算部の下端の端子からデータを読み出すようにしてもよい。
好ましくは、前記データ記憶部には連続するデータが前記複数のデータ記憶部制御部に跨るように記憶されており、前記複数のバッファ記憶部に保持された複数のデータを前記複数のバッファ記憶部から順次読み出すものであり、前記連続データサーバ装置は、前記複数のバッファ記憶部に接続される演算部を更に備え、この演算部は、順次読み出された複数のデータのうちの一部を記憶する機能と、順次読み出された複数のデータのうちの一部の排他的論理和を計算する機能と、この排他的論理和の計算結果及び前記記憶されたデータを所望の順序で出力する機能とを含むようにしてもよい。
好ましくは、前記複数のバッファ記憶部に接続される演算部を更に備え、この演算部は、本装置の外部から入力される複数のデータの排他的論理和を計算する機能と、この排他的論理和の計算結果及び前記入力されたデータを所望の順序で前記複数のバッファ記憶部に対し順次送り出す機能とを含むようにしてもよい。
好ましくは、前記演算部は、前記排他的論理和の計算結果を蓄積する機能と、この蓄積された値を所定のタイミングで前記複数のバッファ記憶部のうちの一つに送り出す機能とを更に含み、この送り出され前記複数のバッファ記憶部のうちの一つに保持されることとなった値を対応する前記データ記憶制御部によって前記データ記憶部へ書き込むようにしてもよい。
好ましくは、前記複数のバッファ記憶部からデータを読み出すためのバスを更に備え、
このバスを時分割で使用することによりデータを前記複数のバッファ記憶部から順次読み出す処理を行うようにしてもよい。
また、本発明(請求項8)は、連続データを記憶したデータ記憶装置から所望の連続データを読み出す複数のデータ記憶制御装置と、読み出された該連続データを保持するためのバッファ記憶装置と、該バッファ記憶装置に保持された該連続データを通信路に送り出す複数の通信制御装置とを備え、前記バッファ記憶装置を1つのデータ記憶制御装置と1つの通信制御装置とからなる組合せすべてに対して専用に少なくとも1つずつ設けた連続データサーバ装置において要求された連続データを要求された転送先に転送するための連続データ送出方法であって、外部から連続データのアクセス要求を受け付け、要求された連続データを記憶する前記データ記憶装置が接続された前記データ記憶制御装置と、該連続データの転送先に通じる通信路を収容している前記通信制御装置とを選択し、選択した前記データ記憶制御装置に前記データ記憶装置に記憶された前記連続データを読み出させ、前記データ記憶制御装置に読み出した前記連続データを当該データ記憶制御装置と選択した前記通信制御装置とに接続された専用の前記バッファ記憶装置に書き込ませ、前記通信制御装置に前記バッファ記憶装置内に書き込まれている前記連続データを読み出させ、前記通信制御装置に前記連続データを所定の通信路に送り出させることを特徴とする。
好ましくは、外部から受け付けるアクセス要求が複数で、これら複数の要求に対応する連続データの読み出しおよび送り出しのタイミングをスケジューリングするステップをさらに含むようにしてもよい。
また、本発明(請求項10)は、複数系統のディスク装置を接続する接続口を有し、接続した複数系統のディスク装置に対するアクセスを並列に行なうディスクアレイ装置において、前記接続口から入出力するデータを格納するために、該接続口夫々に対応して設けたバッファ記憶部と、対応する前記接続口と前記バッファ記憶部との間にそれぞれ接続された4端子を有する複数の演算部とを備え、前記複数の演算部は上下に直列に接続され、前記演算部夫々は、バッファ記憶部側の端子から入力したデータと上側の端子から入力したデータを元に、排他的論理和演算を行ない、演算結果を下側の端子に出力する第1の機能と、上側の端子から入力したデータを下側の端子に出力する第2の機能と、ディスク装置側の端子から入力したデータをバッファ記憶部側の端子から出力する第3の機能とを有し、最上位の演算部の上端の端子からは0を入力するように設定され、ディスク装置から読み出したデータは対応するバッファ記憶部に接続している演算部が前記第3の機能で動作させてそのバッファ記憶部に書き込み、いずれかのバッファ記憶部からデータを読み出す場合には、そのバッファ記憶部に接続している演算部は前記第1の機能で動作させ、その演算部以外の演算部は前記第2の機能で動作させ、最下段の演算部の下端の端子からデータを読み出し、いずれかのバッファ記憶部に対応するデータを復元しながら読み出す場合には、そのバッファ記憶部に接続している演算部は前記第2の機能で動作させ、その演算部以外の演算部は前記第1の機能で動作させ、最下段の演算部の下端の端子からデータを読み出すことを特徴とする。
また、本発明(請求項15)は、連続データを記憶するデータ記憶部から所望の連続データを読み出す複数のデータ記憶制御部と、前記データ記憶制御部によって読み出された前記連続データを保持するための複数のバッファ記憶部と、前記バッファ記憶部に保持されている前記連続データを読み出し、収容した通信路に送り出す少なくとも1つの通信制御部とを備え、前記バッファ記憶部を1つの前記データ記憶制御部と1つの前記通信制御部とからなる組合せのそれぞれに対して専用に少なくとも1つずつ設け、前記データ記憶部には連続するデータがワード単位で前記複数のデータ記憶制御部に跨るように記憶されており、前記データ記憶制御部による読み出しはブロック単位で行われ、前記複数のバッファ記憶部に保持されたブロック単位のデータをワード単位で前記複数のバッファ記憶部から順次読み出して得られる連続データを、収容した通信路に送り出すものであることを特徴とする。
【0034】
(作用)
本発明(請求項1)に係る連続データサーバ装置では、データ記憶制御装置と通信制御装置の組のそれぞれ、またはいくつかのデータ記憶制御装置からなる群といくつかの通信制御装置からなる群の組それぞれに対して、その間のデータの受け渡し専用のバッファ記憶装置を設けるとともに、各データ記憶制御装置と各通信制御装置は、それがアクセスする必要のあるバッファ記憶装置を含む一部のバッファ記憶装置のみと接続している。
【0035】
このため、データ記憶制御装置とバッファ記憶装置の間のデータパスおよびバッファ記憶装置と通信制御装置の間のデータパスの多重度を上げることができ、連続データへの同時アクセスユーザ数を増加させることが可能になる。
【0036】
この場合、各データ記憶制御装置と各通信制御装置を、それがアクセスする必要のあるバッファ記憶装置のみと接続すれば、データパスの多重度をより効果的に上げることができ、連続データへの同時アクセスユーザ数をさらに増加させることができる。また、各バッファ記憶装置は1つあるいは複数のデータ記憶制御装置の接続された1つのデータパスと、1つあるいは複数の通信制御装置の接続された1つのデータパスに接続されるため、バッファ記憶装置へのアクセスに対するアービトレーションが非常に簡単になる。
【0037】
さらに、従来のように高コストを要する転送速度の大きいバスやスイッチを使う必要がないので、コストの増大を招くことなく、連続データへの同時アクセスユーザ数を増加させることができる。
【0038】
また、前記データ記憶制御装置と前記バッファ記憶装置との間を接続するパスと、前記通信制御装置と前記バッファ記憶装置との間を接続するパスとを互いに独立して設けた場合、バスへの負荷が分散され、バスのバンド幅が小さくて済む。さらに、前記データ記憶制御装置と前記バッファ記憶装置との間を接続するパスを各々の前記データ記憶制御装置ごとに独立して設け、あるいは前記通信制御装置と前記バッファ記憶装置との間を接続するパスを各々の前記通信制御装置ごとに独立して設ければ、さらなる負荷分散が可能になり、バスに要求されるバンド幅をさらに小さくすることができる。
【0039】
また、本発明(請求項8)の連続データ転送方法では、要求された連続データを記憶する前記データ記憶装置が接続された前記データ記憶制御装置が、該連続データを読み出して、当該データ記憶制御装置と該連続データの転送先に通じる通信路を収容している前記通信制御装置とに接続された専用のバッファ記憶装置に書き込み、当該通信制御装置はこの前記バッファ記憶装置内に書き込まれている前記連続データを読み出して、所定の通信路に送り出す。
【0040】
このため、データ記憶制御装置とバッファ記憶装置の間のデータパスおよびバッファ記憶装置と通信制御装置の間のデータパスの多重度を上げることができ、連続データへの同時アクセスユーザ数を増加させることが可能になる。
【0041】
また、各バッファ記憶装置は1つあるいは複数のデータ記憶制御装置の接続された1つのデータパスと、1つあるいは複数の通信制御装置の接続された1つのデータパスに接続されるため、バッファ記憶装置へのアクセスに対するアービトレーションが非常に簡単になる。
【0042】
さらに、高コストを要する転送速度の大きいバスによりデータパスの多重度を上げる必要がないので、コストの増大を招くことなく、連続データへの同時アクセスユーザ数を増加させることができる。
【0043】
また、本発明において、対応するディスク制御部とバッファ記憶部との間にそれぞれ接続された4端子を有する複数の演算部とを備え、この演算部を適宜動作させることにより、例えば以下のような操作を行なうことができる。
【0044】
(i)各ディスク制御部に接続するディスク装置夫々に組をなすn+1個のデータが格納されているとする。
【0045】
ここで、演算部を、ディスク制御部側から入力したデータをそのままバッファ記憶部側に出力するように動作させれば、各ディスク装置のデータを対応するバッファ記憶部に格納することができる。
【0046】
また、所望のディスク装置のデータだけ対応するバッファ記憶部に格納することもできる。
【0047】
(ii)
所望のバッファ記憶部に接続された演算部はバッファ記憶部側の端子から入力されたデータを下側の端子に出力し、下段の演算部は上側の端子から入力されたデータを下側の端子に出力するように動作させれば、該所望のバッファ記憶部に格納されたデータを最下段の演算部から取り出すことができる。
【0048】
(iii)
所望のバッファ記憶部に接続された演算部は上側の端子からの入力を下側の端子に出力し、それ以外の演算部はバッファ記憶部側の端子から入力されたデータと上側の端子から入力されたデータの排他的論理和または排他的論理積を下側の端子に出力するように動作させれば、該所望のバッファ記憶部以外に格納されたデータの排他的論理和または排他的論理積を最下段の演算部から取り出すことができる。
【0049】
n+1個のバッファ記憶部に格納されたデータがRAIDの組をなすデータ、すなわちn個の元データとそのパリティーより1個欠けたものであれば、欠けたデータを復元し、最下段の演算部より取り出すことができる。
【0050】
(iv)
所望のバッファ記憶部に接続された演算部は下側の端子から入力されたデータをバッファ記憶部側の端子に出力し、下段の演算部は下側の端子から入力されたデータを上側の端子に出力するように動作させれば、最下段の演算部から入力したデータを該所望のバッファ記憶部に格納することができる。
【0051】
(v)
各バッファ記憶部に接続するディスク装置夫々に組をなすn+1個のデータが格納されているとする。
【0052】
ここで、演算部を、バッファ記憶部側から入力したデータをそのままディスク制御部側に出力するように動作させれば、各バッファ記憶部側のデータを対応するディスク装置に格納することができる。
【0053】
また、所望のバッファ記憶部のデータだけ対応するディスク装置に格納することもできる。
【0054】
(vi)
所定のバッファ記憶部に接続された第1の演算部は上側の端子から入力されたデータと下側の端子から入力されたデータの排他的論理和または排他的論理積をバッファ記憶部側の端子に出力し、該第1の演算部より上段の演算部が存在するときそれらはバッファ記憶部側の端子から入力されたデータと上側の端子から入力されたデータの排他的論理和または排他的論理積を下側の端子に出力し、最下段の演算部は下側の端子から入力された入力データを上側の端子およびバッファ記憶部側の端子に出力し、それ以外の演算部が存在するときはそれらはバッファ記憶部側の端子から入力されたデータと下側の端子から入力されたデータの排他的論理和または排他的論理積を上側の端子に出力するように動作させ、最上段の演算部の上側の端子からは排他的論理和のとき0、排他的論理積のとき1を入力すれば、前記入力データを最下段の演算部に対応するバッファ記憶部に格納するとともに、所望のバッファ記憶部には前記入力データと所望のバッファ記憶部および最下段の演算部に対応するバッファ記憶部以外に格納されたデータとの排他的論理和または排他的論理積、すなわちこれらデータのパリティーを格納することができる。
【0055】
(vii)
所定のバッファ記憶部に接続された第1の演算部は上側の端子から入力されたデータと下側の端子から入力されたデータの排他的論理和または排他的論理積をバッファ記憶部側の端子に出力し、該第1の演算部より上段の演算部が存在するときそれらはバッファ記憶部側の端子から入力されたデータと上側の端子から入力されたデータの排他的論理和または排他的論理積を下側の端子に出力し、該第1の演算部より下段の演算部が存在するときそれらはバッファ記憶部側の端子から入力されたデータと下側の端子から入力されたデータの排他的論理和または排他的論理積を上側の端子に出力するように動作させ、最上段の演算部の上側の端子および最下段の演算部の下側の端子からは排他的論理和のとき0、排他的論理積のとき1を入力すれば、所望のバッファ記憶部には所望のバッファ記憶部以外に格納されたデータの排他的論理和または排他的論理積を格納することができる。
【0056】
n+1個のバッファ記憶部に格納されたデータがRAIDの組をなすデータ、すなわちn個の元データとそのパリティーから1個欠けたものであれば、欠けているデータの入るべき所望のバッファ記憶部に接続されたデータを復元し、さらにディスク装置に書き込むことができる。
【0059】
プロセッサを用いる方法と異なり実行中プロセッサの仕事を妨げるおそれがなく、また並列に排他的論理和等をとる回路を用いる方法と異なり配線の集中や回路の複雑化を引き起こさないようにするために、専用のハードウェアの構成を工夫したものである。
【0060】
以上のように本発明によれば、ディスク装置およびバッファ記憶部の各系統に上記のような演算部を専用に設け、これらを直列に接続したので、例えば、ディスク装置の故障に対処するためのデータ復元処理やパリティーの生成を少ないハードウェア構成で実現可能であるとともに、ハードウェアで処理を行なうので処理の高速化を図ることができる。
【0061】
本発明(請求項15)に係るディスクアレイ装置では、複数のディスク制御部のそれぞれに対応させてバッファ記憶部を設けるとともに、ディスク装置には連続するデータがワード単位で複数のディスク制御部に跨るように記憶されており、複数のバッファ記憶部に保持されたブロック単位のデータをワード単位で複数のバッファ記憶部から順次読み出すようになっている。
【0062】
このため、ディスク制御部とバッファ記憶部の間のデータパスの多重度を上げて、連続データを構成するデータをブロック単位で受け渡しすることができる。そして、このブロック中のデータは、連続するデータがワード単位で複数のディスク制御部に跨るようになっているため、バッファ記憶部に読み込まれた段階では連続するデータとはなっていないが、このデータをバッファ記憶部から読み出すときに、複数のバッファ記憶部から順次ワード単位で読み出すことにより、読み出されたデータは再度連続するデータに戻っていることになる。このように、複数のバッファ記憶部は、ディスク装置から読み出される連続していないデータを連続するデータに並べ替える働きをするとともに、ディスク装置のバースト的なアクセスパターンを一定の速度でアクセスできるようにも機能する。
【0063】
したがって、連続するデータがワード単位で複数のディスク制御部に跨っていても最終的に連続するデータを外部に供給することができる。また、連続するデータがワード単位で複数のディスク装置に跨るようになっていることで、下記のようなことも可能になる。
【0064】
すなわち、複数のバッファ記憶部からワード単位で順次読み出されたデータを演算部に入力し、この演算部において、入力されたデータの一部を記憶するとともに、RAIDの組になるデータより1個欠けた(ディスク装置が故障した場合にこの故障したディスク装置に対応するデータが欠けることになる)データの排他的論理和を計算し、この計算結果及び演算部内部に記憶されたデータを所望の順序(連続するデータを構成する順序)で出力すれば、ディスク装置の故障時に複数のバッファ記憶部から順次読み出したデータのうち一部が不正なものであっても、正しい連続データを出力することができる。なお、この場合には、連続するデータを構成する複数のデータ及びそのパリティがワード単位で複数のディスク制御部に跨っていることになる。
【0065】
このとき、データがワード単位で複数のディスク装置に跨るように配置されているため、演算部内部で記憶する必要のあるデータの量を数ワードに減少させることができる。
【0066】
また、上記演算部を、本装置の外部から入力されるデータの排他的論理和を計算してパリティを作成し、データとパリティを所望の順序(連続するデータを構成する複数のデータ及びそのパリティがワード単位で複数のディスク制御部に跨るような順序)で複数のバッファ記憶部に対し順次送り出すように構成すれば、外部からのデータの入力とともにパリティを生成しこれらをディスク装置に書き込むことが可能になる。この場合、演算部内部の記憶容量は、計算されたパリティ分の1ワードのみで済むことになる。
【0067】
また、上記演算部を、複数のバッファ記憶部から順次読み出されたデータ(RAIDの組になるデータ)より1個欠けた(故障したディスク装置に対応するデータが欠けた)データの排他的論理和を計算し、この結果を故障したディスク装置に対応するバッファ記憶部に書き込むために送り出すように構成すれば、故障して交換したディスク装置に対応するバッファ記憶部に故障する前のデータを復元することができる。さらに、バッファ記憶部に復元したデータを、対応する前記ディスク制御部によって、故障して交換したディスク装置へ書き込むことで、ディスク装置の内容を修復することができる。この場合も、演算部内部の記憶容量は、計算されたパリティ分の1ワードのみで済むことになる。
【0068】
さらに、複数のバッファ記憶部からデータを読み出すためのバスを時分割で使用することによりデータをワード単位で複数のバッファ記憶部から順次読み出すようにすれば、配線の効率的な使用が可能で、ハードウェア量を減少させることができる。
【0069】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態を説明する。
【0070】
図1に、本発明の一実施形態に係る連続データサーバ装置の構成を示す。
【0071】
本実施形態の連続データサーバ装置は、n(nは1以上の整数)台のデータ記憶制御装置4(図中4−1〜4−n)、各データ記憶制御装置4ごとに所定台数接続されたデータ記憶装置2、m(mは1以上の整数)台の通信制御装置6(図中6−1〜6−m)、1つのデータ記憶制御装置4と1つの通信制御装置6に接続されたn×m台のバッファ装置8、中央制御装置10を備える。
【0072】
データ記憶装置2は、映像や音声等の連続データを記憶するためのものであり、磁気ディスク装置、光ディスク装置あるいは光磁気ディスク装置等のディスク装置を用いることができる。また、ディスク装置以外にも、RAMやEEPROM等の半導体記憶装置など種々のものを用いることができる。
【0073】
データ記憶装置2に記憶する連続データは、連続したビットあるいはバイトの並んだ構造を持つデータである。連続データは、好ましくは、ブロックなど一纏まりの単位で記憶・管理される。
【0074】
データ記憶制御装置4は夫々、所定台数のデータ記憶装置2を接続しており、中央制御装置10の制御に従い、データ記憶装置2に記憶された連続データを読み出し、これを指示されたバッファ記憶装置8の指示された番地に書き込む。
【0075】
データ記憶装置2として磁気ディスク装置を用いる場合、データ記憶制御装置4は、ディスクコントローラにより実現することができる。磁気ディスク装置がSCSIインタフェースを持つものである場合、データ記憶制御装置4にSCSIコントローラを持たせれば、これによりディスク中のデータを読み出すことができる。
【0076】
一般に、ディスクコントローラなどからなるデータ記憶制御装置4には、磁気ディスク装置などからなる複数のデータ記憶装置2を接続することができる。例えば、SCSIインタフェースであれば、1本のSCSIケーブルに7台のディスク装置を接続することができる。また、中央制御装置10には、複数のデータ記憶制御装置4を接続することが可能である。ディスクコントローラなどからなる複数のデータ記憶制御装置4を持つことで、1つのデータ記憶制御装置4だけでは接続することのできない多数のデータ記憶装置を1つの中央制御装置10に接続することができる。
【0077】
なお、1つのデータ記憶制御装置4に接続するデータ記憶装置2の台数を、全データ記憶制御装置4について揃える必要はなく、適宜設定して構わない。
【0078】
本実施形態は、良く知られたストライピングの技法を適用することができる。その際、例えば図1のように連続データをすべてのデータ記憶制御装置4間に渡って分散しても良いし、あるいは一部のデータ記憶制御装置4間に渡って分散しても良い。
【0079】
バッファ記憶装置6は、データ記憶制御装置4から転送された連続データを、一時格納するためのものであり、後述するように2ポートメモリやVRAMなどを用いて構成することができる。
【0080】
このバッファ記憶装置6は、本発明に従って、図1のようにデータ記憶制御装置4および通信制御装置6のすべての組合せに対して1台ずつ(あるいは1台以上ずつ)、データ記憶制御装置4と通信制御装置6に接続する。
【0081】
このような構成により、任意のデータ記憶制御装置4と任意の通信制御装置6の間でのデータの受渡しに用いるバッファ記憶装置をすべての組合せに対して専用に設けることができ、データ記憶制御装置4とバッファ記憶装置8の間のデータパスおよびバッファ記憶装置8と通信制御装置6の間のデータパスの双方が多重化され、データパスのデータ転送能力を高めることができる。
【0082】
しかも、それぞれのデータパスを与えるバス20,21として従来と同じようなデータ転送能力(バンド幅)を有するものを用いても、データ記憶制御装置4と通信制御装置6の間のデータ転送能力を飛躍的に向上させることができるので、従来のようにデータ転送能力(バンド幅)のより大きい高価なバスやスイッチを用いてデータ転送能力を向上させるためにコストの増大を招くことがない。
【0083】
なお、図1では、それぞれのバス20,21を互いに独立した形で専用に設けているが、図1中の任意の複数のバスが1本として結合されたものであっても構わない。
【0084】
通信制御装置6は、指定されたバッファ記憶装置8の指定された番地から連続データを読み出し、これをネットワークやCATV(ケーブルテレビ)の同軸ケーブル等の通信路に対して送り出す。通信制御装置6には、ATMネットワークやイーサネット、FDDIなどを用いることができる。
【0085】
中央制御装置10は、システム全体の制御を司るものであり、例えば電子計算機と同じようにCPUとメモリ装置から構成し、システム全体に対する制御を記述したプログラムをCPUで実行することにより、その機能を得ることができる。必要に応じてアクセス要求を伝えるための通信装置(ネットワークインタフェースなど)を備えても良い。
【0086】
中央制御装置10は、システム全体を制御するために、システム内に記憶している各連続データの仕様、各連続データのデータ記憶装置2への配置状態、各通信制御装置6が接続できる通信路など、システム内の情報をすべて管理している、あるいは知ることができる。連続データの仕様としては、連続データ名あるいはIDコードなどの各連続データを特定するための情報の他に、例えば各連続データの全データ長や、連続データが複数のブロックからなる場合の全ブロック数などが考えられる。
【0087】
中央制御装置10は、概略的には、ネットワークを介した通信やプロセス間通信あるいは手続き呼出し等の手段によって伝えられてくるユーザやアプリケーションプログラムからの連続データのアクセス要求を受け付け、その要求に応答するために用いるデータ記憶制御装置4と通信制御装置6を調べ、それらに対して要求された連続データを指定された転送先に向けて通信路から送り出すために必要な動作の指示を出す。データ記憶制御装置4に対しては、どのデータ記憶装置2に記憶されているどの連続データをどのバッファ記憶装置8のどの番地に転送するかを指示するとともに、通信制御装置6に対しては、どのバッファ記憶装置のどの番地にある連続データを通信路を介してどこに送信するかを指示する。
【0088】
次に、本実施形態の連続データサーバ装置の動作の流れについて説明する。ここでは、説明を簡潔にするため、図2に示すようにデータ記憶装置を8台、データ記憶制御装置を4台、バッファ記憶装置を8台、通信制御装置を2台設けた具体例を使って説明する。
【0089】
データ記憶装置2に記憶する連続データは、連続したビットあるいはバイトの並んだ構造を持つデータである。連続データは、いくつかのブロック、例えば図3に示すようにB1〜B16の16ブロックに分割され、図2に示すような配置で、各データ記憶装置2−1〜2−8に記憶される。すなわち、1番目のブロックB1はデータ記憶装置2−1に、B2はデータ記憶装置2−2に、…、B16はデータ記憶装置2−8にというように記憶する。このような記憶の方式は、前述したようにストライピングと呼ばれ、同一のデータに対して同時に多数がアクセスすることを可能にするための技法として知られている。
【0090】
ストライピングを行うために連続データを複数のブロックに分割する場合、分割の単位のとり方には種々の方式がある。例えば、連続データを一定の大きさに分割する方式、その場合に分割の単位をデータ記憶装置に用いるディスク装置等の読み出しの単位となる大きさに合わせる方式、音声や映像などの連続データを再生した場合に一定の再生時間になるような単位で分割する方式、連続データがMPEGのデータ構造を持つ場合にGOPなどMPEGのデータ構造として意味のある切れ目で分割する方式など様々のものがある。
【0091】
なお、図2では、図3に示した1つの連続データをデータ記憶装置にストライピングを行って記憶する例を示しているが、実際には、連続データサーバ装置内に、図2と同様の方法で、複数の連続データをデータ記憶装置2にブロック単位で記憶することができる。
【0092】
以下、図2のような構成を有する連続データサーバ装置に対しネットワーク等を介して図3に示した連続データへのアクセス要求が与えられ、この要求が中央制御装置10に伝えられた場合の動作を、1つの連続データへのアクセス要求について説明する。このときの中央制御装置10の動作の流れを図4のフローチャートに示す。
【0093】
なお、B1、B2、B3、B4のように同時に扱うブロックの集まりを、ブロックグループと呼ぶ。また、各バッファ記憶装置8−1〜8−8中で図2のようにダブルバッファとして使う2つのバッファ領域をバッファa、バッファbと呼ぶ。
【0094】
まず、中央制御装置10は、アクセス要求のあった連続データを先頭のブロックから読み出すようにデータ記憶制御装置4−1〜4−4に指示する(ステップS1)。すなわち、データ記憶制御装置4−1〜4−4に対し、それぞれの先頭のブロックB1、B2、B3、B4を読み出してバッファ記憶装置8−1〜8−4の指定した番地(バッファa)に書き込むように指示する。
【0095】
各データ記憶制御装置4−1〜4−4の読み出し処理が終了すると、図5に示すようにバッファ記憶装置8−1〜8−4に連続データのブロックB1、B2、B3、B4がそれぞれ書き込まれる。
【0096】
ブロックB1、B2、B3、B4がバッファ記憶装置8−1〜8−4に書き込まれると、中央制御装置10は、バッファ記憶装置8−1〜8−4に書き込まれたB1からB4まで順に通信制御装置6−1に送り出すよう指示を出す(ステップS3)。
【0097】
通信制御装置6−1は、指示されたバッファ記憶装置8−1〜8−4に書き込まれているデータを、指示された転送先に対して送信する。通信制御装置6が、イーサネットのようなネットワークの場合は、ブロックの内容をパケットにして指示されたアドレスへ送り出す。通信制御装置6が、ケーブルテレビ同軸ケーブルのような場合は、指示されたデータを定められた転送レートで順に送り出す。
【0098】
さて、通信制御装置6−1がB1、B2、B3、B4の順に送り出している間に、中央制御装置10は、データ記憶制御装置4−1〜4−4に対し、それぞれの次のブロックB5、B6、B7、B8を読み出してバッファ記憶装置8−1〜8−4の指定した(先程とは別の)番地(バッファb)に書き込むように指示する(ステップS4)。
【0099】
この読み出しが終了すると、各バッファ記憶装置8−1〜8−4の内容は図6のようになる。
【0100】
通信制御装置6−1によるB1、B2、B3、B4の送り出しが終了すると、中央制御装置10は、通信制御装置6−1に対して、バッファ記憶装置8−1〜8−4に書き込まれている次のブロックグループをB5からB8まで順に送り出すように指示を出す(ステップS7)。
【0101】
通信制御装置6−1がB5、B6、B7、B8を送り出している間に、中央制御装置10は、データ記憶制御装置4−1〜4−4に対して、それぞれの次のブロックB9、B10、B11、B12を読み出すように指示する(ステップS8)。
【0102】
ブロックB9、B10、B11、B12の読み出しが終了すると、バッファ記憶装置8−1〜8−4の内容は図7のようになる。
【0103】
そして、これ以降、上記したような動作が、連続データの送り出し完了まで繰り返して行われる。
【0104】
以上は、説明を簡潔にするために、1ユーザからの要求に対する応答について、その手順を追って行ったものであり、1つのデータ記憶制御装置2は1つの連続データについての読み出しだけを行い、1つのバッファ記憶装置8は1つの連続データのブロックのみを記憶し、1つの通信制御装置6は1つの連続データの送り出しのみを行う場合について説明した。しかし、本実施形態の連続データサーバ装置は、複数のユーザからの要求に同時に応答することが可能であり、1つのデータ記憶制御装置2が複数の連続データについての読み出しを同時に行なうことができ、1つの通信制御装置6が複数の連続データのブロックの送り出しを同時に担当できるようにし、あるいは各バッファ記憶装置8が複数の連続データのブロックを同時に記憶できるように、中央制御装置10が全体のデータの流れを制御することで容易に実現できる。
【0105】
次に、バッファ管理方式について説明する。
【0106】
図2の連続データサーバ装置では、データ記憶制御装置4と通信制御装置6の間のバッファ記憶装置8は、図8に示すような管理方式を用いた。すなわち、図8において、通信制御装置6−1がバッファ記憶装置8−1〜8−4上のa側の領域R1、R2、R3、R4からデータを読み出して送り出している間に、データ記憶制御装置4−1〜4−4は、バッファ記憶装置8−1〜8−4上のb側の領域R5、R6、R7、R8にデータを書き込む。通信制御装置6−1がバッファ記憶装置8−1〜8−4上のa側の領域R1、R2、R3、R4のデータの送り出しを完了すると、バッファ記憶装置8−1〜8−4上の領域R1、R2、R3、R4と領域R5、R6、R7、R8の役割は入れ替わり、データ記憶制御装置4−1〜4−4は、バッファ記憶装置8−1〜8−4上のa側の領域R1、R2、R3、R4にデータを書き込み、通信制御装置6−1はバッファ記憶装置8−1〜8−4上のb側の領域R5、R6、R7、R8からデータを読み出して送り出す。
【0107】
このようなバッファ管理方式は、データ記憶制御装置4−1〜4−4の間でRAIDの技法を行なう場合に有効である。RAID技法は、ストライピング技法を利用し、ディスク装置の故障に対処できるようにしたものであり、n台のディスク装置にストライピングを行っている場合、n台のディスクに記憶したデータの排他的論理和をとり、その値をパリティとしてn+1台目のディスクに記憶することにより、n+1台のディスク装置の内の1台が故障した場合でも、他のディスク装置のデータの排他的論理和を計算することで復旧できるものである。
【0108】
一方、複数のデータ記憶制御装置4の間でRAIDを行わない場合は、図9に示すようなより単純なバッファ管理方式を用いることができる。すなわち、通信制御装置6−1がバッファ記憶装置8−1上の領域R1からデータの送り出しを行っている間に、データ記憶制御装置4−2はバッファ記憶装置8−2上の領域R2にデータの読み込みを行う。通信制御装置6−1がバッファ記憶装置8−2上の領域R2からデータの送り出しを行っている間に、データ記憶制御装置4−3はバッファ記憶装置8−3上の領域R3にデータの読み込みを行う。同様に、通信制御装置6−1がバッファ記憶装置8−3上の領域R3からデータの送り出しを行っている間に、データ記憶制御装置4−4はバッファ記憶装置8−4上の領域R4にデータの読み込みを行う。このような操作を、以降同様に繰返して行く。
【0109】
また、RAIDを行う場合には、図10に示すようなバッファ管理を行うこともできる。図10では、データ記憶制御装置4−1〜4−4が1つのRAIDのグループを組み、さらにデータ記憶装置4−5〜4−8が別のRAIDのグループを組んでいるものとする。このとき、通信制御装置6−1がバッファ記憶装置8−1〜8−4の領域R1、R2、R3、R4からデータを送り出ししている間に、データ記憶装置4−5〜4−8は、バッファ記憶装置8−5〜8−8の領域R5、R6、R7、R8にデータの読み込みを行う。領域R1、R2、R3、R4からのデータの送り出しが完了すると、今度は逆に、通信制御装置6−1がバッファ記憶装置8−5〜8−8の領域R5、R6、R7、R8からデータを送り出している間に、データ記憶装置4−1〜4−4は、バッファ記憶装置8−1〜8−4の領域R1、R2、R3、R4にデータの読み込みを行う。
【0110】
以上のように、本実施形態の連続データサーバ装置では、すべてのデータ記憶制御装置と通信制御装置の組に対して、その間のデータの受け渡し専用のバッファ記憶装置を設けたので、データ記憶制御装置とバッファ記憶装置の間のデータパスおよびバッファ記憶装置と通信制御装置の間のデータパスの多重度を上げることができ、連続データへの同時アクセスユーザ数を増加させることが可能になる。
【0111】
各データ記憶制御装置と各通信制御装置をそれらがアクセスする必要のあるバッファ記憶装置のみと接続するようにすれば、各データパスが専用にバスを使用できるのでより効果的である。
【0112】
従来、本実施形態と同様の転送能力を得ようとする場合、同一の連続データを多数のデータ記憶装置に記憶させたり、クロスバスイッチやATMのような高価なスイッチやネットワークを使ったりしなければならず、非常にコストがかかった。一方、本実施形態によれば、各データ記憶制御装置と各通信制御装置に対してバッファ記憶装置をマトリクス状に結合するだけなので、特殊なスイッチやネットワークを必要とせず、連続データのコピーを持つ必要もなくなる。また、従来のように例えばクロスバスイッチを用いて複数のデータ記憶制御装置とバッファ記憶装置を接続する場合、同時に複数のデータ記憶制御装置からバッファ記憶装置への書き込みを調停する回路が必要であったが、本実施形態では、バッファ記憶装置がその機能を果たしてくれるので、調停回路を設ける必要はない。そのため、従来より小さいコストで同時に多数の連続データの送り出しを行う連続データサーバ装置を構成することができる。
【0113】
また、各バッファ記憶装置はひとつのデータ記憶制御装置とひとつの通信制御装置に接続されるため、バッファ記憶装置へのアクセスに対するアービトレーションは非常に簡単になる利点がある。
【0114】
また、連続データを複数のデータ記憶制御装置の管理するデータ記憶装置にストライピングして記憶している場合、ストライピングを行っている連続データをバッファ記憶装置を介してひとつの通信制御装置に集める必要があるが、本実施形態の連続データサーバ装置では、バッファ記憶装置は単にバッファ記憶としての働きだけではなく、データ記憶制御装置と通信制御装置の間を接続するクロスバスイッチとしての役割を果たしている。
【0115】
次に、図1の連続データサーバ装置の構成を拡張した例を図11に示す。
【0116】
ここで、図1に示した構成は、m台のバッファ記憶装置8とデータ記憶制御装置4を接続するバス20には、データ記憶制御装置4を1台だけ接続し、n台のバッファ記憶装置8と通信制御装置6を接続するバス21には、通信制御装置6を1台だけ接続するものであったが、本発明は、複数のデータ記憶制御装置4によりバス20を共有した場合にも適用可能である。あるいは、複数の通信制御装置6によりバス21を共有しても構わない。また、複数のデータ記憶制御装置4によりバス20を共有するとともに、複数の通信制御装置6によりバス21を共有する構成も可能である。そのような構成例を図11に示す。なお、図11では、全バスについて同じ共有の仕方をしているが、バスごとに、接続するデータ記憶制御装置4や通信制御装置6の台数を適宜設定して構わない。また、n個の記憶制御装置とm個の通信制御装置から専用に用いられるバッファと、l個の記憶制御装置(l≠n)とk個の通信制御装置(k≠m)から専用に用いられるバッファが混在しても良い。
【0117】
この例の場合、中央制御装置10aは、前述した中央制御装置10と同様の機能である。バス20は、それに接続されたデータ記憶制御装置4同士の間でアクセスの競合が発生した場合の調停を行なう機能を持つ。21は、それに接続された通信制御装置6同士の間でアクセスの競合が発生した場合の調停を行う機能を持つ。
【0118】
次に、図11の連続データサーバ装置の構成をさらに拡張した例を図12に示す。
【0119】
この連続データサーバ装置では、データ記憶制御装置4とバッファ記憶装置8を接続しているバス20を複数本束ね、それらをセレクタ23を介して1つのバッファ記憶装置8に接続するようにしている。セレクタ23は、データ記憶制御装置4の接続されている複数のバス20からのバッファ記憶装置8に対するアクセスリクエストを調停するために、ある時点で1つのバスを選択的にバッファ記憶装置8に接続する機能を持つ。これにより、データ記憶制御装置4の接続されている複数のバス20が1つのバッファ記憶装置8を共有することができる。
【0120】
バッファ記憶装置8上のバッファ領域は、複数のストリーム間で共有して使い回すこともできるし、各ストリームにバッファ領域を固定的に割り付けて使用することもできる。異なるストリーム間でバッファ領域を使い回す場合、各ストリームがバッファ領域の使用を開始してから終了するまでの時間をストリーム間で重ならないようにスクジューリングしなければならないが、1つのストリームが同じバッファ領域を占有できる場合はこのスケジューリングが非常に単純になる。そのため、バッファ管理の観点からは、同じストリーム間でバッファ記憶装置8上のバッファ領域を使い回すことが望ましい。しかし、これを実現するためには、データ記憶制御装置4とバッファ記憶装置8とを接続するバス20が増加すれば、それに比例してバッファ記憶装置8の容量も増やす必要がある。そこで、図12のように、複数のバス間でバッファ記憶装置8を共有することで、バッファ記憶装置8の容量の増加を防ぐことが可能になる。
【0121】
なお、データパス21には通信制御装置6を1台だけ接続するようにしても良いし、複数の通信制御装置6によりデータパス21を共有しても構わない。データパス20にはデータ記憶制御装置4を1台だけ接続するようにしても良いし、複数のデータ記憶制御装置4によりデータパス20を共有しても構わない。また、n個の記憶制御装置とm個の通信制御装置から専用に用いられるバッファ記憶装置と、l個の記憶制御装置(l≠n)とk個の通信制御装置(k≠m)から専用に用いられるバッファ記憶装置が混在しても良い。
【0122】
この例の場合、中央制御装置10bは、前述した中央制御装置10と同様の機能である。
【0123】
次に、バッファ記憶装置8の構成について説明する。
【0124】
バッファ記憶装置8は、データ記憶制御装置4によるデータ書き込みに使用されるポートと、通信制御装置6によるデータ読み出しに使用されるポートを持つメモリである。
【0125】
バッファ記憶装置8としては、2ポートメモリを用いることができる。例えば図13に示すように、2ポートメモリ30は、データ記憶制御装置4が書き込むためのアドレスおよびデータを指定する端子と必要に応じて書き込みやチップセレクト等の制御端子を持つとともに、通信制御装置6が読み出すためのアドレスおよびデータ端子と必要に応じてチップセレクト等の制御端子を持つ。
【0126】
2ポートメモリは、書き込みポートと読み出しポートを1つずつ持つものであるので、例えば広く使われている2つの読み出し書き込み兼用ポートを持つ2ポートメモリを利用し、一方は書き込み専用、もう一方は読み出し専用にして使うことで、2ポートメモリと同等の働きをさせることは容易である。
【0127】
また、2ポートメモリの構成方法には他にもさまざまな手法を用いることができる。
【0128】
例えば、図14は、通常の1ポートのメモリを使って2ポートメモリを構成する方式を示している。データ記憶制御装置からの書き込み要求と通信制御装置からの読み出し要求はメモリコントローラ70が調停してどちらかをメモリ71に指示する。2つのアクセス要求がぶつかった場合は一方を待たせる。
【0129】
図15は、通常の1ポートのメモリを2つ使って2ポートメモリを構成するものであり、基本的には図14の例と同様に、データ記憶制御装置からの書き込み要求と通信制御装置からの読み出し要求はメモリコントローラ80が調停してどちらかをメモリ81やメモリ82に指示する。2つのアクセス要求がぶつかった場合は一方を待たせる点も同様である。しかし、ここでは2つメモリ81,82を使い、一方が使用中でも他方に対するアクセス要求であれば同時にアクセスできるので、同時に発生した2つのアクセス要求がぶつかって一方が待たされる確率を減らすことができる。
【0130】
もちろん、図13、図14、図15に示したような2ポートメモリは、通常のメモリと同様に、それらをマルチバンクにしてインタリーブすることで、読み出しや書き込みの速度を向上させることができる。
【0131】
ここで、図16に、2ポートメモリ30をバッファ記憶装置として用いた例を示す。ただし、図中、データ記憶装置2と中央制御装置10を省略してある。図中の2ポートメモリ30のブロック内に記した符号Mi,j (i=1〜n、j=1〜m)は、当該2ポートメモリ30がデータ記憶制御装置4−iと通信制御装置6−jに専用に接続されていることを表している。
【0132】
データ記憶制御装置4−iからは、バッファ記憶装置Mi,1 、Mi,2 、…、Mi,m に対して書き込みができる。このとき、データ記憶装置4−iから見たアドレス空間は、例えば図17のように、Mi,1 、Mi,2 、…、Mi,m が適当な番地にマッピングされるように構成することができる。
【0133】
一方、通信制御装置6−jからはバッファ記憶装置M1,j 、M2,j 、…、Mn,j に対して読み出しができる。このとき、通信制御装置jから見たアドレス空間は、例えば図18のように、M1,j 、M2,j 、…、Mn,j が適当な番地にマッピングされるように構成することができる。
【0134】
次に、図19に示すような2ポートメモリ30aを用いた場合のバッファ記憶装置の構成方式について詳しく説明する。図19の2ポートメモリ30aは、データ記憶制御装置4からの書き込みのためにアドレス端子Ain、データ端子Din、書き込み信号端子Wを持つとともに、通信制御装置6からの読み出しのためにアドレス端子Aout、データ端子Doutを持つものとする。Ain、Din、Aout、Doutは、実際には、複数のビット幅を持つ。
【0135】
図20に、データ記憶制御装置とバッファ記憶装置の接続例を示す。これは、図16の構成の一部分を抜き出して示したものに相当する。
【0136】
図19の2ポートメモリ30aを用いたバッファ記憶装置を示してあり、2ポートメモリMi,1 、Mi,2 、Mi,3 は、図示しないデータ記憶制御装置4−iと図示しない3つの通信制御装置6−1,6−2,6−3の各組に対して設けられたものである。図中、36〜38は、AND回路である。
【0137】
このような構成において、アドレスの上位をデコーダ32によりデコードして2ポートメモリMi,1 、Mi,2 、Mi,3 を異なるアドレスに対応させ、それぞれの2ポートメモリMi,1 、Mi,2 、Mi,3 のマッピングされたアドレスに対して書き込み信号がアクティブになったときのみ、対応する2ポートメモリのW端子がアクティブになり書き込みが行われる。
【0138】
図21に、通信制御装置とバッファ記憶装置の接続例を示す。これは、図16の構成の一部分を抜き出して示したものに相当する。
【0139】
図19の2ポートメモリ30aを用いたバッファ記憶装置を示してあり、2ポートメモリM1,j 、M2,j 、M3,j 、M4,j は、図示しない4つのデータ記憶制御装置4−1,4−2,4−3,4−4と図示しない通信制御装置6−jの各組に対して設けられたものである。図中、45〜48は、ゲート回路である。
【0140】
このような構成において、アドレスの上位をデコーダ40によりデコードして、2ポートメモリM1,j 、M2,j 、M3,j 、M4,j がマッピングされているアドレスが選ばれた時に、その2ポートメモリからのデータを通信制御装置6−jに送る。
【0141】
上記のような構成を有する連続データサーバ装置でRAIDを行う場合には、通信制御装置とバッファ記憶装置の接続を工夫することでパリティの計算を自動的に行うことができる。図22は、これを実現する接続方式の例を示している。
【0142】
この例は、図21の構成に、2入力の排他的論理和回路50〜53、AND回路54〜57、4入力の排他的論理和回路58を設けただけであり、非常に簡易な構成である。ここでは、2ポートメモリM1,j 、M2,j 、M3,j 、M4,j には、ブロックB1、B2、B3、B4が書き込まれており、このうちのひとつがパリティであるとする。例えば、B4がパリティであり、B4の内容は、B1、B2、B3のデータの排他的論理和であるとする。
【0143】
さて、信号E1、E2、E3、E4は、それぞれのデータ記憶制御装置4−1〜4−4あるいはそれらに接続されているデータ記憶装置2の故障によってデータが正しくないことを示す障害発生検出信号であるとする。この障害発生検出信号E1、E2、E3、E4は、例えば、中央制御装置10がいずれかのデータ記憶装置2あるいはデータ記憶制御装置4等の障害の発生を検出したときに対応する信号をアクティブにする実現方式や、データ記憶制御装置4が正しく動作できないと判断したときに自ら障害発生検出信号をアクティブにする方式、データ記憶制御装置4からバッファ記憶装置8への書き込みを監視していて一定時間以上あるいは前回の読み出し以降書き込みが無ければ障害が発生したと判断して障害発生検出信号をアクティブにする方式などを用いることができる。
【0144】
図22の回路では、すべての障害発生検出信号E1、E2、E3、E4がアクティブでない場合は、図21と同様に2ポートメモリからの出力データをそのまま(すなわちパリティであるB4を除いてB1〜B3の順に)通信制御装置6−jに渡す。しかし、読み出そうとしている1つの2ポートメモリ(例えばM1,j )に対応する障害発生検出信号がアクティブな場合には、読み出そうとする2ポートメモリ以外のすべての2ポートメモリ(例えばM2,j 、M3,j 、M4,j )のデータの排他的論理和をデータとして通信制御装置に渡す。すなわち、この段階で正しくないデータをパリティを使って回復させている。
【0145】
このような単純なパリティは、同時にひとつの障害が発生した場合にしか対応できないが、より高度な誤り訂正能力を持つ符号化方式を使うと、同時に複数の誤りがある場合にも対応できるのは明らかである。
【0146】
次に、バッファ記憶装置にVRAMを使った例について説明する。
【0147】
バッファ記憶装置には、図23に示すようなVRAMと呼ばれるメモリ素子を用いることもできる。VRAM90は、パラレルの書き込みポート(読み出しができるものもある)とシリアルの読み出しポートを持つ2ポートメモリである。図23に示すように、VRAM90を、パラレルのポートをデータ記憶制御装置4からの書き込み用に、シリアルのポートを通信制御装置6からの読み出し用に使う。各VRAMからのシリアル出力は、図24に示すように、通信制御装置6に接続し、通信制御装置6は必要なVRAMからのデータを選択して送り出すようにすれば、前述してきたようなバッファ記憶装置に2ポートメモリを使ったものと同様な連続データサーバ装置を構成することができる。
【0148】
次に、複数の既存の計算機を用いて本実施形態の連続データサーバ装置を実現した例について説明する。そのような連続データサーバ装置の構成の一例を図25に示す。
【0149】
この例では、計算機Aが中央制御装置10の働きをし、計算機B1、B2、…、Bnがデータ記憶制御装置4−1〜4−nの働きをし、計算機B1、B2、…、BnにSCSIバス100などのインタフェースで接続した磁気ディスクがデータ記憶装置2の働きをし、計算機C1、C2、…、Cmが通信制御装置4−1〜4−nの働きをし、計算機C1、C2、…、Cmの持つATMインタフェースによって連続データの送り出しを行う。
【0150】
バッファ記憶装置8には、2ポートメモリを用い、各2ポートメモリは対応する計算機Biと計算機Cjのパス上に配置する。中央制御装置10の働きをする計算機Aは、イーサネットなどのバス101によって計算機B1、B2、…、Bn、C1、C2、…、Cmに動作を指示する。
【0151】
本実施形態は、連続データを複数のデータ記憶装置2にストライピングやさらにRAIDを行って記憶させた場合に有効であるが、ストライピングを行わない場合においてもデータ記憶制御装置4から通信制御装置6へ至るデータパスのデータ転送能力を大きくできるので有効である。
【0152】
なお、バッファ記憶装置8にVRAMを用いる場合、前述した図24に示すように各VRAMからのシリアル出力を通信制御装置6に接続し、通信制御装置6は必要なVRAMからのデータを選択して送り出すようにすれば良い。
【0153】
バッファ記憶装置8に対して、データ記憶制御装置4と通信制御装置6の両方から読み書き可能にしておくことで、ネットワークから来たデータを通信制御装置6が受けてバッファ記憶装置8に書き込み、それをデータ記憶制御装置4が読み出してデータ記憶装置2に書き込むことが可能である。
【0154】
さて、以下では、複数のディスク装置に一連のデータを所定の単位(例えばブロック単位)で分散して格納しておき、必要時に該一連のデータを該所定の単位で各ディスク装置から読出すようなシステムにおけるディスク装置のエラーに対処するためにRAIDを取り入れた実施形態について説明する。
【0155】
前にも触れたように、ディスク装置のエラーを訂正する方法としてRAIDが知られている(例えば、´A Case for Redundant Arrays of Inexpensive Disks(RAID)´,David A. Patterson, Garth Gibson, and Randy H. Katz, ACM SIGMOD Dec.´88 vol.17 No.3 pp.109−116)。RAIDは、冗長符合化を用いて複数のディスク装置に符合化したデータを分散して配置し、ディスク装置の故障があった場合に元の情報を復元するための技術である。符合化したデータを用いて元の情報を復元するためには、各ディスクの内容の排他的論理和あるいは排他的論理積をとることにより復元される。
【0156】
RAIDを実施するために排他的論理和等をとる方法としては、(1)プロセッサを用いて行なう方法と、(2)故障またはエラー検出された場合、ディスクからのデータを排他的論理和回路等に並列に入力し、高速に正しい解を求める方法とがある。
【0157】
本実施形態では、プロセッサを用いる方法と異なり実行中プロセッサの仕事を妨げるおそれがなく、また並列に排他的論理和等をとる回路を用いる方法と異なり配線の集中や回路の複雑化を引き起こさないようにするために、専用のハードウェアの構成を工夫したものである。
【0158】
以下、そのような2つの実施形態について説明する。なお、以下では、パリティとして排他的論理和を用いる構成について説明するが、言うまでもなく排他的論理積を取る構成することも容易に実施可能である。
【0159】
まず、ディスクの故障の訂正を高速に行なうための装置を少ないハードウェア構成で実現した実施形態について図26〜図32を参照しながら説明する。
【0160】
本実施形態では、まず、ある情報についてRAIDのために用いるディスク装置の接続口の数(例えば図1、図2のデータ記憶制御装置4あるいは図26のディスク制御部104の台数に相当;図2では4、図26では5)をn+1とすると、格納する情報をnのグループに分割する。グルーピングにあたっては、情報は固定されたデータ長のブロックに分割される。
【0161】
n個のグループの各々から同時に読み出すブロックを1個ずつ合計n個取り出して組にする。同一組のn個に対して排他的論理和をとった結果を新たなブロックとして合計n+1個のブロックで組とする。n+1個のブロックをそれぞれ接続口につながるn+1台のディスク装置のいずれかに格納してRAIDの組とする。
【0162】
n+1台のディスク装置が接続される接続口には、それぞれ対応するバッファメモリが存在し、対応関係にある接続口とバッファメモリとの間にはそれぞれ専用のハードウェアである演算部を接続するとともに、n+1台の演算部は上下に直列に接続されるように結合する。
【0163】
ここで、あるディスク装置に故障またはエラーが検出された場合、接続口から入力され対応するバッファメモリに格納されるデータにはエラーがあると考えられる。従って、そのディスク装置に対応するバッファメモリを読み出す場合には、該バッファメモリの内容は正しくないと考えられるので、対応する演算部は、当該バッファメモリからデータを読み出す代わりに前段の演算部の出力をそのまま出力し、他の演算部は前段の演算部の出力と対応するバッファメモリを読みだした値との排他的論理和を出力する。各バッファメモリの内容はRAIDの組をなしているので、演算部によって計算された、故障またはエラーに対応するバッファメモリ以外のバッファメモリの内容の排他的論理和が、正しい値として出力される。
【0164】
故障またはエラーのない正常なディスク装置に対応するバッファメモリを読み出す場合には、対応する演算部は、当該バッファメモリからデータを読み出して後段に渡し、他の演算部は前段の演算部の出力をそのまま出力する。これにより、ディスク装置の接続される接続口から故障またはエラーのデータが入力されない場合には、所望のバッファメモリから読みだした値を出力させることができる。
【0165】
以上のように、データに誤りがある場合は、演算部により正しいデータを出力し、データに誤りがない場合は、演算部をバイパスすることにより正しいデータを得ることができる。
【0166】
次に、本実施形態をより詳しく説明する。
【0167】
図26は、本実施形態に係るシステムの全体構成である。また、図27に、システム全体をコントロールする中央制御部110の制御の流れを示す。
【0168】
図26に示すように、本システムは、RAIDの組をなすデータを記憶するディスク装置102から所望の連続データを読み出す複数のディスク制御部104と、各ディスク制御部104によって読み出されたデータを保持するために、各ディスク制御部104に対応して設けられた複数のバッファメモリ108と、各バッファメモリ108のメモリコントローラ107と、各ディスク制御部104とメモリコントローラ107およびバッファメモリ108との間に接続された演算部103と、システム全体をコントロールする中央制御部110とを備えているとともに、演算部103は直列に接続している。また、演算部103は、排他的論理和演算回路161、マルチプレクサ162、デコード部163から構成される。
【0169】
図26では、4つのディスクに対して1つのパリティを備えるシステムを示しているが、パリティの比は自由であり、例えば8つのディスクに対して1つのパリティを備えるなど種々の構成が可能である。
【0170】
ディスク制御部104の接続口には、ディスク装置102を複数台数接続することが可能である。例えば、ディスクインタフェースとしてSCSIを使用すれば7つのデバイスまでを一本のSCSIに接続することが可能である。また、ディスク制御部104に複数のSCSIを接続することで、さらに多数のディスク装置102を接続することも可能である。
【0171】
メモリコントローラ107は、ディスク装置102からのデータをバッファメモリ108の指定されたアドレスに格納するとともに、バッファメモリ108の指定されたアドレスから読出したデータを演算部103に与えるためのものである。
【0172】
ディスク制御部104は、メモリコントローラ107を介してバッファメモリ108にデータを転送する。
【0173】
中央制御部110は、要求されたデータの存在するディスク装置102のつながるディスク制御部104に命令を送るとともに、RAIDの組になる情報の蓄積されているディスク装置102からRAIDの組になる情報を読み出すために対応するディスク制御部104に命令を送る。
【0174】
また、中央制御部110は、RAIDの組になる情報がバッファメモリ108に全て揃うのを待ち、RAIDの組になる情報が全て揃ったらバッファメモリ108から読みだし動作を始める。
【0175】
中央制御部110は、バッファメモリ108を読み出すとき、要求に基づき、必要な情報が蓄積されている各ディスク装置102の接続される接続口に対応する各バッファメモリ108に対するDECODE_X信号を1つづつ順次アクティブにしていく。
【0176】
ディスク制御部104は、中央制御部110から指示された命令に基づきディスク装置102の制御を行なうとともに、ディスク装置102の故障またはエラーが検出された場合は、ERROR_X信号を中央制御部110に対して送り知らせる。
【0177】
なお、ディスク装置102からの読み出しの応答が規定時間内に終らない場合には、ディスク装置102のエラーとみなして同様にERROR_X信号を中央制御部110に対して送り、他のディスクの情報から規定時間内に終らなかったディスク装置102の内容を復元するようにしても良い。
【0178】
また、ディスク制御部104が自分の故障を検出した場合もディスク装置102のエラーとみなして、同様にERROR_X信号を中央制御部110に対して送り知らせても良い。
【0179】
ERROR_X信号は、ディスク制御部104それぞれに対して用意され(図26中のERROR_0〜ERROR_4)、どのディスクの接続口に故障またはエラーが発生したか識別できる。
【0180】
図28には、ERROR_X信号およびDECODE_X信号からHITANY信号を生成する回路を示す。図28のように、この回路は、ERROR_X信号およびDECODE_X信号を入力とするAND回路181〜182と、全AND回路の出力を入力とするOR回路186からなる。
【0181】
HITANY信号は、読み出そうとする情報が蓄積されていたディスク装置102に故障またはエラーが起こったことを示す信号で、RAIDによる情報の復元が必要なことを示している。
【0182】
図29には、演算部103の構成を示す。
【0183】
排他的論理和演算回路131には、直列に接続された前段の演算部103からの出力と、マルチプレクサ132からの出力が与えられる。
【0184】
マルチプレクサ132のA入力には0が、もう一方のB入力にはメモリコントローラ107を介してバッファメモリ108の出力が接続され、デコード部133からの制御信号により切替えられる。
【0185】
A入力に切替えられた場合は、前段の演算部103からのデータをそのまま後段に伝えることになる。一方、B入力に切替えられた場合は、前段の演算部103からのデータとバッファメモリ108から読出したデータの排他的論理和を演算した結果を後段に伝えることになる。
【0186】
デコード部133は、ERROR_X、DECODE_X、HITANYの値に応じてマルチプレクサ132を切替えるための制御信号を生成する回路であり、その論理を図30に示す。
【0187】
図30のケース(1)は、対応するバッファメモリ108からデータを読み出すべき場合に、対応するディスク装置102に故障またはエラーが検出されたケースであり、A入力に切替えらる。
【0188】
ケース(2)は、対応しない他のバッファメモリ108からデータを読み出す場合で、自身に対応するディスク装置102にも該他のバッファメモリ108に対応するディスク装置102にも故障またはエラーが検出されていないケースであり、A入力に切替えらる。
【0189】
ケース(3)は、対応しない他のバッファメモリ108からデータを読み出す場合に、自身に対応するディスク装置102には故障またはエラーが検出されず、該他のバッファメモリ108に対応するディスク装置102に故障またはエラーが検出されたケースであり、B入力に切替えらる。
【0190】
ケース(4)は、対応するバッファメモリ108からデータを読み出すべき場合で、対応するディスク装置102に故障またはエラーのが検出されていないケースであり、B入力に切替えらる。
【0191】
ケース(5)は、対応しない他のバッファメモリ108からデータを読み出す場合で、自身に対応するディスク装置102に故障またはエラーが検出されたが、該他のバッファメモリ108に対応するディスク装置102には故障またはエラーが検出されていないケースであり、A入力に切替えらる。
【0192】
図26のように、演算部103の直列に接続された初段は、入力が0に固定されている。一方、演算部103の終段は、対応するバッファメモリ108から読出したデータまたはRAIDにより復元したデータが現れる出力端子となる。
【0193】
上記のような構成において、中央制御部110は、外部からデータ読み出しの要求を受け付けると(ステップS11)、要求されたデータについてRAIDの組が存在するディスク装置102を接続しているディスク制御部104に対して該当データをバッファメモリ108へ転送するよう転送命令を送る(ステップS12)。転送命令を受けたディスク制御部104は、要求されたデータのRAIDの組になるデータをディスク装置102から読出し、対応するバッファメモリ108に格納する。
【0194】
バッファメモリ108へのデータ転送が完了すると(ステップS13)、バッファメモリ108からのデータ読出しを行なう(ステップS14)。
【0195】
以下、ステップS4のバッファメモリ108からのデータ読出しについてさらに具体的に説明する。ここでは、図26中の#0〜#3の系統が元のデータであり、#4の系統がパリティーであるものとする。
【0196】
中央制御部110は、例えば#0のバッファメモリ108から#1、#2、#3というように、順番にバッファメモリ108からのデータ読みだしを行なうよう制御する。
【0197】
各バッファメモリ108からのデータ読みだしにおいては、中央制御部110の指令により各演算部103のマルチプレクサ103が夫々切替えられ、演算部103による演算結果が順次後段に渡され、最終段から結果が出力される。
【0198】
例えば、#0のバッファメモリ108からのデータ読みだしを行なう場合を考える。この場合、DECODE_0信号を1にし、他のDECODE_X信号を0にする。
【0199】
ここで、中央制御部110は、各ディスク制御部104から送られるERROR_X信号を監視しており、この情報が各演算部103の切替えに用いられる。
【0200】
#0のディスク装置102に故障またはエラーが検出されていない場合、ERROR_0信号は0となるので、HITANY信号は0になる。
【0201】
従って、#0の演算部103のデコード部133への入力は、ERROR_0信号=0、HITANY信号=0、DECODE_0信号=1となるので、#0の演算部103は上記したケース(4)のように動作し、0とバッファメモリ108からのデータの排他的論理和、すなわちバッファメモリ108からのデータをそのまま出力する。
【0202】
一方、他の系統の演算部103のデコード部133への入力は、ERROR_X信号=0、HITANY信号=0、DECODE_X信号=0となるので、各演算部103は上記したケース(2)のように動作し、入力をそのまま通過させる。
【0203】
このようにして、#0バッファメモリ108からのデータが出力される。
【0204】
一方、#0のディスク装置102に故障またはエラーが検出された場合、ERROR_0信号は1となるので、HITANY信号は1になる。
【0205】
従って、#0の演算部103のデコード部133への入力は、ERROR_0信号=1、HITANY信号=1、DECODE_0信号=1となるので、#0の演算部103は上記したケース(1)のように動作し、固定値0を出力する。
【0206】
一方、他の系統の演算部103のデコード部133への入力は、ERROR_X信号=0、HITANY信号=1、DECODE_X信号=0となるので、各演算部103は上記したケース(3)のように動作し、前段からの入力と対応するバッファメモリ108からのデータの排他的論理和を後段に伝える。
【0207】
この結果、#1〜#4のバッファメモリ108からのデータの排他的論理和が得られ、これが#0の系統の正しいデータとして出力される。
【0208】
上記のようにして、#0の系統のデータから#4の系統のデータが1つづつ順次読み出される。
【0209】
なお、ここでは排他的論理和を演算に用いているが、排他的論理積(排他的論理和の否定)を演算に使用した場合には、初段の演算部103および各演算部103のマルチプレクサ132のA入力に固定値として0を入力する代りに、1を入力する。
【0210】
上記した実施形態では演算部103を組合せ論理として記述しているが、演算部103間にパイプラインレジスタを配置することにより、高速なクロックでの動作が可能となる。
【0211】
以上の実施形態では、ディスク装置102からバッファメモリ108の転送と、バッファメモリ108からの読み出しを逐次的に行なう方法を説明したが、バッファメモリ108がダブルバッファを構成し、ディスク装置102からの転送とともにバッファメモリ108を読み出すことも可能である。
【0212】
また、ディスクの読み出しの一時的なエラーのためにディスク装置102がリトライ動作を行ない、アクセスが規定時間内に終らなかった場合に、ディスク制御部104はディスク装置102のエラーとしてERROR_X信号を立てて知らせることで、ディスク装置102の故障と等価に扱うことも可能である。
【0213】
次に、本実施形態の好ましい用途の一つとして、動画を含めたマルチメディアデータのサーバに用いた例について図31を参照しながら説明する。
【0214】
動画をディスク装置102にディジタルデータで記録する方法としては、動画を圧縮して記憶するMPEGなどの方法が知られている。ディスク装置102に記録されるデータは、ストライピングを用いて本実施形態のRAIDの組に記録すれば、バッファメモリ108上に読みだしたデータは動画の再生が連続している限り必ず読み出されるので、ディスクの読みだしに関して無駄がない。
【0215】
以下、図31を参照しながらストライピングしたマルチメディアデータの再生を説明する。
【0216】
図31の元データがMPEGのビデオストリームであるとすると、このデータをディスク装置102の読み出しのブロックの単位、例えば128KBごとに切ってRAIDの組とする。この例では、4つに切ってRAIDの組とする。それぞれのブロックには、4つに切った場合のグループの番号0から3までが対応している。
【0217】
RAIDの組にするために、パリティのブロックを0から3までのブロックから排他的論理和をとることで作成し、グループ4としておく。
【0218】
ディスク装置102からバッファメモリ108に転送すると、#0のバッファメモリにはグループ#0の情報が、#1のバッファメモリにはグループ1の情報が、#2のバッファメモリにはグループ2の情報が、#3のバッファメモリにはグループ3の情報が、#4のバッファメモリにはパリティ情報が入る。
【0219】
これを、#0のバッファメモリから順に読み出すと、前述した演算部103が働いて、読みだしデータは図31のように0、1、2、3の順に並んだストリームとして再生される。
【0220】
次に、本実施形態の好ましい用途の他の例として、ディスクを用いたデータベースサーバについて図32を参照しながら説明する。なお、図32中で、ディスクアレイ装置120は、図26のディスク装置102を除いた部分に相当する。
【0221】
例えば、図32のように、一つのデータベースをレコードごとに区切ってディスクに分散配置しておく。一般に、ディスクの転送速度はCPUの処理速度より遅いので、ディスクアレイ装置120を用いてディスク装置102を読み出すと、並列にデータを読み出すことの効果で、より高速なデータベースのアクセスが可能である。
【0222】
ディスクアレイ装置120の出力にデータベース処理を行なうデータベース処理装置121を配置し、検索、選択などのデータベース処理が可能である。
【0223】
以上のように本実施形態によれば、ディスクの故障を訂正するための装置が少ないハードウェア構成で可能である。また、ハードウェアで処理を行なうので高速に処理を行なうことができる。
【0224】
上記した手法は、図1等を用いて説明した先の実施形態に適用することができる。図1のシステムに適用する場合、ディスク装置102がデータ記憶装置2に対応し、ディスク制御部104がデータ記憶制御装置4に対応し、中央制御部110が中央制御装置10に対応する。また、図26に示されているバッファメモリ108は、図1の1台の通信制御装置6バッファ記憶装置8に接続されたバッファ記憶装置8に対応する。演算部103は、データ記憶制御部4とこれに対応する1または複数のバッファ記憶部8との間にそれぞれ接続する。このように適用した構成例を図45に示す。
【0225】
また、図11や図12のシステムに適用する場合、演算部103は、1つのバス20を共有するデータ記憶制御部4の群とこれに対応する1または複数のバッファ記憶部8との間にそれぞれ接続する。
【0226】
次に、ディスクに書き込むパリティの生成および故障したディスクを復元するための情報の生成を高速に行なうための装置を少ないハードウェア構成で実現した実施形態について図33〜図44を参照しながら説明する。なお、本実施形態は、図26〜図32を参照しながら説明した先の実施形態の作用効果を包含するものである。
【0227】
本実施形態では、まず、ある情報についてRAIDのために用いるディスク装置の接続口の数(例えば図1、図2のデータ記憶制御装置4あるいは図33のディスク制御部204の台数に相当;図2では4、図33では5)をn+1とすると、格納する情報をnのグループに分割する。グルーピングにあたっては、情報は固定されたデータ長のブロックに分割される。
【0228】
n個のグループの各々から同時に読み出すブロックを1個ずつ合計n個取り出し組にする。
【0229】
なお、後述するように、本実施形態の専用のハードウェアの働きによって、同一組のn個に対して排他的論理和がとられる。この結果を新たなブロックとして合計n+1個のブロックで組とする。そして、n+1個のブロックは、それぞれ接続口につながるn+1台のディスク装置のいずれかに格納されRAIDの組とされる。
【0230】
n+1台のディスク装置が接続される接続口には、それぞれ対応するバッファメモリが存在し、対応関係にある接続口とバッファメモリとの間にはそれぞれ専用のハードウェアである演算部を接続するとともに、n+1台の演算部は上下に直列に接続されるように結合する。
【0231】
上下に直列接続される各演算部は、パリティー生成、データ読み出しおよびパリティーによるデータの復元などを行なうために、
(1)直列に接続された隣接する演算部からのデータを排他的論理和をとりながらバッファメモリに書き込む機能と、
(2)下段からのデータをバッファメモリに書き込みながら上段におくる機能と、
(3)バッファメモリから読みだしたデータと上段の演算部のデータを排他的論理和をとりながら下段の演算部に送る機能と、
(4)バッファメモリから読みだしたデータと下段の演算部のデータを排他的論理和をとりながら上段の演算部に送る機能と、
(5)上段の演算部のデータを下段にバイパスする機能と、
(6)下段の演算部のデータを上段にバイパスする機能と、
(7)ディスク装置の接続する口からバッファメモリに書き込む機能と、
(8)バッファメモリから読み出してディスク装置の接続する口にデータを送り込む機能とを有する。
【0232】
各演算部は、必要に応じて上記機能のうちのいずれかを取る。
【0233】
ディスク装置にデータを書き込むときには、n−1個のブロックをそれぞれ最上段から順に対応するバッファメモリに書き込む。
【0234】
最後にn個目のブロックを最下段に書き込むときに、演算部を切替えて、最上段からn−1個まではバッファメモリから読みだしたデータと上段からのデータの排他的論理和をとって下段に出力し、最下段は演算部を切替えてバッファメモリに書き込みながらそのデータを上段に送るように設定する。n段目の演算部は、上段と下段のデータの排他的論理和がバッファメモリに書き込まれるように設定する。
【0235】
これにより、n段目のバッファメモリにパリティが生成されている。
【0236】
次に、n+1個のバッファメモリに生成されたデータをディスク装置に送る。
【0237】
ディスク装置のうち一つが故障した場合は、そのディスクを交換し、故障したディスク装置に入っていたデータを復元する必要がある。
【0238】
本実施形態では、データブロックをn+1個の組にしてそれぞれのデータブロックの排他的論理和が0になるように構成しているので、故障したディスク装置内のデータブロックは他のn個のデータブロックから復元できる。
【0239】
故障したディスク装置を交換したあと、故障していたディスク装置の接続される接続口以外の接続口から対応するバッファメモリに故障していたディスク装置に格納されていたデータブロックと組になるn個のデータをそれぞれ読みだし、次に、故障していたディスク装置の接続されていた口より上段の演算部をバッファメモリを読みだした値と上段の演算部の出力の排他的論理和をとって下段に送るように切替え、故障していたディスク装置の接続されていた口より下段の演算部をバッファメモリを読みだした値と下段の演算部の出力の排他的論理和をとって上段に送るように切替え、故障していたディスク装置の接続されていた口に対応する演算部を上段の演算部の出力と、下段の演算部の出力の排他的論理和をとってバッファメモリに書き込まれるように切替える。
【0240】
この結果、n+1個の組の内容は排他的論理和をとると0になるようになるので、故障した部分の復元ができる。
【0241】
次に、本実施形態をより詳しく説明する。
【0242】
図33は、本実施形態に係るシステムの全体構成である。
【0243】
図26に示すように、本システムは、RAIDの組をなすデータを記憶するディスク装置202から所望の連続データを読み出す複数のディスク制御部204と、各ディスク制御部204によって読み出されたデータを保持するために、各ディスク制御部204に対応して設けられた複数のバッファメモリ208と、各バッファメモリ208のメモリコントローラ207と、各ディスク制御部204とメモリコントローラ207およびバッファメモリ208との間に接続された演算部203と、システム全体をコントロールする中央制御部210とを備えている。また、演算部103は、上下に直列に接続されている。
【0244】
図33では、4つのディスクに対して1つのパリティを備えるシステムを示しているが、パリティの比は自由であり、例えば8つのディスクに対して1つのパリティを備えるなど種々の構成が可能である。
【0245】
ディスク制御部204の接続口には、ディスク装置202を複数台数接続することが可能である。例えば、ディスクインタフェースとしてSCSIを使用すれば7つのデバイスまでを一本のSCSIに接続することが可能である。また、ディスク制御部204に複数のSCSIを接続することで、さらに多数のディスク装置202を接続することも可能である。
【0246】
演算部203は、U端子、D端子、L端子、R端子の4つの端子を有し、U端子およびD端子により上下に直列に接続される。
【0247】
ディスク制御部204には、それぞれ演算部203がL端子で接続されている。演算部203のR端子には、それぞれメモリコントローラ207を介してバッファメモリ208が接続される。
【0248】
演算部203の最上段のU端子は0に固定されている。また、演算部203の最下段のD端子はデータが入出力される端子である。
【0249】
メモリコントローラ207は、ディスク装置204からのデータをバッファメモリ208の指定されたアドレスに格納するとともに、バッファメモリ208の指定されたアドレスから読出したデータを演算部203に与えるためのものである。
【0250】
ディスク制御部204は、演算部203からメモリコントローラ207を介してバッファメモリ208にデータを転送する。
【0251】
中央制御部210は、データ入力の要求、ディスクからの故障信号、ディスク交換が終ったことを示す信号を受け付け、各バッファメモリ208に対するデータ書き込みおよびデータ読出しの制御、各演算部203の機能の切替え制御、ディスク制御部204への命令の出力を行なう。また、ディスクの永久的な故障はその旨を外部に知らせる。
【0252】
図34に、上記(1)〜(8)の機能を有する演算部203の内部構成の一例を示す。
【0253】
図34に示すように、演算部203は、ゲート回路290〜293、AND回路294,299、排他的論理和演算回路(EXOR回路)295〜297、マルチプレクサ298からなる。
【0254】
ゲート回路290はUPOE_X信号により、ゲート回路291はDISKOE_X信号により、ゲート回路292はDNOE_X信号により、ゲート回路293はMEMOE_X信号により、それぞれ導通制御される。
【0255】
2入力のAND回路294の一方の出力には、MEMEN_X信号が入力される。
【0256】
2入力のAND回路299の一方の出力には、UPDIS_X信号が入力される。
【0257】
2入力のマルチプレクサ298は、BUFINSEL_X信号により切替え制御される。
【0258】
各演算部203は、パリティーの生成、正常データの読み出しおよびパリティーによるデータの復元を行なうために、各信号の値に応じて以下のような動作をする。
(1)U端子およびD端子からの入力の排他的論理和をとり、R端子から出力する(つまり、バッファメモリ208に与える)。
U端子から入力したデータが0の場合、D端子から入力したデータをそのままバッファメモリ208に書き込むことになる。
(2)D端子からの入力を、R端子から出力する(つまり、バッファメモリ208に与える)とともに、U端子に出力する。
(3)R端子から入力したデータ(つまり、バッファメモリ208から読みだしたデータ)とU端子からデータの排他的論理和をとり、D端子から出力する。
U端子から入力したデータが0の場合、バッファメモリ208から読みだしたデータをそのままD端子から出力することになる。
(4)R端子から入力したデータ(つまり、バッファメモリ208から読みだしたデータ)とD端子からデータの排他的論理和をとり、U端子から出力する。
D端子から入力したデータが0の場合、バッファメモリ208から読みだしたデータをそのままU端子から出力することになる。
(5)U端子から入力したデータをバイパスしてD端子から出力する。
(6)D端子から入力したデータをバイパスしてU端子から出力する。
(7)L端子から入力したデータをバイパスしてR端子から出力する。
これは、ディスク装置202の接続する接続口からのデータをバッファメモリ208に書き込むときに使われる。
(8)R端子から入力したデータをバイパスしてL端子から出力する。
これは、バッファメモリ208から読み出してディスク装置202の接続する接続口にデータを送り込むときに使われる。
(9)全端子について非導通状態とする。
【0259】
次に、本実施例の動作について図35〜図44を参照しながら説明する。図35、図37、図39、図41、図43にはそれぞれの動作における各演算部に与える各信号の値を示し、図36、図38、図40、図42、図44にはそれぞれの動作の概要を示すとともに、各動作において各演算部が上記(1)〜(9)のいずれの状態にあるかを示す。
【0260】
(1)まず、ディスク装置202への書き込みについて説明する。
【0261】
ディスク装置202に新しいデータを書き込む場合は、まず、データをn個の組に分割する。そして、1個目からn−1個目までのブロックを順次バッファメモリ208に書き込み(動作1)、n個目をn+1番目のバッファメモリ208に書き込むとともに、先に書き込んでおいた1個目からn−1個のブロックおよびn個目のブロックの排他的論理和をとり、n+1番目のバッファメモリ208に書き込む(動作2)。
【0262】
以下、動作1および動作2について具体的に説明する。
【0263】
<動作1>
書き込むデータは、4個の同じ長さのブロックに分割する。
【0264】
ブロック0は#0のバッファメモリに、ブロック1は#1のバッファメモリに、ブロック2は#2のバッファメモリのバッファメモリに順に書き込むように演算部203を制御部が切替える。
【0265】
図35には、#1のバッファメモリに書き込む場合の演算部203の信号を示す。
【0266】
図36には、#1のバッファメモリへの書き込みのデータパスを示す。
【0267】
<動作2>
ここでは、ブロック3を#4のバッファメモリへ書き込むと同時に、パリティーを生成し、#3のバッファメモリへ書き込む。
【0268】
このときに演算部203に与える信号は図37のようになる。図38には、このときの各演算部203の働きとデータの流れを示す。
【0269】
ブロック3は、#4の演算部が上記(2)の動作をすることにより、#4のバッファメモリに書き込まれる。
【0270】
また、このときに既に#0〜#2のバッファメモリに格納してあるブロック0〜2の排他的論理和が#2の演算部のD端子にあらわれ、これと#4の演算部のU端子にあらわれるブロック3の排他的論理和をとったものがパリティーとして#3のバッファメモリに書き込まれる。
【0271】
なお、#0〜#4のバッファメモリに書き込まれた、ブロック0、ブロック1、ブロック2、パリティー、ブロック3の各データは、それぞれ対応する#0〜#4のディスク装置に書き込まれる。なお、5つの演算部はすべて、上記の(8)の動作をとる。
【0272】
次に、ディスク装置202が永久的に故障した場合の修復について説明する。
【0273】
ディスク装置202からバッファメモリ208への読みだし時に、ひとつのディスク装置202の接続する接続口にディスク装置202の故障を示す信号が入力されたときは、故障に対応するディスク装置202を中央制御部210が記録し、外部に故障が起こったこととディスク装置202を知らせ、故障したディスク装置の交換後、故障したディスクに対応するディスクの接続された接続口以外の接続口から故障したディスク装置202に対応する他のデータをn個のバッファメモリに読みだし(動作3)、n個のバッファメモリ208の排他的論理和をとり、残った1個のバッファメモリ208に書き込み(動作4)、このバッファメモリ208から故障後に交換したディスク装置202に書き込みの命令を発行する(動作5)。
【0274】
以下、動作3〜動作5について具体的に説明する。
【0275】
<動作3>
ここでは、故障したディスク装置202は、#1のディスク制御装置に接続されていたものとする。
【0276】
中央制御部210は、故障の信号を#1のディスク制御装置より知らされ、これが一定の回数起こると、永久故障と判断する。中央制御部210は、外部に信号を出して、故障したディスク装置202の交換が必要なことを知らせる。
【0277】
ディスク装置202が交換された後、中央制御部210は、交換したディスク装置202に入っていた元の情報を復元するために、ディスク装置202の接続する接続口から対応するバッファメモリ208にデータを書き込ませる。その際、ディスク装置202に対する読み出しのブロックは、n+1個の排他的論理和をとると0になるようにディスク装置202に読み出しの命令を発行する。
【0278】
例えば、この場合、#0、#2、#3および#4のディスク制御部に対し、交換したディスク装置202に入っていたデータブロックと組になるデータブロックを読み出す命令を送る。
【0279】
命令を受けた#0、#2、#3および#4のディスク制御部204は、該当するディスク装置202からデータブロックを読みだし、#0、#2、#3、#4のバッファメモリに書き込む。
【0280】
このとき、演算部203は図39に示されるように切替えられ、データパスは図40のようになる。
【0281】
ただし、この場合、#1のバッファメモリに読み出されたデータブロックは使用されない。
【0282】
<動作4>
データブロックが読み出されると、修復データを#1のバッファメモリに作る。すなわち、#0、#2、#3および#4のバッファメモリのデータブロックの排他的論理和を#1のバッファメモリに書き込む。
【0283】
このときに演算部203に与える信号は図41のようになる。なお、#4の排他的論理和部には0を入力する。
【0284】
図42には、このときの各演算部203の働きとデータの流れを示す。
【0285】
<動作5>
#1のバッファメモリに修復データが書き込まれると、このデータブロックをディスク装置202に書き込んで修復動作が終了する。
【0286】
図43に演算部203のデータパスを切替える信号を、図44にデータパスを示す。
【0287】
なお、ディスク交換時の修復動作は、ディスク装置202の容量がバッファメモリ208より大きいのが普通であるので、ディスク装置全体の容量を複数のデータブロックに分割し、一回の動作で一つのデータブロックが修復され、これを複数回行なってディスク装置全体を修復する。
【0288】
以上のように本実施形態によれば、ディスクに書き込むパリティの生成および故障したディスクを復元するための情報の生成が高速に行なえるとともに、少ないハードウェア構成で可能である。
【0289】
なお、本実施形態では排他的論理和を用いたが、排他的論理積を用いても簡単な回路の変更だけで容易に実施可能なことは自明である。
【0290】
また、上記した実施形態では演算部203は直列に接続されているが、タイミング制約を満たすために演算部203の接続部にパイプラインレジスタを加えることも可能である。
【0291】
また、以上の実施形態では、ディスク装置202からバッファメモリ208の転送と、バッファメモリ208からの読み出しを逐次的に行なう方法を説明したが、バッファメモリ208がダブルバッファを構成し、ディスク装置202からの転送とともにバッファメモリ208を読み出すことも可能である。
【0292】
また、ディスクの読み出しの一時的なエラーのためにディスク装置202がリトライ動作を行ない、アクセスが規定時間内に終らなかった場合に、ディスク制御部204はディスク装置202のエラーとして知らせることで、ディスク装置202の故障と等価に扱うことも可能である。
【0293】
上記した手法は、図1等を用いて説明した先の実施形態に適用することができる。この場合、ディスク装置202がデータ記憶装置2に対応し、ディスク制御部204がデータ記憶制御装置4に対応し、中央制御部210が中央制御装置10に対応する。また、図26に示されているバッファメモリ208は、図1の1台の通信制御装置6バッファ記憶装置8に接続されたバッファ記憶装置8に対応する。演算部203は、データ記憶制御部4とこれに対応する1または複数のバッファ記憶部8との間にそれぞれ接続する。このように適用した構成例を図46に示す。
【0294】
また、図11や図12のシステムに適用する場合、演算部203は、1つのバス20を共有するデータ記憶制御部4の群とこれに対応する1または複数のバッファ記憶部8との間にそれぞれ接続する。
【0295】
さて、図26〜46を用いて説明した実施形態ではRAID4またはRAID5に基づいた実施について詳しく述べた。前述の実施形態では、連続したデータはあるブロックのサイズで複数のディスク制御装置に跨るように配置されていた。
【0296】
以下では、別の実施形態としてRAID3に基づいた実施について図を参照しながら説明する。図47は本実施形態に係るシステムの構成を示している。
【0297】
複数のディスク制御部304は各々対応するメモリコントローラ307に接続され、各々のメモリコントローラ307には対応するバッファメモリ308が接続される。メモリコントローラ307は共通のバス(Vbus)に接続され、VbusはRAIDコントローラ303に接続されている。RAIDコントローラ303のVbusと反対側は入出力バスであり、ここでデータの入出力を行なう。中央制御部301はディスク制御部304やメモリコントローラ307、RAIDコントローラ303に接続され、これらを制御している。
【0298】
この装置の動作を説明する前に、図55を参照しながらRAID3におけるディスク装置のデータ配置方法について説明する。
【0299】
まず、連続したデータはある一定の長さのブロック(例えば128KByte)で分割され管理される。ディスクへのアクセスはこのブロックを単位としてある一定の時間内(例えば100msec)に行なわれる。この一定の時間はタイムスロットと呼ばれている。ディスク装置302はRAIDグループと呼ばれるグループに分けられている。一つのRAIDグループは一つのタイムスロットで並列に読み書きされる。
【0300】
図55の例ではRAIDグループが二つあり、交互にアクセスされている。元データはまずRAIDグループに分割され、さらにRAIDグループ内部ではワード毎にディスク制御部に跨るように配置される。例えば、元データは0−1,1−1,2−1,3−1,0−2,1−2,2−2,3−2,…のようにワード単位のデータが並んで連続するデータを構成しており、このうちの0−1〜3−100、0−201〜3−300、…がRAIDグループ1へ、0−101〜3−200、0−301〜3−400、…がRAIDグループ2へ割り当てられる。そして、0−1は#0の行のディスク装置の1番目のデータとして、1−1は#1の行のディスク装置の1番目のデータとして、…0−2は#0の行のディスク装置の2番目のデータとして、…すなわちm−nは#mの行のディスク装置のn番目のデータとして割り当てられる。
【0301】
さらに図55の例では4ワードに対して1つのパリティワードを加えるように構成されているので、#4の行のディスク装置のx番目のデータとしては0−x,1−x,2−x,3−xの排他的論理和が入るようになっている。
【0302】
一つのタイムスロットで読み出されるRAIDグループのデータはバッファメモリ308にブロック単位で書き込まれる。すなわち、#mの行のバッファメモリには、m−1,m−2,…m−100が1ブロックのデータとして書き込まれる。
【0303】
そして、バッファメモリ#0,#1,#2,…から順にデータをワード毎に読み出せば、元のデータ0−1,1−1,2−1,…が読み出せる。このように順にワード毎にデータを読み出すには、Vbusを時分割で使用すれば、効率が良い。
【0304】
以下では図47のシステムがどのように動作するかについて説明し、さらにRAIDコントローラ303の構成について説明する。
【0305】
まず、ディスク読み出し時の故障を訂正する動作の説明を図48に示す。図48ではバッファメモリとRAIDコントローラの働きを中心に説明する。
【0306】
ディスク装置の故障が起こると中央制御部310にディスク制御部から信号が伝達され、中央制御部はどのようにRAIDコントローラ303を制御するかを決定する。
【0307】
図48では#2のディスク装置が故障したと仮定する。この時#2のバッファメモリ308には不正な値が入っている。バッファメモリから出力に読み出す時は、中央制御部310が制御信号を発生し、バッファメモリからVbusを時分割で使用しa,b,d,eの順でRAIDコントローラ303にデータが入力される。RAIDコントローラ303の内部のFIFO349はこのうちa,b,dを記憶するよう中央制御部310の指示により動作する。
【0308】
一方アキュムレータ347には排他的論理和部345により演算されたa,b,d,eの排他的論理和の値すなわち故障したディスク装置に入っていた値cが蓄積されている。これを中央制御部の指示によりマルチプレクサ341を所定のタイミングで切替えれば、出力にはa,b,c,dの順にデータが出力される。
【0309】
図49は図48の動作をタイミングチャートで示したものである。サイクル1,2,4,5でa,b,d,eの値をVbusに読みだし、FIFO349にはa,b,dの値のみを書き込むために中央制御部310の指示によりFIFO Write信号が与えられる。FIFO Read信号はアキュムレータからcが出力する以外のタイミングでFIFO349からデータを読み出すために中央制御部310から与えられる。
【0310】
上述の例では#2のディスク装置が故障したものとして説明を行なったが、故障がない場合はFIFO349をVbusからのデータが通過するように制御すればよい。あるいは、故障がない場合にも、複数のバッファメモリのうち1個が不正な値を持つものとして制御を行ってもよい。
【0311】
次に、ディスク装置に書き込む動作の説明を図50に示す。データを書き込むのは、ビデオサーバーなどの用途では映画などのコンテンツをディスク装置にロードする場合で、これはネットワークから通信制御部を経由してRAIDコントローラに与えられる場合と、RAIDコントローラにテープドライブやビデオエンコーダなどのデバイスを直接接続する場合が考えられる。
【0312】
RAIDコントローラ303の入力として、時系列でワード単位のデータがa,b,c,dの順に与えられる。このデータはVbusに順に与えられると同時に、排他的論理和部335とアキュムレータ337によりa,b,c,dの排他的論理和eが計算される。続いてマルチプレクサ331を切替えてeをVbusに出力する。
【0313】
図51にはタイミングチャートを示した、Vbusにはa,b,c,d,eの順に出力され、バッファメモリ(1)からバッファメモリ(5)に順にデータが書き込まれ、これが1タイムスロット分バッファメモリに溜ると、中央制御装置の指示によりディスク制御部からディスク装置に書き込まれる。図50で説明した動作により、ディスク装置に書き込む際にハードウェアによりパリティを作成することができる。
【0314】
さて、RAID構成でディスク装置が故障した場合には故障したディスク装置を交換し、故障したディスク装置に入っていた情報を新しく交換したディスク装置に復元しなければならない。この操作は、まず、故障したディスク装置を交換し、故障したのと同じRAIDグループに属するディスク装置のデータの排他的論理和をとったものを新しいディスク装置に書き込むことで行なう。ディスク装置の容量は1つのタイムスロットでは処理しきれないので、複数のタイムスロットを使って故障したディスク装置を復元する。
【0315】
図52はこの動作を示したものである。図52では#2に接続されるディスク装置に故障があって交換したと仮定する。まず、中央制御部の指示によりバッファメモリ(1)、バッファメモリ(2)、バッファメモリ(4)、バッファメモリ(5)には故障したディスク装置と同じRAIDグループに属するディスク装置から1タイムスロット分のデータがコピーされる。
【0316】
次にこのデータを1ワード分ずつ、a,b,d,eの順でVbusに転送する。Vbusの値を受けたRAIDコントローラは排他的論理和部345によりこれらの排他的論理和cを計算しアキュムレータ347にこの値を蓄積する。そして、適当なタイミングでこのcをVbusに出力する。
【0317】
図53はこの動作のタイミングチャートを示している。サイクル1,2,4,5でa,b,d,eの値を読み出し、サイクル5で求めた排他的論理和cをサイクル7でバッファメモリ(3)に書き込む。1ワードずつの操作を1タイムスロット分のデータについて行なったら、これらのデータを中央制御部の指示によりバッファメモリからメモリコントローラ307、ディスク制御部304を介してディスク装置302に書き込む。これを交換したディスク装置の必要な部分について繰り返せば、ディスク装置に入っていたデータの復元が可能となる。
【0318】
図54はRAIDコントローラの内部のデータパスを説明する図である。図54を図48、図50、図52とともに参照し、各部の対応を説明する。図48におけるマルチプレクサ341は図54におけるマルチプレクサ(2)341であり、バッファ(2)343が図48では省略されている。図48の排他的論理和部345は図54の排他的論理和部(2)345であり、アキュムレータ347はアキュムレータ(2)347である。
【0319】
図50で示されるマルチプレクサ331は図54のマルチプレクサ(1)331であり図54のバッファ(1)333は省略されている。図50で示されるアキュムレータ337と排他的論理和部335は図54のアキュムレータ(1)337と排他的論理和部(1)335に対応する。
【0320】
図52で示されるアキュムレータ347および排他的論理和部345は、バッファメモリからの読み出し時に使用されるアキュムレータと同一で、図54のアキュムレータ(2)347、および排他的論理和部345である。図52ではマルチプレクサ331は省略されバッファ(1)333を経由してVbusに値が与えられる。
【0321】
図56はこの実施形態をビデオサーバなどの連続データサーバに適用した場合の図である。Vbusを複数に分散することで入出力に大きいバンド幅を確保することができる。
【0322】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0323】
【発明の効果】
本発明に係る連続データサーバ装置によれば、データ記憶制御部と通信制御部の組それぞれまたはいくつかのデータ記憶制御部からなる群といくつかの通信制御部からなる群の組それぞれに対して、その間のデータの受け渡し専用のバッファ記憶部を設けるとともに、各データ記憶制御部と各通信制御部は、それがアクセスする必要のあるバッファ記憶部を含む一部のバッファ記憶部のみと接続している。
【0324】
このため、データ記憶制御部とバッファ記憶部の間のデータパスおよびバッファ記憶部と通信制御部の間のデータパスの多重度を上げることができ、連続データへの同時アクセスユーザ数を増加させることが可能になる。
【0325】
さらに、従来のように高コストを要する転送速度の大きいバスやスイッチを使う必要がないので、コストの増大を招くことなく、連続データへの同時アクセスユーザ数を増加させることができる。
【0326】
また、本発明の連続データ転送方法では、要求された連続データを記憶する前記データ記憶部が接続された前記データ記憶制御部が、該連続データを読み出して、当該データ記憶制御部と該連続データの転送先に通じる通信路を収容している前記通信制御部とに接続された専用のバッファ記憶部に書き込み、当該通信制御部はこの記バッファ記憶部内に書き込まれている前記連続データを読み出して、所定の通信路に送り出す。
【0327】
このため、データ記憶制御部とバッファ記憶部の間のデータパスおよびバッファ記憶部と通信制御部の間のデータパスの多重度を上げることができ、連続データへの同時アクセスユーザ数を増加させることが可能になる。
【0328】
さらに、高コストを要する転送速度の大きいバスによりデータパスの転送能力を上げる必要がないので、コストの増大を招くことなく、連続データへの同時アクセスユーザ数を増加させることができる。
【0329】
本発明に係るディスクアレイ装置によれば、接続するディスク装置およびバッファ記憶部の各系統に種々の機能を有する演算部を専用に設け、これらを直列に接続したので、例えば、ディスク装置の故障に対処するためのデータ復元処理やパリティーの生成を少ないハードウェア構成で実現可能であるとともに、ハードウェアで処理を行なうので処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の一つの実施の形態に係る連続データサーバ装置の構成の一例を示す図
【図2】同実施の形態の連続データサーバ装置の動作を説明するための図
【図3】連続データの構造を説明するための図
【図4】同実施の形態の中央制御装置の動作の流れを示すフローチャート
【図5】同実施の形態の連続データサーバ装置の動作を説明するための図
【図6】同実施の形態の連続データサーバ装置の動作を説明するための図
【図7】同実施の形態の連続データサーバ装置の動作を説明するための図
【図8】同実施の形態のバッファ記憶装置の管理方式の一例を説明するための図
【図9】同実施の形態のバッファ記憶装置の管理方式の他の例を説明するための図
【図10】同実施の形態のバッファ記憶装置の管理方式のさらに他の例を説明するための図
【図11】同実施の形態の連続データサーバ装置の他の構成例を示す図
【図12】同実施の形態の連続データサーバ装置のさらに他の構成例を示す図
【図13】2ポートメモリの一例を示す図
【図14】2ポートメモリの他の例を示す図
【図15】2ポートメモリのさらに他の例を示す図
【図16】2ポートメモリをバッファ記憶装置として用いた例を示す図
【図17】データ記憶制御装置から見たアドレス空間の一例を示す図
【図18】通信制御装置から見たアドレス空間の一例を示す図
【図19】2ポートメモリの一例を示す図
【図20】データ記憶制御装置とバッファ記憶装置の接続方式の一例を示す図
【図21】通信制御装置とバッファ記憶装置の接続方式の一例を示す図
【図22】通信制御装置とバッファ記憶装置の接続方式の他の例を示す図
【図23】VRAMの一例を示す図
【図24】VRAMをバッファ記憶装置として用いた例を示す図
【図25】電子計算機を用いて連続データサーバ装置を構成した例を示す図
【図26】本発明の他の実施の形態に係るディスクアレイ装置の構成の一例を示す図
【図27】同実施の形態の中央制御部の動作の流れを示すフローチャート
【図28】HITANY信号の生成回路の一例を示す図
【図29】同実施の形態の演算部の構成の一例を示す図
【図30】マルチプレクサを切替える論理を示す図
【図31】ストライピングしたマルチメディアデータを再生するシステムの一例を説明するための図
【図32】データベースを分散配置するデータベースサーバの一例を説明するための図
【図33】本発明のさらに他の実施の形態に係るディスクアレイ装置の構成の一例を示す図
【図34】同実施の形態の演算部の構成の一例を示す図
【図35】同実施の形態において演算部に与える各信号の値の一例を示す図
【図36】同実施の形態の一つの動作を説明するための図
【図37】同実施の形態において演算部に与える各信号の値の一例を示す図
【図38】同実施の形態の他の動作を説明するための図
【図39】同実施の形態において演算部に与える各信号の値の一例を示す図
【図40】同実施の形態のさらに他の動作を説明するための図
【図41】同実施の形態において演算部に与える各信号の値の一例を示す図
【図42】同実施の形態のさらに他の動作を説明するための図
【図43】同実施の形態において演算部に与える各信号の値の一例を示す図
【図44】同実施の形態のさらに他の動作を説明するための図
【図45】連続データサーバ装置の実施の形態の一例を示す図
【図46】連続データサーバ装置のさらに別の実施の形態の一例を示す図
【図47】ディスクアレイ装置の実施の形態の一例を示す図
【図48】同実施の形態のデータ読み出しに係る説明の図
【図49】同実施の形態のデータ読み出しに係るタイミングの説明の図
【図50】同実施の形態のデータ書き込みに係る説明の図
【図51】同実施の形態のデータ書き込みに係るタイミングの説明の図
【図52】同実施の形態のデータ修復に係る説明の図
【図53】同実施の形態のデータ修復に係るタイミングの説明の図
【図54】同実施の形態のRAIDコントローラの説明の図
【図55】RAID3方式のデータとディスク装置への配置の関係を説明する図
【図56】同実施の形態の連続データサーバ装置への適用の説明の図
【図57】従来の連続データサーバ装置の一例を示す図
【図58】従来の連続データサーバ装置の他の例を示す図
【図59】従来の連続データサーバ装置のさらに他の一例を示す図
【符号の説明】
2,2−1〜2−8…データ記憶装置
4,4−1〜4−4…データ記憶制御装置
6,6−1〜6−2…通信制御装置
8,8−1〜8−8…バッファ装置
10,10a,10b…中央制御装置
20,21…バス
23…セレクタ
30,30a…2ポートメモリ
32,40…デコーダ
36〜38…AND回路
45〜48…ゲート回路
50〜53,58…排他的論理和回路
54〜57…AND回路
70,80…メモリコントローラ
71,81,82…メモリ
90…VRAM
102,202,302…ディスク装置
103,203…演算部
303…RAIDコントローラ
104,204,304…ディスク制御部
107,207,307…メモリコントローラ
108,208,308…バッファメモリ
110,210,310…中央制御部
120…ディスクアレイ装置
121…データベース処理装置
131,295〜297…排他的論理和演算回路
132,298,331,341…マルチプレクサ
133…デコード部
181〜182,294,299…AND回路
186…OR回路
290〜293…ゲート回路
312…通信制御部
333…バッファ(1)
335…排他的論理和部(1)
337…アキュムレータ(1)
343…バッファ(2)
345…排他的論理和部(2)
347…アキュムレータ(2)
349…FIFO

Claims (15)

  1. 連続データを記憶するデータ記憶部から所望の連続データを読み出す複数のデータ記憶制御部と、
    前記データ記憶制御部によって読み出された前記連続データを保持するための複数のバッファ記憶部と、
    前記バッファ記憶部に保持されている前記連続データを読み出し、収容した通信路に送り出す複数の通信制御部とを備え、
    前記バッファ記憶部を、1つ又は複数のデータ記憶制御部からなる1つのデータ記憶制御部群と1つ又は複数の通信制御部からなる1つの通信制御部群とからなる群の組合せのそれぞれに対して少なくとも1つずつ専用に存在するように設けたことを特徴とする連続データサーバ装置。
  2. 少なくとも1つの前記バッファ記憶部は、該バッファ記憶部に書き込みを行なう前記データ記憶制御部群を複数受持つものであり、
    複数の前記データ記憶制御部群を受持つ前記バッファ記憶部は、アクセス要求のあった連続データを記憶する前記データ記憶部に対応する前記データ記憶制御部の属する前記データ記憶制御部群を選択する選択手段を有することを特徴とする請求項1に記載の連続データサーバ装置。
  3. 前記データ記憶部は、連続データを分割して順に記憶させた複数のデータ記憶装置からなることを特徴とする請求項1に記載の連続データサーバ装置。
  4. 前記データ記憶制御部群と前記バッファ記憶部との間を接続するパスと、前記通信制御部群と前記バッファ記憶部との間を接続するパスとを互いに独立して設けたことを特徴とする請求項1に記載の連続データサーバ装置。
  5. 前記データ記憶制御部群と前記バッファ記憶部との間を接続するパスを、各々の前記データ記憶制御部群ごとに独立して設けたことを特徴とする請求項4に記載の連続データサーバ装置。
  6. 前記通信制御部群と前記バッファ記憶部との間を接続するパスを、各々の前記通信制御部群ごとに独立して設けたことを特徴とする請求項4に記載の連続データサーバ装置。
  7. 対応する前記データ記憶制御部群と前記バッファ記憶部との間にそれぞれ接続された4端子を有する複数の演算部を更に備え、
    前記複数の演算部は上下に直列に接続され、
    前記演算部夫々は、
    バッファ記憶部側の端子から入力したデータと上側の端子から入力したデータを元に、排他的論理和演算を行ない、演算結果を下側の端子に出力する第1の機能と、
    上側の端子から入力したデータを下側の端子に出力する第2の機能と、
    前記データ記憶制御部群側の端子から入力したデータをバッファ記憶部側の端子から出力する第3の機能とを有し、
    最上位の演算部の上端の端子からは0を入力するように設定され、
    データ記憶制御部がデータ記憶部から読み出したデータは対応するバッファ記憶部に接続している演算部が前記第3の機能で動作させてそのバッファ記憶部に書き込み、
    いずれかのバッファ記憶部からデータを読み出す場合には、そのバッファ記憶部に接続している演算部は前記第1の機能で動作させ、その演算部以外の演算部は前記第2の機能で動作させ、最下段の演算部の下端の端子からデータを読み出し、
    いずれかのバッファ記憶部に対応するデータを復元しながら読み出す場合には、そのバッファ記憶部に接続している演算部は前記第2の機能で動作させ、その演算部以外の演算部は前記第1の機能で動作させ、最下段の演算部の下端の端子からデータを読み出すことを特徴とする請求項1に記載の連続データサーバ装置。
  8. 連続データを記憶したデータ記憶装置から所望の連続データを読み出す複数のデータ記憶制御装置と、読み出された該連続データを保持するためのバッファ記憶装置と、該バッファ記憶装置に保持された該連続データを通信路に送り出す複数の通信制御装置とを備え、前記バッファ記憶装置を1つのデータ記憶制御装置と1つの通信制御装置とからなる組合せすべてに対して専用に少なくとも1つずつ設けた連続データサーバ装置において要求された連続データを要求された転送先に転送するための連続データ送出方法であって、
    外部から連続データのアクセス要求を受け付け、
    要求された連続データを記憶する前記データ記憶装置が接続された前記データ記憶制御装置と、該連続データの転送先に通じる通信路を収容している前記通信制御装置とを選択し、
    選択した前記データ記憶制御装置に前記データ記憶装置に記憶された前記連続データを読み出させ、
    前記データ記憶制御装置に読み出した前記連続データを当該データ記憶制御装置と選択した前記通信制御装置とに接続された専用の前記バッファ記憶装置に書き込ませ、
    前記通信制御装置に前記バッファ記憶装置内に書き込まれている前記連続データを読み出させ、
    前記通信制御装置に前記連続データを所定の通信路に送り出させることを特徴とする連続データ送出方法。
  9. 外部から受け付けるアクセス要求が複数で、これら複数の要求に対応する連続データの読み出しおよび送り出しのタイミングをスケジューリングするステップをさらに含むことを特徴とする請求項8に記載の連続データ送出方法。
  10. 複数系統のディスク装置を接続する接続口を有し、接続した複数系統のディスク装置に対するアクセスを並列に行なうディスクアレイ装置において、
    前記接続口から入出力するデータを格納するために、該接続口夫々に対応して設けたバッファ記憶部と、
    対応する前記接続口と前記バッファ記憶部との間にそれぞれ接続された4端子を有する複数の演算部とを備え、
    前記複数の演算部は上下に直列に接続され、
    前記演算部夫々は、
    バッファ記憶部側の端子から入力したデータと上側の端子から入力したデータを元に、排他的論理和演算を行ない、演算結果を下側の端子に出力する第1の機能と、
    上側の端子から入力したデータを下側の端子に出力する第2の機能と、
    ディスク装置側の端子から入力したデータをバッファ記憶部側の端子から出力する第3の機能とを有し、
    最上位の演算部の上端の端子からは0を入力するように設定され、
    ディスク装置から読み出したデータは対応するバッファ記憶部に接続している演算部が前記第3の機能で動作させてそのバッファ記憶部に書き込み、
    いずれかのバッファ記憶部からデータを読み出す場合には、そのバッファ記憶部に接続している演算部は前記第1の機能で動作させ、その演算部以外の演算部は前記第2の機能で動作させ、最下段の演算部の下端の端子からデータを読み出し、
    いずれかのバッファ記憶部に対応するデータを復元しながら読み出す場合には、そのバッファ記憶部に接続している演算部は前記第2の機能で動作させ、その演算部以外の演算部は前記第1の機能で動作させ、最下段の演算部の下端の端子からデータを読み出すことを特徴とするディスクアレイ装置。
  11. 前記データ記憶部には連続するデータが前記複数のデータ記憶部制御部に跨るように記憶されており、前記複数のバッファ記憶部に保持された複数のデータを前記複数のバッファ記憶部から順次読み出すものであり、
    前記連続データサーバ装置は、前記複数のバッファ記憶部に接続される演算部を更に備え、
    この演算部は、順次読み出された複数のデータのうちの一部を記憶する機能と、順次読み出された複数のデータのうちの一部の排他的論理和を計算する機能と、この排他的論理和の計算結果及び前記記憶されたデータを所望の順序で出力する機能とを含むことを特徴とする請求項1に記載の連続データサーバ装置。
  12. 前記複数のバッファ記憶部に接続される演算部を更に備え、
    この演算部は、本装置の外部から入力される複数のデータの排他的論理和を計算する機能と、この排他的論理和の計算結果及び前記入力されたデータを所望の順序で前記複数のバッファ記憶部に対し順次送り出す機能とを含むことを特徴とする請求項1に記載の連続データサーバ装置
  13. 前記演算部は、前記排他的論理和の計算結果を蓄積する機能と、この蓄積された値を所定のタイミングで前記複数のバッファ記憶部のうちの一つに送り出す機能とを更に含み、この送り出され前記複数のバッファ記憶部のうちの一つに保持されることとなった値を対応する前記データ記憶制御部によって前記データ記憶部へ書き込むことを特徴とする請求項11に記載の連続データサーバ装置
  14. 前記複数のバッファ記憶部からデータを読み出すためのバスを更に備え、
    このバスを時分割で使用することによりデータを前記複数のバッファ記憶部から順次読み出す処理を行うことを特徴とする請求項11乃至13のいずれか1項に記載の連続データサーバ装置
  15. 連続データを記憶するデータ記憶部から所望の連続データを読み出す複数のデータ記憶制御部と、
    前記データ記憶制御部によって読み出された前記連続データを保持するための複数のバッファ記憶部と、
    前記バッファ記憶部に保持されている前記連続データを読み出し、収容した通信路に送り出す少なくとも1つの通信制御部とを備え、
    前記バッファ記憶部を1つの前記データ記憶制御部と1つの前記通信制御部とからなる組合せのそれぞれに対して専用に少なくとも1つずつ設け、
    前記データ記憶部には連続するデータがワード単位で前記複数のデータ記憶制御部に跨るように記憶されており、
    前記データ記憶制御部による読み出しはブロック単位で行われ、前記複数のバッファ記憶部に保持されたブロック単位のデータをワード単位で前記複数のバッファ記憶部から順次読み出して得られる連続データを、収容した通信路に送り出すものであることを特徴とする連続データサーバ装置。
JP31557895A 1995-02-17 1995-12-04 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置 Expired - Fee Related JP3600334B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP31557895A JP3600334B2 (ja) 1995-02-17 1995-12-04 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置
DE69632424T DE69632424T2 (de) 1995-02-17 1996-02-16 Server für kontinuierliche Daten und Datentransferschema für mehrfache gleichzeitige Datenzugriffe
US08/603,759 US5862403A (en) 1995-02-17 1996-02-16 Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses
EP96102361A EP0727750B1 (en) 1995-02-17 1996-02-16 Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2974995 1995-02-17
JP7-236999 1995-09-14
JP23699995 1995-09-14
JP7-29749 1995-09-14
JP31557895A JP3600334B2 (ja) 1995-02-17 1995-12-04 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置

Publications (2)

Publication Number Publication Date
JPH09138735A JPH09138735A (ja) 1997-05-27
JP3600334B2 true JP3600334B2 (ja) 2004-12-15

Family

ID=27286709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31557895A Expired - Fee Related JP3600334B2 (ja) 1995-02-17 1995-12-04 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置

Country Status (1)

Country Link
JP (1) JP3600334B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4325817B2 (ja) 1999-04-05 2009-09-02 株式会社日立製作所 ディスクアレイ装置
JP2003140972A (ja) 2001-11-08 2003-05-16 Nec Corp プログラム実行装置及びプログラム実行方法並びにそれを用いた携帯端末及び情報提供システム
WO2010059255A1 (en) * 2008-11-19 2010-05-27 Lsi Corporation Memory efficient check of raid information
JP2010055637A (ja) * 2009-12-07 2010-03-11 Hitachi Ltd ディスクアレイ装置及びその制御方法
JP2016139298A (ja) * 2015-01-28 2016-08-04 京セラドキュメントソリューションズ株式会社 画像処理装置

Also Published As

Publication number Publication date
JPH09138735A (ja) 1997-05-27

Similar Documents

Publication Publication Date Title
US5862403A (en) Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses
JP2576846B2 (ja) クラスタ制御装置及びクラスタ接続多重多重プロセッシング・システム
US8065590B2 (en) Disk controller methods and apparatus with improved striping, redundancy operations and interfaces
US6449730B2 (en) Loosely coupled mass storage computer cluster
EP0860017B1 (en) Loosely coupled mass storage computer cluster
US6567926B2 (en) Loosely coupled mass storage computer cluster
US6877059B2 (en) Communications architecture for a high throughput storage processor
US5146588A (en) Redundancy accumulator for disk drive array memory
WO1997015942A9 (en) Loosely coupled mass storage computer cluster
JP4381480B2 (ja) 複数のパリティ・グループを持つ多重ディスク・ドライブ配列
US20060179345A1 (en) Method and system for wire-speed parity generation and data rebuild in RAID systems
JP3600334B2 (ja) 連続データサーバ装置、連続データ送出方法及びディスクアレイ装置
JP3736134B2 (ja) 分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体
KR100254722B1 (ko) 데이타 기억 시스템,데이타 전송 방법 및 데이타 재구성 방법
WO2005089339A2 (en) Disk controller methods and apparatus with improved striping redundancy operations and interfaces
US5892780A (en) Data storage system and parity generation method for data storage system
JP3584665B2 (ja) 可搬媒体を用いたライブラリ記憶装置
WO2002005096A1 (en) Method to increase bandwidth of a cluster system
JPH09297663A (ja) ディスクアレイ装置
JPH11288359A (ja) ファイル管理システムおよび方法
JP2000243070A (ja) データ蓄積装置および方法、ならびに、データ送出装置および方法
Shim Supporting I/O-intensive applications in a high performance storage system
JPH07295762A (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040818

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040916

LAPS Cancellation because of no payment of annual fees