JP3371044B2 - ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法 - Google Patents

ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法

Info

Publication number
JP3371044B2
JP3371044B2 JP32792394A JP32792394A JP3371044B2 JP 3371044 B2 JP3371044 B2 JP 3371044B2 JP 32792394 A JP32792394 A JP 32792394A JP 32792394 A JP32792394 A JP 32792394A JP 3371044 B2 JP3371044 B2 JP 3371044B2
Authority
JP
Japan
Prior art keywords
data
disk
storage
error correction
logical block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP32792394A
Other languages
English (en)
Other versions
JPH08185275A (ja
Inventor
敏之 鵜飼
豊彦 鍵政
利明 森
正明 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP32792394A priority Critical patent/JP3371044B2/ja
Priority to US08/578,479 priority patent/US5809516A/en
Publication of JPH08185275A publication Critical patent/JPH08185275A/ja
Application granted granted Critical
Publication of JP3371044B2 publication Critical patent/JP3371044B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ディスクアレイに書き
込むべきデータに対して、ディスクアレイ上のデータ格
納領域を割り当てる方法に関する。
【0002】
【従来の技術】ディスク装置の高性能化の一つの解とし
て、多数のドライブにより構成されるディスクアレイが
考えられている。
【0003】D. Patterson, G. Gibson, and R.H.Katz,
"A Case for Redundant Arrays ofInexpensive Disks
(RAID)", ACM SIGMOD Conference (June 1988), PP. 10
9-116(以下、参考文献1と呼ぶ)においては、いろい
ろのディスクアレイをデータ格納方法によりRAIDレ
ベルにより分類しており、それらの性能および信頼性の
検討結果が報告されている。
【0004】ディスクアレイはディスク装置を多数のド
ライブで構成するため、部品点数が増加し障害が発生す
る確率が高くなる。このため、データからパリティを作
成し、データ格納用のドライブとは別にパリティ格納用
のドライブにこのパリティを格納している。すなわち、
いずれかのデータ格納用のドライブに障害が発生したと
きに、残りのデータドライブ内のデータおよびこのパリ
ティドライブ内のパリティから、その障害が発生したド
ライブ内のデータを回復している。このようなデータの
回復のためには、パリティの他にも、いろいろの誤り訂
正符号が使用される。しかし、本明細書では、実施例を
含め、簡単化のために、誤り訂正符号の一例として最も
よく使用されているパリティを使用する。以下の説明
は、本実施例を含め、他の誤り訂正符号にも適用でき
る。パリティは、複数のデータの対応するビット毎に排
他的論理和をとって生成される。このように、パリティ
を生成するのに使用する複数のデータおよびそれらから
生成されたパリティの組を、パリティグループという。
また、このようなパリティグループを保持する一群のド
ライブを論理グループとよぶ。図39に例示するよう
に、各パリティグループは、複数のドライブ#D0から
#D4内の互いに対応する記憶領域に保持される。
【0005】特に、RAIDレベル5(以下RAID
5)のディスクアレイでは、複数のドライブを独立に動
作させる。一般にRAID5では、上位装置(ホスト)
から書き込みデータが与えられた場合、そのデータは、
単独のデータとして一つのドライブに書き込まれる。さ
らに、そのデータが属するパリティグループの新たなパ
リティは、そのパリティグループの全データから生成す
るのではなく、次の簡単な方法により生成される。すな
わち、その書き込みデータが属するパリティグループの
パリティ(旧パリティ)とそのデータで更新されるデー
タ(旧データ)とをディスクアレイから読み出し、この
読み出された旧データと旧パリティと、ホストから与え
られた新書き込みデータとの排他的論理和を取ることに
より新パリティを算出する。図39を使用して、このパ
リティ生成を具体的に説明する。なお、図で示した番号
#L0等は、各ドライブの、ブロック単位のデータ格納
領域(物理ブロックと呼ばれる)に対してディスクアレ
イが定めた論理的なブロック番号である。例えば、論理
ブロック番号#L1の物理ブロック(以下、”物理ブロ
ック(#L1)”のように表す)に格納されているデー
タブロック(データ#T1とする)を更新する場合、旧
データ#T1と新データ#T1を格納する物理ブロック
(#L1)が属するパリティグループの旧パリティPを
読み出し、この旧パリティP、旧データ#T1’、と新
データ#T1’との排他的論理和をとり、新パリティ
P’を作成した後、新データ#T1’と新パリティP’
とでもって旧データ#T1、Pを書き換える。
【0006】RAID5のディスクアレイでは、このよ
うなパリティの更新方法を取る結果、データの書き込み
要求を実行するときに、そのデータが属するパリティグ
ループ内のパリティの読み出しと書き込みが必要とな
る。このため、図39に示すように、パリティ格納ドラ
イブをパリティグループごとに巡回的に変え、それによ
り同一のドライブへのパリティの読み出し/書き込みの
ためのアクセスの集中を避けている。
【0007】以上から分かるように、RAID5のディ
スクアレイでは、複数の書き込み要求が要求するデータ
とそれらのデータに対するパリティを格納するドライブ
が重複しない限り、それらの書き込み要求は並列に実行
できる。複数の読み出し要求はそれらが要求するドライ
ブが重複しない限り、並列に実行できる。したがって、
RAID5のディスクアレイは、高トラフィックのラン
ダムアクセス向きであると言える。通常、応用プログラ
ムはトラフィック性能を求めることが多いため、一般デ
ィスク代替としてはRAID5を用いることが広まって
いる。
【0008】さて、一般にディスクアレイはホストによ
り以下のように使用されている。
【0009】入出力装置を管理するホストの基本ソフト
であるオペレーティングシステム(OS)は、入出力装
置に格納するデータを、ファイルという抽象化した概念
でユーザに見せ、ユーザの入出力要求を入出力装置に適
合した形の要求に変換する。ホストからディスク装置に
対する入出力要求において扱うデータの単位はブロック
と呼ばれ、ブロック単位のデータはデータブロックと呼
ばれる。通常、オペレーティングシステムはある一定数
のセクタをまとめてブロックとして管理し、ユーザから
のファイルに対するバイト単位の入出力要求を該当する
バイトを含むブロックの入出力に変換し、実行する。ホ
ストからはディスク装置上のデータ格納領域をブロック
毎(あるいはセクタ毎)にアドレスすることができる。
ディスク装置のデータ格納領域は、このホストが使用す
るブロックのサイズに見合ったサイズの複数の物理ブロ
ックに区分される。一般に物理ブロックはディスク装置
上で隣接する一定数のセクタから成る。これらの物理ブ
ロックに対して論理的なブロック番号(論理ブロック番
号)がディスク装置により予め割り当てられる。
【0010】ホストからは、アクセスしたいブロックの
論理ブロック番号を指定することによってディスク装置
上のデータの格納位置を指定する。アレイコントローラ
はホストからの読み出し要求と書き込み要求を保持する
キューを有し、いずれかのドライブが要求受け付け可能
状態ならば、そのキュー内の要求を取り出し、そのドラ
イブに対して発行する。その際、アレイコントローラ
は、ホストが指定した論理ブロック番号を、その番号を
有する物理ブロックのドライブ番号とドライブ内の物理
ブロック番号に変換する。
【0011】さて、オペレーティングシステムは、ファ
イルにデータを書き込むときやファイルが増大したとき
にそのファイルに新しい論理ブロックを割り当てる。
「TheDesign and Implementation of the 4.3BSD UNIX
Operating System」(アディソン・ウェスレー社(Addis
on-Wesley Publishing Company)、(1989年)第169ページ
から第221ページ)(以下、参考文献2と呼ぶ)に記載
されている代表的なオペレーティングシステムでは、デ
ータ記憶領域の割り当てが必要になったとき、割り当て
るべき記憶領域の大きさに応じて数の論理ブロックを割
り当てる。
【0012】オペレーティングシステムは未割り当て論
理ブロックを指定する情報を使用して割り当てるべき論
理ブロックを選択する。この情報はリストあるいはビッ
トマップ形式で表される。未割り当て論理ブロックのリ
ストを使用する場合、割り当てるべき論理ブロックをこ
のリストの先頭から順に選択する。このリストは、ディ
スク装置の論理的な初期化のときに基本的には論理ブロ
ック番号順に作成される。一方、ビットマップは、ある
論理ブロックがすでに割り当てられているか否かをフラ
グで示し、このマップに登録された適当な未割り当ての
論理ブロックを順次選択する。この際、割り当てるべき
論理ブロックの選択の方法の代表的なものは、論理的な
ディスク空間をいくつかの論理的なブロックグループに
分け、論理的なブロックグループ毎に設けたビットマッ
プを使用し、関連のないデータ(異なったディレクトリ
やファイル)は、できるかぎり異なった論理的なブロッ
クグループに論理ブロックを割り当てるように、また、
関連するデータ(同じディレクトリやファイル)は、で
きるかぎり同一の論理的なブロックグループ内の隣接し
た論理ブロックに割り当てるように、割り当てるべき論
理ブロックを選択する方法である。
【0013】このように、連続的に割り当てられた論理
ブロックに対する読み出し/書き込み処理を高速化する
ための技術もある。例えば、「Extent-like Performanc
e from a UNIX File System」USENIX Winter '91, PP.3
3-43(1991年)(以下、参考文献3と呼ぶ)では、同一ド
ライブ上で物理的に連続する論理ブロックを一括して読
み出し/書き込みを行う技術を示している。
【0014】さて、ディスクアレイに対するデータの書
き込みあるいは読み出しを高速化するためにいろいろの
技術が提案されている。例えば、アレイコントローラ内
のキャッシュメモリを設けること(例えば、「ディスク
・アレイ装置、性能向上で分散システムの要に」日経BP
社、日経エレクトロニクス、no.579, PP.92-103(1993.
4.26)(以下、参考文献4と呼ぶ)参照)である。ま
た、物理的に1台のディスクアレイ装置を仮想的に複数
のハードディスク装置に見せ、それぞれの仮想的なハー
ドディスク装置に対して並列に入出力要求を発行させる
ことにより、性能向上を図る技術の例も提案されている
(参考文献4の91頁参照)。
【0015】特に、RAID5のディスクアレイでは、
上に述べたように、一つのデータ書き込み要求に対し
て、計4回の読み出しまたは書き込みの動作を必要とす
るため、データの書き込みに大きなオーバヘッドがあ
る。このオーバヘッドを低減するためのいろいろの方法
も提案されている。
【0016】例えば、特開平4−264910号公報
(以下、参考文献5と呼ぶ)では、同一のパリティグル
ープに属する複数の書き込みデータを書き換える場合
に、アクセスするドライブの数が少なくなるように、こ
れらの書き込みをまとめて処理する技術を示している。
【0017】
【発明が解決しようとする課題】以下に説明するよう
に、RAID5のディスクアレイでは、従来の論理ブロ
ックの割り当て方法に起因して、並列に動作できるドラ
イブの数が制限されるという問題がある。
【0018】通常の応用プログラムにより順次論理ブロ
ックを割り当てるべき複数のファイルブロックには、同
一のファイル内の複数のファイルブロックのごとく、順
序付けられたファイルブロックがある。このようなファ
イルブロックは、一般に順次アクセスされ、シーケンシ
ャル型と呼ぶことがある。
【0019】従来技術で示した参考文献2に記載された
代表的なOSでは、すでに説明したように、未割り当て
の論理ブロックのリストあるいはビットマップを使用し
て関連するデータブロックは論理ブロック番号が近接す
るように行なわれる。リストを使用した場合、複数の順
序付けられたファイルブロックには、未割り当ての論理
ブロックが、論理ブロックの番号順に順次割り当てられ
ることになる。一方、ビットマップを使用した場合に
は、このような複数のファイルブロックには、未割り当
ての論理ブロックが、論理ブロックの番号順に近い順に
割り当てられることになる。結局、いずれの方法でも、
順序付けられた複数のファイルブロックに対して、未割
り当ての論理ブロックが論理ブロック番号順に割り当て
られる。
【0020】通常、ディスクアレイでは、図40に示す
ように、同一のパリティグループに属するデータを保持
する物理ブロックに順次変化する論理ブロック番号が割
り当てられる。RAID5のディスクアレイでは、異な
る書き込み要求は、それらの要求が指定する書き込みデ
ータを格納すべきドライブと、そのデータに対するパリ
ティを保持するドライブが互いに異なる場合に並列に実
行できる。この図のように5台のドライブからなるディ
スクアレイでは、最大二つの書き込み要求を並列に実行
可能である。しかるに、前述のように、順序付けられた
複数のファイルブロックに対して、未割り当ての論理ブ
ロックが論理ブロック番号順に割り当てられると、図4
0に示すように、それらの二つの書き込み要求に対し
て、同一のパリティグループに属する相連続する論理ブ
ロック番号を有する二つの物理ブロックが、OSから相
続いて発行される二つの書き込み要求に対して割り当て
られることになる。したがって、これらの書き込み要求
は、それらの実行に必要なパリティを保持するドライブ
に関して衝突し、これらの書き込み要求が並列に実行出
来ない。このため、書き込み要求の実行速度が低下す
る。
【0021】プログラム上は順次変化する論理的なアド
レスを有するデータブロック#T0〜#T3に論理ブロ
ック#L0〜#L3が割り当てられたとき、その論理ブ
ロックの物理的な配置は図41のようになる。このよう
に論理ブロック番号#L0〜#L3の物理ブロックが割
り当てられたとき、これらの物理ブロックが同じパリテ
ィグループに属すため、実際にはこのパリティグループ
のパリティを格納するドライブ#D4へ同時にアクセス
が行えないことを示す。結局、これらのデータの書き込
み要求は逐次的に処理されることになり、書き込み要求
の並列処理数は1(ドライブの並列動作数は2)とな
る。
【0022】以上の問題は読み出し要求の場合にも生じ
る。複数の読み出し要求は、それらが要求するデータを
保持するドライブが衝突しない限り並列に実行できる。
したがって、最大、ドライブの総数の読み出し要求を並
列に実行できる。しかし、複数のファイルブロックに対
して、順次異なる論理ブロック番号の論理ブロックが割
り当てられた場合、それらのファイルブロックのデータ
を後に読み出す読み出し要求に対して、図40に示すよ
うに、それらの物理ブロックの最初と最後のものは、同
じドライブに属するために、それらの読み出し要求のう
ち、パリティドライブの数1を引いた数だけの要求が並
列に実行できることになる。
【0023】以上の参考文献4,5記載の技術はいずれ
もアレイコントローラにキャッシュを装備して、読み出
し/書き込み命令の実行を制御することにより、実際の
ドライブへの読み出し/書き込みを少なくすることで、
読み出し/書き込みの実行を高速化している。そのた
め、複数のデータブロックに対して、書き込まれるべき
データをドライブに現に書き込むような書き込み要求を
独立に発行するという使用状態には適用できない。ま
た、キャッシュメモリがある場合や、キャッシュメモリ
が有効に働くような読み出し/書き込み要求の状況にし
か適用できない。また、読み出しに関して、図40で示
したような状況には対応できない。
【0024】同様の問題は、参考文献4に示された複数
の論理ユニットを一つのディスクアレイ上で構成し、順
次異なる論理ユニットの論理ブロックをアクセスする場
合にも生じる。
【0025】以上のことは、RAID5レベルのディス
クアレイのごとく、データの書き込み時にパリティの読
み出しを要求するタイプのディスクアレイにおいて、書
き込まれるべきデータを現に書き込む、ディスクアレイ
内の記憶領域の割り当てを工夫することが望ましいこと
を示している。
【0026】本発明の目的は、RAID5レベルのディ
スクアレイのごとく、データの書き込み時にパリティの
読み出しを要求するタイプのディスクアレイにおいて、
書き込み要求あるいは読み出し要求の実行を高速にする
ような、ディスクアレイ内の記憶領域の割り当て方法を
提供することである。
【0027】本発明の他の目的は、そのようなディスク
アレイにおいて、より多くの書き込み要求を並列に実行
可能にするような、ディスクアレイ内の記憶領域の割り
当て方法を提供することである。
【0028】本発明のさらに他の目的は、そのようなデ
ィスクアレイにおいて、より多くの読み出し要求を並列
に実行可能にするような、ディスクアレイ内の記憶領域
の割り当て方法を提供することである。
【0029】本発明のさらに他の目的は、そのようなデ
ィスクアレイにおいて、複数の論理ユニットを実現し、
かつ、より多くの書き込み要求を並列に実行可能にする
ような、ディスクアレイ内の記憶領域の割り当て方法を
提供することである。
【0030】本発明の他の目的は、そのようなディスク
アレイにおいて、書き込み要求あるいは読み出し要求を
より高速に実行可能にするような、ディスクアレイ内の
記憶領域の割り当て方法を提供することである。
【0031】
【課題を解決するための手段】本願第1の発明によれ
ば、順序付けられた複数のデータに相続いて、ディスク
アレイ内の未割り当ての記憶領域を割り当てるときに、
各データに割り当てられた記憶領域およびそのデータの
ための誤り訂正符号保持用の記憶領域が属するディスク
記憶装置が、そのデータに先行する所定数のデータとの
間で、互いに異なるように割り当てる記憶領域を選択す
る。すなわち、各データに割り当てるべき記憶領域が、
そのデータに先行する所定数のデータの各々にすでに割
り当てられた第1の記憶領域が属する第1のディスク記
憶装置と、その第1の記憶領域が属する記憶領域群に保
持された誤り訂正データ群内の誤り訂正符号を保持する
第2の記憶領域が属する第2のディスク記憶装置とのい
ずれにも衝突しない第3のディスク記憶装置に属し、か
つ、その割り当てるべき記憶領域が属する記憶領域群に
保持される誤り訂正データ群内の誤り訂正符号を保持す
る記憶領域が上記第1、第2のディスク記憶装置のいず
れにも衝突しない第4のディスク記憶装置に属するよう
に割り当てる。
【0032】このように割り当てると、これらのデータ
を順次ディスクアレイに書き込む場合、各データに割り
当てられた記憶領域は、そのデータに先行する所定数の
データとは、データ記憶用の記憶領域および誤り訂正符
号保持用の記憶領域のそれぞれが属するディスク記憶装
置に関して、互いに異なるため、上記各データの書き込
みを、先行して行なわれているの上記所定数の先行する
データの書き込みと並行して実行できる。
【0033】この割り当ては、望ましくは、OSが行な
う。また、上記所定数として、最小限1でもよい。この
場合には、最小限、相続く二つのデータの書き込み要求
を並行して実行できることになる。また、上記所定数
は、より望ましくは、上記複数のディスク記憶装置の数
/(各誤り訂正データ群内のパリティを保持するディス
ク記憶装置の数+1)を越えない最大の整数より1小さ
い数とする。この場合には、論理グループを構成する複
数のディスク記憶装置で並列に実行出来る最大限の書き
込み要求を並列に実行可能になる。
【0034】本願第2の発明によれば、順序付けられた
複数のデータに相続いて、ディスクアレイ内の未割り当
ての記憶領域を割り当てるときに、複数のデータの各々
に対して割り当てるべき記憶領域が、そのデータに先行
する、該ディスク記憶装置の総数より1小さい数のデー
タの各々に割り当てられたデータ保持用の記憶領域が属
するディスク記憶装置に衝突しないディスク記憶装置に
属するように割り当てる。
【0035】この発明によれば、論理グループを構成す
る複数のディスク記憶装置で並列に実行出来る最大限の
読み出し要求を並列に実行可能になる。
【0036】本願第3の発明によれば、複数の論理ユニ
ットを実現するディスクアレイにおいて、複数のデータ
に、順次異なる論理ユニットに属する記憶領域を割り当
てるときに、本願第1の発明と同じ条件を満たすよう
に、各データに割り当てるべき記憶領域を選択する。
【0037】これにより、このような複数の論理ユニッ
トに順次書き込まれるべき複数のデータの内、少なくと
も相前後する二つのデータの書き込み要求を並列に実行
可能になる。
【0038】さらに、本願の他の発明では、各ディスク
記憶装置に設けられた、書き込み要求あるいは読み出し
要求を保持する要求キューの保持される、実行待ちの要
求の数がなるべく均一化するように、新たな記憶領域を
割り当てる。
【0039】
【実施例】以下、本発明に係るネットワークを使用した
並列計算機を図面に示したいくつかの実施例を参照して
さらに詳細に説明する。なお、以下においては、同じ参
照番号は同じものもしくは類似のものを表わすものとす
る。
【0040】<実施例1>図1は本発明による領域割り
当て方法の第1の実施例を適用したコンピュータシステ
ムの全体構成を示したものである。
【0041】コンピュータシステムは、上位装置である
ホスト1とRAIDレベル5(RAID5)のディスク
アレイ2から構成される。ディスクアレイ2は、ディス
クコントローラ5と複数のドライブ4から構成される。
これらのドライブはそれぞれいずれかの論理グループに
属する。図では一つの論理グループ6に属するドライブ
のみを示している。論理グループ6は、障害回復単位
で、同一のグループ内のいずれかのドライブに障害が発
生したとき、そのグループ内の他のドライブ内のデータ
を利用して障害が発生したドライブ内のデータを回復す
るようになっている。
【0042】ホスト1ではオペレーティングシステム
(以下OS)3が動作しており、応用プログラム(図示
せず)がいずれかのドライブに保持されたファイルに対
する書き込み要求11を出力したとき、OS3がこのフ
ァイル書き込み要求の実行を制御する。この制御とし
て、OS3が行なう処理は、この書き込み要求が指定し
たファイル名をOS3が管理するiノードへ変換する処
理12と、このファイル書き込み要求をファイルブロッ
ク書き込み要求へ変換する処理13と、処理13で決定
されたファイルブロックを論理ブロックへ変換する処理
14と、ファイルブロックに論理ブロックを割り当てる
際に使用する割り当て候補論理ブロックリストを作成す
る処理18と、そのファイルブロックに論理ブロックを
実際に割り当てる処理15と、この書き込み要求に対し
てバッファキャッシュ26を割り当てる処理16と、ド
ライブに対する書き込み要求を発行する処理17からな
る。なお、割り当て候補論理ブロックリスト24は、割
り当て処理15の処理の実行を高速化するために、ディ
スクアレイ構成情報23を使用して予め作成される。本
実施例では、OS3として、前述の参考文献2に記載の
ものを使用する。
【0043】各論理グループに属するドライブは、複数
のパリティグループの各々に属する複数のデータあるい
はパリティを分散して保持する。RAID5のディスク
アレイでは、図2に例示するように、異なるパリティグ
ループに属するパリティは、順次異なるドライブに保持
される。各ドライブのデータ格納領域には、図2に例示
するように論理ブロック番号#L0、#L1等が従来そ
うであるように、ドライブ順に、しかし、パリティ格納
領域を飛ばして付けられている。
【0044】本実施例では、データのブロックのシーケ
ンシャル書き込みを行なう複数の書き込み要求に対し
て、それらが書き込むデータを保持するドライブおよび
そのデータが属するパリティグループのパリティを保持
するドライブに関して衝突するケースを減らすように、
割り当て処理15において論理ブロックを割り当てると
ころに特徴がある。これにより、並列に実行できる書き
込み要求の数を向上させる。以下、本実施例での処理の
詳細を説明する。
【0045】(処理の全体的な流れ)応用プログラム
(図示せず)はファイルへの書き込みを行う場合、ファ
イル名とファイル上の書き込み開始位置、書き込みデー
タのユーザバッファへのポインタ、およびそのサイズを
指定する。
【0046】変換処理12では、応用プログラムが指定
したファイル名を解釈して、そのファイルのiノードを
見いだす。一般に、OS3は、ファイルブロックと論理
ブロックの対応付けに、指標ノード(iノード)を使用
する。iノードは、ファイルの管理情報と、論理ブロッ
クへの指標とを持ち、これらの指標がファイルブロック
順に論理ブロックを対応付けるのに使用される。つま
り、OS3は、応用プログラムからのファイルに対する
入出力要求に対し、ファイル名から該当するファイルの
iノードを求め、論理ブロックに対する操作へ変換す
る。このようなiノードにより、ディスク空間の使用
や、ファイル増大の際の論理ブロックの割り当てが効率
的になる。
【0047】変換処理13では、OS3は、応用プログ
ラムからの入出力要求をファイルのブロック単位の操作
に変換する。このファイルのブロック毎の断片をファイ
ルブロックと呼び、ファイルの先頭から順に番号付けす
る。すなわち、OS3で受け付けた「ファイルの何バイ
トめから何バイトの書き込み」のような要求を、ディス
ク装置に適合した形(ブロック単位)で、「ファイルブ
ロック何番の何バイトめから何バイトの書き込み」のよ
うな要求に変換する。
【0048】変換処理14では、ファイルブロックに対
する要求を論理ブロックへの要求に変換する。すなわ
ち、処理12で得たiノードを使い、処理13で得たフ
ァイルブロックに対してすでに割り当てられた、論理的
なディスク装置上の論理ブロックを判別し、そのファイ
ルブロックに対する要求を、その判別で見つかった論理
ブロックに対する要求に変換する。
【0049】処理14を実行しようとしても、そのファ
イルブロックに対する要求が、新規のファイル作成要求
やファイルの増大要求の場合、上記ファイルブロックに
論理ブロックがまだ割り当てられていないことになる。
その場合、論理ブロック割り当て処理15により、未割
り当て論理ブロック情報22内の適切な未割り当て論理
ブロックを選択し、そのファイルブロックに対して論理
ブロックを新たに割り当てる。
【0050】バッファキャッシュ割り当て処理16で
は、処理14あるいは15で得た論理ブロックに、メモ
リ上のバッファキャッシュ26を対応付ける。ホスト1
−ディスクアレイ2間書き込みデータのブロックをユー
ザバッファからバッファキャッシュ26に転送し、バッ
ファリングを行なう。一般に、ディスクアレイとホスト
の間の入出力要求の処理は、ホスト1のメモリ内に設け
たバッファキャッシュ26を介して行なう。バッファキ
ャッシュは、ホスト−ディスク装置間で転送されるデー
タのバッファリングと論理ブロックのキャッシュとして
の役割を持つ。
【0051】バッファキャッシュ26に入れられたデー
タのブロックは、ディスクへの書き込み処理17によ
り、適切なタイミングで実際にディスクアレイ2に対し
て書き込みが行なわれる。ディスクアレイ2に対する書
き込みは、論理ブロックの番号を指定する書き込み要求
を発行して行なわれる。
【0052】ディスクアレイ2では、ホストからの論理
ブロック番号で示される領域への書き込み要求をディス
クコントローラ5で受け取り、ディスクコントローラ5
が各ドライブ4に対し、書き込み要求を行なう。ディス
クアレイ2は複数のドライブ4により従来のディスク装
置を論理的にエミュレートする。つまり、ホストには複
数のドライブが従来の単体ディスク1台に相当するよう
に見せかける。このため、ディスクコントローラ5で
は、論理/物理ブロック番号変換テーブル27により、
ホストから発行された書き込み要求が指定する論理ブロ
ック番号を、ディスクアレイ2を構成する単体ドライブ
の物理的なアドレスであるドライブ内の物理ブロック番
号に変換する。この変換により得られたドライブ内物理
ブロック番号を有する物理ブロックに対して、ホストが
供給した書き込み要求を実行する。この論理/物理ブロ
ック番号変換テーブル27は各論理グループに対応して
作成される。図8は、このテーブルの例である。論理/
物理ブロック番号変換テーブル27は、ドライブ内のド
ライブ内物理ブロック番号カラム41、ドライブ番号別
カラム42からなり、各ドライブ番号別カラムには、そ
の番号のドライブ内の物理ブロックに対応する論理ブロ
ック43を保持する。ドライブ内物理ブロック番号カラ
ム41は、単体ドライブ内のデータブロックまたはパリ
ティのブロックが格納されるアドレスである、ドライブ
内物理ブロック番号を表している。ホストから指定され
た論理ブロック番号からその論理ブロック番号で示され
る領域が対応するドライブ番号とドライブ内の物理ブロ
ック番号を得ることができる。
【0053】以上の処理の中で、本実施例では、処理1
8において、未割り当て論理ブロック情報22とディス
クアレイ構成情報23から割り当て候補論理ブロックリ
スト24を作成し、処理15において、いずれかの論理
ブロックをいずれかの書き込み要求に割り当てるとき
に、この作成された割り当て候補論理ブロックリスト2
4を使用すること、および、その割り当ての際に、並列
に実行する二つの書き込み要求が必要とするドライブが
衝突しないように、割り当てるべき論理ブロックを選択
する所に特徴がある。以下、処理15、18を主に説明
する。
【0054】(割り当て候補論理ブロックリスト作成処
理18)まず、図12を参照してこの処理を説明する。
【0055】この処理では、未割り当て論理ブロック情
報22とディスクアレイ構成情報23から、割り当て候
補論理ブロックリスト24を作成する。このリスト24
は、後に説明する論理ブロック割り当て処理15におい
て、検索する論理ブロックの範囲を少なくして、かつ、
必要な論理ブロックの選択を可能ならしめるために使用
される。この割り当て候補論理ブロックリスト24は、
システム立ち上げ時、あるいは書き込み要求時にまとめ
て作成し、割り当て候補論理ブロックリストが尽きたと
き、あるいは書き込み要求時に必要に応じて作成する。
【0056】図9は、ディスクアレイ構成情報23に含
まれる情報の種類を示し、図10は、そのディスクアレ
イ構成情報の具体例を示す。図9と10を参照するに、
RAIDレベル情報44には、例えば、RAID5を表
す5を保持し、データドライブ数45には各パリティグ
ループに含まれる、データを保持するドライブの数、例
えば、4を保持し、パリティドライブ数46には各パリ
ティグループに含まれるパリティを保持するドライブの
数、例えば、1を保持し、パリティドライブ位置情報4
7には、最初のパリティを格納するドライブの番号、例
えば、ドライブ#D4を表す4と、隣接するパリティグ
ループに保持されるパリティを保持するドライブ番号の
差、例えば、−1を保持し、ドライブレベルキャッシュ
の有無48にはドライブレベルキャッシュなしを表す0
を保持している。
【0057】図5は、未割り当て論理ブロック情報22
を例示する。この例は、ビットマップで未割り当て論理
ブロック情報を表している。すなわち、論理ブロック番
号32が、ビットマップ情報31のフラグにより、既割
り当てならば0、未割り当てならば1を示している。図
5で論理ブロック番号を8ビットで表現しているのは、
1ブロックを8つの断片(フラグメント)で管理するこ
とを表している。基本的にファイルシステムはブロック
単位で管理するが、ファイルの最後の部分はフラグメン
トで管理する場合があるためである。処理18では、未
割り当て論理ブロック情報22から未割り当ての論理ブ
ロックを選択し、割り当て候補論理ブロックリストを作
成する。
【0058】図12に戻り、ステップ61においては、
次に割り当てる論理ブロックを決定するための検索する
論理ブロックの数を決定する。本実施例では、この論理
ブロックの数をディスクアレイの構成ドライブ数とす
る。このドライブ数は、ディスクアレイ構成情報23に
より与えられる。なお、更に検索範囲を広げてもよい。
【0059】次にステップ62により、ステップ61に
おいて決定した論理ブロック数の割り当て候補論理ブロ
ックを決定する。本実施例では、図13の#C0〜#C
3のように、RAID5でパリティ格納ドライブと平行
する方向に、構成ドライブ数分のメンバを持つ割り当て
候補論理ブロックグループの選出を行う。この選出にあ
たり、ディスクアレイ構成情報23により与えられるパ
リティドライブ位置情報47を使用する。割り当て候補
論理ブロックグループは、割り当て候補論理ブロックリ
スト24作成のための検索範囲を規定するために用いて
おり、これらが他の方法で規定されれば、このグループ
は必ずしも必要としない。しかし、図13のように論理
ブロックグループを選択したときには、論理ブロックの
割り当て処理15が簡単になるという特徴を有する。こ
れについては、後に割り当て処理のところで説明する。
【0060】ステップ63では、作成した割り当て候補
論理ブロックグループを割り当て候補論理ブロックリス
ト24に登録する。ステップ64では、これを複数作成
し、次の割り当て候補論理ブロックリストへのポインタ
33で連結する。
【0061】一つの論理ブロックグループに対する割り
当て候補論理ブロックリスト24を図6に例示する。こ
の割り当て候補論理ブロックリストは、別の割り当て候
補論理ブロックリストを示すポインタ33と、割り当て
候補論理ブロックリスト内の検索開始点を示すポインタ
34と、割り当て候補論理ブロックリスト内の検索終了
点を示すポインタ35と、割り当て候補論理ブロック番
号39と、割り当て候補論理ブロックリスト内の次の論
理ブロックを示すポインタ38、未割り当て論理ブロッ
クリストの終点を表すポインタ40から構成される。未
割り当て候補論理ブロックリスト内で既に割り当てられ
た論理ブロックは、その論理ブロックへのポインタを次
の未割り当て論理ブロックを指し示すように更新する。
【0062】図7に割り当て候補論理ブロックリスト2
4に保持された情報の具体例を示す。次の割り当て候補
論理ブロックリストへのポインタ33は次の割り当て候
補論理ブロックリストへのポインタ401を保持してい
る。割り当て候補論理ブロックリスト内の検索開始点を
示すポインタ34には、割り当て候補論理ブロックリス
ト内の検索を開始する要素のアドレス0cを保持し、割
り当て候補論理ブロックリスト内の検索終了点を示すポ
インタ35には、割り当て候補論理ブロックリスト内の
最終検索要素のアドレス3cを保持する。これらによ
り、割り当て候補論理ブロックリスト内で任意の検索開
始点、または終了点を選ぶことができる。割り当て候補
論理ブロック番号39には、割り当て候補論理ブロック
404である#L0が保持され、割り当て候補論理ブロ
ックリスト内の次の要素へのポインタ38には、次の要
素へのポインタ405であるアドレス14が保持されて
いる。これにより、割り当て候補論理ブロックリスト内
で割り当てられた要素をスキップさせたり、割り当て候
補論理ブロックリストをリング状に構成することが可能
となる。
【0063】(論理ブロック割り当て処理15)図11
は、この処理15の流れの一例をしめす。この処理で
は、図1の変換処理14において、ファイルブロック要
求に対して論理ブロックがまだ割り当てられていない場
合に、割り当て候補論理ブロックリスト24から未割り
当ての論理ブロックを選択してそのファイルブロックに
対してこの選択された論理ブロックを割り当てる。本実
施例では、この割り当て処理15は、論理的に連続する
複数のファイルブロックに対して割り当てるべき論理ブ
ロックを選択する時に、あい続く二つのファイルブロッ
クが必要とするデータ書き込み用のドライブとそのデー
タが属するパリティグループ内のパリティ保持用のドラ
イブが、互いに衝突しないように、これらのファイルブ
ロックに割り当てるべき論理ブロックを選択するように
なっている。これにより、これらの論理的に連続する複
数のファイルブロックに属するデータブロックを、ディ
スクアレイ内の複数のドライブの数により決まる最大数
だけ並列に書き込めるようにしている。
【0064】さて、ステップ51で割り当て候補論理ブ
ロックリスト内の、検索を開始する論理ブロックへのポ
インタが示すメンバ(#s)を取得し、これを#x割り
当て候補論理ブロックとする。ステップ52では、直前
にデータブロックに割り当てられた論理ブロックのドラ
イブ番号D0とその論理ブロックに対応するパリティの
ドライブ番号P0を取得する。ステップ53で、#x割
り当て候補論理ブロックのドライブ番号Dxとパリティ
格納ドライブ番号Pxを取得する。ステップ54では、
D0,P0,Dx,Pxが全て異なるかどうかを比較す
る。
【0065】ステップ54の比較により、これが全て異
なるならば、ステップ55で、#x論理ブロックを論理
ブロックとして割り当てる、さらに未割り当て論理ブロ
ック情報の、この論理ブロック番号を既割り当てとす
る。ステップ54で同じものが存在すれば、ステップ5
8で割り当て候補論理ブロックリスト内のメンバを全て
検索したかを調べる。この結果、検索が終了していなけ
れば、ステップ59により、ポインタ38が示す次の割
り当て候補論理ブロックを#x割り当て候補論理ブロッ
クとして処理を続行する。検索が終了していれば、ステ
ップ60により、割り当て候補論理ブロックリスト内で
検索を開始したメンバを#x割り当て候補論理ブロック
として、割り当て処理(ステップ55)を行なう。ステ
ップ55により次に割り当てる論理ブロックが決定した
後、割り当て候補論理ブロックリストのメンバが空であ
れば(ステップ56)、ステップ50で次の割り当て候
補論理ブロックリストへのポインタ33が示す割り当て
候補論理ブロックリストを取得し、空でなければ(ステ
ップ56)、割り当て候補論理ブロックリスト内の検索
を開始する論理ブロック番号を示すポインタ33と#x
論理ブロックへのポインタを更新する。
【0066】このとき、ステップ54では、直前に割り
当てられた論理ブロックだけでなく、さらにさかのぼっ
て割り当てられた論理ブロックとの同様の比較を行うこ
とができる。さかのぼって比較する論理ブロックの数
は、ディスクアレイの構成ドライブ数を基に決定するこ
とができる。例えば、「理想的な並列処理数−1」個前
に割り当てた論理ブロックの格納ドライブおよびパリテ
ィ格納ドライブの比較を行って、次に割り当てる論理ブ
ロックを決定する。
【0067】RAID5のディスクアレイでは、書き込
みの理想的な並列処理数は、キャッシュの効果を考えな
い場合、「構成ドライブ数÷(パリティドライブ数+
1)」を越えない整数である。したがって、書き込みを
理想的に並列処理させたい場合は、ステップ54におい
て、一つ前にデータブロックに割り当てられた論理ブロ
ックの格納ドライブとパリティ格納ドライブから、この
整数に等しい数だけ前にデータブロックに割り当てられ
た論理ブロックの格納ドライブとパリティ格納ドライブ
とに対して、割り当て候補の論理ブロックとそれに対す
るパリティ格納ブロックがステップ54での条件を満た
すかの判定を行えばよい。たとえば、データドライブ4
台、パリティドライブ1台構成のディスクアレイでは、
書き込みの理想的な並列処理数は2となる。したがっ
て、この場合は、ステップ54では、一つ前に割り当て
られた論理ブロックの格納ドライブとパリティ格納ドラ
イブに関してステップ54の条件を満たすかを判定すれ
ばよい。
【0068】例えば、図2に例示するようなドライブ5
台構成のディスクアレイにおいて、論理的に連続なデー
タブロック#T0,#T1,#T2,#T3,#T4,
#T5,#T6,,に対して論理ブロックを割り当てる
場合、図11の処理は以下のように実行される。まず、
データブロック#T0に対して、図13に示す論理ブロ
ックグループ#C0の最初の論理ブロック番号#L0の
物理ブロック(物理ブロック(#L0))がステップ5
4の条件を満たし、このデータブロック#T0にこの物
理ブロック(#L0)が割り当てられたと仮定する。次
のデータブロック#T1に対しては、このグループ内の
次の論理ブロック#L7は、先に割り当てられた論理ブ
ロック#L0に対応するパリティが保持されているドラ
イブ#D4にあるため、ステップ54の条件を満たさな
い。グループ#C0の次の論理ブロック#L10はこの
条件を満たすので、データブロック#T1に対しては、
論理ブロック#L10が割り当てられる。さらに次のデ
ータブロック#T2に対しては、このグループ#C0内
の次の論理ブロック#L13はステップ54の条件を満
たさないが、さらに次の論理ブロック#L16がこの条
件を満たす。従って、データブロック#T2に対しては
この論理ブロック#L16が割り当てられる。
【0069】次のデータブロック#T3に対しては、グ
ループ#C0内の未割り当ての論理ブロックとして、グ
ループの2番目の論理ブロック#L7が選択され、ステ
ップ54の条件を満たすか否かを判定する。この論理ブ
ロックは、この条件を満たすので、このデータブロック
#T3に割り当てる(ステップ60)。以下同様にし
て、次のデータブロック#T4に対して、論理ブロック
#L13が、割り当てられる。
【0070】こうして、グループ#C0内の全ての論理
ブロックがデータブロック#T0から#T4に割り当て
られたので、さらに後続のデータブロック#T5以降の
データブロックに対しては、次のグループ#C1内の論
理ブロックについて同様の処理が施される。
【0071】以上の結果、データブロック#T0,#T
1,#T2,#T3,#T4,#T5,#T6,,に対
して、それぞれ順に論理ブロック番号#L0,#L1
0,#L16,#L7,#L13,#L4,#L1
1,,が割り当てられる。このとき、図3に示すよう
に、データブロック#T0の書き込みには、ドライブ#
D1上の論理ブロック#L0とドライブ#D4内のパリ
ティをアクセスし、データブロック#T1の書き込みに
は、ドライブ#D3上の論理ブロック#L10とドライ
ブ#D2内のパリティをアクセスする。したがって、こ
れらの二つの書き込み要求は、使用するドライブにおい
て衝突しない。したがって、これらのデータブロックの
書き込み要求は、これらの論理ブロックに対して並列に
実行されることになる。したがって、並列に実行される
書き込み要求の数は2となり、このディスクアレイで並
列に実行できる最大の書き込み要求数2に等しい数だけ
書き込み要求を並列に実行できることが分かる。なお、
並列に動作するドライブの数は4となる。ただし、次の
データブロック#T2の書き込みにおいては、論理ブロ
ック#L16を含むドライブ#D1と、そのデータに対
するパリティを保持するドライブ#D0へのアクセスを
必要とする。ドライブ#D1はこのデータブロック#T
2の書き込みに使用できるが、ドライブ#D0は、先行
するデータブロック#T0の書き込みに使用されている
間は、このデータブロック#T2の書き込みには使用で
きない。
【0072】ステップ54における判定の対象とする論
理ブロックの数は、一般には、上に説明したとおり、デ
ィスクアレイを構成するドライブの数に依存する。しか
し、図13に示した論理ブロック群を使用する場合、デ
ィスクアレイ内のドライブ数によらないで、ステップ5
4での判定が、直前にデータブロックに割り当てられた
論理ブロックとの比較のみとしても、条件を満たす論理
ブロックを選択できる可能性を高くできるという利点が
ある。また、比較の対象となる論理ブロックの候補を絞
り込むことが可能となる。
【0073】すなわち、図13の各論理ブロック群は、
順次異なるドライブに属する論理ブロックからなり、か
つ、それらの論理ブロックは、パリティを格納する領域
が変化する方向と並行に位置している。つまり、各論理
ブロック群内では、あらかじめ、それぞれの論理ブロッ
クのデータブロックの格納ドライブおよびパリティの格
納ドライブがそれぞれ異なるようになっている。そのた
め、図11の論理ブロック割り当て処理において、ステ
ップ51あるいはステップ59において、次の割り当て
候補となる論理ブロックを選ぶ際に、図13のいずれか
の論理ブロック群に属する論理ブロックを、そのブロッ
ク内の順番にしたがって順次選択して行けば、明らかに
ステップ54の条件を満たさない論理ブロックを比較の
対象から外すことができる。つまり、ステップ54にお
ける判定の対象として、直前にデータブロックに割りあ
てられた論理ブロックのみとでも、少なくともデータブ
ロックの格納ドライブ同士およびパリティ格納ドライブ
同士は異なる論理ブロックを選択することが可能とな
る。
【0074】すなわち、RAID5のディスクアレイで
の、書き込みの理想的な並列処理数である、「(構成ド
ライブ数÷(パリティドライブ数+1)を越えない整
数)−1」に等しい回数前にデータブロックに割り当て
られた論理ブロックから、直前よりさらに一回前にいず
れかのデータブロックに割り当てられた論理ブロックに
対しては、現在割り当て対象に選ばれた論理ブロック
は、ステップ54の条件を満たす可能性が高いからであ
る。したがって、図13の論理ブロック群は、ステップ
54の処理を少くするという利点を有する。
【0075】さらに、図13にしたがって、データブロ
ックに論理ブロックを割り当てた場合、シーケンシャル
な複数のデータブロックに対して並列に実行できる読み
出し要求に数を、ディスクアレイのドライブ数で決ま
る、最大数にできるという利点がある。このように、割
り当て候補論理ブロック群作成処理18は、論理ブロッ
ク割り当て処理15のステップ54を簡単に行なうよう
に、論理ブロックの選択を予め行なっている。
【0076】一般に、読み出しの理想的な並列処理数
は、構成ドライブ台数分に等しい。図13では各論理ブ
ロックグループは、互いに異なるドライブに属する論理
ブロックからなる。したがって、先の論理ブロック割り
当て処理15では、各論理ブロックグループ内の論理ブ
ロックをシーケンシャルなデータブロックに一つずつ割
り当てるので、こうして割り当てられた論理ブロック
は、全て異なるドライブに属することになる。したがっ
て、これらのシーケンシャルなデータブロックに対す
る、ドライブの総数に等しい読み出し要求を並列に実行
できることになる。
【0077】<実施例1の変形例> (1)割り当て候補論理ブロックリスト24は、論理ブ
ロック割り当て処理15において、検索範囲と検索順を
規定するために用いており、これらが他の方法で規定さ
れれば、割り当て候補論理ブロックリスト24は必ずし
も必要としない。例えば、割り当て候補論理ブロックリ
ストを用いない場合、ステップ54の次に割り当てる論
理ブロック決定のための比較において、直前に割り当て
た論理ブロックとの比較だけではなく、さらに前にさか
のぼって割り当てた論理ブロックとも比較すればよい。
【0078】(2)逆に、図6の割り当て候補論理ブロ
ックリスト作成時に、上述の理想的な並列処理数の条件
を追加し、この条件を満たすように論理ブロックの順番
を登録すれば、論理ブロック割り当て処理15の各ステ
ップを省略して、この候補リストに従って順次論理ブロ
ックを割り当ててもよい。
【0079】すなわち、図12の処理におけるステップ
63に、図11のステップ54に相当する比較を追加す
る。本変形例は、ある与えられたリスト順に論理ブロッ
ク割り当てを行う点で、後に例示する実施例3と同様で
ある。異なる点は、未割り当て論理ブロックの管理方法
と、リスト(実施例3では論理ブロック割り当て順リス
ト)作成が、本変形例では書き込み要求を契機に行われ
る点である。
【0080】<実施例2>実施例1においては、シーケ
ンシャルなデータブロックに対する複数の書き込み要求
を最大限並列に実行可能にするような、論理ブロックの
割り当てを行なった。しかし、本実施例では、シーケン
シャルなデータブロックに対する複数の読み出し要求を
最大限並列に実行可能にするような、論理ブロックの割
り当てを行なう。
【0081】読み出し要求を並列に実行できる数の最大
数は、論理グループ内のドライブの総数に等しい。した
がって、複数のシーケンシャルなデータブロックに対し
て、順次異なるドライブを割り当てて行けばよい。その
ためには、図1の処理15において、図11のステップ
54での比較をデータドライブのみに関して行なえばよ
い。パリティドライブを比較の対象にする必要はない。
より具体的には、図13の各割り当て候補論理ブロック
グループに属する論理ブロックを、順次シーケンシャル
なデータブロックに割り当てていけばよい。
【0082】<実施例3>実施例1で使用したOSは、
論理ブロックの割り当ての必要が生じた時点で、割り当
てるべき論理ブロックを決定していた。しかし、予め論
理ブロックを割り当てる順番を決めておき、論理ブロッ
クを割り当てる必要が生じたときに、この順番に従い、
順次論理ブロックを割り当てる変形OSもある。本実施
例は、そのような変形OSを使用する場合に適用され
る。
【0083】本実施例では、このリストを作成する際
に、シーケンシャルな複数のファイルブロックに対し
て、それらのファイルブロックのデータの書き込みを要
求する書き込み要求がディスクアレイ上で許される最大
数まで並列に実行可能なように、未割り当て論理ブロッ
クの割り当て順序を予め決めておくところに特徴があ
る。
【0084】図14は、本実施例によるディスククアレ
イ2へのデータ書き込み処理の流れを示す。本実施例で
は、実施例1と同様に、割り当て候補論理ブロックグル
ープ群作成処理19(図12のステップ62)におい
て、ディスクアレイ構成情報23を使用して、割り当て
候補論理ブロックグループ28(図13)を決定する。
その後、実施例1と異なり、この割り当て候補論理ブロ
ックグループを参照して、次の処理20にて論理ブロッ
ク割り当て順リスト22A(図17)を作成する。さら
に、後に実行する論理ブロック割り当て処理15Aにお
いては、このリスト22Aの順に論理ブロックをファイ
ルブロックに割り当てる点で実施例1と異なる。
【0085】以下、論理ブロック割り当て順リスト22
Aを作成する処理の流れを図15を用いて説明する。こ
の処理では、実施例1の論理ブロック割り当て処理15
で行なった条件判定54(図11)と同じ判定を行なう
所が特徴である。
【0086】ステップ72で、直前に論理ブロック割り
当て順リストに登録した論理ブロックのドライブ番号D
0とパリティ格納ドライブ番号P0を取得する。ステッ
プ73で、ある割り当て候補論理ブロックグループ内の
メンバである論理ブロック#xのドライブ番号Dxとパ
リティ格納ドライブ番号Pxを取得する。ステップ74
では、D0,P0,Dx,Pxが全て異なるかどうかを
比較する。これが全て異なるならば、ステップ75で、
論理ブロック#xを次に論理ブロック割り当て順リスト
に登録する論理ブロックとする。ステップ74で同じも
のが存在すれば、ステップ78で割り当て候補論理ブロ
ックグループ内のメンバを全て検索したかを調べる。こ
の結果、検索が終了していなければ、ステップ79によ
り、グループ内の次のメンバである論理ブロックを論理
ブロック#xとして処理を続行する。検索が終了してい
れば、ステップ80により、割り当て候補論理ブロック
グループ内で検索を開始したメンバを論理ブロック#x
として、論理ブロック割り当て順リストに登録する(ス
テップ75)。ステップ75の後、割り当て候補論理ブ
ロックグループのメンバが空であれば(ステップ7
6)、ステップ81で次の割り当て候補論理ブロックグ
ループを取得する。
【0087】図13のような割り当て候補論理ブロック
グループに対して実際に論理ブロック割り当て順リスト
22Aを作成した結果、図17に示すものが得られる。
また、図16は、この結果で決まる各論理ブロックの割
り当て順番92を、各ブロック内に記載したものであ
る。ここで得られた順番は、実施例1で、データブロッ
ク#T0、#T1、、、の論理ブロックを割り当てたと
きの割り当て順番と一致している。
【0088】この例では、論理ブロック割り当て処理1
5(図1)において論理ブロックの割り当てを行う場
合、この論理ブロック割り当て順リスト22Aを使用し
て論理ブロックの割り当てを行ない、割り当て候補リス
ト24(図1)は使用しない。論理ブロック割り当て順
リスト22Aは、ファイルシステムを作成する時に作成
される。この例では、論理ブロックの割り当て要求毎に
論理ブロック割り当て順リストの先頭の論理ブロックか
ら順に割り当てられる。すなわち、論理ブロックの最初
の割り当て要求に対しては論理ブロック#L0を割り当
てリストから削除、次の割り当て要求に対しては論理ブ
ロック#L10を割り当てリストから削除、というよう
に処理が行われる。いずれかの論理ブロックがファイル
データブロックに割り当てられたとき、その論理ブロッ
クはこのリスト22Aから削除され、後に、ファイルの
削除などによりその論理ブロックが解放されると、その
論理ブロックは論理ブロック割り当て順リスト22Aに
再度登録される。また、論理ブロック割り当ておよび解
放を繰り返すと、時間と共に割り当て順が上述の規則に
基づかなくなっていくことがある。このため、一定時間
経過後や未割り当て論理ブロック数の基準を設けて、論
理ブロック割り当て順リストの更新を行ってもよい。
【0089】以上から明らかなように、本実施例でも、
実施例1と同様にシーケンシャルな複数のファイルブロ
ックへの論理ブロックの割り当てのときに、ディスクア
レイの構成を考慮して、それらのファイルブロックへの
複数の書き込み要求を並列に実行可能になる。本実施例
は実施例1に比べて処理が簡単である半面、論理ブロッ
クが解放されることが頻繁に起こる用途では、作成され
た論理ブロック割り当て順リストを更新する処理を要す
るという問題がある。
【0090】<実施例3の変形例> (1)図13の割り当て候補論理ブロックグループは、
論理ブロック割り当て順リスト作成処理20において、
検索範囲の規定、およびステップ74の効率化のために
用いており、これらが他の方法で実現されれば、割り当
て候補論理ブロックグループは必ずしも必要としない。
例えば、割り当て候補論理ブロックグループを用いない
場合、ステップ74の次に割り当てる論理ブロック決定
のための比較において、直前に割り当てた論理ブロック
との比較だけではなく、さらに前にさかのぼって割り当
てた論理ブロックとも比較すればよい。このとき、ステ
ップ74で、さかのぼって比較する論理ブロックの数
は、実施例1と同様に、ディスクアレイの構成ドライブ
数を基に決定することができる。すなわち、「理想的な
並列処理数−1」個前に割り当てた論理ブロックの格納
ドライブおよびパリティ格納ドライブの比較を行って、
次に割り当てる論理ブロックを決定する。
【0091】<実施例4>実施例3の論理ブロック割り
当て順リスト22A作成処理を利用して、図22に示す
ような、論理ブロック配置の変換マップ29を使用する
ことも出来る。すなわち、実施例3で論理ブロック割り
当て順リスト22Aを作成した後に、さらにこのリスト
から、このマップ29を作成する。このマップは、図1
6に示された割り当て順92と、図17に示された論理
ブロック番号93を対応付けることによって生成され
る。このマップは、論理ブロック割り当て処理15によ
り論理的に連続に割り当てられた論理ブロック番号24
1に対して、該割り当て順242になるように論理ブロ
ック番号を変換(再割り当て)することによって論理ブ
ロック番号で表される物理ブロック配置の変換を行なう
マップである。
【0092】さらに、本実施例での論理ブロック割り当
て処理は、実施例1、2あるいは3と異なり、論理ブロ
ック割り当て部と論理ブロック変換部から構成され、論
理ブロック割り当て部ではディスクアレイのドライブ構
成を意識せずに従来通りの方法で、ファイルブロックに
論理ブロックを一時的に割り当て、論理ブロック変換
(再割り当て)部で論理ブロック変換マップ29を利用
してこの一時的に割り当てられた論理ブロックを変換す
る。
【0093】図22の例では、OS割り当て(図1の処
理15)の論理ブロック番号241と再割り当て論理ブ
ロック番号242の組み合わせは、#Li0〜#Li1
9までの20通り分の組み合わせでで、機械的な変換が
可能である。例えば、OS割り当ての論理ブロック番号
をxとした場合、xを20で除した剰余(x%20)を
求めて、この剰余を論理ブロック変換マップにより再割
り当て論理ブロック番号をyと変換でき、y+x−(x
%20)の計算により、全てのパターンの変換が可能で
ある。つまり、この例では、この20エントリの変換マ
ップさえ持っていれば、論理ブロック番号変換を実現す
ることが可能であるため、必ずしも、全論理ブロック番
号についての変換マップは必要としない。
【0094】<実施例4の変形例> (1)実施例4では、静的な変換マップを使用したが、
この変換マップは、図11に示した処理によって、論理
ブロック割り当て毎に動的に構成することも可能であ
る。この場合は図11のステップ55で論理ブロックを
割り当てるのではなく、変換マップに登録することにな
る。この処理は、後で図21を用いて説明するの実施例
と同様である。
【0095】本変形例によれば、オペレーティングシス
テムの論理ブロック割り当て処理は従来のままで、実施
例1または2と同じように、読み出し/書き込みの並列
処理数を増大することが出来る。
【0096】<実施例5>図18を用いて本実施例によ
る処理の全体を示す。実施例4およびその変形例では、
処理15の論理ブロック割り当て処理は、論理ブロック
割り当て部と論理ブロック変換部から構成されていた。
この論理ブロック変換部を処理17のディスクへの書き
込み処理で行うことが本実施例の特徴である。
【0097】つまり、本実施例は、実施例1または2ま
たは3または4と異なり、論理ブロック割り当て処理1
5Cでは、ディスクアレイの構造を考慮することなく、
従来の方法で、シーケンシャルな複数のファイルブロッ
クの書き込み要求に対して論理ブロックを割り当て(O
S割り当て)、ディスクへの書き込み処理17Cにおい
て、それらのファイルブロックのデータブロックをOS
の管理するバッファキャッシュに書き込んだ後、これら
のデータブロックに対する書き込み要求をディスクアレ
イに転送する前に、この割り当てられた論理ブロック
を、ディスクアレイの構造を考慮して変換(再割り当
て)する。
【0098】本実施例は、論理ブロック割り当て処理1
5Cで、入出力デバイスとしてのディスクアレイの物理
構成を意識する必要がなく、このため処理15Cを本発
明のために変更する必要がない点で実施例1〜4より優
れている。つまり、OS3におけるファイル入出力処理
の上位である処理15Cでは、デバイスの種類によらず
全く同じ処理を行えばよい。一般的にデバイスの種類に
対応して用意される処理17Cのみにおいて、ディスク
アレイの物理構成を意識すればよいという従来のソフト
ウェア構造と同様にすることができる。
【0099】図18において、ファイルブロックに対し
て新しい論理ブロックを割り当てる必要がある書き込み
要求に対しては、論理ブロック割り当て処理15Cが、
未割り当て論理ブロック情報22内の適切な未割り当て
論理ブロックを選択し、論理ブロックを新たに割り当て
る。その後、処理16によりバッファキャッシュへデー
タブロックを書き込んだ後、処理17Cで、ディスクア
レイ構成情報23、論理ブロック変換マップ29、割り
当て候補論理ブロックグループテーブル28を使用し
て、該論理ブロックの配置を変換する。ここで、配置が
変換される前の論理ブロック番号をOS割り当て論理ブ
ロック番号、変換後の論理ブロック番号を再割り当て論
理ブロック番号とする。つまり、OS割り当て論理ブロ
ック番号は、処理14でiノードを使って、ファイルブ
ロック番号と対応する論理ブロック番号であり、再割り
当て論理ブロック番号は、ディスクアレイ2上の各ドラ
イブの物理ブロック配置と直接対応する論理ブロック番
号である。
【0100】この割り当てで使用される割り当て候補論
理ブロックグループテーブル28は、処理19におい
て、予め生成される。
【0101】図20は割り当て候補論理ブロックグルー
プテーブル28の例である。割り当て候補論理ブロック
グループテーブルは、OS割り当て論理ブロック番号の
項目234と、割り当て候補論理ブロックグループ番号
の項目235と、再割り当て論理ブロック番号の項目2
36から構成する。あるOS割り当て論理ブロック番号
に対して、それが属する割り当て候補論理ブロックグル
ープと再割り当て論理ブロック番号を示すテーブルであ
る。上記割り当て候補論理ブロックグループテーブル2
8を作成するための処理19を図19を用いて説明す
る。ステップ231は、OS割り当て論理ブロックの配
置位置を決定するために検索する範囲を決定する、割り
当て候補論理ブロックグループのメンバ数を決定する処
理である。本実施例では、メンバ数をディスクアレイの
構成ドライブ数としているが、更に検索範囲を広げても
よい。次にステップ232により、ステップ231にお
いて決定したメンバ数の割り当て候補論理ブロックを決
定する。
【0102】本実施例では、図13に例示するの割り当
て候補論理ブロックグループ#C0〜#C3のように、
RAID5でパリティ格納ドライブと平行するように割
り当て候補論理ブロックグループの選出を行っている。
もちろん、他の方法によって割り当て候補論理ブロック
グループを選出しても構わない。
【0103】割り当て候補論理ブロックテーブルの意義
としては、処理15Cで割り当てられた、OS割り当て
論理ブロック番号を割り当てられたデータブロックに対
して、ディスクアレイ上であまりに物理的に離れた位置
に再割り当て論理ブロック番号の領域を割り当てること
を防ぐ役割も持っている。図20の例で言うとOS割り
当て論理ブロック番号として#Li0を与えられた場
合、再割り当てされる論理ブロック番号は、#Ld0、
#Ld7、#Ld10、#Ld13、#Ld16に制限
される。もちろん、他の方法によってあまりに物理的に
離れた位置に再割り当て論理ブロック番号の領域を割り
当てることを防いでもよい。
【0104】また、すでにいくつかの論理ブロックが割
り当てられている場合の割り当て候補論理ブロックグル
ープについては、パリティグループの境界を優先した形
で作成しても、グループのメンバ数を一定にすることを
優先した形で作成してもよい。具体的に言うと、例えば
#C0において、#L1が既に割り当てられていた場
合、パリティグループ境界優先では#C0のメンバは、
#L7、#L10、#L13、#L16となり、メンバ
数優先では#C0のメンバは、#L7、#L10、#L
13、#L16、#L20となる。
【0105】図22は、論理ブロック変換マップの例で
ある。論理ブロック変換マップはOS割り当て論理ブロ
ック番号241と再割り当て論理ブロック番号242を
対応付けている。本実施例では、ディスクアレイの処理
状況に応じて対応付けを変化するようにこの論理ブロッ
ク変換マップを動的に作成する。動的マップは、処理自
体のステップ数は増えるが、要求毎にマッピングを行う
ため、割り当ての最適化が可能であるという特徴を有す
る。
【0106】以下、このマップを作成する方法を図21
を用いて説明する。あるOS割り当て論理ブロックの配
置位置は、上記OS割り当て論理ブロックが属する割り
当て候補論理ブロックグループ内の再割り当て論理ブロ
ックから以下のようにして選択され、決定される。
【0107】図21において、ステップ251では、図
20に例示した割り当て候補論理ブロックグループテー
ブルを用いて、OS割り当て論理ブロック番号からその
OS割り当て論理ブロックの属する割り当て候補論理ブ
ロックグループ番号と再割り当て論理ブロック番号を取
得する。ステップ252では、該割り当て候補論理ブロ
ックグループ内に、未再割り当ての論理ブロック番号が
複数あるかどうかを、論理ブロック変換マップを参照し
て調べる。ひとつだけならば、無条件で上記のOS割り
当て論理ブロックに対して、その再割り当て論理ブロッ
クを対応させる(ステップ256)。複数あれば(ステ
ップ252)、ステップ253で、直前に対応付けた再
割り当て論理ブロック番号から、その物理ブロックのデ
ータ格納ドライブ番号とパリティ格納ドライブ番号を取
得する。ステップ254では、こうして取得したドライ
ブ番号と、該割り当て候補論理ブロックグループ内の再
割り当て論理ブロックのドライブ番号およびパリティの
ドライブ番号の比較から、OS割り当て論理ブロックと
再割り当て論理ブロックを対応付ける。このときの処理
は、図11のステップ53〜54、58〜60に示した
ように、それぞれドライブ番号が異なる再割り当て論理
ブロック番号を選択し、条件を満たすものがなければ、
割り当て候補論理ブロックグループ内から適切な再割り
当て論理ブロック番号を選択するものである。対応付け
の結果をステップ255で論理ブロック変換マップに登
録する。
【0108】処理15Cで割り当てられたOS割り当て
論理ブロックに対して、このように動的に論理ブロック
番号を再割り当てすることにより、各ドライブに対する
論理ブロック割り当てを伴う書き込み要求をなるべく均
一にすることができる。
【0109】<実施例5の変形例> (1)また、論理ブロック変換マップは、予め静的に構
成しておくことも可能である。これは実施例3で論理ブ
ロック割り当て順リスト22Aを作成した後に、さらに
このリストから、この論理ブロック変換マップを作成し
た処理と同じように作成する。このマップは、図16に
示された割り当て順92と、図17に示された論理ブロ
ック番号93を対応付けることによって生成される。
【0110】図22の例では、OS割り当て論理ブロッ
ク番号241と再割り当て論理ブロック番号242との
組み合わせは、#Li0〜#Li19までの20通り分
の組み合わせであり、この組み合わせは機械的に変換可
能であることは実施例3で示したのと同様である。
【0111】<実施例6>本実施例では、実施例5と同
様に、論理ブロック割り当てを伴う書き込み要求をなる
べく均一にするように、論理ブロックの割り当てを制御
するが、実施例5と異なり、本実施例では、この制御を
ディスクコントローラで行なう。
【0112】図23は、本実施例での処理の全体を示
す。図24は、この処理を実行する装置を示す。
【0113】図18に示した実施例5では、割り当てら
れた論理ブロックの配置の変換をディスクへの書き込み
処理17Cで行なっていたが、本実施例では、ディスク
アレイ2Aを構成するドライブ4の並列動作数が向上す
るように、ディスクアレイ2A内のディスクコントロー
ラ5Aにおいて、この処理を行う。つまり、図23の処
理17Dにおいて論理ブロック変換マップ29を使っ
て、ホストで割り当てられたOS割り当て論理ブロック
番号を再割り当て論理ブロック番号に変換する。
【0114】本実施例でも、図18の実施例5と同様
に、論理ブロックの変換は、ディスクアレイ構成情報2
3、論理ブロック変換マップ29、割り当て候補論理ブ
ロックテーブル28を使用して行なう。図18の実施例
でも述べたように、配置が変換される前の論理ブロック
番号をOSの割り当てた論理ブロック番号、再割り当て
(変換)した論理ブロック番号を再割り当て論理ブロッ
ク番号とする。OS割り当て論理ブロック番号は、処理
14でiノードを使って、ファイルブロック番号と対応
付けられる論理ブロック番号であり、再割り当て論理ブ
ロック番号は、ディスクアレイ2上の各ドライブの論理
ブロック番号と対応する論理ブロックを示す。
【0115】図24に示すように、各種テーブルやディ
スクアレイ制御プログラムを格納するメモリ414に
は、論理ブロック変換マップ29、ディスクアレイ構成
情報23、論理/物理ブロック番号変換テーブル27、
割り当て候補論理ブロックグループテーブル28が保持
される。
【0116】図23において、OS3のディスクアレイ
2Aへ書き込むべきファイルブロックに対して新しい論
理ブロックを割り当てる必要がある場合、論理ブロック
割り当て処理15Dが、未割り当て論理ブロック情報2
2内の適切な未割り当て論理ブロックを選択し、OS割
り当て論理ブロックとして新たに割り当てる。このと
き、OSにおいては、これがOS割り当て論理ブロック
と意識する必要はなく、従来通りの論理ブロック割り当
てと全く一緒の処理である。
【0117】ディスクアレイ2Aに対する書き込みは、
OS割り当て論理ブロック指定により行なわれる。ディ
スクアレイ2Aでは、ホストからのOS割り当て論理ブ
ロックに対する書き込み要求をディスクコントローラ5
Aが受け取る。ディスクコントローラ5Aでは、このO
S割り当て論理ブロック番号を、論理ブロック変換マッ
プ29を使って、再割り当て論理ブロック番号へ変換す
る。さらに、ディスクコントローラ5Aでは、論理/物
理ブロック変換テーブル27により、再割り当てされた
論理ブロック番号を、ディスクアレイ2Aを構成する単
体ドライブ4の物理的なアドレスである物理ブロック番
号に変換する。論理/物理ブロック変換テーブル27の
例は図8に示したもの、論理ブロック変換マップ29の
例は、図22で示したものと同様なものを使用すればよ
い。論理ブロック再割り当て処理17Dは、図18の実
施例の説明で示した処理17C(図21)と同様であ
る。
【0118】本実施例では、OS割り当て論理ブロック
と再割り当て論理ブロックの変換と、再割り当て論理ブ
ロックと物理ブロックの変換は、両者ともディスクコン
トローラ5Aで行なう。このため、論理/物理ブロック
変換テーブル27の項目のなかに、論理ブロック変換マ
ップ29の機能を持たせることも可能である。この論理
/物理ブロック変換テーブル27の例を図26に示す。
論理/物理ブロック変換テーブル27は、ドライブ内物
理ブロック番号カラム241、ドライブ情報242、論
理ブロック番号テーブル244から構成される。ドライ
ブ内物理ブロック番号カラム241は、単体ドライブ内
のデータブロックまたはパリティが格納されるアドレス
である、ドライブ内物理ブロック番号を表している。ド
ライブ情報242は、ディスクアレイを構成するドライ
ブの番号を示す。このテーブル27は、ディスクアレイ
のディスクコントローラ内において、ホストから指定さ
れたOS割り当て論理ブロック番号を、再割り当て論理
ブロック番号に変換し、さらにドライブ番号とドライブ
内物理ブロック番号に変換するのに用いられる。
【0119】ホストから指定されたOS割り当て論理ブ
ロック番号は、論理ブロック番号テーブル244のエン
トリを調べ、そのエントリの内容である再割り当て論理
ブロック番号245を取得する。該再割り当て論理ブロ
ック番号により論理ブロック番号テーブル244のエン
トリを調べ、ドライブ内物理ブロック番号カラム241
とドライブ情報242を取得して、ドライブ番号とドラ
イブ内の物理ブロックを得ることができる。例えば、図
26では、ホストからOS割り当て論理ブロック番号#
2への書き込み要求を受けた場合、論理ブロック番号テ
ーブル244のエントリである論理ブロック#L2の内
容245を調べて、再割り当て論理ブロック番号#Ld
16を得る。この論理ブロック番号#Ld16のドライ
ブ内物理ブロック番号カラム241とドライブ情報24
2を調べ、ドライブ番号#D1とドライブ内物理ブロッ
ク番号#Y4を得ることができる。
【0120】以上の方法により、本実施例でも、各ドラ
イブに対する論理ブロック割り当てを伴う書き込み要求
をなるべく均一にすることができる。
【0121】<実施例6の変形例> (1)また、実施例5の変形例でも示したように、論理
ブロック変換マップは、予め静的に構成しておくことも
可能である。これは実施例3で論理ブロック割り当て順
リスト22Aを作成した後に、さらにこのリストから、
この論理ブロック変換マップを作成した処理と同じよう
に作成する。このマップは、図16に示された割り当て
順92と、図17に示された論理ブロック番号93を対
応付けることによって生成される。
【0122】図22の例では、OS割り当て論理ブロッ
ク番号241と再割り当て論理ブロック番号242の組
み合わせは、#Li0〜#Li19までの20通り分の
組み合わせであり、機械的な変換が可能であるのは実施
例3で示したことと同様である。
【0123】<実施例7>本実施例では、シーケンシャ
ルな複数のデータブロックを、それらに対する旧パリテ
ィを読み出すことなく、かつ、ドライブの総数に等しい
数のデータブロックを並列に読み出せるように、書込む
ことを可能にする。
【0124】すなわち、それらのデータブロックへの論
理ブロックの割り当てのときには、それらのデータブロ
ックを一つのパリティグループに属するデータブロック
群に分け、各データブロック群の複数のデータブロッ
ク、例えば、#T0から#T3が同一のパリティグルー
プに属するように、そのデータブロック群に異なるドラ
イブに属する一群の論理ブロック番号と対応する物理ブ
ロック、例えば、図29の論理ブロック番号#L0から
#L3の物理ブロック(物理ブロック(#L0)から
(#L3))をまとめて割り当て、それらのデータブロ
ックの書込みを行う。ディスクアレイでは、そのデータ
ブロック群の複数のデータブロック#T0から#T3か
らそれらのデータブロックに対するパリティを生成し、
それらのデータブロック#T0から#T3と生成したパ
リティとを、複数のドライブ#D0から#D4に並行し
て書込む。図30参照。RAID5のディスクアレイで
は、個々のデータブロックを他と独立に書込む場合に
は、一般に旧パリティを読み出す必要があるが、パリテ
ィグループ分のデータのブロックがディスクコントロー
ラに存在するため、この旧パリティの読み出しを不要に
することができる。
【0125】さらに、後続のデータブロック群、例えば
#T4、#T5、#T6、#T7に次の一群の論理ブロ
ックを割り当てる際には、次のパリティグループを保持
する一群の物理ブロック(#L4)から(#L7)を、
上記先行するデータブロック群に対するパリティを保持
するドライブ内の物理ブロック(#L7)から始めて順
次、例えば、(#L7)、(#L4)、(#L5)、
(#L6)の順に、この後続のデータブロック群に割り
当てる。これにより、データブロックの読み出し時に
は、上記先行するデータブロック群#T0,#T1、#
T2、#T3と上記後続のデータブロック群の先頭のデ
ータブロックである#T4とを並列に読み出すことが出
来る。図31参照。すなわち、ドライブの総数に等しい
数のデータブロックを並列に読み出せる。この数は、デ
ィスクアレイで並列に読み出せるデータ数の最大数であ
る。
【0126】図27は本実施例での処理の概略フローを
示す。本実施例を実施するには、ディスクコントローラ
5は、内部にキャッシュメモり7を有し、OS3からま
とめて供給されるデータブロック群を一時的にこのキャ
ッシュメモリ7に保持し、さらにこのデータブロック群
からパリティを生成し、このデータブロック群の複数の
データブロックとこのパリティを並列にドライブ#D0
から#D4に書込むように構成されている必要がある。
もちろん、このキャッシュメモリはパリティ生成回路内
の一時データ格納場所でもよい。
【0127】本実施例と第1の実施例とのソフトウェア
構成の相違点は、論理ブロック割り当て処理15Eとデ
ィスクへの書き込み処理17Eである。また、処理13
Eでは、ファイルに対する書き込み要求11が、ディス
クアレイ2Aのパリティグループの大きさ(ストライプ
の大きさにデータドライブ数を乗じたもの)以上の書き
込み要求である場合、以下の処理15Eにその旨を通知
するようにする。
【0128】論理ブロック割り当て処理15Eでは、フ
ァイルブロックに対して新しい論理ブロックを割り当て
る必要がある書き込み要求は、未割り当て論理ブロック
情報22内の適切な未割り当て論理ブロックを選択し、
論理ブロックを新たに割り当てる。このとき、図28に
例示する論理ブロックの割り当てを行なう。
【0129】図28において、ステップ131では、図
27の処理13Eから、領域割り当てを行なうべきデー
タのブロックが複数有り、この複数データブロックの合
計サイズがディスクアレイ2のパリティグループサイズ
(ストライプの大きさにデータドライブ数を乗したも
の)分以上であるという通知を受ける。ステップ132
で、未割り当て論理ブロック情報から任意のパリティグ
ループを構成する全物理ブロックに対応する論理ブロッ
クが未割り当てであるようなパリティグループを選択す
る。ただし、全論理ブロックが未割り当てという条件を
満たすパリティグループが存在しなければ、第1の実施
例に従って未割り当ての論理ブロックをひとつずつ割り
当ててもよいし、従来通りの割り当てでもよい。また、
なるべく多くの論理ブロックが未割り当てであるパリテ
ィグループを選択してもよい。この場合、以下の処理に
おいては、既割り当ての論理ブロックをとばす形で実施
すればよい。条件を満たすパリティグループが存在する
場合、ステップ133で、複数のデータブロックに対し
て上記パリティグループの全論理ブロックを順次割り当
てる。本実施例は、これらの論理ブロックの割り当てに
当たり、割り当てを行なうパリティグループ(#Pgと
する)の直前のパリティグループ(#Pg−1)のパリ
ティ格納ドライブに属する物理ブロックに対応する論理
ブロックを最初に割り当てるところに特徴がある。その
後は、そのパリティグループ内にその物理ブロックに対
応する論理ブロックより後続の物理ブロックに対応する
論理ブロックがあれば、その後続の物理ブロックに対応
する論理ブロックを、そのパリティグループ#Pg内の
最後の物理ブロックに対応する論理ブロックまで順次割
り当てる。その後、さらにそのパリティグループ#Pg
内の先頭の物理ブロックに対応する論理ブロックからそ
のパリティ格納ドライブ内の論理グループの直前の物理
ブロックに対応する論理ブロックまでを順に割り当てる
(ステップ134)。たとえば、図29では、パリティ
グループ#P0の物理ブロックに対応する論理ブロック
を割り当てるときには、物理ブロック(#L0)から
(#L3)までを割り当てる。さらに、パリティグルー
プ#P1の物理ブロックに対応する論理ブロックを割り
当てるときには、パリティグループの#P0のパリティ
を保持するドライブ#D4内の物理ブロック(#L7)
をまず割り当て、その後物理ブロック(#L4)から
(#L6)までを割り当てる。さらに、パリティグルー
プ#P2の物理ブロックに対応する論理ブロックを割り
当てるときには、パリティグループの#P1のパリティ
を保持するドライブ#D3内の物理ブロック(#L1
0)から(#L11)をまず割り当て、物理ブロック
(#L8)から(#L9)までを次に割り当てる。この
結果、処理15Eによりパリティグループ内全論理ブロ
ックに対しては、図29に例示する割り当て順144
((0),(1),(2),…)のような順番で割り当
てが行なわれる。
【0130】ステップ135では、複数のデータブロッ
クに対して同一パリティグループ内の全物理ブロックに
対応する論理ブロックの割り当てが完了した時点で、図
27のバッファキャッシュ書き込み処理16を起動す
る。これ以降、さらにパリティグループサイズ分以上デ
ータブロックが存在すれば、パリティグループ#Pg+
1から、以上の処理を繰り返す(ステップ136)。
【0131】図27に戻って、処理16では、同一パリ
ティグループ内の全物理ブロックに対応する論理ブロッ
クに割り当てられた複数のデータブロックをバッファキ
ャッシュ26に書き込み、処理17Eでは、バッファキ
ャッシュ26に入れられた複数の書き込みデータの書き
込み要求をパリティグループ単位で一括して、あるいは
順次にディスクアレイ2へ発行する。
【0132】ディスクアレイ2では、ホスト1からのパ
リティグループ内全物理ブロックに対応する論理ブロッ
クへの書き込み要求をディスクコントローラ5受け取
り、ディスクコントローラ5がこれらの書き込みデータ
をキャッシュメモリ7に一時的に保持し、これらの書き
込みデータからパリティを生成し、これらの書き込みデ
ータと生成したパリティを複数のドライブ4に対して並
列に書き込む。
【0133】以上の結果、本実施例では、図39を使っ
て述べたような旧データブロックおよび旧パリティを読
み出すことによる書き込みのオーバヘッドも生じず、ド
ライブの並列動作数が5(並列書き込み要求処理数=
4)となる。また、データのブロック#T0〜#T4の
シーケンシャル読み出しでは、データブロック#T0と
#T4がドライブ#D0にあることによりドライブの並
列動作数が4となっていたものが、図31に示すように
データブロック#T4の格納ドライブがドライブ#D4
となることにより、ドライブの並列動作数は5(並列読
み出し処理数=5)とすることが可能となる。
【0134】<実施例8>図32は本実施例による処理
の全体を示したものである。本実施例の特徴は、ディス
クアレイ2を構成するドライブ4Bにドライブレベルキ
ャッシュ508がある場合、論理ブロック割り当て処理
15Bにおいて、ドライブレベルキャッシュ508が1
回の入出力動作でキャッシュに入れるデータの大きさ単
位でドライブ内の論理ブロックを連続的に割り当てるこ
とである。これにより、連続するデータの入出力時に、
ドライブレベルキャッシュを利用してドライブの入出力
の一括化が図られ、ドライブ単体の性能はもとより、デ
ィスクアレイ全体としての性能を向上することが可能と
なる。
【0135】本実施例は、ディスクアレイを構成するド
ライブがドライブレベルキャッシュを有し、ドライブが
そのキャッシュを利用して入出力を一括化でき、一括化
する単位のなかに複数のブロックが含まれる場合、効果
を得ることができる。
【0136】まず本実施例のハードウェア構成を説明す
る。本実施例と第1の実施例のハードウェア構成との違
いは、ディスクアレイ2にある。ディスクアレイ2は、
制御部であるディスクコントローラ5と複数のドライブ
4Bから構成される。このドライブ4Bの特徴は、磁気
記憶媒体509の他にドライブレベルキャッシュ508
を有することである。このドライブ4Bを使用した、デ
ィスクコントローラ5からのドライブ4B上のある物理
ブロックへの読み出し/書き込み要求の処理は以下のよ
うになる。読み出し/書き込み処理に伴い、上記物理ブ
ロックの読み出しが必要になる場合は、上記物理ブロッ
クの読み出しをドライブ4Bに対して行う。このとき、
ドライブ4Bでは、同一トラックあるいはシリンダ(記
憶媒体の)上の近傍の物理ブロックデータも一括してド
ライブレベルキャッシュに読み込まれ、要求された物理
ブロックデータをディスクコントローラ5へ送る。この
ため、以降にこれらデータがドライブレベルキャッシュ
508内に存在している間にディスクコントローラ5か
ら、この物理ブロック周辺への読み出し要求が発生した
場合、ドライブレベルキャッシュ508からディスクコ
ントローラ5への高速なデータ転送が可能となる。
【0137】次に本実施例のソフトウェア構成を説明す
る。OS3のディスクアレイ2への書き込みは、ファイ
ル名からiノードへの変換処理12と、ファイル書き込
み要求からファイルブロック書き込み要求への変換処理
13と、ファイルブロックから論理ブロックへの変換処
理14と、論理ブロック割り当て処理15Bと、バッフ
ァキャッシュ割り当て処理16と、ディスクへの書き込
み処理17からなる。
【0138】ファイルブロックに対して新しい論理ブロ
ックを割り当てる必要がある書き込み要求は、論理ブロ
ック割り当て処理15Bが、未割り当て論理ブロック情
報22内の適切な未割り当て論理ブロックを選択し、論
理ブロックを新たに割り当てる。この処理15Bでは、
図35に例示する処理を行ない、ファイルブロックに対
して、論理ブロックの割り当てを行なう。
【0139】以下、図35を用いて論理ブロック割り当
て処理15Bの説明を行なう。論理ブロック割り当て処
理15Bは、ドライブ内ブロック連続割り当て量決定処
理(ステップ191)、ドライブ内ブロック連続割り当
て処理(ステップ192)からなる。ステップ191で
は、ディスクアレイ構成情報23のディスクアレイ2を
構成するドライブ4Bのトラック容量、ドライブの自動
先読みデータ量などから、ドライブ4Bが一括してドラ
イブレベルキャッシュ508に読み込むデータ量(ドラ
イブ内ブロック連続割り当て量)を取得する。一般的に
はドライブの自動先読みデータ量とトラック容量は等し
いと考えられるため、トラック内にいくつのブロックが
入るかによって、ドライブ内で連続に割り当てるブロッ
クの数を決定する。ステップ192では、ドライブ内連
続ブロック割り当て領域内に、パリティ領域が含まれる
かどうかを調べる。含まれないときは、ステップ193
により、ステップ191で決定したドライブ内ブロック
連続割り当て量分のブロックを1ドライブ内に連続して
割り当てる。含まれるときは、ステップ194によりこ
れを除いた数のブロックを割り当てる。
【0140】この割り当て方法の効果を、図33と図3
4を用いて説明する。図34では、ドライブレベルキャ
ッシュの一括読み出し量が1トラックで、1トラックに
3ブロック含まれるドライブを例示する。このドライブ
では、1ブロックの読み出し要求処理を行なう場合、該
当ブロックを含む1トラック分の読み出しが自動的に行
なわれる。論理ブロック割り当て時に図35で例示した
処理を行なうと、図33の物理ブロックに対応する論理
ブロック割り当て順は182((0),(1),(2)
…)に示すような順番になる。
【0141】図34において、ディスクコントローラに
は、要求181のように論理的に連続するデータブロッ
ク#T0,#T1,#T2,#T3…(それぞれ物理ブ
ロック(#L0),(#L4),(#L8),(#L
1)…が割り当てられている)の書き込み要求が来ると
する。この場合、ドライブレベルキャッシュ#A0に
は、物理ブロック(#L0),(#L4),(#L8)
に格納されるデータブロック#T0,#T1,#T2
が、ドライブレベルキャッシュ#A1には物理ブロック
(#L1),(#L5),(#L9)に格納されるデー
タブロック#T3,#T4#,T5がキャッシュされ
る。書き込みは、書き込む論理ブロックが属するパリテ
ィグループのパリティブロックを読み出す必要がある。
そのため、ドライブレベルキャッシュ#A2,#A3,
#A4には、それぞれパリティブロックが読みだされる
が、それと共にそのパリティブロックと物理的に近傍
(同一トラック上)に位置する物理ブロックに格納され
るデータもキャッシュされる。つまり、本実施例では、
ドライブレベルキャッシュ#A2には物理ブロック(#
L2)と(#L6)に格納されたたデータブロック(#
T6,#T7))およびパリティグループ#P2のパリ
ティが、ドライブレベルキャッシュ#A3には物理ブロ
ック(#L3)と(#L10)に格納されたたデータブ
ロック(#T8,#T9))およびパリティグループ#
P1のパリティが、ドライブレベルキャッシュ#A4に
は物理ブロック(#L7)と(#L11)に格納された
たデータブロック(#T10,#T11))およびパリ
ティグループ#P0のパリティが読みだされる。このた
め、その後に続く、論理ブロック割り当て順4〜11の
論理ブロックに対応する物理ブロックへの読み出し/書
き込み要求に伴う、ディスクコントローラ5のドライブ
4Bに対する読み出し要求は、ドライブレベルキャッシ
ュに対象となるデータが存在するため、ドライブレベル
キャッシュからディスクコントローラへの、高速な処理
が可能となる。本実施例で示した割り当て順は、割り当
ての際に動的に決定しても、あらかじめ静的に対応付け
てしておいてもよい。
【0142】<実施例9>本実施例では、ディスクアレ
イが複数の仮想的なディスク装置(論理ユニットと呼ば
れる)に分割されて使用される場合に、実施例1の技術
を拡大して適用したもので、異なる論理ユニットに対し
て実行すべき複数の書込み要求を出来るだけ並列に実行
できるように、それらの書込み要求に対する論理ユニッ
ト番号の割り当てを工夫した。すなわち、本実施例で
は、異なる論理ユニットに対する書込み要求の間で、実
施例1と同様にドライブの衝突が生じないように、論理
ブロックを決める。本実施例は、個々の論理ユニットに
対する書込み要求はシーケンシャルなデータブロックに
対する書込み要求でなくてよいが、複数の論理ユニット
に対する書込み要求に順次論理ブロックを割り当てる場
合に適用される。
【0143】図37は、このようなディスクアレイの例
を示す。ここではディスクアレイは実施例1と同様に5
つのドライブ#D0から#D4からなり、これらのディ
スクアレイは、論理ユニット#U0から#U4に分割さ
れ、各論理ユニットには、その先頭位置から順に論理ブ
ロック番号#L0、#L1、、、に対応する物理ブロッ
クが存在する。各論理ユニットはホスト計算機上で走行
する応用プログラムからは、複数の異なるディスク装置
に見え、これらの論理ユニットに対して実行すべきファ
イルブロック書込み要求をこれらの応用プログラムから
OSに独立に与えられる。本実施例では、このように複
数の応用プログラムから与えられる独立の書込み要求に
対して割り当てる論理ブロックを制御して、これらの書
込み要求を出来るだけ並列に実行可能にする。
【0144】すなわち、実施例1では、一つのホストか
ら、OSに対してシーケンシャルな複数のファイルブロ
ックを指定する書込み要求に応答して、それらのファイ
ルブロックに割り当てる論理ブロックを制御したが、本
実施例では、異なる論理ユニットに保持されるべき異な
るファイルに属するファイルブロックを指定する書込み
要求に対して割り当てる論理ブロックを制御する。この
ような独立のファイルブロックを指定する複数の書込み
要求も、それらのファイルブロックに割り当てられた論
理ブロックが属するドライブおよびその論理ブロックに
対するパリティを保持するドライブに関して、衝突しな
ければ並列に実行できる。
【0145】このため、本実施例では、先行する書込み
要求と後続の書込み要求が異なる論理ユニットへの書込
みを要求する場合でも、後続の書込みユニットに割り当
てるべき論理ブロックとそれに対するパリティのドライ
ブとを、それらが先行する書込み要求に割り当てられた
論理ブロックが属するドライブおよびそれに対するパリ
ティが属するドライブに対して衝突しないように、割り
当てるようにした。
【0146】以下、本実施例を、実施例1と異なる点を
中心に、実施例1で使用した図1を引用して説明する。
【0147】本実施例では、図1の割り当て候補論理ブ
ロックリスト群作成処理18を各論理ユニット毎に実行
する。すなわち、各論理ユニット毎に図13に示した論
理ブロック群を作成し、それからその論理ユニットの割
り当て候補論理ブロックリスト群を作成する。
【0148】本実施例では、図1の論理ブロック割り当
て処理15では、図11に代えて、図36に示す処理1
5を実行する。この処理15では、ある論理ユニットに
保持されるべきファイルのファイルブロックへの論理ブ
ロックを割り当てるときに、ステップ450−461の
内、ステップ454以外は、図11の対応する処理と同
じく、その論理ユニットに対して生成された割り当て候
補論理ブロックリスト群に基づいて実行する。すなわ
ち、ある書込み要求に論理ブロックを割り当てるとき
に、その論理ユニットに対して生成された割り当て候補
論理ブロック群の一つに属する複数の候補から順次割り
当て候補を選択し、割り当て可能か否かの判定ステップ
454により、その一つのブロック群から一つの論理ブ
ロック群を割り当てる。後続の書込み要求に対して同様
の処理を実施し、そのブロックの割り当て候補が尽きた
ときに、次の割り当て候補論理ブロック群を使用する。
【0149】ステップ454では、その書込み要求が要
求する論理ユニットが、直前の書込み要求が要求する論
理ユニットと同じか否かに無関係に、その書込み要求に
割り当てるべき論理ブロック番号の物理ブロックが属す
るドライブとそれに対するパリティを保持するドライブ
が、その直前の書込み要求に対して割り当てられた論理
ブロック番号の物理ブロックが属するドライブと対応す
るパリティを保持するドライブに対して衝突しているか
否かを判定し、図36の処理では、この判定結果を使用
して、その先行する書込み要求に衝突しないようなドラ
イブにある物理ブロックに対応する論理ブロックを、そ
の後続の論理ブロックに割り当てるようにしている。
【0150】たとえば、論理ブロックを順次割り当てる
べき複数の書込み要求が論理ユニット#U0、#U
1、、に対して順次書込みを要求する場合、最初の書込
み要求に対して、論理ユニット#U0の論理ブロック番
号#L0の物理ブロック(物理ブロック(#0))が割
り当てられる、次の書込み要求に対しては、例えば、こ
の物理ブロック(#L0)が属するドライブ#D0とこ
の論理ブロックに対するパリティを保持するドライブ#
D4以外のドライブに、物理ブロックに対応する論理ブ
ロックとそれに対するパリティが保持されているよう
な、物理ブロックに対応する論理ブロック、例えば、ド
ライブ#D3の、論理ユニット#U1の物理ブロック
(#L10)が割り当てられる。
【0151】こうして、本実施例では、相前後して発行
された書込み要求が異なる論理ユニットに対しての書込
みを要求する場合でも、それらの書込み要求を並列に実
行可能になる。また、図13のように論理ブロックグル
ープを選んだ場合には、この実施例により、実施例1と
同様に、ドライブの台数で決まる最大数の書込み要求を
並列に実行できる。
【0152】<実施例9の変形例>ステップ454の実
行回数を減らすには、次の方法が望ましい。実施例9で
は、ある論理ユニットに対する書込みを要求する書込み
要求に対する論理ブロックの割り当てを完了したとき、
ステップ457で、その論理ユニットの割り当て候補論
理ブロック群リストの検索開始位置を、次のブロックに
変更している。この際、他の論理ユニットの割り当て候
補論理ブロック群リストの検索開始位置を、次のブロッ
クに変更する。例えば、論理ユニット#U0のドライブ
#D0の論理ブロック番号#L0の物理ブロック(物理
ブロック(#L0))をある書込み要求に割り当てた場
合、次の書込み要求が別の論理ユニット、例えば、#U
1に対する書込み要求であっても、論理ユニット#U1
の、ドライブ#D0内の最初の物理ブロック(#L0)
は、ステップ454の判定条件を満たさないことは明か
である。したがって、この際ステップ454の判定は無
駄となる。本変形例では、この無駄をなくすために、上
述したように、いずれかの論理ユニットの論理ブロック
を書込み要求に割り当てた場合、他の論理ユニットの割
り当て候補論理ブロック群リストの検索開始位置も、次
の論理ブロックに変更する。
【0153】例えば、論理ブロックを順次割り当てるべ
き複数の書込み要求が論理ユニット#U0、#U1、#
U2、#U3、#U4に対して順次、かつ、サイクリッ
クに書込みを要求する場合、これらの書込み要求に対し
て物理ブロックに対応する論理ブロックを割り当てる順
番は、図38のようになる。図では、数字は、同一論理
ユニット内の物理ブロックに対応する論理ブロックを割
り当てる順番を示す。図から分かるように、論理ユニッ
ト#U0に対する最初の書込み要求に対して論理ユニッ
ト#U0の物理ブロック(#L0)が割り当てられ、論
理ユニット#U1に対する最初の書込み要求に対して
は、ステップ454の条件を満たすものとして、論理ユ
ニット#U1の物理ブロック(#L7)が割り当てられ
ることが分かる。
【0154】<実施例10>本実施例では、各ドライブ
での実行待ち状態にある読み出し要求あるいは書き込み
要求の数をなるべく均一にするように論理ブロックの割
り当てを制御する。
【0155】図18を使って本実施例を説明する。実施
例5では、図21に例示した処理17C(図18)にお
いて、直前に再割り当てを行った論理ブロック番号のデ
ータ格納ドライブとパリティ格納ドライブの比較によ
り、論理ブロック割り当てを伴う書き込み要求をなるべ
く均一にすることを目的としてきた。これに対して、ド
ライブ毎の、実行中あるいは実行待ち状態にある、読み
出し要求あるいは書き込み要求の総数(要求キュー長)
が出来るだけ均一になるように、論理ブロック変換マッ
プを作成する方法を図25を用いて説明する。
【0156】図25において、ステップ421では、図
20に例示した割り当て候補論理ブロックグループテー
ブルを用いて、OS割り当て論理ブロック番号からその
OS割り当て論理ブロックの属する割り当て候補論理ブ
ロックグループ番号と再割り当て論理ブロックを取得す
る。ステップ422では、該割り当て候補論理ブロック
グループ内に、未再割り当ての論理ブロックが複数ある
かどうかを、論理ブロック変換マップを参照して調べ
る。ひとつだけならば、無条件で上記OS割り当て論理
ブロックに対して、その論理ブロックを対応させる(ス
テップ428)。複数あれば(ステップ422)、ステ
ップ423で、割り当て候補論理ブロックグループ内の
全メンバである再割り当て論理ブロック番号を得て、こ
のブロックのドライブ番号とパリティ格納ドライブ番号
の組み合わせを取得する。ステップ424では、論理グ
ループ内のドライブ毎の実行待ち状態にある、読み出し
要求あるいは書き込み要求の総数を取得する。ステップ
425において、ステップ423で得たドライブ番号の
組み合わせ毎の平均要求キュー長を取得する。そして、
ステップ423の各組み合わせ毎に、この平均要求キュ
ー長とドライブ毎の要求キュー長の差の絶対値を得て、
これらを各組み合わせ間で比較し、差が最も小さい再割
り当て論理ブロック番号のブロックを選択する。対応付
けの結果をステップ426で論理ブロック変換マップに
登録する。
【0157】処理15Cで割り当てられたOS割り当て
論理ブロックに対して、このように動的に論理ブロック
番号の再割り当てを行うことにより、各ドライブに対す
る、実行中あるいは実行待ち状態にある、読み出し要求
あるいは書き込み要求の総数をなるべく均一にすること
が出来、引いては、多数の読み出し要求あるいは書き込
み要求の実行時間を平均的に短縮できる。
【0158】<実施例11>本実施例では、実施例10
と同様に、各ドライブでの実行待ち状態にある読み出し
要求あるいは書き込み要求の数をなるべき均一にするよ
うに、論理ブロックの割り当てを制御する。実施例10
と異なり、本実施例では実施例6と同様、この制御をデ
ィスクコントローラで行なう。
【0159】本実施例での処理の全体、およびこの処理
を実行する装置は、実施例6で示したものと同様であ
る。実施例6と本実施例の違いは処理17Dにある。実
施例6では、処理17Dにおいて、直前に再割り当てを
行った論理ブロック番号のデータ格納ドライブとパリテ
ィ格納ドライブの比較により、論理ブロック割り当てを
伴う書き込み要求をなるべく均一にした。
【0160】本実施例の処理17Dでは、図25で示し
た方法により、各ドライブでの実行中あるいは実行待ち
状態にある、読み出し要求あるいは書き込み要求の数を
なるべき均一にするように、論理ブロックの再割り当て
(変換)が出来る。
【0161】以上の実施例では、書き込み要求毎にファ
イル格納領域を順次確保する場合を示してきたが、大き
さを指定されたファイルの格納領域を、予め確保するよ
うな場合にももちろん適用可能である。
【0162】また、以上の実施例では、ドライブとして
磁気ディスク装置を用いたものの例に説明したが、光デ
ィスク装置、フロッピィディスク装置等を用いても同様
に実現できることは明らかである。さらに、実施例はR
AID5のディスクアレイを例にとって述べたが、構成
する各ドライブが、ホストからの入出力要求に対してそ
れぞれ独立に入出力処理が可能な方式のディスクアレイ
ならば、RAID5にこだわらない。また、論理グルー
プを構成するドライブ数を5台としたが、論理グループ
を構成するドライブの数は2以上であれば制約がないこ
とは言うまでもない。
【0163】
【発明の効果】本発明によれば、ディスクアレイを使用
した、シーケンシャル読み出し/書き込みにおいて、デ
ィスクアレイを構成するドライブの並列動作数を向上す
ることにより、高速な入出力が可能になる。
【図面の簡単な説明】
【図1】第1、第2、第4および第9の実施例の全体構
成を示す図である。
【図2】ブロック位置の説明図である。
【図3】第1の実施例の効果の説明図である。
【図4】第2の実施例の効果の説明図である。
【図5】未割り当て論理ブロック情報の説明図である。
【図6】割り当て候補論理ブロックリストの説明図であ
る。
【図7】割り当て候補論理ブロックリストの説明図であ
る。
【図8】論理/物理ブロック番号変換テーブルの説明図
である。
【図9】ディスクアレイ構成情報の説明図である。
【図10】ディスクアレイ構成情報の説明図である。
【図11】論理ブロック割り当て処理の流れを示す図で
ある。
【図12】割り当て候補論理ブロックリスト郡作成処理
の流れ図である。
【図13】割り当て候補論理ブロックグループの説明図
である。
【図14】第3の実施例の全体構成を示す図である。
【図15】論理ブロック割り当て順リスト作成処理の流
れを示す図である。
【図16】論理ブロック割り当て順の説明図である。
【図17】論理ブロック割り当て順リストの説明図であ
る。
【図18】第5および第10の実施例の全体構成を示す
図である。
【図19】割り当て候補論理ブロックグループテーブル
作成処理の流れを示す図である。
【図20】割り当て候補論理ブロックグループテーブル
の説明図である。
【図21】領域割り当て処理の流れを示す図である。
【図22】論理ブロック変換マップの説明図である。
【図23】第6および第11の実施例の全体構成を示す
図である。
【図24】第6および第11の実施例の装置の説明図で
ある。
【図25】論理ブロック再割り当て処理の流れを示す図
である。
【図26】論理/物理ブロック番号変換テーブルの説明
図である。
【図27】第7の実施例の全体構成を示す図である。
【図28】論理ブロック割り当て処理の流れを示す図で
ある。
【図29】論理ブロック割り当ての説明図である。
【図30】第7の実施例の効果の説明図である。
【図31】第7の実施例の効果の説明図である。
【図32】第8の実施例の全体構成を示す図である。
【図33】論理ブロック割り当ての説明図である。
【図34】第8の実施例の効果の説明図である。
【図35】領域割り当て処理の流れを示す図である。
【図36】論理ユニット分割された領域割り当て処理の
流れを示す図である。
【図37】論理ユニット分割の例の説明図である。
【図38】論理ユニット分割された場合の論理ブロック
割り当て順の説明図である。
【図39】RAID5の従来技術の説明図である。
【図40】従来技術の問題点の説明図である。
【図41】従来技術の問題点の説明図である。
【符号の説明】
1…ホスト、2…ディスクアレイ、3…オペレーティン
グシステム、4…ドライブ、5…ディスクコントロー
ラ、6…論理グループ、11…ユーザからの書き込み要
求、12…ファイル名−iノード変換処理、13…ファ
イルブロック単位の書き込み要求への変換処理、14…
ファイルブロック−論理ブロック変換処理、15…論理
ブロック割り当て処理、16…バッファキャッシュ割り
当て処理、17…バッファキャッシュからディスクへの
書き込み処理、21…iノード、22…未割り当て論理
ブロックリスト、23…ディスクアレイ構成情報、24
…割り当て候補論理ブロックリスト、26…バッファキ
ャッシュ、27…論理/物理ブロック番号変換テーブ
ル。
フロントページの続き (72)発明者 清水 正明 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 平6−119121(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 3/06 - 3/08 G06F 12/00 - 12/16 G11B 19/00 G11B 20/10 - 20/16

Claims (19)

    (57)【特許請求の範囲】
  1. 【請求項1】ディスクアレイに書き込むべきデータに対
    してそのディスクアレイ内の記憶領域を割り当てる領域
    割り当て方法において、 上記ディスクアレイは、それぞれ複数のデータとそれら
    に対する誤り訂正符号からなる複数の誤り訂正データ群
    を保持するための複数のディスク記憶装置と、上記ディ
    スク記憶装置に対するデータの書き込み要求あるいはデ
    ータの読み出し要求の実行を制御するアレイコントロー
    ラとを有し、 各ディスク記憶装置は、データもしくは誤り訂正データ
    符号を保持する複数の記憶領域を有し、上記複数のディ
    スク記憶装置の複数の記憶領域は、複数群の記憶領域に
    分割され、各記憶領域群の複数の記憶領域は、上記複数
    のディスク記憶装置の互いに異なるものに属し、かつ、
    各群の複数の記憶領域は、いずれか一つの誤り訂正デー
    タ群に属する複数のデータとそれらのデータに対する誤
    り訂正符号を保持し、かつ、異なる誤り訂正データ群に
    含まれる複数の誤り訂正符号は該複数のディスク記憶装
    置に分散して保持されており、 上記方法は、上記複数のディスク記憶装置に含まれた複
    数の記憶領域のうち、いずれのデータにも割り当てられ
    ていない複数の未割り当てのデータ保持用の記憶領域を
    指定する情報を記憶し、上記複数のディスク記憶装置に
    書き込むべき順序づけられた複数のデータに対して、そ
    れらのデータの順に、所定の条件を満たす記憶領域を上
    記情報が指定する複数の未割り当ての記憶領域から選択
    して割り当てるステップを有し、 上記所定の条件として、上記複数のデータの各々に対し
    て割り当てるべき記憶領域が、そのデータに先行する所
    定数のデータの各々に割り当てられたデータ保持用の第
    1の記憶領域が属する第1のディスク記憶装置と、その
    第1の記憶領域が属する記憶領域群に保持された誤り訂
    正データ群内の誤り訂正符号を保持する第2の記憶領域
    が属する第2のディスク記憶装置とのいずれにも衝突し
    ない第3のディスク記憶装置に属し、かつ、その割り当
    てるべき記憶領域が属する記憶領域群に保持される誤り
    訂正データ群内の誤り訂正符号を保持する記憶領域が上
    記第1、第2のディスク記憶装置のいずれにも衝突しな
    い第4のディスク記憶装置に属することを条件とする領
    域割り当て方法。
  2. 【請求項2】上記割り当ては、上記ディスクアレイを使
    用する計算機を制御するOSにより、上記複数の順序付
    けられたデータの各々に対して、そのデータに対する書
    き込み要求を該OSから上記アレイコントローラに供給
    する前に実行されることを特徴とする請求項1記載の領
    域割り当て方法。
  3. 【請求項3】上記順序付けられた複数のデータは、同一
    のファイルの複数のファイルブロックに属するデータで
    あることを特徴とする請求項2に記載の領域割り当て方
    法。
  4. 【請求項4】上記複数のディスク記憶装置内の複数の記
    憶領域の各々には、予め定めた論理ブロック番号が割り
    当てられており、 上記OSにより上記複数のデータの各々に対して該アレ
    イコントローラに供給される書き込み要求は、そのデー
    タに対して割り当てられた記憶領域に割り当てられた論
    理ブロック番号を指定することを特徴とする請求項2に
    記載の領域割り当て方法。
  5. 【請求項5】上記所定数は1であることを特徴とする請
    求項1に記載の領域割り当て方法。
  6. 【請求項6】上記順序付けられた複数のデータの各々に
    対する記憶領域を割り当てに際して、上記割り当てるべ
    き記憶領域は、そのデータに対して先行する、他の所定
    数のデータの各々に対して割り当てられたデータ保持用
    の記憶領域が属する第5のディスク記憶装置と衝突しな
    いディスク記憶装置に属するという他の条件を満たし、 上記他の所定数は上記ディスク記憶装置の数に等しいこ
    とを特徴とする請求項5に記載の領域割り当て方法。
  7. 【請求項7】上記複数のディスク記憶装置内の複数のデ
    ータ保持用の記憶領域をいずれかの記憶領域の割り当て
    る前に、上記複数の記憶領域を割り当てる順を決定する
    ステップを有し、 上記情報は、上記決定された割り当て順に従って、未割
    り当てのデータ保持用の複数の記憶領域を指定する情報
    からなり、上記順序付けられた複数のデータに対する記
    憶領域の割り当てにおいては、上記順序付けられた複数
    のデータに対して、上記決定された割り当て順に従っ
    て、上記複数の記憶領域を順次割り当て、 上記割り当て順の決定にあっては、いずれか一つの記憶
    領域の次の記憶領域として、その記憶領域が属するディ
    スク記憶装置と、その記憶領域が属する記憶領域群が保
    持する誤り訂正データ群内の誤り訂正符号を保持する記
    憶領域が属するディスク記憶装置とのいずれにも衝突し
    ない二つのディスク記憶装置に属し、かつ、互いに同一
    の記憶領域群に属し、かつ、まだ割り当て順が決定され
    ていないデータ保持用の記憶領域とパリティ保持用の記
    憶領域を選択することを特徴とする請求項1に記載の領
    域割り当て方法。
  8. 【請求項8】ディスクアレイに書き込むべきデータに対
    してそのディスクアレイ内の記憶領域を割り当てる領域
    割り当て方法において、 上記ディスクアレイは、それぞれ複数のデータとそれら
    に対する誤り訂正符号からなる複数の誤り訂正データ群
    を保持するための複数のディスク記憶装置と、上記ディ
    スク記憶装置に対するデータの書き込み要求あるいはデ
    ータの読み出し要求の実行を制御するアレイコントロー
    ラとを有し、 各ディスク記憶装置は、データもしくは誤り訂正データ
    符号を保持する複数の記憶領域を有し、上記複数のディ
    スク記憶装置の複数の記憶領域は、複数群の記憶領域に
    分割され、各記憶領域群の複数の記憶領域は、上記複数
    のディスク記憶装置の互いに異なるものに属し、かつ、
    各群の複数の記憶領域は、いずれか一つの誤り訂正デー
    タ群に属する複数のデータとそれらのデータに対する誤
    り訂正符号を保持し、かつ、異なる誤り訂正データ群に
    含まれる複数の誤り訂正符号は該複数のディスク記憶装
    置に分散して保持されており、 上記方法は、上記複数のディスク記憶装置に含まれた複
    数の記憶領域のうち、いずれのデータにも割り当てられ
    ていない複数の未割り当てのデータ保持用の記憶領域を
    指定する情報を記憶し、上記複数のディスク記憶装置に
    書き込むべき順序づけられた複数のデータに対して、そ
    れらのデータの順に、所定の条件を満たす記憶領域を上
    記情報が指定する複数の未割り当ての記憶領域から選択
    し、割り当てるステップを有し、 上記所定の条件として、上記複数のデータの各々に対し
    て割り当てるべき記憶領域が、そのデータに先行する、
    該ディスク記憶装置の総数より1小さい数のデータの各
    々に割り当てられたデータ保持用の記憶領域が属するデ
    ィスク記憶装置に衝突しないディスク記憶装置に属する
    ことを条件とする領域割り当て方法。
  9. 【請求項9】上記割り当ては、上記ディスクアレイを使
    用する計算機を制御するOSにより、上記複数の順序付
    けられたデータの各々に対して、そのデータに対する書
    き込み要求を該OSから上記アレイコントローラに供給
    する前に実行されることを特徴とする請求項8に記載の
    領域割り当て方法。
  10. 【請求項10】ディスクアレイに書き込むべきデータに
    対してそのディスクアレイ内の記憶領域を割り当てる領
    域割り当て方法において、 上記ディスクアレイは、それぞれ複数のデータとそれら
    に対する誤り訂正符号からなる複数の誤り訂正データ群
    を保持するための複数のディスク記憶装置と、上記ディ
    スク記憶装置に対するデータの書き込み要求あるいはデ
    ータの読み出し要求の実行を制御するアレイコントロー
    ラとを有し、 各ディスク記憶装置は、データもしくは誤り訂正データ
    符号を保持する複数の記憶領域を有し、上記複数のディ
    スク記憶装置の複数の記憶領域は、複数群の記憶領域に
    分割され、各記憶領域群の複数の記憶領域は、上記複数
    のディスク記憶装置の互いに異なるものに属し、かつ、
    各群の複数の記憶領域は、いずれか一つの誤り訂正デー
    タ群に属する複数のデータとそれらのデータに対する誤
    り訂正符号を保持し、かつ、異なる誤り訂正データ群に
    含まれる複数の誤り訂正符号は該複数のディスク記憶装
    置に分散して保持され、 上記アレイコントローラは、各ディスク記憶装置に複数
    のデータまとめて書き込むことを要求する書き込み要
    求を送出する回路を有し、各ディスク記憶装置は該アレ
    イコントローラから供給された複数の書き込みデータを
    一時的に保持するキャッシュメモリと、そのキャッシュ
    メモリに保持された複数の書き込みデータをそのディス
    ク記憶装置内の順次隣接する記憶位置に順次書き込む回
    路とを有し、 上記方法は、前記論理的に連続して記憶しようとする複
    数ブロックのデータに前記記憶装置上の記憶領域を割り
    当てるときに、前記ディスク記憶装置の一回の読み出し
    動作でディスク記憶装置毎のキャッシュに入れられるデ
    ータの大きさを単位として、ディスク記憶装置内の物理
    的な連続領域に配置するデータブロックの数を決めて、
    該記憶領域を割り当てることを特徴とする領域割り当て
    方法。
  11. 【請求項11】上記割り当ては、上記ディスクアレイを
    使用する計算機を制御するOSにより、上記複数の順序
    付けられたデータの各々に対して、そのデータに対する
    書き込み要求を該OSから上記アレイコントローラに供
    給する前に実行されることを特徴とする請求項10に記
    載の領域割り当て方法。
  12. 【請求項12】ディスクアレイに書き込むべきデータに
    対してそのディスクアレイ内の記憶領域を割り当てる領
    域割り当て方法において、 上記ディスクアレイは、それぞれ複数のデータとそれら
    に対する誤り訂正符号からなる複数の誤り訂正データ群
    を保持するための複数のディスク記憶装置と、上記ディ
    スク記憶装置に対するデータの書き込み要求あるいはデ
    ータの読み出し要求の実行を制御するアレイコントロー
    ラとを有し、 各ディスク記憶装置は、データもしくは誤り訂正データ
    符号を保持する複数の記憶領域を有し、上記複数のディ
    スク記憶装置の複数の記憶領域は、複数群の記憶領域に
    分割され、各記憶領域群の複数の記憶領域は、上記複数
    のディスク記憶装置の互いに異なるものに属し、かつ、
    各群の複数の記憶領域は、いずれか一つの誤り訂正デー
    タ群に属する複数のデータとそれらのデータに対する誤
    り訂正符号を保持し、かつ、異なる誤り訂正データ群に
    含まれる複数の誤り訂正符号は該複数のディスク記憶装
    置に分散して保持されており、 上記方法は、上記複数のディスク記憶装置に含まれた複
    数の記憶領域のうち、いずれのデータにも割り当てられ
    ていない複数の未割り当てのデータ保持用の記憶領域を
    指定する情報を記憶し、上記アレイコントローラに対し
    て順次供給される複数のデータに対して、それらのデー
    タの供給の順に、所定の条件を満たす記憶領域を上記情
    報が指定する複数の未割り当ての記憶領域から選択し、
    割り当てるステップを有し、 上記所定の条件として、上記複数のデータの各々に対し
    て割り当てるべき記憶領域が、そのデータに先行して供
    給された直前のデータの各々に割り当てられたデータ保
    持用の第1の記憶領域が属する第1のディスク記憶装置
    と、その第1の記憶領域が属する記憶領域群に保持され
    た誤り訂正データ群内の誤り訂正符号を保持する第2の
    記憶領域が属する第2のディスク記憶装置とのいずれに
    も衝突しない第3のディスク記憶装置に属し、かつ、そ
    の割り当てるべき記憶領域が属する記憶領域群に保持さ
    れる誤り訂正データ群内の誤り訂正符号を保持する記憶
    領域が上記第1、第2のディスク記憶装置のいずれにも
    衝突しない第4のディスク記憶装置に属することを条件
    とする領域割り当て方法。
  13. 【請求項13】上記割り当ては、上記アレイコントロー
    ラにより、上記複数のデータに対して、それらのデータ
    が該アレイコントローラに供給された順に従って順次実
    行されることを特徴とする請求項12に記載の領域割り
    当て方法。
  14. 【請求項14】上記ディスクアレイを使用する計算機を
    制御するOSから、上記アレイコントローラに上記複数
    のデータを順次供給し、 該OSは、上記複数のデータの各々を書き込むべき論理
    的な記憶位置をそのデータに割り当て、上記複数のデー
    タの各々に対する書き込み要求を上記アレイコントロー
    ラに供給するときに、そのデータに対して割り当てた論
    理的な記憶位置を指定する情報を該アレイコントローラ
    に供給し、 上記アレイコントローラにおいて、上記複数のデータの
    各々に対して割り当てた記憶領域と、そのデータに対し
    て該OSが割り当てた論理的な記憶領域を関連させる情
    報を該アレイコントローラ内に記憶し、上記OSより、
    該複数のデータのいずれか一つをアクセスするときに、
    その一つのデータに割り当てられた論理的な記憶領域を
    指定し、 該アレイコントローラにより、上記関連させる情報に基
    づいて、その指定された論理的な記憶領域に対応する、
    該ディスク記憶装置内の記憶領域を判別し、 判別された記憶領域をアクセスすることを特徴とする請
    求項12に記載の領域割り当て方法。
  15. 【請求項15】上記複数のディスク記憶装置は、複数の
    論理的ユニットを構成するように、複数群の記憶領域に
    区分され、上記複数のデータは、上記複数の論理的ユニ
    ットの異なるもの書き込まれるべき複数のデータを含
    むことを特徴とする請求項12に記載の領域割り当て方
    法。
  16. 【請求項16】上記未割り当てのデータ保持用の記憶領
    域を指定する情報は、上記複数の未割り当てのデータ保
    持用の記憶領域を、それぞれ互いに異なる記憶領域群に
    属し、かつ、互いに異なるディスク記憶装置に属する、
    上記ディスク記憶装置の数に等しい複数の記憶領域から
    なる複数群の記憶領域に分けて、該複数の未割り当ての
    記憶領域を指定する情報からなり、 上記順序付けられた複数のデータの各々に対して記憶領
    域を割り当てるに当たっては、上記複数のデータを、上
    記ディスク記憶装置の総数に等しい数のデータからなる
    複数の部分データ群に区分し、各データ群の複数のデー
    タに対して、該複数の記憶領域群の一つに属する複数の
    記憶領域を上記情報に基づいて割り当てることを特徴と
    する請求項12に記載の領域割り当て方法。
  17. 【請求項17】ディスクアレイへのディスクアレイアク
    セス方法であって、 上記ディスクアレイは、それぞれ複数のデータとそれら
    に対する誤り訂正符号からなる複数の誤り訂正データ群
    を保持するための複数のディスク記憶装置と、上記ディ
    スク記憶装置に対するデータの書き込み要求あるいはデ
    ータの読み出し要求の実行を制御するアレイコントロー
    ラとを有し、 各ディスク記憶装置は、データもしくは誤り訂正データ
    符号を保持する複数の記憶領域を有し、上記複数のディ
    スク記憶装置の複数の記憶領域は、複数群の記憶領域に
    分割され、各記憶領域群の複数の記憶領域は、上記複数
    のディスク記憶装置の互いに異なるものに属し、かつ、
    各群の複数の記憶領域は、いずれか一つの誤り訂正デー
    タ群に属する複数のデータとそれらのデータに対する誤
    り訂正符号を保持し、かつ、異なる誤り訂正データ群に
    含まれる複数の誤り訂正符号は該複数のディスク記憶装
    置に分散して保持され、かつ、複数の誤り訂正データ群
    に含まれる複数の誤り訂正符号は該複数のディスク記憶
    装置に分散して保持されおり、 上記方法は、 (a)順序付けられた複数のデータの一つをそれぞれ指
    定し、順次上位装置から供給される複数の書き込み要求
    を順次実行し、各書き込み要求の実行にあっては、その
    書き込み要求が指定するデータを保持する記憶領域をア
    クセスし、さらに、その記憶領域が属する記憶領域群内
    が保持する誤り訂正データ群内の誤り訂正符号を保持す
    る記憶領域をアクセスするステップを有し、 (b)上記複数の書き込み要求のうち、相連続して該上
    位装置から供給される任意の二つの書き込み要求の内、
    先行する書き込み要求に対して上記ステップ(a)を実
    行するのと並行して、上記二つの書き込み要求の後続の
    書き込み要求に対して上記ステップ(a)の実行を開始
    し、 上記順序付けられた複数のデータ内の、相連続する任意
    の二つのデータの内、後続のデータを保持する第1の記
    憶領域およびその後続のデータに対する誤り訂正符号を
    保持する第2の記憶領域が属する第1の記憶領域群は、
    上記相連続する二つのデータの内、先行するデータを保
    持する第の記憶領域およびその先行するデータに対す
    る誤り訂正符号を保持する第4の記憶領域が属する記憶
    領域群と異なるように定められ、かつ、該該第1、第2
    の記憶領域が属する二つのディスク記憶装置が、該第
    3、第4の記憶領域が属する二つのディスク記憶装置の
    いずれとも異なるように、上記順序付けられた複数のデ
    ータを保持する記憶領域が定められていることを特徴と
    するディスクアレイアクセス方法。
  18. 【請求項18】(c)上記順序付けられた複数のデータ
    の一つをそれぞれ指定し、順次上位装置から供給される
    複数の読み出し要求の各々に応答して、その読み出し要
    求が指定するデータを該データに割り当てられた記憶領
    域から読み出すステップを有し、 (d)上記複数の書き込み要求のうち、相連続する任意
    の二つの読み出し要求の内、先行する読み出し要求に対
    して上記ステップ(c)を実行するのと並行して、上記
    二つの読み出し要求の後続の読み出し要求に対して上記
    ステップ(c)の実行を開始し、 上記複数の順序付けられたデータの内、相連続する、上
    記複数のディスク記憶装置の数(n)に等しい数の任意
    のデータ保持する記憶領域は、該上記複数のディスク記
    憶装置の互いに異なるものに属するように、上記順序付
    けられた複数のデータを保持する記憶領域が定められて
    いることを特徴とする請求項17に記載のディスクアレ
    イアクセス方法。
  19. 【請求項19】ディスクアレイへのディスクアレイアク
    セス方法であって、 上記ディスクアレイは、それぞれ複数のデータとそれら
    に対する誤り訂正符号からなる複数の誤り訂正データ群
    を保持するための複数のディスク記憶装置と、上記ディ
    スク記憶装置に対するデータの書き込み要求あるいはデ
    ータの読み出し要求の実行を制御するアレイコントロー
    ラとを有し、 各ディスク記憶装置は、データもしくは誤り訂正データ
    符号を保持する複数の記憶領域を有し、上記複数のディ
    スク記憶装置の複数の記憶領域は、複数群の記憶領域に
    分割され、各記憶領域群の複数の記憶領域は、上記複数
    のディスク記憶装置の互いに異なるものに属し、かつ、
    各群の複数の記憶領域は、いずれか一つの誤り訂正デー
    タ群に属する複数のデータとそれらのデータに対する誤
    り訂正符号を保持し、かつ、異なる誤り訂正データ群に
    含まれる複数の誤り訂正符号は該複数のディスク記憶装
    置に分散して保持され、かつ、複数の誤り訂正データ群
    に含まれる複数の誤り訂正符号は該複数のディスク記憶
    装置に分散して保持されおり、 上記方法は、 (a)順序付けられた複数のデータの一つをそれぞれ指
    定し、順次上位装置から供給される複数の読み出し要求
    の各々に応答して、その読み出し要求が指定するデータ
    を、そのデータが属するいずれか一つの誤り訂正データ
    群に予め割り当てられた一つの記憶領域群に属し、その
    データに割り当てられた記憶領域から読み出すステップ
    を有し、 (b)上記複数の読み出し要求の、相連続する任意の二
    つの読み出し要求の内、先行する読み出し要求に対して
    上記ステップ(a)を実行するのと並行して、上記二つ
    の読み出し要求の内、後続の読み出し要求に対して上記
    ステップ(a)の実行を開始し、 上記複数の順序付けられたデータの内、任意の相連続す
    る、上記複数のディスク記憶装置の数(n)に等しい数
    のデータに対して定められた複数(n)の記憶領域は、
    上記複数のディスク記憶装置の互いに異なるものに属す
    るように、上記順序付けられた複数のデータに対する記
    憶領域が定められていることを特徴とするディスクアレ
    イアクセス方法。
JP32792394A 1994-12-28 1994-12-28 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法 Expired - Fee Related JP3371044B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32792394A JP3371044B2 (ja) 1994-12-28 1994-12-28 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US08/578,479 US5809516A (en) 1994-12-28 1995-12-26 Allocation method of physical regions of a disc array to a plurality of logically-sequential data, adapted for increased parallel access to data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32792394A JP3371044B2 (ja) 1994-12-28 1994-12-28 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法

Publications (2)

Publication Number Publication Date
JPH08185275A JPH08185275A (ja) 1996-07-16
JP3371044B2 true JP3371044B2 (ja) 2003-01-27

Family

ID=18204518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32792394A Expired - Fee Related JP3371044B2 (ja) 1994-12-28 1994-12-28 ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法

Country Status (2)

Country Link
US (1) US5809516A (ja)
JP (1) JP3371044B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707134B2 (en) 2010-12-24 2014-04-22 Kabushiki Kaisha Toshiba Data storage apparatus and apparatus and method for controlling nonvolatile memories

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728832B2 (en) * 1990-02-26 2004-04-27 Hitachi, Ltd. Distribution of I/O requests across multiple disk units
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US6023713A (en) * 1996-09-06 2000-02-08 Intel Corporation Optimized CD/DVD authoring employing block reallocation
JPH10198526A (ja) * 1997-01-14 1998-07-31 Fujitsu Ltd Raid装置及びそのアクセス制御方法
US5974515A (en) * 1997-04-08 1999-10-26 Emc Corporation System for distributing volumes to an HSM system front end
JP3345628B2 (ja) * 1997-07-11 2002-11-18 アネックスシステムズ株式会社 データ格納及び検索方法
US6038399A (en) * 1997-07-22 2000-03-14 Compaq Computer Corporation Computer manufacturing architecture with two data-loading processes
US6148369A (en) * 1997-09-30 2000-11-14 Emc Corp Method and apparatus for providing logical devices spanning several physical volumes
US6009478A (en) * 1997-11-04 1999-12-28 Adaptec, Inc. File array communications interface for communicating between a host computer and an adapter
US6189079B1 (en) * 1998-05-22 2001-02-13 International Business Machines Corporation Data copy between peer-to-peer controllers
US6192375B1 (en) * 1998-07-09 2001-02-20 Intel Corporation Method and apparatus for managing files in a storage medium
JP3544476B2 (ja) * 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
US7107395B1 (en) * 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
JP3837953B2 (ja) * 1999-03-12 2006-10-25 株式会社日立製作所 計算機システム
US6502157B1 (en) * 1999-03-24 2002-12-31 International Business Machines Corporation Method and system for perfetching data in a bridge system
US6754661B1 (en) * 1999-07-13 2004-06-22 Microsoft Corporation Hierarchical storage systems for holding evidentiary objects and methods of creating and operating upon hierarchical storage systems
JP2002196960A (ja) * 2000-12-25 2002-07-12 Hitachi Ltd ファイル入出力制御方法、ファイル管理サーバ及び並列計算機システム
US6925529B2 (en) * 2001-07-12 2005-08-02 International Business Machines Corporation Data storage on a multi-tiered disk system
US6647460B2 (en) * 2001-07-13 2003-11-11 Hitachi, Ltd. Storage device with I/O counter for partial data reallocation
US6732232B2 (en) 2001-11-26 2004-05-04 International Business Machines Corporation Adaptive resource allocation in multi-drive arrays
JP4130076B2 (ja) * 2001-12-21 2008-08-06 富士通株式会社 データベース管理プログラムおよび記録媒体
US7751628B1 (en) * 2001-12-26 2010-07-06 Reisman Richard R Method and apparatus for progressively deleting media objects from storage
US7340489B2 (en) * 2002-04-10 2008-03-04 Emc Corporation Virtual storage devices
JP4380240B2 (ja) * 2003-07-01 2009-12-09 株式会社日立製作所 ヒントに基づく記憶領域の割当と性能保証方法、記憶装置及び管理プログラム
US20050091467A1 (en) * 2003-10-22 2005-04-28 Robotham Robert E. Method and apparatus for accessing data segments having arbitrary alignment with the memory structure in which they are stored
US20060080350A1 (en) * 2004-10-13 2006-04-13 Timothy Mark Allocation of file storage based on pattern recognition
US8131926B2 (en) * 2004-10-20 2012-03-06 Seagate Technology, Llc Generic storage container for allocating multiple data formats
US7594075B2 (en) * 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
WO2006047269A2 (en) * 2004-10-22 2006-05-04 Exelixis, Inc. Pharmaceutical compositions
US7991758B2 (en) * 2005-09-07 2011-08-02 International Business Machines Corporation System and method for performing a search operation within a sequential access data storage subsystem
US7689877B2 (en) * 2005-11-04 2010-03-30 Sun Microsystems, Inc. Method and system using checksums to repair data
JP4358869B2 (ja) 2007-02-21 2009-11-04 富士通株式会社 ストレージ制御装置、ストレージ制御方法
JP5104855B2 (ja) 2007-03-23 2012-12-19 富士通株式会社 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
JP2009282708A (ja) * 2008-05-21 2009-12-03 Fujitsu Ltd ディスクアレイ装置の制御方法及び制御装置
US9778882B2 (en) * 2008-06-30 2017-10-03 Hitachi Data Systems Engineering UK Limited Dynamic write balancing in a data storage system
US8468319B1 (en) * 2010-01-19 2013-06-18 Infinidat Ltd. Concurrent access to a single disk track by combining reads and writes to a disk with a mask
JP2012014450A (ja) * 2010-06-30 2012-01-19 Toshiba Corp データ記憶装置及びスライス割り当て方法
US9411517B2 (en) 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
CN102053800A (zh) * 2010-11-26 2011-05-11 华为技术有限公司 数据存取的方法、消息接收解析器及系统
JP5367686B2 (ja) 2010-12-24 2013-12-11 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US8490111B2 (en) * 2011-04-16 2013-07-16 Throughputer, Inc. Efficient network and memory architecture for multi-core data processing system
US20130117168A1 (en) 2011-11-04 2013-05-09 Mark Henrik Sandstrom Maximizing Throughput of Multi-user Parallel Data Processing Systems
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US8713405B2 (en) * 2011-11-22 2014-04-29 Simplivity Corporation Method and apparatus for allocating erasure coded data to disk storage
JP2014053066A (ja) * 2012-08-08 2014-03-20 Toshiba Corp 情報記録装置、情報再生装置、及びフォーマット方法
JP6005533B2 (ja) * 2013-01-17 2016-10-12 株式会社東芝 記憶装置および記憶方法
US20150032956A1 (en) * 2013-07-29 2015-01-29 CNEXLABS, Inc. Method and Apparatus for Enhancing Storage Reliability Using Double Link Redundancy Protection
US9430508B2 (en) 2013-12-30 2016-08-30 Microsoft Technology Licensing, Llc Disk optimized paging for column oriented databases
US9898398B2 (en) 2013-12-30 2018-02-20 Microsoft Technology Licensing, Llc Re-use of invalidated data in buffers
US9723054B2 (en) 2013-12-30 2017-08-01 Microsoft Technology Licensing, Llc Hierarchical organization for scale-out cluster
JP6291299B2 (ja) * 2014-03-19 2018-03-14 三菱電機インフォメーションネットワーク株式会社 記録システム、記録装置、記録方法、及びプログラム
JP6375886B2 (ja) 2014-11-14 2018-08-22 富士通株式会社 パリティレイアウト決定プログラム、パリティレイアウト決定方法、ストレージ装置およびストレージシステム
US10089042B2 (en) 2015-01-15 2018-10-02 Dell Products, Lp System and method for discovering a virtual disk spanned across independent storage controllers
JP6500505B2 (ja) * 2015-03-05 2019-04-17 富士通株式会社 制御装置、制御方法、および制御プログラム
US9612756B1 (en) * 2015-03-26 2017-04-04 EMC IP Holding Company LLC Data storage system with parallel handling of sub-I/O requests for individual host I/O requests
US10133513B1 (en) * 2015-08-07 2018-11-20 EMC IP Holding Company LLC Cache management system and method
US10037289B1 (en) 2015-12-17 2018-07-31 EMC IP Holding Company LLC Data storage system with efficient processing of single mapping callback for host I/O requests
US9934172B1 (en) 2015-12-17 2018-04-03 EMC IP Holding Company LLC Data storage system with dynamic throttling of parallel sub-I/O request for individual host I/O requests
US10852951B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for improving I/O performance by introducing extent pool level I/O credits and user I/O credits throttling on Mapped RAID
US10852966B1 (en) * 2017-10-18 2020-12-01 EMC IP Holding Company, LLC System and method for creating mapped RAID group during expansion of extent pool
CN110427340B (zh) * 2018-04-28 2023-08-04 伊姆西Ip控股有限责任公司 用于文件存储的方法、装置和计算机存储介质
CN109002259B (zh) * 2018-06-28 2021-03-09 苏州浪潮智能科技有限公司 一种归置组所属硬盘分配方法、系统、装置及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04264910A (ja) * 1991-02-20 1992-09-21 Hitachi Ltd コンピュータ外部記憶装置のデータ更新方法
JP2779736B2 (ja) * 1992-08-03 1998-07-23 株式会社日立製作所 最適化装置およびそれを利用した工程計画作成装置
US5600783A (en) * 1993-11-30 1997-02-04 Hitachi, Ltd. Disc array system having disc storage devices dispersed on plural boards and accessible at withdrawal of part of the boards
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5583995A (en) * 1995-01-30 1996-12-10 Mrj, Inc. Apparatus and method for data storage and retrieval using bandwidth allocation
US5542065A (en) * 1995-02-10 1996-07-30 Hewlett-Packard Company Methods for using non-contiguously reserved storage space for data migration in a redundant hierarchic data storage system
US5537534A (en) * 1995-02-10 1996-07-16 Hewlett-Packard Company Disk array having redundant storage and methods for incrementally generating redundancy as data is written to the disk array

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707134B2 (en) 2010-12-24 2014-04-22 Kabushiki Kaisha Toshiba Data storage apparatus and apparatus and method for controlling nonvolatile memories

Also Published As

Publication number Publication date
US5809516A (en) 1998-09-15
JPH08185275A (ja) 1996-07-16

Similar Documents

Publication Publication Date Title
JP3371044B2 (ja) ディスクアレイのための領域割り当て方法およびディスクアレイアクセス方法
US5758118A (en) Methods and data storage devices for RAID expansion by on-line addition of new DASDs
JP3862274B2 (ja) Raidディスクサブシステムと統合されたファイルシステムのファイル割り当て方法
US6912537B2 (en) Dynamically changeable virtual mapping scheme
JP6205650B2 (ja) 不均等アクセス・メモリにレコードを配置するために不均等ハッシュ機能を利用する方法および装置
JP2831602B2 (ja) 圧縮データ管理装置及び圧縮データ管理方法
US5666114A (en) Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US8131969B2 (en) Updating system configuration information
US20060218347A1 (en) Memory card
US8239630B2 (en) Storage apparatus and cache control method
WO2015162758A1 (ja) ストレージシステム
JPH08272548A (ja) 保留された量の不使用の記憶スペースを使用する方法
JPH11194899A (ja) ディスク記憶システム及び同システムに適用するデータ更新方法
CN112463753B (zh) 一种区块链数据存储方法、系统、设备及可读存储介质
US20030105923A1 (en) Raid system and mapping method thereof
US6983355B2 (en) Virtualization of physical storage using size optimized hierarchical tables
JP5730446B1 (ja) トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
JP4252102B2 (ja) 計算機システムおよび二次記憶装置
JPH09288547A (ja) アレイ型記憶装置
JP3687111B2 (ja) 記憶装置システムおよび記憶装置の制御方法
JPH07200187A (ja) ディスクアレイ装置
JP4128206B2 (ja) 計算機システムおよび二次記憶装置
JPH09223049A (ja) ディスクアレイ装置
KR100529278B1 (ko) 대용량 데이터에 대한 데이터 중복 저장 시스템
JP2023100301A (ja) ストレージ装置及びその制御方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071115

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131115

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees