(58)【調査した分野】(Int.Cl.,DB名)
物理ディスクを用いて構築された論理ディスクを再構築する場合に、前記物理ディスクの記憶領域のうち再構築前の論理ディスクの未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスクのアドレスと再構築後の論理ディスクのアドレスとの対応付けを決定する論理ディスク構築部と、
前記論理ディスク構築部が論理ディスクを再構築する場合に、再構築前のデータが格納されている領域を示す情報を記憶するデータ格納領域情報記憶部と、
を備えるストレージ管理装置。
再構築前の前記論理ディスクでは、物理ディスクのアドレスと論理ディスクのアドレスとの対応付けについて、物理ディスクのアドレスのうち小さいアドレスほど論理ディスクのアドレスのうち小さいアドレスに対応付けられており、
前記論理ディスク構築部は、再構築後の論理ディスクのアドレスと物理ディスクのアドレスとの対応付けについて、前記物理ディスクの記憶領域のうち再構築前の論理ディスクの未使用領域に割り当てられていた領域のアドレスのうち大きいアドレスほど、論理ディスクのアドレスのうち小さいアドレスに対応付ける、
請求項1に記載のストレージ管理装置。
前記論理ディスク構築部は、論理ディスクの複数回目の再構築の場合に、前記物理ディスクの記憶領域のうち、当該複数回目の再構築以前に構築された何れの論理ディスクでも未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスクのアドレスと当該複数回目の再構築後の論理ディスクのアドレスとの対応付けを決定する、
請求項1または請求項2に記載のストレージ管理装置。
前記物理ディスクの記憶領域のうち、再構築前の論理ディスクの未使用領域に割り当てられていた領域、かつ、再構築後の論理ディスクの未使用領域に割り当てられている領域の容量が所定の閾値以下になった場合に警報を出力する警報出力部をさらに備える、
請求項1から3の何れか一項に記載のストレージ管理装置。
物理ディスクを用いて構築された論理ディスクを再構築する場合に、前記物理ディスクの記憶領域のうち再構築前の論理ディスクの未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスクのアドレスと再構築後の論理ディスクのアドレスとの対応付けを決定する工程と、
再構築前のデータが格納されている領域を示す情報を記憶する工程と、
を含むストレージ管理方法。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係るディスクアレイ装置の構成例を示す概略ブロック図である。
図1に示す構成で、ディスクアレイ装置10は、ディスクアレイコントローラ装置20と、第1物理ディスク41と、第2物理ディスク42と、第3物理ディスク43とを備える。第1物理ディスク41と、第2物理ディスク42と、第3物理ディスク43とを総称して、物理ディスク40と表記する。
【0014】
ディスクアレイコントローラ装置20は、プロセッサ部21と、復旧指示回路22と、通信部28と、警報出力部29とを備える。復旧指示回路22は、管理領域バックアップ23と、進捗メータ24と、容量メータ25と、アドレス変換テーブル26と、RAID構成ジャーナル27とを記憶する機能を有する。
また、ディスクアレイコントローラ装置20は、上位装置90と通信を行う。上位装置90は、バックアップ装置60とも通信を行う。ディスクアレイ装置10と、バックアップ装置60と、上位装置90との組み合わせを、情報処理システム1と称する。
【0015】
以下では、ディスクアレイ装置10が、RAID(Redundant Array of Inexpensive Disk drives)のストレージとして機能する場合を例に説明する。RAIDとは、複数のディスク(物理ディスク)を組み合わせ、論理的に1つの仮想的なディスク(論理ディスク)として使用するための技術である。RAIDは、例えば、ストレージの信頼性および性能を高めることを目的として用いられる。RAIDでは構成によりRAIDレベルが定義される。例えば、RAID1、RAID5、および、RAID6などが使用されている。
【0016】
ここでいう物理ディスクは、例えば、HDD(Hard Disk Drive)またはSDD(Solid Disk Drive)等のストレージ装置である。
ここでいう論理ディスクは、物理ディスクを論理的に分割または結合して、OS(Operating System)から見て1つのストレージとして振舞うように構成したものである。RAIDでは特に、複数の物理ディスクを束ねて1つの論理ディスクを構築する。従って、この場合、RAIDで構成された仮想的なディスクが論理ディスクと呼ばれる。
【0017】
図1の例では、第1物理ディスク41と、第2物理ディスク42と、第3物理ディスク43とを束ねて論理ディスク50が構築されている。論理ディスク50は、上位装置90から見て1つのストレージとして振舞う。
但し、ディスクアレイ装置10が備える物理ディスク40の個数は3つに限定されない。ディスクアレイ装置10が2つ以上の物理ディスク40を備えていればRAIDを実行可能である。
【0018】
さらには、ディスクアレイ装置10が備える物理ディスク40の個数が1つであってもよい。1つの物理ディスク40を用いて1つの論理ディスク50が構築されていてもよいし、1つの物理ディスク40の記憶領域が複数に分割され、分割された記憶領域毎に論理ディスク50が構築されていてもよい。
ディスクアレイ装置10は、ストレージシステムの例に該当する。ここでいうディスクアレイ装置は、物理ディスクを1つ以上備える装置である。ここでいうストレージシステムは、記憶領域を提供するシステムである。
【0019】
RAIDには、ソフトウェアでRAIDを実行するソフトウェアRAIDと、ハードウェアでRAIDを実行するハードウェアRAIDとがある。以下では、ディスクアレイ装置10が、ハードウェアRAIDにてRAIDを実行する場合を例に説明する。但し、ディスクアレイ装置10が、ソフトウェアRAIDにてRAIDを実行するようにしてもよい。
【0020】
物理ディスクを制御してハードウェアRAIDを実行する機構は、ディスクアレイコントローラ、または、RAIDコントローラなどと呼称される。
図1の例では、ディスクアレイコントローラ装置20が、これに該当する。ディスクアレイコントローラ装置20は、ストレージ管理装置の例に該当する。ここでいうストレージ管理装置は、物理ディスクを管理する装置である。特に、ストレージ管理装置は、物理ディスクを用いて論理ディスクを構築する。
【0021】
ディスクアレイコントローラは配下の論理ディスクに対しては、OS、OSが作成したパーティション、マスターブートレコード(Master Boot Record;MBR)などの論理的な要素を意識することはなく、論理ディスクの先頭から機械的にRAID構成に従って読み書きを行う。このことからすれば、理論的には、一度論理ディスクが削除された場合でも削除前と同じ物理ディスクを用いて削除前と同じ構成で論理ディスクを再構築すれば、論理ディスク内のデータにアクセスできると考えられる。
【0022】
しかし、ディスクアレイコントローラには、論理ディスクの削除時に先頭部分のデータを消去するもの、および、論理ディスクの構築時の設定によってはデータの一部に対して初期化処理を実行するものがある。ユーザの誤操作によってディスクアレイコントローラが、論理ディスクを削除して先頭部分のデータを消去した場合、あるいは、論理ディスクの再構築時に初期化処理を行った場合、MBR等の管理領域のデータを読み出せなくなる可能性がある。管理領域のデータを読み出せない場合、論理ディスク内にデータが残っていてもそのデータにアクセスできなくなり、データの復旧が困難になる。
また、論理ディスクの再構築前のデータの格納領域に対して、再構築後に別のデータが書き込まれると、データの書き込みによって再構築前のデータは失われてしまう。
【0023】
そこで、ディスクアレイコントローラ装置20では、復旧指示回路22が、論理ディスク50の管理領域のデータを記憶しておく。特に、ディスクアレイコントローラ装置20が論理ディスク50の再構築を行う際、復旧指示回路22は、再構築前の論理ディスク50の管理領域のデータを記憶しておく。これによって、論理ディスク50から再構築前の管理領域のデータを読み出せなくなった場合でも、復旧指示回路22が記憶しているデータを用いることで、再構築前の論理ディスク50内のデータにアクセス可能である。
復旧指示回路22は、データ格納領域情報記憶部の例に該当する。
【0024】
また、ディスクアレイコントローラ装置20では、プロセッサ部21が、論理ディスク50を再構築する場合に、物理ディスク40の記憶領域のうち再構築前の論理ディスク50の未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスク40のアドレスと再構築後の論理ディスク50のアドレスとの対応付けを決定する。これによって、再構築後の論理ディスク50にデータが書き込まれても、再構築前のデータに再構築後のデータが上書きされることを回避できる。
【0025】
例えば、プロセッサ部21が、物理ディスク40の記憶領域のうち再構築前の論理ディスク50の未使用領域に割り当てられていた領域を全て使用した後、再構築前の論理ディスク50でデータが書き込まれていた領域を使用するように、論理ディスク50のアドレスとの対応付けを決定するようにしてもよい。この場合、再構築後の論理ディスク50にデータが書き込まれても、再構築前の論理ディスク50の未使用領域の容量分までは、再構築前のデータに再構築後のデータが上書きされることを回避できる。
プロセッサ部21は、論理ディスク構築部の例に該当する。
【0026】
プロセッサ部21は、RAID制御を行うなど、物理ディスク40の各々を管理する。特に、プロセッサ部21は、物理ディスク40を用いて論理ディスク50を構築する。上位装置90から論理ディスク50へのデータの読み出し要求または書き込み要求を受けた場合、プロセッサ部21は、要求に示される論理アドレスを物理アドレスに変換してデータの読み出しまたは書き込みを実行する。ここでいう論理アドレスは、論理ディスク50のアドレスである。物理アドレスは、物理ディスク40の何れかを特定する情報と、特定された物理ディスク40のアドレスとの組み合わせである。
【0027】
また、プロセッサ部21は、上位装置90からの要求に応じて論理ディスク50の再構築を行う。再構築前と同じ物理ディスク40を用いて論理ディスク50を再構築する場合、プロセッサ部21は、物理ディスク40の記憶領域のうち再構築前の論理ディスク50の未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスク40のアドレスと再構築後の論理ディスク50のアドレスとの対応付けを決定する。
物理ディスク40が新たに追加され、論理ディスク50の未使用領域に組み込まれる場合も、プロセッサ部21が、上記と同様にアドレスの対応付けを決定するようにしてもよい。
プロセッサ部21は、プロセッサを用いて構成されている。プロセッサ部21は、プログラムを読み込み、読み込んだプログラムに従って各種処理を実行する。
【0028】
復旧指示回路22は、論理ディスク50のデータの復旧を支援する。特に、復旧指示回路22は、論理ディスク50の管理情報、および、管理情報の履歴を記憶する記憶部として機能する。ここでいうデータの復旧は、故障又は論理ディスク50の再構築など何らかの理由で論理ディスク50に書き込まれたデータの読み出しが困難になった場合に、そのデータの読み出しを可能にすることである。ここでいう管理情報は、物理ディスク40または論理ディスク50にアクセスするための情報である。
【0029】
特に、復旧指示回路22は、管理領域バックアップ23、進捗メータ24、容量メータ25、アドレス変換テーブル26、および、RAID構成ジャーナル27の各種情報を記憶する。
管理領域バックアップ23は、論理ディスク50が管理情報を記憶している管理領域およびDDF領域のバックアップデータである。すなわち、管理領域バックアップ23は、論理ディスク50の管理情報のコピーである。
【0030】
進捗メータ24は、論理ディスク50にデータが書き込まれた最後尾の論理アドレスを示す情報である。進捗メータ24は、論理ディスク50における使用領域(データが書き込まれた領域)と未使用領域との(未だデータが書き込まれていない領域)との境界を示す。
容量メータ25は、論理ディスク50の記憶容量のうちどれだけの容量が使用されているかを示す情報である。すなわち、容量メータ25は、論理ディスク50における使用領域の容量を示す。
【0031】
アドレス変換テーブル26は、上述した、物理ディスク40の記憶領域のうち再構築前の論理ディスク50の未使用領域に割り当てられていた領域を優先的に使用するような、物理ディスク40のアドレスと再構築後の論理ディスク50のアドレスとの対応付けを実現するための、アドレス変換テーブルである。
例えば、論理アドレスと物理アドレスとの対応付け固定としておき、アドレス変換テーブル26が、実際の論理アドレスと擬似的な論理アドレスとの対応付けを示すようにしてもよい。例えば後述するように、アドレス変換テーブル26が、実際の論理アドレスとは逆向きの擬似的な論理アドレスを示すようにしてもよい。
あるいは、プロセッサ部21が、論理ディスク50の再構築の前後で論理アドレスと物理アドレスとの対応付けを変更し、アドレス変換テーブル26が、論理ディスク50の再構築後の、論理アドレスと物理アドレスとの対応付けを示すようにしてもよい。
【0032】
RAID構成ジャーナル27は、論理ディスク50の構築における物理ディスク40の構成の履歴情報である。特に、RAID構成ジャーナル27は、論理ディスク50が再構築された場合に、再構築前の状態におけるアドレス変換テーブル26の情報、および、データ(特に、ユーザデータ)が書き込まれている領域を示す情報を示す。ここでいうユーザデータは、上位装置90からのアクセス要求(書き込み要求または読み出し要求)の対象となるデータである。ユーザデータが書き込まれている領域をユーザデータ領域と称する。
論理ディスク50が再構築された後であっても、再構築前のデータが上書き等によって失われていなければ、RAID構成ジャーナル27を参照して再構築前のデータにアクセス可能である。
【0033】
通信部28は、他の装置と通信を行う。特に通信部28は、上位装置90と通信を行う。
警報出力部29は、プロセッサ部21の制御に従って各種警報を出力する。特に、警報出力部29は、物理ディスク40の記憶領域のうち、再構築前の論理ディスク50の未使用領域に割り当てられていた領域、かつ、再構築後の論理ディスク50の未使用領域に割り当てられている領域の容量が所定の閾値以下になった場合に、再構築前のデータが失われる可能性がある旨の警報を出力する。
【0034】
バックアップ装置60は記憶装置であり、上位装置90の制御に従って、ディスクアレイ装置10が記憶しているデータの一部のバックアップデータを記憶する。
上位装置90は、ディスクアレイ装置10およびバックアップ装置60を外部記憶装置として用いる装置である。上位装置90は、例えばパソコン(Personal Computer;PC)またはワークステーション(Workstation)等のコンピュータであってもよい。
【0035】
次に、
図2〜
図4を参照して、プロセッサ部21が行う、物理ディスク40のアドレスと論理ディスク50のアドレスとの対応付けについて説明する。
図2は、ディスクアレイコントローラ装置20が、論理ディスク50にデータの書き込みを行う際の、論理ディスク50の記憶領域の状態の例を示す図である。後述する論理ディスク50の状態と区別するため、
図2の状態における論理ディスク50を、第1論理ディスク50Aとも称する。
【0036】
第1論理ディスク50Aでは、矢印で示すように、物理ディスク40のアドレスの向きと同じ向きに、第1論理ディスク50Aのアドレスが設定されている。従って、物理ディスク40のアドレスが大きくなるほど、そのアドレスに対応付けられる第1論理ディスク50Aのアドレスも大きくなる。
アドレス変換テーブル26が、上述した擬似的な論理アドレスを示す場合、第1論理ディスク50Aのアドレスを実際の論理アドレスとして用いることができる。
【0037】
第1論理ディスク50Aの記憶領域の末尾には、DDF領域A14が設けられている。第1論理ディスク50Aは、RAIDレベル、第1論理ディスク50A自身の容量、第1論理ディスク50A自身を構成する物理ディスク40等の情報を、DDF領域A14に記憶する。
図2の例では、第1論理ディスク50Aを構成する物理ディスク40は、第1物理ディスク41、第2物理ディスク42、および、第3物理ディスク43である。DDF領域A14は、ディスクアレイコントローラ装置20のプロセッサ部21によって管理される。特に、プロセッサ部21が、DDF領域A14へのデータの書き込みを行う。
【0038】
プロセッサ部21は、マスターブートレコード等を含む管理領域A11の後に、ユーザデータを書き込んでいく。ここでは、ユーザデータが書き込まれた領域を、ユーザデータ領域A12と称する。
第1論理ディスク50Aの記憶領域のうち、管理領域A11、ユーザデータ領域A12およびDDF領域A14以外の領域を、未使用領域A13と称する。
【0039】
プロセッサ部21は、管理領域A11の情報およびDDF領域A14の情報を管理領域バックアップ23に格納し、ユーザデータが書き込まれた最終アドレス(ユーザデータ領域A12の最終アドレス)を、書き込み最後尾論理アドレスD12として進捗メータ24に格納する。また、プロセッサ部21は、ユーザデータ領域A12の容量(ユーザデータが第1論理ディスク50Aの中でどれだけの容量を使用しているか)を容量メータ25に格納する。これらの情報を第1論理ディスク50Aの使用時の情報としてRAID構成ジャーナル27で管理する。
【0040】
図3は、論理ディスク50の削除後に、削除前と同じ物理ディスクが、削除前と同じRAIDレベル、および、削除前と論理ディスク容量の論理ディスク50を構成する場合の、論理ディスク50の記憶領域の状態の例を示す図である。
図3の状態における論理ディスク50を、第2論理ディスク50Bとも称する。
図3は、第1論理ディスク50A(
図2)の削除後の、第2論理ディスク50Bの再構築の例を示している。第2論理ディスク50Bを構成する物理ディスク40は、第1物理ディスク41、第2物理ディスク42、および、第3物理ディスク43である。
【0041】
ここでいう論理ディスク50の削除は、その論理ディスク50を不使用とすることである。論理ディスク50の削除の際、プロセッサ部21が、削除前の管理領域のデータの一部または全部を削除(消去)するようにしてもよい。削除前のユーザデータ領域にアクセスするために必要な情報は、既に復旧指示回路22が記憶しており、削除前のユーザデータ領域へのアクセスに支障は生じない。一方、プロセッサ部21は、削除前のユーザデータ領域に対しては、データの削除または更新は行わず、削除前の状態のままのデータを残す。
【0042】
第2論理ディスク50BのDDF領域を、DDF領域A24と称する。第2論理ディスク50Bは、RAIDレベル、第2論理ディスク50B自身の容量、第2論理ディスク50B自身を構成する物理ディスク40等の情報を、DDF領域A24に記憶する。
図3では、
図2の場合からDDF領域のデータが更新されていることを示すために、DDF領域に
図2の場合の符号(A14)と異なる符号(A24)を付している。
図3のDDF領域A24に対するプロセッサ部21の処理は、
図2のDDF領域A14に対する処理の場合と同様である。
【0043】
第2論理ディスク50Bでは、矢印で示すように、DDF領域A24を除いた領域について、物理ディスク40のアドレスの向きと逆向きに、第2論理ディスク50Bのアドレスが設定されている。従って、物理ディスク40のアドレスが大きくなるほど、そのアドレスに対応付けられる第2論理ディスク50Bのアドレスは小さくなる。
上述したように、第2論理ディスク50Bのアドレスは、擬似的な論理アドレスであってもよい。例えば、
図2に示す第1論理ディスク50Aのアドレスが実際の論理アドレスである場合、復旧指示回路22は、アドレス変換テーブル26として、第1論理ディスク50Aのアドレスと第2論理ディスク50Bのアドレスとの対応付けを示す情報を記憶する。
【0044】
第2論理ディスク50Bのアドレスが擬似的な論理アドレスである場合、ディスクアレイコントローラ装置20は、DDF領域A24については実際の論理アドレスを論理アドレスとして用いる。
あるいは、第2論理ディスク50Bのアドレスが実際の論理アドレスである場合、ディスクアレイコントローラ装置20は、DDF領域A24については、
図2のDDF領域A14に対する第1論理ディスク50Aのアドレスと同様のアドレスを用いる。
これにより、プロセッサ部21は、論理ディスク50の再構築の前後でDDF領域へのアクセス先を変更する必要が無く、常に、論理アドレスの末尾付近にアクセスすればよい。プロセッサ部21がDDF領域にアクセスする処理を再構築の前後で変更する必要がない点で、プロセッサ部21の負荷が軽くて済む。
【0045】
論理ディスク50を再構築したことで、RAIDの構成情報であるDDFは、第1論理ディスク50Aの場合のDDFから更新され新しいものとなるが、DDF領域A24は、ユーザデータへのアクセスには影響しない。そのため、第1管理領域A21および第1ユーザデータ領域A22には、第1論理ディスク50Aのデータが残されている。具体的には、第1管理領域A21には、第1論理ディスク50Aの管理領域A11のデータが残されている。第1ユーザデータ領域A22には、第1論理ディスク50Aのユーザデータ領域A12のデータが残されている。これらの領域のデータは、第1論理ディスク50Aのアドレスに従って書き込まれている。従って、プロセッサ部21は、第1ユーザデータ領域A22にアクセスしてデータを読み出す場合、第1論理ディスク50Aのアドレスを用いてアクセスする。
【0046】
一方、第2管理領域A25および第2ユーザデータ領域A26は、第2論理ディスク50Bのアドレスに従って書き込まれている。従って、プロセッサ部21は、第2ユーザデータ領域A26にアクセスしてデータを読み出す場合、第2論理ディスク50Bのアドレスを用いてアクセスする。
【0047】
プロセッサ部21は、第2論理ディスク50Bにデータの書き込みを行う際、第1論理ディスク50Aのデータを残しておくために、第2論理ディスク50Bの領域からDDF領域A24を除いた領域の末尾側から使用する。そのために、プロセッサ部21は、第2論理ディスク50Bの領域からDDF領域A24を除いた領域の最後尾の論理アドレスが先頭の論理アドレスになるように、アドレス変換テーブル26を用いて擬似的に変換する。これにより、プロセッサ部21は、実際には先頭ではないアドレスを第2論理ディスク50Bの記憶領域の先頭として扱う。
【0048】
プロセッサ部21は、このアドレスを第2書き込み開始論理アドレスD23と設定し、そこから物理的には先頭のアドレスに向かって通常とは逆の方向に書き込みを行っていく。プロセッサ部21は、第2書き込み最後尾論理アドレスD24の情報、第2ユーザデータ領域A26の容量の情報を、それぞれ、進捗メータ24、容量メータ25に保存する。第2書き込み最後尾論理アドレスD24の情報、および、第2ユーザデータ領域A26の容量の情報は、第2論理ディスク50Bの情報としてRAID構成ジャーナル27で管理する。
【0049】
プロセッサ部21は、第2書き込み最後尾論理アドレスD24の情報、および、第2ユーザデータ領域A26の容量の情報を、第1論理ディスク50Aの使用時の情報である第1書き込み最後尾論理アドレスD22の情報、および、第1ユーザデータ領域A22の容量の情報とは別のものとして独立して扱う。特に、プロセッサ部21は、第1書き込み最後尾論理アドレスD22の情報を、第2書き込み最後尾論理アドレスD24に書き換える上書き処理は行わない。また、プロセッサ部21は、第1ユーザデータ領域A22の容量の情報を、第2ユーザデータ領域A26の容量の情報に書き換える上書き処理は行わない。この場合、復旧指示回路22は、第1書き込み最後尾論理アドレスD22の情報、第2書き込み最後尾論理アドレスD24の情報、第1ユーザデータ領域A22の容量の情報、および、第2ユーザデータ領域A26の容量の情報を含む、RAID構成ジャーナル27を記憶する。
【0050】
プロセッサ部21が、第2論理ディスク50Bにデータを書き込んでいくと、次第に未使用領域A23の容量が小さくなっていく。第2書き込み最後尾論理アドレスD24が第1書き込み最後尾論理アドレスD22を超えてしまった場合、第1ユーザデータ領域A22の内容の一部が上書きされて失われてしまう。そこで、プロセッサ部21は、進捗メータ24および容量メータ25の値から論理ドライブ全体の中で現在どこに書き込みを行っているかを把握する。
【0051】
プロセッサ部21は、未使用領域A23の残容量があらかじめ設定された閾値以下になった場合に、警報出力部29を制御して警報を出力させる。警報出力部29は、例えば、論理ディスクの再構築前のユーザデータが失われる可能性がある旨の警報メッセージを、通信部28を介して上位装置90へ送信することで、上位装置90のユーザに注意を促す。
【0052】
警報出力部が、論理ディスクの再構築前のユーザデータが失われる可能性がある旨の警報メッセージを、通信部28を介して上位装置90へ送信し、ユーザが警報メッセージ確認済みを示すユーザ操作を行った場合、プロセッサ部21が、再構築前のデータ領域を未使用領域に組み込むようにしてもよい。
図3の例の場合、プロセッサ部21が、第1管理領域A21および第1ユーザデータ領域A22を未使用領域A23に組み込むようにしてもよい。これにより、未使用領域A23の容量が増加し、プロセッサ部21が、より多くのデータを論理ディスク50に書き込めるようになる。
【0053】
図4は、プロセッサ部21が、論理ディスク50の再構築前のデータにアクセスする場合の、論理ディスク50の記憶領域の状態の例を示す図である。
図4の状態における論理ディスク50を、第3論理ディスク50Cとも称する。
図4は、論理ディスク50の削除後の、第3論理ディスク50Cの再構築の例を示している。第3論理ディスク50Cを構成する物理ディスク40は、第1物理ディスク41、第2物理ディスク42、および、第3物理ディスク43である。
【0054】
第3論理ディスク50CのDDF領域を、DDF領域A35と称する。第3論理ディスク50Cは、RAIDレベル、第3論理ディスク50C自身の容量、第3論理ディスク50C自身を構成する物理ディスク40等の情報を、DDF領域A35に記憶する。
図4のDDF領域A35に対するプロセッサ部21の処理は、
図2のDDF領域A14に対する処理の場合と同様である。
【0055】
第3論理ディスク50Cでは、矢印で示すように、DDF領域A35を除いた領域について、物理ディスク40のアドレスの向きと逆向きに、第3論理ディスク50Cのアドレスが設定されている。従って、物理ディスク40のアドレスが大きくなるほど、そのアドレスに対応付けられる第3論理ディスク50Cのアドレスは小さくなる。
図4では、第3論理ディスク50Cのアドレスが、擬似的な論理アドレスである場合の例を示している。
図4では、再構築前(削除前)の論理ディスク50のアドレスも矢印で示されており、
図2の第1論理ディスク50Aの場合と同様、物理ディスク40のアドレスが大きくなるほど、そのアドレスに対応付けられる第1論理ディスク50Aのアドレスも大きくなる。
【0056】
第1管理領域A31、第1OS領域A32、および、第1ユーザデータ領域A33は、再構築前の論理ディスク50の領域である。これらの領域のデータは、再構築前の論理ディスクのアドレスに従って書き込まれている。従って、プロセッサ部21は、第1ユーザデータ領域A33にアクセスしてデータを読み出す場合、再構築前の論理ディスクのアドレスを用いてアクセスする。
【0057】
一方、第2管理領域A36、第2OS領域A37、および、第2ユーザデータ領域A38は、第3論理ディスク50Cのアドレスに従って書き込まれている。従って、プロセッサ部21は、第2ユーザデータ領域A38にアクセスしてデータを読み出す場合、第3論理ディスク50Cのアドレスを用いてアクセスする。
【0058】
図4では、OSの更新の際に論理ディスク50を再構築する場合の例を示している。上位装置90は、ディスクアレイコントローラ装置20が第1OS領域A32のOSを使用していたときのユーザデータ(第1ユーザデータ領域A33のユーザデータ)を取得し、バックアップ装置60にユーザデータバックアップとして保存している。その後、上位装置90が論理ディスク50の再構築をディスクアレイコントローラ装置20に指示し、ディスクアレイコントローラ装置20は、上位装置90の指示に従って論理ディスク50を再構築している。
【0059】
論理ディスク50の再構築の後、プロセッサ部21は、第2OS領域A37のOSを、プロセッサ部21自身にインストールしている。
また、上位装置90が、バックアップ装置60からユーザデータバックアップを取得して第3論理ディスク50Cにリストアしようとしたところ、ユーザデータバックアップを正常に取得できておらずリストアに失敗している。この場合でも第3論理ディスク50C内の第1ユーザデータ領域A33に、論理ディスク50の再構築前のユーザデータが残されている。そこで、プロセッサ部21は、上位装置90からの指示に従って、第1ユーザデータ領域A33に格納されているユーザデータの読み出しを行う。
【0060】
具体的には、ディスクアレイコントローラ装置20のプロセッサ部21が、上位装置90からの指示に従い、復旧指示回路22内のRAID構成ジャーナル27に保存されている、第1管理領域A31のデータの読み出しを行う。プロセッサ部21は、第1管理領域A31のデータをRAID構成ジャーナル27から読み出すことで、第3論理ディスク50C内のユーザデータが書き込まれていた場所(第1ユーザデータ領域A33)を把握できるようになる。
【0061】
プロセッサ部21は、上位装置90からの指示に従って第1ユーザデータ領域A33に対してアクセスしユーザデータを読み出す。例えば、上位装置90が、このユーザデータを吸い上げ、第3論理ディスク50Cに書き込むよう、ディスクアレイコントローラ装置20に対して書き込み命令を送信する。これにより、論理ディスク50の再構築前のユーザデータを、第3論理ディスク50Cにリストアすることができる。
【0062】
図4では、論理ディスク50がOS領域(第1OS領域A32および第2OS領域A37)にOS(のプログラム)を記憶している場合の例を示しているが、論理ディスクにOS領域が設けられていない場合も、プロセッサ部21は、論理ディスク50の再構築前のデータにアクセス可能である。例えば、
図3の例で上述したように、プロセッサ部21は、論理ディスク50の再構築前の論理アドレス(第1論理ディスク50Aのアドレス)を用いて、論理ディスク50の再構築前のデータ(例えば、第1ユーザデータ領域A22)にアクセスできる。
【0063】
プロセッサ部21が、論理ディスク50の再構築を複数回行う場合、物理ディスク40の記憶領域のうち、再構築前後のいずれの論理ディスク50でも未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスク40のアドレスと当該複数回目の再構築後の論理ディスクのアドレスとの対応付けを決定するようにしてもよい。
例えば、プロセッサ部21が、
図4の状態からさらに論理ディスク50の再構築を行う場合、未使用領域A34に優先的にデータを書き込むように、物理ディスク40のアドレスと再構築後の論理ディスク50のアドレスとの対応付けを決定するようにしてもよい。例えば、プロセッサ部21が、2回目の再構築後の論理アドレスを、
図4に示される再構築前の論理ディスクのアドレスとし、未使用領域A34の先頭(論理アドレスが小さい側)から順にデータを書き込むようにしてもよい。
【0064】
プロセッサ部21が、論理ディスク50の1回目の再構築で、再構築前の論理ディスク50のアドレスをそのまま用いて、再構築前の未使用領域の先頭から順にデータの書き込みを行うようにしてもよい。
例えば、プロセッサ部21が
図2の第1論理ディスク50Aを再構築する場合に、再構築後も第1論理ディスク50Aのアドレスをそのまま用いて、未使用領域A13の先頭から順にデータを書き込んでいくようにしてもよい。
【0065】
一方、
図3の例のように、プロセッサ部21が、再構築後の論理アドレスを再構築前の論理アドレスと逆向きに設定することで、再構築前後の論理アドレスを切り替えて使う場合に容易に対応できる。例えば、プロセッサ部21が、
図3の第2論理ディスク50Bから再構築を行って、論理ディスク50のアドレスを
図2の第1論理ディスクのアドレスにし、第1管理領域A21および第1ユーザデータ領域を復活させる場合を考える。
【0066】
この場合、第1ユーザデータ領域A22の末尾は、未使用領域A23の先頭に接している。これにより、プロセッサ部21がデータの書き込みを行って第1ユーザデータ領域A22の容量が増加しても、第2ユーザデータ領域A26のデータなど、第2論理ディスク50Bのデータに影響しない。従って、プロセッサ部21は、さらに論理ディスク50の再構築を行って、第2論理ディスク50Bを復活させることができる。
【0067】
以上のように、プロセッサ部21は、物理ディスク40を用いて構築された論理ディスク50を再構築する場合に、物理ディスク40の記憶領域のうち再構築前の論理ディスク50の未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスク40のアドレスと再構築後の論理ディスク50のアドレスとの対応付けを決定する。復旧指示回路22は、プロセッサ部21が論理ディスク50を再構築する場合に、再構築前のデータが格納されている領域を示す情報を記憶する。
【0068】
これにより、プロセッサ部21は、論理ディスク50の再構築の後でも、再構築前のデータを取得できる。特に、プロセッサ部21が、物理ディスク40のアドレスと再構築後の論理ディスク50のアドレスとの対応付けを上記のように決定することで、再構築後の論理ディスク50にデータを書き込んでも、再構築前のデータは直ちには失われない。また、復旧指示回路22が、再構築前のデータが格納されている領域を示す情報を記憶しておくことで、プロセッサ部21は、このデータを参照して再構築前のデータが格納されているデータの位置を把握することができ、再構築前のデータを読み出すことができる。
【0069】
このように、ディスクアレイコントローラ装置20によれば、論理ディスク50の削除または再構築時に、管理領域のデータ(論理ディスク50でのデータの位置を知るためのデータ)の一部が削除されてしまった場合や、パーティション情報が失われた場合でも、再構築前のデータを復旧させることができる。また、ディスクアレイコントローラ装置20によれば、論理ディスク50の再構築後に物理ディスク40の領域のうち未使用領域を優先的に使用することで、再構築前の環境に戻すことができる。再構築前の環境に戻す場合、プロセッサ部21は、RAID構成ジャーナル27から過去のアレイ構成を読み出してデータの位置を把握する。
【0070】
また、再構築前の論理ディスク50では、物理ディスク40のアドレスと論理ディスク50のアドレスとの対応付けについて、物理ディスク40のアドレスのうち小さいアドレスほど論理ディスク50のアドレスのうち小さいアドレスに対応付けられている。プロセッサ部21は、再構築後の論理ディスク50のアドレスと物理ディスク40のアドレスとの対応付けについて、物理ディスク40の記憶領域のうち再構築前の論理ディスク50の未使用領域に割り当てられていた領域のアドレスのうち大きいアドレスほど、論理ディスクのアドレスのうち小さいアドレスに対応付ける。
この場合、プロセッサ部21は、再構築後の論理ディスク50では、再構築前の論理ディスクの記憶領域の末尾から順にデータを書き込んでいく。
これにより、プロセッサ部21は、再構築前後の論理アドレスを切り替えて使う場合に容易に対応できる。
【0071】
また、プロセッサ部21は、論理ディスク50の複数回目の再構築の場合に、物理ディスク40の記憶領域のうち、当該複数回目の再構築(直近の再構築)以前に構築された何れの論理ディスク50でも未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスク40のアドレスと当該複数回目の再構築後の論理ディスク50のアドレスとの対応付けを決定する。
これにより、プロセッサ部21が、論理ディスク50(直近の再構築後の論理ディスク50)にデータを書き込んでも、それ以前のいずれの論理ディスク50のデータも、直ちには失われない。この点で、プロセッサ部21が、直近の再構築以前のいずれかの論理ディスク50のデータを読み出せると期待される。
【0072】
また、警報出力部29は、物理ディスク40の記憶領域のうち、再構築前の論理ディスク50の未使用領域に割り当てられていた領域、かつ、再構築後の論理ディスク50の未使用領域に割り当てられている領域の容量が所定の閾値以下になった場合に警報を出力する。
これにより、ディスクアレイ装置10を利用するユーザ(例えば、上位装置90のユーザ)は、再構築前のデータが失われる前に当該データが失われる可能性があることを知ることができ、対策を講じることができる。
【0073】
次に、
図5および
図6を参照して、本発明の実施形態の構成について説明する。
図5は、実施形態に係るストレージ管理装置の構成の例を示す図である。
図5に示すストレージ管理装置110は、論理ディスク構築部111と、データ格納領域情報記憶部112とを備える。
かかる構成で、論理ディスク構築部111は、物理ディスクを用いて構築された論理ディスクを再構築する場合に、物理ディスクの記憶領域のうち再構築前の論理ディスクの未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスクのアドレスと再構築後の論理ディスクのアドレスとの対応付けを決定する。データ格納領域情報記憶部112は、論理ディスク構築部が論理ディスクを再構築する場合に、再構築前のデータが格納されている領域を示す情報を記憶する。
【0074】
これにより、ストレージ管理装置110は、論理ディスクの再構築の後でも、再構築前のデータを取得できる。特に、論理ディスク構築部111が、物理ディスクのアドレスと再構築後の論理ディスクのアドレスとの対応付けを上記のように決定することで、ストレージ管理装置110が再構築後の論理ディスクにデータを書き込んでも、再構築前のデータは直ちには失われない。また、データ格納領域情報記憶部112が、再構築前のデータが格納されている領域を示す情報を記憶しておくことで、ストレージ管理装置110は、このデータを参照して再構築前のデータが格納されているデータの位置を把握することができ、再構築前のデータを読み出すことができる。
【0075】
図6は、実施形態に係るストレージシステムの構成の例を示す図である。
図6に示すストレージシステム120は、物理ディスク121と、ストレージ管理装置122とを備える。ストレージ管理装置122は、論理ディスク構築部123と、データ格納領域情報記憶部124とを備える。
かかる構成で、論理ディスク構築部123は、物理ディスクを用いて構築された論理ディスクを再構築する場合に、物理ディスクの記憶領域のうち再構築前の論理ディスクの未使用領域に割り当てられていた領域を優先的に使用するように、物理ディスクのアドレスと再構築後の論理ディスクのアドレスとの対応付けを決定する。データ格納領域情報記憶部124は、論理ディスク構築部が論理ディスクを再構築する場合に、再構築前のデータが格納されている領域を示す情報を記憶する。
【0076】
これにより、ストレージ管理装置122は、論理ディスクの再構築の後でも、再構築前のデータを取得できる。特に、論理ディスク構築部123が、物理ディスクのアドレスと再構築後の論理ディスクのアドレスとの対応付けを上記のように決定することで、ストレージ管理装置122が再構築後の論理ディスクにデータを書き込んでも、再構築前のデータは直ちには失われない。また、データ格納領域情報記憶部124が、再構築前のデータが格納されている領域を示す情報を記憶しておくことで、ストレージ管理装置122は、このデータを参照して再構築前のデータが格納されているデータの位置を把握することができ、再構築前のデータを読み出すことができる。
【0077】
図7は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図7に示す構成で、コンピュータ500は、CPU510と、主記憶装置520と、補助記憶装置530と、インタフェース540とを備える。
上記のディスクアレイコントローラ装置20、ストレージ管理装置110、および、ストレージ管理装置122のうち何れか1つ以上が、コンピュータ500に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、プログラムを補助記憶装置530から読み出して主記憶装置520に展開し、当該プログラムに従って上記処理を実行する。また、CPU510は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置520に確保する。ストレージ管理装置と他の装置との通信は、インタフェース540が通信機能を有し、CPU510の制御に従って通信を行うことで実行される。
【0078】
ディスクアレイコントローラ装置20がコンピュータ500に実装される場合、プロセッサ部21と、警報出力部29との動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、プログラムを補助記憶装置530から読み出して主記憶装置520に展開し、当該プログラムに従って上記処理を実行する。
また、CPU510は、プログラムに従って、復旧指示回路22に対応する記憶領域を主記憶装置520に確保する。
ディスクアレイコントローラ装置20と上位装置90との通信は、インタフェース540が通信機能を有し、CPU510の制御に従って通信を行うことで実行される。
【0079】
ストレージ管理装置110がコンピュータ500に実装される場合、論理ディスク構築部111の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、プログラムを補助記憶装置530から読み出して主記憶装置520に展開し、当該プログラムに従って上記処理を実行する。
また、CPU510は、プログラムに従って、データ格納領域情報記憶部112に対応する記憶領域を主記憶装置520に確保する。
ストレージ管理装置110と他の装置との通信は、インタフェース540が通信機能を有し、CPU510の制御に従って通信を行うことで実行される。
【0080】
ストレージ管理装置122がコンピュータ500に実装される場合、論理ディスク構築部123の動作は、プログラムの形式で補助記憶装置530に記憶されている。CPU510は、プログラムを補助記憶装置530から読み出して主記憶装置520に展開し、当該プログラムに従って上記処理を実行する。
また、CPU510は、プログラムに従って、データ格納領域情報記憶部124に対応する記憶領域を主記憶装置520に確保する。
ストレージ管理装置122と他の装置との通信は、インタフェース540が通信機能を有し、CPU510の制御に従って通信を行うことで実行される。
【0081】
なお、ディスクアレイコントローラ装置20、ストレージ管理装置110、および、ストレージ管理装置122が行う処理の全部または一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0082】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。