JPH06500186A - ディスク・アレイ・システム - Google Patents

ディスク・アレイ・システム

Info

Publication number
JPH06500186A
JPH06500186A JP3506558A JP50655891A JPH06500186A JP H06500186 A JPH06500186 A JP H06500186A JP 3506558 A JP3506558 A JP 3506558A JP 50655891 A JP50655891 A JP 50655891A JP H06500186 A JPH06500186 A JP H06500186A
Authority
JP
Japan
Prior art keywords
data
group
storage means
level
redundancy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP3506558A
Other languages
English (en)
Inventor
アイドルマン トーマス イー
クーンツ ロバート エス
パワーズ ディヴィッド ティー
ジャフィー ディヴィッド エイチ
ヘンソン ラリー ピー
グリダー ジョセフ エス
ガジャー クマー
Original Assignee
イーエムシー コーポレーション
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
Priority claimed from US07/488,749 external-priority patent/US5166939A/en
Priority claimed from US07/505,622 external-priority patent/US5134619A/en
Priority claimed from US07/506,703 external-priority patent/US5212785A/en
Application filed by イーエムシー コーポレーション filed Critical イーエムシー コーポレーション
Publication of JPH06500186A publication Critical patent/JPH06500186A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 −ス ・アレイ・シスーム ゛ につい の この出願は、1990年4月6日、1990年4月6日、及び1990年3月2 日にそれぞれ出願された第071505,622号、第071506,703号 、及び第077488,749号の一部継続出願である。
発」L曵]L量 本発明は記憶装置に関する。特に、本発明は、外部コンピューターを、典型的に はディスク駆動機構である記憶装置の組にインターフェースする方法及び装置で ある。
デジタル・コンピューター・システムに用いる磁気ディスク駆動機構メモリーが 知られている。多様なディスク駆動機構が知られているけれども、本発明は、ハ ード・ディスク駆動機構を使うものとして説明される。しかし、本書の記載内容 は、その特定の実施例に本発明を限定するものと解されてはならない。
多くのコンピューター・システムはデータを記憶させるのに複数のディスク駆動 機構メモリーを使う、この様なシステムについての一般的な公知のアーキテクチ ャが図1に示されている。ここで、コンピューター10はバス15によりディス ク・アレイ20に接続されている。ディスク・アレイ20は、大型のバッファー 22、バス24、及び複数のディスク駆動機構30から成る。ディスク駆動機構 30は、種々の論理構成で操作されることが出来る。駆動機構のグループが集合 的に論理装置として操作されるとき、書込み操作時に記憶されるデータはアレイ の中の1個以上の構成要素に分散されることが出来る。ディスク・コントローラ 35はバス24によりバッファー22に接続されている。各コントローラ35に 特定のディスク駆動機構30が割り当てられている。
ディスク駆動機構アレイ20の中の各ディスク駆動機構は個別にアクセスされ、 その上のデータは個別に検索される。各ディスク駆動機構30に付随するディス ク・コントローラ35は、それと接続されている特定のディスク駆動機構のため の入出力動作を制御する。バッファー22に置かれたデータは、バス15を介し てコンピューター10へ送られるべく利用可能である。コンピューターがディス クに書かれるべきデータを送るとき、コントローラ35はバス24から個々のデ ィスク駆動機構宛のデータを受け取る。この種のシステムでは、ディスク動作は 、相互の関係において非同期である。
コントローラのうちの一つが故障した場合には、コンピューターは、その故障し たコントローラを孤立させて、以前はその故障したコントローラの制御下にあっ た記憶装置を、適切に機能する他のコントローラに切り換えるために作動しなけ ればならない、この切替えのために、コンピューターは幾つかの動作を行わなけ ればならない、第1に、コンピューターは、故障はたコントローラを孤立させな ければならない、これは、故障したコントローラに向けられる全てのデータの流 れを、作動しているコントローラへ向は直さなければならないことを意味する。
上記したシステムでは、コンピューターは、故障したコントローラから遠ざける 様にデータを経路指定し直す作業に関与しなければならない、経路再指定を完了 するためにコンピューターにより実行される所要の動作は、コンピューターの注 意を必要とする。このために、コンピューターが行っている他の機能を遅延させ る可能性のある付加機能がコンピューターに加えられることになる。その結果と して、システム全体の速度が低下する。
ディスク動作、特に書き込み及び読み出し、に伴う他の問題は、エラーの確率が 伴うことである。ディスクの読み出し及び書き込みの際に発生するエラーを検出 し、成る場合にはそれを訂正することも出来る手順と装置とが開発されている。
一般的ディスク駆動機構との関係では、ディスクは複数のセクターに分割されて おり、各セクターは同じ所定のサイズを有する。各セクターは特定のヘッダ・フ ィールドを有し、これは、該セクターに、独特のアドレスと、該ヘッダ・フィー ルドにおけるエラーの検出に対処するヘッダ・フィールド・コードと、可変長の データ・フィールドとECCコード(rエラー訂正コード1)とを与え、これは データ中のエラーの検出と訂正とに対処するものである。
データ書き込みが行われるとき、ディスク・コントローラはヘッダ・フィールド とヘッダ・フィールド・コードとを読み出す、若し該セクターが所望のセクター であって、ヘッダ・フィールド・エラーが検出されなければ、新しいデータが該 データ・フィールドに書き込まれ、新しいデータECCがECCフィールドに書 き込まれる。
読み出し動作は、r聞にヘッダ・フィールド及びへンダ・フィールド・エラー・ コードの両方が読み出さくLZという点で、同様である。若しヘッダ・フィール ド・エラーが存在しなければ、データとデータ訂正コードとが読み出される。エ ラーが検出されなければ、該データはコンビエータ−に送られる。若しエラーが 検出されたならば、該ディスク・コントローラ内にあるエラー訂正回路は、その エラーを訂正しようと試みる。若しそれが可能であれば、訂正されたデータが送 られる。そうでなければ、該ディスク駆動機構のコントローラは、訂正不可能の エラーが検出されたことをコンピューター又は主ディスク・コントローラに信号 する。
図2において、個々のディスク・コントローラの外に位置する付随のエラー訂正 回路を有する公知のディスク駆動機構システムが示されている。このシステムは 、エラーを検出し且つ訂正するためにリード・ソロモンのエラー検出コードを使 用する。リード・ソロモン・コードは公知であり、それを発生させるのに要する 情報は多くの文献に記載されている。その樟な文献の一つは、コロラド州ブルー ムフィールドのデータ・システムズ・テクノロジー社(Data SyBtem s Tech−nolgy Corp、)が刊行したr技術者のための実用エラ ー訂正デザインJ (Prctical−敗工五」≧」透−1ytDt場道V免 工五」釦l桓空圧幻、である。この出11の目的のタメに、リード・ソロモン・ コードは冗長項(ここではP及びQ冗長項と称する)を発生させ、これらの項は データ・エラーを検出し訂正するのに使われるという事を知る必要がある。
図2に示されているシステムでは、ECC42ユニツトはバス45に接続されて いる。このバスは、小型コンピューター標準インターフェース(SC3I)54 〜5Bを通して、複数のデータ・ディスク駆動機構47.48、及び49とP及 びQ項ディスク駆動機構51及び53とに個別に接続されている。情報処理のた めのアメリカ国内標準(ANSI)は、ANS1文書第X 3.130−198 6に記載されているSC3Iについての標準を普及させている。
バス45は更に大型出力バッファ−22に接続されている。バッファー22はコ ンビエータ−10に接続されている。このシステムでは、データのブロックが個 々のデータ・ディスク駆動機構から読み出されるとき、それらは個々に且つ逐次 に該バス上に置かれて、同時に該大型バッファー及びECCユニットの両方に送 られる。ディスク駆動機構51及び53からのP及びQ項はECC42だけに送 られる。バス45を介してのデータ及びP及びQ項の送信は逐次に行われる。
正確なバス幅は随意のサイズでよいけれども、8ビツト、16ビツト及び32ビ ツト幅のバスが一般的である。
該バッファー中でデータの大きなブロックが組み立てられた後、P及びQディス ク駆動機構から受信された項を使用する、データ・エラーを検出して訂正するの に必要な計算はECCユニット42の中で行われる。若しエラーが検出されれば 、コンピューターへのデータの転送は中断され、若し可能ならば誤ったデータが 訂正される。
書き込み動作時には、データのブロックがバッファー22において組み立てられ た後、新しいP及びQ項がECCユニット42内で作られて、バッファー22内 のデータがデータ・ディスク駆動機構に書き込まれるのと同時にP及びQディス ク駆動機構に書き込まれる。
公知のエラー訂正技術を利用するディスク駆動機構システムには幾つかの欠点が ある。図1及び2に示されているシステムでは、データ送信は単一のバスを介し て割合に低いデータ転送速度で逐次に行われる。また、エラー訂正回路は、所定 のサイズのデータのブロックの中のエラーを検出して訂正出来るようになる前に 、それが該バッファー内で組み立てられるまで待機しなければならないので、そ の様な検出及び訂正が行われる間は、不回避の遅延がある。
前述した様に、これらのシステムにおけるデータ送信の最も一般的な形は逐次デ ータ送信である。バスが一定の幅を有するとすれば、ディスク又はコンピュータ ーに送信するために該バッファー内でデータを組み立てるために一定の比較的に 長い時間を要する。その大きな、単一のバッファーが故障すれば、それに接続さ れた全てのディスク駆動機構は使用不能となる。従って、コンピューターとディ スク駆動機構との間のデータ転送速度を向上させると共にデータ転送速度をコン ピューターの最大実効動作速度に一層有効に一致させることの出来る複数のディ スク駆動機構を有するシステムが望ましい、そのシステムは、全ての所要のエラ ー検出訂正の機能を実行しながらこの高速度でのデータ転送を行うことが出来る と同時に、個々のディスク駆動機構が故障したときでも許容出来るレベルの動作 を行うことも出来るべきである。
従来技術のシステムの他の短所は、ディスク駆動機構・アレイのグループを使う システムにおいて可能なデータ機構の全範囲を利用していないということである 。換言すると、複数の記憶装置から構成された大量記憶装置を、異なるデータ記 憶を必要とする二つの同時に走るアプリケーションのための論理記憶装置として 動作させることが出来る0例えば、大データ転送(即ち大きなバンドりを必要と する一つのアプリケージクンと、高周波転送(即ち大動作速度)を必要とする他 のアプリケーションと、等々、第3のアプリケーションは、該装置に大バンド幅 と大動作速度との両方を要求出来る。物理的装置の組についての公知の操作技術 は、その様な多様な必要に応じて最適のサービスを提供するために物理的記憶装 置の単一の組を動的に構成する能力を提供するものではない。
従って、高い信転性と共に、大バンド幅と大動作速度との両方を必要に応じて柔 軟に提供することが出来る、複数の物理的記憶装置から成る大量記憶装置を提供 出来ることが望ましい。
発1と押ヨ! 本発明は、外部のコンピューターには1個以上の論理ディスク駆動機構として見 える小型で安価なディスク駆動機構の組を提供する。ディスク駆動機構は組をな して構成される。データは、分解されて組を成すディスク駆動機構にわたって書 き込まれ、その過程でエラー検出及び訂正冗長データが生成され、冗長領域に書 き込まれる。その組のうちの一つ以上に接続されることの出来るバックアップ・ ディスク駆動機構が設けられる。その組のために複数の制御システムが使用され 、そのいずれか一つの組は主制御システムを存し、そのバックアップとして作用 する他の一つの制御システムは別の組を制御する。エラー訂正又は冗長データ及 びエラー検出データは、データがディスク駆動機構に転送されるときにrオン・ ザ・フライ1式に生成される。データがディスク駆動機構から読み出されるとき 、データの完全性を確かめるためにエラー検出データが確認される。冗長データ を用いて、特定のディスク駆動機構から失われたデータを生成し直すことが出来 、故障したディスク駆動機構の代わりにバックアップ駆動機構を用いることが出 来る。
本発明は、ディスク駆動機構コントローラ、データ・ディスク駆動機構及びエラ ー検出コード・ディスク駆動機構の装置を提供するものであり、これらの駆動機 構は、小型バッファー・メモリーと、エラー検出及び訂正のための回路とに各々 個別に接続される0本発明の第1の特徴は、該ディスク駆動機構との間でのデー タ転送とほぼ同時に行われるエラー検出及び訂正である。データ・バスによるシ ステム・コンピューターへの転送のために複数のバッファー・メモリーを順に読 み出したり書き込んだりすることが出来る。また、エラー訂正回路を、クロスバ −(Xバー)スイッチと呼ばれる一連のマルチプレクサ回路を通してバッファー ・メモリー/ディスク駆動機構データ経路の全てに接続することが出来る。これ らのXバー・スイッチを使って、故障したバッファー・メモリー又はディスク駆 動機構をシステムから切り離すことが出来る。
数個のディスク駆動機構を作用的に相互に接続して、第1論理レベルで1個以上 の論理冗長グループとして機能させることが出来る。論理冗長グループは、冗長 データを共有するディスク駆動機構の集合である。各論理冗長グループの幅、深 さ及び冗長性の種If(例えば、ミラード・データ又はチェック・データ)、並 びに、その中の冗長情報の場所とは、所望の容量と信鎖性の要件を満たすために 独立に構成可能である。第2論理レベルにおいて、大量記憶データのブロックが 1個以上の論理データ・グループに分類される。論理冗長グループは、2個以上 のその様なデータ・グループに分けられることが出来る。各論理データ・グルー プ中のデータ・ブロックの幅、深さ、アドレス指定順序、及び配列は、大量デー タ記憶装置を、潜在的に異なるバンド幅及び動作速度特性を各々有する複数の論 理大量記憶領域に背側するべく独立に構成可能である。
上位コンピューターのオペレーティング・システムのアプリケーション・ソフト ウェアと対話するための、第3の論理レベルも設けられる。アプリケーション・ レベルは、論理アプリケーション・ユニットをデータ・グループに重ね合わせて 、単独又は1個以上の冗長グループからのデータ・グループがアプリケーション ・ソフトウェアに単一の論理記憶ユニットと見えるようにする。
データが駆動機構に書き込まれるとき、エラー訂正回路(ここではアレイ訂正回 路(rAccj)と称する)はP及びQ冗長項を計算し、それらをXバー・スイ ッチを通して2個の指定されたP及びQディスク駆動機構に記憶させる。説明し た従来技術とは対照的に、本発明のACCは、ディスク駆動機構の集合全体にわ たってエラーを検出し訂正することが出来る(従って、rアレイ訂正回路jとい う用語が使われる)、以下の記述において、ACCという用語は、所要のエラー 訂正機能を行う回路だけを指す、コード自体はエラー訂正コード又はrEccJ と呼ばれる。後の読み出し動作で、ACCは、読み出されたデータを、記憶され ているP及びQの値と比較して、該データにエラーがあるが無いがを判定するこ とが出来る。
Xバー・スイッチは、数個の内部レジスターを有する。データがデータ・ディス ク駆動機構との間で送信されるとき、データはXバー・スイッチを通らなければ ならない、Xバー・スイッチの中で、データは、パンファー又はディスク駆動機 構に行く前に一つのレジスターから次のへとクロックされることが出来る。Xバ ー内部レジスターを通してデータをクロックするのに要する時間は、ACCがそ のエラー訂正タスクを計算して実行出来るようにするのに充分である。書き込み 動作時には、この構成は、データがそのディスク駆動機構に書き込まれるのと同 時にP及びQの値が生成されてその指定のディスク駆動機構に書き込まれるのを 可能にし、その動作は並行して行われる。実際上、Xバー・スイッチは数段階の データ・パイプラインを確立し、その複数の段階は実際上、時間遅延回路を提供 する。
一つの好適な実施例においては、二つのACCユニットが設けられる。異なるデ ィスク駆動機構にアクセスする二つの動作に同時に両方のACCを使うことが出 来、或いは、一方が故障したら他方を使うことが出来る。
Xバー・スイッチ構成はデータ経路に柔軟性も提供する。システム・コントロー ラの制御下で、適当なXバー・スイッチを再構成することによって故障のあるデ ィスク駆動機構をシステムから切り離すことが出来、その故障のあるディスクに 記憶されるべきであったデータを他のデータ・ディスク駆動機構に経路指定し直 すことが出来る。システム・コンピューターは、データ・エラーの検出や訂正に は関与せず、また、駆動機構やバッファーに故障のある場合にシステムの再構成 に関与しないので、これらのプロセスはシステム・コンピューターに対して透明 であると言われる。
本発明の第1の実施例では、複数のXバー・スイッチが複数のディスク駆動機構 及びバッファーに接続され、各Xバー・スイッチは各バッファー及び各ディスク 駆動機構への少なくとも一つのデータ経路を有する。動作中、いずれがのバッフ ァー又はディスク駆動機構の故障は、いずれかの動作する駆動機構又はバッファ ーへXバー・スイッチを通してデータの流れを経路指定し直すことによって補わ れることが出来る。この実施例では、ディスク駆動機構が故障したときに完全な 性能を維持することが出来る。
本発明の他の実施例では、二つのACC回路が設けられる例えば、全てのディス ク駆動機構に同時に書き込み又は読み出しが行われるときなど、成る主の動作モ ードでは、その二つのACC回路は冗長であり、各ACCは他方に対してバック アップ・ユニットして作用する0例えば、データが一つのディスク駆動機構に書 き込まれるときなど、他のモードにおいては、その二つのACCは平行に動作し 、第1のACCは駆動機構の集合全体の一部のために与えられた動作を行い、第 2のACCは、その集合の残りの部分のために必ずしも同一ではない与えられた 動作を行う。
更に他の実施例では、ACCは、P及びQ冗長項を使って成る自己監視チェック 動作を行って、ACC自体が適切に機能しているか否が判定する。若しそのチェ ック動作が失敗すれば、ACCはその故障を制御システムに表示し、他の如何な る動作にも使われなくなる。
更に他の実施例では、ACCユニットは、集合中の全てのディスク駆動機構に接 続され、該ディスク駆動機構との間で送信されるデータはACCによって同時に 回復される。ACCは、バッファー及びディスク駆動機構から送信されるデータ と並列に、送信されるデータにエラー検出又はエラー訂正を行う。
本発明は、ディスク駆動機構への並列経路の使用を最大にすることによって、従 来技術に比べて速度の利点をもたらす、Xバー・スイッチ及びACCユニットの 記述した構成によって冗長性が、従って故障耐性も、得られる。
本発明の他の特徴は、特定のコントローラが故障したときにディスク駆動機構の 集合の制御を切り換えることである。切替えは、コンピューターに対して明白な 方法で行われる。
コントローラは、コンビエータ−に各々接続された複数の第ルベルのコントロー ラから成る。第ルベルのコントローラの他方の側には、第2レベルのコントロー ラの集合が接続される。第ルベルの各コントローラは、データを第2レベルのコ ントローラのいずれか一つへ経路指定することが出来る0通信バスが第2レベル のコントローラ同士を結合させ、第ルベルのコントローラも、そレラの間で通信 することが出来る。好適な実施例では、第2レベルのコントローラが対をなすよ うにグループ化されるとことなるようにシステムが構成される。この構成は、第 2レベルのコントローラの各々に、単一の付随するバックアップ・コントローラ を与える。この構成は、ディスク駆動機構へのデータの流れのための効率的な経 路再指定手続きに備えるものである。理解を容易にするために、本明細書は、第 2レベルのコントローラの対を持つように構成されたシステムを説明する。勿論 、第2レベルのコントローラは、3個のグループ又はその他の分類で構成される ことが出来ることが理解されるべきである。
第2レベルのコントローラの各々をディスク駆動機構のグループに接続するため のスイッチング機能のための具体的手段が設けられる。第2レベルのコントロー ラが故障した場合、コンピューターは、ディスク駆動機構へのデータの経路再指 定に関与する必要はない、むしろ、第ルベルのコントローラ及び適切に働いてい る第2レベルのコントローラは、コンピューターの関与無しに、その故障を処理 することが出来る。これにより、物理的構成に変化があるにもかかわらず、コン ピューターの視点からディスク駆動機構の論理構成が一定のままに維持されるこ とが出来る。
第2レベルのコントローラに生じる可能性のある故障の重大さには2レベルがあ る。完全な故障の場合には、第2レベルのコントローラは、第ルベルのコントロ ーラ及び他の第2レベルのコントローラとの通信を停止する。第ルベルのコント ローラは、適切に働いている第2レベルのコントローラから、その故障について 通知を受けるか、又は、故障した第2レベルのコントローラにデータを経路指定 しようとするときにこの故障を認識することが出来る。いずれの場合にも、第ル ベルのコントローラは、データ経路を、故障した第2レベルのコントローラから 適切に機能する第2レベルのコントローラへ切り換える。この経路再指定された 経路が確立された後は、適切に機能する第2レベルのコントローラは、故障して いる第2レベルのコントローラへコマンドを出して、そのディスク駆動機溝の制 御を放棄させる。適切に機能する第2レベルのコントローラは、そのとき、これ らのディスク駆動機構の集合の制御を引き受ける。
第2の種類の故障は制御される故障であって、故障したコントローラは、システ ムの残りの部分と通信を続けることが出来る。パートナ−である第2レベルのコ ントローラは、その故障について通知される。適切に機能する第2レベルのコン トローラは、このとき、データ経路を、機能する第2レベルのコントローラへ切 す換える様に第2レベルのコントローラに通知する0次に、故障している第2レ ベルのコントローラは、ディスク駆動機構を制御する役割を放棄し、機能する第 2レベルのコントローラがその制御を引き受ける。最後に、適切に機能する第2 レベルのコントローラは、故障している第2レベルのコントローラにより駆動機 構に書かれたデータをチェックすると共に、若し必要ならば、そのデータを訂正 する。
本発明の他の特徴は、第2レベルのコントローラがディスク駆動機構の制御を放 棄したり引き受けたりすることを許すscs rバス・スイッチング機能である 。
本発明の性質及び利点をより完全に理解するために、以下の詳細な説明を添付図 面と関連させて参照するべきである。
図面の簡単な説明 本発明の好適な実施例は大容量データ記憶装置用システムを構成するものである 。そのような好適な実施例において、データを記憶するための望ましい装置とし てここで取り上げているのはハードディスクドライブであり、以後ディスクドラ イブと記述することにする。ただし、本発明は単にディスクドライブのみに限定 されるものではなく、データを記憶するための装置、例えばフロッピーディスク 、磁気テープドライブ、光ディスクなどを含めて広く他の装置が使用可能であり 、また、これらの例だけに限定されるものではない。
鉱含之五土ム環境 本発明による好適な一つの実施例は図3に示したような環境下において動作を行 う0図3において、コンピュータlOはディスクドライブ装置のグループ18と コントローラ11を介して通信を行う、好適な実施態様においては、コントロー ラ11は多くの構成部分を有しており、コントローラ11の構成部分のどれかが 故障を起こした場合でも、コンピュータ10がディスクドライブのHIBのどれ にでもアクセスできるようになっている0図3に示したように、コントローラ1 1は二段構成装置の対13を有している。この二段構成袋!の対13のいずれも 、第2レベルコントローラ12と第2レベルコントローラ14とを有している。
多数のスイッチから構成されているスイッチ16によって、コンピュータ10は 一つ以上の経路を経てディスクドライブ装置18にアクセスすることができる。
このようにして、もし二段構成装置I3がその構成部分のいずれかに故障を起こ したような場合であっても、コンピュータ10を中断させることなく、別の経路 を経るように変更される。
図3.5は第2レベルコントローラの対14A、14Bに接続されたディスクド ライブ装置の組の対18A、18Bを示す図である。コントローラ14Aおよび 14Bはそれぞれ二つのインタフェースモジュール27を有し、第2レベルコン トローラが第2レベルコントローラの対12(図3)とインタフェースがとれる ようになっている。インタフェースモジュール27はバッファ330−335に 接続されており、これらのバッファはディスクドライブに対して送受されるデー タのバッファとして働く、第2レベルコントローラ14はディスクドライブの第 −のグループに対して主たる制′4TJを行い、第二のグループに対しては副次 的な制御を行うように構成されている0図に示されているように、第2レベルコ ントローラ14Aはディスクドライブ20Al、20B1.20C1,20D1 および20E1に対して主たる制御を行い、またディスクドライブ20A2.2 0B2.20C2,20D2、および20E2に対して副次的な制御を行う、予 備のFyイブ20Xは第2レベルコントローラの二つともによって共有され、デ ィスクドライブのどれかが故障した時、そのディスクドライブを引き継いで動作 する。
ディスクドライブはデータインタフェースの組31を介して第2レベルコントロ ーラ14に接続されている。これらのインタフェースをコントローラ14が適当 にセットし、ディスクドライブをある特定の配置に割当てる0例えば、ディスク ドライブ20A1.20B1.20C1,20D1および、20A2.20B2 .20C2,20D2をシステムがデータを記憶するために割当て、一方ディス クドライブ20E1と20Eは誤り訂正符号を記憶するように割当設定をする。
もしも、いずれかのドライブが故障を起こした時には、ドライブ20Xがその代 わりをするように設定される。もちろん、システムのドライブ割当は再設定がで きるし、いろいろな割当構成のやり方がある。
図4はディスクドライブ装置の組18をコンピュータ10がアクセスすための入 出カシステムの構成部品の結線についてより詳細に示したものである。コンピュ ータlOは第ルベルコントローラ12Aおよび12Bに接続された入出力ボート を有している。第2レベルコントローラ14Aおよび14Bは図示されているよ うに、第ルベルコントローラ12Aおよび12Bに接続されている。第2レベル コントローラ14と第ルベルコントローラ12との間の実線は、制御信号や状態 信号とともにデータを伝送するためのデータバスを表している。第2レベルコン トローラ14Aと第2レベルコントローラ14Bとの間の破線は第2レベルコン トローラ同志が互いに通信を行うための通信ラインを表している。
第2レベルコントローラ14はそれぞれスイッチ16A−16Fを介してディス クドライブのグループ18A−18Fに接続されている。
ディスクドライブ20は各第2レベルコントローラ14がディスクドライブ装置 の一つのグループに対して主たる制御を行うように配置されている。図4に示さ れているように、第2レベルコントローラ14Aはディスクドライブの組18A −18Fの中の三つのディスクドライブに対して主たる制御を行う、同様にして 、第2レベルコントローラ14Bはディスクドライブの&118A−18Fの中 の残りの三つのディスクドライブに対して主たる制御を行う、二つの第2レベル コントローラ14は、それぞれのパートナ−が主たる制御を行っているディスク ドライブに対してそれぞれ副次的な制御を行う0図4に示したような配置割当が された場合には、第2レベルコントローラ14Aは左側の三つのディスクドライ ブ18A、18B、18Cに対して主たる制御を行い、右側の三つのディスクド ライブ180,18巳、18Fに対して副次的な制御を行う、第2レベルコント ローラ14Bは右側の三つのディスクドライブ18D、18E、18Fに対して 主たる制御を行い、左側の三つのディスクドライブ18A、、18B、18Cに 対しては副次的な制御を行う。
第2レベルコントローラ14はそれぞれ第2レベルコントローラ修復システム( CR3)22を有している。CR322は第2レベルコントローラ14と第ルベ ルコントローラ12との間の通信の管理を行うソフトウェアコードの一部である 。CR322は、典型的には、第2レベルコントローラ14の状態をある状態か ら別の状態へと変えるためのマイクロコード、すなわち連続した論理の形態のス テートマシーンとして実現される(以下に記述)、状態変化は、いろいろな事象 が生じてメツセージがシステムの色々な構成要素との間で伝送されるのを機にし て起こる。
各々の第2レベルコントローラ14はまたECCブロック15を有している。
ECCブロック15はシステムのいろいろな構成要素の間をデータが行き来する ときに生じる誤りのチェックと訂正を行うための回路を含んでいる。この回路に ついては以下にさらに詳細に説明する。
図5は第2レベルコントローラ14A、14Bおよびディスクドライブとの間の 結線についてより詳細に示したブロック図である。簡単のために、単一のディス クドライブボートのみを示しである。システムには図3および4に示したように もフと多数のドライブボートが実際には存在する。
第2レベルコントローラ14Aは主たるディスクドライブの組を制御するための 主コントローラ/センスライン50Aを持っている。また副コントロール/セン スライン52Aは副次的なディスクの組を制御する。もちろん、第2レベルコン トローラ14Bもこれに対応するコントロール/センスラインを有している。
データバス54A(第2レベルコントローラ14A)および54B(第2レベル コントローラ14B)はディスクドライブ20に対してデータの送受を行う、こ れらのデータバスは典型的には5C3Iバスの形態をしている。
スイッチの組、16A−16Fはディスクドライブの制御をある特定の第2レベ ルコントローラに委ねるのに使用される。例えば図4において、第2レベルコン トローラ14Aはディスクドライブ2OA−20Cに対して主たる制御を行い、 ディスクドライブ20 D−20Fに対して副次的制御を行う、第2レベルコン トローラ14Bはディスクドライブ20 D−20Fに対して主たる制御を行い 、ディスクドライブ2OA−20Cに対しては副次的な制御を行う。コントロー ル/センスライン50および52上への信号を変えることによって、主たる制御 と副次的制御とを入れ換えることが可能である。
図6はスイッチ16A−16Fの一つについて、より詳細に示したものである。
パルス整形回路の対60Aと60Bは、図5に示した対応するコントロール/セ ンスライン50Aおよび52Bとから信号を受ける。パルス整形回路60はライ ンを伝送する間に失われてしまった信号の明瞭さを取り戻し、波形をきれいにす る。この種のパルス整形回路は当該技術としてよく知られているものである。明 瞭化されたパルス整形回路からの出力信号はラッチ62のセットおよびリセット ピンR/Sに加えられる。ラッチ62のQおよびQ出力はドライバー/レシーバ の対64Aおよび64Bのイネーブルラインに送られる。ドライバー/レシーバ の対64Aおよび64Bは、ディスクドライブと第2レベルコントローラ14A 。
14Bとの間に結かれている。主コントロール/センスライン52Bがアクティ ブになっているのか、あるいは副コントロール/センスラインの方がアクティブ になっているのかによって、適当な方の第2レベルコントローラがその時々の制 御にあずかることになる。
図7はある特定の第2レベルコントローラ14のCR322(図3)のいろいろ な状態の間の関係を示す状態遷移図である。それぞれの第2レベルコントローラ 14はどのような時刻においてもある一つの状態しかとれない、最初は、もしシ ステムが正しく機能しており、それぞれの第2レベルコントローラ14がディス クドライブの組18の半分に対して主たる制御を行っており、残りの半分に対し ては副次的な制御を行っているものと仮定すると、第2レベルコントローラ14 は主ドライブ群制御状1126になっている。主ドライブ群制御状1126にな っている間に、主に二つの事象によって、第2レベルコントローラ14は主ドラ イブ群制御状1!26から他の状態へと変わる可能性がある。その第一の事象は 第2レベルコントローラのどれかの故障である。もしも故障が生じていると、第 2レベルコントローラ14は主ドライブ群制御状H26から制御担当ドライブ無 し状態28へと遷移する。この遷移の途中において、第2レベルコントローラは 、主ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状態3oを経る。
第2レベルコントローラ14が起こし得る故障には二つのタイプがある。第一の タイプは制御故障である。この制御故障の中にはさらに二つのタイプの故障があ る。
制御故障の第一のタイプは強制制御故障である。これは実際には故障ではな(、 外部ソースから特定の第2レベルコントローラを停止するようにとの命令が入力 されたことによるものである。第2レベルコントローラがこの命令を受ける可能 性があるのは以下のようなソースからである。すなわち、コンピュータ1oを介 してオペレータから;ボート24(例えばR3−232)を介してコンソールか ら;第2レベルコントローラから;ボート23(例えばR3−232)を介して 第2レベルコントローラの診断コンソール21から;あるいは予防的保守の最中 におけるソフトウェアからである。典型的には、第2レベルコントローラの診断 テストが行われる場合にそのような命令が発せられる0強制制御故障が生じると 、第2レベルコントローラはその時点で行っていた命令を終了させ、その後の命 令をいっさい受け付けなくなる。第2レベルコントローラは、パートナの第2レ ベルコントローラに停止することをメツセージで伝えて「優雅に」停止する。
第二の制御故障は中度の故障と呼ばれるものである。この場合には、第2レベル コントローラは問題が生じて、もはやシステムに対して正しくサービスを供給で きないことを認識する0例えば、その第2レベルコントローラと関係するメモリ あるいはドライブが誤動作を起こしたような場合である。このような場合、第2 レベルコントローラ自身は正しく機能していたとしても、システムに対して正し いサービスを供与することができない、第2レベルコントローラはその時点での 命令を全て打切りその後には新たな命令を受け付けない、そして、パートナの第 2レベルコントローラに対して停止することを知らせるメツセージを送付する。
どちらの制御故障においても、故障した第2レベルコントローラはそれまで制御 してきたドライブの組を切り離す、これらのドライブはパートナの第2レベルコ ントローラによって引き継がれる。
第二のタイプの故障は完全な故障である。完全な故障においては、第2レベルコ ントローラは動作不能となってしまい、メツセージを送ることも、また実行の途 中の命令をうまく打ち切って終了することができない、つまり、言い換えれば、 第2レベルコントローラはそのシステムに対して機能する能力を失ってしまった ことになる。このような場合に問題が生じたことを認識するのは、第2レヘルコ ントローラのいずれか、または、パートナの第2レベルコントローラの役Flで ある。パートナの第2レベルコントローラが、故障した第2レベルコントローラ が制御していたドライブの制御を代わりに行う、故障した第2レベルコントロー ラへの接続ルートはパートナの第2レベルコントローラへとスイッチで切り換え られる。
上記のすべての故障において、スイッチ切り換えはコンピュータの動作を中断す ることなく行われる。第2レベルコントローラ14および第2レヘルコントロー ラ12はそれぞれが独立に、自分自身の中で生じている故障の内容を判断して再 接続ルート切り換えをそれぞれで行う。
もし、第2レベルコントローラ14Aに故障が生じたと仮定すると、第2レベル コントローラ14Aは主ドライブ群制御状態26から主ドライブ群制御停止・制 御担当ドライブ無しへの過渡状態30を経て制御担当ドライブ無し状態28に変 化する。同時に正しく機能している第2レベルコントローラ14Bが主ドライブ 群制御状態から主・副両ドライブ群制御状態32へと変化する。第2レベルコン トローラ14A、および14Bのいずれの状態変化も、その変化の基になってい るのは第2レベルコントローラ14Aの故障である。第2レベルコントローラが 故障している時に、ディスクドライブの制御をその故障している第2レヘルコン トローラからスイッチで切り離すことは重要なことである。そうすることによっ て、故障を起こしてしまった第2レベルコントローラがそれまで制御していたデ ィスクドライブに対してコンピュータ10が引き続きアクセスすることが可能と なるからである。この今の例(図4)においては、ディスクドライブの&118 A−18Cが第2レベルコントローラ14Bによって制御されるように、スイッ チ機能16A−16Cによって切り換えが行われる。従って、第2レベルコント ローラ14Bは主・副両ドライブ群制御状態32となって、本来両方の第2レベ ルコントローラによって制御されるべきディスクドライブの組18を制御する。
第2レベルコントローラ14Aは今やどのディスクドライブの制御も行っておら ず、制御担当ドライブ無し状1128になっている。過渡状1130では、可能 ないくつかの遷移パスのどれを使うかが決定される。
仮に、第2レベルコントローラ14Aが制御担当ドライブ無し状B28になって いて、第2レベルコントローラ14Bが主・副両ドライブ群制御状態32になっ ているとき、第2レベルコントローラ14Aの修理が終わったとすると、その後 のディスクドライブの制御担当をどのように変えるかには、多(のやり方があり 得る。まず、第一は、第2レベルコントローラ14Aおよび第2レベルコントロ ーラ14Bのいずれもが主ドライブ群制御状1126に戻ることである。これは ドライブの組18A−18Cに対して第2レベルコントローラ14Aが図の主・ 割込みラインに沿って制御担当ドライブ無し状J1128から主ドライブ群制御 状態26へと直接に変化することによって達せられる。主・割込ラインとは主ド ライブ群への割込みのことであり、これは第2レベルコントローラ14Aが主ド ライブ群を優先占有すること、つまり、第2レベルコントローラ14Bに代わっ て主ドライブ群を制御することを意味する。同時に第2レベルコントローラ14 Bは主・副両ドライブ群制御状1132から副ドライブ群の制御停止・主ドライ ブ群の制御開始への遷移過渡状ll34を過渡的に経て、主ドライブ群制御状J 1126に変化する。
以上に代わり得る第二の方法は、第2レベルコントローラ14Aが制御担当ドラ イブ無し状112日から副ドライブ群制御状J!136へと変わることである。
いったん、副ドライブ群制御状態36になると、第2レヘルコントローラ14A はその副デイスクドライブjl18D−18Fの制御に携わることになる。これ に伴って、第2レベルコントローラ14Bは主ドライブ群の制御停止・副ドライ ブ群の制御開始への遷移過渡状態38を経て、主・副両ドライブ群制御状!13 2から副ドライブ群制御状J!136へと変わる。第2レベルコントローラの両 方ともが副ドライブ群制御状態36にあるときには、それぞれの第2レベルコン トローラはそれぞれにとっての副デイスクドライブ群であるディスクドライブの 制御を行うことになる。つまり、第2レベルコントローラI4Aはディスクドラ イブ群180−18Fの制御を、また第2レベルコントローラ14Bはディスク ドライブ群18A−18Cの制御を行う。
副ドライブ群制御状1136から、第2レベルコントローラ14が故障を起こし て、副ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状1140を経て 、制御担当ドライブ無し状J!l+28へと変わることもあり得る。もし、この ような状況が生じた際には、正しく機能しているパートナの第2レベルコントロ ーラ14が副ドライブ群制御状m36から、主・副両ドライブ群制御状1132 へと変わり、コンピュータ10がディスクドライブの組18のどのディスクドラ イブに対してもアクセスが可能であるようにする。前の例におけるように、もし 第2レベルコントローラ14Aが故障したと仮定した場合、副ドライブ群制御状 n36から、副ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状lI4 0を経て、制御担当ドライブ無し状1128へと変わる。同時に、正しく機能し ている第2レベルコントローラ14Bは副ドライブ群制御状態36から、図中の 、両ドライブ群/主ドライブ群割り込みラインに沿って主・副両ドライブ群制御 状1132へと変わる。すなわち、全てのディスクドライブは正しく機能してい る第2レベルコントローラによって優先占有使用される。
第2レベルコントローラ14Aが制御担当ドライブ無し状1128にあって、第 2レベルコントローラ14Bが主・副両ドライブ群制御状態32となっていると きには、ディスクドライブの組18の全てのディスクドライブの制御を第2レベ ルコントローラ14Aに移すことが可能である。このことは第2レベルコントロ ーラ14Aが修復を終了しているときに、第2レベルコントローラ14Bが故障 を起こした場合において望ましいことである。このとき、第2レヘルコントロー ラ14Aは制御担当ドライブ無し状1128から、割込(両ドライブ群)ライン を経て、主・副両ドライブ群制御状M32へと変わる。同時に、第2レベルコン トローラ14Bは主・副両ドライブ群制御状1132から両ドライブ群を停止・ 制御担当ドライブ無しへの遷移過渡状1142を経て、制御担当ドライブ無し状 B28へと変わる。この時点で、第2レベルコントローラ14Aが全てのディス クドライブを制御し、第2レベルコントローラ14Bはどのディスクドライブの 制御も行わないようになる。
いろいろな種類の故障が第2レベルコントローラ14がある状態から別の状態へ と変わるきっかけ(トリガー)となり得る。そして、いろいろな状態の間を遷移 する間において、多くの事象が発注する。これらの事象のそれぞれを図8A−8 Iに示す0図8Aにおいて、第2レベルコントローラ14は主ドライブ群制御状 態26になっている。第2レベルコントローラ14が主ドライブ群制御状態26 になっているときに、三つの異なった事象が起こり得る。第1の事象は、割り込 みメツセージ100をパートナ−の第2レベルコントローラから受け取ることで ある。その時点で、そのようなメツセージを受けた第2レベルコントローラはブ ロック102で表された副ドライブ群パスを取って、最終的に土・副両ドライブ 群制御状1132に至る。取り得る第2のパスは他の第2レベルコントローラの CR322からメツセージ104を受けたのをきっかけ(トリガー)として生じ る。このメツセージは、結局は第2レベルコントローラがそのまま主ドライブ群 制御状態26にとどまったままでいることになるような種類のものである。第2 レベルコントローラはメツセージ106を他の第2レベルコントローラに返す。
最後の取り得るパスは、第2レベルコントローラを、主ドライブ群を停止・制御 担当ドライブ無しへの遷移過渡状態30に至らしめるようなものである。このよ うなパスを取るのは、両ディスクドライブ群あるいは主デイスクドライブ群を切 り離すようにとのメツセージ108を受け取ったのをきっかけにして起こる。こ のときには、ブロック110においてタイマーが設定され、この設定した時間が 来ると、他の第2レベルコントローラに対して、主デイスクドライブ群の制御を 行うようにとのメツセージが出される。いったん、主ドライブ群を停止・制御担 当ドライブ無しへの遷移過渡状1130になると、第2レベルコントローラ14 は結局は制御担当ドライブ無し状態28に至ることになる。
図8Bは主ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状113oか ら制御担当ドライブ無し状1128へ至るいろいろなパスを示したものである。
ここでは、三つの事象が起こる可能性がある。第1は、メツセージ114を、通 信伝達情報を発している他の第2レベルコントローラがら受け取ることである。
この場合には、第2レベルコントローラ14はメツセージ116を返して、引き 続き主ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状態3oのままに とどまる。起こり得る第2の事象は、主ドライブ群制御状1!26から主ドライ ブ群を停止・制御担当ドライブ無しへの遷移過渡状1130へ至る遷移に際して セットされたタイマーの設定時間到来118である。もし、これが起こったとき には、第2レベルコントローラ14はメンセージ112(図8A)が正しく送れ なかったこと、および完全な故障が起こっていることを認識する。第2レベルコ ントローラ14は主デイスクドライブ群および副デイスクドライブ群の両方制御 を切り離す(122)、その後、制御担当ドライブ無し状1128に至る。主ド ライブ群を停止・制御担当ドライブ無しへの遷移過渡状1130になっていると きに起こり得る第3の事象は、主ドライブ群制御状態26がら主ドライブ群を停 止・制御担当ドライブ無しへの遷移過渡状1130へ変わるのに際して発したメ ツセージ112(図8A)に対する返答124を受けることである。この返答を 受けたということは、メツセージが正しく伝わったことを意味する。第2レベル コントローラ14は主デイスクドライブ群の切り離し126を行い制御担当ドラ イブ無し状態28に至る。
図80は制御担当ドライブ無し状1!2日から、主・副両ドライブ群制御状態3 2、主ドライブ群制御状態26または副ドライブ群制御状態36のうちのいずれ かに至る状態変化を示したものである。制御担当ドライブ無し状J12日にある ときに第2レベルコントローラ14ができることは、単にメツセージを受けるこ とだけである。まず、第1として、主および副の両方のディスクドライブ群に対 して割込むようにとの命令メツセージ12日を受ける可能性がある。第2レベル コントローラ14はこの命令の実行130を行い、主・副両ドライブ群制御状態 特表千6−500186 (10) 32に至る。第2の可能性は、主デイスクドライブ群に対して割込むようにとの 割込み命令メツセージ132を受け取ることである。第2レベルコントローラ1 4はこの命令を実行し、主ドライブ群制御状lI26に至る。第3の可能性は、 第2レベルコントローラ14に対して、その副デイスクドライブ群に対して割込 むようにとの命令メツセージ136を受け取ることである。この命令の実行13 8を行った後に副ドライブ群制御杖1136に至る。最後の可能性は、制御担当 ドライブ無し状1128になっているときに第2レベルコントローラ14がその パートナの第2レベルコントローラから通信メツセージ140を受け取ることで ある。
このときには返答142をその第2レベルコントローラに対して返し、そのまま 制御担当ドライブ無し状態28にとどまる。
図8Dは第2レベルコントローラ14の副ドライブ群制御状636から主・副両 ドライブ群制御状態32または副ドライブ群を停止・制御担当ドライブ無しへの 遷移過渡状1140への変化について示したものである。副ドライブ群制御状態 36にあるとき、次の三つのメツセージのうちのどれかを第2レベルコントロー ラ14から受ける可能性がある。最初の可能性は、主・副両ディスクドライブ群 または主デイスクドライブ群を割込むようにとのメツセージ144である。この 場合には、第2レベルコントローラ14は主デイスクドライブ群の制御146を 開始し、主・副両ドライブ群制御状jli32に至る。第2の可能性は、パート ナのコントローラからの通信メツセージ148を受けることである。この場合に は、第2レベルコントローラ14は返答150を返して現在の副ドライブ群制御 状態36のままにとどまり続ける。最後の可能性は、主・副両ドライブ群または 副ドライブ群を切り離すようにとのメツセージ152の受けとりである。第2レ ベルコントローラ14はこのメツセージを受けるとすぐにタイマーのセット15 4を行って、その後、副ドライブ群を停止・制御担当ドライブ無しへの遷移過渡 状態40にあることを示すメツセージ156を送る。
図8Eは第2レベルコントローラ14の、副ドライブ群を停止・制御担当ドライ ブ無しへの遷移過渡状態40から制御担当ドライブ無し状1128への変化を示 している。副ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状B40に なっているときには、次の三つの異なったメツセージを受ける可能性がある。第 1は、パートナの第2レヘルコントローラからのメツセージ158である。第2 レベルコントローラ14は返答160をパートナに返し、引き続き、副ドライブ 群を停止・制?Il担当ドライブ無しへの遷移過渡状1140のままにとどまる 。第2の可能性は、副ドライブ群制御状態36から現在の状態へと至る間にセッ トされたタイマーの設定時間到来162である。このことはメツセージ156を 正しく送ることができず、パートナの第2レベルコントローラがこのメツセージ を受け取っていないこと、また、第2レベルコントローラに完全な故障が発生し ていることを意味する。その後、第2レヘルコントローラ14はディスクドライ ブの両方の群をともに切り離す旨の報告164を行う、そして、制御担当ドライ ブ無し状j1128へ至る。最後の可能性は、第2レベルコントローラ14が、 副ドライブ群制御状1136から副ドライブ群を停止・制御担当ドライブ無しへ の遷移過渡状B40へと変化する際にタイマーをセットした後で、その第2レベ ルコントローラ自身が発したメツセージ156(図8D)に対して返答168を 受け取ることである。この返答を受けるとすぐに、第2レベルコントローラは副 ドライブ群を切り離して制御担当ドライブ無し状1!28へと至る。
図8Fは、主・副両ドライブ群制御状態32から、主ドライブ群の制御停止・副 ドライブ群の制御開始への遷移過渡状態38、副ドライブ群の制御停止・主ドラ イブ群の制御開始への遷移過渡状態34、または、両ドライブ群を停止・制御担 当ドライブ無しへの遷移過渡状J1142のうちのいずれかに至るパスを示した ものである。主・副両ドライブ群制御状態32にあるときに、受は取る可能性の ある第1のメツセージは、主ドライブ群切り離し指示メツセージ172である。
このメツセージを受けると、第2レベルコントローラ14はタイマーのセット1 74を行い、主ドライブ群を停止中であることを示すメツセージ176を送る。
そして、主ドライブ群の制御停止・副ドライブ群の制御開始への遷移過渡状11 3日になって待機する。受は取る可能性のある第2のメツセージは、副ドライブ 群の切り離し指示メツセージ180である。この副ドライブ群解放指示メツセー ジ180を受けると直ちに第2レベルコントローラ14はタイマーのセット18 2を行い、副ドライブ群の制御停止・主ドライブ群の制御開始への遷移過渡状態 34へと変化したことを示すメツセージ184を送る。第3の可能性は第2レヘ ルコントローラ14がそのパートナである第2レヘルコントローラがらメツセー ジ186を受け取ることである。このときには、返答18日を返して、主・副両 ドライブ群制御状832のままにとどまる。最後の可能性として、第2レヘルコ ントローラ14は主・副両ドライブ群の両方を切り離すようにとの命令190を 受けるがもしれない、このときには、第2レベルコントローラはタイマーのセッ ト192を行い、主・副両ドライブ群を切り離したことを示すメツセージ194 を送る。そして、他の第2レベルコントローラからさらに命令を受け取るまで、 両ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状1142にて待機を 続ける。
図8Gは第2レベルコントローラ14が主ドライブ群の制御停止・副ドライブ群 の制御開始への遷移過渡状1138から、制御担当ドライブ無し状112B、あ るいは副ドライブ群制御状B36へと至るときのいろいろなパスを示したもので ある。第1の可能性は、第2レベルコントローラ14が他の第2レベルコントロ ーラからメツセージ196を受け取ることである。このときには、返答198を 返して、主ドライブ群の制御停止・副ドライブ群の制御開始への遷移過渡状JE I38のままにとどまる。第2の可能性は、主・副両ドライブ群制御状JI32 から主ドライブ群の制御停止・副ドライブ群の制御開始への遷移過渡状1138 へと変わる際にセットされたタイマー174の設定時間到来200である。この 場合には、第2レベルコントローラ14はメツセージ176(図8F)が正しく 送られなかったことを理解する。完全な故障が発生している。第2レベルコント ローラは主・副両ドライブ群の切り離しを行ったことを示す報告202を行い、 主・副両ドライブ群を切り離す(204)、その後で、第2レベルコントローラ 14は制御担当ドライブ無し状112日に入る。最後の可能性は、主・副両ドラ イブ群制御状態32から、主ドライブ群の制御停止・副ドライブ群の制御開始へ の遷移過渡状態3日へと変わるに際して発したメツセージ176(図F)の受領 を通知してくる、停止パス応答メツセージ206を受け取ることである。このと きには、第2レベルコントローラ14はその主ドライブ群を切り離して、副ドラ イブ群制御杖態36に入る。
図8Hは第2レベルコントローラ14が副ドライブ群の制御停止・主ドライブ群 の制御開始への遷移過渡状1134から、制御担当ドライブ無し状1128また は主ドライブ群制御状1126へのいずれかに変わるときの取り得るバスを示し ている。最初の可能性は第2レベルコントローラ14が他の第2レベルコントロ ーラからメツセージ210を受け取ることである。この場合は、第2レベルコン トローラ14は返答212を返し、副ドライブ群の制御停止・主ドライブ群の制 御開始への遷移過渡状1134のままにとどまる。第2の可能性は、主・副両ド ライブ群制御状1132から副ドライブ群の制御停止・主ドライブ群の制御開始 への遷移過渡状態34へと変わるに際してセットされたタイマー182の設定時 間の到来214である。この場合には、第2レベルコントローラ14はメツセー ジ184(図8F)が正しく送れなかったことを理解する。この場合、完全な故 障が発生している。第2レベルコントローラは続けて、そのディスクドライブ群 を切り離すことを示すメツセージ216を送って、それまで制御していた土・副 両ディスクドライブ群の切り離し218を行う、その後で、第2レベルコントロ ーラは制御担当ドライブ無し状1128に変わる。最後に第3の可能性は、第2 レベルコントローラ14が、主・副両ドライブ群制御杖1132から副ドライブ 群の制御停止・主ドライブ群の制御開始への遷移過渡状1134へと変わるのに 際して発したメツセージ184(図8F)に対する返答220を受け取ることで ある。このときには、第2レベルコントローラは副ドライブ群の切り離し222 を行い、主ドライブ群制御状lI26へ入る。
図8Iは第2レベルコントローラが両ドライブ群を停止・制御担当ドライブ無し への遷移過渡状1!42から、制御担当ドライブ無し状J128へと変わるとき に取る得るバスを示したものである。ここでは、三つの事象が起こり得る。その 第1は、他の第2レベルコントローラから通信伝達情報メツセージ230を受け 取ることである。この場合には、第2レベルコントローラ14は返答232を返 し、両ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状態42のままに とどまる。第2の起こり得る事象は、主・副両ドライブ群制御状1132から両 ドライブ群を停止・制御担当ドライブ無しへの遷移過渡状態42へと変わるのに 際してセットされたタイマー192の設定時間の到来234である。もし、これ が起こったときには、第2レベルコントローラ14は主・副両ドライブ群制御状 態32にあるときに発したメツセージ194(lff18F)が正しく送られな かったことと、完全な故障が発生していることとを理解する。第2レヘルコント 口−ラは主・副両ドライブ群をその制御から切り離す(238)、そして、制御 担当ドライブ無し状1128に至る0両ドライブ群を停止・制御担当ドライブ無 しへの遷移過渡状態42にあるときに起こり得る第3の事象は、第2レベルコン トローラが主・副両ドライブ群制御状1132から両ドライブ群を停止・制御担 当ドライブ無しへの遷移過渡状1142へと変わるに際して発したメツセージ1 94(図8F)に対する応答を受けること(240)である、この応答があった 場合にはメツセージが正しく相手に伝わったことを意味する。そして、第2レベ ルコントローラ14は主・副両ドライブ群を切り離して(242)制御担当ドラ イブ無し状態28に至る。
パンツ と−イスクドーイフ゛目−゛−の −図9はバッファとディスクドライ ブ20との間のデータバスの経路再設定を行うための回路についての第1の好適 な実施例をしめしたものである0図9において、クロスバ−スイッチ310−3 15は、第2レベルコントローラエンジン(図3および図4を参照)と通信を行 うためのバス309に結合している。さらに、それぞれのクロスバ−スイッチは バスによってディスクドライブ20A1−20A6、およびバッファ330−3 36のそれぞれに接続されている。バス350は各々のバッファを、コンピュー タ、例えばコンピュータ10、に接続されている第ルベルコンピュータに接続す る。この実施例においては、6個のディスクドライブのみを示したが、同様のや り方でクロスバ−スイッチと出力バッファの数を増やし、図9に示されているよ うなバスの結線構造を維持し、図示されたアーキテクチャ−を保持している限り 、他のどのような任意の数のディスクドライブをも用いることが可能である。
動作を行う際には、第2レベルコントローラはいろいろなレジスター(図示して いない)を負荷として持ち、そのレジスターによって、ある特定のバッファと特 定のディスクドライブとの交信を可能とするようなりロスバースイッチの接続が 構成される。システムが動作している間、任意のどのような時にもある特定の接 続構成へと変更することが可能である。データの流れは全てのバスにおいて双方 向である。クロスバ−スイッチの接続構成を行うことによって、与えられた任意 のバッファから流れてくるデータを与えられたどの任意のディスクドライブに対 しても接続できる。また、この逆の接続も可能である。好適な動作モードにおい ては、あるディスクドライブへのデータの送受は、他の全てのディスクドライブ へ対して行われているデータの送受と並列して行われる。この動作モードは大き なスルーブツトとともに、非常に高速度のデータ送受信を可能とする。
この動作モードの実施例を説明するために、以下に例を示す0図9を参照して説 明する。ここで、すべてのデータの流れは最初は直接的であるものと仮定する。
この直接的ということは、クロスバ−スイッチ110を介して例えば、バッファ 330のデータがディスクドライブ20A1に直接に流れることを意味する。も しも、バッファ330が故障を起こしたときには、クロスバ−スイッチ310の レジスターがこの故障発生を認識し、クロスバ−スイッチ310はバッファ33 5からのデータを読んで、そのデータをディスクドライブ20A1に導くことが できるようにする。その他のバッファあるいは、ディスクドライブが同様な故障 を起こしたときにも、同様な方法で補償が行われる。
11−一に番る− −の 図10に本発明の第2の好適な実施例を示す、この第2の実施例は、アレイ訂正 回路(ACC)を含んでいる。このACCは、図9に示した第1の好適な実施例 におけるのと同じ一般的アーキテクチャの範囲内で、誤りの検出・訂正を可能と するものである。この実施例の理解を容易にするために、クロスバ−スイッチ( 310−315)およびアレイ訂正回路360.370についてはその内部構造 の完全な詳細にまでは図10においては立ち入らないこととし、ここには示して いない、これらのデバイスの内部構造は図11および12において別途示してあ り、説明のために引用、あるいは議論を順に行っていくものである。また、バス LBHは、実際には、第2レベルコントローラをクロスバ−スイッチ、ACC。
およびDSIユニットに、図10に示したようなやり方で直接に結合しているわ けではない(図3および4)、そうではなく、実際には第2レベルコントローラ はクロスバ−スイッチ、ACCおよびDSIユニットに割り当てられた、いろい ろなレジスターの組と交信を行う、これらのレジスターは、組み合わせ構成デー タに従って第2レベルコントローラの負荷となり、これによって上記の構成要素 の動作モードが制定される。そのようなレジスターについては既知であり、また 本発明においては本質的なことではないので、図示しないこととし、またこれ以 上の議論はここでは行わない。
図10に、実施例におけるデータディスクドライブ20A1−20A4、Pおよ びQ冗長項ドライブ20A5.20A6とが示されている0本発明による好適な ll樟では13台のディスクドライブを用いる。すなわち、10台をデータに、 2台をPおよびQ冗長項に、そして1台を予備あるいはバックアップ用にである 。
本発明の要旨を全く変えることなく、ドライブの具体的な台数および具体的な使 用方法をいろいろに変えることができることは理解できよう、それぞれのディス クドライブは双方向性バス(小型コンピュータ標準インターフェース)によって DSIと表示された二ニア)340 345に接続されている。DS!ユニット はディスクドライブへのデータの入出力の際のバッファの役割を果たすと同時に 、ある種の誤り検出を行う。
さらに、それぞれのDSIユニットは双方向バス手段によってクロスバ−スイッ チに接続されている。クロスバ−スイッチはここでは310−315の番号付け がされている。クロスバ−スイッチは、さらにワードアセンブラ−350−35 5に双方向バスによって接続されている。この実施例におけるこのバスの幅は9 ビツトで、8ビツトがデータ、1ビツトはパリティピットである。ワードアセン ブラーは36ビント(32ビツトがデータ、4ビツトがパリティ)のワードをア センブルして、36ビツト幅を有する双方向バスを通してバッファ330−33 5に送信する。出力バッファからクロスバ−スイッチへとデータが流れてきたと きには、ワードアセンブラは36ビツトのワードを9ビツトのデータ・パリティ へと分解する。
クロスバ−スイッチは、またACCユニット348および349にも接続されて いる。クロスバ−スイッチとACCとの結線については図11にさらに詳細に示 しである。それぞれのクロスバ−スイッチはDSIユニットあるいはワードアセ ンブラから受け取った8ビフトデータ・1ビツトパリテイを、両方のACCに対 して、あるいは、そのうちのいずれかに対して送ることができる。さらには、ク ロスバ−スイッチはACCが算出した9ビツトのPおよびQ冗長項をラインE、 およびE8を通して受け取ることができる0図示されているように、ACCはP およびQ冗長項を任意のどのクロスバ−スイッチに対しても導くことができ、P およびQと表示されたディスクドライブだけに限定して接続されているわけでは ない、第2レベルコントローラは、ACC348および349が互いに冗長とな るような接続構成をとらせることもでき、この場合においてはACCのいずれか が故障した場合であっても、システムの誤りを検出・訂正する能力は失われない 、あるいは、それぞれのACCが全ディスクドライブのうちの一部をそれぞれが 分担して誤りの検出・訂正をさせるような接続構成とすることもできる。後者の ようなやり方で動作しているときには、それぞれのACCが別々のディスクドラ イブに対して書き込みを行うことができるので、個々のディスクドライブに対し て書き込みを行うようにある種の特定のタイプの動作は促進される0個々のどの ACCがどの特定のディスクドライブをモニターするのかは、第2レベルコント ローラによって、いつでも再設定をすることができる。
図示したこのようなACCとクロスバ−スイッチとの接続方法を用いると、第2 レベルコントローラが関連するレジスターの接続構成を行うことによって、どの クロスバ−スイッチからでも、任意のACCへとデータをスイッチすることがで きる。このような柔軟性があることによって、データは、どの故障したディスク ドライブあるいはバッファからも回避することができる。
図11はACCとクロスバ−スイッチの重要な内部詳細について示したものであ る。クロスバ−スイッチ310は鏡影な二つの部分から成っている。これらの部 分はそれぞれが、さらに9ビツト・トライステート・レジスター370 /38 0、マルチプレクサ−372/382、第1の9ビツトレジスター374/38 4、第2の9ビツトレジスター376/386、および入出力インターフェース 379/389とで構成されている。ワードアセンブラ−からDS■ユニットへ とデータが流れる動作も、あるいは逆方向に流れる動作も可能である。
図11に示したように、クロスバ−スイッチの中を通るいろいろなバスが可能で はあるが、これらの中の二つのものが特別に重要である。第1は、ACCがPお よびQ冗長項の計算を行うのに必要な、あるいは誤りの検出・訂正を行うのに必 要な充分な時間を与えるために、数個のレジスターからなるデータバスを用いる ことである。このとき、データは、あるレジスターから次のレジスターへ移動す るのに、1クロツクサイクル必要である。クロックをかけて、データを数個のレ ジスターを通過させるようにすることによって、必要となる充分な長さの遅延を 達成できる1例えば、ワードアセンブラ−ユニットからディスクドライブにデー タが流れているものと仮定すると、最初のクロックパルスによって、9ビツトデ ータが9ビツトレジスター374およびトライステートレジスター370に加え られる0次のクロックパルスによって、このデータは9ビツトレジスター386 へ、また、ACC34Bの冗長回路302を通ってP/Qレジスター304およ び306へと移動する。さらに次のクロックパルスによって、データはDSIユ ニットへ移る。
重要な内部データバスの第2のものは、トライステートレジスターと関係してい る。トライステートレジスターは互いに同時にはアクティブな状態にはならない 、言い換えれば、トライステートレジスター370または380のどちらかが使 用可能状態にあるとき、相対するレジスターは使用不能状態になっている。これ によって、クロスバ−スイッチからACCへのデータの伝送が制御される。デー タはDSIユニットからACCへと向かって流れるか、あるいはワードアセンブ ラからACCへと流れるかのどちらかであって、両方から同時にACCへと流れ るようなことは決しておこらない、逆方向の場合には、データはACCからワー ドアセンブラおよびDSIへ同時に流れる。
ACCユニット348は、PおよびQ冗長項を生成する冗長回路302、Pおよ びQ冗長項を一時的に記憶するためのPおよびQレジスター304と306、故 障したディスクドライブまたはバッファからの、あるいは、それらへのデータを 再生または訂正するための再生・訂正回路308、および出力インターフェース 390.391.392.393とから成っている。
− おび チェ・り 第2の実施例において重要な働きをする構成要素とそれらを物理的に互いにどの ように接続するかについては、上に既に述べた0次に、好適ないろいろな動作モ ードについて説明する。これらの機能モードについて理解するためには、本発明 で用いられている誤り検出・訂正のある部分についての理解が必須である。
コンピュータ座業においては、いろいろな誤り検出・訂正符号が知られており、 また使われている。ミトリイー社(The MITRE C0RP、)のり、ラ イガート(Wiggert)はその著書誤−m符号上応用において、そのような いろいろな符号とその計算について述べている0本発明の第2の実施例はリード ・ソロモン誤り検出・訂正符号を用いて実現されている。ただし、本発明がリー ド・ソロモン符号だけに限定されなければならないような理由は何もない、もし 、他の符号を使うのであれば、ACCに対しているいろな変更が必要になるが、 本発明の本質的な特徴を何も変えることなくそのような変更は可能である。
リード・ソロモン符号はフィールド生成多項式によって生成されるが、X4+X +1の形のものをこの実施例では用いている。このリード・ソロモン符号に必要 となる符号生成多項式は(X+a’ ) ・(X+a’ )=X” +a’ X +a’である。誤りを検出し、訂正するためにこれらの符号を生成し、使用する ことは既知である。
本発明にリード・ソロモン符号を実際に実現するには、いろいろな項とシンドロ ームの生成が必要となる。明確にするため、これらの項をここではPおよびQ冗 長項と呼ぶことにしよう、PおよびQ冗長項を生成する方程式はP=d、、+d ll−、+・・・+a++cteおよび Q”da−+ ’ am−++ds−v’ am−x+・・・+d+ ・a1+ d++・a6である。P冗長項は本質的に、与えられた計算においてデータバイ ト全体におけるイネーブルなものの単純なパリティである。Q論理はイネーブル なすべてのデータバイトに対してQ冗長性の算出を行う、Q冗長性の算出におい ては、和をとる前に、まず最初に入カデターに対して定数aが掛けられる。Pお よびQ冗長項を生成するために必要となる論理演算を図12aおよび12bに示 した。0で表した演算はすべて、排他的論理和(XOR)を意味している0本質 的に、最終的なP項はすべての21項の和をとったものである。Q項はすべての 98項に対して定数をかけた後にそれらの排他的論理和をとることによって導出 される。これらの計算はACC260(図11)の冗長回路302によってなさ れる。第2の好適な実施例においては、リード・ソロモン符号を用いることによ って故障した二つまでのディスクドライブに対してデータの訂正を行うことが可 能である。
データの訂正を行うためには、ACC内にてさらに項S、およびS、の生成を行 うことが必要である。あるデータのグループに対して、PおよびQ冗長項がすで に計算されているものと仮定すると、シンドローム方程式としてSogdい一1 +d*−t÷・・・+d、+da+PS+=(da−1an−+)+(da−z  Ham−g)+ HHH+(dr Hat)+(da ・ao)+QがS、お よびSlを算出するために用いられる。Soに対しては、ACCレジスターが計 算に必要なデータバイトおよびP冗長性を準備する。S、に対しては、必要な入 力データは、Q冗長性情報との和をとる前に、まずa3をそれぞれかけねばなら ない。
上述したように、この実施例では、2台までの故障したディスクドライブに対し てACCはデータの訂正を行うことが可能である。故障したディスクドライブと 関連するACC中のレジスター(図示せず)は第2レベルコントローラに対する 、故障したディスクのアドレスにおける、その負荷とされる。ACC中の定数回 路はドライブの所在情報を用いて二つの定数に、およびに1を下記の表工に示し たように行う。
Qi OO I J aJ/at+aj1/at+aJPQ OO この表において、iは故障した第1のディスクドライブのアドレスを表し、jは 第2の故障したディスクドライブのアドレスである。また、aは定数である。
UΣ旦歪プと表示した列はどのドライブが故障した場合であるのかを表す、に・ およびに、の列は故鷹上立工jの列に表記されたドライブの与えられた故障に対 してこれらの定数がどのように計算されるのかを示している。
誤り訂正回路は、二つの定数に0およびに、とともに、シンドローム情報S。
およびSlを用いて、故障したディスクドライブが有していたデータの生成を行 う、誤り訂正方程式は以下のとおりである。
F+”Ss・k@+Sl・k。
FM =SO+El ここで、F−よ第1の故障したディスクドライブに対する訂正後の正しい置き換 えデータであり、F2は第2の故障ディスクドライブに対する置き換えデータで ある。PおよびQ冗長項を生成する方程式の計算は図12aおよび12bにその 一部を示したように、論理回路の組み合わせによって実現される。このやり方は 、データがドライブに書き込まれるのと同時に冗長項も生成してディスクに書き 込まれるという長所がある。この動作モードについてはさらに議論を行う。
動作i二上 本発明の理解に必要となるリード・ソロモン符号の実現の様子については上に説 明したので、本発明の動作モードについて次に議論を行う。
本発明の好適な第2実施例では基本的には二つの動作分類のうちのいずれかの動 作が行われる。すなわち、データ記憶動作か、あるいはトランザクション処理動 作かである。これらの二つの動作について、囚、特に図]0113、および14 と表2−7を参照しながら以下にM論をする0図10では4つのデータドライブ とPおよびQ冗長項ドライブのみを示しであるが、望ましくは10台のデータド ライブと2台のP、Q冗長項ドライブおよび1台の予備ドライブの合計13台の ディスクドライブが使われる。これらの動作環境と関連して、並列処理動作につ いて以下に述べるが、議論をそのような特定の実施例にのみ限定しなければなら ない理由は決してない。
並列処理動作 並列処理動作においては、すべてのドライブは単一の大型装置から成っているも のとみなす、各ディスクドライブは9ビツトのデータを同時に受信するが、ある いは送信する。その結果、すべてのドライブのDSIユニットに同時に現れる9 ビツトのデータは一つの大きな符号ワードとして取り扱われる。符号ワード40 0はディスクドライブda−1が送受する9ビツトデータ、ディスクドライブd ll−1が送受する9ビツトデータ、・・・などと、PおよびQディスクドライ ブが送受するPおよびQ冗長項とから成っている。並列書き込み動作においては 、予備ディスクドライブを除いて、組になっているすべてのディスクドライブが 同時に1バイトのデータ(またはデータバイトの長さに等しい長さを有する冗長 項)を受け取る0図示されているように、すべてのドライブの同じセクターに符 号ワード400の一部が書き込まれる0例えば、図において、ディスクドライブ n−1のセクターlは符号ワード400の中のda−1と表記された1バイトの データを受け取り、ディスクドライブn−2のセクター1は符号ワード400中 のd、−2と記された1バイトデータを受け取る・・・等々である。
この好適な実施例を実際に実施する際には、符号ワードはいろいろなディスクド ライブにまたがって、いわばr筋をつける」ことになる、このことは、連続した それぞれの符号ワードに対して、異なったディスクドライブがPおよびQ冗長項 を受け取ることを意味している。言い換えれば、ドライブda−1は次の符号ワ ードにおいてはドライブd、−2のように取り扱われ、以下、同様のことが、元 のドライブda−1がQ冗長項を受け取るまで繰り返される。このようにして、 冗長項の「筋」がディスクドライブの中にできる。
ニブルに・ るPおよび −のペア 8ビット記号を用いてPおよびQ冗長項の計算を行うと多くのハードウェアが必 要となってしまう、このハードウェアのオーバーヘッドを減らすためには、4ビ ツトバイトすなわちニブルを用いて計算を実施する。このためのハードウェアの 実現には本発明の基本概念の変更は必要としないが、二つの4ビツトデータニブ ルを受け取ったディスクドライブはこの二つのデータを組み合わせて一つの8ピ ントバイトを形成するようにしなければならない0図13bにおいて、符号ワー ド450および、ディスクドライブのセクターAは、符号ワードがどのように分 割されて、ディスクドライブが上位4ビツトニブルおよび下位4ビツトニブルを どのように受け取るのかが示されている0表2は、符号ワード1からNまでに対 して、符号ワードのどの部分がドライブのどの部分にどのように配置されるのか を示したものである。各ディスクドライブは、ある符号ワードが与えられたとき 、その符号ワードのUおよびLと表記された上位および下位4ビツトニブルを受 け取る。さらに、符号ワードの記憶に使われたディスクドライブ上の同し部分が ニブルの記憶のために使われる。言い換えれば、符号ワード1に対しては、ディ スクドライブn−1から0までの最初のセクターがニブルを受取る。
符号ワードー−−データ・P−Q 符号7−Fl 符号7−Fl 符号フード1 符号フート1 符号ツーF1 符 号’)−Fl(d、l−+J(d、−+t+) (da−zt)(d、−zu)  (doJ(do、++) CP+t)(P+u) (QIL)(QIL{) 符号ツーF2 符号ワード2 符号ツーF2 符号ツーF2 符号ツーF2 符 号ツーF2(dfi−++)(d−+u) (d−J(d−to) (daJ( d++u) (PJ(Pzu) (Qzt )(Q!+1)参照を図10に戻す 、ディスクに対して並列にデータを書き込むために、36ビツトデータがワード アセンブラ350−353にて9ビツトワードに逆アセンブルされた後、バッフ ァをクロスバ−スイッチ310,311.312、および313へと接続してい るバスを通して、データがバンク7330,331.332、および333から 並列に供給される。これらのクロスバ−スイッチは、またACC348およびA CC349の入力端子D3、D2、Dl、Doにも接続されている。並列処理モ ードにおいては二つのACCは互いに互いのバックアップとしての役割を担う、 もし一つが故障を起こしても、他の一つが必要とされる誤り訂正機能の実行を引 き続けて行う、純然たる「バックアップ」条件にての動作に加えて、第2レベル コントローラエンジンは、一方のACCに対して、ディスクドライブの組の一部 分に対しての誤りの検出・訂正を担わせ、他のACCに対しては、その組の残り のディスクドライブに対して同様の機能を担わせるようにさせることもできる。
このとき、ACCユニットは依然として全てのディスクドライブに接続されたま まになっているので、どちらがのユニットに故障が起こったとしてもACCの動 作モードを再設定し、特定ディスクドライブ専用となっていたACCを、ディス クドライブ全体に対しての機能をさせるよう変更が可能であるので、このような ときでも、システムにインパクトを与えることがない、ここでの議論としては、 ACC34Bが動作しているものと仮定しよう、ACC34Bはクロスバ−スイ ッチからのデータに対してPおよびQ冗長項の計算を行い、その結果をACC3 4BのElおよびF2出力端子に供給する。このE、 、E、出方端子はすべて のクロスバ−スイッチと接続されている。単にここでの議論としてだけ、E!は クロスバ−スイッチ314とだけ、またF2はクロスバ−スイッチ315に対し てだけ割り込み可能だと仮定しよう、すると、データはACC348のE。
およびE!出力端子に接続されているバスを通して全てのクロスバ−スイッチに 供給されているにもかかわらず、Q冗長項はクロスバ−スイッチ314だけが、 またP冗長項はクロスバ−スイッチ315だけが受け取る。そして、QおよびP 冗長項は最初にDSIユニット344および345に供給され、その後にディス クドライブ20A5および20A6に供給される。ここで、クロスバ−スイッチ の内部レジスターは、多段パイプラインとして機能し、データがスイッチを通過 する際の遅延時間を有効に発生させて、ACC34Bの冗長回路302がPおよ びQ冗長項の計算を行うのに必要とする充分な時間を提供することを思い出して 欲しい。
ACC349も、ACC348と本質的に同じやり方でクロスバ−スイッチと接 続されているので、ACC349が動作しているときのシステムの動作の仕方は ACC34Bに対して記述されているのと全(本質的に同じである。
引き続けてのディスクからの並列読み出しは以下に述べるようにして起こる。
データは双方向バスを通してDSIユニット340,341342.343に供 給される。PおよびQ冗長項はそれぞれDSIユニット345および344から 供給される。データとPおよびQ冗長項がクロスバ−スイッチ310−315を 通して伝送される際に、ディスクドライブからのデータが正しいがどぅがを、A CC348はPおよびQ冗長項を利用して判断する。ワードアセンブラ−350 −353は連続した9ピントワードを次の36ビツトが得られるまでアセンブル を行う、この36ビツトはバッファ330−333へ供給される。ここで、9ビ ツトワードはバッファに対して並列に伝送されることに注意のこと、もし、この データが正しくない場合には、第2レベルコントローラにそのことが伝えられる 。
並列読みだしの際に、万一ディスクドライブが故障すると、故障したディスクド ライブは、どこかのあるタイミングで第2レベルコントローラに対して故障を起 こしたことを伝える。もし、ディスクドライブがその自身の誤り訂正機能を用い ての誤り訂正が不可能となったのであれば、第2レベルコントローラに対してそ のことを伝える。すると、第2レベルコントローラは、故障を起こしたディスク ドライブのアドレスに対応するACC中のレジスタ(図示せず)を呼び出すこと により、ACC348および349と連絡を取る。そして、接続構成レジスター からそのアドレスを消すことによって故障したディスクドライブを組の中から取 り除くことが可能である。さらに、組の中の予備ドライブのアドレスを接続構成 レジスタに挿入することによって、故障したドライブの代わりをさせることがで きる。
次に、ACCは故障したディスクドライブ中に記憶されていた全ての情報を新し く動作させた予備ディスクへ再書き込みをさせるため、必要となる置き換えデー タの計算を行う0本発明においては、予備あるいはバックアップという語は、シ ステム中の他のディスクドライブが故障を起こすまでの通常の状況ではデータの 送受を行わないディスクドライブを意味する。
データ、PおよびQバイトを受けると、ACC回路は故障ドライブレジスタの故 障ドライブ位置を用いて、故障ドライブに対しての置き換えデータ計算の指示を 行う、計算が完了すると、修復されたデータを含むデータバイトはデータバッフ ァに並列に送られる。ここに用いたリード・ソロモン符号では最大2台まで、ド ライブの故障が許される。故障ディスクドライブとそれが記憶していたデータの 置き換え動作のすべては、システムが並列モードで動作している際に行われる。
データの再生成は第2レベルコントローラの制御のもとで行われる。故障ディス クドライブを交換する必要があるときは、ACCは交換されたディスクに対して すべてのデータを再生成する。すべてのデータが置き換えられるまで読みとり/ 書き込み動作が続けられる。ディスクの再生成にはかなりの時間が必要とされる ので、その処理はシステムのバックグランド動作として行い、通常のデータ伝送 機能にインバク1−を与えないようにする。以下の表3は再生成読みだしのため にとられる動作を示している0表3において、iは第1の故障ドライブを、jは 第2の故障ドライブを表す0表3の故陣上立±1と記された列はどのドライブが 故障を起こしたのかを表す、最後の列はそれぞれの表記された故障に対してAC Cが行うべき仕事の内容を表している。
もしも、データディスクと冗長ディスクの両方がともに故障を起こした場合には 、冗長ディスクの冗長項の再生成を行う前に、データディスクのデータの再生成 を先に行わねばならないことに注意すべきである。再生成書き込みの間は、再生 データあるいは再生冗長項がディスクに書き込まれるだけであり、ACC論理が 特にすべき動作は何もない。
再生成読み出し 援り公げ P −ACCはP冗長性を計算 Q −ACCはQ冗長性を計算 i −ACCはiドライブの置き換えデータを計算i P ACCはiドライブ の置き換えデータとP冗長性を計算Q i ACCはiドライブの置き換えデー タとQ冗長性を計算j i ACCはiおよびjドライブの置き換えデータを計 算並列読みだし動作の間も、ACC回路は誤り検出をさらに行っていることに注 意のこと。
表4は故障ドライブ読みだし動作の間に、表示のドライブが故障を起こした場合 のACC論理ユニットがとるべき動作を示している。この動作においては、故限 且iヱプと記された列のドライブは読みだし動作を行う以前に故障を起こしてい たドライブ名を表している。最後の列は与えられた故障に対してACCがとるべ き応答である。
故障且i工I P ACCのとるべき動作なし Q ACCのとるべき動作なし i ACCは置き換えデータを計算 i P ACCは置き換えデータを計算Q i ACCは置き換えデータを計算 i j ACCは置き換えデータを計算P Q ACCのとるべき動作なし トーンザクジョン几 モード:梳み人みトランザクション処理を行うには、各々 のディスクに対して独立してアクセスする能力が要求される。各々のディスク自 体は独立しているものの、PおよびQ冗長性行きACC符号ワードは上記のよう なやり方でディスクの組にまたがって保持される。通常の読み込み動作において は、ACC回路は一般的には必要ではない。単一のドライブのみが読み出されて いるようなときに限っては、ACCはその計算能力を失ってしまう、というのは 、ACCは符号ワード全体をアセンブルしてPおよびQを再計算し、記憶しであ るPおよびQと比較をするのに、他のドライブからのデータが必要となるからで ある。このような場合においては、データは妥当であるものと仮定されて、AC C回路を用いることなく読み出される。
(図15参照)ドライブ20C1が選択されたドライブであるときには、データ は単にDSIユニット342、クロスバ−スイッチ312、ワードアセンブラ− 352、バッファ332を通って外部コンピュータへ伝送されるだけである。デ ィスクドライブが故障を起こした際の読みだし動作は、ACCによって再生成さ れた置き換えデータがデータバッファに送られる点を除いては、並列動作モード における故障ドライブ読みだしと同しである。しかし、この場合、ディスクドラ イブは第2レベルコントローラに対して故障を起こしたことを知らせる必要があ る。あるいは、第2レベルコントローラが故障を検知することが必要である。さ もないと、第2レベルコントローラは、所望のドライブから読み込んだデータに 誤りがあると仮定するまで、ドライブの全てを読み出す必要があることを知るこ とができない0図16に故障ドライブ読み出しを示した。ここでは、図15の例 におけるように、ドライブ20C1が所望のデータを持っているものとしている 。
図16において、第2レベルコントローラはドライブ20C1が故障したことを 知っており、故障ドライブ以外の他のすべてのドライブの読み出しを行い、他の ドライブからのデータとPおよびQ冗長項を用いてドライブ20C1のデータの 再構築を行う。再構築されたデータのみがバッファ322に対して供給される、 というのは、このデータだけを外部コンピュータが必要としているからである。
トーンザクジョン モ一一:゛ どの個々のドライブに対して書き込みがなされているにせよ、PおよびQ冗長項 は新たなデータを反映するように変えていかねばならない、(図18参照)これ は、書き込まれたデータというのは、複数のディスクドライブにまたがっていて 、二つのディスクドライブにそのPおよびQ冗長項を持っている符号ワードの一 部であるからである。符号ワードの一部が変わったときには、前に記憶されたP およびQ冗長項は、もはや妥当ではない、従って、新たなPおよびQ項、P′お よびQ″、を計算し、それぞれのディスクドライブの古いPおよびQ項と置き換 えて書き込まねばならない、そうすることによって、P′およびQ#は新たな符 号ワードに対する適当な冗長項となる。
P′およびQ#の計算を行う一つの可能な方法は、すべての符号ワードを読み出 し、それをバッファに記憶させることである。ACC回路に、ドライブ20C1 に対する符号ワードの新たな部分が、符号ワードの他の残りの部分とともに供給 されて、P″およびQ″が計算され、ディスクドライブに通常の並列書き込みと して記憶される。しかしながら、この方法を採用した場合、符号ワードの一部を 有している他の別のディスクドライブ(すなわち20Aりのトランザクジョンモ ードアクセスを同時に行うことは不可能である。なぜなら、そのドライブ(20 Al)と、そのバッファが最初のドライブ(20C1)へのトランザクンゴンモ ード書き込みのために必要となるからである。
本発明の方法によれば、書き直しすべき古いデータと新しいP“、Qlを計算す るための古いP、Qのみを用いて、二つのトランザクシランモードアクセスを同 時に達成することが可能となる。これは、古いデータと古いPおよびQから中間 的なP′およびQ′を算出し、このP’、Q’ と新しいデータとから新しいP ″、Q″とを計算するものである。これには、読みだし一変形一書き込み動作が PおよびQドライブに対して必要となる。新たなPおよびQ冗長項をめるための 方程式は以下の通りである。
新しいP冗長性(P’ )= (古いP−古いデータ)十新しいデータ新しいQ 冗長性(Q’ )= (古いQ−古いデータ・ai)十新しいデータ・P’=古 いP−古いデータ Q’ =古いQ−古いデータ・al ここで、a、はシンドローム方程式S、の係数である。またiはドライブのイン デックスである。
読みだし一変形一書き込みの読みだし部分において、書き込みをしようとしてい るドライブからのデータとPおよびQドライブのデータとがACC論理回路によ って、図17に示したように足し合わされる。この和の計算によってP′および Q′データが作られる。このP’、Q’データはデータバッファに送られる。
データバッファに新しいデータがあるときにサイクルの書き込み部分が図18に 示されているように開始される。サイクルのこの部分の間に新しいデータと、P ′およびQ′との和がACC論理回路によって計算され、新しいP″、Q“冗長 性がめられる。和の算出が完了すると、新しいデータはディスクドライブに送ら れる。た冗長情報はPおよびQドライブに送られる。
トーンザクジョン・モード: ′みの ムのPおよび のこれらの読み込み一修 正一書き込み動作中に、ACC装置自体が故障することもあり得る。この場合は 、単一エレメント内のデータを読み込み一修正一書き込み動作によって変更すべ き場合、ACCにおけるハードウェアの故障によって誤って計算された新たなデ ータに冗長バイトが生ずることがある。この事態を防止するため、奇偶検出器と 奇偶生成器をACC回路の一部に組み入れる。この付加的な冗長回路は図14a 及び図14bに示され、図11に示すように冗長回路302内にある。データが ACC回路によって受け取られると、誤りが発生していないことをf1認するた めにP及びQ冗長項を用いて奇偶検査がなされる。Q′を計算する際に乗算演算 の積用に新たなパリティが生成され、古いQ″項のパリティと合計される。それ によって新たなQ項用のパリティが作成される。Pバイトの場合には、データか らの奇偶検査ビットは古いP項の奇偶検査ビットと合計されて、新たなP“項用 の新たな奇偶検査ビットが作成される。新たなデータをディスク駆動機構に再び 書き込む前に、(前述のように計算された)Q′のパリティが検査される。Q′ が正しくない場合は、第2レベルの制御エンジンにACCの故障が通知される。
このようにしてACC内の故障を検出することができる。
データが故障した駆動機構(単数又は複数)に書き込まれないことを除いて、並 列データ書き込みと同様の動作がトランザクション処理動作における故障したデ ィスク駆動機構の書き込みの場合も実行される。
通常の読み込み動作中のトランザクション処理動作に関しては、ACC論理から のアクシランは必要ない、トランザクシラン処理モードにおける故障した駆動機 構読み込み中にACC論理によって行われるアクシランが下記の表5にリストさ れており、ここにi及びjは第1及び第2の故障した駆動機構を表している。
放置しU飲機檀と記載された段はどの駆動機構が故障したかを示している。最後 の段は表示された故障に応答してACCがどのようなアクションを行うべきか、 又は行わないべきかを示している。
P −冗長駆動機構が読み込まれない;ACCアクシゴンなしQ −冗長駆動機 構が読み込まれない1Accアクシヨンなしi −ACC論理が置き換えデータ を計算し、並列読み込みを行うi P ACC論理が置き換えデータを計算し、 並列読み込みを行うQ i ACC論理が置き換えデータを計算し、並列読み込 みを行うj i ACC論理が置き換えデータを計算し、並列読み込みを行うP Q データ・ディスク駆動機構だけが読み込まれるのでACCCCアクシラン 2つのデータ・ディスク駆動機構が故障した場合は、ACC論理は双方のディス ク駆動機構について必要な置き換えデータを計算しなければならない、一つの故 障した駆動機構だけが読み込まれるべき場合も、双方の故障した駆動機構がAC C論理によってノートされなければならない。
書き込み一前一読み込み(read −before−write)動作(読み 込み一修正一書き込み処理の一部)の場合は、ACC論理はP′及びQ′冗長項 を生成する0表6はこの処理段階で故障したディスク駆動機構の読み込みが書き 込みに先行した場合にACC論理が行うアクシコンを示している。故度長U動機 構の見出しを付した段はどの駆動機構が故障したかを示し、最後の段は表示され た故障に対するACCの応答を示している。
故J上ali逍 P −ACCはQ′だけを計算する Q −ACCはP′だけを計算する i −ACC論理はアクションを起こさず、良好なデータディスク駆動装置は全 てデータ・バッファへと読み込まれるiP 良好なデータディスク駆動装置は全 てデータ・バッファへと読み込まれる Qi 良好なデータディスク駆動装置は全てデータ・バッファへと読み込まれる i j 良好なデータディスク駆動装置は全てデータ・バッファへと読み込まれ る i 故障した駆動機構 並列読み込みを行う、ACC論理は1番目の故障した駆 動機構の置き換えデータ計算する0次に、残りの良好なデータ・ディスク駆動機 構がデータ・バッファへと読み込まれる。
PQ 書き込み一前一読み込み動作は必要ない故障したデータ・ディスク駆動機 構が書き込まれる場合は、新たなP及びQ冗長度を生成できるように、良好なデ ータ・駆動機構は全て読み込まれなければならない、良好なデータ・ディスク駆 動機構からの全てのデータ及び書き込みデータは新たな冗長度を生成するために 合計される。2つのデータ・ディスク駆動機構が故障した場合は、ACC論理は 故障した双方の駆動機構について置き換えデータを計算しなければならない、一 つの駆動機構だけが読み込まれるべき場合も、双方がACC論理に報告されなけ ればならない。
書き込み動作中、ACCはP及びQ冗長度の計算を継続する1表7は故障した駆 動機構の書き込み中のACCのタスクを示している。ここでP及びQはP及びQ 冗長項のディスク駆動機構を示し、■及びjは第1と第2の故障したデータ・デ ィスク駆動機構を示す、故厘旦だ駆動機構の段は故障した特定の駆動機構を示し 、最後の段は故障した駆動機構に対するACCの応答を示している。
P −ACCはQ冗長度だけを計算するQ −ACCはP冗長度だけを計算する i −ACCはPとQの冗長度を計算するi P ACCはQ冗長度だけを計算 するQ i ACCはP冗長度だけを計算するi j ACCはPとQの冗長度 を計算するP Q ACC論理はアクシランを行わない本発明の双方の好ましい 実施例に関して本明細書に記載した相互接続された機構によって、全てのディス クから語アセンブラへの同時的転送及びその逆の転送が可能になる。所定の任意 のディスク駆動機構からの、及びそこへのデータは第2レベルの制御エンジンの 制御の下でX−バー・スイッチを介して他の任意の語アセンブラへと送られるこ とができる。更に、任意の語アセンブラ内のデータをX−バー・スイッチを介し て任意のディスク駆動機構へと送ることができる。
ACC装置は全てのX−バー・スイッチから全てのディスクを同時に受け取る。
所定の任意のディスク駆動機構が故障した場合は、これを任意の時点で回路網か ら除去することができる。X−バー・スイッチによって故障した部品の周囲にデ ータP及びQを送る代替の経路が付与される。ディスク駆動機構とX−バー・ス イッチとの並列構成によって、故障に対する許容度が著しく高いシステムが得ら れる。従来の技術では、単一の母線が幾つかのディスク駆動機構から単一の大容 量バッファへとデータを送る0本発明では、バッファは小容量であり、各々のデ ィスク駆動機構に一つのバッファが割当てられている。X−バー・スイッチはA CC装置の制御の下でデータを所定の任意のディスク駆動機構から所定の任意の バッファへと、又、その逆へと送ることができる。各々の第2レベルの制御装置 は幾つかの予備ディスクと、制御装置に連結された一つの予備バッファとを有し ている。任意の2つのディスクの故障には、故障したディスクをそのX−バー・ スイッチによって切り換え、予備ディスクの一つを回路網に切り換えることによ って容易に対応することができる。このように本発明はシステムを再構成して、 検出された任意のディスク又はバッファの故障を処理することによってシステム の完全な動作能力を保持することができる動作環境では、Reed−5olo* on 誤り修正コードの誤り検出及び修正能力を利用している。ACCは故障し たディスク駆動機構についてデータを修正し、再生することができ、故障したデ ィスク駆動機構と予備のディスク駆動機構のレジスタを再構成することによって 、システムから故障したディスク駆動機構を効率よく除去し、且つ故障したディ スクからのデータを予備ディスクへと再生もしくは再構成することができる。
−゛イスク の とl工 本発明によって物理的な大容量データ記憶装置のセットを単数又は複数の論理的 大容量記憶装置へと動的に構成することができる。本発明に従って、このような 物理的装置のセットを単数又は複数個の冗長群として構成することができ、又、 各々の冗長群を単数又は複数個のデータ群として構成することができる。
公知の装置のセントで従来から使用されている冗長群は、全てが同じ冗長装置の セットを共用している物理的装置群である。冗長装置は群内の単数又は複数の物 理的装置が故障した場合に記憶されたデータを回復するために複製されたデータ もしくはディスク・データを記憶する装置である。
チェック・データが含まれている場合は、冗長群全体のための冗長装置としての 特定の物理的装置の行き先を指定するには、群内の他の任意の物理的装置を含む 全ての書き込み動作用に冗長装置がアクセスされることが必要である。従って、 群用の全ての書き込み動作は、データ記憶装置の一部しか含まない小規模なデー タ・アクセスの場合でも互いに干渉する。
冗長群を通してチェック・データを配分し、それによって冗長群の幾つかの、又 は全ての装置の一部から成る論理冗長装置を形成することによって、書き込み動 作における上記のコンテンション問題を回避することは公知である0例えば、図 19は13のディスク記憶装置の群を示している0列は種々のディスクDl−D 13を示し、行はディスク上の異なるセクタ5L−35を示している。チェック ・データを含むセクタには陰影を付しである。ディスク013のセクタS1はデ ィスクDI−DI2のセクタ用のチェック・データを含んでいる。同様に、残り の陰影を付したセクタはそれぞれのセクタ行用のチェック・データを含んでいる 。このように、データがディスクD7のセクタS4に書き込まれると、更新され たチェック・データがディスクDIOのセクタS4に書き込まれる。これは古い チェック・データを読み込み、新たなデータを用いてこれを再符号化し、新たな ディスク・データをディスクに書き込むことによって達成される。この動作は読 み込み一修正一書き込みと呼ばれる。同様にして、データがディスクDllのセ クタS1に書き込まれる場合は、チェック・データはディスク13のセクタSL へと書き込まれる。書き込みに間して4つのディスクの上記の選択では重複がな いので、双方の読み込み一修正一書き込み動作を並行して実行することができる 。
図19に示したように冗長群にチェック・データを配分することはストライプ状 のチェック・データ構成として知られている。“ストライプ状の冗長群”という 用語はここでは一般にディスク・データが図19に示すようにストライプ状の構 成で配置された冗長群を意味し、又、“冗長群のストライプの奥行き”という用 語はここではこのようなストライプ状の冗長群での各チェック・データのストラ イプの奥行きを意味する。
従来から公知の装置のセントでは、セント全体を単一の冗長群として供給するこ とが知られていた。冗長群を種々の“エクスチンピに分割可能であり、その各々 が冗長群の奥行きの一部として定義され、各々が同じ冗長群の別々のエフテント のチェック・データとは異なるチェック・データを有することができることが発 見された。更に、単一の“プレイ制御装置”の制御の下で一つ以上の冗長群を単 一の装置のセットに供給することができ、且つ単数又は複数個の装置制御器を介 して主処理装置に接続できることが発見された。
同様に、従来から公知の装置セットでは、単一の冗長群がアプリチージョン・デ ータ用の単一のデータ群だけを含んでいた。すなわち装置セットは単一の論理装 置として動作した。しかし、冗長群を複数のデータ群へと分解でき、その各々が 別個の論理記憶装置として、又は容量がより大きい論理記憶装置の一部として動 作可能であることが発見された。データ群は単一の物理的装置での利用可能な全 ての大容量記憶装置(すなわち、アプリケーション・データを記憶するために利 用できる装置上の全ての記憶装置)を含むことができ、又は、冗長群内の複数個 の物理的装置での利用可能な全ての大容量記憶装置を含むことができる。あるい は、以下に更に詳細に説明するように、データ群は幾つかの物理的装置を含むこ とができるが、しかし、各装置の利用できる全ての大容量記憶装置を含むのでは なく、各装置の利用できる大容量記憶装置の一部だけを含むこともできる。更に 、異なる冗長群からのデータ群によって単一の論理装置を形成することもできる ことが発見された。これは後に詳述するように、冗長群及びデータ群に付加的な 論理層を重ねることによって達成される。
更に、アプリケーション・データが装置のセットに割り込まれる(インタリーブ )従来から公知の装置セットでは、データ編成、すなわち形状は極めて簡単な形 式のものである。このようなセットでは一般に、同じ論理装置内での異なるアプ リケーション・データの論理編成は不可能であり、又、論理装置内でのアプリケ ーション・データの論理編成の動的なマンピングは不可能である。データ群内で のデータの編成は多様な方途で動的に構成できることが発見された。特に重要な 点は、データ群のデータ・ストライプの奥行きを冗長群のストライプの奥行きと は独立させることができ、且つ、論理装置内の一つのデータ群と別のデータ群で ストライプの奥行きを変えることによって、データ記憶の要求が異なるアプリケ ーション用に最適な性能特性を付与することができることが発見されたことであ る。
第2レベルの制御装置14A及び14Bを含む大容量記憶システム500の実施 例が図20の構成図に示されている0図20に示すように、並列セット501及 び502はそれぞれ13個の物理的装置503−515と第2レベルの制御装置 14とを含んでいる。第2レベル制御装置14は並列セットの駆動機構にデータ が書き込まれ、妥当性の検査がなされる態様を制御するマイクロプロセッサ51 6aを含んでいる。マイクロプロセッサ516aは更に物理的装置の一つが誤動 作するか、又は並列セットの別の物理的装置との同期性を喪失した場合にデータ の更新又は再構成の制御を行う0本発明に従って、各第2レベルの制御装置14 内のマイクロプロセッサ516aは更に並列セット501と502を冗長群と、 データ群とアプリケージジン装置とに分割することを制御する。冗長群と、デー タ群とアプリケーション装置とは並列セットが据え付けられる際に、システムの オペレータによって最初に構成することができ、又は並列セットの実行時間中の 使用前の任意の時点で構成することができる。この構成は後に詳述するように、 マイクロプロセッサ516aのプログラム記憶装置内の種々のアドレス・マツプ を作成する際に使用される特定の構成パラメタを定めることによって、又、好ま しくは並列セットの各々の物理的装置において達成可能である。第2レベルの制 御装置14A及び14Bはそれぞれ一対の第ルベルの制御装置12A及び12B と接続されている。一方、第ルベルの制御装置は母線又はチャネル522によっ てCPUの主記憶装置に接続されている。一般に、各々の並列セントは少なくと も2セツトの制御装置に取り付けられているので、単数又は複数のCPU主記憶 装置から前記並列セットには少なくとも2つの並列経路がある。このように、例 えば第2レベルの制御装置14a及び14bはそれぞれ母線524及び526に よって第ルベルの制御装置12及び12Bに接続されている。CPUから並列セ ットへのこのような並列データ経路は前述のように稼働中の、又は故障した第1 又は第2レベルの制御装置の周囲にデータを送ることに有用である。
それぞれの並列セット内にはディスク駆動装置503−514から成る能動セッ ト528と、ディスク駆動機構515から成るバックアップ・セットがある。
第2レベル制御装置14はデータを第ルベル制御装置12と適宜の単数又は複数 のディスク駆動機構503−515との間に送る。第ルベル制御装置12は並列 セット501と502を単数又は複数のCPUの主記憶装置へとインタフェース し、これらのCPUによって実行中のアブリケーシッンからのI10要求の処理 のために応答する。並列セット501及び502は第ルベル制御装置12の装置 の種々の構成部品の更に詳細な説明は本明細書に全体が組み込まれている同一の 出願人による係属の下記の米国特許明細書に記載されている。すなわち、Dav id T、 Powers+ Randy Katz、 David H,Ja ffe、 Joseph s、 G11der及びT■盾高≠■ E、 Idlemanの名義で出願された[データ記憶装置における書き込み動 作識別子の不揮発性記憶装置の記憶域」の名称の米国特許連続出願番号第07/ 487.648号、及び、David T、 Powers、 Joseph  s、 Gljder及びThomas E、 Idlemanの名義で出願され た「独立ディスクの冗長プレイに応用可能なデータ修正」の名称の米国特許連続 出願番号第07/488.750号である。
並列セント501又は502の能動セント528の種々の物理的装置間にデータ が広がる11様を理解するためには、単一の駆動機構の形状構成を理解すること が必要である0図21は最も簡単な種類のディスク駆動機構、すなわち単一プラ ッタ駆動機構の片側を示している。ディスク駆動機構の中には両側にデータを記 憶できる単一のディスク状1プラツタ”を有しているものもある。より複雑な駆 動機構では、ブラックが周囲を回転する中心の柱である一つの“スピンドル”上 に幾つかのプラックがある場合もある。
図21に示すように、ディスク・プラッタの各々の側面600は幾何学的角60 1に分割され、図21にはそのうちの8つが図示されているが、別の数でもよい 、側面600は更に幅がほぼ等しいリング状の“トラック”に分割され、図21 ではそのうちの7つが示されている。トランクと幾何学的角との交差部分はセク タと呼ばれ、一般にディスク駆動システムにおける最も基本的な記憶単位である 0図21には56のセクタ603が示されている。
単一のスピンドル上のディスク・プラッタの幾つかの側面600上の半径が等し いトラック602の集積が“シリンダを構成する。このように、単一プラッタ・ 2面駆動機構では、高さ−2のシリンダがあり、シリンダ数は側面600上のト ラック602の数と等しい、そこで、2プラツタの駆動機構では、シリンダの高 さば4となろう1片面・単一プラッタの駆動機構ではシリンダの高さは1である 。
ディスク駆動機構は側面600の表面上を移動する“読み込み/書き込みヘッド “によって読み込まれ、且つ書き込まれる0図22は本発明を説明するのに適す るようにデータのサブユニット−セクタ、トラック及びシリンダーを8個の単一 プラッタ・2面駆動機構700−707に配分した状態を示している0例えば駆 動機構700−707は並列セット502又は502の駆動ユニット503−5 10に対応する。小さい水平の区分はそれぞれセクタ708を表している。各々 の駆動機構毎に4個のシリンダ709−712を示し、各シリンダは2個のトラ ック713及び714を含み、各トラックは5個のセクタを含んでいる。
図22に示した好ましい実施例では、群716はデータ冗長度を付与するために ”P”チェック・データと″Q″チェック・データと呼ばれる2種類の冗長デー タが使用される単一の冗長群から成っている。P及びQチェック・データは冗長 群内に記憶された大容量記憶装置のデータに適用されるReed−5oloso n符号化アルゴリズムの結果である。使用される冗長度の特定の方法は作成目的 によって異なる0図示のとおり、冗長データは群716の全てのスピンドル、も しくは物理的装置に配分され、それによって群716から成る冗長群用に2つの 論理的チェック駆動機構を形成する0例えば、駆動機構700−705のシリン ダ709のセクタ708内のデータ用のP及びQチェック・データはそれぞれ駆 動機構706及び707のシリンダ709内に含まれる。駆動機構700−70 5の任意の一つのシリンダ709内の任意のセクタ708にデータが書き込まれ る毎に、冗長データを更新するために、駆動機構706及び707の対応するセ クタに含まれるP及びQチェ7り・データで読み込み一修正一書き込み動作が実 行される。
同様にして、駆動機構700−707のシリンダ710は駆動機構704及び7 05のシリンダ710内に含まれるP及びQチェック・データを共用する。駆動 機構700−707のシリンダ710は駆動機構704及び705のシリンダ7 10内に含まれるP及びQチェック・データを共用し、駆動機構700−707 のシリンダ712は駆動機構700及び701のシリンダ712内に含まれるP 及びQチェック・データを共用する。
3つのデータ群Di−D3が図22に示されている。データ群DIは各スピンド ル700.701のシリンダ709を含んでいる。データ群D2は各スピンドル 702.703のシリンダ709を含んでいる。データ群D3は、P及びQチェ ック・データを含むシリンダを除いて残りの全ての各スピンドル700−707 のシリンダを含んでいる。データ群D1は2スピンドルの帯域幅を有し、データ 群D2は4スピンドルの帯域幅を有し、データ群D3は6スピンドルの帯域幅を 有している。このように図22には本発明の原理に従って、冗長群を異なる帯域 幅の幾つかのデータ群から構成することができることが示されている。更に、各 々のデータ群DI−D3は単独で、又は他の任意のデータ群(単数又は複数)と 組み合わせて別個の論理記憶装置を構成することができる。これは各データ群又 はその組合わせを個々のアブリケーシッン・ユニットとして定義することによっ て達成される。
図22ではセクタ708は各データ群内で論理データ・ブロックのシーケンスと して番号付けされている。このシーケンスはデータ群が構成されるときに定めら れ、種々の方法で構成することができる0図22は各データ群Di−D3内のセ クタが左から右へとそれぞれのデータ群の幅と交差するストライプで番号付けさ れた比較的簡単な構成を示しており、各データ・ストライプは一つのセクタ分の 奥行きを有している。このような構成によって所定の帯域幅の各データ群につい て、連続して番号付けされたセクタの最大の並列伝送速度が可能になる。
“データ群ストライプの奥行き”という用語はここでは、所定のデータ群に関し て、このデータ群の単一のストライプの境界内で駆動機構に記憶された論理的に 連続したデータ・セクタの数を記述するために用いられる0本発明の原理に従っ て、データ群のストライプの奥行きは冗長群のストライプの奥行きよりも小さく てもよく、大きくても、等しくてもよい、その−例として、図22はデータ群D I−D3が各々一つのセクタ分のデータ群のストライプの奥行きを有しており、 データ群の全てが一つのシリンダ分の冗長群のストライプの奥行きを有する冗長 群内に含まれていることを示している。
スピンドルの読み込み/書き込みへノドは互いに独立して移動することができる ので、冗長群716は6つまでのデータ読み込み要求を同時に(スピンドル70 0−705の各々から一つずつ)処理することができる0図22に構成されたよ うな冗長群は更に、書き込み要求の特定の組合せを同時に処理することができる 0例えば、多くの場合、スピンドル700.701.706又は707上のP又 はQチェック・データによってバックアップされないスピンドル702−705 に含まれるデータ群D3の任意のデータ・セクタと同時に、データ群DIの任意 のデータ・セクタを書き込むことができる。
図22のように構成された冗長群716は通常はデータ群DI及びD2内のセク タへの同時書き込み動作を処理できないが、これらのデータ群のいずれにおいて も書き込み動作を実行するために、駆動機構706と707にも同様に書き込み することが必要である。読み込み/書き込みヘッドは一時に一箇所にしかあり得 ないので、駆動機[706,707のチェック・データでは一つの書き込み動作 しか実行できない、同様にして、データ群の配分に関わらず、同じ駆動機構上の チェック・データによってバックアップされた任意の2つのデータ・セクタへの 書き込み動作は同時には実行できない、チェック駆動機構の読み込み/書き込み ヘッドが一時に一箇所以上存在することが必要である状態は“衝突”と呼ばれる ことがある。
共通のチェック駆動機構を共用する異なるデータ駆動機構への同時書き込みに関 する前述の制約はチェック駆動機構システムにvP存のものであり、本発明の限 界ではないことを理解されたい0例えば、この制約は異なるデータ駆動機構が同 じ駆動機構上の冗長データを共用する特性を有していない反照(mirrore d)冗長群を用いて本発明を実施することによって回避することができる。
図23は本発明に従って構成された冗長群716の更に好ましい実施例を示して いる0図23では、図22と同様に、論理チェック“駆動機構”はシリンダ毎の ベースでスピンドル700−707の全ての間に広がっている。しかし、これら はトラック毎のベースにも、又、セクタ毎のベースにさえも準拠できる。
データ群Di及びD2は図22に示すように構成されている。しかし、図22の データ群D3のセクタは4つのデータ群D4−07の間で分割されたものである 0図23に示すように、データ群D4−D7内のセクタの順序付けはデータ群D 1及びD2の単一セクタ分の奥行きのストライビングとはもはや同じではない。
データ群D4は20のセクタ分のデータ群ストライプの奥行きを有しており、こ れはデータ群自体の奥行きと等しい、従って、データ群D4では単一のスピンド ル700だけをアクセスすることによって論理的に番号付けされたセクタ0−9 は連続的に読み込まれることができ、それによって、スピンドル701−707 の読み込み/書き込みヘッドは他のトランザクションを処理することが可能にな る。データ群D5、D6及びD7は各々5つのセクタ、2つのセクタ及び4つの セクタ分のそれぞれ異なる中間データ群ストライプの奥行きの例を示している。
種々のスピンドルへのチェック・データの配分は衝突を最小限にするように選択 することができる。更に、特定の配分がなされた場合、第2レベルの制御装置1 4が動作順を選択できる範囲内で、この順序を衝突を最小限にするように選択す ることができる。
並列セット501又は502の能動セット528への冗長群とデータ群の配分は パラメタ化することができる0例えば、冗長群は特定のセットのチェック・デー タに亘るスピンドル数を表す冗長群の幅(スピンドル単位)と、冗長群の奥行き (任意のサブユニット、すなわちセクタ、トラック又はシリンダ単位)と、冗長 群ストライプの奥行き(これも任意のサブユニット、すなわちセクタ、トラック 又はシリンダ単位)とによって特徴付けることができる。データ群は輻(スピン ドル単位)と、奥行き(任意のサブユニット、すなわちセクタ、トラック又はシ リンダ単位)と、データ群ストライブの奥行き(これも任意のサブユニット、す なわちセクタ、トラック又はシリンダ単位)とによって特徴付けることができる 。データ群は能動セット528の始端でのみ開始するものではないので、データ 群は更にスピンドルと、データ群が開始するスピンドルの始端からの偏位との2 パラメタ表示である“ベース”によっても特徴付けられる。冗長群はデータ群と 同様にスピンドル全体の一部しか含まないこともあり得る。更に、本明細書で前 述したように、冗長群は複数のエクステントに分割することができる。冗長群の エクステントは幅が等しく、ベースと奥行きは異なる。各々のエクステントにつ いて、そこに含まれるチェック・データの配分を別個にパラメタ化することがで きる。好ましい実施例では、各々の冗長群のエクステントは冗長群のエクステン ト内の各冗長群のストライプや、このような冗長群のストライプ毎のP及びQチ ェック・データの駆動位置のような付加的な内部パラメタを有している。
冗長群の幅は信頼性と容量との取引きの反映である。冗長群の幅が大きければ、 より大きい容量が得られるが、それはチェック・データ用には多数の駆動機構の 中から2つだけが利用され、残りの駆動機構はデータ用に残されるからである。
別の極端な例として、冗長群の幅−4である場合は、駆動機構の50%がチェッ ク・データに利用されるミラーイングもしくはシャドウィング(−irrori ng orshadoiiing)に近い状況が生ずる。(ミラーイングの場合 、4つのうちの2つの正しい駆動機構が故障した場合、それらの駆動機構のデー タの全てが損失されることがあり、一方、チェック・データを用いればいずれか 2つのデータをその状況で再生できるのであるが)このように冗長群の幅が小さ いことは信頼性が高まるが、コスト単位の容量は小さくなることを表し、一方、 冗長群の幅が大きいことはコスト単位の容量は太き(なるが、信頼性は低くなる 。しかし、その場合でも信頼性は依然として比較的高い。
データ群の幅は帯域幅と要求速度との前記の取引きの反映であり、データ群の幅 が大きくなれば帯域幅が大きくなり、データ群の幅が小さくなれば要求速度が高 まる。
データ群の奥行きも帯域幅と要求速度との前記の取引きの反映である。その調整 はI10要求の平均サイズと、データ群及びデータ群内のデータ・ストライプの 奥行きとの関係によって変化する。平均I10要求サイズと、データ群ストライ プの奥行きとの関係はデータ群に対するI10要求がどの程度頻繁にデータ群内 の一つ以上の読み込み/書き込みヘッドに亘るかを制御する。それは更に帯域幅 と要求速度とを制御する。帯域幅が大きいことが望ましい場合は、データ群スト ライブの奥行きを、ストライプの奥行きに対する平均I10要求サイズの比率が 大きくなるように選択することが好ましい、その比率が大きいとI10要求が複 数のデータ駆動機構に亘る確率が高まるので、要求されたデータは、データが全 て一つの装置上に配された場合よりも大きい帯域幅でアクセスされることができ る。一方、高い要求速度が望ましい場合は、データ群ストライプの奥行きを、デ ータ群のストライプの奥行きに対する平均I10要求サイズの比率が小さくなる ように選択することが好ましい、その比率が小さくなることによって、I10要 求が一つ以上のデータ駆動機構に亘る確率が少なくなるので、データ群に対する 複数のI10要求を同時に処理できる確率が高まる。
■/○要求の平均サイズの変化はデータ群のストライプの奥行きを選択する際に も考慮に入れることができよう0例えば、所定の平均I10要求サイズにおいて 、所望の要求速度を達成するのに必要なデータ群ストライプの奥行きはI10要 求サイズの変化の増大と共に大きくなるであろう。
本発明に従って、複数個の大容量記憶装置から成る大容量記憶装置のフレキシビ リティは一つの、又は異なる冗長群からのデータ群を、ここではアブリケーシッ ン・ユニットと呼ぶ共通の論理装置へと区分することによって更に増強すること ができる。かくしてこのようなアプリケーション・ユニットはオペレーティング ・システムの応用ソフトウェアに種々のデータ群の異なる動作特性を結合する単 一の大容量論理記憶装置として出現することができる。更に、このようなアプリ ケーション・ユニットを使用することによって、応用ソフトウェアにより予期さ れるいかなる記憶アーキテクチャからも独立して、システムのオペレータによっ てデータ群と冗長群とを所望のとおりに構成することが可能になる。この付加的 なレベルの論理的区分は、冗長群とデータ群の論理レベルと同様に第2レベル制 御装置14によって制御される。
図24はアブリケーシッン・ユニットと、データ群と冗長群とを並列セットの初 期状態で、並列セット501又は502のような装置のセットにマツピングし得 る態様を示している。
先ず論理装置アドレス空間の線形グラフ800を参照すると、このグラフはCP Uオペレーティング・システムの応用ソフトウェアに出現する際の大容量記憶装 置を表している0図24の特定の実施例では、並列セントは2個のアプリケーシ ョン(論理)ユニット(LUNO及びLUNI)から成る論理ユニットのアドレ ス空間を供給するように構成された。論理ユニットLUNOは論理ブロック番号 LBNO−LBN19を有する20個のアドレス指定可能なブロックを含むよう に構成されている0図24に示すように、論理ユニットLUNOは更に動的構成 用に反転されるマツピングされない論理アドレス空間802をも含んでいる。
動的構成とは並列セットの実行時間中にCPUの応用ソフトウェアが並列セット の構成を初期の構成から変更するように要求できることを意味している0図24 の例では、マツピングされない空間802と804は論理ユニットLUNOとL UNIのそれぞれの内部で各々反転されて、いずれの論理ユニットもオフライン される必要なく、データ群を各論理ユニットへと加えることができるようにされ る。このような動的構成能力は構成の変更を要求するためのCPUアプリケーシ ョン用のメツセージ・サービスを提供することによって実現することができる。
大容量記憶システム500に代わって、メツセージ・サービスは例えば第2レベ ル制御装置14によって処理されることができる。論理ユニットLUNIは複数 個のアドレス指定可能なブロックLBNO−LBN179と、LBN200−L BN239とを含んでいる。論理ブロックLBN180−LBN199は動的構 成用に反転され、並列セットの初期構成では、図24に示すように応用ソフトウ ェアには利用できない。
論理ユニットLUNOの大容量記憶装置のアドレス空間はデータ群アドレス空間 図806に示すように単一のデータ群Diから成っている。データ群D1は図2 2に示すように構成され、且つ論理ブロック番号LBNO−LBNI 9と一つ 一つ対応する20の論理的に連続したデータ・ブロック0−19を含んでいる。
論理ユニットLUNIは論理ユニッ)LUNIの論理ブロックLBN200−2 39に対応する0−39の番号が付された40のデータ・ブロックと、論理ユニ ッ)LUNIの論理ブロックLBNO−179に対応する0−179の番号が付 された180のデータ・ブロックとから成る2つのデータ群D2及びD3を含ん でいる0図24の例で示すように、論理ユニットの論理ブロックは種々の方法で 所望のとおりに単数又は複数のデータ群のデータ・ブロックへとマツピングする ことができる、データ群のアドレス空間806も動的構成用に反転された付加的 なデータ群(D4)と(D5)とを含んでいる。これらのデータ群は初期状態設 定又は並列セットの実行時間中の任意の時点で並列セットのディスク駆動装置上 で書式化することができるが、並列セットの初期の構成での応用ソフトウェアに は利用できない、並列セットの冗長群の構成は並列セットの全体の記憶空間から 成る二次元アドレス空間808によって示されている。アドレス空間808の水 平軸は能動セット528の12の駆動機構と、バックアップ・セット530の一 つの別個の駆動機構とを含む13個の物理的駆動機構を表している0図24では 、能動セントの駆動機構には並列セット内での論理的位置を反映するためにそれ ぞれ0−11の番号が付されている。アドレス空間808の垂直軸は各々の物理 的駆動機構のセクタを表している。冗長群のアドレス空間808によって示され るように、並列セットは3つのエクステントA、B及びCを有する一つの冗長群 RGOとして構成されている0図示のとおり、各エクステントの奥行きは冗長群 RGOの奥行き、すなわち12の論理駆動位置又は、別の観点では能動セット5 28の幅全体に等しい。
冗長群RGOのエクステントAは駆動機構0−11のセクタ1−5を含んでいる 。このように、冗長群RGOのエクステントAは12のスピンドル分の幅と、5 つのセクタ分のエクステントの奥行きを有している0図24の例では、エクステ ントAは大容量記憶システム500と関連する診断プログラム用の記憶空間とし て供給されている。このような診断プログラムは実行される特定の診断オペレー ションに応じて多くの方法でエクステントAの記憶空間を構成することができる 0診断プログラムは例えば別のエクステントの一部を、アプリケーション・デー タ及びチェック・データを含めてエクステントAの境界内で再構成せしめること ができる。
冗長群RGOのエクステントBは並列セットに記憶された全てのアプリケーショ ン・データを含んでいる。より詳細に述べると、図24の例ではエクステントB は図22のように構成されたデータ群D1、D2及びD3並びにデータ群(D4 )及び(D5)用に予約された付加的な記憶空間及びいずれの論理ユニ7)LL INO又はLUNIにもマツピングされない記憶空間の領域809とを含んでい る。この領域809は例えば別の特定業務で利用される別の論理ユニット(例え ばLUN2)へとマツピングされることができる。
アドレス空間808は更に第2#断フイールドを配することができる第3のエク ステントCを含んでいる。並列セットは単一の冗長群RGOだけを含んでいるも のとして示されているが、代案として並列セットを一つ以上の冗長群へと分割す ることもできる0例えば、冗長群RGOを図22及び図23に示すような論理駆 動位置0−7を含む8つのスピンドル分の幅に限定することができ、第2冗長群 を論理駆動位置8−11用に備えることができよう。
更に並列セットの奥行き全体が必ずしも冗長群R(1,0内に含まれる必要はな い図24は上と下の冗長群RGOが冗長群に含まれない記憶空間808の部分8 10及び811であることを示している0図24の例では、部分810と811 は並列セットの構成を反映するデータ構造を含んでいる。これらのデータ構造は 図25に関連して後に詳述する。更に、図24の領域り及び已によって示される 部分のようなエクステントA、B及びCのセット間の記憶空間の任意の分を冗長 群RGOから除外してもよい。
図24は論理位置0内の駆動機構の物理的アドレス空間の直線的な表現を示すグ ラフ812をも含んでいる。グラフ812は線o’ −o“に沿ったアドレス空 間表810の断面図を表しており、且つ図24の並列セット構造の例で実施され た本発明の種々の論理レベルの相互の関係を示している。
前述したように、並列セットは据え付けの時点及び並列セットの実行時間中の双 方又は一方の時点でオペレータによって初期状態に構成されることができる。
オペレータは先ず各々のユニット毎の容量、性能及び冗長度の要求を定めること によって、オペレータが使用したいアプリケ−シロン・ユニットを様式化し、構 成する。この点については本明細書で前述したとおりである。容量、性能及び冗 長度の要求が定められると、各々の論理層(冗長群の層、データ群の層及びアプ リケーション・ユニットの層)毎のパラメタを定義することによって、ユニット の論理構造を指定することができる。これらのパラメタは第2レベルの制御装置 14のプロセッサ516aによって実行される構成ユーティリティ・プログラム に付与される。構成ユーティリティは記憶装置にある並列セット用の構成情報の データヘースを管理する。並列セットに影響する電力の故障が生した場合に情報 が損失することを防止するため、このデータベース内報のコピーを不揮発性記憶 装置内に保存しておくことが好ましい、プロセッサ516aによって実行される 様式ユーティリティ・プログラムは、並列セットの物理的駆動機構をオペレータ の命令どおりに様式化する際に、このデータベース内の情報を入力パラメタとし て利用する。
構成データヘースによって定義された基本パラメタには次のものが含まれること が好ましい。
1)各冗長群用 形式 :ミラード型(Mirrored) ;2チ工ツク駆動機構; 1チ工ツク駆動機構; チェックなしの駆動機構; 幅 :冗長群内のスピンドル数としての論理駆動位置の数エクステント サイズ :冗長群の各エクステント毎の、セクタ単位のエクステントのサイズ( 奥行き) エクステント ベース :冗長群の各エクステント毎の、エクステント内の第1セクタの物理層 アドレス ストライプの 奥行き コインタリープされたチェック駆動群毎の、チェック・データのストラ イプのセクタの奥行き、 駆動機構 :冗長群に含まれる物理的駆動機構の識別名前 :各冗長群は大容量 記憶システム500に亘って独自の名前を有している。
2)各データ群用 ベース :冗長群内のデータ群の第1駆動位置である冗長群内の駆動位置の指標 (論理駆動数) 幅 :データ群内の駆動位置(論理駆動)の数これはデータ群のアドレス空間内 に亘るセクタ数である。
開始 :データ群の長方形がベース・パラメタによって特定される論理駆動位置 で始まる冗長群エクステント内の、セクタ単位のオフセット 奥行き :冗長群エクステント内の、データ群の縦列内のセクタ数、奥行きと幅 は共に、図22−24に示した各データ群によって形成された長方形の側部と頂 部のそれぞれの寸法である。
冗長群 :データ群が所属する冗長群の名前エクステント 番号 :データ群が内部にあるエクステントを識別する名前又は番号指標 :構 成ユーティリティはその冗長群内で独自の番号を各データ群に割り当てる。この 番号は後に様式ユーティリティ用に、実行時間で、データ群を識別するために利 用される。
奥行き :データ群内の各ストライプ内の論理的に連続するブロックの、セクタ 単位の奥行き 3)各アプリケーション・ユニット用 サイズ :セクタ単位のサイズ データ群リスト:ユニット・アドレス空間内のデータ群及びそれらのサイズ及び 順序、及び各データ群のベース・ユニット・アドレスのリスト。
各群はそれが位置する冗長群の名前及びその指標によって識別される。
図25は並列セット501又は502のような装置セットの構成データベースを 作成する際に利用できる前述のパラメタを含むデータ構造の例を示している。
これらのデータ構造はそれらが採用される特定の装置セットに適合するように所 望どおりに変更することができる0例えば、以下に説明するデータ構造では特定 の装置セットでは使用しなくてもよい多くのオプシツンが可能であり、このよう な場合はデータ構造を簡略にしてもよい。
構成データベースには並列セントを基準にする各アプリケーション・ユニット用 の個々のユニット制御ブロック(UCB)を含んでいる。(ユニットは一つ以上 の並列セットへとマツピングできる。)これらのUCBは連結されたりスト90 0内で相互に結合される。各UCBはこのUCBによって設定されるアプリケー ション・ユニットの数を特定するAPPLICATION UNIT #のラベ ルを付された欄を含んでいる。或いは、連結リスト900内のUCBは連結リス ト900又はマイクロプロセッサ516aのプログラム記憶装置内の別のデータ 構造内に含まれるアドレス・ポインタ表によって識別することもできよう、各U CBは更に特定のアプリケーション・ユニット内に含まれるデータ群のマツプ9 01を含んでいる。データ群マツプ901はアプリケーション・ユニット内のデ ータ群の数を定義するカウント欄902と、アプリケーション・ユニットのサイ ズをセクタ単位で定義するサイズ欄904と、アプリケーション・ユニットの線 形アドレス空間が連続的(相対アドレス指定)であるか、不連続(絶対アドレス 指定)であるかを定義する形式[906とを含んでいる。不連続のアドレス空間 はアプリケーション・ユニットの一部を図22のデータ群(D4)及び(D5) に関連して前述したように、動的構成用に反転できるようにするために利用され る。
データ群マツプ901は更にアプリケーション・ユニット内の各データ群毎のデ ータ群マツピング・エレメント908を含んでいる。各々のデータ群マツピング ・エレメント908は対応するデータ群のサイズをセクタで定義するサイズ欄9 10と、データ群リスト916内の記述子へのポインタ912と、アレイ制御ブ ロック720へのポインタ718と、指標欄721とを含んでいる。データ群マ ツピング・エレメント908は各データ群のデータ・ブロックがアプリケーショ ン・ユニットのLBHへとマツプする順序でリストされている0例えば、図24 のLUNIを参照すると、データ群D3用のマツピング・エレメントはデータ群 D2用のデータ群マツピング・エレメントの前にリストされよう0図24のLU NIの場合のように、アプリケーション・ユニットのアドレス空間が不連続であ る場合は、データ群マツプ901は利用できるLBNの範囲の間のギャップに対 応し、そのサイズを識別するマツピング・エレメントを含むことができる。
データ群リスト916は並列セット内の各データ群用の記述子ブロック914を 含んでおり、各データ群をそれが位置する冗長群及び冗長群エクステントへとマ ツピングするためのパラメタを供給する。データ群リスト916はリスト内の記 述子ブロックの数を識別するカウント欄717を含んでいる。ストライプ状のチ ェック・データ構造を有する冗長群の場合は、各データ群記述子ブロック914 は第1のデータ・ブロックを含む冗長群ストライプ用のチェック・データの始ま りからのデータ群の第1のデータ・ブロックの偏位を定義する“pgde1″欄 722を含むことができる。pgdel欄722の値はデータ群の第1データ・ ブロックがその上に構成される駆動機構及び、その第1データ・ブロックを含む 冗長群ストライブ用の対応するチェック・データ駆動機構の相対位置に応じて、 正でも負でもよい、この値はI10動作中にチェック・データの位置を定める際 に第2レベルの制御装置を支援するのに有用である。
各データ群記述子ブロック914は更に指標41723(指標欄721と同じ値 )と、幅WA724と、ベースWA726と、エクステント番号欄727と、開 始種728と、奥行き4111730と、データ群ストライプの奥行き欄731 と、冗長群名前811732とを含んでおり、これらの欄はそれぞれ前述の対応 するパラメタの値を定義する。
アレイ制御ブロック720は並列セットから成る駆動機構の物理的アドレス空間 に対して並列セットの冗長群のマツプを行う、プレイ制御ブロック720はアレ イ名前欄734と、並列セットの目下の構成を独自に識別する単数又は複数の欄 735を含んでいる。アレイ制御ブロック720は更に冗長群記述子ブロック7 36をも含んでいる。各冗長群記述子ブロック736は記述子ブロックに対応す る冗長群を識別する冗長群名前欄738と、冗長群幅欄740と、冗長群エクス テント・マツプ742とを含んでいる。アレイ制御ブロック720は更に、物理 的駆動機構識別子ブロック745を含んでいる。
冗長群内の各エクステント毎に、冗長群エクステント・マツプ742はエクステ ントを並列セットの記憶空間内の対応する物理的アドレスへとマツプし、エクス テント内の冗長情報の構成を定義するパラメタを含むエクステント記述子ブロッ ク746を含んでいる。−例としてエクステント記述子ブロックが図24の冗長 群RGOの3つのエクステント用に示されており、各エクステント記述子ブロッ クはエクステント番号欄747と、対応するエクステントの物理的アドレスを定 義するベース及びサイズ欄とを含んでいる。応用データのベース及びサイズ欄7 48と750はそれぞれ冗長群RGOのエクステントBのベース及びサイズに対 応する。#断(低)ベース及びサイズw752及び754はそれぞれ冗長群RG OのエクステントAのベース及びサイズに対応する。又、診断(高)ベース及び サイズw756及び758はそれぞれ冗長群RGOのエクステントCのベース及 びサイズに対応する。
各々のエクステント記述子ブロック746は更にエクステント内で実現される冗 長度の形式を定義する形式!11760を含んでいる0例えば、冗長群のエクス テントはエクステント内のデータ群(単数又は複数)内に記憶された大容量記憶 装置のデータをミラーイング又はシャドウィングすることによって作成すること ができる。(この場合は、エクステントは等しい数のデータ駆動機構と冗長駆動 機構を有する。)あるいは、Reed−3olosonの符号化アルゴリズムを 用いてエクステント内の各冗長群ストライブ用の一つの駆動機構でチェック・デ ータを生成してもよく、又は、更に洗練された1166d4o1osonの符号 化アルゴリズムを用いて各冗長群ストライプ用のチェック・データの2つの駆動 機構を作成することもできる。
形式w760は更にチェック・データがエクステントを通してストライプ状に構 成されるべきであるか、又、それをどのようにスタッガ(互い違いにずらして配 列する)するかを指定することもできる。(例えば、形成槽はエクステント内の 第1の冗長群ストライプ用のチェック・データが冗長群の2つの数値上置も高い 論理駆動位置上に配されるパターンや、エクステント内の第2の冗長群ストライ プ用のチェック・データが次の2つの数値上置も高い論理駆動位置に配されるパ ターン等の一連の標準化されたチェック・データ・パターンを指標付けすること ができよう、)更に別の方法としては、形成槽760は冗長群のエクステントの 初期の構成にチェック駆動機構が含まれていないことを表示する。これは例えば 、冗長群のエクステントが診断プログラムによって利用されるために作成された 場合に望ましい、この形式の冗長群エクステントは図24に示した冗長群RGO のエクステントAに関連して前述した通りである。
各エクステント記述子ブロック746は更に、適切であるならばエクステント内 の冗長群ストライプの奥行きを特定するための冗長群ストライプの奥行き欄76 2を含むことができる。
物理的駆動機構識別子ブロック745のリストア44は並列セット内の各物理的 駆動機構用の識別子ブロック745を含んでいる。各識別子ブロック745は物 理的駆動機構と、その現在の動作状態に関する情報を提供し、且つ、特に、対応 する物理的駆動機構の並列セット内の論理位置を定義するための単数又は複数の [764を含んでいる。
図25の種々のデータ構造の意図する機能を簡単に要約するために、連結リスト 900のユニット制御ブロックは並列セット内のデータ群に対するアプリケーシ ョン・ユニットのマツピングを定義する。冗長群へのデータ群のマツピングはデ ータ群リスト916によって定義され、並列セットの記憶装置の物理的アドレス 空間への冗長群のマツピングはアレイ制御ブロック720によって定義される。
並列セントの各物理的ディスクが様式化ユーティリティによって様式化されると き、アレイ制御ブロック720と、連結リスト900とデータ群リスト916の コピーが駆動機構上に記憶される。この情報は故障した駆動機構の再構成のよう な種々のオペレーシッンに有用である。構成データベースのコピーは更に、例え ば一つの並列セットが故障した場合、別の並列セットがそれに代わって用意され るように、別の並列セットの制御装置へと書き込むことができる。
並列セットへのそれぞれのI10要求中に、ユニット・アドレスから物理的アド レス空間へのマツピングが行われなければならない、マツピングとは下記のよう に変換するための、構成データベースの吟味である。すなわち(1)I10要求 で指定されたユニット論理アドレスから一連のデータ群アドレス・スパンへの変 換、(2)一連のデータ群アドレス・スパンから、冗長群内の論理駆動位置のア ドレス・スパンのセントへの変換、及び(3)論理駆動位置のアドレス・スパン のセットから実際の物理的駆動機構のアドレス・スパンへの変換である。このマ ツピング・プロセスは各々のI10要求に応答して構成データベースのデータ構 造を通して■10要求サーバ一段階を経ることによって行うことができる。或い は、並列セットの初期状態設定中に、構成ユーティリティは前述のような構成デ ータベースの作成に加えて、各データ群に独自の急速マツピング機能を実行する ためのI10要求サーバーのためのサブルーチンを生成することができる。i1 0要求サーバーがマフピング動作を行う特定の態様はその作成様式によって特有 であり、ここに説明する本発明に従ってI10要求サーバを作成することは当業 者には可能であるものと考えられる。
以下に述べるのは、アブリケーシッンI10要求の論理ユニットのアドレス・ス パンから並列セットの物理的アドレス空間内のスパン(単数又は複数)へとマツ プするために、I10要求サーバーが図25のデータ構造を利用するB樟の例で ある。論理ユニットのアドレス・スパンは論理アプリケーション・ユニット番号 及びこのアプリケーション・ユニット内の単数又は複数のLBNによって定義さ れるものと想定しである。
I10要求サーバはI10要求からアドレス指定されているアプリケーション・ ユニットを判定し、このアプリケージクン・ユニットが並列セントを基準にして いるかどうかを判定する。後者の判定はI10要求のAPPLICATION  UNIT #と対応するAPPLICATION UNIT #を有するUCB について結合リスト900を吟味することによって行うことができる。適宜のU CBが配されている場合は、I10要求サーバは次にI10要求で指定されてい るLBH(単数又は複数)から、これらのLBH(単数又は複数)に対応するデ ータブロック(単数又は複数)が配されているデータ群(単数又は複数)を判定 する。これは(アプリケーション・ユニットのアドレス空間内のギャップを含め た)アプリケーション・ユニットのアドレス空間の始まりからのサイズ欄の偏位 を考慮しつつ、LBH(単数又は複数)をデータ群マツプ901内のマツピング ・エレメントのサイズ41910と比較することによって達成可能である0例え ば、マツプ901内の第1のデータ群マツピング・エレメントのサイズ値がI1 0要求のLBN(単数又は複数)よりも大きい場合は、LBN (単数又は複数 )はそのデータ群内のデータブロックに対応することが判る。そうではない場合 は、その第1マツピング・エレメントのサイズ値がマツプ901内の次のデータ 群マツピング・エレメントのサイズ値に加算され、LBN (単数又は複数)が 加算結果に対してチェックされる。このプロセスはI10要求の各LBH毎にデ ータ群が特定されるまで反復される。
適宜のデータ群(単数又は複数)を特定し終わると、I10要求サーバは110 要求内のLBNのスパンを特定されたデータ群(単数又は複数)内の対応するデ ータ・ブロック番号の単−又は複数のスパンへと変換する0次に構成ユーティリ ティは指標欄921の値と、特定されたデータ群に対応する各マツピング・エレ メント908内のポインタ912とを利用して、データ群記述子ブロック914 をそのデータ群用のデータ群リスト916へと配置することができる。■10要 求サーバはデータ・ブロック番号の各スパンを論理駆動装置のアドレスのスパン へと変換するためにデータ群記述子ブロックのパラメタを利用する。
最初に、I10要求サーバはデータ群記述子ブロック914のベース[1726 からのデータ群の始端の論理駆動基地を判定する。I10要求サーバは更に欄7 32及び727から、データ群が位置している冗長群の名前とエクステント番号 を判定し、更に、開始11172Bから、その冗長群のエクステントの始端とデ ータ群の始端との間のベース9126内で特定された駆動機構上のセクタ数を判 定する。このように、例えばI10要求サーバが図24に示すように構成された データ群D3について記述子ブロックを読み込んでいる場合は、ベース1172 6はデータ群が論理駆動位置Oから始まることを示し、冗長群名前欄732はデ ータ群が冗長群RGO内にあることを示し、エクステント欄727はデータ群が エクステントB内にあることを示し、開始種728はエクステントBの始端とデ ータ群D3の最初のデータ・ブロックとの間に論理駆動位置0上の10のセクタ 分の偏位があることを示す。
データ群の最初のデータ・ブロックの論理駆動位置とエクステントの偏位が判明 することによって、I10要求サーバは次に、I10要求のLBHに対応するデ ータ群内のデータ・ブロックの各シーケンス毎の論理駆動位置とエクステントの 偏位とを判定する。これを行うため、I10要求サーバは幅w724と、奥行き 欄730と、データ群ストライブの奥行きw731の値を利用できる。データ群 の長方形の境界内にチェック・データが含まれている場合は、データ・ブロック の論理駆動位置と、エクステントの偏位したアドレス・スパンを判定する際に、 必要ならばチェック・データの位置が考慮される。これはアレイ制御ブロック7 20からの情報を用いて行うことができる。更に詳細に述べると、I10要求サ ーバは適宜の冗長群エクステント記述子ブロック746の形式欄760と、冗長 群ストライブ奥行き欄762とを吟味することによって、データ群の境界内の任 意のチェック・データの論理駆動位置とエクステント偏位とを判定することがで きる。(I10要求サーバはデータ群の記述子ブロック914内の対応するエク ステント番号欄727と適合するエクステント番号欄747を有するエクステン ト記述子ブロック746を発見することによって、どのエクステント記述子ブロ ック746が適切であるかを判定する。)それぞれの論理駆動位置とエクステン ト偏位アドレス・スパンとを並列セットの特定の物理的駆動機構上の物理的アド レス・スパンに変換することによって、I10要求サーバは物理的駆動機構識別 子ブロック745を読み込んで、識別された論理駆動位置に対応する物理的駆動 機構を判定する。■10要求サーバは更にエクステントの始端の駆動機構上の物 理的アドレスを供給する、アレイ制御ブロック720の適宜のエクステント記述 子ブロック746のベースfil(例えばアプリケーション・ベース4i175 2)をも読み込む、前述のエクステント偏位アドレス・スパンを利用して、I1 0要求サーバは次に各々の物理的駆動機構について、識別されたエクステント偏 位アドレス・スパンに対応する物理的アドレスのスパンを判定する。
並列セットの動作中に単数又は複数の物理的駆動機構が取り外されたり、故障し たりして、消失又は故障した駆動機構を予備の駆動機構で再構成しなければなら ないことがあり得る。このような場合は、新たな駆動機構用に考慮し、且つ消失 又は故障した駆動機構からのデータが再生され、予備で再構成される間の再構成 期間で実行されるべきセットの暫定的な変更を考慮するようにセットの構成を変 更しなければならない、構成データベースのパラメタを再定義することによって セット構成を再マツプするために構成ユーティリティを利用できることに留意さ れたい。
一般に、本発明に関連する当業者には、本発明の趣旨と範囲から逸脱することな く、本発明の構造上の多くの変更と、広く異なる実施例及び用途が示唆されるも のである0例えば、システムではより多数の第2レベルの制御装置と第ルベルの 制御装置を実施することができる。更地、第2レベル制御装置をディスク駆動機 構に接続する開閉回路の構造を変更して、異なる駆動機構が異なる第2レベル制 御装置の主要な責任になるようにすることもできる。従って、本発明の開示内容 と説明は純然たる説明目的であり、如何なる意味でも本発明を限定するものでは ない0本発明の範囲は添付の特許請求の範囲に記載する通りである。
区匡旦箇車鼠瓜咀 図1は、従来技術のディスク・アレイ・システを示すブロック図である。
図2は、エラー・チェック及び訂正ブロックを伴う従来技術のディスク・アレイ ・システムを示すブロック図である。
図3は、本発明のシステム全体の好適な実施例を示す図である。
図4は、ディスク駆動機構の集合内のスイッチとディスク駆動機構との相互接続 を含む、図3の挿絵を一層詳しく示す図である。
図5は、コントローラとスイッチとの間の配線のブロック図である。
図6は、図5に示されているスイッチング機能制御回路を略図示するブロック図 である。
図7は、特定の第2レベルのコントローラの種々の可能な状態を示す回復状態移 行図である。
図8A〜8■は、図7に示されている状態の各々の間の移行の際に起こる事象を 示す。
図9は、Xバー回路の一つの好適な実施例のブロック図である。
図]0は、エラー・チェック及び訂正回路の好適な実施例のブロッ、グ図である 。
図11は、Xバー・スイッチと図10に示されているACCとの詳細なブロック 図である。
図12a及び12bは、P及びQエラー検出項を計算するのに必要な論理動作を 示す。
図13a及び13bは、本発明の一実施例においてリード・ソロモンのコードワ ードがどの樟にして形成され記憶されるかを示す。
図14a及び14bは、ACCにおける奇遇性検出回路と奇遇性生成回路とを示 す。
図15.16.17、及び18は、それぞれ、トランザクション・モード通常読 み出し、トランザクション・モード故障駆動機構読み出し、トランザクション・ モード読み出し一修正一書き込み・読み出し及びトランザクション・モード読み 出し一修正一書き込み・書き込みの際のデータの流れを示す。
図]9はディスク駆動機構の集合の略図であり、ここでチェック・データは、公 知の方法に従って該集合中の駆動機構に分配される。
図20は、本発明に用いるのに通した大量記憶システムの略図である。
図21は、磁気ディスクの表面上でのデータの分配の略図である。
図22は、本発明による冗長グループの第1の好適な実施例におけるデータの分 配の略図である。
図23は、本発明による冗長グループの第2の、より特別な好適な実施例におけ るデータの分配の略図である。
図24は、本発明の原理に従って装置集合の記憶空間をどの様に構成出来るかを 示す図である。
図25は、本発明の論理レベル間でのマツピングのためのデータ構造の代表的実 施例の図である。
FIG、−1,(FKIORAKT) FIG、3゜ FIG、−4゜ ビ b牲−? FIG、iA。
FIG、−8El。
FIG、−8E。
S ゝ 5℃−8θ F/に、、8G FIG、−9゜ 外部コンピュータへ FIG、JO。
ワードアセンブラへ FIG、ム FIG、−15 、%−五 lωO R6,δ FIG 22゜ 物理グループ FIG、 2i [U叩 論理装置 配列制御ブロック 手続補正書(方式) %式% 2、発明の名称 ディスク・アレイ・システム3、補正をする者 事件との関係 出 願 人 5、補正命令の日付 平成5年4月20日6、補正の対象 (1)特許法第184条の5第1項の規定による書面の特許

Claims (79)

    【特許請求の範囲】
  1. 1.外部の出所から受信されたデータを記憶するシステムであって、その外部出 所との間のデータの流れを制御する少なくとも二つの制御手段を備えており、 少なくとも二つの制御手段に接続された複数の記憶手段を備えており、前記記憶 手段はグループに分けられており、記憶手段の特定のグループに接続された第1 制御手段が故障した場合には前記の特定のグループの制御が第2制御手段により 引き受けられることとなる様に端グループは前記制御手段のうちの少なくとも二 つによって制御され、 少なくとも二つの制御手段に接続されて、データを、前記記憶手段のグループに わたって書き込まれるべきデータ・ブロックに分解する複数のデータ処理手段を 備えており、 前記制御手段及び前記記憶手段に接続されて、選択されたエラー・コードを使っ て該外部出所から受信されたデータに基づいて記憶手段の各グループについて少 なくとも一つのエラー検出項を計算すると共に、エラーを検出するために前記エ ラー検出項をデータと比較するべく提供するエラー検出手段を備えており、前記 エラー検出手段は、前記制御手段の各々に接続されて前記制御手段からデータを 受信すると共に前記エラー検出項を記憶手段の前記グループの中のエラー・コー ド記憶手段に送信することを特徴とするシステム。
  2. 2.前記データ処理手段は、前記制御手段から受信された前記データ・ブロック を組み立てる組立手段を更に包含することを特徴とする請求の範囲第1項に記載 のシステム。
  3. 3.第1バス及び前記制御手段に接続されて、該システムに送受信されるデータ を緩衝記憶する複数のバッファー手段を更に備えることを特徴とする請求の範囲 第1項に記載のシステム。
  4. 4.前記制御手段は、 各記憶手段及び各バッファー手段の両方に接続されて、随意の前記記憶手段と随 意の前記バッファー手段との間の切替え可能な制御を行う複数のスイッチング手 段と、 各スイッチング手段に接続されて、データが選択されたバッファー手段から選択 された記憶手段に流れるのを許すと共に前記の選択された記憶手段から前記の選 択されたバッファー手段へ流れるのを許すべく前記スイッチング手段を制御する スイッチ制御手段とを更に備えることを特徴とする請求の範囲第3項に記載のシ ステム。
  5. 5.前記エラー検出手段に接続されて、前記データがいずれかの前記バッファー 手段から前記記憶手段へ前記スイッチング手段を通して送信されるときに、又は 前記記憶手段から前記バッファー手段へ前記スイッチング手段を通して送信され るときに、データの中のエラーを訂正するエラー訂正手段を更に備えることを特 徴とする請求の範囲第3項に記載のシステム。
  6. 6.該エラー検出手段は、前記バッファー手段及び前記記憶手段から受信された 前記データ中のエラーを検出するためにリード・ソロモン・エラー・コードを使 うことを特徴とする請求の範囲第3項に記載のシステム。
  7. 7.前記エラー検出手段に接続されて、前記エラー検出手段からの前記エラー検 出項の受信に応じて、誤ったデータを送信する該システム記憶手段及びバッファ ー手段から分離するための分離手段を更に備えることを特徴とする請求の範囲第 3項に記載のシステム。
  8. 8.前記エラー検出手段は、随意の選択されたバッファー手段から随意の選択さ れた記憶手段へ、及び、随意の選択された記憶手段から随意の選択されたバッフ ァー手段へ、データを経路指定することを特徴とする請求の範囲第3項に記載の システム。
  9. 9.前記の複数の記憶手段は、 外部出所からのデータを記憶するデータ記憶手段の第1グループと、前記エラー 検出手段により生成されたECCデータを記憶するエラー・チェック及び訂正( ECC)記憶手段の第2グループとから成ることを特徴とする請求の範囲第1項 に記載のシステム。
  10. 10.前記複数の記憶手段の各々は、データと、エラー・チェック及び訂正(E CC)データとを所定のパターンで記憶することを特徴とする請求の範囲第1項 に記載のシステム。
  11. 11.前記複数の制御手段の各々は、 該外部出所との入出力記憶通信を処理する複数の第1レベル手段と、前記複数の 第1レベル手段の各々と少なくとも一つのパートナー第2レベル手段とに接続さ れて、前記第1レベル手段から前記記憶手段の主グループの各々へのデータ経路 を提供すると共に、前記記憶手段の二次グループヘのデータ経路を提供する、複 数の第2レベル手段とから成ることを特赦とする請求の範囲第1項に記載のシス テム。
  12. 12.以前は主として前記の少なくとも一つのパートナー第2レベル手段により 制御されていた前記記憶手段の二次グループヘのデータ経路を提供することによ り故障が前記パートナー第2レベル手段に発生した場合に前記複数の記憶手段の 特定の諭理構成を該外部出所に対して明白なものに維持するべく前記複数の第2 レベル手段の各々は構成されていることを特徴とする請求の範囲第11項に記載 のシステム。
  13. 13.前記第2レベル手段の一つが故障したときに、前記一つの第2レベル手段 が他の第2レベル手段に故障が発生したことを知らせて、以前は主として前記一 つの第2レベル手段により制御されていた記憶手段の部分集合の主制御を前記他 の第2レベル手段が引き受けることが出来る様に前記複数の第2レベル手段の各 々の間に接続された第1通信ラインを更に備えることを特徴とする請求の範囲第 11項に記載のシステム。
  14. 14.前記複数の第2レベル手段と前記複数の記憶手段との間に接続されて、故 障時に第1の第2レベル手段から第2の第2レベル手段へコントロールを移すス イッチング機能を更に備えることを特徴とする請求の範囲第11項に記載のシス テム。
  15. 15.各第2レベル手段は、前記第1レベル手段と前記少なくとも一つのパート ナー第2レベル手段との間で信号を送受信する第2レベル手段回復システムを更 に備えることを特徴とする請求の範囲第11項に記載のシステム。
  16. 16.各第2レベル手段は、前記第2レベルのコントローラを数個の状態に維持 することの出来る状態マシンを更に備えており、各状態は、前記第2レベル手段 が特定の記憶手段を制御するシステム構成を表すことを特徴とする請求の範囲第 11項に記載のシステム。
  17. 17.前記複数の記憶手段は作用的に相互に接続されて第1諭理レベルでは複数 の冗長グループとして機能し、前記冗長グループの各々は第2諭理レベルで少な くとも一つのデータ・グループを含み、各データ・グループは独立の諭理記憶装 置として動作することが出来ることを特徴とする請求の範囲第1項に記載のシス テム。
  18. 18.各冗長グループは複数のデータ・グループから成ることを特徴とする請求 の範囲第17項に記載のシステム。
  19. 19.第3諭理レベルを更に備えており、複数の冗長グループのうちの少なくと も二つの各々からの少なくとも一つのデータ・グループが組み合わされて単一の 論理大量データ記憶装置を形成することを特徴とする請求の範囲第17項に記載 のシステム。
  20. 20.該複数の冗長グループのうちの少なくとも一つについてエラー検出及び訂 正コードによって冗長性が提供され、そのコード・ワードは、少なくとも一つの 冗長グループに包含される少なくとも一つのチェック騒動機構に記憶されること を特徴とする請求の範囲第17項に記載のシステム。
  21. 21.その少なくとも一つのチェック駆動機構の各々は特定の記憶手段であるこ とを特徴とする請求の範囲第20項に記載のシステム。
  22. 22.少なくとも一つのチェフク・駆動機構の各々は、複数の前記記憶手段の部 分から成る論理大量記憶装置であることを特徴とする請求の範囲第20項に記載 のシステム。
  23. 23.複数の冗長グループのうちの少なくとも一つについて冗長性がミラーリン グ(mirroring)により提供されることを特徴とする請求の範囲第17 項に記載のシステム。
  24. 24.該冗長グループに含まれる少なくとも一つの冗長大量記憶手段に冗長性デ ータが記憶されることを特徴とする請求の範囲第17項に記載のシステム。
  25. 25.外部出所との通信のための少なくとも二つの制御手段と複数の記憶手段と を含み、その制御手段のうちの少なくとも二つが該記憶手段の各々に接続されて いるシステムにおいて、該外部出所から受信されたデータを記憶させる方法であ って、 該外部出所からデータを受信するステップと、その複数の記憶手段をグループに 構成するステップであって、該制御手段のうちの一つが故障した場合には各グル ープの該記憶手段が該制御手段の他の一つを通じてアクセス可能となる様に各グ ループは最初は該制御手段のうちの少なくとも二つによって制御される様になっ ているステップと、データを、前記複数の記憶手段に書き込まれるべきデータ・ ブロックのグループに分解するステップと、 選択されたエラー・コードを使って前記データから少なくとも一つのエラー検出 項を計算するステップと、 前記データ・ブロックを記憶手段の前記グループのうちの第1のものに記憶させ るステップと、 前記の少なくとも一つのエラー検出項を記憶手段の前記グループのうちの前記の 第1のものに記憶させるステップとから成ることを特徴とする方法。
  26. 26.記憶手段の前記グループのうちの前記第1のものから前記データ・ブロッ クを検索し、 選択されたエラー・コードを使って前記データ・ブロックからチェック・エラー 検出項を計算し、 記憶手段の前記グループのうちの前記の第1のものから前記の少なくとも一つの エラー検出項を検索し、 前記チェック・エラー検出項を前記の少なくとも一つのエラー検出項と比較して 前記データが漬れていないことを判定するステップを更に備えることを特徴とす る請求の範囲第25項に記載の方法。
  27. 27.前記データが漬れていると判定されたならば前記データを訂正するステッ プを更に備えることを特徴とする請求の範囲第26項に記載の方法。
  28. 28.前記データ・ブロックを、それが該外部出所から受信された形に組み立て るステップを更に備えることを特徴とする請求の範囲第26項に記載の方法。
  29. 29.前記の構成するステップは、前記データ・ブロックが該制御手段と該記憶 手段との間で所定のパターンで送られるのを許すべく複数のスイッチング手段を セットするステップを更に備えることを特徴とする請求の範囲第25項に記載の 方法。
  30. 30.前記データが漬れていると判定されたならば、前記データが記憶された特 定の記憶手段を分離するステップを更に備えることを特徴とする請求の範囲第2 5項に記載の方法。
  31. 31.前記制御手段内の第1の第2レベルのコントローラの故障を検出し、以前 は前記の第1の第2レベルのコントローラにより制御されていた記憶手段が該外 部出所との通信を維持する様に該外部出所に対して明白にデータ経路を前記第1 の第2レベルのコントローラから第2の第2レベルのコントローラへ切り換える ステップを更に備えることを特徴とする請求の範囲第25項に記載の方法。
  32. 32.前記記憶手段を第1諭理レベルで複数の冗長グループとして機能するよう に構成するステップを更に備えており、前記冗長グループの各々は第2諭理レベ ルで少なくとも一つのデータ・グループを含み、各データ・グループは独立の諭 理記憶装置として動作することが出来ることを特徴とする請求の範囲第25項に 記載の方法。
  33. 33.各冗長グループは複数のデータ・グループから成ることを特徴とする請求 の範囲第32項に記載の方法。
  34. 34.該記憶手段を第3諭理レベルで構成するステップを更に備えており、該複 数の冗長グループのうちの少なくとも二つの各々から少なくとも一つのデータ・ グループを組み合わせて単一の論理大量記憶装置を形成することを特徴とする請 求の範囲第32項に記載の方法。
  35. 35.該複数の冗長グループのうちの少なくとも一つについてエラー検出及び訂 正コードによって冗長性が提供され、そのコード・ワードは、少なくとも一つの 冗長グループに包含される少なくとも一つのチェック記憶手段に記憶されること を特徴とする請求の範囲第32項に記載の方法。
  36. 36.少なくとも一つのチェック記憶手段の各々は特定の記憶手段であることを 特徴とする請求の範囲第35項に記載の方法。
  37. 37.少なくとも一つのチェック記憶手段の各々は、複数の記憶手段の部分から 成る論理大量記憶装置であることを特徴とする請求の範囲第35項に記載の方法 。
  38. 38.複数の冗長グループのうちの少なくとも一つについて、ミラーリングによ って冗長性が提供されることを特徴とする請求の範囲第35項に記載の方法。
  39. 39.冗長性データが、該冗長グループに含まれる少なくとも一つの冗長記憶手 段に記憶されることを特徴とする請求の範囲第35項に記載の方法。
  40. 40.外部出所から受信されたデータを記憶するシステムであって、該外部出所 との間のデータの流れを制御する制御手段と、前記制御手段に接続され、グルー プに分けられた複数の記憶手段と、前記制御手段に接続されて、データを、前記 記憶手段に書き込まれるべきデータ・ブロックで分解する複数のデータ処理手段 と、前記制御手段に接続されて、前記データ・ブロックを並列形で受信し、前記 データ・ブロックが前記記憶手段に書き込まれるのと実質的に同時に各データ・ ブロック内のエラーを検出するエラー検出手段とから成ることを特徴とするシス テム。
  41. 41.前記エラー検出手段に接続され、前記エラー検出手段が提供するエラー検 出信号に応じて、漬れたデータを訂正するデータ訂正手段を更に備えることを特 徴とする請求の範囲第40項に記載のシステム。
  42. 42.該エラー検出手段は、前記バッファー手段及び前記記憶手段から受信され た前記データ中のエラーを検出するためにリード・ソロモン・エラー・コードを 使うことを特徴とする請求の範囲第41項に記載のシステム。
  43. 43.該エラー訂正手段は、前記バッファー手段及び前記記憶手段から受信され た前記データ中のエラーを訂正するためにリード・ソロモン・エラー・コードを 使うことを特徴とする請求の範囲第41項に記載のシステム。
  44. 44.前記エラー検出手段に接続されて、前記エラー検出手段により判定された 漬れたデータを提供した特定の記憶手段を該システムから分離する分離手段を更 に備えることを特徴とする請求の範囲第40項に記載のシステム。
  45. 45.前記データ処理手段は、前記制御手段から受信された前記データ・ブロッ クを組み立てる組立手段を更に含むことを特徴とする請求の範囲第40項に記載 のシステム。
  46. 46.第1バス及び前記制御手段に接続されて、該システムに受信され又は該シ ステムから送信されるデータを緩衝記憶する複数のバッファー手段を更に備える ことを特徴とする請求の範囲第40項に記載のシステム。
  47. 47.前記制御手段は、各記憶手段及び各バッファー手段の両方に接続されて、 随意の前記記憶手段と随意の前記バッファー手段との間で切替え可能な制御を行 う複数のスイッチング手段と、 各スイッチング手段に接続されて、データが選択されたバッファー手段から選択 された記憶手段に流れるのを許すと共に前記の選択された記憶手段から前記の選 択されたバッファー手段へ流れるのを許すべく前記スイッチング手段を制御する スイッチ制御手段とを更に備えることを特徴とする請求の範囲第40項に記載の システム。
  48. 48.前記エラー検出手段は、データを随意の選択されたバッファー手段から随 意の選択された記憶手段へ経路指定すると共に随意の選択された記憶手段から随 意の選択されたバッファー手段へ経路指定することを特徴とする請求の範囲第4 7項に記載のシステム。
  49. 49.前記の複数の記憶手段は、 外部出所からのデータを記憶するデータ記憶手段の第1グループと、前記エラー 検出手段により生成されたECCデータを記憶するエラー・チェック及び訂正( ECC)記憶手段の第2グループとから成ることを特徴とする請求の範囲第41 項に記載のシステム。
  50. 50.前記複数の記憶手段の各々は、データと、エラー・チェック及び訂正(E CC)データとを所定のパターンで記憶することを特徴とする請求の範囲第40 項に記載のシステム。
  51. 51.前記制御手段は、 該外部出所との入出力記憶通信を処理する複数の第1レベル手段と、前記複数の 第1レベル手段の各々と少なくとも一つのパートナー第2レベル手段とに各々接 続されて、前記第1レベル手段から前記記憶手段の主グループの各々へのデータ 経路を提供すると共に、前記記憶手段の二次グループヘのデータ経路を提供する 、複数の第2レベル手段とから成ることを特徴とする請求の範囲第40項に記載 のシステム。
  52. 52.以前は主として前記の少なくとも一つのパートナー第2レベル手段により 制御されていた前記記憶手段の二次グループヘのデータ経路を提供することによ り故障が前記パートナー第2レベル手段に発生した場合に前記複数の記憶手段の 特定の諭理構成を該外部出所に対して明白なものに維持するべく前記複数の第2 レベル手段の各々は構成されていることを特徴とする請求の範囲第51項に記載 のシステム。
  53. 53.前記第2レベル手段の一つが故障したときに、前記一つの第2レベル手段 が他の第2レベル手段に故障が発生したことを知らせて、以前は主として前記一 つの第2レベル手段により制御されていた記憶手段の部分集合の主制御を前記他 の第2レベル手段が引き受けることが出来る様に前記複数の第2レベル手段の各 々の間に接続された第1通信ラインを更に備えることを特徴とする請求の範囲第 51項に記載のシステム。
  54. 54.前記複数の第2レベル手段と前記複数の記憶手段との間に接続されて、故 障時に第1の第2レベル手段から第2の第2レベル手段へコントロールを移すス イッチング機能を更に備えることを特徴とする請求の範囲第51項に記載のシス テム。
  55. 55.各第2レベル手段は、前記第1レベル手段と前記の少なくとも一つのパー トナー第2レベル手段との間で信号を送受信する第2レベル信号回復システムを 更に備えることを特徴とする請求の範囲第51項に記載のシステム。
  56. 56.各第2レベル手段は、前記第2レベルのコントローラを数個の状態に維持 することの出来る状態マシンを更に備えており、各状態は、前記第2レベル手段 が特定の記憶手段を制御するシステム構成を表すことを特徴とする請求の範囲第 51項に記載のシステム。
  57. 57.前記複数の記憶手段は作用的に相互に接続されて第1諭理レベルでは複数 の冗長グループとして機能し、前記冗長グループの各々は第2諭理レベルで少な くとも一つのデータ・グループを含み、各データ・グループは独立の論理記憶装 置として動作することが出来ることを特徴とする請求の範囲第40項に記載のシ ステム。
  58. 58.各冗長グループは複数のデータ・グループから成ることを特徴とする請求 の範囲第57項に記載のシステム。
  59. 59.第3諭理レベルを更に備えており、複数の冗長グループのうちの少なくと も二つの各々からの少なくとも一つのデータ・グループが組み合わされて単一の 論理大量データ記憶装置を形成することを特徴とする請求の範囲第57項に記載 のシステム。
  60. 60.該複数の冗長グループのうちの少なくとも一つについてエラー検出及び訂 正コードによって冗長性が提供され、そのコード・ワードは、少なくとも一つの 冗長グループに包含される少なくとも一つのチェック駆動機構に記憶されること を特徴とする請求の範囲第57項に記載のシステム。
  61. 61.その少なくとも一つのチェツク駆動機構の各々は特定の記憶手段であるこ とを特徴とする請求の範囲第60項に記載のシステム。
  62. 62.少なくとも一つのチェック駆動機構の各々は、複数の前記記憶手段の部分 から成る論理大量記憶装置であることを特徴とする請求の範囲第60項に記載の システム。
  63. 63.該複数の冗長グループのうちの少なくとも一つについてミラーリングによ り冗長性が提供されることを特徴とする請求の範囲第57項に記載のシステム。
  64. 64.冗長性データは、該冗長グループに含まれる少なくとも一つの冗長大量記 憶手段に記憶されることを特徴とする請求の範囲第57項に記載のシステム。
  65. 65.外部出所との通信のための制御手段と複数の記憶手段とを含むシステムに おいて、該外部出所から受信されたデータを記憶させる方法であって、該外部出 所からデータを受信し、 該データを、前記複数の記憶手段に書き込まれるべきデータ・ブロックのグルー プに分解し、 各データ・ブロックについて少なくとも一つのエラー検出を実質的に同時に計算 し、 前記データ・ブロック及び少なくとも一つのエラー検出項を、記憶手段の前記グ ループのうちの第1のものに実質的に同時に記憶させるステップから成ることを 特徴とする方法。
  66. 66.記憶手段の前記グループのうちの前記第1のものから前記データ・ブロッ クを検索し、 選択されたエラー・コードを使って前記データ・ブロックからチェック・エラー 検出項を計算し、 記憶手段の前記グループのうちの前記の第1のものから前記の少なくとも一つの エラー検出項を検索し、 前記チェック・エラー検出項を前記の少なくとも一つのエラー検出項と比較して 前記データが漬れていないことを判定するステップを更に備えることを特徴とす る請求の範囲第65項に記載の方法。
  67. 67.前記データが漬れていると判定されたならば前記データを訂正するステッ プを更に備えることを特徴とする請求の範囲第66項に記載の方法。
  68. 68.前記データ・ブロックを、それが該外部出所から受信された形に組み立て るステップを更に備えることを特徴とする請求の範囲第66項に記載の方法。
  69. 69.前記の構成するステップは、前記データ・ブロックが該制御手段と該記憶 手段との間で所定のパターンで送られるのを許すべく複数のスイッチング手段を セットするステップを更に備えることを特徴とする請求の範囲第65項に記載の 方法。
  70. 70.前記データが漬れていると判定されたならば、前記データが記憶された特 定の記憶手段を分離するステップを更に備えることを特徴とする請求の範囲第6 5項に記載の方法。
  71. 71.前記制御手段内の第1の第2レベルのコントローラの故障を検出し、以前 は前記の第1の第2レベルのコントローラにより制御されていた記憶手段が該外 部出所との通信を維持する様に該外部出所に対して明白にデータ経路を前記第1 の第2レベルのコントローラから第2の第2レベルのコントローラへ切り換える ステップを更に備えることを特徴とする請求の範囲第65項に記載の方法。
  72. 72.前記記憶手段を第1諭理レベルで複数の冗長グループとして機能するよう に構成するステップを更に備えており、前記冗長グループの各々は第2諭理レベ ルで少なくとも一つのデータ・グループを含み、各データ・グループは独立の諭 理記憶装置として動作することが出来ることを特徴とする請求の範囲第65項に 記載の方法。
  73. 73.各冗長グループは複数のデータ・グループから成ることを特赦とする請求 の範囲第72項に記載の方法。
  74. 74.該記憶手段を第3諭理レベルで構放するステップを更に備えており、該複 数の冗長グループのうちの少なくとも二つの各々から少なくとも一つのデータ・ グループを組み合わせて単一の論理大量記憶装置を形成することを特徴とする請 求の範囲第72項に記載の方法。
  75. 75.該複数の冗長グループのうちの少なくとも一つについてエラー検出及び訂 正コードによって冗長性が提供され、そのコード・ワードは、少なくとも一つの 冗長グループに包含される少なくとも一つのチェック記憶手段に記憶されること を特徴とする請求の範囲第72項に記載の方法。
  76. 76.少なくとも一つのチェック記憶手段の各々は特定の記憶手段であることを 特徴とする請求の範囲第75項に記載の方法。
  77. 77.少なくとも一つのチェック記憶手段の各々は、複数の記憶手段の部分から 成る論理大量記憶装置であることを特徴とする請求の範囲第75項に記載の方法 。
  78. 78.複数の冗長グループのうちの少なくとも一つについて、ミラーリングによ って冗長性が提供されることを特徴とする請求の範囲第75項に記載の方法。
  79. 79.冗長性データが、該冗長グループに含まれる少なくとも一つの冗長記憶手 段に記憶されることを特徴とする請求の範囲第75項に記載の方法。
JP3506558A 1990-03-02 1991-02-28 ディスク・アレイ・システム Pending JPH06500186A (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US07/488,749 US5166939A (en) 1990-03-02 1990-03-02 Data storage apparatus and method
US488,749 1990-03-02
US506,703 1990-04-06
US07/505,622 US5134619A (en) 1990-04-06 1990-04-06 Failure-tolerant mass storage system
US07/506,703 US5212785A (en) 1990-04-06 1990-04-06 Apparatus and method for controlling data flow between a computer and memory devices
US505,622 1990-04-06
US601,482 1990-10-22
US07/601,482 US5140592A (en) 1990-03-02 1990-10-22 Disk array system

Publications (1)

Publication Number Publication Date
JPH06500186A true JPH06500186A (ja) 1994-01-06

Family

ID=27504319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3506558A Pending JPH06500186A (ja) 1990-03-02 1991-02-28 ディスク・アレイ・システム

Country Status (7)

Country Link
US (2) US5140592A (ja)
EP (1) EP0517857B1 (ja)
JP (1) JPH06500186A (ja)
AU (1) AU7584691A (ja)
CA (1) CA2081365C (ja)
DE (1) DE69130669T2 (ja)
WO (1) WO1991013399A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501986A (ja) * 2003-06-23 2007-02-01 シエラ・ロジック、インコーポレイテッド ストレージシェルフ内で発生するエラー及びイベントをハンドリングする方法
JP2008525898A (ja) * 2004-12-23 2008-07-17 インテル・コーポレーション シンドローム生成及びデータ復旧のための方法及びシステム
US8654628B2 (en) 2008-11-25 2014-02-18 Fuji Xerox Co., Ltd. Data control device, storage device and method of connecting data control device

Families Citing this family (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2019351A1 (en) * 1989-07-06 1991-01-06 Francis H. Reiff Fault tolerant memory
FR2656441B1 (fr) * 1989-12-22 1993-12-10 Bull Sa Procede securise d'ecriture rapide d'informations pour dispositif de memoire de masse.
US5212785A (en) * 1990-04-06 1993-05-18 Micro Technology, Inc. Apparatus and method for controlling data flow between a computer and memory devices
US5414818A (en) * 1990-04-06 1995-05-09 Mti Technology Corporation Method and apparatus for controlling reselection of a bus by overriding a prioritization protocol
US5956524A (en) * 1990-04-06 1999-09-21 Micro Technology Inc. System and method for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
WO1992005495A1 (en) 1990-09-20 1992-04-02 Fujitsu Limited Input/output controller
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
EP0485110B1 (en) * 1990-11-09 1999-08-25 Emc Corporation Logical partitioning of a redundant array storage system
US6874101B2 (en) * 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
JP3409859B2 (ja) * 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US5257362A (en) * 1991-03-08 1993-10-26 International Business Machines Corporation Method and means for ensuring single pass small read/write access to variable length records stored on selected DASDs in a DASD array
US5345565A (en) * 1991-03-13 1994-09-06 Ncr Corporation Multiple configuration data path architecture for a disk array controller
JP2648768B2 (ja) * 1991-03-25 1997-09-03 株式会社椿本チエイン シーケンス制御動作モードと他の動作モードとの切換変更方法
US5506979A (en) * 1991-04-02 1996-04-09 International Business Machines Corporation Method and means for execution of commands accessing variable length records stored on fixed block formatted DASDS of an N+2 DASD synchronous array
JP3187525B2 (ja) * 1991-05-17 2001-07-11 ヒュンダイ エレクトロニクス アメリカ バス接続装置
US5446904A (en) * 1991-05-17 1995-08-29 Zenith Data Systems Corporation Suspend/resume capability for a protected mode microprocessor
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5502836A (en) * 1991-11-21 1996-03-26 Ast Research, Inc. Method for disk restriping during system operation
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
US5530960A (en) * 1991-12-17 1996-06-25 Dell Usa, L.P. Disk drive controller accepting first commands for accessing composite drives and second commands for individual diagnostic drive control wherein commands are transparent to each other
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US5473761A (en) * 1991-12-17 1995-12-05 Dell Usa, L.P. Controller for receiving transfer requests for noncontiguous sectors and reading those sectors as a continuous block by interspersing no operation requests between transfer requests
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5333305A (en) * 1991-12-27 1994-07-26 Compaq Computer Corporation Method for improving partial stripe write performance in disk array subsystems
JP2777301B2 (ja) * 1992-01-07 1998-07-16 三菱電機株式会社 記録装置
EP0551009B1 (en) * 1992-01-08 2001-06-13 Emc Corporation Method for synchronizing reserved areas in a redundant storage array
WO1993018456A1 (en) * 1992-03-13 1993-09-16 Emc Corporation Multiple controller sharing in a redundant storage array
US5628014A (en) * 1992-03-20 1997-05-06 Paranode, Inc. Methods and apparatus for node caching at the file level
US5459857A (en) * 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
US5398331A (en) * 1992-07-08 1995-03-14 International Business Machines Corporation Shared storage controller for dual copy shared data
WO1994009436A1 (en) * 1992-10-13 1994-04-28 Compaq Computer Corporation Disk array controller having advanced internal bus protocol
CA2107755C (en) * 1992-11-16 1998-07-07 Paul Elliott Janssen Telecommunication system with improved reconfiguration flexibility
US5588112A (en) * 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
US5689678A (en) 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
DE4309148A1 (de) * 1993-03-22 1994-09-29 Siemens Nixdorf Inf Syst Disk-Array mit Lastverteilung
US5867640A (en) * 1993-06-01 1999-02-02 Mti Technology Corp. Apparatus and method for improving write-throughput in a redundant array of mass storage devices
JP3004861U (ja) * 1993-06-04 1994-11-29 ディジタル イクイプメント コーポレイション 密接に結合された二重のコントローラモジュールを用いた欠陥許容式の記憶装置用制御システム
US5511227A (en) * 1993-09-30 1996-04-23 Dell Usa, L.P. Method for configuring a composite drive for a disk drive array controller
US5572660A (en) * 1993-10-27 1996-11-05 Dell Usa, L.P. System and method for selective write-back caching within a disk array subsystem
US6154850A (en) * 1993-11-01 2000-11-28 Beaufort River, Inc. Data storage system and method
US20030088611A1 (en) * 1994-01-19 2003-05-08 Mti Technology Corporation Systems and methods for dynamic alignment of associated portions of a code word from a plurality of asynchronous sources
US5675761A (en) * 1994-05-16 1997-10-07 International Business Machines Corporation Method and system for providing discontiguous drive support
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5467361A (en) * 1994-06-20 1995-11-14 International Business Machines Corporation Method and system for separate data and media maintenance within direct access storage devices
US5504882A (en) 1994-06-20 1996-04-02 International Business Machines Corporation Fault tolerant data storage subsystem employing hierarchically arranged controllers
US5701429A (en) * 1994-06-20 1997-12-23 International Business Machines Corporation Method and system for maintaining concurrent data access during device upgrade
US5606359A (en) * 1994-06-30 1997-02-25 Hewlett-Packard Company Video on demand system with multiple data sources configured to provide vcr-like services
US5594862A (en) * 1994-07-20 1997-01-14 Emc Corporation XOR controller for a storage subsystem
US5592618A (en) * 1994-10-03 1997-01-07 International Business Machines Corporation Remote copy secondary data copy validation-audit function
JP3417088B2 (ja) * 1994-10-24 2003-06-16 富士通株式会社 ディスクドライブ
US5826046A (en) * 1994-12-30 1998-10-20 International Business Machines Corporation Method and apparatus for polling and selecting any paired device in any drawer
EP0721162A2 (en) * 1995-01-06 1996-07-10 Hewlett-Packard Company Mirrored memory dual controller disk storage system
US5553230A (en) * 1995-01-18 1996-09-03 Hewlett-Packard Company Identifying controller pairs in a dual controller disk array
US5583995A (en) * 1995-01-30 1996-12-10 Mrj, Inc. Apparatus and method for data storage and retrieval using bandwidth allocation
WO1996037840A1 (en) * 1995-05-22 1996-11-28 Mti Technology Corporation Disk array system including a dual-ported staging memory and concurrent redundancy calculation capability
US5588110A (en) * 1995-05-23 1996-12-24 Symbios Logic Inc. Method for transferring data between two devices that insures data recovery in the event of a fault
JP3732869B2 (ja) * 1995-06-07 2006-01-11 株式会社日立製作所 外部記憶装置
US6532547B1 (en) 1995-06-16 2003-03-11 Emc Corporation Redundant peripheral device subsystem
US5729763A (en) * 1995-08-15 1998-03-17 Emc Corporation Data storage system
US5845319A (en) * 1995-08-23 1998-12-01 Fujitsu Limited Disk array device which separates local and physical disks using striping and operation mode selection
US6098128A (en) 1995-09-18 2000-08-01 Cyberstorage Systems Corporation Universal storage management system
US5841997A (en) * 1995-09-29 1998-11-24 Emc Corporation Apparatus for effecting port switching of fibre channel loops
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
US6449730B2 (en) * 1995-10-24 2002-09-10 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
JP3628777B2 (ja) 1995-10-30 2005-03-16 株式会社日立製作所 外部記憶装置
US5815648A (en) * 1995-11-14 1998-09-29 Eccs, Inc. Apparatus and method for changing the cache mode dynamically in a storage array system
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
US6334195B1 (en) * 1995-12-29 2001-12-25 Lsi Logic Corporation Use of hot spare drives to boost performance during nominal raid operation
DE19607101A1 (de) * 1996-02-24 1997-08-28 Hella Kg Hueck & Co Elektronisches Gerät und Einrichtung zur Datenübertragung zwischen zwei gleichartig aufgebauten elektronischen Geräten
US5724501A (en) * 1996-03-29 1998-03-03 Emc Corporation Quick recovery of write cache in a fault tolerant I/O system
US5761705A (en) * 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US6018778A (en) * 1996-05-03 2000-01-25 Netcell Corporation Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US5720027A (en) * 1996-05-21 1998-02-17 Storage Computer Corporation Redundant disc computer having targeted data broadcast
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US5922077A (en) * 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
US6035411A (en) * 1996-12-23 2000-03-07 Hitachi Computer Products, Inc. Method for multiple verticle and/or horizontal levels of memory redundancy
US5860003A (en) * 1997-02-28 1999-01-12 Mti Technology, Inc. I/O controller software with each I/O command having a plurality of nets, each with a group of threads
FR2762695B1 (fr) * 1997-04-29 1999-05-28 Bull Sa Procede et dispositif de connexion de l'unite centrale d'un systeme de traitement de donnees a un sous-systeme de stockage de donnees a redondance
US5968182A (en) * 1997-05-12 1999-10-19 International Business Machines Corporation Method and means for utilizing device long busy response for resolving detected anomalies at the lowest level in a hierarchical, demand/response storage management subsystem
US6058454A (en) * 1997-06-09 2000-05-02 International Business Machines Corporation Method and system for automatically configuring redundant arrays of disk memory devices
US6178520B1 (en) * 1997-07-31 2001-01-23 Lsi Logic Corporation Software recognition of drive removal or insertion in a storage system
US5937428A (en) * 1997-08-06 1999-08-10 Lsi Logic Corporation Method for host-based I/O workload balancing on redundant array controllers
US6134630A (en) * 1997-11-14 2000-10-17 3Ware High-performance bus architecture for disk array system
US5987628A (en) * 1997-11-26 1999-11-16 Intel Corporation Method and apparatus for automatically correcting errors detected in a memory subsystem
US6085333A (en) * 1997-12-19 2000-07-04 Lsi Logic Corporation Method and apparatus for synchronization of code in redundant controllers in a swappable environment
US6151659A (en) * 1997-12-22 2000-11-21 Emc Corporation Distributed raid storage system
JP3279248B2 (ja) * 1998-02-27 2002-04-30 日本電気株式会社 スイッチ機構およびこれを有するディスクアレイ装置およびコンピュータシステム
US6243829B1 (en) * 1998-05-27 2001-06-05 Hewlett-Packard Company Memory controller supporting redundant synchronous memories
JPH11345175A (ja) * 1998-06-02 1999-12-14 Nec Kofu Ltd 代替パス制御システム及び方法
US6272662B1 (en) 1998-08-04 2001-08-07 International Business Machines Corporation Distributed storage system using front-end and back-end locking
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6446220B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating data and parity data with and without read caches
US6332197B1 (en) 1998-08-04 2001-12-18 International Business Machines Corp. System for updating data in a multi-adaptor environment
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6542961B1 (en) * 1998-12-22 2003-04-01 Hitachi, Ltd. Disk storage system including a switch
US6389494B1 (en) * 1998-12-30 2002-05-14 Emc Corporation System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data
US7073020B1 (en) 1999-01-04 2006-07-04 Emc Corporation Method for message transfer in computer storage system
US7117275B1 (en) 1999-01-04 2006-10-03 Emc Corporation Data storage system having separate data transfer section and message network
JP4294142B2 (ja) 1999-02-02 2009-07-08 株式会社日立製作所 ディスクサブシステム
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US6449731B1 (en) * 1999-03-03 2002-09-10 Tricord Systems, Inc. Self-healing computer system storage
US6336172B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in a data storage library system
US6336173B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in data storage libraries
JP3545642B2 (ja) * 1999-05-17 2004-07-21 松下電器産業株式会社 監視システム及び方法
US6393606B1 (en) * 1999-06-25 2002-05-21 Agilent Technologies, Inc. Inverse assembler
US6578158B1 (en) * 1999-10-28 2003-06-10 International Business Machines Corporation Method and apparatus for providing a raid controller having transparent failover and failback
JP4462697B2 (ja) 2000-01-31 2010-05-12 株式会社日立製作所 記憶制御装置
JP4115060B2 (ja) * 2000-02-02 2008-07-09 株式会社日立製作所 情報処理システムのデータ復旧方法及びディスクサブシステム
JP3989665B2 (ja) * 2000-03-03 2007-10-10 株式会社リコー 光情報記録媒体
US7111189B1 (en) 2000-03-30 2006-09-19 Hewlett-Packard Development Company, L.P. Method for transaction log failover merging during asynchronous operations in a data storage network
US6643795B1 (en) 2000-03-30 2003-11-04 Hewlett-Packard Development Company, L.P. Controller-based bi-directional remote copy system with storage site failover capability
US6629264B1 (en) 2000-03-30 2003-09-30 Hewlett-Packard Development Company, L.P. Controller-based remote copy system with logical unit grouping
US6658540B1 (en) 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
US7007194B1 (en) 2000-06-29 2006-02-28 Emc Corporation Data storage system having point-to-point configuration
US7003601B1 (en) 2000-03-31 2006-02-21 Emc Corporation Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board
US7010575B1 (en) * 2000-03-31 2006-03-07 Emc Corporation Data storage system having separate data transfer section and message network having bus arbitration
US6601187B1 (en) 2000-03-31 2003-07-29 Hewlett-Packard Development Company, L. P. System for data replication using redundant pairs of storage controllers, fibre channel fabrics and links therebetween
US6779071B1 (en) 2000-04-28 2004-08-17 Emc Corporation Data storage system having separate data transfer section and message network with status register
US6784291B2 (en) * 2000-05-04 2004-08-31 Avi Biopharma, Inc. Splice-region antisense composition and method
US6389559B1 (en) * 2000-05-24 2002-05-14 Mti Technology Corporation Controller fail-over without device bring-up
KR100364895B1 (ko) * 2000-06-12 2002-12-16 아라리온 (주) 데이터 액세스 제어 방법 및 시스템
US6618798B1 (en) * 2000-07-11 2003-09-09 International Business Machines Corporation Method, system, program, and data structures for mapping logical units to a storage space comprises of at least one array of storage units
US6751757B2 (en) * 2000-12-07 2004-06-15 3Ware Disk drive data protection using clusters containing error detection sectors
US6953392B2 (en) * 2001-01-05 2005-10-11 Asm Nutool, Inc. Integrated system for processing semiconductor wafers
US6708285B2 (en) 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6802023B2 (en) 2001-03-15 2004-10-05 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having hot insertion system and method
US6715101B2 (en) 2001-03-15 2004-03-30 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having an on-line controller removal system and method
US7827136B1 (en) * 2001-09-20 2010-11-02 Emc Corporation Management for replication of data stored in a data storage environment including a system and method for failover protection of software agents operating in the environment
JP2003162377A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
US6983397B2 (en) * 2001-11-29 2006-01-03 International Business Machines Corporation Method, system, and program for error handling in a dual adaptor system where one adaptor is a master
US6957361B2 (en) * 2001-11-29 2005-10-18 International Business Machines Corporation Method, system, and program for error handling in a dual adaptor system
US7315976B2 (en) * 2002-01-31 2008-01-01 Lsi Logic Corporation Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US7131050B2 (en) 2002-02-28 2006-10-31 Lsi Logic Corporation Optimized read performance method using metadata to protect against drive anomaly errors in a storage array
US7007220B2 (en) * 2002-03-01 2006-02-28 Broadlogic Network Technologies, Inc. Error correction coding across multiple channels in content distribution systems
US7152142B1 (en) * 2002-10-25 2006-12-19 Copan Systems, Inc. Method for a workload-adaptive high performance storage system with data protection
JP2004227098A (ja) * 2003-01-20 2004-08-12 Hitachi Ltd 記憶デバイス制御装置の制御方法、及び記憶デバイス制御装置
US7236987B1 (en) 2003-02-28 2007-06-26 Sun Microsystems Inc. Systems and methods for providing a storage virtualization environment
US8166128B1 (en) 2003-02-28 2012-04-24 Oracle America, Inc. Systems and methods for dynamically updating a virtual volume in a storage virtualization environment
US7290168B1 (en) * 2003-02-28 2007-10-30 Sun Microsystems, Inc. Systems and methods for providing a multi-path network switch system
US7383381B1 (en) 2003-02-28 2008-06-03 Sun Microsystems, Inc. Systems and methods for configuring a storage virtualization environment
US20040181707A1 (en) 2003-03-11 2004-09-16 Hitachi, Ltd. Method and apparatus for seamless management for disaster recovery
US7627780B2 (en) * 2003-04-23 2009-12-01 Dot Hill Systems Corporation Apparatus and method for deterministically performing active-active failover of redundant servers in a network storage appliance
US7401254B2 (en) * 2003-04-23 2008-07-15 Dot Hill Systems Corporation Apparatus and method for a server deterministically killing a redundant server integrated within the same network storage appliance chassis
US7676600B2 (en) * 2003-04-23 2010-03-09 Dot Hill Systems Corporation Network, storage appliance, and method for externalizing an internal I/O link between a server and a storage controller integrated within the storage appliance chassis
US7152182B2 (en) * 2003-06-06 2006-12-19 Hewlett-Packard Development Company, L.P. Data redundancy system and method
US7178055B2 (en) * 2003-06-06 2007-02-13 Hewlett-Packard Development Company, L.P. Method and system for ensuring data consistency after a failover event in a redundant data storage system
US7165187B2 (en) * 2003-06-06 2007-01-16 Hewlett-Packard Development Company, L.P. Batch based distributed data redundancy
US7120825B2 (en) * 2003-06-06 2006-10-10 Hewlett-Packard Development Company, L.P. Adaptive batch sizing for asynchronous data redundancy
US7089383B2 (en) * 2003-06-06 2006-08-08 Hewlett-Packard Development Company, L.P. State machine and system for data redundancy
JP4462852B2 (ja) * 2003-06-23 2010-05-12 株式会社日立製作所 ストレージシステム及びストレージシステムの接続方法
RU2383066C2 (ru) * 2003-07-01 2010-02-27 Конинклейке Филипс Электроникс Н.В. Способ записи информации на многослойный записываемый носитель и устройство для записи на двухслойный записываемый носитель
US20050015407A1 (en) * 2003-07-17 2005-01-20 International Business Machines Corporation System and method of relational configuration mirroring
US8176250B2 (en) * 2003-08-29 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for testing a memory
US7484050B2 (en) * 2003-09-08 2009-01-27 Copan Systems Inc. High-density storage systems using hierarchical interconnect
US7346755B2 (en) * 2003-09-16 2008-03-18 Hewlett-Packard Development, L.P. Memory quality assurance
GB0322424D0 (en) * 2003-09-24 2003-10-29 Ibm Error detection in redundant array of storage units
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4405277B2 (ja) * 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US20050228943A1 (en) * 2004-04-02 2005-10-13 Decenzo David P Multipath redundant storage system architecture and method
US8726129B1 (en) * 2004-07-23 2014-05-13 Hewlett-Packard Development Company, L.P. Methods of writing and recovering erasure coded data
US7555701B2 (en) * 2004-11-04 2009-06-30 Adaptec, Inc. Method and system for recovering from multiple drive failures
JP4491330B2 (ja) * 2004-11-08 2010-06-30 富士通株式会社 ディスクアレイ装置とそのデータのリカバリ方法およびデータリカバリプログラム
JP2006134208A (ja) * 2004-11-09 2006-05-25 Fujitsu Ltd ストレージ仮想化装置
US7290199B2 (en) * 2004-11-19 2007-10-30 International Business Machines Corporation Method and system for improved buffer utilization for disk array parity updates
US20060123312A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation Method and system for increasing parallelism of disk accesses when restoring data in a disk array system
US7392428B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
US7392458B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for enhanced error identification with disk array parity checking
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
EP1681770A1 (en) * 2005-01-18 2006-07-19 Koninklijke Philips Electronics N.V. Error correcting code
JP2006283621A (ja) * 2005-03-31 2006-10-19 Honda Motor Co Ltd 航空エンジンの電子制御装置
JP2006343822A (ja) * 2005-06-07 2006-12-21 Fujitsu Ltd ライブラリ装置
CN103744790B (zh) 2005-08-25 2017-05-10 美国莱迪思半导体公司 智能可缩放存储切换架构
US7571269B2 (en) * 2005-08-25 2009-08-04 Silicon Image, Inc. Covert channel for conveying supplemental messages in a protocol-defined link for a system of storage devices
JP4786312B2 (ja) * 2005-11-22 2011-10-05 株式会社日立製作所 記憶制御装置及び記憶制御装置のエラー情報管理方法
US20070234342A1 (en) * 2006-01-25 2007-10-04 Flynn John T Jr System and method for relocating running applications to topologically remotely located computing systems
DE102006016499B4 (de) * 2006-04-07 2014-11-13 Qimonda Ag Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur
US7613749B2 (en) * 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
US7594138B2 (en) * 2007-01-31 2009-09-22 International Business Machines Corporation System and method of error recovery for backup applications
KR20080080882A (ko) * 2007-03-02 2008-09-05 삼성전자주식회사 Ecc용 레이어를 구비하는 다층 구조 반도체 메모리 장치및 이를 이용하는 에러 검출 및 정정 방법
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US8706914B2 (en) * 2007-04-23 2014-04-22 David D. Duchesneau Computing infrastructure
US7877625B2 (en) * 2008-04-16 2011-01-25 Invensys Systems, Inc. Efficient architecture for interfacing redundant devices to a distributed control system
US8751860B2 (en) 2009-06-03 2014-06-10 Micron Technology, Inc. Object oriented memory in solid state devices
US9330105B1 (en) * 2010-05-07 2016-05-03 Emc Corporation Systems, methods, and computer readable media for lazy compression of data incoming to a data storage entity
US9311002B1 (en) 2010-06-29 2016-04-12 Emc Corporation Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US9594614B2 (en) 2013-08-30 2017-03-14 Nimble Storage, Inc. Methods for transitioning control between two controllers of a storage system
US10289507B1 (en) * 2015-10-27 2019-05-14 Pavilion Data Systems, Inc. Distributed rebuild of failed storage device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63282963A (ja) * 1987-05-15 1988-11-18 Toshiba Corp 磁気ディスク装置
JPS6435634A (en) * 1987-07-31 1989-02-06 Fujitsu Ltd Fault recovery system for switcher of disk string
JPH01116963A (ja) * 1987-10-29 1989-05-09 Nec Corp 記憶サブシステム
JPH01140326A (ja) * 1987-11-27 1989-06-01 Hitachi Ltd 磁気ディスク装置
JPH01290024A (ja) * 1988-05-18 1989-11-21 Nec Corp 並列転送のデイスク制御装置
JPH02114313A (ja) * 1988-10-24 1990-04-26 Advantest Corp 高速外部記憶装置

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3303482A (en) * 1963-02-25 1967-02-07 Rca Corp Redundant recording system with parity checking
GB1233087A (ja) * 1967-07-15 1971-05-26
US3544777A (en) * 1967-11-06 1970-12-01 Trw Inc Two memory self-correcting system
DE1963895C3 (de) * 1969-06-21 1973-11-29 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Datenspeicher und Datenspeicher anste'uerschaltung
US3803560A (en) * 1973-01-03 1974-04-09 Honeywell Inf Systems Technique for detecting memory failures and to provide for automatically for reconfiguration of the memory modules of a memory system
US3905023A (en) * 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
GB1497680A (en) * 1974-10-29 1978-01-12 Int Computers Ltd Digital data storage apparatus
US3917933A (en) * 1974-12-17 1975-11-04 Sperry Rand Corp Error logging in LSI memory storage units using FIFO memory of LSI shift registers
US4070704A (en) * 1976-05-17 1978-01-24 Honeywell Information Systems Inc. Automatic reconfiguration apparatus for input/output processor
US4093985A (en) * 1976-11-05 1978-06-06 North Electric Company Memory sparing arrangement
US4207609A (en) * 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4205374A (en) * 1978-10-19 1980-05-27 International Business Machines Corporation Method and means for CPU recovery of non-logged data from a storage subsystem subject to selective resets
CA1102007A (en) * 1979-05-15 1981-05-26 Prem L. Sood Duplicated memory system having status indication
US4339804A (en) * 1979-07-05 1982-07-13 Ncr Corporation Memory system wherein individual bits may be updated
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
JPS5688549A (en) * 1979-12-21 1981-07-18 Toshiba Corp Multiplex system for external memory device in electronic computer system
JPS5694593A (en) * 1979-12-27 1981-07-31 Fujitsu Ltd Storage device
JPS56163596A (en) * 1980-05-16 1981-12-16 Fujitsu Ltd Memory control system
JPS57111890A (en) * 1980-12-29 1982-07-12 Fujitsu Ltd Storage device
JPS57111893A (en) * 1980-12-29 1982-07-12 Fujitsu Ltd Relieving system of defective memory
US4423480A (en) * 1981-03-06 1983-12-27 International Business Machines Corporation Buffered peripheral system with priority queue and preparation for signal transfer in overlapped operations
JPS57169297A (en) * 1981-04-10 1982-10-18 Matsushita Electric Ind Co Ltd Device for connecting circuit board
JPS57195397A (en) * 1981-05-28 1982-12-01 Nec Corp Locally doubled storage device
US4507730A (en) * 1981-10-01 1985-03-26 Honeywell Information Systems Inc. Memory system with automatic memory configuration
JPS5883400A (ja) * 1981-11-12 1983-05-19 Fujitsu Ltd 記憶装置制御方式
US4468731A (en) * 1981-12-15 1984-08-28 Honeywell Information Systems Inc. Identification apparatus for use in a controller to facilitate the diagnosis of faults
US4464747A (en) * 1982-02-18 1984-08-07 The Singer Company High reliability memory
US4825403A (en) * 1983-05-16 1989-04-25 Data General Corporation Apparatus guaranteeing that a controller in a disk drive system receives at least some data from an invalid track sector
JPS60156152A (ja) * 1984-01-25 1985-08-16 Fujitsu Ltd 記憶情報保護方式
FR2561428B1 (fr) * 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
US4786193A (en) * 1984-05-24 1988-11-22 Wang Laboratories Pressure roller assembly
JPS6199999A (ja) * 1984-10-19 1986-05-19 Hitachi Ltd 半導体記憶装置
US4697232A (en) * 1984-11-30 1987-09-29 Storage Technology Corporation I/O device reconnection in a multiple-CPU, dynamic path allocation environment
US4667326A (en) * 1984-12-20 1987-05-19 Advanced Micro Devices, Inc. Method and apparatus for error detection and correction in systems comprising floppy and/or hard disk drives
US4814982A (en) * 1984-12-24 1989-03-21 General Electric Company Reconfigurable, multiprocessor system with protected, multiple, memories
US4958351A (en) * 1986-02-03 1990-09-18 Unisys Corp. High capacity multiple-disk storage method and apparatus having unusually high fault tolerance level and high bandpass
US4722085A (en) * 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
JPH0719426B2 (ja) * 1986-11-07 1995-03-06 日本電気株式会社 デイスク制御装置
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
CA1296103C (en) * 1987-06-02 1992-02-18 Theodore Jay Goodlander High-speed, high capacity, fault-tolerant, error-correcting storage system
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
JPH0769882B2 (ja) * 1988-05-11 1995-07-31 富士通株式会社 クロスコール機能を有する入出力制御システム及びそのシステムにおける動的構成変更方法
US4914656A (en) * 1988-06-28 1990-04-03 Storage Technology Corporation Disk drive memory
US4989205A (en) * 1988-06-28 1991-01-29 Storage Technology Corporation Disk drive memory
AU630635B2 (en) * 1988-11-14 1992-11-05 Emc Corporation Arrayed disk drive system and method
US5088081A (en) * 1990-03-28 1992-02-11 Prime Computer, Inc. Method and apparatus for improved disk access

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63282963A (ja) * 1987-05-15 1988-11-18 Toshiba Corp 磁気ディスク装置
JPS6435634A (en) * 1987-07-31 1989-02-06 Fujitsu Ltd Fault recovery system for switcher of disk string
JPH01116963A (ja) * 1987-10-29 1989-05-09 Nec Corp 記憶サブシステム
JPH01140326A (ja) * 1987-11-27 1989-06-01 Hitachi Ltd 磁気ディスク装置
JPH01290024A (ja) * 1988-05-18 1989-11-21 Nec Corp 並列転送のデイスク制御装置
JPH02114313A (ja) * 1988-10-24 1990-04-26 Advantest Corp 高速外部記憶装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501986A (ja) * 2003-06-23 2007-02-01 シエラ・ロジック、インコーポレイテッド ストレージシェルフ内で発生するエラー及びイベントをハンドリングする方法
JP2008525898A (ja) * 2004-12-23 2008-07-17 インテル・コーポレーション シンドローム生成及びデータ復旧のための方法及びシステム
JP4664988B2 (ja) * 2004-12-23 2011-04-06 インテル・コーポレーション シンドローム生成及びデータ復旧のための方法及びシステム
US8654628B2 (en) 2008-11-25 2014-02-18 Fuji Xerox Co., Ltd. Data control device, storage device and method of connecting data control device

Also Published As

Publication number Publication date
CA2081365C (en) 1999-06-22
CA2081365A1 (en) 1991-09-03
AU7584691A (en) 1991-09-18
EP0517857B1 (en) 1998-12-23
EP0517857A1 (en) 1992-12-16
US5140592A (en) 1992-08-18
EP0517857A4 (ja) 1995-06-07
US5274645A (en) 1993-12-28
DE69130669T2 (de) 1999-05-06
DE69130669D1 (de) 1999-02-04
WO1991013399A1 (en) 1991-09-05

Similar Documents

Publication Publication Date Title
JPH06500186A (ja) ディスク・アレイ・システム
US5134619A (en) Failure-tolerant mass storage system
JP3595099B2 (ja) デバイスアレイ・システム
US6154850A (en) Data storage system and method
KR100221384B1 (ko) 직접 액세스 저장장치, 머신 판독가능한 데이타 저장시스템,데이타 저장시스템 및 데이타 저장 시스템 동작 방법
KR940011039B1 (ko) Dasd 배열내에서의 분배 스페어링 방법 및 장치
US5303244A (en) Fault tolerant disk drive matrix
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
JP3742494B2 (ja) 大容量記憶装置
US5579475A (en) Method and means for encoding and rebuilding the data contents of up to two unavailable DASDS in a DASD array using simple non-recursive diagonal and row parity
US6950901B2 (en) Method and apparatus for supporting parity protection in a RAID clustered environment
US7577866B1 (en) Techniques for fault tolerant data storage
US5007053A (en) Method and apparatus for checksum address generation in a fail-safe modular memory
JP2912802B2 (ja) ディスクアレイ装置の故障対処方法および装置
JPH0785227B2 (ja) 並列計算システムにおける冗長パリティ保護方法
JPH054699B2 (ja)
JP2000207136A (ja) 複数ドライブ故障トレラントraidアルゴリズム
JPH06242887A (ja) アレイ記憶線形・直交拡張型マルチプロセシングコンピュータシステム
US20050193273A1 (en) Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system
EP2375332B1 (en) Method to establish redundancy and fault tolerance better than raid level 6 without using parity
JPH0816328A (ja) ディスクアレイシステム
EP0632376B1 (en) Encoding and rebuilding the data content of up to two unavailable DASDs in a DASD array
JP3676793B2 (ja) ディスクアレイ装置
JP2000148409A (ja) 冗長記憶装置
JP3699473B2 (ja) ディスクアレイ装置