JPH06511099A - 不均一ストライプサイズマッピングスキームを用いたディスク配列操作を実行する方法 - Google Patents

不均一ストライプサイズマッピングスキームを用いたディスク配列操作を実行する方法

Info

Publication number
JPH06511099A
JPH06511099A JP5511941A JP51194193A JPH06511099A JP H06511099 A JPH06511099 A JP H06511099A JP 5511941 A JP5511941 A JP 5511941A JP 51194193 A JP51194193 A JP 51194193A JP H06511099 A JPH06511099 A JP H06511099A
Authority
JP
Japan
Prior art keywords
data
stripe
size
disk
disk array
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
JP5511941A
Other languages
English (en)
Inventor
ニューフェルド,イー・デイビド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH06511099A publication Critical patent/JPH06511099A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1026Different size groups, i.e. non uniform size of groups in RAID systems with parity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

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

Description

【発明の詳細な説明】 不均−スドライブサイズマツピングスキームを用いたディスク配列操作を実行す る方法技術分野 本発明は、コンピュータシステムにおける多重ディスク・ドライブのための性能 を改善する方法を指向し、特に、パリティデータ冗長及び回復保護機能を用いて 、ディスク配列における書込操作を実行する方法に関する。
背景技術 ディスクを利用するマイクロプロセッサ及びコンピュータが近年の間にますます いっそう強力になってきている。現在、利用可能なパソコンは、10年前のメイ ンフレーム及びミニコンピユータを上回る性能を持っている。32ビツト幅のマ イクロプロセッサデータ・バスが広範囲に利用可能となり、一方過去では8ビツ トが従来となり、16ビツトが普通になった。
パソコンシステムは、長年にわたって発展し、新しい使用が日毎発見されている 。使用法が変化し、この結果、完全なコンピュータシステムを形成する種々のサ ブシステムの異なる要望がある。コンピュータシステムの増大した性能によって 固定ディスクドライブ等の大容量記憶サブシステムがコンピュータシステムのデ ータの転送でますます重要な役割を果たすことが明白になった。過去数年におい てはディスク配列サブシステムとして参照される記憶サブシステムにおける新し い傾向がデータ転送性能、容量及び信頼性を改善するために出現してきた。ディ スク配列サブシステムを確立する1つの理由は非常に高いデータ転送率を持つ論 理的デバイスを創ることである。これは、多重の標準ディスク・ドライブを相互 に「集団化」して、これらのドライブの授受データを並列に転送することによっ て達成できる。従って、データは、各ディスクがデータファイルを備えたデータ の部分を持つように、ディスク配列を備えた各ディスクを横断して記憶される。
もしn個のドライブが相互に集団化されるならば、有効データ転送率がn倍まで 増加し得る。この技術はストライプとして知られ、2次記憶への大量の往来デー タの転送が頻繁に要求される超計算環境で始めに採用された。
このストライプにおいては、連続データブロックがセクタサイズのような単位長 の区分に分割され、連続区分が単一ディスクドライブの序列位置でなく、複数の ディスクドライブに順次書き込まれる。各ディスクを横断して記憶されたデータ の単位長即ち容量がストライプサイズとして参照される。このストライプサイズ は、データ転送特性及びアクセス時間に影響を及ぼして、一般にディスク配列の 往来データの転送を最適化するように選ばれる。もしデータブロックがn単位長 より長いならば、プロセスは、各ディスク・ドライブ上の次のストライプ位置毎 に繰り返される。この方法によってn物理的ドライブは、単−論理的デバイスに なり、ソフトウェア又はハードウェアのいずれかを通して実行されてもよい。
ディスク配列サブシステムにおけるデータ保護及び回復用に形成するために用い た1つの技術がパリティスキームとして参照される。このパリティスキームでは 、配列内の種々のドライブに書き込まれるデータブロックが用いられ、公知の排 他的論理和(XOR)技術が配列内の予約即ちパリティ用ドライブに書き込まれ たパリティ情報を創るために用いられる。パリティスキームの利点は、配列内の データ冗長及び回復目的に専念するデータ記憶の量を最小にするために使われて もよいことである。例えば、図1は、3つのディスク即ちディスクO、ディスク 1及びディスク2がデータ記憶のために使われ、1つのディスク即ちディスク3 がパリティ情報を記憶するために使われる伝統的3+1マツピングスキームを説 明している。図1において、番号又は番号に結合した文字Pを囲む各長方形は、 好ましくは512バイトであるセクタに対応する。図1に示すように、各完全な ストライブは、ディスク毎にデータ記憶の合計12セクタのために各ディスクO 11及び2から4セクタを使う。512バイトの標準セクタサイズを仮定すると 、これらの各ディスクストライブのストライブサイズは、ストライブを備えた複 数のディスクの1つにストライブを割り当てられた記憶量として定義された2キ ロバイトである。このように、ストライブに割りあてられた各ディスクの部分の 合計を含む各完全なストライブが、データの6キロバイトを記憶することができ る。各ストライブのディスク3が、パリティ情報を記憶するために使われる。し かしながら、ディスク配列システムにおけるパリティ欠陥許容技術の使用に多く の不利なことがある。図1で説明された3+1マツピングスキームにとって1つ の不利なことは、データドライブが更新され或は書き込まれる毎に、パリティド ライブが更新されなければならないので、ディスク配列内の性能をロスすること である。データは、データドライブにデータを書込むのみでなく、パリティドラ イブに更新されたパリティ情報を書き込むためにXORプロセスを通過しなけれ ばならない。このプロセスは、分配されたパリティデータを持つことによって、 専念のパリティディスク上の負荷を救済して、部分的に軽減されるかもしれない 。しかしながらこれは全部のデータ書込操作の回数を減少しない。
パリティ欠陥許容技術にとって他の不利なことは、伝統的オペレーティング・シ ステム即ちオーニスが部分的ストライブ書込操作として参照されるディスク配列 のストライブサイズよりしばしば小さいディスクサブシステムに多くの小さい書 込を実行することである。例えば、多くの伝統的ファイルシステムは、ファイル システム内のファイル、ディレクトリ及び自由空間の構造を示すために、小さい データ構造を使う。代表的UN I Xファイルシステムにおいては、この情報 が一般にサイズで2キロバイトであるlN0DE又はiノードと言われた構造で 保持される。lN0DE即ちINDEX MODEは、データが配置される位置 、所有及び使用ユーザ、ファイルが修正又はアクセスされた最新時刻、MODE が修正された最新時刻及びリンク数又はそのlN0DEと協働したファイル名の ファイルのタイプ及びサイズに関する情報を含む。O5/2高性能フアイルシス テムでは、この構造がFNODEと言われる。これらの構造はファイルアクセス 及び修正日付及びファイルサイズ情報を含んでいるので、しばしば更新される。
これらの構造は、ディスク配列に使われた代表的データストライブサイズと比較 してかなり小さく、従って、部分的ストライプ書込操作が多くなる原因になる。
部分的ストライプ書込操作が相当頻繁にディスク配列で発生した時には、後述さ れるように、ディスク上の現存のデータ又はパリティ情報が新規パリティ情報を 生成するために、ディスクから読出さなければならないので、ディスクサブシス テムの性能が深刻に縮小される。これは、ディスク・ドライブの余分な回転を生 じさせ、要求を実施する時間の遅れとなる。実操作の実施に要求される時間に加 えて、ディスクの同じセクタへのWRITE操作が追従するREAD操作はハー ド(固定)ディスク・ドライブのある形式で、1ディスク回転即ち約16.5ミ リ秒のロスとなることが認められる。
データの完全なストライブが配列に書き込まれる限り、パリティ情報は、ドライ ブ配列に書き込まれたデータから直接生成されてもよく、それ故、ディスクスト ライプのどんな余分な読出も必要とされない。しかしながら、問題は、前述され るようにディスク配列の制御器が完全なストライブのためにパリティを計算する ために書き込まれたデータから十分な情報を得られないので、コンピュータがデ ィスク配列に部分的ストライブのみを書き込む時に発生する。このように部分的 ストライプ書込操作は、一般に最初読み出され、ホストシステムで活性なプロセ スによって修正され、データディスク上の同じアドレスに書き戻される、ディス クに記憶されたデータを必要とする。この操作は、データディスクREAD、デ ータの修正及び同じアドレスへのデータディスクWRITEから成る。一般に部 分的ストライブ書込操作毎にパリティ情報を計算するために使われた2つの技術 がある。
第1の技術では、XORパリティ欠陥許容システムにおけるデータディスクへの 部分的ストライブ書込がパリティ欠陥許容まずコンピュータシステムは、更新さ れるデータディスクセクタ毎にパリティディスクからのパリティ情報及びデータ ディスクから置換される古いデータ値を読み出す。その後XORパリティ情報は 、古いデータセクタ同士を排他的論理和することによって、関連のパリティセク タを置換するホスト又はローカルプロセッサ又は専用ロジックによって再計算さ れる。これはそれらのデータ値なしでパリティ値を回復する。新規データ値は、 新規パリティデータを生成するために、この回復された値に排他的論理和される 。その後WRITEコマンドはデータディスクに更新されたデータを書込み、パ リティディスクに新規パリティ情報を書込んで実行される。このプロセスは、新 規XORパリティ情報の生成前に2つの追加の部分的セクタREAD操作即ちパ リティディスクからの読出と、古いデータの読出とが要求されることが認められ る。追加的にWRITE操作は丁度読出された位置にある。従ってデータ転送性 能に不利を招く。
第2の方法は、WRITE操作で置換されないという事実にもかかわらずストラ イブのために拒否できないデータの残りを読むことを必要とする。新規パリティ 情報は、回復された古い(旧)データ及び新規データを使って、更新している全 ストライプのために決定されてもよい。このプロセスは、置換すべきでないデー タのREAD操作と、パリティ情報をセーブするフル(全)ストライプWRIT E操作とを必要とする。
先行技術によると、ディスク配列を利用しているパリティ欠陥許容法は、部分的 ストライプWRITE操作を管理するために、上記技術の1つを実行しなければ ならなかった。それ故、部分的ストライブ書込は、書込まれなかったストライブ の残りがフェッチされなければならず、或は、ストライブのための現存のパリテ ィ情報がその情報の実害込より前に読出されなければならないので、システム効 率に害させた。従って、部分的ストライブ書込操作の回数を減少させるためには 、パリティ欠陥許容ディスク配列におけるディスクWRITE操作を実行する改 善された方法の必要性がある。
ディスク・ドライブ゛のバックグラウンドでフォーマット化が適切であると思わ れる。また製造業者は、ディスク・ドライブが生産又は製作される時に、ディス クを低レベルにフォーマット化している。低レベルフォーマット操作は、セクタ の形成と共に、フォーマット化の完了後にセクタを同定するために使われるそれ らのアドレスのマーク化を伴う。セクタのデータ部分が確立されて、ダミーのデ ータが満たされる。ディスク・ドライブユニットがコンピュータシステムと協働 した時には、ディスク制御器及びコンピュータシステムを管理する各オーニスが ディスク・ドライブの高レベル即ち論理的フォーマットを形成して、ディスクに 「ファイルシステム」を位置させて、ディスク・ドライブを標準のオーニスに合 わせるようにしなければならない。この高レベルのフォーマット化は、[メイク ファイルシステム」プログラムとして参照されるオーニスサービスと関連して各 ディスク制御器によって実行される。UNIXオーニスでは、メイクファイルシ ステムプログラムは、ディスク配列上のファイルシステムを創るために、ディス ク制御器と関連して働く。伝統的システムでは、オーニスがブロック又はセクタ の連続リストとしてディスクを考察し、メイクファイルシステムプログラムがこ れらブロックのトポロジーに関して意識しない。
発明の開示 本発明は、ディスク配列サブシステムを持つコンピュータシステムにおけるディ スク性能を改善する方法及び装置を指向する。本発明に従った方法においては、 ディスク配列がデータストライブの可変サイズを持つある指定領域を含む不均一 マツピングスキームが使われる。このディスク配列は、ファイルシステムで頻繁 に用いられる内部データ構造のサイズと殆ど同じであるストライブサイズを持つ 複数のデータストライブからなる領域と、一般のデータ記憶のために使われるよ り大きいストライブサイズを持つ複数のデータストライブを含む領域とを含む。
小さいデータ構造の1つを伴って書込操作が発生する時には、好ましくはそのデ ータ構造は、完全なストライブサイズがデータ構造のサイズと一致したディスク 配列における小さいストライブ領域にマツプされる。この様にファイルシステム データ構造が更新する時にはいつでも、操作がフルなストライブ書込である。こ れは部分的ストライブ書込操作の回数を減少させ、かくして、これらの操作と関 連する性能不利益も減少させる。
本発明のより良い理解は、以下の好ましい実施例の詳細な記述が添付図面ととも に熟慮される時に得ることができる。
図面の簡単な説明 図1は、均一 ストライプサイズを持つ伝統的3+1デイスク配列マツピングス キームの先行技術図である。
図2及び3は、本発明の方法が実施されてもよい記述的コンピュータシステムの ブロック図である。
図4は、好ましい実施例のディスクサブシステムのブロック図である。
図5は好ましい実施例による図4の転送制御器の機能的ブロック図である。
図6は、第1の実施例による可変サイズのストライブを持つ3+1ディスク配列 マツピングスキームの図である。
図7は、本発明の第2の実施例による可変ストライブサイズを持つRAID5  3+1ディスク配列マツピングスキームの図である。
図8は発明の好ましい実施例による4+1ディスク配列マツピングスキームの図 である。
図9は本発明の方法によるWRITE操作のフローチャート図である。
図10は、本発明の方法によるREAD操作のフローチャート図である。
発明を実施するための最良の形態 以下に記述されたコンピュータシステム及びディスク配列サブシステムは本発明 の好ましい実施例を代表している。勿論、以下に記述されたシステムの能力を持 たない他のコンピュータシステムが本発明を実施するために用いることが予想さ れる。
合図2及び3を参照して、文字Cは、一般に本発明が実施されてもよいコンピュ ータシステムを明示している。明確化のためにシステムCは、丸数字1から8で 参照される相互接続部を有する図2及び3の2つの部分で示される。システムC は4つのバスを経て相互接続される多くのブロック要素を含む。
中央処理ユニッ1−CPUは、システムプロセッサバス26に接続されたシステ ムプロセッサ20と、数値コプロセッサ22と、キャッシュメモリ制御器24と 、関連のロジック回路とを備える。キャッシュ制御器24には、高速キャッシュ データランダムアクセスメモリ (RAM)28、非キャッシュ化メモリアドレ ス(NCA)マツププログラミングロジック回路30、非キャッシュ化アドレス 又はNCAメモリマツプ32、アドレス交換ラッチ回路34、データ交換トラン シーバ36及びページヒツト検知ロジック43が協働する。またCPUには、シ ステムプロセッサ用意ロジック回路38、次のアドレス(NA)イネーブルロジ ック回路40及びバス要求ロジック回路42が協働する。
システムプロセッサは、好ましくはインテル社80386マイクロプロセツサで ある。システムプロセッサ2oは、システムプロセッサバス26にインタフェー スされた制御、アドレス及びデータラインを持っている。コプロセッサ22は、 好ましくはローカルプロセッサバス26及びシステムプロセッサ2゜に公知方法 でインタフェースしているインテル80387又はウェイチック社のWTL31 67数値プロセッサである。キャッシュRAM28は、好ましくは必要とされた キャッシュメモリ操作を実行するために、キャッシュ制御器24の制御下でバス 26のアドレス及びデータ要素とインタフェースする好適に高速の静的ランダム アクセスメモリである。キャッシュ制御器24は、好ましくは2ウエイセツト・ アソシアチブ・マスタモードで動作するようにコンフィギユレーションされたイ ンテル82385キヤツシユ制御器である。好ましい実施例では、構成要素が各 ユニットの33MHzバージョンである。所望ならば、インテル80486マイ クロプロセツサ及び外部のキャッシュメモリシステムが80386、数値コプロ セッサ、82385及びキャッシュRAMを置換してもよい。アドレスラッチ回 路34及びデータトランシーバ36は、プロセッサ2oと共にキャッシュ制御器 24にインタフェースして、プロセッサバス26及びホスト又はメモリバス44 間をインターフェイスするローカルバスを形成する。回路38は、バス26への アクセスを制御し、次のサイクルを始める時を指示するバス用意信号を供給する ロジック回路である。イネーブル回路40は、パイプラインアドレスモードにお けるサブシステム要素によって利用されるべきデータ又はコードの次のアドレス がローカルバス26に置かれてもよいことを指示するために利用される。
非キャッシュ化メモリアドレス(NCA)マツププログラマ30は、プロセッサ 20及び非キャッシュ化アドレスメモリ32と協働して、非キャッシュ化メモリ 位置をマツプする。非キャッシュ化アドレスメモリ32は、種々の型のキャッシ ュコヒーレンジ問題を回避するために非キャッシュ化されるシステムメモリの領 域を指定するために利用される。バス要求ロジック回路42は、要求されたデー タがキャッシュメモリ28に位置せず、システムメモリへのアクセスが必要とさ れる時のような状況でホストバス44へのアクセスを要求するために、プロセッ サ20及び関連の要素によって利用される。
主メモリ配列即ちシステムメモリ58はホストバス44に結合される。主メモリ 配列58は、好ましくはダイナミック・ランダムアクセスメモリである。メモリ 58はEISAパスバッファ(EBB)データバッファ回路60、メモリ制御回 路62及びメモリマツパ68を経てホストバス44にインタフェースする。この バッファ60は、データを転送しパリティを生成及び検査する機能を実行する。
メモリ制御器62及びメモリマツパ68はアドレスマルチプレクサ及びコラムア ドレスストローブ(ADDR/CAS)バッファ66及び7リアドレスストロー ブ(RAS)イネーブルロジック回路64を経由してメモリ58にインタフェー スする。
図面において、システムCは、プロセッサバス26又はホストバス44、拡張型 産業標準アーキテクチャ(EISA)バス46 (図3)及びXバス90(図3 )を持つものとして形成される。図3に示され以下に詳述されないシステムの部 分の詳細は、充分にコンフィグされたコンピュータシステムの例を説明したもの より本発明にとって重要でない。図3に示されたシステムCの部分は、必要なE ISAバス46、EISAバス制御器48EBBデータバッファ50及びアドレ スラッチ及びバッファ52として参照するEISAバス46及びホストバス44 間をインタフェースするデータラッチ及びトランシーバを含む必須的に形成され たEISAシステムである。また、図2には、EISA基準のコンピュータシス テムで使われた数々の要素と協働する集積されたシステム周辺機器(ISP)5 4が示される。
集積されたl5P54は、プロセッサ20へのアクセスを必要としないで、主メ モリ58 (図1)又はEISAスロットに差し込まれるメモリ及び入力/出力 (Ilo)位置間のアクセスを制御するために直接メモリアクセス制御器56を 含む。また、l5P54は、割込み制御器70、マスクされない割込みロジック 72及び割込み信号の制御を許容し、EISA仕様書及び従来の慣習に従った方 法で必要なタイミング信号及びウェイト状態を発生するシステムタイマ74を含 む。好ましい実施例では、割込み要求を発生したプロセッサが、従来のインテル 8259割込み制御器をエミュレートし、拡張した2つの割り込み制御回路を経 由して制御される。また、l5P54はバス制御器48と協力して、EISAバ ス46に配置されるキャッシュ制御器24、DMA制御器56及びバスマスクデ バイスによるEISAバス46用の種々の要求間で制御し仲介するバス仲介ロジ ック75を含む。
78と、ISA及びEISAデータ・バス80及び82とを含み、EISAバス 46からISA制御制御バス上6力してXバス90を経てインタフェースされる 。Xバス90のための制御及びデータ/アドレス転送は、Xバス制御ロジック9 2、データバッファ94及びアドレスバッファ96によって容易にされる。
Xバスには好適なキーボード及びマウスをコネクタ100及び102を経由して Xバス90に各々インタフェースするキーボード/マウス制御器98のような種 々の周辺デバイスが取付けられる。またXバスには、システムCおよびシステム ビデオ操作のために基本操作ソフトウェアを含む読出専用メモリ即ちROM回路 106が取付られる。また、直列通信ボート108は、Xバス90を経てシステ ムCに接続している。ブロック回路110には、フロッピ・ディスクサポート、 並列ポート、第2の直列ポート及びビデオサポート回路がある。
コンピュータシステムCは、ディスク配列制御器112、固定ディスクコネクタ 114及び固定ディスク配列116を含むディスクサブシステム111を含む。
ディスク配列制御器112はEISAバス46に好ましくはスロットによって接 続されて、EISAバス46を通してデータ及びアドレス情報を通信する。固定 ディスクコネクタ114はディスク配列制御器112に接続し、順に固定ディス ク配列116に接続している。
今図4を参照して、本発明の詳細な説明するために使われたディスクサブシステ ム111が示される。ディスク配列制御器112は、好ましくはインテル801 86のローカルプロセッサ130を持っている。このローカルプロセッサ130 は多重化されたアドレス/データバスUAD及び制御出力UCを持っている。多 重化されたアドレス/データバスUADは、出力がローカルプロセッサデータ・ バスUDであるトランシーバ132に接続している。また、多重化されたアドレ ス/データバスUADは、Q出力がローカルプロセッサアドレス・バスUAを形 成するラッチ134のD入力にも接続している。ローカルプロセッサ130は、 多重化されたアドレス/データバスUAD及びアドレスデータ・バスUAを経て 結合されるランダムアクセスメモリ (RAM)136と協働する。RAM13 6は適切なタイミング信号を展開するために、プロセッサ制御バスUCに接続し ている。同様に読出専用メモリ (ROM)138は、多重化されたアドレス/ データバスUAD、プロセッサアドレス・バスUA及びプロセッサ制御バスUC に接続している。このように、ローカルプロセッサ130は、そのデータ記憶用 及び操作を制御するために自前の局所メモリを持っている。プログラムできる配 列ロジック(PAL)デバイス140は、ディスク配列制御器112で利用され た追加の制御信号を展開するために、ローカルプロセッサ制御バスUCに接続し ている。
また、ローカルプロセッサアドレス・バスUA、ローカルプロセッサデータ・バ スUD及びローカルプロセッサ制御バスUCは、バスマスクインターフェイス制 御器(BMIC)142に接続している。8MIC142はEISA又はMCA バスのような標準バスにディスク配列制御器112をインタフェースする機能を 提供し、バスマスタとして作用する。好ましい実施例では、8MIC142がE ISAバス46にインタフェースされるインテル82355である。このように 8MIC142は、ローカルプロセッサバスUA、UD及びUCとの接続によっ てローカルプロセッサ130にインタフェースして、データ及び制御情報がホス トシステムC及びローカルプロセッサ130間で通過することができる。
更に、ローカルプロセッサデータ・バスUD及びローカルプロセッサ制御バスU Cは好ましくは転送制御器144に接続されている。一般に転送制御器144は 、ディスク配列制御器112にある種々の他のデバイス及び転送バッファRAM 146間でデータを転送するために用いられた特殊化されたマルチチャンネル直 接メモリアクセス(DMA)制御器である。例えば転送制御器144はBMIC データラインBD及びBMIC制御ラインうCによって8MIC142に接続さ れる。このように、このインターフェイス上でREAD操作が要求されるならば 、転送制御器144は、転送バッファRAM146から8MIC142にデータ を転送することができる。WRITE操作が要求されるならば、データは、8M IC142から転送バッファRAM146に転送することができる。その後転送 制御器144は、転送バッファRAM146からディスク配列116にこの情報 を渡すことができる。転送制御器144は、米国出願第431,735号及び欧 州対応の1991年4月4日に公開された欧州特許出願公開番号0427119 でより詳細に記述され、これらをここに参照する。
転送制御器144は、ディスクデータ・バスDD及びディスクアドレス・バス及 び制御バスDACを含む。ディスクアドレス及び制御バスDACは、固定ディス クコネクタ114の部分である2つのバッファ165及び166に接続して、転 送制御器144及びディスク配列116間で制御信号を授受するために用いる。
ディスクデータ・バスDDは、固定ディスクコネクタ114の部分である2つの データトランシーバ148及び150に接続している。トランシーバ148及び 転送ノ<・ノファ146の出力が、2つのディスク・ドライブポートコネクタ1 52及び154に接続している。同様のファッションにおいて2つのコネクタ1 60及び162はトランシーバ150及びノ(・ノファ166の出力に接続して いる。2つのハードディスクは、各コネクタ152.154.160及び162 に接続することができる。このように、8つまでのディスク・ドライブは転送制 御器144に接続及び結合することができる。後述するように、好ましい実施例 では、5つのディスク・ドライブは、転送制御器144に結合されて、4+1マ ツピングスキームが使われる。
記述的ディスク配列システム112においては、互換性ポート制御器CPC16 4がEISAバス46にも接続している。
CPC164は、互換性データラインCD及び互換性制御ラインCCに亙って転 送制御器144に接続している。そこでCPC164は、EISA特定の空間上 にアドレスされて、非常に高いスルーブツトを許容するディスク配列制御器11 2及びその8MIC142を持たない従来のコンピュータシステムのために書か れたソフトウェアがソフトウェアの書き直しを要求しないで操作できるように形 成される。このように、CPC164は、ハードディスクとのインタフェースに 既に利用した種々の制御ポートをエミュレートする。
今図5を参照して、転送制御器144は、それ自身一連の分離回路ブロックを含 む。転送制御器144は、RAM制御器170及びディスク制御器172として 参照される2つのメイン・ユニットを含む。RAM制御器170は、転送バッフ ァRAM146へのアクセスを持つ種々のインターフェイスデバイスを制御する ためのアービタと、データが転送バッファRAM146を行き来できるようにす るマルチプレクサとを持っている。
同様に、ディスク制御器172は、種々のデバイスのどれが集積ディスクインタ ーフェイス174へのアクセスを持つかを決定するアービタを含み、データが集 積ディスクインターフェイス174を通して前後に適切に転送できる能力を多重 化することを含む。
転送制御器144は、好ましくは7つのDMAチャンネルを含む。1つのDMA チャンネル176は、BMIC142と協力するために割り当てされる。第2の DMAチャンネル178は、CPC164と協働するために設計される。これら の2つのデバイス即ちBMIC142及びバス互換性ポート制御器164は、そ れらの適切なりMAチャンネル176及び178及びRAM制御器170を通し て転送バッファRAM146にのみ結合される。BMIC142及び互換性ポー ト制御器164は集積ディスクインターフェイス174及びディスク配列116 への直接アクセスを持っていない。ローカルプロセッサ130(図3)は、ロー カルプロセッサDMAチャンネル180を通してRAM制御器170に接続され 、ローカルプロセッサディスクチャンネル182を通してディスク制御器172 に接続されている。このように、要望されるように、ローカルプロセッサ130 は、転送バッファRAM146及びディスク配列116に接続している。
更に、転送制御器144は、情報が個々に同時にディスク配列A及びRAM14 6の間で通過できる4つのDMA/ディスクチャンネル184.186.188 及び190を含む。また、第4のDMA/ディスクチャンネル190は、パリテ ィ操作がローカルプロセッサ130での計算を必要としないで、転送制御器14 4で容易に実行することができるように、排他的論理和能力を含むことが注目さ れる。上記コンピュータシステムC及びディスク配列サブシステム111は、本 発明の方法の実施のために好ましいコンピュータシステムを代表する。
コンピュータシステムCは、他のオーニスが使われてもよいが、好ましくは、U NIXオーニスを利用する。背景に記述されたように、UNIXオーニスは、メ イクファイルシステムプログラムとして参照されたサービスを含む。好ましい実 施例では、メイクファイルシステムプログラムは、lN0DEが創られた数及び lN0DEのサイズに関する情報をディスク制御器112に供給する。選択的に メイクファイルシステムは、小さいストライプ及び大きいストライプ領域におけ る所望のストライプサイズと、これらの領域を分割する境界とに関する情報をデ ィスク制御器112に知らせるに十分な知能を含む。既に述べたように、lN0 DEの数は、システムに許されるべきファイルの数に略等しい。ディスク配列制 御器112は、この情報を配列116を備えた各ディスク上にファイルシステム を展開するために用いる。
ディスク配列制御器112は、ディスク配列116を小さいストライプ及び大き いストライブ領域に区画する本発明に従う多重マツピングスキームを用いる。小 さいストライブ領域は、好ましくは各ディスクの第1のNセクタを占有して、l N0DEデータ構造のために予約され、配列における残りのストライプが、デー タ記憶用に用いられる自由空間を備えた大きいストライブ領域を形成する。それ 故、好ましい実施例では、ディスク制御器112は、小さいストライプ領域用に 、配列における各ディスクの第1のNセクタを割りあてる。各ディスクの残りの セクタが、大きいストライブ領域にフォーマット化される。ディスク配列制御器 112は、RAM136における小さいストライプ及び大きいストライブ領域を 分割する境界を記憶する。その後lN0DEデータ構造が各ディスクに書き込ま れる時には、ディスク配列制御器112はこの境界を利用して、配列116の小 さいストライプ部分にlN0DEを書き込む。
この様に、lN0DEが更新する時はいつでも、結果の操作がフルなストライプ 書込である。これは、既に述べたように、部分的ストライプ書込操作は一般に先 行する読出操作を必要とし、性能を減少するので、システム性能を増大させる。
本発明の代わりの実施例では、小さいストライブ領域が各ディスクの第1のNセ クタを占有しないが、むしろ小さいストライブ領域が、大きいストライプ領域間 に散在させられた複数の領域を含む。
この実施例では、小さいストライプ及び大きいストライブ領域を分割する複数の 境界は、ディスク制御器112が小さいストライブ領域にlN0DEデータ構造 を書き込むことができるように、RAM136に記憶される。
本発明の代わりの実施例でO5/2オーニスは使われる。この実施例では、上述 されたメイクファイルシステムプログラムに類似したO5/2サービスは、FN ODEが創られた数及びFNODEのサイズに関する情報をディスク制御器11 2に供給する。その後ディスク制御器は、上述されたものに類似した多重マツピ ングスキームを用いて、ディスク配列116を小さいストライプ及び大きいスト ライブ領域に分割し、小さいストライブ領域がFNODEデータ構造のための予 約である。本発明がどの種類のオーニスまたはファイルシステムとともに操作で きることは注目される。
図1を再び参照して2キロバイトのサイズを持つlN0DEデータ構造が先行技 術による2キロバイトの均一ディスクストライプサイズを持つディスク配列の例 えばストライプ0に書き込まれる時には、全lN0DEがディスク0のセクタ0 .1.2及び3に書き込まれ、ディスク1及び2が未使用される。効果的にこの 操作は、1つのディスクのみがアクセスされるので、ディスク配列システムとい う長所を否定する。また、未使用空間の量がかなりになって、ディスク・ドライ ブの非効率的な使用になる。もし、データが順次ストライプの残り即ちディスク 1及び2にあるストライプの部分に書込みできるならば、このストライプにおけ る結果の操作が、上述されるように性能不利益を持つ部分的ストライプ書込操作 から成る。
合図6を参照して、本発明の一実施例に従う多重ストライプサイズを利用してい る3+1マツピングスキームを説明している図が示される。図6は、実施例のみ であり、ディスク配列1l6が非常に多い数の各サイズのストライプを用いるこ とが注目される。好ましい実施例で使われたディスク・ドライブは、各々が51 2バイトの記憶を持つ多くのセクタを含む。図6で示された実施例では、ディス ク配列は、2つのストライプサイズ即ち、1キロバイトのディスクストライプサ イズおよび2キロバイトのディスクストライプサイズを利用する。図6に示され るように、ストライプO11及び2は、完全なストライプ毎に合計6セクタ又は 3キロバイトのデータ記憶のために、ディスク0.1及び2におけるディスク毎 に2つのセクタを用いた1キロバイトのディスクストライプサイズを利用する。
更に、ストライプ0,1及び2は、各ストライプ用にパリティ情報を記憶するた めにディスク3の2つのセクタを利用する。ストライプ3〜6は、2キロバイト のディスクストライプサイズを利用し、ディスク0,1及び2上のディスク毎に 4セクタが各ストライプ毎にデータ記憶に割りあてられ、ディスク3上の4セク タが各ストライプのためにパリティ情報として予約される。
この実施例ではlN0DEデータ構造は、小さいストライプサイズ即ちストライ プ0.1又は2を持つディスク配列の部分に書き込まれる。既に述べたように、 lN0DE構造は、好ましい実施例ではサイズで2キロバイトであると仮定され る。
それ故国6に示されるように、ストライプO11又は2に書き込まれたlN0D E構造はディスクO及び1の領域を一杯にし、ディスク2が一般に未使用され、 ディスク3が各パリティ情報を記憶するために使われる。この実施例においては データはlN0DEがそこで書き込まれた後に、各ストライプのディスク2への 書込が許可されない。このように、部分的ストライプ書込操作は、発生が防止さ れる。それ故、ディスク配列116の部分のより小さいストライプサイズを用い て、lN0DEが書き込まれた後にデータが未使用空間に書き込まれることを防 止することによって、これらの構造の書込操作がフルなストライプ書込をエミュ レートする。しかしながら、このフルなストライプ書込中には、ディスク2が未 使用或は書込まれず、かくしてディスクエリアの非効率的な使用に結果すること は注目される。更に、ディスク2がlN0DE構造が書き込まれる限り各小さい ストライプ毎に一般に未使用されるので、ディスク配列システムからのデータ転 送帯域幅が減少され、配列がこれらの例で2+1マツピングスキームとして必須 的に動作する。
この問題の1つの解は、図7で示されるように、各ストライプの異なるディスク を横断して未使用空間を分配することである。この様に、データ転送帯域幅の減 少は、各ディスクが略均等に使われるので重要でない。しかしながら、各ディス クアクセスが未使用されたディスクを伴うので、データ転送帯域幅は準最適であ る。さらにこの方法は、未使用ディスク空間の望ましくない量を生成する。
本発明の好ましい実施例ではメ8で示されるように、4+1マツピングスキーム は使われる。図8が例示のみであり、好ましい実施例のディスク配列116が各 小さいストライプ及び大きいストライプ領域における相当多数のストライプを利 用することは、再び注目される。小さいストライプ領域におけるストライプ即ち ストライプO〜4のディスクストライプサイズは512バイトであり、ストライ プサイズは、ストライプに割りあてられた各ディスクの量として定義される。こ の様に、小さいストライプ領域における各完全なストライプは、lN0DE構造 のサイズに略等価である2キロバイトのデータを正確に保持する。従って、lN 0DE構造がディスク配列116における小さいストライプに書き込まれる時に は、フルなストライプ書込操作が実行され、lN0DEがどの未使用空間なしで も全ストライプを占有する。この様にディスク配列116の帯域幅はどのディス クも各アクセスを共にし、どんな未使用空間も生じないので、最適に使われる。
図4を再び参照して、好ましい実施例においては、ディスク要求は、好ましくは EISAバス46及び8MIC142を通してディスク配列制御器112にシス テムプロセッサ20によって提出される。8MIC142を通してこの要求を受 信したローカルプロセッサ130は、ローカルプロセッサRAMメモリ136に データ構造を確立する。このデータ構造はコマンドリストとして知られ、ディス ク配列116に向けた単純なREAD或いはWRITE要求であってもよく、或 いは多重READ/WRITE又は診断及びコンフィギユレーション要求を含む より精巧な要求セットであってもよい。その後コマンドリストが処理用のローカ ルプロセッサ130に提出される。その後ローカルプロセッサ130がデータの 転送を含むコマンドリストの実行を監督する。コマンドリストの実行が完了した 時にはローカルプロセッサ130は、システムマイクロプロセッサ20で動作し ているオーニスデバイスドライバに通知する。コマンドリストの提出及びコマン ドリスト完了の通知は、8MIC142に配lされたI10レジスタを用いるプ ロトコルによって達成される。
ディスク配列制御器112によって実行されたREAD及びWRITE操作は、 ローカルプロセッサ130で動作している多くのアプリケーションタスクとして 実行される。相互作用的なI10100性質の為に、例示的コンピュータシステ ムCがローカルプロセッサ130上の単一バッチタスクとしてディスクコマンド を処理することが非実用的である。従ってローカルプロセッサ130は、本発明 の方法を含む多重タスクがローカルプロセッサ130によってアドレスできる実 時間マルチタスク使用システムを利用する。好ましくはローカルプロセッサ13 0上のオーニスは、コダック社によるAMX86マルチタスク管理プログラムで ある。AMXオーニスのカーネルは、本発明の方法でセットされたアプリケーシ ョンに加えて多くのシステムサービスを供給する。
合図9を参照して、知的ディスク配列制御器112を含むコンピュータシステム Cで実行されるWRITE操作のフローチャート図が示される。WRITE操作 は、アクティブなプロセス又はアプリケーションがディスクデバイスドライバに 渡されたWRITE要求をシステムプロセッサ20に発生させるステップ200 から始める。このディスクデバイスドライバは、コンピュータシステムC好まし くはディスクユニットと実インターフェイス操作を実行するシステムメモリ58 内に含まれたソフトウェアの部分である。ディスクデバイスドライバソフトウェ アは、必要とされたI10操作を実行するために、特定のタスクを形成するシス テムプロセッサ20の制御を仮定する。
制御は、ディスクデバイスドライバがシステムプロセッサ20の制御を仮定し、 WRITEコマンドリストを生成するステップ202に遷移する。
ステップ204では、デバイスドライバがBMIC142又はCPC164を経 てディスク制御器112にWRITEコマンドリストを提出する。その後デバイ スドライバは、ディスク配列制御器112から完了信号を待つために、待ち状態 を入る。
操作の論理的流れは、ローカルプロセッサ130がWRITEコマンドリストを 受信して、lN0DEデータ構造がディスク配列116に書き込まれているか否 かを決めるステップ206に進行する。この決定の実行において、ローカルプロ セッサは好ましくは小さいストライプ及び大きいストライプ領域間の境界を利用 する。本発明の代わりの実施例では、デバイスドライバは、小さいストライプ及 び大きいストライプ領域間の境界を利用して、WRITEコマンドリストにこの 情報を協働する知性がデバイスドライバと協働する。もしlN0DEデータ構造 がディスク配列116に書き込まれているならば、ステップ208においてロー カルプロセッサ130は、小さいストライブ領域へのフルなストライプWRIT E操作のために、ディスク特定WRITE命令を確立する。その後制御は転送制 御器チップ(TCC)144がディスク配列116に書き込まれていたlN0D Eからパリティデータを生成するステップ210に遷移する。小さいストライプ 領域にlN0DEを書き込む操作がフルなストライプ書込操作として扱われ、か くして部分的ストライプ書込操作と関連するどの先行READ操作も遭遇しない ことは注目される。その後操作の制御は、TCCl 44がディスク配列116 内のディスクにデータ及び最近生成されたパリティ情報を書き込むステップ21 2に遷移する。その後制御は、ローカルプロセッサ130は追加のデータがディ スク配列116に書き込まれるか否かを決めるステップ214に遷移する。
追加のデータがディスク配列116に書き込まれるならば、制御は、ローカルプ ロセッサ130がメモリアドレスをインクリメントして、転送されるべきバイト 数デクリメントするステップ216に遷移する。その後制御はステップ206に 戻る。もしどの追加のデータもディスク配列116に書き込まれないならば、制 御はローカルプロセッサ130がWRITE完了を信号するステップ214から ステップ224に遷移する。もし、ローカルプロセッサ130がWRITEコマ ンドリストを受信して、lN0DE構造がディスク配列116に書込まれていな いことを決定するならば、ステップ218でローカルプロセッサ130は、大き いストライブ領域に書込まれるべきデータのためにディスク特定WRITE命令 を確立する。この操作は、RAM136に記憶された小さいストライプ及び大き いストライプ領域間の境界を利用することをローカルプロセッサ130に要求し て、適切な物理的ディスクアドレスが展開されるように、異なったサイズストラ イプ用に修正する適切なバイアス又はオフセットを展開することが注目される。
選択的に、この知性は、デバイスドライバに確立することができ、デバイスドラ イバは、小さいストライプ及び大きいストライプ領域間の境界にアクセス及び用 い、このオフセット情報をWRITEコマンドリストに協働させる。この実施例 でローカルプロセッサ130は、この知性がデバイスドライバに協働されるので 、小さいストライプ及び大きいストライブ領域の間の境界を利用することが要求 されない。
ステップ220で転送制御器チップ144は、書き込まれたデータ用にのみパリ ティ情報を生成する。ここで、もし書込操作がフルなストライプ書込であるなら ば、ディスク制御器112が書き込まれたデータのみからパリティ情報を生成す ることができることが注目される。しかしながら、書込操作が部分的ストライプ 書込操作であるならば、先行続出操作は、ディスク上の現行データ又はパリティ 情報を読むために実行される必要があってもよい。既に述べたように、部分的ス トライプ書込操作の結果で生じるこれらの追加の読出操作はディスクシステム1 11の性能を減少させる。部分的ストライプ書込操作の性能向上に用いた技術に は、1991年8月30日に出願された米国特許出願シリアル番号752,77 3の名称[METHoDFoRPERFORMING WRITE 0PERA TIONS IN A PARITY FAULT TOLERANTDISK  ARRAYJ及び1991年12月27日に出願された、米国特許出願シリア ル番号815,118の名称「佃THOD FORIMPROVING PAR Tl、AL 5TRIPE WRITE PERFORMANCE IN DI SK ARRAYSUBSYSTEMSJが参照され、これら両者がこの発明と 同じ譲受人に譲渡され、ここに参照物として協働する。ステップ222では、デ ィスク制御器112がデータ及びパリティ情報を大きいストライブ領域に書き込 む。その後制御は追加のデータがディスク配列116に書き込まれるべきか否か をローカルプロセッサ130が決めるステップ214に遷移する。ステップ21 4において、どの追加データも転送しないことを決定するならば、制御は、ディ スク配列制御器112がディスクデバイスドライバにWRITE完了を信号する ステップ224に遷移する。その後制御は、デバイスドライバがアプリケーショ ン・プログラムの実行を続けるためにシステムプロセッサ20の制御を解放する ステップ226に進行する。これはWRITE序列の操作を完了する。
合図10を参照して、知的ディスク配列制御器112を用いたディスク配列サブ システム111で実行されるREAD操作が示される。READ操作は、アクテ ィブなプロセス又はアプリケーション・プログラムがシステムプロセッサ20に ディスクデバイスドライバに渡されたREADコマンドを生成させるステップ2 50から始まる。制御はディスクデバイスドライバがシステムプロセッサ20の 制御を仮定し、システムプロセッサ20に、米国特許出願連番431,737に 記載され、本発明の譲受人のコンパツクコンピュータ株式会社に譲渡されたもの に類似したREADコマンドリストを生成させるステップ252に遷移する。こ のREADコマンドリストは、ステップ254でディスクサブシステム111に 送られ、その操作後デバイスドライバは、READ完了信号を受信するまで待機 する。
ステップ256でディスク制御器112は、BMIC142又はCPC146及 び転送制御器144を経てREADコマンドリストを受信し、読出操作が小さい ストライプ領域のデータ即ちlN0DE又は大きいストライプ領域のデータのア クセスを意図しているか否かを決める。この決定の実行においてディスク制御器 112は、好ましくは要求されたデータのディスクアドレスを、RAM136に 記憶された小さいストライプ及び大きいストライプ領域間の境界と比較して、ど の領域がアクセスされているかを決定する。選択的に、更なる知性は、デバイス ドライバはどの領域がREADコマンドリストにアクセスされた情報と協働する ように、デバイスドライバに確立することができる。この実施例によれば、ディ スク制御器112は、小さい余分な知性を必要として、単にディスク特定REA D要求を生成することでREADコマンドリストにこの情報を利用するのみであ る。
もし小さいストライプ領域がアクセスされるならば、ローカルプロセッサ130 は、ステップ260において、要求されたlN0DE及び小さいストライプ領域 におけるその関連のパリティ情報のためのディスク特定READ要求を生成し、 ローカルRAM136における要求を列に並ばせる。制御は、要求が実行され、 要求されたデータがディスク配列112から転送制御器144及びBMIC14 2又はCPCl34を経由して、要求されたタスクによって指示されたアドレス のシステムメモリ58に転送されるステップ264に遷移する。読出操作が大き いストライプ領域におけるデータのアクセスを意図することをディスク制御器1 12が決めたならば、ローカルプロセッサ130は、ステップ262で、要求さ れたデータ及び大きいストライプ領域におけるその関連のパリティ情報のための ディスク特定READ要求を生成し、ローカルRAM136におけるリクエスト 即ち要求を列に並ばせる。これらの要求は実行され、データがステップ264で 転送される。ステップ264におけるデータ転送の完了時にはディスク配列制御 器112がステップ266でディスクデバイスドライバにREAD完了を信号し 、システムプロセッサ20の制御を解放する。
それ故、ディスク配列の可変ストライブサイズを形成し、特に、ディスク配列に 頻繁に書き込まれる小さいデータ構造のサイズに等しい完全なストライプサイズ を有する領域を形成することによって、部分的ストライプ書込操作の回数が減少 される。
データストライブが正確にデータ構造のサイズに一致した小さいストライプ領域 にこれらの小さいデータ構造を配置することによって、結果の操作はフルなスト ライブ書込である。これは、部分的ストライプ書込操作と関連する性能不利益が 除去されるので、ディスク性能を増加させる。
発明の前述の開示及び記述が記述的及び説明用であり、記述的ロジック及びフロ ーチャートの詳細と同様に構成要素、方法及び操作における種々の変更も、発明 の精神を逸脱しないで作られてもよい。
イ反t、ff1i3+1 叉ッヒ・シク゛ス★−4:T身スクOテ゛≧スク1  子)スフ2 テ盲ス?3図1 %rの喫λ包仔弓の3+1 マツ巳°じり゛スキーへ図6 図7 女誉まし\\旬λ包イブリの4+1 マ・・ノと0レク゛′Z牛−乙1図8 国際調査報告 。rT/I+。。5/I+29’1フロントページの続き (81)指定国 EP(AT、BE、CH,DE。
DK、ES、FR,GB、GR,IE、IT、LU、MC,NL、PT、SE) 、0A(BF、BJ、CF、CG、 CI、 CM、 GA、 GN、 ML、  MR,SN、 TD。
TG)、 AT、 AU、 BG、 BR,CA、 CH,C3゜DE、DK、 ES、FI、GB、HU、JP、KR,NL、 No、 PL、 RO,RU、 SE

Claims (1)

  1. 【特許請求の範囲】 1、第1のストライプサイズを持つ複数のデータストライプからなる第1の領域 と、この第1のストライプサイズより大きいストライプサイズを持つ複数のデー タストライプからなる第2の領域とを含み、前記第1のストライプサイズがディ スク配列に使われるデータ構造のサイズに対応するディスク配列の性能改善方法 において、 ディスク配列へのデータ書込操作を生成し、前記データがデータ構造の1つを備 えるか否かを決め、もし前記データがデータ構造の1つを備えるならば、前記第 1のストライプサイズを持つ第1の領域におけるデータストライプに前記データ を書き込み、 もし前記データがデータ構造の1つを備えないならば、第2の領域におけるデー タストライプに前記データを書き込むステップを備えた、コンピュータシステム ディスク配列におけるディスク配列性能を改善する方法。 2、前記第1の領域へのデータ構造の書込は、フルなストライプ書込操作である 請求項1に記載の方法。 3、前記データ書込の決定ステップがディスク配列に結合されたディスク制御器 によって実行される請求項1に記載の方法。 4、前記データ書込の決定ステップが、コンピュータシステムにおけるシステム プロセッサによって実行される請求項1に記載の方法。 5、ディスク配列からデータを要求する読出操作を生成し、前記読出操作が前記 第1のストライプサイズ領域又は前記第2のストライプサイズ領域をアクセスす るつもりか否かを決定し、 前記読出操作の決定ステップに依存した前記第1又は第2のストライプサイズ領 域から前記要求されたデータを供給するステップを更に備えた請求項1に記載の 方法。 6、前記ディスク配列がパリテイ欠陥許容技術を利用し、前記データ用のパリテ ィ情報を生成し、もし前記データがデータ構造の1つを備えるならば、第1の領 域に前記パリティ情報を書き込み、 もし前記データがデータ構造の1つを備えないならば、第2の領域に前記パリテ ィ情報を書き込むステップを更に備えた請求項1に記載の方法。 7、システムバスと、 このシステムバスに結合されて、第1のストライプサイズを持つ複数のデータス トライプからなる第1の領域と、この第1のストライプサイズより大きいストラ イプサイズを持つ複数のデータストライプからなる第2の領域とを含み、前記第 1のストライプサイズが、ディスク配列に使われたデータ構造のサイズに対応す るディスク配列と、 前記システムバスに結合されて、ディスク配列へのデータ書込操作を生成する手 段と、 この生成手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを含むか否かを決定する手段と、この決定手段及び前記システムバスに結合さ れて、前記データがデータ構造の1つを備えるならば、前記第1のストライプサ イズ領域におけるデータストライプに前記データを書き込む手段と、 前記決定手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを備えないならば、前記第2のストライプサイズ領域におけるデータストライ プに前記データを書き込む手段とを備えたディスク配列書込操作を実行するコン ピュータシステム装置。 8、前記第1のストライプサイズ領域への前記データ構造書込操作は、フルなス トライプ書込操作である請求項7に記載の装置。 9、データを記憶するために複数の可変サイズのデータストライプを持ち、第1 のストライプサイズがディスク配列で使われたデータ構造のサイズに対応するコ ンピュータシステムディスク配列におけるディスク配列性能を改善する方法にお いて、ディスク配列へのデータ書込操作を生成し、前記データがデータ構造の1 つを含むか否かを決め、もし前記データがデータ構造の1つを備えるならば、デ ータ構造のサイズに対応している第1のサイズを持つデータストライプに前記デ ータを書き込み、 もし前記データがデータ構造の1つを備えないならば、第1のサイズを持たない データストライプに前記データを書き込むステップを備えた方法。 10、第1のサイズを持つ前記データストライプヘの前記データ構造書込は、フ ルなストライプ書込操作である請求項9に記載の方法。 11、前記ディスク配列はデータ構造を記憶するために第1のストライプサイズ を持つ領域と、第2のストライプサイズを持つ領域を含み、 ディスク配列からデータを要求する読出操作を生成し、前記読出操作が前記第1 のストライプサイズ領域又は前記第2のストライプサイズ領域をアクセスするつ もりか否かを決定し、 前記読出操作決定に依存している前記第1又は第2のストライプ領域から前記要 求されたデータを供給するステップを更に備えた請求項9に記載の方法。 12、システムバスと、 このシステムバスに結合されて、データを記憶するために複数の可変サイズのデ ータストライプを持ち、第1のストライプサイズがディスク配列に使われたデー タ構造のサイズに対応するディスク配列と、 前記システムバスに結合されて、ディスク配列へのデータ書込操作を生成する手 段と、 この生成手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを含むか否かを決定する手段と、この決定手段及び前記システムバスに結合さ れて、前記データがデータ構造の1つを含むならば、前記データ構造のサイズに 対応している前記第1のサイズを持つデータストライプに前記データ構造を書き 込む手段と、 前記決定手段及び前記システムバスに結合されて、前記データがデータ構造の1 つを含まないならば、前記第1のサイズを持つていないデータストライプに前記 データを書き込む手段とを備えた、ディスク配列書込操作を実行するコンピュー タシステム。 13、ディスク配列上にファイルシステムを形成し、前記ディスク配列を区画し て、第1のストライプサイズを持つ複数のデータストライプからなる第1の領域 と、前記第1のストライプより大きいストライプサイズを持つ複数のデータスト ライプからなる第2の領域とを形成し、前記第1のストライプサイズがディスク 配列に使われたデータ構造のサイズに対応し、 ディスク配列へのデータ書込操作を生成し、前記データがデータ構造の1つを含 むか否かを決め、前記データがデータ構造の1つを含むならば、前記第1のスト ライプサイズを持つ第1の領域におけるデータストライプに前記データを書き込 み、 前記データがデータ構造の1つを含まないならば、第2の領域におけるデータス トライプに前記データを書き込むステップを備えた、パリティ欠陥許容技術を利 用するコンピュータシステムディスク配列におけるディスク配列性能を改善する 方法。 14、前記第1の領域への前記データ構造書込は、フルなストライプ書込操作で ある請求項13に記載の方法。 15、ディスク配列からデータを要求する読出操作を生成し、前記読出操作が前 記第1のストライプサイズ領域又は前記第2のストライプサイズ領域をアクセス するつもりか否かを決定し、 前記読出操作の決定ステップに依存した前記第1又は第2のストライプサイズ領 域から前記要求されたデータを供給するステップを更に備えた請求項13に記載 の方法。
JP5511941A 1991-12-27 1992-12-18 不均一ストライプサイズマッピングスキームを用いたディスク配列操作を実行する方法 Pending JPH06511099A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US81400091A 1991-12-27 1991-12-27
US814,000 1991-12-27
PCT/US1992/011283 WO1993013475A1 (en) 1991-12-27 1992-12-18 Method for performing disk array operations using a nonuniform stripe size mapping scheme

Publications (1)

Publication Number Publication Date
JPH06511099A true JPH06511099A (ja) 1994-12-08

Family

ID=25213949

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5511941A Pending JPH06511099A (ja) 1991-12-27 1992-12-18 不均一ストライプサイズマッピングスキームを用いたディスク配列操作を実行する方法

Country Status (5)

Country Link
EP (1) EP0619896A1 (ja)
JP (1) JPH06511099A (ja)
AU (1) AU3424993A (ja)
CA (1) CA2126754A1 (ja)
WO (1) WO1993013475A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3183719B2 (ja) * 1992-08-26 2001-07-09 三菱電機株式会社 アレイ型記録装置
FR2695227B1 (fr) * 1992-09-02 1994-10-14 Aton Systemes Procédé pour le transfert entrelacé des données entre la mémoire d'un ordinateur et un équipement périphérique constitué d'un système de gestion et de plusieurs unités de stockage.
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
EP0701716B1 (en) * 1993-06-03 2002-08-14 Network Appliance, Inc. Method and file system for allocating blocks of files to storage space in a RAID disk system
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
EP0701715A4 (en) * 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
GB9818633D0 (en) * 1998-08-26 1998-10-21 Clifton Bligh Gervase Internet navigation
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6636879B1 (en) 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6728922B1 (en) 2000-08-18 2004-04-27 Network Appliance, Inc. Dynamic data space
US6745284B1 (en) * 2000-10-02 2004-06-01 Sun Microsystems, Inc. Data storage subsystem including a storage disk array employing dynamic data striping
US6658528B2 (en) * 2001-07-30 2003-12-02 International Business Machines Corporation System and method for improving file system transfer through the use of an intelligent geometry engine

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761785B1 (en) * 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access

Also Published As

Publication number Publication date
CA2126754A1 (en) 1993-07-08
EP0619896A1 (en) 1994-10-19
WO1993013475A1 (en) 1993-07-08
AU3424993A (en) 1993-07-28

Similar Documents

Publication Publication Date Title
US5333305A (en) Method for improving partial stripe write performance in disk array subsystems
JP3606881B2 (ja) 動作時にXor演算を行う高性能データ経路
US5522065A (en) Method for performing write operations in a parity fault tolerant disk array
US5737744A (en) Disk array controller for performing exclusive or operations
JP5272019B2 (ja) プロセッサを内部メモリに接続するクロスバー・スイッチを含むフラッシュメモリ用ストレージコントローラ
JP2784440B2 (ja) データ・ページの転送制御方法
EP0427119B1 (en) Disk array controller with parity capabilities
US7743191B1 (en) On-chip shared memory based device architecture
US5572660A (en) System and method for selective write-back caching within a disk array subsystem
US5325499A (en) Computer system including a write protection circuit for preventing illegal write operations and a write poster with improved memory
US6018778A (en) Disk array controller for reading/writing striped data using a single address counter for synchronously transferring data between data ports and buffer memory
US7219169B2 (en) Composite DMA disk controller for efficient hardware-assisted data transfer operations
JPS5873085A (ja) 記憶階層制御方法
JP2013025795A (ja) フラッシュデバイスのためのフラッシュコントローラハードウェアアーキテクチャ
JP2013025793A (ja) フラッシュメディアコントローラの内部のメタデータハンドリング
JPH0345407B2 (ja)
JP3247075B2 (ja) パリティブロックの生成装置
JPH06511099A (ja) 不均一ストライプサイズマッピングスキームを用いたディスク配列操作を実行する方法
JPH08161124A (ja) 計算機システム
JPH0526217B2 (ja)
US5283880A (en) Method of fast buffer copying by utilizing a cache memory to accept a page of source buffer contents and then supplying these contents to a target buffer without causing unnecessary wait states
US5420994A (en) Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
US5557622A (en) Method and apparatus for parity generation
JPS6027965A (ja) 記憶システム
EP1125191A1 (en) Controlling access to a primary memory