JP3648311B2 - ディスクアレイ装置 - Google Patents
ディスクアレイ装置 Download PDFInfo
- Publication number
- JP3648311B2 JP3648311B2 JP32331995A JP32331995A JP3648311B2 JP 3648311 B2 JP3648311 B2 JP 3648311B2 JP 32331995 A JP32331995 A JP 32331995A JP 32331995 A JP32331995 A JP 32331995A JP 3648311 B2 JP3648311 B2 JP 3648311B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- input
- disk
- parity
- scheduling
- 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
Links
Images
Description
(目次)
発明の属する技術分野
従来の技術(図15〜図17)
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態
(a)第1実施形態の説明(図1)
(b)第2実施形態の説明(図2)
(c)第3実施形態の説明(図3)
(d)第4実施形態の説明(図4)
(e)静的スケジューリングを行なう場合の具体的な実施形態の説明(図5〜図11)
(f)動的スケジューリングを行なう場合の具体的な実施形態の説明(図12〜図14)
発明の効果
【0002】
【発明の属する技術分野】
本発明は、複数のディスク装置を並列的にアクセスしてデータ入出力処理を行なうようにしたディスクアレイ装置に関し、特に、RAID5型のディスクアレイ装置における入出力命令のスケジューリング技術に関する。
【0003】
【従来の技術】
近年、CPUの高性能化に伴い、メモリ・サブシステムの性能が相対的に低下してきており、処理速度の向上が要求されている。ディスクアレイ装置は、安価で小型のディスク装置を複数台有し、これらのディスク装置に分散してデータを格納し、並列的にアクセス・駆動するものである。
【0004】
ディスクアレイ装置では、複数のディスク装置に並列的にデータ転送を行なうことで、1台のディスク装置のみの場合に比べて、ディスク装置の台数倍の高速データ転送が可能になる。また、データに加え、パリティデータなどの冗長な情報を付加して記録することにより、ディスク装置の故障等を原因とするデータエラーの検出および訂正が可能になり、ディスク装置の内容を二重化して記録した場合と同程度の高信頼性を、二重化する場合よりも低価格で実現することができる。
【0005】
このようなディスクアレイ装置は、記憶方式の違いにより5つのタイプに分類されているが、いずれのタイプにおいても、ディスクアレイ装置では、単体ディスク装置とは異なり、性能を引き出すための機構(アレイコントローラ)が必要となる。
ここで、前記5つのタイプは、RAID(Redundant Arrays of Inexpensive Disks;廉価ディスク重複配列)1〜5と略称される。
【0006】
RAID1型のディスクアレイ装置では、ディスク装置に格納されるデータのコピー(鏡像)を格納するミラーディスク装置がそなえられており、ディスク装置の利用効率は低いが冗長性があり、簡単な制御で実現できるため、広く普及している。
RAID2型のディスクアレイ装置では、データがビットやバイト単位でストライピング(分割)され、それぞれのディスク装置に並列に読み書きが行なわれる。ストライピングしたデータは、全てのディスク装置で物理的に同じセクタに記録される。エラー訂正コードとしては、データから生成したハミングコードを使用する。データ用ディスク装置の他にハミングコードを記録するためのディスク装置をもち、ハミングコードから故障したディスク装置を特定して、データを復元している。このようにハミングコードによる冗長性をそなえることで、ディスク装置が故障しても正しいデータを確保できるが、ディスク装置の利用効率が悪いために実用化されていない。
【0007】
RAID3型のディスクアレイ装置100Aは、例えば図15に示すように、アレイコントローラ110と4つの磁気ディスク装置111〜114とから構成されている。アレイコントローラ110は、ホストコンピュータ120からの入出力命令(I/O命令)に応じて、各ディスク装置111〜114に対する読出/書込アクセスを制御するものである。そして、RAID3型のディスクアレイ装置100Aでは、例えば、データa,b,cをビットまたはセクタ単位にデータa1〜a3,b1〜b3,c1〜c3に分割し、さらに、データa1〜a3からパリティP1を算出し、データb1〜b3からパリティP2を算出し、データc1〜c3からパリティP3を算出し、これらのデータa1〜a3,b1〜b3,c1〜c3およびパリティP1〜P3が、図15に示すように、アレイコントローラ110によりディスク装置111〜114に対して同時並列的にアクセスして書き込まれている。
【0008】
このようなRAID3では、データの冗長性はパリティにより保持される。また、分割したデータの並列処理によりデータの書込時間を短縮できる。しかし、1回の書込または読出のアクセスで、全てのディスク装置111〜114の並列的なシーク動作を必要とするため、大量のデータを連続して取り扱う場合には有効であるが、少量のデータをランダムにアクセスするトランザクション処理のような場合には、データ転送の高速性を生かせず、効率が低下してしまう。
【0009】
RAID4型のディスクアレイ装置100Bは、図16に示すように、ハードウエア構成自体は図15に示したものと同様に構成されているが、このRAID4型のディスクアレイ装置100Bでは、1つのデータをセクタ単位に分割して同じディスク装置111〜114に書き込んでいる。例えば、ディスク装置111にはデータaがセクタデータa1〜a4に分割されて書き込まれている。パリティは固定的に決めたディスク装置114に格納されている。ここでは、データa1,b1,c1によりパリティP1が算出され、データa2,b2,c2によりパリティP2が算出され、データa3,b3,c3によりパリティP3が算出され、データa4,b4,c4によりパリティP4が算出されている。
【0010】
このようなRAID4型のディスクアレイ装置100Bにおいて、データ読出は、ディスク装置111〜113に対して並列的に行なわれる。例えばデータaの読出は、ディスク装置111のセクタ0〜3をアクセスし、セクタデータa1〜a4を順次読み出して合成することにより行なわれる。一方、データ書込は、書込前のデータとパリティとを読み出してから新パリティを算出して書き込むため、1度の書込について、合計4回のアクセスが必要になる。例えば、ディスク装置111のセクタデータa1を更新(書き換え)する場合には、更新場所の元データ(a1)OLD および対応するディスク装置114の元パリティ(P1)OLD を読み出し、新データ(a1)NEW と整合性のとれた新パリティ(P1)NEW を求めて書き込む動作を、更新のためのデータ書込以外にも必要とする。
【0011】
また、書込の際に必ずパリティ用のディスク装置114へのアクセスが起きるため、複数のディスク装置の書込を同時に実行することができない。例えば、ディスク装置111のデータa1の書込とディスク装置112のデータb2の書込とを同時に行なおうとしても、同じディスク装置114からパリティからパリティP1,P2を読み出して算出後に書き込む必要があるため、同時に書込を実行することができない。このようにRAID4は定義されているが、メリットが少ないため、現在、実用化の動きは少ない。
【0012】
RAID5型のディスクアレイ装置100Cは、図17に示すように、ハードウエア構成自体は図15,図16に示したものと同様に構成されているが、このRAID5型のディスクアレイ装置100Cでは、パリティ用のディスク装置をRAID4のように固定しないことで、各ディスク装置111〜113に対する並列の読み書きアクセスを可能にしている。即ち、図17に示すように、セクタ毎にパリティを格納されるディスク装置111〜114が異なっている。ここでも、図16のRAID4と同様、データa1,b1,c1によりパリティP1が算出され、データa2,b2,c2によりパリティP2が算出され、データa3,b3,c3によりパリティP3が算出され、データa4,b4,c4によりパリティP4が算出されている。
【0013】
このようなRAID5型のディスクアレイ装置100Cにおいて、並列の読み書きは、例えば、ディスク装置111のセクタ0のデータa1とディスク装置112のセクタ1のデータb2とは、パリティP1,P2が異なるディスク装置114,113に置かれているため重複せず、同時に読み書きを行なうことができる。なお、書込時に合計4回のアクセスを必要とするオーバヘッドはRAID4の場合と同じである。
【0014】
このように、RAID5は、非同期に複数のディスク装置111〜114にアクセスしてリード/ライトを実行できるため、少量データをランダムにアクセスするトランザクション処理に向いている。
ここで、RAID4およびRAID5のデータ書込におけるパリティデータの生成を説明すると、次のようになる。
【0015】
まず、冗長情報を格納したディスクアレイ装置では、次の(1)式により複数のディスク装置における同一記憶位置のデータの排他的論理和をとってパリティとし、パリティ用のディスク装置に保持している。
データa(+)データb(+)データc(+)…=パリティP (1)
ただし、上式中、(+)は排他的論理和記号を示すものとする。
【0016】
データとパリティの格納場所は、RAID4では図16に示したように特定のディスク装置114に固定されている。これに対し、RAID5では、図17に示したようにパリティをディスク装置111〜114に分散させて、パリティ読み書き動作による特定のディスク装置へのアクセスの集中を解消している。
これらのRAID4およびRAID5のデータ読み出し時は、ディスク装置111〜114内のデータは書き換えられないので、パリティの整合性は保持されるが、書込時にはパリティもデータに合わせて変更する必要がある。例えばディスク装置111内の1つの元データ(a1)OLD を新データ(a1)NEW に書き換えた時、パリティP1の整合性をとるには、次の(2)式のような計算を行ない、パリティを更新することでディスク装置のデータ全体のパリティの整合性を保つことができる。
【0017】
元データ(+)元パリティ(+)新データ=新パリティ (2)
【0018】
【発明が解決しようとする課題】
図17により上述したRAID5型のディスクアレイ装置100Cでは、各ディスク装置111〜114にデータを巡回的に格納している(ストライピング)。従って、アレイコントローラ110は、同一ディスク装置へのアクセス競合が無いと判断すれば、動作可能状態にある異なるディスク装置に対しても同時にI/O命令(入出力命令)を発行している。
【0019】
しかし、従来のディスクアレイ装置100Cは、I/O命令の並列実行による高速化のみ考慮し、個々の磁気ディスク装置111〜114でのI/O命令アクセス処理の高速化については考慮されておらず、以下の項目▲1▼〜▲3▼のような課題がある。
▲1▼ディスクアレイ装置を構成する各磁気ディスク装置111〜114では、ヘッドを所望のトラックに移動する際の時間(シーク時間)が、データ転送処理の大半を占めており、データ転送の高速処理を阻害する要因となっている。
【0020】
▲2▼ホストコンピュータ120内のCPUの見地からすると、ライトバック型キャッシュをそなえたディスクアレイ装置100Cへのライト命令は、キャッシュへデータをライトした時点で終了したものと見做せる。しかし、リード命令は、ホストコンピュータ120内の主記憶装置へのデータ転送完了をもって処理終了となるため、CPU側のジョブは、その間、待たされることになる。CPUでの実行時間が短いほど、その待ち時間は大きなオーバヘッドとなり、ジョブの処理時間に影響を与えることになる。つまり、特に、ホストコンピュータ120からアレイコントローラ110に対するリード要求時のレスポンス・タイムが、ジョブの処理時間に大きく影響する。
【0021】
▲3▼データを磁気ディスク装置111〜114に書き込んだ場合、パリティの更新を行なうが、その際、前述した通り、データの書込位置にある元データと更新したいパイティの書込位置にある元パリティとを読み出す必要がある。しかし、個々の磁気ディスク装置111〜114毎にI/O命令のアクセス・スケジューリングを行なうため、元データと元パリティとのリード処理に関して同期をとると、スケジューリングの効果が損なわれるという問題が生じる。
【0022】
本発明は、このような課題に鑑み創案されたもので、各ディスク装置でのヘッドのシーク時間を短縮・削減できるようにして、データ転送処理の高速化等の性能向上を実現したディスクアレイ装置を提供することを第1の目的とする。
また、本発明は、各ディスク装置でのリード命令のレスポンス・タイムを短縮できるようにして、ホスト側での待ち時間の改善(オーバヘッド時間の短縮)をはかり、ホスト側での処理性能向上を実現したディスクアレイ装置を提供することを第2の目的とする。
【0023】
さらに、本発明は、パリティ更新時の元データと元パリティとのリード処理を非同期に行なえるようにして、各ディスク装置のスループットの向上をはかったディスクアレイ装置を提供することを第3の目的とする。
【0026】
【課題を解決するための手段】
このため、本発明のディスクアレイ装置は、複数のディスク装置と、外部からの入出力命令に応じてパリティ用のディスク装置を固定することなく各ディスク装置に対して並列的に読出/書込アクセスを実行するように制御するアレイコントローラとをそなえてなるRAID5型のディスクアレイ装置において、パリティ更新時に必要とされる元データおよび元パリティに関する入出力命令に対してタグ番号を付与するタグ番号付与機能と、このタグ番号付与機能によってタグ番号を付与された入出力命令を含む複数の入出力命令を、前記の各ディスク装置におけるヘッドのトラック移動回数が少なくなるように並び換え、タグ番号を付与された入出力命令の実行を非同期に前記アレイコントローラに指示するスケジューリング機能と、このスケジューリング機能の指示に従ってタグ番号を付与された入出力命令を実行する際にはそのタグ番号を登録し、登録されたタグ番号毎に設定される状態ビットを用いて、タグ番号を付与された入出力命令による元データおよび元パリティの両方の読出状態を管理し、同一のタグ番号を付与された入出力命令の実行がこのスケジューリング機能により2度指示されたことを前記状態ビットにより検知すると、元データおよび元パリティの両方が読み出されたとしてパリティ更新処理が可能になったことをアレイコントローラに通知するパリティ制御機能とをそなえたことを特徴としている(請求項1)。
また、本発明のディスクアレイ装置は、各入出力命令の命令種を解析するデコード機能をさらにそなえ、前記スケジューリング機能が、このデコード機能により解析された命令種に基づいて前記複数の入出力命令を並び換え、各入出力命令の実行を前記アレイコントローラに指示する機能をさらにそなえてもよい(請求項2)。
【0027】
そして、本発明のディスクアレイ装置は、複数のディスク装置と、外部からの入出力命令に応じて各ディスク装置に対する読出/書込アクセスを制御するアレイコントローラとをそなえてなるものにおいて、外部から受け付けた複数の入出力命令を、各ディスク装置におけるヘッドのトラック移動回数が少なくなるように並び換えるスケジューリング処理を行なうとともに、前記複数の入出力命令の前記スケジューリング処理を行なった後に他の入出力命令を受け付けた場合に、シーク時間が短くなるように、当該他の入出力命令と前記スケジューリング処理を行なわれた前記複数の入出力命令との間でスケジューリング処理を行なって、これらの入出力命令の実行順序を変更し、変更された実行順序に従って前記複数の入出力命令および当該他の入出力命令の実行を前記アレイコントローラに指示する動的スケジューリング機能をそなえたことを特徴としている(請求項3)。
【0028】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
(a)第1実施形態の説明
図1は、本発明の第1実施形態としてのディスクアレイ装置を示すブロック図で、図1に示すように、このディスクアレイ装置は、複数の磁気ディスク装置10と、ホストコンピュータ(図示省略)側からの入出力命令(以下、I/O命令という)に応じて各磁気ディスク装置10に対する読出/書込アクセスを制御するアレイコントローラ1と、I/O命令を格納するための記憶装置2と、I/O命令の実行順序を決定するのに必要な情報および所定のスケジューリング・アルゴリズムに従いスケジューリングを実行する演算機能をそなえたスケジューリング装置3Aとから構成されている。
【0029】
ここでは、記憶装置2とスケジューリング装置3Aとにより、外部(ホストコンピュータ)から受け付けた複数のI/O命令を各磁気ディスク装置10におけるヘッドのトラック移動回数が少なくなるように並び換えて各I/O命令の実行をアレイコントローラ1に指示するスケジューリング機能が実現されている。
次に、図1に示すように構成されたディスクアレイ装置の動作について説明する。
【0030】
アレイコントローラ1がホストコンピュータから受け取ったI/O命令は、記憶装置2に格納される。スケジューリング装置3Aは、記憶装置2から適宜I/O命令を取り出し、全体のシーク時間が短くなるように、I/O命令間で命令の実行順序を変更(スケジューリング)する。
スケジューリングされたI/O命令列は、記憶装置2に格納される。アレイコントローラ1は、記憶装置2からスケジューリング済みのI/O命令を取り出して順次実行する。記憶装置2に格納されているスケジューリング済みI/O命令が無くなると、スケジューリング装置3Aにより再びスケジューリング処理を行なう。
【0031】
スケジューリング装置3Aで実行するスケジューリング・アルゴリズムについて以下に説明する。
スケジューリング装置3Aは、複数のI/O命令を、ヘッドが位置するトラックを中心にして振り分ける。このとき、ヘッドが位置するトラック番号と比べて大きいトラック番号をもつI/O命令の集まりは昇順にソートする一方、ヘッドが位置するトラック番号と比べて小さいトラック番号をもつI/O命令の集まりは降順にソートする。便宜上、次のように用語を定義する。
【0032】
また、あるI/O命令列の最後尾に別のI/O命令列を連結する操作を“+”で表すことにする。
【0033】
スケジューリング装置3Aで実行するスケジューリング・アルゴリズムでは、“leng〔Ascend〕”と“leng〔Descend 〕”とを比較し、その大小関係等に応じて、以下のようにI/O命令の実行順序を決定する。
【0034】
このようにして、各磁気ディスク装置10への負荷分散に加え、各磁気ディスク装置10においてもスケジューリングを行なうため、各ディスク装置10でのヘッドのシーク時間が短縮・削減され磁気ディスク装置10のサービス時間を改善することが可能となり、データ転送処理の高速化等の性能も大幅に向上することになる。
【0035】
(b)第2実施形態の説明
図2は、本発明の第2実施形態としてのディスクアレイ装置を示すブロック図で、図2に示すように、このディスクアレイ装置は、図1に示したものと同様の複数の磁気ディスク装置10,アレイコントローラ1および記憶装置2をそなえるほか、外部(ホストコンピュータ)から受け付けたI/O命令の命令種を解析するための命令デコード装置4と、I/O命令の実行順序を決定するのに必要な情報および所定のスケジューリング・アルゴリズムに従いスケジューリングを実行する演算機能をそなえたスケジューリング装置3Bとをそなえて構成されている。
【0036】
ここでは、命令デコード装置4がデコード機能を果たすとともに、記憶装置2とスケジューリング装置3Bとが、前述したスケジューリング装置3Aと同様のスケジューリング機能(各磁気ディスク装置10におけるヘッドのトラック移動回数が少なくなるように複数のI/O命令を並び換えて各I/O命令の実行をアレイコントローラ1に指示するスケジューリング機能)とともに、命令デコード装置4により解析された命令種に基づいて複数のI/O命令を並び換えて各I/O命令の実行をアレイコントローラ1に指示するスケジューリング機能を果たしている。
【0037】
次に、図2に示すように構成されたディスクアレイ装置の動作について説明する。
命令デコード装置4は、記憶装置2からI/O命令を取り出すと、取り出したI/O命令の解析を行なう。次に、解析されたI/O命令を、その命令種、つまり、そのI/O命令がディスクアレイ装置(磁気ディスク装置10)に対するリード命令かライト命令かによって分類する。
【0038】
スケジューリング装置3Bは、前述したアルゴリズムに基づいて、リード命令列およびライト命令列のそれぞれについて、スケジューリングを行なう。ただし、ライト命令のスケジューリング処理時に基準とするヘッドのトラックには、スケジューリング後のリード命令列の最後尾I/O命令がアクセスするトラックを使用する。
【0039】
スケジューリング後、リード命令列の最後尾にライト命令列を連結し、記憶装置2に格納する。アレイコントローラ1は記憶装置2からスケジューリング済みのI/O命令を取り出して順次実行する。記憶装置2に格納されているスケジューリング済みI/O命令が無くなると、スケジューリング装置3Bにより再びスケジューリング処理を行なう。
【0040】
このような処理により、リード命令をライト命令よりも優先的に実行することができ、リード/ライト命令混在実行時に比べて、リード命令のレスポンス・タイムの低減が可能になる。従って、I/O要求を行なうホストコンピュータ側での待ち時間も改善され、このホストコンピュータ側での処理性能向上にも寄与する。
【0041】
(c)第3実施形態の説明
図3は、本発明の第3実施形態としてのディスクアレイ装置を示すブロック図で、図3に示すように、このディスクアレイ装置は、図1に示したものと同様の複数の磁気ディスク装置10,アレイコントローラ1A,記憶装置2およびスケジューリング装置3Cをそなえるほか、パリティ制御装置5をそなえて構成されている。
【0042】
ここで、アレイコントローラ1Aは、外部(ホストコンピュータ)からのI/O命令に応じてパリティ用の磁気ディスク装置10を固定することなく各磁気ディスク装置10に対して並列的に読出/書込アクセスを実行するように制御することにより、RAID5型のディスクアレイ装置を実現させている。また、このアレイコントローラ1Aは、パリティ更新時に必要とされる元データおよび元パリティに関する入出力命令に対してタグ番号を付与するタグ番号付与機能を有している。
【0043】
スケジューリング装置3Cは、図1に示したスケジューリング装置3Aと同様に記憶装置2から取り出したI/O命令のスケジューリングを施すと同時に、タグ付きI/O命令を検出すると、パリティ制御装置5へ当該タグ番号を登録する機能を有している。
そして、パリティ制御装置5は、パリティ更新時のリード命令の非同期実行をサポートするためのもので、タグ番号を付与されたI/O命令を実行する際にはそのタグ番号をスケジューリング装置3Cにより登録されて元データおよび元パリティの両方の読出状態を管理し、元データおよび元パリティの両方が読み出された場合にパリティ更新処理が可能になったことをアレイコントローラ1Aに通知するパリティ制御機能を果たしている。
【0044】
次に、図3に示すように構成されたディスクアレイ装置の動作について説明する。
パリティ更新時に必要とされる元データおよび元パリティに関するI/O命令は、アレイコントローラ1Aにより、タグ番号を付されたI/O命令に変換される。
【0045】
そして、スケジューリング装置3Cは、記憶装置2から取り出したI/O命令のスケジューリングを施すと同時に、タグ付きI/O命令を検出すると、パリティ制御装置5へ当該タグ番号を登録し、元データと元パリティとの間の関連性を保証する。
アレイコントローラ1Aは、記憶装置2からI/O命令を取り出して順次実行する。磁気ディスク装置10での処理を終了すると、アレイコントローラ1Aからパリティ制御装置5へ、その旨が通知される。
【0046】
パリティ制御装置5では、アレイコントローラ1AからのI/O処理終了通知が、パリティ更新時のリード命令であるか否かを判定する。その結果、元データおよび元パリティの両データが揃うと、パリティ制御装置5は、アレイコントローラ1Aへ、パリティ計算処理が実行可能であることを報告する。また、どちらか一方のデータのみであるならば、その旨を登録する。
【0047】
このような処理によって、パリティ更新時の元データ/元パリティのリード処理時の同期を取る必要が無くなる、つまり、パリティ更新時の元データと元パリティとのリード処理を非同期に行なえるため、個々の磁気ディスク装置10に対して行なったスケジューリングの効果を損なうことがなく、各磁気ディスク装置10のスループットを向上させることができる。
【0048】
(d)第4実施形態の説明
図4は、本発明の第4実施形態としてのディスクアレイ装置を示すブロック図で、図3に示すように、このディスクアレイ装置は、図1に示したものと同様の複数の磁気ディスク装置10,アレイコントローラ1および記憶装置2のほか、I/O命令の実行順序を動的に決定する動的スケジューリング装置6と、この動的スケジューリング装置6により優先的に実行するように決定されたI/O命令を格納するためのプライオリティ・レジスタ7をそなえて構成されている。
【0049】
ここで、動的スケジューリング装置6は、外部(ホストコンピュータ)から受け付けた複数のI/O命令を、各磁気ディスク装置10におけるヘッドのトラック移動回数が少なくなるように並び換えて、各I/O命令の実行をアレイコントローラ1に指示するとともに、スケジューリング済みのI/O命令よりも優先的に実行すべき他のI/O命令を受け付けた場合に、当該他のI/O命令をプライオリティ・レジスタ7に格納し、前記スケジューリング済みのI/O命令よりも先に当該他のI/O命令の実行をアレイコントローラ1に指示する動的スケジューリング機能を果たしている。
【0050】
次に、図4に示すように構成されたディスクアレイ装置の動作について説明する。
アレイコントローラ1が、ホストコンピュータから受け取ったI/O命令は、記憶装置2に格納される。動的スケジューリング装置6は、記憶装置2から適宜I/O命令を取り出し、全体のシーク時間が短くなるように、I/O命令間で命令の実行順序を変更(スケジューリング)する。
【0051】
このとき、動的スケジューリング装置6は、記憶装置2上にスケジューリング済みのI/O命令が存在しない場合、または、磁気ディスク装置10でのI/O命令の処理開始を契機として、スケジューリング処理を開始する。後者の場合(磁気ディスク装置10でのI/O命令の処理開始を契機とする場合)、記憶装置2から取り出したI/O命令と、記憶装置2に格納されているスケジューリング済みのI/O命令との間で、スケジューリング処理を行なう。
【0052】
スケジューリングされたI/O命令群は、記憶装置2に格納される。また、記憶装置2に格納されているI/O命令に優先して実行する必要があるI/O命令については、プライオリティ・レジスタ7に格納する。アレイコントローラ1は、記憶装置2またはプライオリティ・レジスタ7からスケジューリング済みのI/O命令を取り出して順次実行する。
【0053】
このような処理によって、各磁気ディスク装置10に対するI/O命令列の実行順序を動的に並び換えることが可能になり、磁気ディスク装置10のサービス時間のさらなる改善を行なえ、データ転送処理の高速化等の性能をより一層向上させることができる。
(e)静的スケジューリングを行なう場合の具体的な実施形態の説明
図5は静的スケジューリングを行なうディスクアレイ装置の具体的な実施形態を示すブロック図である。この図5に示すディスクアレイ装置は、図1〜図3にて前述したディスクアレイ装置を組み合わせたものである。なお、図5中、既述の符号と同一の符号はほぼ同一の部分を示しているので、その詳細な説明は省略する。
【0054】
図5に示すディスクアレイ装置はRAID5型のもので、このディスクアレイ装置では、図3にて前述した機能(タグ番号付与機能等)をもつアレイコントローラ1Aが用いられている。
また、図5に示すディスクアレイ装置では、前述した記憶装置2がFIFOバッファ21により構成され、前述した命令デコード装置4がフェッチ・ユニット41およびデコード・ユニット42により構成され、前述したパリティ制御装置5がリザベーション・レジスタ51およびタグ・レジスタ52により構成されている。
【0055】
さらに、スケジューリング装置3(図1〜図3に示したスケジューリング装置3A〜3Cとしての機能をもつもの)が、汎用レジスタ31,ヘッド情報レジスタ32,オーダリング・レジスタ33,カウンタ34,シーケンサ35,演算ユニット36およびI/Oレジスタ37により構成されている。
なお、スケジューリング装置3のオーダリング・レジスタ33は、図1〜図4に示した実施形態では記憶装置2に含まれるものであるが、ここでは、スケジューリング装置3内にそなえるものとする。従って、図1〜図4に示した実施形態では、アレイコントローラ1Aで実行すべきI/O命令は記憶装置2から読み出されていたが、図5に示す実施形態では、後述するごとく、I/O命令は、スケジューリング装置3のオーダリング・レジスタ33からI/Oレジスタ37を介して読み出されるようになっている。
【0056】
図5において、38は外部インタフェース(I/F)で、この外部I/F38は、アレイコントローラ1AとFIFOバッファ21(記憶装置2)およびスケジューリング装置3とのインタフェースとして動作するものである。
FIFOバッファ21は、外部I/F38を経由して、ホストコンピュータから送られ、アレイコントローラ1Aにて受け付けられた複数のI/O命令を格納するものである。
【0057】
命令デコード装置4において、フェッチ・ユニット41は、FIFOバッファ21からI/O命令を取り出すものであり、デコード・ユニット42は、フェッチ・ユニット41から取り出したI/O命令を解析するものである。
パリティ制御装置5において、リザベーション・レジスタ51は、図8にて後述する構成を有し、パリティ更新時の非同期リード命令の待ち列を保持するものであり、タグ・レジスタ52は、図9にて後述する構成を有し、各磁気ディスク装置10で実行しているI/O命令がパリティ更新に関するものかどうかを判定すべくスケジューリング装置3からタグ番号を登録されるものである。
【0058】
スケジューリング装置3において、汎用レジスタ31は、スケジューリング実行時に作業用バッファとして使用されるものであり、ヘッド情報レジスタ32は、図6にて後述する構成を有し、各磁気ディスク装置10(HDD 0 〜HDD n-1 )上のヘッドの位置を示すデータを保持するものである。
また、オーダリング・レジスタ33は、図7にて後述する構成を有し、スケジューリング済みのI/O命令列を格納するものであり、カウンタ34は、オーダリング・レジスタ33内のI/O命令数を計数値として示すものである。
【0059】
シーケンサ35は、演算ユニット36へのスケジューリング処理の指示あるいはフェッチ・ユニット41へのI/O命令のフェッチ指示等を行なうべくこれらの演算ユニット36やフェッチ・ユニット41に対して所定のタイミングで指示を送出するものである。
演算ユニット36は、シーケンサ35からの指示に応じて実際のスケジューリング処理を前述した所定のアルゴリズムやデコード・ユニット42による解析結果に基づいて行なうものであり、I/Oレジスタ37は、各磁気ディスク装置10で実行するI/O命令を、スケジューリング装置3からアレイコントローラ1Aを介して対象磁気ディスク装置10へ出力する際に一時的に格納するためのものである。
【0060】
なお、FIFOバッファ21,ヘッド情報レジスタ32,オーダリング・レジスタ33,カウンタ34およびタグ・レジスタ52は、それぞれ磁気ディスク装置10に対応して設けられている。
図6はヘッド情報レジスタ32の構成を示すもので、この図6において、321はヘッド情報レジスタ32における各磁気ディスク装置対応のフィールドを表し、ヘッドが位置するトラック番号を格納するものである。なお、図中、HDD0 〜HDD n-1は、n台の磁気ディスク装置10に対応して設定された装置番号である。
図7はオーダリング・レジスタ33の構成を示すもので、この図7において、331はオーダリング・レジスタ33における各磁気ディスク装置対応のフィールドを示し、n台の磁気ディスク装置10毎にm個のI/O命令を格納することが可能な構成になっている。
【0061】
図8はリザベーション・レジスタ51の構成を示すもので、この図8において、511はタグ番号用のフィールドで、このフィールド511にタグ番号を登録されることによりパリティ更新時の元データおよび元パリティの依存関係を判断できるようになっている。また、512は状態ビットで、この状態ビット512は、パリティ更新時のリード要求の実行状態を示すものである。
【0062】
例えば、この状態ビット512には、2ビットの情報“00(S0)”,“01(S1)”,“10(S2)”,“11(S3)”が設定される。ここで、
00(S0):“本フィールドは無効”であることを示す。
01(S1):“NO DEFINITION ”であることを示す。
10(S2):“本フィールドはパリティ更新用に利用されている”ことを示す。
【0063】
11(S3):“元データまたは元パリティいずれか一方がリードされた”ことを示す。
図9はタグ・レジスタ52の構成を示すもので、この図9において、521はV(Valid)ビットで、このVビット521は、磁気ディスク装置10毎にそなえられるもので、このVビット521に“1”が設定された場合、パリティ更新のためのI/Oアクセスが当該磁気ディスク装置10に対して実行されていることを示す。また、522はタグ・フィールドで、このタグ・フィールド522には、前述したフィールド511と同様、タグ番号が登録・格納されるようになっている。
【0064】
次に、上述のごとく構成された、本実施形態の静的スケジューリングを行なうディスクアレイ装置の動作について説明する。
上位装置であるホストコンピュータ(図示省略)から、図5に示すディスクアレイ装置にI/O要求があると、そのI/O命令が、アレイコントローラ1Aから外部I/F38を通して、FIFOバッファ21に格納される。このとき、パリティ更新に伴う元データまたは元パリティのリード処理が生じた時には、アレイコントローラ1AはそのI/O命令にタグ番号を付加する。
【0065】
フェッチ・ユニット41は、シーケンサ35からの指示により、FIFOバッファ21から複数のI/O命令をフェッチする。フェッチ可能なI/O命令の上限は、オーダリング・レジスタ33に格納できるI/O命令数mとする。
I/O命令のフェッチ後、デコード・ユニット42がI/O命令の解析を行ない、リード命令/ライト命令に応じてI/O命令を分類する。I/O命令列は、汎用レジスタ31に、リード命令/ライト命令に分け格納する。I/O命令格納後、シーケンサ35は演算ユニット36にスケジューリング処理の開始を指示する。
【0066】
演算ユニット36は、前述したアルゴリズムに従い、ヘッド情報レジスタ32内のヘッド位置情報321に基づいて、汎用レジスタ31内のI/O命令の実行順序を決定する。
スケジューリング後のI/O命令列は、当該磁気ディスク装置対応のオーダリング・レジスタ33に格納される。カウンタ34には、オーダリング・レジスタ33に格納されたI/O命令数を記述する。
【0067】
演算ユニット36でのスケジューリング実行中、パリティ更新によって生じたリード命令を検出すると、リザベーション・レジスタ51に登録されているタグ番号511を検索する。このとき、
(a)リザベーション・レジスタ51上に本タグ番号と一致するものがある場合:特に処理は行なわない。
【0068】
(b)リザベーション・レジスタ51上に本タグ番号と一致するものが無い場合:リザベーション・レジスタ51の状態ビット512に"10(S2)"を設定する。
シーケンサ35は、外部I/F38を通じてアレイコントローラ1Aから、I/O命令を転送するよう指示を受けると、演算ユニット36に対して処理の開始を要求する。
【0069】
演算ユニット36は、オーダリング・バッファ33からI/O命令を取り出してI/Oレジスタ37に格納する。このとき、カウンタ34による計数値は、I/O命令の取出毎にデクリメントされる。また、当該I/O命令がタグ付きI/O命令の場合、当該磁気ディスク装置10に対応するタグ・レジスタ52のVビット521をオン(“1”)、タグ番号フィールド522にそのタグ番号を記入・登録する。
【0070】
シーケンサ35の指示を受けた外部I/F38は、I/Oレジスタ37に格納されたI/O命令をアレイコントローラ1Aに送信する。アレイコントローラ1Aは受信したI/O命令を磁気ディスク装置10に投入する。
また、磁気ディスク装置10でのI/O命令処理を終了すると、シーケンサ35はその旨を外部I/F38を通して、アレイコントローラ1Aから受け取る。シーケンサ35は、演算ユニット36に対して処理要求を出す。
【0071】
このとき、演算ユニット36は、以下の処理を実行する。
1.タグ・レジスタ52内の当該磁気ディスク装置10に対応するVビット521を参照する。
(a)Vビット521がオフの場合:何も処理を行なわない。
(b)Vビット521がオンの場合:タグ番号522を読み出し、以下の処理を行なう。
【0072】
2.リザベーション・レジスタ51のタグ番号を検索する。タグ番号522と一致するものを求め、状態ビット512を以下のように設定する。
(a)状態ビット512がS2の時、状態ビット512をS3に設定。
(b)状態ビット512がS3の時、状態ビット512をS0に設定後、シーケンサ35がアレイコントローラ1Aへパリティ更新処理が開始可能である旨を通知。
【0073】
このように、図5〜図11に示した実施形態のディスクアレイ装置によれば、ディスクアレイ装置の個々の磁気ディスク装置10において、アクセス要求のスケジューリングを行なうことにより、シーク時間を削減することが可能になる。従って、ディスクアレイ装置の性能(データ転送処理の高速化等の性能)が大幅に向上する。
【0074】
また、I/O命令をリード/ライトで区別しない場合、図10(a)に示すように、各リード要求のレスポンス・タイムはそれぞれT0,T1およびT2となり、平均レスポンス・タイムは(T0+T1+T2)/3になっていた。これに対して、本実施形態では、図10(b)に示すように、リード命令をライト命令と比べて優先的に磁気ディスク装置10に投入することにより、各リード要求のレスポンス・タイムはそれぞれt0(≦T0),t1(≦T1)およびt2(≦T2)となり、平均レスポンス・タイムは(t0+t1+t2)/3〔≦(T0+T1+T2)/3〕と改善される。つまり、CPU(ホストコンピュータ)での待ち時間が大幅に改善され、ホスト側での処理性能が大きく向上する。なお、図10(a),(b)中、CPUおよび主記憶装置は、ホストコンピュータ側にそなえられるものである。
【0075】
さらに、パリティ更新時の元データ/元パリティ・リードを同期させると、図11(a)に示すように、I/O命令kの待ち時間はT0となる。一方、本実施形態のごとく、非同期に元リード/元パリティ・リードを行なうことにより、I/O命令kの待ち時間はt0(≦T0)と短縮される。つまり、タグ番号により元データおよび元パリティの両方の読出状態を管理することで、元パリティ/元データのリードを非同期に行なうことが可能になり、各磁気ディスク装置10のスループットが大幅に向上する。
【0076】
(f)動的スケジューリングを行なう場合の具体的な実施形態の説明
図12は動的スケジューリングを行なうディスクアレイ装置の具体的な実施形態を示すブロック図である。この図12に示すディスクアレイ装置は、図1,図3,図4にて前述したディスクアレイ装置を組み合わせたものである。なお、図12中、既述の符号と同一の符号はほぼ同一の部分を示しているので、その詳細な説明は省略する。
【0077】
図12に示すディスクアレイ装置もRAID5型のもので、このディスクアレイ装置でも、図3にて前述した機能(タグ番号付与機能等)をもつアレイコントローラ1Aが用いられている。また、図12に示すディスクアレイ装置では、図2にて前述した機能をもたないので、図5に示したデコード・ユニット42は省略されている。さらに、図5に示したヘッド情報レジスタ32としての機能は、図13にて後述するごとくスケジューリング情報レジスタ61に組み込まれている。
【0078】
この動的スケジューリングを行なうディスクアレイ装置では、図12に示すように、動的スケジューリング装置6が、図5にて前述したものと同様の汎用レジスタ31,オーダリング・レジスタ33,カウンタ34,シーケンサ35,演算ユニット36およびI/Oレジスタ37のほか、スケジューリング情報レジスタ61を有して構成されている。
【0079】
このスケジューリング情報レジスタ61は、図13にて後述する構成を有し、ヘッド位置情報とオーダリング・レジスタ33に格納されているI/O命令の情報とを格納するものである。
また、図4にて前述したプライオリティ・レジスタ7もそなえられており、このプライオリティ・レジスタ7には、前述した通り、オーダリング・レジスタ33に格納されているI/O命令に対し、優先的に実行すべきI/O命令が格納されるようになっている。
【0080】
図13はスケジューリング情報レジスタ61の構成を示すもので、この図13において、611は各磁気ディスク装置10に対応するエントリ・フィールドであり、このエントリ・フィールド611は、各命令のトラック番号を格納するものである。また、612はU/DI ビットで、このU/DI ビット612は、ヘッドに対する命令対象のトラックの位置関係を表す情報を設定されるものである。なお、Uは“UP”(ヘッド位置よりもトラック番号が大きいこと)を示し、Dは“DOWN”(ヘッド位置よりもトラック番号が小さいこと)を示し、添字の“I”は、当該ビット612が命令(Instruction)に対応するものであることを示している。
【0081】
また、613はヘッドのトラック番号(磁気ディスク装置10上でのヘッド位置)を格納するフィールドであり、614はU/DH ビットで、このU/DH ビット614は、ヘッドの移動方向を示す設定されるものである。なお、Uは“UP”(現在のヘッド位置からトラック番号の大きい方向へ移動すること)を示し、Dは“DOWN”(現在のヘッド位置からトラック番号の小さい方向へ移動すること)を示し、添字の“H”は、当該ビット614がヘッド(Head)に対応するものであることを示している。
【0082】
次に、上述のごとく構成された、本実施形態の動的スケジューリングを行なうディスクアレイ装置の動作について説明する。
本実施形態は、I/O命令の動的スケジューリングを除き、図5〜図11により先に説明した静的スケジューリングを行なうディスクアレイ装置と同一の処理を行なう。本実施形態では、I/O命令のフェッチを要求するフェッチ・ユニット41は、FIFOバッファ21からI/O命令を取り出すと、その命令を汎用レジスタ31に格納する。I/O命令格納後、シーケンサ35は、演算ユニット36にスケジューリング処理の開始を指示する。
【0083】
演算ユニット36は、I/O命令のアクセスするトラック番号と、スケジューリング情報レジスタ61内のヘッド番号613とを比較する。比較の結果、
(a)〔フィールド613のヘッドのトラック番号〕>〔I/O命令のトラック番号〕の場合:当該I/O命令のU/DI ビット612=D
(b)〔フィールド613のヘッドのトラック番号〕<〔I/O命令のトラック番号〕の場合:当該I/O命令のU/DI ビット612=U
とする。
【0084】
次に、先に求めた当該I/O命令のU/DI ビット612と、スケジューリング情報レジスタ61上のI/O命令〔i,j〕(0≦i≦m−2)のU/DI ビット612とを比較する。このとき、
1.U/DI ビット612と一致する場合:
トラック番号〔i,j〕611と比較する。
【0085】
(a)〔トラック番号〔i,j〕611〕>〔当該I/O命令のトラック番号〕の時
・U/DI =Uならば、I/O命令〔i,j〕の前に、当該I/O命令をソートし、オーダリング・レジスタ33に格納する。このときI/O命令〔0,j〕であるならば、当該I/O命令は、プライオリティ・レジスタ7へ格納する。
【0086】
・U/DI =Dならば、I/O命令〔i+1,j〕に関して、再びU/DI ビット612の比較処理を行なう。
(b)〔トラック番号〔i,j〕611〕<〔当該I/O命令のトラック番号〕の時
・U/DI =Uならば、I/O命令〔i+1,j〕に関して、再びU/DI ビット612の比較処理を行なう。
【0087】
・U/DI =Dならば、I/O命令〔i,j〕の前に、当該I/O命令をソ ートし、オーダリング・レジスタ33に格納する。このときI/O命令〔0 ,j〕であるならば、当該I/O命令は、プライオリティ・レジスタ7へ格 納する。
2.U/DI ビット612と一致しない場合:
U/DH ビット614を参照する。
【0088】
・U/DH ビット614と一致するならば、I/O命令〔i,j〕の前に、当該I/O命令をソートし、オーダリング・レジスタ33に格納する。
・U/DH ビット614と一致しなければ、I/O命令〔i+1,j〕に関して、再びU/DH ビット614の比較処理を行なう。もし、スケジューリング情報レジスタ61に格納されている最後のI/O命令であるならば、本命令をオーダリング・レジスタ33の最後尾に登録する。
【0089】
シーケンサ35は、外部I/F38を通じてアレイコントローラ1Aから、I/O命令を転送するよう指示を受けると、演算ユニット36に対して処理の開始を要求する。
演算ユニット36は、プライオリティ・レジスタ7にI/O命令があれば、プライオリティ・レジスタ7から、そうでなければオーダリング・レジスタ33からI/O命令を取り出し、I/Oレジスタ37へ格納する。
【0090】
シーケンサ35の指示を受けた外部I/F38は、I/Oレジスタ37に格納されたI/O命令をアレイコントローラ1Aに送信する。
このように、図12〜図14に示した実施形態のディスクアレイ装置によれば、図5〜図11に示したものと同様に、各磁気ディスク装置10においてアクセス要求のスケジューリングを行なうことによりシーク時間を削減でき、ディスクアレイ装置の性能(データ転送処理の高速化等の性能)が大幅に向上するとともに、元パリティ/元データのリードを非同期に行なうことが可能で、各磁気ディスク装置10のスループットが大幅に向上する。
【0091】
さらに、図14(a)に示すように、静的スケジューリング時のヘッドのトラック移動距離を“DistanceS ”とすると、
Distances =leng(i) +leng(j) +leng(k)
であるが、図14(b)に示すように、動的スケジューリングを行なった時のヘッドのトラック移動距離を“DistanceD ”とすると、
DistanceD =leng(i) +leng(j)
となる。
【0092】
つまり、動的スケジューリングを行なうことにより、I/O命令kに関するトラック移動距離は、“Distances −DistanceD (=leng(k))”、シーク時間もO(leng(k))だけ削減される。
従って、I/O要求の動的スケジューリングにより、静的スケジューリング時に比べて、シーク時間がより削減され、磁気ディスク装置10のサービス時間のさらなる改善を行なえ、データ転送処理の高速化等の性能をより一層向上させることができる。
【0093】
【発明の効果】
以上詳述したように、本発明のディスクアレイ装置によれば、各ディスク装置への負荷分散に加え、各ディスク装置毎にスケジューリングが行なわれるので、各ディスク装置でのヘッドのシーク時間を短縮・削減して各ディスク装置のサービス時間が改善され、データ転送処理の高速化等の性能を大幅に向上できる効果がある。さらに、パリティ更新時の元データ/元パリティのリード処理時の同期をとる必要が無くなる、つまり、パリティ更新時の元データと元パリティとのリード処理を非同期に行なえるので、前述のように各ディスク装置毎にスケジューリングを行なった場合にそのスケジューリングの効果を損なうことがなく、各ディスク装置のスループットの向上を実現できる。
【0094】
また、本発明のディスクアレイ装置によれば、リード命令をライト命令よりも優先的に実行することができ、リード/ライト命令混在実行時に比べてリード命令のレスポンス・タイムを大幅に短縮できるので、入出力要求を行なう上位装置(ホスト)側での待ち時間が改善され、上位装置側での処理性能向上にも寄与する。
【0096】
そして、本発明のディスクアレイ装置によれば、各ディスク装置に対する入出力命令列の実行順序を動的に並び換えることが可能になり、ディスク装置のサービス時間のさらなる改善を行なえ、データ転送処理の高速化等の性能をより一層向上させることができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態としてのディスクアレイ装置を示すブロック図である。
【図2】本発明の第2実施形態としてのディスクアレイ装置を示すブロック図である。
【図3】本発明の第3実施形態としてのディスクアレイ装置を示すブロック図である。
【図4】本発明の第4実施形態としてのディスクアレイ装置を示すブロック図である。
【図5】静的スケジューリングを行なうディスクアレイ装置の具体的な実施形態を示すブロック図である。
【図6】本実施形態におけるヘッド情報レジスタの構成を示す図である。
【図7】本実施形態におけるオーダリング・レジスタの構成を示す図である。
【図8】本実施形態におけるリザベーション・レジスタの構成を示す図である。
【図9】本実施形態におけるタグ・レジスタの構成を示す図である。
【図10】(a),(b)は本実施形態でのリード命令についてのレスポンス・タイムの短縮効果を従来と比較して示す図である。
【図11】(a),(b)は本実施形態でのパリティ更新処理時の非同期操作による効果を従来と比較して示す図である。
【図12】動的スケジューリングを行なうディスクアレイ装置の具体的な実施形態を示すブロック図である。
【図13】本実施形態のスケジューリング情報レジスタの構成を示す図である。
【図14】(a),(b)の本実施形態の動的スケジューリング実施時の効果を動的スケジューリングを実施しない場合と比較して示す図である。
【図15】RAID3型のディスクアレイ装置を説明するためのブロック図である。
【図16】RAID4型のディスクアレイ装置を説明するためのブロック図である。
【図17】RAID5型のディスクアレイ装置を説明するためのブロック図である。
【符号の説明】
1 アレイコントローラ
1A アレイコントローラ(タグ番号付与機能)
2 記憶装置(スケジューリング機能)
3,3A,3B,3C スケジューリング装置(スケジューリング機能)
4 命令デコード装置
5 パリティ制御装置(パリティ制御機能)
6 動的スケジューリング装置(動的スケジューリング機能)
7 プライオリティ・レジスタ
10 磁気ディスク装置
21 FIFOバッファ
31 汎用レジスタ
32 ヘッド情報レジスタ
33 オーダリング・レジスタ
34 カウンタ
35 シーケンサ
36 演算ユニット
37 I/Oレジスタ
38 外部インタフェース
41 フェッチ・ユニット
42 デコード・ユニット
51 リザベーション・レジスタ
52 タグ・レジスタ
61 スケジューリング情報レジスタ
Claims (3)
- 複数のディスク装置と、外部からの入出力命令に応じてパリティ用のディスク装置を固定することなく前記の各ディスク装置に対して並列的に読出/書込アクセスを実行するように制御するアレイコントローラとをそなえてなるRAID5型のディスクアレイ装置において、
パリティ更新時に必要とされる元データおよび元パリティに関する入出力命令に対してタグ番号を付与するタグ番号付与機能と、
該タグ番号付与機能によってタグ番号を付与された入出力命令を含む複数の入出力命令を、前記の各ディスク装置におけるヘッドのトラック移動回数が少なくなるように並び換え、タグ番号を付与された入出力命令の実行を非同期に該アレイコントローラに指示するスケジューリング機能と、
該スケジューリング機能の指示に従ってタグ番号を付与された入出力命令を実行する際にはそのタグ番号を登録し、登録されたタグ番号毎に設定される状態ビットを用いて、タグ番号を付与された入出力命令による元データおよび元パリティの両方の読出状態を管理し、同一のタグ番号を付与された入出力命令の実行が該スケジューリング機能により2度指示されたことを該状態ビットにより検知すると、元データおよび元パリティの両方が読み出されたとしてパリティ更新処理が可能になったことを該アレイコントローラに通知するパリティ制御機能とがそなえられたことを特徴とする、ディスクアレイ装置。 - 各入出力命令の命令種を解析するデコード機能をさらにそなえ、
該スケジューリング機能が、該デコード機能により解析された命令種に基づいて該複数の入出力命令を並び換え、各入出力命令の実行を該アレイコントローラに指示する機能をさらにそなえていることを特徴とする、請求項1記載のディスクアレイ装置。 - 複数のディスク装置と、外部からの入出力命令に応じて前記の各ディスク装置に対する読出/書込アクセスを制御するアレイコントローラとをそなえてなるディスクアレイ装置において、
外部から受け付けた複数の入出力命令を、前記の各ディスク装置におけるヘッドのトラック移動回数が少なくなるように並び換えるスケジューリング処理を行なうとともに、該複数の入出力命令の前記スケジューリング処理を行なった後に他の入出力命令を受け付けた場合に、シーク時間が短くなるように、当該他の入出力命令と前記スケジューリング処理を行なわれた該複数の入出力命令との間でスケジューリング処理を行なってこれらの入出力命令の実行順序を変更し、変更された実行順序に従って該複数の入出力命令および当該他の入出力命令の実行を該アレイコントローラに指示する動的スケジューリング機能がそなえられたことを特徴とする、ディスクアレイ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32331995A JP3648311B2 (ja) | 1995-12-12 | 1995-12-12 | ディスクアレイ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32331995A JP3648311B2 (ja) | 1995-12-12 | 1995-12-12 | ディスクアレイ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09160729A JPH09160729A (ja) | 1997-06-20 |
JP3648311B2 true JP3648311B2 (ja) | 2005-05-18 |
Family
ID=18153470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32331995A Expired - Fee Related JP3648311B2 (ja) | 1995-12-12 | 1995-12-12 | ディスクアレイ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3648311B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100969404B1 (ko) * | 2002-01-08 | 2010-07-14 | 엘지전자 주식회사 | 영상 저장 장치의 디스크 스케줄링 방법 |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8589655B2 (en) | 2010-09-15 | 2013-11-19 | Pure Storage, Inc. | Scheduling of I/O in an SSD environment |
US8775868B2 (en) | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
JP6244972B2 (ja) * | 2014-02-21 | 2017-12-13 | 富士通株式会社 | ストレージ制御装置、ストレージ装置及びストレージ制御プログラム |
-
1995
- 1995-12-12 JP JP32331995A patent/JP3648311B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09160729A (ja) | 1997-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6604172B2 (en) | Disk array device with selectable method for generating redundant data | |
US5802345A (en) | Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the number of command end interrupts | |
KR0131554B1 (ko) | 고장 허용 디스크 저장 서브시스템 및 그 서브시스템의 컴퓨터시스템으로부터 수신된 디지탈 정보의 데이타 블럭 저장방법 | |
US5959860A (en) | Method and apparatus for operating an array of storage devices | |
US5848229A (en) | Fault tolerant disk array system for allocating auxillary disks in place of faulty disks | |
US5598549A (en) | Array storage system for returning an I/O complete signal to a virtual I/O daemon that is separated from software array driver and physical device driver | |
US5632012A (en) | Disk scrubbing system | |
US5860091A (en) | Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications | |
US6532549B2 (en) | Storage unit subsystem | |
JP3176157B2 (ja) | ディスクアレイ装置及びそのデータ更新方法 | |
EP0507552A2 (en) | Accessing variable length records stored on fixed block formatted DASDS | |
JPH0642193B2 (ja) | Dasdアレイのための更新記録方法及び装置 | |
US6754897B1 (en) | Operation prioritization and selection in a probability-based job scheduler | |
JP3648311B2 (ja) | ディスクアレイ装置 | |
JPH07200187A (ja) | ディスクアレイ装置 | |
JPH0863394A (ja) | 記憶装置システムおよび記憶装置の制御方法 | |
JPH06119126A (ja) | ディスクアレイ装置 | |
JP3122252B2 (ja) | ディスクアレイ制御方式 | |
JPH10312246A (ja) | 記憶装置サブシステム | |
JP2857289B2 (ja) | ディスクアレイ装置 | |
JPH0830402A (ja) | パリティ格納方法 | |
JP2854471B2 (ja) | ディスクアレイ装置 | |
JPH11119915A (ja) | ディスクアレイ装置 | |
EP0661639A1 (en) | Data prefetch in mass data storage systems | |
JPH11345096A (ja) | ディスクアレイシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041020 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041026 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050214 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080218 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090218 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090218 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100218 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110218 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110218 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120218 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |