JP3748631B2 - ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置 - Google Patents
ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置 Download PDFInfo
- Publication number
- JP3748631B2 JP3748631B2 JP21753396A JP21753396A JP3748631B2 JP 3748631 B2 JP3748631 B2 JP 3748631B2 JP 21753396 A JP21753396 A JP 21753396A JP 21753396 A JP21753396 A JP 21753396A JP 3748631 B2 JP3748631 B2 JP 3748631B2
- Authority
- JP
- Japan
- Prior art keywords
- logical
- storage area
- logical storage
- block
- blocks
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Description
【発明の属する技術分野】
本発明は、ディスクアレイ装置に関する。
【0002】
【従来の技術】
従来、データを記憶するディスク装置1台以上によって構成されるドライブ列を複数と、論理記憶領域を設定する論理記憶領域設定手段と、論理記憶領域を複数の論理ブロックに分割するブロック設定手段と、各論理ブロックにドライブ列の物理ブロックを割り当てる際に、論理記憶領域において互いに隣接する論理ブロックにはそれぞれ別のドライブ列の物理ブロックを割り当てる割当手段と、複数のドライブ列を並列に動作させるドライブ制御手段とを備えるディスクアレイ装置が知られている。
【0003】
論理記憶領域において互いに隣接する論理ブロックにはそれぞれ別のドライブ列の物理ブロックを割り当てて、複数のドライブ列を並列に動作させることにより、外部からのアクセスに対する応答の高速化を図る手法はストライピングと呼ばれており、RAID(Redundant Arrays of Inexpensive Disks)レベル0,3,4,5等に応用されている。
【0004】
このストライピングの一例を図8を参照して具体的に説明する。これはRAIDレベル4に相当するもので、論理ディスクにはチャンク0、1、2、3・・・が設定されていて、A〜Dの4台のディスク装置に順次チャンク0,1,2,3を書き込み、それらチャンク0〜3に対応するパリティデータP(0−3)を残りの1台のEディスク装置に書き込む。同様に、A〜Dディスク装置に順次チャンク4,5,6,7を書き込み、それらデータ4〜7に対応するパリティデータP(4−7)を残りのEディスク装置に書き込む。チャンク8以降についても同様である。
【0005】
このストライピングを実行すると、ファイルを書き込む際、ファイルを構成するファイルブロックが論理ディスク上の連続したチャンクに順次配置されるときには、その連続するチャンクはそれぞれ別のディスク装置のチャンクに配置される。そのため、ファイルをシーケンシャルに読み出す場合には、同一のディスク装置から連続して読み出されることがなく、あるディスク装置のチャンクからのデータ転送中に別のディスク装置のチャンクをシークしたり、さらにはキャッシュへの先読みなどを行える。このように複数のディスク装置を並列に動作させることができるので、全体として非常に高速なデータ読み出しが可能であった。また、多数のディスク装置を使用できることから大容量のデータを格納することも可能であった。
【0006】
つまり、大容量と高速読み出しが両立するわけで、こうした特質を活かして例えばビデオサーバ等に利用されていた。
【0007】
【発明が解決しようとする課題】
しかしながら、例えばビデオサーバの場合、映像データをディスクアレイ装置に蓄積していけば、それ以上データを蓄積できない満杯状態がいつかは訪れる。このとき、それ以上の映像データを記憶させようとすれば、通常のディスクアレイ装置では映像データの送出を中断し、既に蓄積済みの映像データを一旦外部の記憶装置に保存するか、または新規の大容量のディスクアレイ装置へ転送するかしか手段がなかった。何れにしてもその為に要する時間は短くなく、その間そのビデオサーバはサービスを停止せざるを得ないのが実状であった。
【0008】
また、ストライピングを行うシステムにおいてその高速性を維持するためには、ディスクアレイ装置を構成する全ディスク装置を共通の論理記憶領域下にコントロールする必要がある。ところが、単にディスク装置を増設しただけでは既設分の論理記憶領域とは別に増設分の論理記憶領域が設定されてしまうので、ストライピングの利点を活かすことができなかった。
【0009】
このディスクアレイ装置の記憶容量を増加するためにはシステムを一旦停止しなければならないという問題、単にディスク装置を増設しただけではストライピングの利点が活かせないという問題は、ビデオサーバ以外でも存在した。本発明は、上述した問題点を解決するためになされたものであり、ストライピングを行うディスクアレイ装置において、ストライピングの利点を損なわずに、しかもその稼働を中断せずに記憶データの増加やディスク装置の増設を可能とすることを目的としている。
【0010】
【課題を解決するための手段】
上記課題を解決するための手段として、請求項1記載のディスクアレイにおける論理記憶領域統合方法は、データを記憶するディスク装置1台以上によって構成されるドライブ列を複数と、論理記憶領域を設定する論理記憶領域設定手段と、該論理記憶領域を複数の論理ブロックに分割するブロック設定手段と、各論理ブロックに前記ドライブ列の物理ブロックを割り当てる際に前記論理記憶領域において互いに隣接する前記論理ブロックにはそれぞれ別の前記ドライブ列の物理ブロックを割り当てる割当手段と、前記複数のドライブ列を並列に動作させるドライブ制御手段とを備えるディスクアレイにおいて、ドライブ列が増設された際に、増設分のドライブ列の構成が既設のドライブ列の構成と同じであることを前提として、既設のドライブ列に対応する論理記憶領域と増設分のドライブ列に対応する論理記憶領域とを統合するための論理記憶領域統合方法であって、
前記ドライブ列が増設されると、前記既設分のドライブ列に対応する前記論理記憶領域を第1の論理記憶領域とし、該増設分のドライブ列に応じた第2の論理記憶領域と該第2の論理記憶領域とは別の第3の論理記憶領域を設定し、該第2の論理記憶領域を複数の論理ブロックに分割して、論理ブロック番号を前記第1の論理記憶領域と前記第2の論理記憶領域とで異なるように割り振ってから、
該第1および第2の論理記憶領域の未使用の論理ブロックをそれぞれが属していた論理記憶領域から分離させ、該分離させた論理ブロックを前記第3の論理記憶領域に属する論理ブロックとする併合ステップと、
前記第1および第2の論理記憶領域の論理ブロックに割り当てられている前記物理ブロックのデータを前記第3の論理記憶領域の論理ブロックに割り当てられた前記物理ブロックに移動させて該論理ブロックを前記未使用の論理ブロックとするデータ移動ステップとを、
前記第1および第2の論理記憶領域に属していた前記論理ブロックがすべて前記第3の論理記憶領域に属するまで繰り返し実行し、前記第1および第2の論理記憶領域に属していた前記論理ブロックを前記第3の論理記憶領域に併合する毎に前記第1および第2の論理記憶領域の論理ブロック数を前記分離させたブロック数分減算し、前記第3の論理記憶領域の論理ブロック数を該併合されたブロック数分加算することを特徴とする。
【0011】
請求項2記載のディスクアレイにおける論理記憶領域統合方法は、請求項1記載のディスクアレイにおける論理記憶領域統合方法において、
前記併合ステップを実行する前に前記第1の論理記憶領域に未使用の論理ブロックが存在しないときには、該第1の論理記憶領域のいずれかの論理ブロックに割り当てられている前記物理ブロックのデータを前記第2の論理記憶領域の未使用の論理ブロックに割り当てられている前記物理ブロックに移動させるブロック解放ステップを実行することを特徴とする。
【0012】
また、請求項1記載の方法を実行可能な装置としての請求項3記載のディスクアレイ装置は、データを記憶するディスク装置1台以上によって構成されるドライブ列を複数と、論理記憶領域を設定する論理記憶領域設定手段と、該論理記憶領域を複数の論理ブロックに分割するブロック設定手段と、各論理ブロックに前記ドライブ列の物理ブロックを割り当てる際に前記論理記憶領域において互いに隣接する前記論理ブロックにはそれぞれ別の前記ドライブ列の物理ブロックを割り当てる割当手段と、前記複数のドライブ列を並列に動作させるドライブ制御手段とを備えるディスクアレイ装置において、
増設分のドライブ列の構成が既設のドライブ列の構成と同じである前記ドライブ列が増設されると、前記既設分のドライブ列に対応する前記論理記憶領域を第1の論理記憶領域とし、前記論理領域設定手段は該増設分のドライブ列に応じた第2の論理記憶領域と該第2の論理記憶領域とは別の第3の論理記憶領域を設定し、
前記ブロック設定手段は該第2の論理記憶領域を複数の論理ブロックに分割して、論理ブロック番号を前記第1の論理記憶領域と前記第2の論理記憶領域とで異なるように割り振る構成であり、
該第1および第2の論理記憶領域の未使用の論理ブロックをそれぞれが属していた論理記憶領域から分離させ、該分離させた論理ブロックを前記第3の論理記憶領域に属する論理ブロックとする領域併合手段と、
前記第1および第2の論理記憶領域の論理ブロックに割り当てられている前記物理ブロックのデータを前記第3の論理記憶領域の論理ブロックに割り当てられた前記物理ブロックに移動させて該論理ブロックを前記未使用の論理ブロックとするデータ移動手段と、
前記第1および第2の論理記憶領域に属していた前記論理ブロックがすべて前記第3の論理記憶領域に属するまで前記領域併合手段とデータ移動手段とを作動させ、前記第1および第2の論理記憶領域に属していた前記論理ブロックが前記第3の論理記憶領域に組み込まれる毎に前記第1および第2の論理記憶領域の論理ブロック数を前記分離させたブロック数分減算し、前記第3の論理記憶領域の論理ブロック数を該組み込んだブロック数分加算する併合制御手段とを設けた。
【0013】
請求項2記載の方法を実行可能な装置としての請求項4記載のディスクアレイ装置は、請求項3記載のディスクアレイ装置において、前記第1の論理記憶領域に未使用の論理ブロックが存在しないときには、該第1の論理記憶領域のいずれかの論理ブロックに割り当てられている前記物理ブロックのデータを前記第2の論理記憶領域の未使用の論理ブロックに割り当てられている前記物理ブロックに移動させるブロック解放手段を設けたことを特徴とする。
【0014】
請求項5記載のディスクアレイ装置は、請求項3または4記載のディスクアレイ装置において、該ディスクアレイ装置の稼働中における前記ドライブ列の増設を検出する増設検知手段を設けたことを特徴とする。
【0015】
【発明の実施の形態】
上記の構成になる請求項1記載のディスクアレイにおける論理記憶領域統合方法は、データを記憶するディスク装置1台以上によって構成されるドライブ列を複数、論理記憶領域を設定する論理記憶領域設定手段、論理記憶領域を複数の論理ブロックに分割するブロック設定手段、各論理ブロックにドライブ列の物理ブロックを割り当てる際に論理記憶領域において互いに隣接する論理ブロックにはそれぞれ別のドライブ列の物理ブロックを割り当てる割当手段および複数のドライブ列を並列に動作させるドライブ制御手段を備えるディスクアレイに適用される。なお、ドライブ列は、データを記憶するディスク装置1台以上によって構成されるから、ディスク装置1台で1つのドライブ列を構成することもある。
【0016】
この論理記憶領域統合方法は、増設分のドライブ列の構成が既設のドライブ列の構成と同じであることを前提としており、ドライブ列が増設されると、既設分のドライブ列に対応する論理記憶領域を第1の論理記憶領域とし、増設分のドライブ列に応じた第2の論理記憶領域と第2の論理記憶領域とは別の第3の論理記憶領域を設定し、第2の論理記憶領域を複数の論理ブロックに分割して、論理ブロック番号を第1の論理記憶領域と第2の論理記憶領域とで異なるように割り振る。
その後、第1および第2の論理記憶領域の未使用の論理ブロックをそれぞれが属していた論理記憶領域から分離させ、分離させた論理ブロックを第3の論理記憶領域に属する論理ブロックとする併合ステップと、第1および第2の論理記憶領域の論理ブロックに割り当てられている物理ブロックのデータを第3の論理記憶領域の論理ブロックに割り当てられた物理ブロックに移動させて該論理ブロックを前記未使用の論理ブロックとするデータ移動ステップとを、第1および第2の論理記憶領域に属していた論理ブロックがすべて第3の論理記憶領域に属するまで繰り返し実行する。
また、第1および第2の論理記憶領域に属していた論理ブロックを第3の論理記憶領域に併合する毎に第1および第2の論理記憶領域の論理ブロック数を分離させたブロック数分減算し、第3の論理記憶領域の論理ブロック数を併合されたブロック数分加算する。
【0017】
つまり、第1および第2の論理記憶領域の未使用の部分を第3の論理記憶領域に併合し、その併合された部分に対応する物理ブロックに他の物理ブロックのデータを移動させることによって第1および第2の論理記憶領域に未使用の論理ブロックを作り出し、その未使用の論理ブロックを第3の論理記憶領域に併合することを繰り返す。そして、最終的には、第1および第2の論理記憶領域は消滅して第3の論理記憶領域だけになる。
【0018】
この残った第3の論理記憶領域は、既設のディスク装置および増設されたディスク装置のすべてを共通に管理する論理記憶領域となるから、ディスク装置の増設によってストライピングの利点が損なわれることはない。また、既設のディスク装置に蓄積されていたデータを他のディスクアレイに移転させるわけではないから、このディスクアレイからの読み出しは可能であり、稼働を中断させる必要はない。
【0019】
ところで、ディスク装置を増設した際には、例えば既設のディスク装置が満杯あるいは満杯に近くて、第1の論理記憶領域のすべての論理ブロックが使用されている可能性もある。このような場合には、いきなり併合ステップを実行するわけにはいかない。
【0020】
そこで、請求項2記載のように、併合ステップを実行する前に第1の論理記憶領域に未使用の論理ブロックが存在しないときには、第1の論理記憶領域のいずれかの論理ブロックに割り当てられている物理ブロックのデータを第2の論理記憶領域の未使用の論理ブロックに割り当てられている物理ブロックに移動させるブロック解放ステップを実行すれば、第1の論理記憶領域に未使用の論理ブロックができるから、そこで併合ステップを実行できる。なお、増設分のディスク装置は、増設時には使用されている物理ブロックがないのが普通であるから、ブロック解放ステップの実行に支障はない。
【0021】
次に、請求項1記載の方法を実行可能な装置としての請求項3記載のディスクアレイ装置においては、ドライブ列は、データを記憶するディスク装置1台以上によって構成され、ディスク装置1台で1つのドライブ列を構成することもある。このディスクアレイ装置は、そうしたドライブ列を複数備えている。
なお、増設されるドライブ列の構成は既設のドライブ列の構成と同じにされる。
【0022】
論理記憶領域設定手段は、ディスクアレイ装置を構成するディスク装置の記憶容量に応じて論理記憶領域を設定し、ブロック設定手段は、例えばディスクアレイ装置の構築に際して設定される論理ブロックのサイズに基づいて、論理記憶領域を複数の論理ブロックに分割する。そして、割当手段は、各論理ブロックにドライブ列の物理ブロックを割り当てる際に、論理記憶領域において互いに隣接する論理ブロックにはそれぞれ別のドライブ列の物理ブロックを割り当てる。
【0023】
これによりストライピングが可能となり、ファイルを書き込む際に、ファイルを構成するファイルブロックが論理記憶領域の連続した論理ブロックに順次配置されるときには、その連続する論理ブロックはそれぞれ別のドライブ列の物理ブロックに配置される。そのため、ファイルをシーケンシャルに読み出す場合には、同一のドライブ列から連続して読み出されることはない。そこで、ドライブ制御手段により複数のドライブ列を並列に動作させれば、あるドライブ列の物理ブロックからのデータ転送中に別のドライブ列の物理ブロックをシークしたり、さらにはキャッシュへの先読みなどを行える。このように複数のドライブ列を並列に動作させることができるので、全体として非常に高速なデータ読み出しが可能である。
【0024】
さらに、このディスクアレイ装置においては、ドライブ列が増設されると、論理領域設定手段は、既設分のドライブ列に対応する論理記憶領域を第1の論理記憶領域として、増設分のドライブ列に応じた第2の論理記憶領域とこの第2の論理記憶領域とは別の第3の論理記憶領域を設定し、ブロック設定手段は第2の論理記憶領域を複数の論理ブロックに分割して、論理ブロック番号を第1の論理記憶領域と第2の論理記憶領域とで異なるように割り振る。
【0025】
領域併合手段は、第1および第2の論理記憶領域の未使用の論理ブロックをそれぞれが属していた論理記憶領域から分離させ、分離させた論理ブロックを第3の論理記憶領域に属する論理ブロックとする。
【0026】
データ移動手段は、第1および第2の論理記憶領域の論理ブロックに割り当てられている物理ブロックのデータを第3の論理記憶領域の論理ブロックに割り当てられた物理ブロックに移動させて、その論理ブロックを未使用の論理ブロックとする。併合制御手段は、第1および第2の論理記憶領域に属していた論理ブロックがすべて第3の論理記憶領域に属するまで領域併合手段とデータ移動手段とを作動させる。また、第1および第2の論理記憶領域に属していた論理ブロックを第3の論理記憶領域に併合する毎に第1および第2の論理記憶領域の論理ブロック数を分離させたブロック数分減算し、第3の論理記憶領域 の論理ブロック数を併合されたブロック数分加算する。
【0027】
このような、各手段の作用により、請求項1について述べたとおりの効果が発揮される。また、請求項4の構成とすれば、ブロック解放手段は、第1の論理記憶領域に未使用の論理ブロックが存在しないときには、第1の論理記憶領域のいずれかの論理ブロックに割り当てられている物理ブロックのデータを第2の論理記憶領域の未使用の論理ブロックに割り当てられている物理ブロックに移動させるから、請求項2について述べたとおりの効果が得られる。
【0028】
さらに、請求項5記載の構成とすれば、増設検知手段によって、ディスクアレイ装置の稼働中におけるドライブ列の増設を検出することができるから、外部から特別な操作をしたり、あるいはディスク装置の増設をディスクアレイ装置に認識させるためにシステムをリセットする必要もない。
【0029】
【具体例】
次に、本発明の具体例を説明することにより発明の実施の形態を詳しく説明する。図1は、本具体例のディスクアレイ装置6の概略構成を説明するブロック図である。この図1に示すように、ディスクアレイ装置6は、ディスクアレイ装置6全体の制御手段となるアレイコントローラ8と複数のディスク装置50とを備えている。
【0030】
このアレイコントローラ8は、論理記憶領域設定手段、ブロック設定手段、割当手段、領域併合手段、データ移動手段、併合制御手段、ブロック解放手段および増設検知手段として機能するCPU30を中心にして構成されている。CPU30には、CPU30が実行するプログラムを格納しているROM20、CPU30のワークエリアとなるRAM10、図示しないホスト装置とのデータの送受などを行うための通信手段としてのインタフェース(I/F)35、ドライブ制御手段でありCPU30と共同してデータ移動手段およびブロック解放手段として機能する複数のドライブ制御装置40が接続されている。
【0031】
各ドライブ制御装置40には、それぞれ複数のディスク装置50が、バスライン55によりパラレルに接続されている。図においては、各ドライブ制御装置40は、すでに3台のディスク装置50(ドライブ0、1、2)が接続されていて、そこに新たに3台のディスク装置50(ドライブ3、4、5)が増設された状態を示している。各ドライブ制御装置40の同じドライブ番号(例えばドライブ0)同士によって1つのドライブ列が構成されており、ディスク装置50の増設前にあってはドライブ列0、1、2の3つのドライブ列が存在し、増設後はドライブ列3、4、5が増えて6つのドライブ列が存在している。なお、ディスク装置50は、いわゆる物理的なディスクドライブユニットとそれを制御するコントロールユニットとが一体化されたものである。
【0032】
アレイコントローラ8のCPU30は、ROM20内のアレイ管理ソフトウェア等に基づき、各ドライブ制御装置40を介して各ドライブ列のディスク装置50を同期させて動作させることができ、しかも複数のドライブ列を並列に動作させことができる。
【0033】
本具体例では、CPU30が、システムの起動時に接続されているディスク装置50の台数と記憶容量とを認識して、総記憶容量に応じた論理記憶領域を設定し、図2に示される論理ブロック→物理ブロック変換テーブルを作成しRAM10に記憶させておき、このテーブルに基づいてディスク装置50へのデータの書き込み、読み出しを行う。
【0034】
ホスト装置から例えば論理ブロック番号0〜2のデータの読み出し要求を受けたとすると、CPU30は、まず論理ブロック番号0に対応するドライブ列(ドライブ列番号0)の物理ブロック番号0の読み出しを、各ドライブ制御装置40に指示する。すると、各ドライブ制御装置40が、この指示に応じてドライブ0のディスク装置50を作動させて、それぞれの物理ブロック0に記録されているデータを読み出させる。読み出されたデータは、インタフェース35を通じてホスト装置に送出されるのであるが、CPU30は、ドライブ列0からの読み出しと並行させて、ドライブ列1のディスク装置50を作動させて物理ブロック0のシークや先読みを行わせ、あるいはさらにドライブ列2の物理ブロック0のシークや先読みを行わせる。このように、例えばドライブ列0から連続して読み出しすることをせずに、ドライブ列0〜2を並列に作動させることで、ホスト装置からのアクセス要求に高速で対応することができる。
【0035】
ところが、図1に示されるようにドライブ列3〜5が増設された際に、ドライブ列0〜2に対応する論理記憶領域とドライブ列3〜5に対応する論理記憶領域が別々であると、すなわち図2に示されるようなブロック→物理ブロック変換テーブルを2つ持っていたのでは、ドライブ列0〜2におけるストライピングとドライブ列3〜5におけるストライピングが別々になってしまうから、ディスクアレイ装置6全体としての記憶容量は増加するとしても、高速性の点では不十分と言わざるを得ない。
【0036】
そこで、本具体例のディスクアレイ装置6では、次に説明するように既設のドライブ列0〜2と増設されたドライブ列3〜5の論理記憶領域を統合している。ディスクアレイ装置6が稼働しているときには、アレイコントローラ8のCPU30は、図3に示されるディスクアレイメイン処理を実行している。この処理においては、CPU30は、ホスト装置からのアクセス要求があるか否かを判断し(ステップ100、以下ステップをSと略記する)、アクセス要求があれば(S100:YES)、その要求に応じたディスクアレイアクセス処理(書き込みまたは読み出し)を実行する(S110)。ホスト装置からのアクセス要求がなかった場合(S100:NO)またはS110の実行後に、CPU30は、各ドライブ制御装置40に接続されているディスク装置50の台数を取得して、ドライブ列の増設があったか否かを判断する(S120)。もし、ドライブ列の増設があれば(S120:YES)、CPU30は領域併合処理を起動してS100に戻る。なお、CPU30は、この領域併合処理をディスクアレイメイン処理と並列に実行することができる。また、ドライブ列の増設がなければ(S120:NO)、そのままS100に戻る。
【0037】
図4に示すように、CPU30は、領域併合処理を開始すると、まず増設されたドライブ列(図1に示される例ではドライブ列3〜5)の合計の記憶容量に対応する新たな論理記憶領域(新領域)を設定する(S200)。この新領域の設定では、新領域の先頭論理ブロックアドレスを併合後の論理ブロックアドレスの末尾+1とし、論理ブロック数を増設される論理ブロックの数として、論理ブロック→物理ブロック変換テーブルが作成される。なお、論理ブロックのサイズは予め設定されているから、増設されたドライブ列3〜5の記憶容量が判れば、増設される論理ブロックの数を決定できる。また、この増設される論理ブロック数と既設のドライブ列0〜2の論理ブロック数の和が併合後の論理ブロック数になる。CPU30は、このようにして新領域の「論理ブロック→物理ブロック変換テーブル」が作成されると、既設分のドライブ列0〜2の論理記憶領域(旧領域)の「論理ブロック→物理ブロック変換テーブル」と合わせて、図5(a)に示される構造の論理ブロック→物理ブロック変換テーブル」としてRAM10に記憶させる。図5(a)では、論理ブロック番号0〜8が既設分(旧領域)、論理ブロック番号18〜26が増設分(新領域)である。
【0038】
次に、CPU30は、旧領域と新領域とを併合するための論理記憶領域(併合領域)を設定する(S210)。設定時の併合領域の先頭論理ブロックアドレスは新領域の先頭論理ブロックアドレス(図5(a)の例では論理ブロック番号18)であり、論理ブロック数は0である。この併合領域が設定された際の状態を、図6(a)、(イ)に示す。
【0039】
続いて、CPU30は、この領域併合処理が終了するまで(併合完了まで)、ディスクアレイ装置6に新たなファイルの書き込みを禁じるための処理を行う(S220)。後述するように、この領域併合処理においては未使用の論理ブロック(当然ながらその論理ブロックに割り当てられている物理ブロックも未使用)の存在が不可欠である。したがって、S220の処理(書き込み禁止)により未使用の論理ブロックが無くなってしまうことを防止している。
【0040】
次に、CPU30は、旧領域の末尾部分に有効データが存在するか否かを判断する(S230)。図5(a)に示される状態では論理ブロック番号8が末尾となっている。なお、この末尾部分は、以下の処理が進むに従って変更される。また、末尾部分という場合、必ずしも末尾の1ブロックだけを指しているわけではない。
【0041】
旧領域の末尾部分に有効データがあれば(S230:YES)、併合領域に未使用の論理ブロックがあるか否かを判断する(S240)。そして、併合領域に未使用の論理ブロックがあれば(S240:YES)、旧領域の末尾部分のデータを併合領域の未使用の論理ブロックに移動する。具体的には、CPU30は、各ドライブ制御装置40に指示して、旧領域の末尾部分の論理ブロックに割り当てられている物理ブロックのデータを併合領域の未使用の論理ブロックに割り当てられている物理ブロックに移動させる。
【0042】
また、併合領域に未使用の論理ブロックがなければ(S240:NO)、CPU30は、旧領域の末尾部分のデータを新領域の先頭方向にある空きの論理ブロックへ移動する(S260)。具体的には、CPU30は、各ドライブ制御装置40に指示して、旧領域の末尾部分の論理ブロックに割り当てられている物理ブロックのデータを新領域の先頭方向にある未使用の論理ブロックに割り当てられている物理ブロックに移動させる。ここで、先頭方向とは、論理ブロックアドレスが小さい側ということであり、空きの論理ブロックが複数あればその中で論理ブロックアドレスが最小のものという意味である。
【0043】
なお、この領域併合処理が起動された直後(ドライブ列が増設された直後)では、併合領域は「空」(S210参照)で、未使用の論理ブロックもないから、S240で否定判断となり、S260が実行されることになる。S250またはS260の処理後またはS230で否定判断の場合には、CPU30は、新領域の末尾部分に有効データが存在するか否かを判断する(S270)。新領域の末尾部分に有効データが存在すれば(S270:YES)、CPU30は、その有効データを併合領域へ移動してから(S280)、S290に進む。また、新領域の末尾部分に有効データが存在しなければ(S270:NO)、CPU30は、S280を実行することなく、S290に進む。なお、この領域併合処理が起動された直後(ドライブ列が増設された直後)では、増設分のドライブ列には有効データは存在しないはずであるから、S270で否定判断となり、S280は実行されない。
【0044】
S230〜S260の処理により旧領域の末尾部分の論理ブロック(正確にはこの論理ブロックに割り当てられている物理ブロック)には有効データは存在しないからこの論理ブロックを旧領域から切り離しても問題はない。そこで、S290では、CPU30は、旧領域の末尾部分の論理ブロックを切り離し、旧領域のブロック数を切り離したブロック数分減算する。
【0045】
続いて、CPU30は、新領域の末尾部分を切り離し、新領域の論理ブロック数を切り離したブロック数分減算する(S300)。S270〜S280の処理により新領域の末尾部分の論理ブロック(正確にはこの論理ブロックに割り当てられている物理ブロック)には有効データは存在しないからこの論理ブロックを新領域から切り離しても問題はない。
【0046】
次にCPU30は、S290およびS300において切り離された新旧領域の末尾部分を併合領域の先頭側に結合して、併合領域の先頭論理ブロックアドレスを結合したブロック数分減算し、併合領域の論理ブロック数を結合したブロック数分加算して、「論理ブロック→物理ブロック変換テーブル」を更新する(S310)。S290で旧領域の論理ブロック番号8番であった論理ブロックが切り離されて、S300では新領域の論理ブロック番号26番であった論理ブロックが切り離されたとして、このS310においては、論理ブロックが2つ結合されるから、併合領域の先頭論理ブロックアドレスは、18(S210で設定)−2=16、併合領域の論理ブロック数は0(S210で設定)+2=2となる。
【0047】
次に、CPU30は、例えば併合領域の末尾論理ブロックアドレスに基づいて、新旧領域にあった全ての論理ブロックが併合領域に結合されたか否かを判断し(S320)、否定判断であればS230に回帰し、肯定判断であればこの領域併合処理を終了する。
【0048】
S230〜S310の処理を何回か実行すると、「論理ブロック→物理ブロック変換テーブル」は図5(b)に例示されるようになり、旧領域、新領域および併合領域の状態は、図6(b)、(ロ)に示すようになっている。さらにS230〜S310の処理が繰り返されて併合完了直前となると「論理ブロック→物理ブロック変換テーブル」は図5(c)に例示されるようになり、旧領域、新領域および併合領域の状態は、図6(c)、(ハ)に示すようになっている。そして、併合が完了した際には、「論理ブロック→物理ブロック変換テーブル」は図5(d)に例示されるようになり、図6(d)、(ニ)に示すように、旧領域および新領域は消滅し(厳密には空領域となり)併合領域のみが存在している。
【0049】
以上のように、本具体例のディスクアレイ装置6では、ドライブ列の増設があると、CPU30がこれを認識して領域併合処理を起動する。この領域併合処理においては、旧領域の末尾部分に有効データがなければ、そのまま末尾部分を切り離し、旧領域の末尾部分に有効データがあれば、そのデータを併合領域または新領域に移動させることによって、この末尾部分から有効データを無くしてから、その末尾部分を切り離す。同様に、新領域の末尾部分に有効データがなければ、そのまま末尾部分を切り離し、新領域の末尾部分に有効データがあれば、そのデータを併合領域に移動させることによって、この末尾部分から有効データを無くしてから、その末尾部分を切り離す。そして、切り離された新旧領域の末尾部分を併合領域の先頭側に結合する。こうした処理を繰り返すことによって、新旧2つの論理記憶領域を併合している。この併合後の論理記憶領域は、既設のドライブ列0〜2および増設されたドライブ列3〜5のすべてを共通に管理する論理記憶領域となるから、ドライブ列の増設によってストライピングの利点が損なわれることはない。また、既設のドライブ列に蓄積されていたデータを他のディスクアレイ装置に移転させるわけではないから、このディスクアレイ装置6からの読み出しは可能であり、稼働を中断させる必要はない。
(変形例)
上述の例はディスクアレイ装置6の稼働中にドライブ列の増設を認識して、領域併合処理を起動する例であるが、この処理をシステムの起動時(正確には再起動時)に実行させる構成も可能である。図7にそのための処理の一例を示す。
【0050】
図7に示すように、ディスクアレイ装置6が起動された直後のディスクアレイ初期化処理において、CPU30は、ドライブ列の増設があったか否かを判断し(S400)、ドライブ列の増設があれば(S400:YES)、領域併合処理を起動する(S410)。
【0051】
このような構成とすれば、例えば定期点検や何らかのトラブルでディスクアレイ装置6を停止させた際などにドライブ列を増設したときには、再起動した直後ににその増設に対処できる。また、具体例の構成(稼働中にドライブ列の増設を認識して領域併合処理を起動する構成)と、この変形例の構成とを併せ持つ構成とすれば、ドライブ列の増設に一層適切に対処できる。
【0052】
以上、具体例に従って、本発明の実施の形態について説明したが、本発明はこのような具体例に限定されるものではなく、本発明の要旨を逸脱しない範囲でさまざまに実施できることは言うまでもない。例えば、具体例ではディスクアレイメイン処理でドライブ列の増設の有無を判断しているが、ドライブ列の増設の有無を判断して、増設があれば領域併合処理を起動するウォッチ処理を一定の周期、例えば1時間周期で実行する構成や割り込み信号が有る毎にウォッチ処理を実行する構成としてもよい。
【0053】
【発明の効果】
以上説明したように、請求項1記載のディスクアレイにおける論理記憶領域統合方法によれば、ディスクアレイにおいてディスク装置が増設された際に、既設分に対応する論理記憶領域と増設分に対応する論理記憶領域とを併合して、統合された論理記憶領域(併合論理記憶領域)にすることができる。
【0054】
この統合された論理記憶領域は、既設のディスク装置および増設されたディスク装置のすべてを共通に管理する論理記憶領域となるから、ディスク装置の増設によってストライピングの利点が損なわれることはない。また、既設のディスク装置に蓄積されていたデータを他のディスクアレイに移転させるわけではないから、このディスクアレイからの読み出しは可能であり、稼働を中断させる必要はない。
【0055】
また請求項2記載の構成とすれば、既設のディスク装置が満杯あるいは満杯に近くても、請求項1記載の方法を実施できる。請求項3記載のディスクアレイ装置は、請求項1記載の方法を実行するのに好適である。
【0056】
請求項4のディスクアレイ装置は、請求項2記載の方法を実行するのに好適である。さらに、請求項5記載の構成とすれば、増設検知手段によって、ディスクアレイ装置の稼働中におけるドライブ列の増設を検出することができるから、外部から特別な操作をしたり、あるいはディスク装置の増設をディスクアレイ装置に認識させるためにシステムをリセットする必要もない。
【図面の簡単な説明】
【図1】 具体例のディスクアレイ装置の構成を説明するブロック図である。
【図2】 具体例のディスクアレイ装置のCPUが構築する論理ブロック→物理ブロック変換テーブルの一例の説明図である。
【図3】 具体例のディスクアレイ装置のCPUが実行するディスクアレイメイン処理のフローチャートである。
【図4】 具体例のディスクアレイ装置のCPUが実行する領域併合処理のフローチャートである。
【図5】 具体例のディスクアレイ装置における領域併合処理での論理ブロック→物理ブロック変換テーブルの変遷の説明図であり、図5(a)は併合開始前、図5(b)は併合開始直後、図5(c)は併合完了直前、図5(d)は併合完了直後の論理ブロック→物理ブロック変換テーブルの説明図である。
【図6】 具体例のディスクアレイ装置における各領域の変遷の説明図であり、図6(a)は併合開始前、図6(b)は併合開始直後、図6(c)は併合完了直前、図6(d)は併合完了直後における各領域の関係の説明図、図6(イ)は併合開始前、図6(ロ)は併合開始直後、図6(ハ)は併合完了直前、図6(ニ)は併合完了直後における論理ブロックアドレスの説明図である。
【図7】 変形例のディスクアレイ初期化処理のフローチャートである。
【図8】 ストライピングの説明図である。
【符号の説明】
6・・・ディスクアレイ装置、8・・・アレイコントローラ、10・・・RAM、20・・・ROM、30・・・CPU(論理記憶領域設定手段、ブロック設定手段、割当手段、領域併合手段、データ移動手段、併合制御手段、ブロック解放手段、増設検知手段)、35・・・インタフェース、40・・・ドライブ制御装置(ドライブ制御手段、データ移動手段、ブロック解放手段)、50・・・ディスク装置、55・・・バスライン。
Claims (5)
- データを記憶するディスク装置1台以上によって構成されるドライブ列を複数と、論理記憶領域を設定する論理記憶領域設定手段と、該論理記憶領域を複数の論理ブロックに分割するブロック設定手段と、各論理ブロックに前記ドライブ列の物理ブロックを割り当てる際に前記論理記憶領域において互いに隣接する前記論理ブロックにはそれぞれ別の前記ドライブ列の物理ブロックを割り当てる割当手段と、前記複数のドライブ列を並列に動作させるドライブ制御手段とを備えるディスクアレイにおいて、ドライブ列が増設された際に、増設分のドライブ列の構成が既設のドライブ列の構成と同じであることを前提として、既設のドライブ列に対応する論理記憶領域と増設分のドライブ列に対応する論理記憶領域とを統合するための論理記憶領域統合方法であって、
前記ドライブ列が増設されると、前記既設分のドライブ列に対応する前記論理記憶領域を第1の論理記憶領域とし、該増設分のドライブ列に応じた第2の論理記憶領域と該第2の論理記憶領域とは別の第3の論理記憶領域を設定し、該第2の論理記憶領域を複数の論理ブロックに分割して、論理ブロック番号を前記第1の論理記憶領域と前記第2の論理記憶領域とで異なるように割り振ってから、
該第1および第2の論理記憶領域の未使用の論理ブロックをそれぞれが属していた論理記憶領域から分離させ、該分離させた論理ブロックを前記第3の論理記憶領域に属する論理ブロックとする併合ステップと、
前記第1および第2の論理記憶領域の論理ブロックに割り当てられている前記物理ブロックのデータを前記第3の論理記憶領域の論理ブロックに割り当てられた前記物理ブロックに移動させて該論理ブロックを前記未使用の論理ブロックとするデータ移動ステップとを、
前記第1および第2の論理記憶領域に属していた前記論理ブロックがすべて前記第3の論理記憶領域に属するまで繰り返し実行し、前記第1および第2の論理記憶領域に属していた前記論理ブロックを前記第3の論理記憶領域に併合する毎に前記第1および第2の論理記憶領域の論理ブロック数を前記分離させたブロック数分減算し、前記第3の論理記憶領域の論理ブロック数を該併合されたブロック数分加算することを特徴とするディスクアレイにおける論理記憶領域統合方法。 - 請求項1記載のディスクアレイにおける論理記憶領域統合方法において、
前記併合ステップを実行する前に前記第1の論理記憶領域に未使用の論理ブロックが存在しないときには、該第1の論理記憶領域のいずれかの論理ブロックに割り当てられている前記物理ブロックのデータを前記第2の論理記憶領域の未使用の論理ブロックに割り当てられている前記物理ブロックに移動させるブロック解放ステップを実行することを特徴とするディスクアレイにおける論理記憶領域統合方法。 - データを記憶するディスク装置1台以上によって構成されるドライブ列を複数と、論理記憶領域を設定する論理記憶領域設定手段と、該論理記憶領域を複数の論理ブロックに分割するブロック設定手段と、各論理ブロックに前記ドライブ列の物理ブロックを割り当てる際に前記論理記憶領域において互いに隣接する前記論理ブロックにはそれぞれ別の前記ドライブ列の物理ブロックを割り当てる割当手段と、前記複数のドライブ列を並列に動作させるドライブ制御手段とを備えるディスクアレイ装置において、
増設分のドライブ列の構成が既設のドライブ列の構成と同じである前記ドライブ列が増設されると、前記既設分のドライブ列に対応する前記論理記憶領域を第1の論理記憶領域とし、前記論理領域設定手段は該増設分のドライブ列に応じた第2の論理記憶領域と該第2の論理記憶領域とは別の第3の論理記憶領域を設定し、
前記ブロック設定手段は該第2の論理記憶領域を複数の論理ブロックに分割して、論理ブロック番号を前記第1の論理記憶領域と前記第2の論理記憶領域とで異なるように割り振る構成であり、
該第1および第2の論理記憶領域の未使用の論理ブロックをそれぞれが属していた論理記憶領域から分離させ、該分離させた論理ブロックを前記第3の論理記憶領域に属する論理ブロックとする領域併合手段と、
前記第1および第2の論理記憶領域の論理ブロックに割り当てられている前記物理ブロックのデータを前記第3の論理記憶領域の論理ブロックに割り当てられた前記物理ブロックに移動させて該論理ブロックを前記未使用の論理ブロックとするデータ移動手段と、
前記第1および第2の論理記憶領域に属していた前記論理ブロックがすべて前記第3の論理記憶領域に属するまで前記領域併合手段とデータ移動手段とを作動させ、前記第1および第2の論理記憶領域に属していた前記論理ブロックが前記第3の論理記憶領域に組み込まれる毎に前記第1および第2の論理記憶領域の論理ブロック数を前記分離させたブロック数分減算し、前記第3の論理記憶領域の論理ブロック数を該組み込んだブロック数分加算する併合制御手段とを設けた
ことを特徴とするディスクアレイ装置。 - 請求項3記載のディスクアレイ装置において、前記第1の論理記憶領域に未使用の論理ブロックが存在しないときには、該第1の論理記憶領域のいずれかの論理ブロックに割り当てられている前記物理ブロックのデータを前記第2の論理記憶領域の未使用の論理ブロックに割り当てられている前記物理ブロックに移動させるブロック解放手段を設けたことを特徴とするディスクアレイ装置。
- 請求項3または4記載のディスクアレイ装置において、
該ディスクアレイ装置の稼働中における前記ドライブ列の増設を検出する増設検知手段を設けたことを特徴とするディスクアレイ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21753396A JP3748631B2 (ja) | 1996-08-19 | 1996-08-19 | ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21753396A JP3748631B2 (ja) | 1996-08-19 | 1996-08-19 | ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1063441A JPH1063441A (ja) | 1998-03-06 |
JP3748631B2 true JP3748631B2 (ja) | 2006-02-22 |
Family
ID=16705749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21753396A Expired - Fee Related JP3748631B2 (ja) | 1996-08-19 | 1996-08-19 | ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3748631B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099391A (ja) * | 2000-09-21 | 2002-04-05 | Toshiba Corp | ディスク制御システムおよびディスクアレイ構成方法 |
US6546457B1 (en) * | 2000-09-29 | 2003-04-08 | Emc Corporation | Method and apparatus for reconfiguring striped logical devices in a disk array storage |
JP4236590B2 (ja) | 2002-03-13 | 2009-03-11 | 富士通株式会社 | Raid装置の制御装置 |
US7404036B2 (en) * | 2005-11-23 | 2008-07-22 | International Business Machines Corporation | Rebalancing of striped disk data |
JP4949176B2 (ja) | 2007-09-10 | 2012-06-06 | ソニー株式会社 | 情報処理装置、記録方法およびコンピュータプログラム |
US10678470B2 (en) * | 2016-04-05 | 2020-06-09 | Hitachi, Ltd. | Computer system,control method for physical storage device,and recording medium |
-
1996
- 1996-08-19 JP JP21753396A patent/JP3748631B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1063441A (ja) | 1998-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4701088B2 (ja) | ディスク装置のトラック割り当て方法 | |
US7647470B2 (en) | Memory device and controlling method for elongating the life of nonvolatile memory | |
US20050231765A1 (en) | Information recording medium, data processing apparatus and data processing method | |
US20070150647A1 (en) | Storage apparatus using non-volatile memory as cache and method of operating the same | |
US20060271754A1 (en) | Storage system | |
US20110060864A1 (en) | Controller and data storage device | |
JP5141402B2 (ja) | ストレージシステム,コピー制御方法およびコピー制御装置 | |
JPH07104817B2 (ja) | データレコード転送方法 | |
JPH11191267A (ja) | 圧縮データ・レコードの格納のためにディスク記憶空間を割り振るための方法および記憶媒体 | |
CN113296880A (zh) | 基于容器的应用管理方法和装置 | |
JP4225206B2 (ja) | 記憶装置の複製データ格納システムと複製データ格納プログラム | |
JP3748631B2 (ja) | ディスクアレイにおける論理記憶領域統合方法およびディスクアレイ装置 | |
CN116466879B (zh) | 一种cxl内存模组、内存数据的置换方法及计算机系统 | |
US20090094299A1 (en) | Apparatus and method for defragmenting files on a hydrid hard disk | |
WO2011121870A1 (ja) | データ記録装置、及びデータ記録方法 | |
JP4461089B2 (ja) | ストレージ制御装置およびストレージ制御方法 | |
CN101894077A (zh) | 一种数据存储方法及系统 | |
JP2002014776A (ja) | ディスク制御システムおよびデータ再配置方法 | |
JP2008198221A (ja) | 記憶装置の容量自動拡張方法 | |
JP2006172100A (ja) | オペレーティングシステムの高速切替え方式及びその方法 | |
JP4585052B2 (ja) | データ記録システム | |
US6209057B1 (en) | Storage device having data buffer | |
KR20060012793A (ko) | 파일의 효율적인 데이터 관리를 위한 방법 및 장치 | |
JPH09223049A (ja) | ディスクアレイ装置 | |
JPH10254643A (ja) | 記憶装置システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050926 |
|
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: 20051108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051129 |
|
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: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121209 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131209 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |