JP2012123551A - 情報記憶装置 - Google Patents

情報記憶装置 Download PDF

Info

Publication number
JP2012123551A
JP2012123551A JP2010272879A JP2010272879A JP2012123551A JP 2012123551 A JP2012123551 A JP 2012123551A JP 2010272879 A JP2010272879 A JP 2010272879A JP 2010272879 A JP2010272879 A JP 2010272879A JP 2012123551 A JP2012123551 A JP 2012123551A
Authority
JP
Japan
Prior art keywords
information
state
unit
page
write
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.)
Withdrawn
Application number
JP2010272879A
Other languages
English (en)
Inventor
Tetsuya Hagiwara
哲也 萩原
Akiko Kume
亜貴子 久米
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010272879A priority Critical patent/JP2012123551A/ja
Publication of JP2012123551A publication Critical patent/JP2012123551A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】書込み処理の遅延が抑制された情報記憶装置を提供する。
【解決手段】ストレージ装置100が、複数のRAIDグループ160と、負荷管理部155と、アクセス処理部154とを備える。負荷管理部155は、RAIDグループ160の状態をビジー状態と、それ以外の低負荷状態(ノーマル状態とリストア状態)とに判別する。アクセス処理部154は、書込み先のRAIDグループ160がビジー状態である場合には、そのRAIDグループ160以外のノーマル状態のRAIDグループ160にアクセスして情報を書き込む。
【選択図】 図6

Description

本件は、情報を記憶する情報記憶装置に関する。
従来、複数台の記憶モジュールが組み込まれて、全体として1台の記憶装置となっている情報記憶装置が知られている(例えば、特許文献1〜5参照。)。
このような情報記憶装置では、複数台の記憶モジュールに対して完全にアクセスが均等であることは有り得ないので、一部の記憶モジュールにアクセスが集中する。その結果、情報記憶装置全体としては余裕を持って対処可能なアクセス量であるのに、一部の記憶モジュールが高負荷状態になることも多い。
そして、そのような高負荷状態の記憶モジュールが担っている記憶領域に対して、ホスト装置から情報の書込み指示がなされた場合、その情報を書き込む書込み処理は、その記憶モジュールへのアクセス量が減少して低負荷状態となってから実行される。つまり、このような情報記憶装置では、一部の記憶モジュールが高負荷状態となっていると、情報記憶装置全体として情報の書込み処理に遅延が生じるおそれがある。
そこで、このような情報記憶装置において、複数台の記憶モジュールの相互間で、アクセス量の平均化を図ることで、個別の記憶モジュールの負荷を低減させる次のような処理が知られている。例えば、高負荷状態の記憶モジュールと、アクセスがそれほど集中していない低負荷状態の記憶モジュールとの間で情報の一部を入れ替えるスワップ処理が知られている。また、高負荷状態の記憶モジュール中の情報の一部を、低負荷状態の記憶モジュールに移動させるマイグレーション処理が知られている。
特開平9−297710号公報 特開2001−312372号公報 特開2003−150324号公報 特開2007−102607号公報 特開2007−293486号公報
上記のスワップ処理やマイグレーション処理は、多くの場合、高負荷状態となっている記憶モジュールへのアクセス量が減少して低負荷状態となってから実行される。このため、現に一部の記憶モジュールが高負荷状態にあるときの書込み処理の遅延については、スワップ処理やマイグレーション処理では解消が難しい。また、スワップ処理やマイグレーション処理自体が記憶モジュールへのアクセスを伴うことから、一旦低負荷状態になった記憶モジュールへのアクセス量をまた増大させてしまうおそれがある。
本件は上記事情に鑑み、書込み処理の遅延が抑制された情報記憶装置を提供することを目的とするものである。
上記目的を達成する情報記憶装置は、複数の記憶部と、書込部と、読出部と、状態判別部とを備えている。
複数の記憶部には、アドレスが割り当てられている。
書込部は、書込み先のアドレスが指定され書込み対象の情報が与えられて、上記複数の記憶部のうちその書込み先のアドレスが割り当てられている書込み先記憶部にアクセスしてその書込み対象の情報を書き込むものである。
読出部は、読出し元のアドレスが指定されて、上記複数の記憶部のうちその読出し元のアドレスが割り当てられている読出し元記憶部にアクセスしてその記憶部から情報を読み出すものである。
状態判別部は、上記複数の記憶部それぞれの状態を、各記憶部に対するアクセス量に基づいて、相対的にアクセス量が多い第1状態と相対的にアクセス量が少ない第2状態とに判別するものである。
また、上記書込部は、上記書込み先記憶部の状態が上記第2状態である場合にはその書込み先記憶部にアクセスして上記書込み対象の情報を書き込み、その書込み先記憶部の状態が上記第1状態である場合には、次のような処理を実行する。即ち、この場合には、書込部は、上記複数の記憶部のうちその書込み先記憶部以外の上記第2状態である記憶部にアクセスして上記書込み対象の情報を書き込む。
本件によれば、書込み処理の遅延が抑制された情報記憶装置を得ることができる。
比較例のストレージ装置を示す図である。 比較例のストレージ装置における情報の書込み処理の流れを示すフローチャートである。 比較例のストレージ装置における情報の読出し処理の流れを示すフローチャートである。 情報記憶装置の第1実施形態を示す図である。 情報記憶装置の第2実施形態であるストレージ装置を示すハードウェアブロック図である。 図5に示すストレージ装置を、コントローラモジュールの動作に注目して示す機能ブロック図である。 キャッシュメモリを詳細に示す図である。 キャッシュページ管理部によるキャッシュページの管理状態の切替えを示す図である。 キャッシュページ管理テーブルの詳細を示す図である。 負荷管理部によるRAIDグループの状態の判別を示す図である。 負荷管理テーブルの詳細を示す図である。 ディスクページ管理テーブルの詳細を示す図である。 アクセス対象のRAIDグループがノーマル状態である場合に想定される複数のケースを表形式で示す図である。 アクセス対象のRAIDグループがビジー状態である場合に想定される複数のケースを表形式で示す図である。 アクセス対象のRAIDグループがリストア状態である場合に想定される複数のケースを表形式で示す図である。 ライトバック処理について想定される複数のケースを表形式で示す図である。 コマンドに応じた情報の動きについての第1の例を示す模式図である。 コマンドに応じた情報の動きについての第2の例を示す模式図である。 コマンドに応じた情報の動きについての第3の例を示す模式図である。 コマンドに応じた情報の動きについての第4の例を示す模式図である。 コマンドに応じた情報の動きについての第5の例を示す模式図である。
以下、本件の情報記憶装置の具体的な実施形態としてのストレージ装置の説明に先立って、まず、その実施形態と対比するための比較例のストレージ装置について説明する。
図1は、比較例のストレージ装置を示す図である。
比較例のストレージ装置500は、ホスト装置であるサーバ600に、SAN(Storage Area Network)650を介して接続されている。
比較例のストレージ装置500は、複数台のHDD(Hard Disk Drive)511が組み込まれて、全体として1台の情報記憶装置として働く。比較例のストレージ装置500に搭載された複数台のHDD511は、n+1個のグループに、1グループ当たり2台ずつ分けられている。
そして、各グループは、2台のHDD511に互いに同じ情報を記憶させる冗長構造として、いわゆるRAID(Redundant Arrays of Inexpensive Disks)構造を有している。このRAID構造によれば、一方のHDD511において磁気ディスクの格子欠陥等により情報の記憶に不良が生じた場合であっても、他方のHDD511内の情報でその不良が補われる。以下、RAID構造を有するグループをRAIDグループ510と呼ぶ。各RAIDグループ510には、0番からn番までの番号が割り当てられている。
各RAIDグループ510は、各々単位容量を有する複数の記憶領域(ブロック)を有している。1つのブロックは、RAIDグループ510に属する2台のHDD511のうちの一方のHDD511内の単位容量の記憶領域と、他方のHDD511内の単位容量の記憶領域との2つの記憶領域で担われている。そして、ブロック1つ分の情報がそれら2つの記憶領域それぞれに記憶される。これにより、一方の記憶領域において記憶に不良が生じた場合であっても、他方の記憶領域の情報でその不良が補われる。このように、比較例のストレージ装置500では、ブロック単位で情報の記憶の信頼性が高められている。各ブロックには、RAIDグループ510を跨いだ、比較例のストレージ装置500全体として一連の通し番号であるアドレスが割り当てられている。
サーバ600は、ストレージ装置500に対して情報の読出しや書込みを指示するときには、リードコマンドやライトコマンドを発行する。これらのコマンドでは、アクセス対象のRAIDグループ510の番号(アクセスRG番号)と、アクセス対象のブロックのアドレスとが指定される。
この比較例のストレージ装置500は、キャッシュ制御部501、キャッシュメモリ502、およびディスク制御部503を備えている。
キャッシュメモリ502は、上記のHDD511に対する情報の読書き速度よりも高速に情報が出し入れされる半導体メモリである。サーバ600から送られてきた書込み情報は、一旦、このキャッシュメモリ502に記憶された後、アクセス対象のRAIDグループ510におけるアクセス対象のブロックに書き込まれる。また、アクセス対象のRAIDグループ510におけるアクセス対象のブロックから読み出された読出し情報は、一旦、このキャッシュメモリ502に記憶された後でサーバ600に転送される。
キャッシュ制御部501は、サーバ600からの書込み情報のキャッシュメモリ502への記憶や、キャッシュメモリ502に記憶されている読出し情報の読出しとサーバ600への転送を行う。
ディスク制御部503は、キャッシュメモリ502に記憶されている書込み情報を読み出す。ディスク制御部503は、さらに、アクセス対象のRAIDグループ510に対し、その書込み情報と、アクセス対象のブロックへの書込みを指示する書込み指示信号とを送信する。すると、書込み情報と書込み指示信号とを受信したRAIDグループ510では、HDD511において、アクセス対象のブロックに相当する記憶領域に書込み情報が書き込まれる。ディスク制御部503による書込み情報および書込み指示信号の送信と、HDD511での書込み情報の書込みとを合わせて、以下ではライトバック処理と呼ぶ。
また、ディスク制御部503は、アクセス対象のRAIDグループ510に対し、アクセス対象のブロックからの読出し情報の読出しを指示する読出し指示信号を送信する。すると、読出し指示信号を受信したRAIDグループ510では、HDD511において、アクセス対象のブロックに相当する記憶領域から読出し情報が読み出される。さらに、ディスク制御部503は、このように読み出された読出し情報をキャッシュメモリ502に記憶する。ディスク制御部503による読出し指示信号の送信と、HDD511での読出し情報の読出しと、ディスク制御部503によるキャッシュメモリ502への読出し情報の記憶とを合わせて、以下ではステージング処理と呼ぶ。
サーバ600からリードコマンドが送信されてきたときには、ディスク制御部503でのステージング処理によって読出し情報が一旦キャッシュメモリ502に記憶される。その後、キャッシュ制御部501によって、その記憶された読出し情報がキャッシュメモリ502から読み出されてサーバ600に転送される。
また、サーバ600からライトコマンドが送信されてきたときには、サーバ600から転送されてきた書込み情報が、キャッシュ制御部501によって一旦キャッシュメモリ502に記憶される。その後、ディスク制御部503でのライトバック処理によってその書込み情報がアクセス対象のブロックに書き込まれる。
キャッシュメモリ502に記憶された読出し情報やライトバック済みの書込み情報は、新規の情報が上書きされるまで記憶され続ける。つまり、これらの読出し情報やライトバック済みの書込み情報は、サーバ600への転送後、あるいはライトバック後も積極的には消去されずにキャッシュメモリ502上に残っている。そして、新しいライトコマンドによるライト処理が発生すると、これらの読出し情報やライトバック済みの書込み情報は不要な情報なので新規の情報で上書きされる。
キャッシュメモリ502は、予め決められた数のブロックを各々が有する複数の領域(キャッシュページ)を有している。
各キャッシュページは、次のような3つの管理状態に管理される。1つ目の管理状態は、キャッシュページが空きページであるインバリッド状態である。2つ目の管理状態は、キャッシュページに、上書き可能な情報(バリッド情報)が記憶されているバリッド状態である。3つ目の管理状態は、キャッシュページに、アクセス対象のブロックへの書込み前の書込み情報(ダーティ情報)が記憶されているダーティ状態である。
また、キャッシュ制御部501は、各キャッシュページ毎に、次のような3つの状態フラグを有している。1つ目の状態フラグは、インバリッド状態であるか否かを表す状態フラグ(インバリッドフラグ)である。2つ目の状態フラグは、バリッド状態であるか否かを表す状態フラグ(バリッドフラグ)である。3つ目の状態フラグは、ダーティ状態であるか否かを表す状態フラグ(ダーティフラグ)である。キャッシュ制御部501は、各キャッシュページについての情報の記憶等に応じて、各キャッシュページの3つの状態フラグを設定又は解除する。これにより、キャッシュ制御部501は、各キャッシュページの管理状態を切り替える。
ディスク制御部503は、上述したように、ライトバック処理やステージング処理を行う。ここで、ディスク制御部503は、ライトバック処理やステージング処理を表すジョブを、サーバ600から各処理の基となったコマンドが送られてきた順番に格納するキュー管理部503aを備えている。ディスク制御部503は、このキュー管理部503aに格納されているジョブが表す処理を、そのジョブの格納順で実行する。
まず、比較例のストレージ装置500における情報の書込み処理について説明する。
図2は、比較例のストレージ装置における情報の書込み処理の流れを示すフローチャートである。
まず、サーバ600においてライトコマンドが発行される(ステップS801)。上述したように、このライトコマンドでは、情報の書込み先として、アクセスRG番号と、アクセス対象のブロックのアドレスとが指定される。サーバ600が発行したライトコマンドは、キャッシュ制御部501で受信される。
キャッシュ制御部501は、ライトコマンドを受信すると、キャッシュメモリ502内に、インバリッド状態のキャッシュページ(インバリッドページ)が存在するか否かを判定する(ステップS802)。インバリッドページが存在すると判定された場合(ステップS802におけるYes判定)、キャッシュ制御部501は、サーバ600に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する(ステップS803)。サーバ600は、その応答信号を受信すると、書込み情報の転送を開始する(ステップS804)。キャッシュ制御部501は、サーバ600から転送されてくる書込み情報を、キャッシュメモリ502内のインバリッドページに記憶する(ステップS805)。
このステップS805で記憶された情報は、アクセス対象のブロックへの書込み前の書込み情報、即ち、上記のダーティ情報である。キャッシュ制御部501は、そのダーティ情報を記憶したキャッシュページについて、次のような状態フラグの設定又は解除を行う(ステップS806)。即ち、キャッシュ制御部501は、このキャッシュページについて、それまで設定されていたインバリッドフラグを解除して、ダーティフラグを設定する。これにより、このキャッシュページの管理状態がダーティ状態に切り替えられる。また、その際には、キャッシュ制御部501は、ダーティ情報の書込み先を、そのダーティ状態のキャッシュページ(ダーティページ)に対応付ける。即ち、ダーティ情報の書込み先として、アクセスRG番号と、アクセス対象のブロックのアドレスとが、キャッシュ制御部501によって、不図示のメモリに記憶される。
その後、キャッシュ制御部501は、サーバ600に、ライトコマンドに応じた処理が完了したことを通知する完了通知信号を送信する(ステップS807)。キャッシュ制御部501は、この完了通知信号を送信した後は、サーバ600からの次のコマンドを待つ待機状態となる。
また、上記のステップS802でインバリッドページが存在しないと判定された場合(ステップS802におけるNo判定)、キャッシュ制御部501は、更に、次のような判定を行う(ステップS808)。この場合、キャッシュ制御部501は、キャッシュメモリ502内に、バリッド状態のキャッシュページ(バリッドページ)が存在するか否かを判定する。バリッドページも存在しないと判定された場合(ステップS808におけるNo判定)、キャッシュ制御部501は、予め決められた時間だけ待機する(ステップS809)。そして、その待機後に、ステップS802での判定を繰り返す。
一方、バリッドページが存在すると判定された場合(ステップS808におけるYes判定)、キャッシュ制御部501は、そのバリッドページに対応付けられたバリッドフラグを解除して、インバリッドフラグを設定する。これにより、そのキャッシュページの管理状態が、バリッド状態からインバリッド状態に切り替えられる(ステップS810)。その後、キャッシュ制御部501は、上述のステップS803の処理を実行する。
キャッシュ制御部501において実行される以上のような処理からは独立したタイミングで、ディスク制御部503においてライトバック処理が次のように実行される。ライトバック処理は、上述したようにダーティ情報を、アクセス対象のRAIDグループ510におけるアクセス対象のブロックに書き込む処理である。
ライトバック処理では、ディスク制御部503は、キャッシュメモリ502に、ダーティページが存在するか否かを判定する(ステップS811)。ダーティページが存在しないと判定された場合(ステップS811におけるNo判定)、ディスク制御部503は、予め決められた時間だけ待機する(ステップS812)。そして、その待機後に、ステップS811での判定を繰り返す。
ダーティページが存在すると判定された場合(ステップS811におけるYes判定)、ディスク制御部503は、アクセス対象のRAIDグループ510について、次のような判定を行う(ステップS813)。
即ち、この場合、ディスク制御部503は、アクセス対象のRAIDグループ510について高負荷状態であるか否かを判定する。ここで、高負荷状態とは、キュー管理部503aに格納されているジョブの数(アクセス量)が、予め決められた閾値を超えている状態のことである。RAIDグループ510が高負荷状態であると判定された場合(ステップS813におけるYes判定)、ディスク制御部503は、予め決められた時間だけ待機する(ステップS814)。そして、その待機後に、ステップS813での判定を繰り返す。
一方、アクセス対象のRAIDグループ510が高負荷状態ではないと判定された場合(ステップS813におけるYes判定)、ディスク制御部503は、次のような処理を実行する(ステップS815)。ステップS815では、ディスク制御部503は、まず、ダーティページからダーティ情報を読み出す。さらに、ディスク制御部503は、そのダーティページに書込み先として対応付けられて記憶されているアクセスRG番号とブロックのアドレスとを参照する。そして、ディスク制御部503は、ダーティ情報を、そのアクセスRG番号が示すアクセス対象のRAIDグループ510における、そのアドレスのブロックに書き込む。この書込みが終了すると、ディスク制御部503は、ライトバック処理が終了した旨を、そのダーティ情報が記憶されているダーティページを指定して通知する信号をキャッシュ制御部501に送信する。ディスク制御部503は、この信号の送信後、ステップS811の判定を繰り返す。ここまでの処理が、ディスク制御部503によって実行されるライトバック処理である。
一方、ライトバック処理が終了した旨の信号を受信したキャッシュ制御部501は、その信号で指定されたダーティページに対応付けられたダーティフラグを解除して、さらに、バリッドフラグを設定する。これにより、そのキャッシュページの管理状態がダーティ状態からバリッド状態に切り替えられる(ステップS816)。
以上に説明した処理により、この比較例のストレージ装置500では、サーバ600から転送された情報が、キャッシュメモリ502を介して、アクセス対象のRAIDグループ510におけるアクセス対象のブロックに書き込まれる。
次に、比較例のストレージ装置500における情報の読出し処理について説明する。
図3は、比較例のストレージ装置における情報の読出し処理の流れを示すフローチャートである。
まず、サーバ600においてリードコマンドが発行される(ステップS901)。このリードコマンドでは、情報の読出し元として、アクセスRG番号と、アクセス対象のブロックのアドレスとが指定される。サーバ600が発行したリードコマンドは、キャッシュ制御部501で受信される。
キャッシュ制御部501は、リードコマンドを受信すると、キャッシュメモリ502内に、リードコマンドで要求されている読出し情報が記憶されているか否かを判定する(ステップS902)。
この比較例のストレージ装置500では、後述するように、リードコマンドに応じて読み出されてサーバ600に転送された読出し情報が、キャッシュメモリ502にバリッド情報として記憶される。また、図2を参照して説明した書込み処理では、書込み情報が、RAIDグループ510への書込み前にはダーティ情報として、書込み後はバリッド情報としてキャッシュメモリ502に記憶される。
上記のステップS902での判定は、キャッシュ制御部501が、キャッシュメモリ502内のバリッド情報やダーティ情報の中に、リードコマンドで要求されている読出し情報があるか否かを判定するものである。
キャッシュメモリ502内に読出し情報が記憶されていないと判定された場合(ステップS902におけるNo判定)、キャッシュ制御部501は、キャッシュメモリ502内にインバリッドページが存在するか否かを判定する(ステップS903)。
インバリッドページが存在すると判定された場合(ステップS903におけるYes判定)、キャッシュ制御部501は、ディスク制御部503にステージング処理の実行を要求する要求信号を送信する(ステップS904)。ステージング処理は、上述したように、アクセス対象のRAIDグループ510におけるアクセス対象のブロックから読出し情報を読出して、キャッシュメモリ502に記憶する処理である。
一方、インバリッドページが存在しないと判定された場合(ステップS903におけるNo判定)、キャッシュ制御部501は、更に、キャッシュメモリ502内にバリッドページが存在するか否かを判定する(ステップS905)。バリッドページも存在しないと判定された場合(ステップS905におけるNo判定)、キャッシュ制御部501は、予め決められた時間だけ待機する(ステップS906)。そして、その待機後に、ステップS903での判定を繰り返す。一方、バリッドページが存在すると判定された場合(ステップS903におけるYes判定)、キャッシュ制御部501は、そのバリッドページに対応付けられたバリッドフラグを解除して、インバリッドフラグを設定する。これにより、そのキャッシュページの管理状態が、バリッド状態からインバリッド状態に切り替えられる(ステップS907)。その後、キャッシュ制御部501は、上述のステップS904により、ディスク制御部503に対して、ステージング処理の実行を要求する要求信号を送信する。
ディスク制御部503は、要求信号を受信すると、アクセス対象のRAIDグループ510が上記の高負荷状態であるか否かを判定する(ステップS908)。
アクセス対象のRAIDグループ510が高負荷状態であると判定された場合(ステップS908におけるYes判定)、ディスク制御部503は、予め決められた時間だけ待機する(ステップS909)。そして、その待機後に、ステップS908での判定を繰り返す。
一方、アクセス対象のRAIDグループ510が高負荷状態ではないと判定された場合(ステップS908におけるYes判定)、ディスク制御部503は、次のような処理を実行する(ステップS910)。ステップS910では、ディスク制御部503は、アクセス対象のRAIDグループ510におけるアクセス対象のブロックから読出し情報を読出して、キャッシュメモリ502内のインバリッドページに記憶する。
この記憶が終了すると、ディスク制御部503は、ステージング処理が終了した旨を、その読出し情報を記憶したインバリッドページを指定して通知する信号をキャッシュ制御部501に送信する。ここまでの処理が、ディスク制御部503によって実行されるステージング処理である。
キャッシュ制御部501は、ステージング処理が終了した旨の信号を受信すると、読出し情報が記憶されたインバリッドページについて、インバリッドフラグを解除して、バリッドフラグを設定する。これにより、そのキャッシュページの管理状態がインバリッド状態からバリッド状態に切り替えられる(ステップS911)。
次に、キャッシュ制御部501は、上記の読出し情報を記憶しているバリッドページからその読出し情報を読みだしてサーバ600に転送する(ステップS912)。
また、上記のステップS902で、キャッシュメモリ502内に読出し情報がバリッド情報やダーティ情報として記憶されていると判定された場合(ステップS902におけるYes判定)には、ステップS903からステップS911の処理が省略される。そして、キャッシュ制御部501が、ステップS912の処理を実行して、バリッドページやダーティページから読出し情報を読み出してサーバ600に転送する。
その後、キャッシュ制御部501は、サーバ600に、リードコマンドに応じた処理が完了したことを通知する完了通知信号を送信する(ステップS913)。キャッシュ制御部501は、この完了通知信号を送信した後は、サーバ600からの次のコマンドを待つ待機状態となる。
以上に説明した比較例のストレージ装置500では、複数のRAIDグループ510に対して完全にアクセスが均等であることは有り得ないので、一部のRAIDグループ510にアクセスが集中する。その結果、比較例のストレージ装置500全体としては余裕を持って対処可能なアクセス量であるのに、一部のRAIDグループ510が高負荷状態になることも多い。
そして、そのような高負荷状態のRAIDグループ510内のブロックに対して、サーバ600から情報の書込み指示がなされた場合、上記のライトバック処理は、そのRAIDグループ510が低負荷状態となってから実行される。つまり、比較例のストレージ装置500では、一部のRAIDグループ510が高負荷状態となっていると、比較例のストレージ装置500全体として情報の書込み処理に遅延が生じるおそれがある。
また、このような書込み処理の遅延は、キャッシュメモリ502がダーティページで占められてしまうという事態を招く恐れがある。ダーティページに記憶されているダーティ情報は、上述したように、アクセス対象のブロックへの書込み前の書込み情報である。従ってダーティ情報を、アクセス対象のブロックとは別のブロックへの書込み情報や、そのような別のブロックからの読出し情報で上書きすることは禁止される。つまり、キャッシュメモリ502がダーティページで占められることは、キャッシュメモリ502全体についてこのような上書きが禁止されることを意味する。このような事態が生じると、図3の読出し処理におけるステップS905の判定でNo判定が繰り返されることとなり、その結果、この読出し処理が遅延する。つまり、この比較例のストレージ装置500では、書込み処理の遅延が読出し処理の遅延にも繋がることとなる。
次に、本件の情報記憶装置の具体的な実施形態について、図面を参照して説明する。
まず、第1実施形態について説明する。
図4は、情報記憶装置の第1実施形態を示す図である。
この図4に示す情報記憶装置10は、複数の記憶部11と、書込部12と、読出部13と、状態判別部14とを備えている。
複数の記憶部11には、アドレスが割り当てられている。
書込部12は、書込み先のアドレスが指定され書込み対象の情報が与えられる。書込み対象の情報とは、この図4に示す情報記憶装置10のホスト装置であるサーバ等から転送されてくる情報のことである。書込部12は、上記複数の記憶部11のうちその書込み先のアドレスが割り当てられている書込み先の記憶部11にアクセスしてその書込み対象の情報を書き込む。
読出部13は、読出し元のアドレスが指定されて、上記複数の記憶部11のうちその読出し元のアドレスが割り当てられている読出し元の記憶部11にアクセスしてその記憶部11から情報を読み出す。
状態判別部14は、上記複数の記憶部11それぞれの状態を、各記憶部11に対するアクセス量に基づいて、相対的にアクセス量が多い第1状態と相対的にアクセス量が少ない第2状態とに判別する。
また、上記書込部12は、上記書込み先の記憶部11の状態が上記第2状態である場合にはその書込み先の記憶部11にアクセスして上記書込み対象の情報を書き込み、その書込み先の記憶部11の状態が上記第1状態である場合には、次のような処理を実行する。
即ち、上記第1状態である場合には、書込部12は、上記複数の記憶部11のうちその書込み先の記憶部11以外の上記第2状態である記憶部11にアクセスして上記書込み対象の情報を書き込む。
この情報記憶装置10によれば、書込み先の記憶部11が相対的にアクセス量が多い第1状態にあるときには、書込み対象の情報が、その書込み先の記憶部11以外の上記第2状態である記憶部11に書き込まれる。このように、情報記憶装置10では、書込み先の記憶部11が相対的にアクセス量が多い第1状態あったとしても、情報の書込み自体は、書込み先を別の記憶部11に替えて直ちに実行されることとなる。これにより、情報記憶装置10では、第1状態にある記憶部11があったとしても、書込み処理の遅延が抑制される。
次に、本件の情報記憶装置の第2実施形態について説明する。
図5は、情報記憶装置の第2実施形態であるストレージ装置を示すハードウェアブロック図である。
この図5に示すストレージ装置100は、複数台のHDD101と、2つのコントローラモジュール110とを備えている。各コントローラモジュール110は、SAN250を介してホスト装置であるサーバ200に接続されている。
ストレージ装置100は、詳細については後述するが、複数台のHDD101が組み込まれて、全体として1台の情報記憶装置として働く。
コントローラモジュール110は、キャッシュ制御部111と、キャッシュメモリ112と、ディスク制御部113とを備えている。複数台のHDD101は、ディスク制御部113に接続されている。キャッシュ制御部111とキャッシュメモリ112は、サーバ200側から見て、そのサーバ200に近い側に位置することからフロントエンド100aと呼ばれる。一方、ディスク制御部113と複数台のHDD101は、サーバ200から遠い側に位置することからバックエンド100bと呼ばれる。
キャッシュメモリ112は、HDD101に対する情報の読書き速度よりも高速に情報が出し入れされる半導体メモリである。サーバ200から送られてきた書込み情報は、一旦、このキャッシュメモリ112に記憶された後、HDD101に書き込まれる。また、HDD101から読み出された読出し情報は、一旦、このキャッシュメモリ112に記憶された後でサーバ200に送られる。
キャッシュ制御部111は、サーバ200からの書込み情報のキャッシュメモリ112への記憶や、キャッシュメモリ112に記憶されている読出し情報の読出しとサーバ200への転送を行う。キャッシュ制御部111は、ROM(Read Only Memory)111aを備えている。そして、キャッシュ制御部111は、このROM111a内に格納されている動作プログラムに従ってキャッシュメモリ112に対する情報の記憶や読出し等を行う。また、キャッシュ制御部111は、RAM(Random Access Memory)111bを備えている。このRAM111bには、動作プログラムに従った動作に使われる各種パラメータ等が格納される。
ディスク制御部113は、キャッシュメモリ112に記憶されている書込み情報を読み出して、後述のRAIDグループ160に対し、その書込み情報と、書込みを指示する書込み指示信号とを送信する。すると、書込み情報と書込み指示信号とを受信したRAIDグループ160では、HDD101において、アクセス対象のブロックに相当する記憶領域に書込み情報が書き込まれる。
ディスク制御部113による書込み情報および書込み指示信号の送信と、HDD101での書込み情報の書込みとを合わせて、以下ではライトバック処理と呼ぶ。
また、ディスク制御部113は、アクセス対象のRAIDグループ160に対し、読出し情報の読出しを指示する読出し指示信号を送信する。すると、読出し指示信号を受信したRAIDグループ160では、HDD101において読出し情報が読み出される。さらに、ディスク制御部113は、このように読み出された読出し情報をキャッシュメモリ112に記憶する。
ディスク制御部113による読出し指示信号の送信と、HDD101での読出し情報の読出しと、ディスク制御部113によるキャッシュメモリ112への読出し情報の記憶とを合わせて、以下ではステージング処理と呼ぶ。
ディスク制御部113も、ROM113aとRAM113bを備えている。ディスク制御部113は、ROM113a内に格納されている動作プログラムに従ってライトバック処理やステージング処理等を行う。そして、RAM113bには、これらの処理に使われる各種パラメータ等が格納される。
図6は、図5に示すストレージ装置を、コントローラモジュールの動作に注目して示す機能ブロック図である。
尚、図5に示す2つのコントローラモジュール110は、互いに同等な機能を備えているので、この図6では、ストレージ装置100における、コントローラモジュール1101つ分の機能ブロックが代表的に示されている。
ストレージ装置100に搭載された複数台のHDD101は、n+1個のグループに、1グループ当たり2台ずつ分けられている。
そして、各グループは、2台のHDD101に互いに同じ情報を記憶させる冗長構造として、いわゆるRAID構造を有している。このRAID構造によれば、一方のHDD101において磁気ディスクの格子欠陥等により情報の記憶に不良が生じた場合であっても、他方のHDD101内の情報でその不良が補われる。以下、RAID構造を有するグループをRAIDグループ160と呼ぶ。各RAIDグループ160には、0番からn番までの番号が割り当てられている。
各RAIDグループ160は、各々が512バイトの容量を有する複数のブロックを有している。1つのブロックは、RAIDグループ160に属する2台のHDD101のうちの一方のHDD101内の512バイトの記憶領域と、他方のHDD101内の512バイトの記憶領域との2つの記憶領域で担われている。そして、ブロック1つ分の情報がそれら2つの記憶領域それぞれに記憶される。これにより、一方の記憶領域において記憶に不良が生じた場合であっても、他方の記憶領域の情報でその不良が補われる。このように、ストレージ装置100では、ブロック単位で情報の記憶の信頼性が高められている。そして、各RAIDグループ160は、各ブロックに、アドレスとして、RAIDグループ160を跨いだ、ストレージ装置100全体として一連の通し番号(LBA:Logical Block Address)が割り当てられている。
これらn+1個のRAIDグループ160が、アドレスが割り当てられている複数の記憶部の一例に相当する。
サーバ200は、ストレージ装置100に対してライトコマンドやリードコマンドを発行して情報の読書きを指示する。各コマンドには、アクセス対象を指定する情報として、次のような3つの情報が付されている。1つ目は、アクセス対象のRAIDグループ160の番号を示すアクセスRG番号である。2つ目は、アクセス対象となる一連のブロックのうち先頭に位置するブロックのLBA(先頭LBA)である。3つ目は、アクセス対象の一連のブロックのブロック数である。
ストレージ装置100は、図5にも示すように、フロントエンド100aとバックエンド100bとを有している。
まず、フロントエンド100aについて説明する。
フロントエンド100aには、図5にも示すキャッシュメモリ112の他に、機能ブロックとして、リードライト処理部151、キャッシュページ管理部152、およびキャッシュページ管理テーブル153が設けられている。
キャッシュメモリ112は、詳細については後述するが、n個のブロックを各々が有する複数のキャッシュページを有している。
本実施形態では、各キャッシュページが、次のような4つの管理状態に管理される。
1つ目の管理状態は、キャッシュページが空きページであるインバリッド状態である。
2つ目の管理状態は、キャッシュページに、上書き可能な情報(バリッド情報)が記憶されているバリッド状態である。
3つ目の管理状態は、キャッシュページに、アクセス対象のブロックへの書込み前の書込み情報(ダーティ情報)が記憶されているダーティ状態である。
4つ目の管理状態は、キャッシュページに、次のようなグレイ情報が記憶されているグレイ状態である。グレイ情報とは、後述の退避処理や複製処理により、書込み先や読出し元のRAIDグループ160以外のRAIDグループ160に書き込まれる情報をいう。また、退避処理や複製処理により情報が書き込まれた後は、後述のディスクページ管理テーブル158に、その情報の本来の書込み先や読出し元のRAIDグループ160がどのRAIDグループ160であるかといった情報が記憶されることとなる。
一旦キャッシュページに記憶された情報は、新規の情報が上書きされるまで記憶され続ける。
リードライト処理部151は、サーバ200が発行したライトコマンドやリードコマンドを受信して、各コマンドに応じた処理を実行する。このリードライト処理部151は、ハードウェアとしては、図5に示すキャッシュ制御部111がその役割を担っている。
ライトコマンドを受信すると、リードライト処理部151は、キャッシュメモリ112内に、書込み情報の記憶のためのキャッシュページを確保した後に、サーバ200に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。サーバ200は、その応答信号を受信すると、書込み情報の転送を開始する。リードライト処理部151は、サーバ200から転送されてくる書込み情報を、確保したキャッシュページに記憶する。リードライト処理部151は、その記憶後、サーバ200に、ライトコマンドに応じた処理が完了したことを通知する完了通知信号を送信する。キャッシュメモリ112に記憶された書込み情報は、バックエンド100bで実行されるライトバック処理によってRAIDグループ160に書き込まれることとなる。
リードコマンドを受信すると、リードライト処理部151は、キャッシュメモリ112内のバリッド情報やダーティ情報の中に、リードコマンドで要求されている読出し情報があるか否かを判定する。キャッシュメモリ112内に読出し情報がある場合、リードライト処理部151は、キャッシュメモリ112からその読出し情報を読み出してサーバ200に転送する。一方、キャッシュメモリ112内に読出し情報が無い場合、リードライト処理部151は、キャッシュメモリ112内に、読出し情報の記憶のためのキャッシュページを確保する。そして、このときには、バックエンド100bでのステージング処理によって読出し情報が、その確保されたキャッシュメモリ112に記憶される。すると、リードライト処理部151は、キャッシュメモリ112からその読出し情報を読みだしてサーバ200に転送する。サーバ200への読出し情報の転送後、リードライト処理部151は、サーバ200に、リードコマンドに応じた処理が完了したことを通知する完了通知信号を送信する。
以下、キャッシュメモリ112について詳細に説明する。
図7は、キャッシュメモリを詳細に示す図である。
この図7に示すように、キャッシュメモリ112は、複数のキャッシュページ112aを有しており、各キャッシュページ112aには、「0」番から始まる通し番号(Cページ番号)が割り当てられている。そして、各キャッシュページ112aは、各々が512バイトの容量を有するn個のブロック112a_1を有している。
図6に示すリードライト処理部151は、ライトコマンドやリードコマンドを受信すると、複数のキャッシュページ112aの中から、書込み情報や読出し情報の記憶に十分なキャッシュページ112aを確保する。
ここで、書込み情報は、ライトコマンドにおいてアクセスRG番号で指定されたアクセス対象のRAIDグループ160内の、そのライトコマンドで先頭LBAとブロック数で指定されたアクセス対象のブロックに書き込まれる情報である。
また、読出し情報は、リードコマンドにおいてアクセスRG番号で指定されたアクセス対象のRAIDグループ160内の、そのリードコマンドで先頭LBAとブロック数で指定されたアクセス対象のブロックに書き込まれる情報である。
ここで、リードライト処理部151は、このストレージ装置100内の複数のブロックを、キャッシュページ112aのブロック数であるn個ずつに区分けしたときの各区分の存在箇所を表すLBA範囲を、不図示のメモリに記憶している。
リードライト処理部151は、キャッシュページ112aの確保の際には、まず、その不図示のメモリに記憶しているLBA範囲を参照して、アクセス対象のブロックを包含する1つ又は一連の区分を探す。
そして、そのような区分を探し出すと、リードライト処理部151は、基本的に、以下に述べる処理を実行する。
この基本的な処理では、インバリッド状態あるいはバリッド状態のキャッシュページ112aの中から、上記のように探し出した区分と同数のキャッシュページ112aを選択する。このキャッシュページ112aの選択については後で詳細に説明する。さらに、その選択した1つ又は一連のキャッシュページ112aに、上記のように探し出した1つ又は一連の区分を一対一に対応付ける。そして、リードライト処理部151は、キャッシュページ112aに対応付けた区分の存在箇所を表すLBAを、キャッシュページ管理部152に命じてキャッシュページ管理テーブル153に格納させる。尚、この区分の存在箇所を表すLBAについてここでは特定しないが、例えば、その区分における先頭のブロックのLBA等が、区分の存在箇所を表すLBAとして挙げられる。
ここで、過去のコマンドに応じて確保されたキャッシュページ112aの中に、今回のアクセス対象のブロックを包含する区分に対応付けられているものが存在する可能性がある。このため、リードライト処理部151は、上記の基本的な処理に先だって、キャッシュページ管理テーブル153に格納されているLBAを参照して、このようなキャッシュページ112aが存在するか否かを判定する。
そして、そのようなキャッシュページ112aが全く存在しない場合、リードライト処理部151は、上記の基本的な処理を実行する。
一方、今回のアクセス対象のブロックを包含する1つ又は一連の区分の全てについて、キャッシュページ112aが存在する場合、リードライト処理部151は、その既存のキャッシュページ112aを今回の書込み情報や読出し情報の記憶先として採用する。
また、今回のアクセス対象のブロックを包含する区分が一連の区分であって、それら一連の区分のうちの一部の区分についてはキャッシュページ112aが存在するが、他の区分についてはキャッシュページ112aが存在しない場合がある。
この場合には、キャッシュページ112aが存在しない区分について、新たなキャッシュページ112aの選択と、その区分との対応付けと、その区分の存在箇所を表すLBAの記録とが行われる。そして、その新たなキャッシュページ112aと、既存のキャッシュページ112aとを合わせた一連のキャッシュページ112aが、今回の書込み情報や読出し情報の記憶先として採用される。
以上に説明した処理によるキャッシュページ112aの確保あるいは採用のことを、以下では一括りにしてキャッシュページ112aの確保と呼ぶ。
このように確保されたキャッシュページ112aに書込み情報や読出し情報が格納されたときには、各キャッシュページ112a内のどのブロック112a_1に情報が記憶されているかがビットマップとして記述される。このビットマップは、1ブロックに1ビットの符号を対応させたnビットの情報である。符号「0」が、対応するブロック112a_1に情報が未記憶であることを示し、符号「1」が、対応するブロック112a_1に情報が記憶されていることを示す。
キャッシュページ管理部152は、キャッシュメモリ112内の各キャッシュページ112aの管理状態を、上述したインバリッド状態、ダーティ状態、バリッド状態、およびグレイ状態の4つの管理状態の間で切り替える。このキャッシュページ管理部152は、ハードウェアとしては、図5に示すキャッシュ制御部111がその役割を担っている。
キャッシュページ管理部152は、管理状態の切替えを次のように実行する。
図8は、キャッシュページ管理部によるキャッシュページの管理状態の切替えを示す図である。
ライトコマンドを受けてリードライト処理部151によって確保されたキャッシュページ112aの管理状態が、インバリッド状態であったとする。すると、キャッシュページ管理部152は、書込み情報が記憶されるキャッシュページ112aの管理状態をダーティ状態に切り替える(ステップS101)。
また、バリッド状態のキャッシュページ112aが対応付けられている区分と同じ区分への書込み情報の書込みがライトコマンドで指示されたとする。この場合には、そのバリッド状態のキャッシュページ112aにその書込み情報が記憶される。そして、キャッシュページ管理部152は、その書込み情報が記憶されるキャッシュページ112aの管理状態をダーティ状態に切り替える(ステップS102)。
ここで、ライトコマンドで指定されたアクセス対象のRAIDグループ160が次のようなビジー状態である場合には、キャッシュページ管理部152は、キャッシュページ112aの管理状態をダーティ状態からグレイ状態に切り替える(ステップS103)。
ビジー状態とは、後述のキュー管理部154aに格納されているジョブの数(アクセス量)が、予め決められた閾値以上となった高負荷状態が、予め決められた時間以上に亘って続いている状態をいう。
一方、アクセス対象のRAIDグループ160がビジー状態ではない場合には、キャッシュページ112a内の書込み情報は、ライトバック処理により、アクセス対象のRAIDグループ160におけるアクセス対象のブロックに書き込まれる。このときには、キャッシュページ管理部152は、その書込み情報が記憶されていたキャッシュページ112aの管理状態をバリッド状態に切り替える(ステップS104)。
また、リードコマンドを受けてリードライト処理部151によって確保されたキャッシュページ112aの管理状態が、インバリッド状態であったとする。すると、キャッシュページ管理部152は、読出し情報が記憶されるキャッシュページ112aの管理状態をバリッド状態に切り替える(ステップS105)。
このとき、リードコマンドで指定されたアクセス対象のRAIDグループ160がビジー状態である場合には、キャッシュページ管理部152は、キャッシュページ112aの管理状態をバリッド状態からグレイ状態に切り替える(ステップS106)。
グレイ状態にあるキャッシュページ112a内の情報は、バックエンド100bで実行される後述の退避処理や複製処理によって、アクセス対象のRAIDグループ160以外のRAIDグループ160に書き込まれる。そして、これらの処理が終了した時点で、キャッシュページ管理部152は、そのキャッシュページ112aの管理状態を、バリッド状態に切り替える(ステップS107)。
また、バリッド状態のキャッシュページ112aについては、現時点で対応付けられている区分とは別の区分に新たに対応付ける際に、キャッシュページ管理部152よって、管理状態がインバリッド状態に切り替えられる(ステップS108)。そして、インバリッド状態に切り替えられたキャッシュページ112aは、その新たな区分への書込み情報や、その新たな区分からの読出し情報の記憶先として使われる。
キャッシュページ管理部152は、以上に説明したキャッシュページ112aの管理状態の切替えを、各キャッシュページ112aについて用意されている次のような4つの状態フラグを設定又は解除することによって行う。1つ目の状態フラグは、インバリッド状態であるか否かを表す状態フラグ(インバリッドフラグ)である。2つ目の状態フラグは、バリッド状態であるか否かを表す状態フラグ(バリッドフラグ)である。3つ目の状態フラグは、ダーティ状態であるか否かを表す状態フラグ(ダーティフラグ)である。4つ目の状態フラグは、グレイ状態であるか否かを表す状態フラグ(グレイフラグ)である。
本実施形態では、以下に説明するように、キャッシュページ管理テーブル153内に、各キャッシュページ112aのCページ番号毎に、これら4つの状態フラグが格納されている。
図9は、キャッシュページ管理テーブルの詳細を示す図である。
キャッシュページ管理テーブル153は、Cページ番号格納部153a、Cページ状態格納部153b、アクセスRG番号格納部153c、LBA格納部153d、バリッドビットマップ格納部153e、ダーティビットマップ格納部153fを備えている。キャッシュページ管理テーブル153は、ハードウェアとしては、図5に示すキャッシュ制御部111内のRAM111b中の予め決められた領域がその役割を担っている。
Cページ番号格納部153aには、各キャッシュページ112aに割り当てられたCページ番号が格納される。
Cページ状態格納部153bには、インバリッドフラグ、バリッドフラグ、ダーティフラグ、グレイフラグが格納される。キャッシュページ管理部152は、これらの状態フラグを設定又は解除することにより、各キャッシュページ112aの管理状態の切替えを行う。
例えば、キャッシュページ112aの管理状態をインバリッド状態からバリッド状態に切り替えるときには、キャッシュページ管理部152は、そのキャッシュページ112aのCページ番号に対応したインバリッドフラグを解除してバリッドフラグを設定する。
アクセスRG番号格納部153cには、ライトコマンドやリードコマンドに応じた情報が記憶されているキャッシュページ112aについて、各コマンドで指定されたアクセスRG番号が格納される。
LBA格納部153dには、上記のように確保されたキャッシュページ112aについて、そのキャッシュページ112aに対応付けられた上記の区分の存在箇所を表すLBAが格納される。
バリッドビットマップ格納部153eには、各キャッシュページ112a内の各ブロック112a_1に、バリッド情報が記憶されているか否かを記述したバリッドビットマップが格納される。バリッドビットマップは、1ブロックに1ビットの符号を対応させたnビットの情報である。符号「0」が、対応するブロック112a_1にバリッド情報が未記憶であることを示し、符号「1」が、対応するブロック112a_1にバリッド情報が記憶されていることを示す。
ダーティビットマップ格納部153fには、各キャッシュページ112a内の各ブロック112a_1に、ダーティ情報が記憶されているか否かを記述したダーティビットマップが格納される。ダーティビットマップは、1ブロックに1ビットの符号を対応させたnビットの情報である。符号「0」が、対応するブロック112a_1にダーティ情報が未記憶であることを示し、符号「1」が、対応するブロック112a_1にダーティ情報が記憶されていることを示す。
上述したように、過去のコマンドに応じて確保されたキャッシュページ112aの中に、アクセス対象のブロックを包含する1つ又は一連の区分のうち少なくとも一部について、対応するものが存在しない場合に、新たなキャッシュページ112aが確保される。
そして、そのときには、基本的な処理として上述したように、インバリッド状態あるいはバリッド状態のキャッシュページ112aの中から必要数のキャッシュページ112aが選択される。
以下、このキャッシュページ112aの選択について説明する。
この選択に当たって、図6のリードライト処理部151は、キャッシュページ管理部テーブル153のCページ状態格納部153b内の状態フラグを参照する。この参照により、リードライト処理部151は、インバリッド状態あるいはバリッド状態のいずれかのキャッシュページ112aを探す。
ここで、キャッシュページ112aの探索は、インバリッド状態のキャッシュページ112aについての探索が優先して行われる。その探索の結果、インバリッド状態のキャッシュページ112aが必要数より多く見つかった場合には、リードライト処理部151は、次のような選択を行う。この場合、リードライト処理部151は、見つかったキャッシュページ112aの中から、Cページ番号の小さいものから優先して必要数だけ選択する。
インバリッド状態のキャッシュページ112aが見つからない場合、あるいは、見つかったインバリッド状態のキャッシュページ112aの数が必要数に満たない場合、バリッド状態のキャッシュページ112aについての探索が行われる。そして、バリッド状態のキャッシュページ112aが必要数あるいは不足数より多く見つかった場合には、リードライト処理部151は、次のような選択を行う。
上述したように、バリッド状態のキャッシュページ112a内の情報は、リードコマンドに応じて読み出されることがある。そこで、本実施形態では、バリッド状態のキャッシュページ112aの選択方法として、記憶情報に対する読出し回数が少ないものを優先して選択するLRU(Least Recently Used)方式が採用されている。
尚、インバリッド状態あるいはバリッド状態のキャッシュページ112aの選択方法は、上述した方法に限るものではない。この選択方法は、例えば、複数のキャッシュページ112aについて優先順位を予め決めておき、選択をその優先順位に従って行う等といったものであっても良い。
リードライト処理部151は、以上に説明した選択を含むキャッシュページ112aの確保処理が終了すると、コマンドがライトコマンドの場合には、サーバ200に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。そして、サーバ200から書込み情報が転送されてくると、その書込み情報が、リードライト処理部151によってキャッシュページ112aに記憶される。
ここで、リードライト処理部151は、キャッシュページ112aへの書込み情報の記憶が終了すると、バックエンド100bに、その書込み情報についてのライトバック処理の実行を要求する信号(ライトバック要求信号)を送信する。
ライトバック要求信号には、書込み情報が記憶されているキャッシュページ112aのCページ番号、アクセスRG番号、および、そのキャッシュページ112aに対応付けられた上記の区分の存在箇所を表すLBAが添付されている。このライトバック要求信号に応じてバックエンド100bで実行されるライトバック処理により、キャッシュページ112aに記憶された書込み情報はRAIDグループ160に書き込まれる。
また、コマンドがリードコマンドの場合には、リードライト処理部151は、バックエンド100bに、ステージング処理の実行を要求する信号(ステージング要求信号)を送信する。ステージング要求信号には、読出し情報の記憶のために確保されたキャッシュページ112aのCページ番号、アクセスRG番号、および、リードコマンドで指定されたアクセス対象のブロックの先頭LBAとブロック数が添付されている。このステージング要求信号に応じてバックエンド100bで実行されるステージング処理により、読出し情報がRAIDグループ160から読み出されてキャッシュページ112aに記憶される。
さらに、リードライト処理部151は、キャッシュページ管理部152に次のような情報を伝える。即ち、リードライト処理部151は、確保したキャッシュページ112aのCページ番号、その確保の契機となったコマンドの種類、アクセス対象のRAIDグループ160の状態を伝える。
ここで、RAIDグループ160の状態とは、そのRAIDグループ160が通常通り情報の出し入れが可能な状態や上記のビジー状態を含む後述の3種類の状態のうちのいずれかをいう。リードライト処理部151は、これも後述する負荷管理テーブル156を参照することで、このRAIDグループ160の状態を把握する。
さらに、リードライト処理部151は、コマンドで指定されたアクセスRG番号と、確保したキャッシュページ112aに対応付けた区分の存在箇所を表すLBAもキャッシュページ管理部152に伝える。
キャッシュページ管理部152は、リードライト処理部151から伝えられたCページ番号、コマンドの種類、アクセス対象のRAIDグループ160の状態に基づいて、管理状態の切替えを行う。即ち、キャッシュページ管理部152は、キャッシュページ管理テーブル153において、その伝えられたCページ番号に対応している、Cページ状態格納部153b内の状態フラグを設定又は解除する。この状態フラグの設定又は解除により、キャッシュページ管理部152は、図8を参照して説明した、キャッシュページ112aの管理状態の切替えを行う。
また、キャッシュページ管理部152は、リードライト処理部151から伝えられたアクセスRG番号を、上記のように伝えられたCページ番号に対応しているアクセスRG番号格納部153cに格納する。また、キャッシュページ管理部152は、リードライト処理部151から伝えられたLBAを、そのCページ番号に対応しているLBA格納部153dに格納する。
さらに、リードライト処理部151は、キャッシュページ112aへの情報の記憶の際に、キャッシュページ112aのどのブロック112a_1に情報を記憶したかをキャッシュページ管理部152に伝える。
すると、キャッシュページ管理部152は、バリッドビットマップあるいはダーティビットマップにおける、その伝えられたブロック112a_1に対応する符号を「1」にする。このとき、リードライト処理部151から伝えられたコマンドの種類がリードコマンドであった場合には、キャッシュページ管理部152は、バリッドビットマップ中の符号を「1」にする。また、そのコマンドの種類がライトコマンドであった場合には、キャッシュページ管理部152は、ダーティビットマップ中の符号を「1」にする。
また、キャッシュページ管理部152は、キャッシュページ112aの管理状態をダーティ状態からバリッド状態に切り替える際に、そのキャッシュページ112aに対応付けられたダーティビットマップ中の符号を「0」にする。また、キャッシュページ管理部152は、キャッシュページ112aの管理状態をバリッド状態からインバリッド状態に切り替える際に、バリッドビットマップ中の符号を「0」にする。
キャッシュページ管理部152によるビットマップ操作には、以上に説明した操作以外にも、例えばバックエンド100bでの処理に応じて行われる操作等もある。このビットマップ操作については、後で、ストレージ装置100における複数のケースの処理について説明するときに併せて説明する。
次に、図6に示すストレージ装置100のバックエンド100bについて説明する。
バックエンド100bには、複数のRAIDグループ160の他に、機能ブロックとして、アクセス処理部154、負荷管理部155、負荷管理テーブル156、ディスクページ管理部157、およびディスクページ管理テーブル158が設けられている。
アクセス処理部154は、後述のライトバック処理とステージング処理とリストア処理とを実行する。このアクセス処理部154は、ハードウェアとしては、図5に示すディスク制御部113がその役割を担っている。
アクセス処理部154は、さらに、機能ブロックとして、キュー管理部154aを有している。上述したように、リードライト処理部151からは、ライトコマンドに応じてライトバック要求信号が送られ、リードコマンドに応じてステージング要求信号が送られてくる。アクセス処理部154はこれらの要求信号を受信してキュー管理部154aに渡す。
キュー管理部154aは、これらの要求信号を渡されると、各要求信号が要求する処理を示すジョブを、要求信号が渡された順番に記憶する。そして、アクセス処理部154は、このキュー管理部154aに格納されているジョブが表す処理を、そのジョブの格納順で実行する。
負荷管理部155は、ストレージ装置100内の各RAIDグループ160について、キュー管理部154aに格納されているジョブのうちそのRAIDグループ160をアクセス対象としたジョブの数(アクセス量)を数える。さらに、負荷管理部155は、そのように得たアクセス量と、不図示のタイマで計時される時間とに基づいて、次のような処理を行う。即ち、負荷管理部155は、各RAIDグループ160の状態を、以下に説明するノーマル状態、ビジー状態、およびリストア状態の3つの状態に判別する処理を定期的に実行する。
ノーマル状態とは、アクセス量が、予め決められた閾値未満となっている低負荷状態であるか、アクセス量が閾値以上となった高負荷状態が続いている時間が、予め決められた時間未満である状態をいう。
ビジー状態とは、上述したように、アクセス量が、予め決められた閾値以上となった高負荷状態が、予め決められた時間以上に亘って続いている状態をいう。
リストア状態とは、一旦ビジー状態となったRAIDグループ160について、アクセス量が減少した結果、アクセス量が閾値未満となっている低負荷状態が予め決められた時間以上に亘って続いた後、後述のリストア処理が完了するまでの状態である。
負荷管理部155は、ハードウェアとしては、図5に示すディスク制御部113がその役割を担っている。また、この負荷管理部155が、複数の記憶部それぞれの状態を、各記憶部に対するアクセス量に基づいて、相対的にアクセス量が多い第1状態と相対的にアクセス量が少ない第2状態とに判別する状態判別部の一例に相当する。また、ビジー状態が第1状態の一例に相当し、ノーマル状態とリストア状態が第2状態の一例に相当する。
図10は、負荷管理部によるRAIDグループの状態の判別を示す図である。
各RAIDグループ160の初期状態は、いずれもノーマル状態である。
負荷管理部155は、各RAIDグループ160に対するアクセス量を、予め決められた閾値と比較する。そして、アクセス量が閾値以上である高負荷状態のRAIDグループ160があると、負荷管理部155は、その高負荷状態の継続時間を不図示のタイマを使って計時する。高負荷状態のRAIDグループ160について、その高負荷状態の継続時間が、予め決められた時間に達すると、負荷管理部155は、そのRAIDグループ160の状態をビジー状態に判別する(ステップS201)。
また、負荷管理部155は、過去にビジー状態に判別したRAIDグループ160のうち、アクセス量が閾値未満の低負荷状態のものがあると、その低負荷状態の継続時間を不図示のタイマを使って計時する。そして、その計時において、高負荷状態の継続時間が、予め決められた時間に達したとする。すると、負荷管理部155は、そのRAIDグループ160の状態をリストア状態に判別する(ステップS202)。
負荷管理部155は、任意のRAIDグループ160の状態をリストア状態に判別すると、その旨を図6に示すアクセス処理部154に通知する。すると、アクセス処理部154が、そのRAIDグループ160についてリストア処理を実行する。
リストア処理では、詳細については後述するように、複製処理で書き込まれた後に不要となった読出し情報の無効化や、退避処理で書き込まれた情報の本来の書込み先への書込み等が行われる。負荷管理部155からアクセス処理部154への上記の通知は、このようなリストア処理実行のトリガとなる。
ここで、このリストア処理における、上記の本来の書込み先への書込みでは、ステージング処理の一種である後述のリストア時ステージング処理C1と、ライトバック処理の一種である後述の復元処理C2が実行される。これらの処理の実行も、各処理を表すジョブの、キュー管理部154aへの格納を経て行われる。従って、負荷管理部155は、リストア処理に係るこれらのジョブも、RAIDグループ160のアクセス量として数えることとなる。
アクセス処理部154は、リストア処理が終了すると、その旨を負荷管理部155に通知する。
負荷管理部155は、リストア状態に判別したRAIDグループ160について、アクセス処理部154からリストア処理が終了した旨の通知を受けると、そのRAIDグループ160の状態をノーマル状態に判別する(ステップS203)。
負荷管理部155は、以上に説明した判別結果を、負荷管理テーブル156に、以下に説明するように記録する。
図11は、負荷管理テーブルの詳細を示す図である。
負荷管理テーブル156は、RG番号格納部156a、RAID状態格納部156b、Dページ先頭LBA格納部156c、Dページ容量格納部156d、Dページ使用量格納部156eを備えている。負荷管理テーブル156は、ハードウェアとしては、図5に示すディスク制御部113内のRAM113b中の予め決められた領域がその役割を担っている。
RG番号格納部156aには、各RAIDグループ160を表した「0」番から「n」番までの番号が昇順で格納されている。
RAID状態格納部156bには、次のような3つの負荷状態フラグが格納される。1つ目の負荷状態フラグは、ノーマル状態であるか否かを表す負荷状態フラグ(ノーマルフラグ)である。2つ目の負荷状態フラグは、ビジー状態であるか否かを表す負荷状態フラグ(ビジーフラグ)である。3つ目の負荷状態フラグは、リストア状態であるか否かを表す負荷状態フラグ(リストアフラグ)である。負荷管理部155は、これらの負荷状態フラグを設定又は解除することにより、各RAIDグループ160について判別した状態をこの負荷管理テーブル156に記録する。
ここで、この図11の負荷管理テーブル156におけるRG番号格納部156aおよびRAID状態格納部156b以外の格納部についての説明は後に回すこととして、図6に示すバックエンド100bについての説明に戻る。
上述したように、アクセス処理部154は、キュー管理部154aに格納されているジョブが表すライトバック処理やステージング処理を、そのジョブの格納順で実行する。
まず、ライトバック処理について説明する。
ライトバック処理では、そのライトバック処理でRAIDグループ160に書き込まれる情報を記憶しているキャッシュページ112aが、ダーティ状態あるいはグレイ状態であるか否かが、キャッシュページ管理テーブル153の参照によって判定される。
そして、キャッシュページ112aがダーティ状態あるいはグレイ状態であった場合には、そのキャッシュページ112aから情報が読み出されてRAIDグループ160に書き込まれる。
ここで、このライトバック処理には、通常の書込み処理A1と、退避処理A2と、複製処理A3とがある。尚、リストア処理で実行される復元処理C2もライトバック処理の一種であるが、この復元処理C2については、後でリストア処理を説明する際に併せて説明する。
通常の書込み処理A1は、ダーティ状態のキャッシュページ112aに記憶されている書込み情報を、アクセス対象のRAIDグループ160に書き込む処理である。この通常の書込み処理A1は、アクセス対象のRAIDグループ160が上記のノーマル状態である場合に行われる。
退避処理A2は、書込み情報の書込み先であるアクセス対象のRAIDグループ160が、上記のビジー状態である場合に行われる。退避処理A2では、キャッシュページ112aに記憶されている書込み情報が、アクセス対象のRAIDグループ160以外の、ノーマル状態のRAIDグループ160に書き込まれる。
複製処理A3は、グレイ状態のキャッシュページ112aに記憶されている読出し情報の読出し元であるアクセス対象のRAIDグループ160が、上記のビジー状態である場合に行われる。複製処理A3でも、キャッシュページ112aに記憶されている読出し情報が、アクセス対象のRAIDグループ160以外の、ノーマル状態のRAIDグループ160に書き込まれる。
そして、上記のアクセス対象のRAIDグループ160が未だビジー状態であるときに再びその読出し情報を対象としたリードコマンドが送られてきた場合には、複製先となったノーマル状態のRAIDグループ160からその読出し情報が迅速に読み出される。
各RAIDグループ160では、予め決められたLBA範囲の領域が、退避処理A2および複製処理A3において情報の書込みに利用されるディスクページ161に割り当てられている。
尚、サーバ200に対しては、このディスクページ161に相当するLBA範囲を除いた上で一連の通し番号とした見かけ上のLBAが公開されている。サーバ200がライトコマンドやリードコマンドで指定する、アクセス対象のブロックについての先頭LBAは、この見かけ上のLBAである。上述したリードライト処理部151は、サーバ200からコマンドを受信すると、このコマンドで指定されている先頭LBAを、ディスクページ161に相当するLBA範囲を含む実際のLBAに変換する。そして、ストレージ装置100内での処理は、この実際のLBAを使って行われる。以下、この実際のLBAのことを単にLBAと呼ぶ。
ここで、図11を参照して、負荷管理テーブル156におけるRG番号格納部156aおよびRAID状態格納部156b以外の格納部について説明する。
上述したように、この負荷管理テーブル156は、Dページ先頭LBA格納部156c、Dページ容量格納部156d、Dページ使用量格納部156eを備えている。
Dページ先頭LBA格納部156cには、各RAIDグループ160内でディスクページ161に割り当てられている一連のブロックのうちの先頭のブロックのLBAが格納される。
Dページ容量格納部156dには、各RAIDグループ160内でディスクページ161に割り当てられている一連のブロックにおけるブロック数が格納される。ここで、本実施形態では、1つのディスクページ161として、上記のキャッシュページ112aのブロック数(n個)と同数のブロックが割り当てられている。
尚、ディスクページ1つ分のブロック数は、このようにキャッシュページのブロック数と同数に限るものではなく、例えば、キャッシュページのブロック数の整数倍の数等であっても良い。
Dページ使用量格納部156eには、ディスクページ161の使用量として、上記の退避処理A2や複製処理A3によって情報が書き込まれているブロックの数が格納される。
尚、ディスクページの使用状況を示す値としては、このように情報が書き込まれているブロックの数に限るものではなく、例えば、未使用のブロックの数を採用しても良い。
図6に示すアクセス処理部154は、退避処理A2や複製処理A3を実行すると、それらの処理で情報を書き込んだディスクページ161を有するRAIDグループ160の番号と、その情報を書き込んだブロックの数を負荷管理部155に伝える。
負荷管理部155は、負荷管理テーブル156のDページ使用量格納部156eにおいて、その伝えられた番号に対応する欄に、伝えられたブロック数を格納する。
以上で、図11の負荷管理テーブル156についての説明を終了する。
次に、図6に戻って、アクセス処理部154で実行されるステージング処理について説明する。
ステージング処理は、読出し情報をRAIDグループ160から読み出して、リードライト処理部151が確保したキャッシュページ112aに記憶する処理である。このステージング処理には、読出し元からのステージング処理B1と、読出し元以外からのステージング処理B2とがある。尚、リストア処理で実行されるリストア時ステージング処理C1もステージング処理の一種であるが、このリストア時ステージング処理C1についても、後でリストア処理を説明する際に併せて説明する。
読出し元からのステージング処理B1は、アクセス対象のRAIDグループ160から読出し情報を読み出してキャッシュページ112aに記憶する処理である。
読出し元以外からのステージング処理B2は、読出し情報が、退避処理A2や複製処理A3で読出し元以外のRAIDグループ160に書き込まれた情報である場合に実行される。この処理では、アクセス先が、アクセス対象のRAIDグループ160から、退避処理A2での退避先や複製処理A3での複製先のRAIDグループ160に変更される。そして、読出し情報が、その変更されたRAIDグループ160から読み出されて、キャッシュページ112aに記憶される。
次に、アクセス処理部154で実行されるリストア処理について説明する。
このリストア処理では、上記の退避処理A2で、ディスクページ161に書き込まれた書込み情報を、本来の書込み先である、アクセス対象のRAIDグループ160に移動される。また、リストア処理では、複製処理A3でディスクページ161に書き込まれた後に不要となった読出し情報の無効化も行われる。
上述したように、リストア処理は、各RAIDグループ160の負荷状態を定期的に判別している負荷管理部155から、任意のRAIDグループ160の状態をリストア状態に判別した旨の通知があると実行される。
リストア処理における本来の書込み先への情報の移動では、アクセス処理部154によって、まず、キャッシュメモリ112内に、リストア処理の対象である書込み情報の記憶のためのキャッシュページ112aが確保される。このアクセス処理部154によるキャッシュページ112aの確保の方法は、上述したリードライト処理部151によるキャッシュページ112aの確保の方法と同様である。
キャッシュページ112aを確保すると、アクセス処理部154は、キュー管理部154aに、リストア時ステージング処理C1を表すジョブと復元処理C2を表すジョブとの格納を指示する。このとき、ジョブの格納順は、リストア時ステージング処理C1を表すジョブが先で、復元処理C2を表すジョブが後である。
そして、キュー管理部154aに格納されている他のジョブが順次に処理されて、リストア時ステージング処理C1を表すジョブの番が回ってくると、アクセス処理部154が、リストア時ステージング処理C1を実行する。
リストア時ステージング処理C1では、負荷管理部155でリストア状態に判別されたRAIDグループ160を本来の書込み先とし、退避処理A2によって、本来の書込み先とは別のRAIDグループ160内のディスクページ161に書き込まれた書込み情報が処理対象となる。
リストア時ステージング処理C1では、アクセス処理部154が、そのような処理対象の書込み情報をディスクページ161から読み出して、確保したキャッシュページ112aに記憶する。
このようにリストア時ステージング処理C1が終了して、復元処理C2を表すジョブの番が回ってくると、アクセス処理部154は、復元処理C2を実行する。
復元処理C2では、アクセス処理部154が、リストア時ステージング処理C1でキャッシュページ112aに記憶された書込み情報を、負荷管理部155でリストア状態に判別された、本来の書込み先のRAIDグループ160に書き込む。
また、リストア処理における不要となった読出し情報の無効化は、詳細については後述するように、その読出し情報を記憶しているディスクページ161の管理状態がディスクページ管理部157によってインバリッド状態に切り替えられることにより行われる。
アクセス処理部154は、以上に説明したライトバック処理、ステージング処理、およびリストア処理によって、RAIDグループ160への情報の書込みと、RAIDグループ160からの情報の読出しを行う。また、アクセス処理部154は、通常の書込み処理A1等の上述した処理が終了する度に、その旨をキュー管理部154aに通知する。すると、キュー管理部154aが、その終了が通知された処理のジョブを消去する。
以上に説明したアクセス処理部154が、次のような書込部と読出部とを兼ねた一例に相当する。
書込み部は、書込み先記憶部の状態が低負荷状態である場合にはその書込み先記憶部に情報を書き込み、書込み先記憶部の状態が高負荷状態である場合には、その書込み先記憶部以外の低負荷状態である記憶部に情報を書き込むものである。読出部は、読出し元記憶部にアクセスしてその記憶部から情報を読み出すものである。
次に、図6に示す各RAIDグループ160に設けられているディスクページ161について詳細に説明する。
ここで、本実施形態では、各RAIDグループ160に幾つのディスクページ161が設けられているかについては特定しないが、全RAIDグループ160合わせて、キャッシュページ112aと同数のディスクページ161が設けられている。そして、各ディスクページ161には、RAIDグループ160を跨いだ通し番号が割り当てられている。
アクセス処理部154は、退避処理A2や複製処理A3の際には、複数のディスクページ161の中から、退避先あるいは複製先として利用するディスクページ161を確保する。アクセス処理部154は、この確保を、ディスクページ管理部157によって切り替えられる各ディスクページ161の管理状態を参照して行う。
ディスクページ管理部157は、各ディスクページ161の管理状態を、以下に説明するインバリッド状態、ダーティ状態、バリッド状態の3つの状態の間で切り替える。このディスクページ管理部157は、ハードウェアとしては、図5に示すディスク制御部113がその役割を担っている。
ディスクページ161がインバリッド状態にあるとは、そのディスクページ161が空きページとなっていることをいう。
ディスクページ161がダーティ状態にあるとは、ディスクページ161に、本来の書込み先のRAIDグループ160に書き込まれる前の書込み情報が格納されていることをいう。
ディスクページ161がバリッド状態にあるとは、上書き可能な情報が格納されていることをいう。このバリッド状態では、ディスクページ161内の情報が、本来の書込み先のRAIDグループ160に書込み済みの情報やサーバ200への転送済みの読出し情報であり、そのため、ディスクページ161への新規な情報の格納が可能となっている。
任意のディスクページ161の管理状態がインバリッド状態であり、アクセス処理部154が、退避処理A2の際に、このディスクページ161を退避先として確保したとする。すると、ディスクページ管理部157は、その退避先として確保されたディスクページ161の管理状態をダーティ状態に切り替える。
また、任意のディスクページ161の管理状態がインバリッド状態であり、アクセス処理部154が、複製処理A3の際に、このディスクページ161を複製先として確保したとする。すると、ディスクページ管理部157は、その複製先として確保されたディスクページ161の管理状態をバリッド状態に切り替える。
また、退避処理A2で書き込まれた情報が、上記のリストア処理における復元処理C2によって本来の書込み先のRAIDグループ160に書き込まれたとする。すると、ディスクページ管理部157は、その情報が書き込まれていたディスクページ161の管理状態をインバリッド状態に切り替える。
また、バリッド状態のディスクページ161は、現時点で対応しているキャッシュページ112aとは別のキャッシュページ112aの情報の退避先あるいは複製先として確保されることがある。この場合には、ディスクページ管理部157よって、その確保されたディスクページ161の管理状態がインバリッド状態に切り替えられる。そして、インバリッド状態に切り替えられたディスクページ161が、退避先や複製先として利用されることとなる。また、バリッド状態からインバリッド状態への切替えは、リストア処理において、本来の読出し元のRAIDグループ160がビジー状態でなくなり情報の読出しが可能となったために不要となった読出し情報を無効化する際にも行われる。この場合には、その不要となった読出し情報を記憶しているバリッド状態のディスクページ161の管理状態がインバリッド状態に切り替えられる。
ディスクページ管理部157は、以上に説明したディスクページ161の管理状態の切替えを、ディスクページ管理テーブル158内に、各ディスクページ161の番号に対応付けられて記憶されている状態フラグを設定又は解除することによって行う。
図12は、ディスクページ管理テーブルの詳細を示す図である。
ディスクページ管理テーブル158は、Dページ番号格納部158a、Dページ状態格納部158b、アクセスRG番号格納部158c、LBA格納部158d、複製ビットマップ格納部158e、退避ビットマップ格納部158fを備えている。ディスクページ管理テーブル158は、ハードウェアとしては、図5に示すディスク制御部113内のRAM113b中の予め決められた領域がその役割を担っている。
Dページ番号格納部158aには、各ディスクページ161に割り当てられた番号(Dページ番号)が格納される。
Dページ状態格納部158bには、インバリッドフラグ、バリッドフラグ、ダーティフラグが格納される。インバリッドフラグは、ディスクページ161がインバリッド状態であるか否かを表す状態フラグである。バリッドフラグは、ディスクページ161がバリッド状態であるか否かを表す状態フラグである。ダーティフラグは、ディスクページ161がダーティ状態であるか否かを表す状態フラグである。ディスクページ管理部157は、これらの状態フラグを設定又は解除することにより、各ディスクページ161の管理状態の切替えを行う。
アクセスRG番号格納部158cには、退避処理A2や複製処理A3によって情報が書き込まれたディスクページ161について、情報の本来の書込み先や読出し元として指定されたアクセスRG番号が格納される。
LBA格納部158dには、退避処理A2や複製処理A3によって情報が書き込まれたディスクページ161について、その情報が記憶されていたキャッシュページ112aに対応付けられた上記の区分の存在箇所を表すLBAが格納される。
複製ビットマップ格納部158eには、各ディスクページ161内の各ブロックに、複製処理A3で情報が書き込まれているか否かを記述した複製ビットマップが格納される。複製ビットマップは、1ブロックに1ビットの符号を対応させたnビットの情報である。符号「0」が、対応するブロックに読出し情報が未書込みであることを示し、符号「1」が、対応するブロックに読出し情報が書き込まれていることを示す。
退避ビットマップ格納部158fには、各ディスクページ161内の各ブロックに、退避処理A2で情報が書き込まれているか否かを記述した退避ビットマップが格納される。退避ビットマップは、1ブロックに1ビットの符号を対応させたnビットの情報である。符号「0」が、対応するブロックに書込み情報が未書込みであることを示し、符号「1」が、対応するブロックに書込み情報が書き込まれていることを示す。
上述したように、図6に示すアクセス処理部154は、退避処理A2や複製処理A3の実行に当たって、複数のディスクページ161の中から、キャッシュページ112a内の情報の退避先あるいは複製先として利用するディスクページ161を確保する。このとき、アクセス処理部154は、基本的に、以下に述べる処理を実行する。
この基本的な処理では、アクセス処理部154は、ディスクページ管理部テーブル158のDページ状態格納部158b内の状態フラグを参照して、インバリッド状態あるいはバリッド状態のディスクページ161を探す。そして、アクセス処理部154は、探し出したディスクページ161の中から、情報の退避先あるいは複製先として利用するディスクページ161を選択する。この選択の方法については、インバリッド状態あるいはバリッド状態のキャッシュページ112aの中から、必要数のキャッシュページ112aを選択する方法と同じ方法である。
さらに、アクセス処理部154は、その選択したディスクページ161を、退避対象あるいは複製対象の情報が記憶されているキャッシュページ112aに対応付けられている上記の区分に対応付ける。そして、アクセス処理部154は、ディスクページ161に対応付けた区分の存在箇所を表すLBAを、ディスクページ管理部157に命じてディスクページ管理テーブル158に格納させる。
ここで、過去の退避処理A2や複製処理A3に応じて確保されたディスクページ160の中に、上記の区分に対応付けられているものが既に存在する可能性がある。このため、アクセス処理部154は、上記の基本的な処理に先だって、ディスクページ管理テーブル158を参照して、対応済みのディスクページ160が存在するか否かを判定する。
具体的には、アクセス処理部154は、上記の区分の存在箇所を表すLBAで、ディスクページ管理テーブル158のLBA格納部158dを検索する。そして、このLBA格納部158dに、区分の存在箇所を表すLBAが存在したときに、対応済みのディスクページ160が存在すると判定する。他方、LBA格納部158dに、区分の存在箇所を表すLBAが存在しなかったときには、対応済みのディスクページ160が存在しないと判定する。
そして、対応済みのディスクページ161が存在しない場合、アクセス処理部154は、上記の基本的な処理を実行する。
一方、対応済みのディスクページ161が存在する場合、アクセス処理部154は、その既存のディスクページ161を今回の退避先や複製先として採用する。
以上に説明した処理によるディスクページ161の確保あるいは採用のことを、以下では一括りにしてディスクページ161の確保と呼ぶ。
アクセス処理部154は、このようにディスクページ161を確保すると、キャッシュページ112a内の情報を、その確保したディスクページ161に格納する。また、アクセス処理部154は、ディスクページ管理部157に、確保したディスクページ161のDページ番号、確保の契機となった処理の種類(退避処理A2と複製処理A3のうちのいずれあるか)を伝える。さらに、アクセス処理部154は、アクセスRG番号と、ディスクページ161に対応付けた区分の存在箇所を表すLBAもディスクページ管理部157に伝える。
ディスクページ管理部157は、アクセス処理部154から伝えられたこれらの情報に基づいて、ディスクページ管理テーブル158において、その伝えられたDページ番号に対応している、Dページ状態格納部158b内のフラグを設定又は解除する。このフラグの設定又は解除により、ディスクページ管理部157は、ディスクページ161の管理状態の切替えを行う。
また、ディスクページ管理部157は、アクセスRG番号を、アクセスRG番号格納部158cにおける、上記のように伝えられたDページ番号に対応している欄に格納する。
また、ディスクページ管理部157は、上述したように、確保したディスクページ161に対応付けた区分の存在箇所を表すLBAを、LBA格納部158dにおける、そのディスクページ161のDページ番号に対応している欄に格納する。
さらに、アクセス処理部154は、ディスクページ161に情報を書き込む際に、そのディスクページ161のどのブロックに情報を書き込んだかをディスクページ管理部157に伝える。
すると、ディスクページ管理部157は、複製ビットマップあるいは退避ビットマップにおける、その伝えられたブロックに対応する符号を「1」にする。このとき、アクセス処理部154から伝えられた処理の種類が複製処理A3であった場合には、ディスクページ管理部157は、複製ビットマップ中の符号を「1」にする。また、処理の種類が退避処理A3であった場合には、ディスクページ管理部157は、退避ビットマップ中の符号を「1」にする。
以上で、図6に示すストレージ装置100の各要素についての説明を終了し、以下では、上述の説明と重複する部分もあるが、このストレージ装置100における処理の詳細について説明する。
まず、フロントエンド100aでの処理に注目した説明を、コマンドで指定されたアクセス対象のRAIDグループ160がノーマル状態である場合、ビジー状態である場合、リストア状態である場合に分けて行う。各場合の説明は、コマンドの種類、上記のキャッシュページ112aの管理状態等によって想定される複数のケースそれぞれについて行う。その後で、バックエンド100bでの処理に注目した説明を行う。
図13は、アクセス対象のRAIDグループがノーマル状態である場合に想定される複数のケースを表形式で示す図である。
この図13に示す表T1には、ケースn1からケースn3までの3つのケースが示されている。
リードライト処理部151は、上述したように、コマンドを受信すると、過去のコマンドに応じて確保されたキャッシュページ112aの中に、今回のアクセス対象のブロックを包含する区分に対応付けられているものが存在するか否かを判定する。
このようなキャッシュページ112aが存在する場合を、以下では「確保済み」と称する。また、キャッシュページ112aが全く存在しない場合、あるいは、アクセス対象のブロックを包含する区分の一部についてキャッシュページ112aが存在しない場合を、以下では「未確保」と称する。
図13の表T1におけるケースn1は、アクセス対象のRAIDグループ160がノーマル状態であって、キャッシュページ112aが未確保であったケースである。
以下、このケースn1について、コマンドがリードコマンドである場合(ケースn1_1)と、コマンドがライトコマンドである場合(ケースn1_2)を説明する。
[ケースn1_1]
ケースn1_1では、リードライト処理部151は、バックエンド100bのステージング処理での読出し情報の記憶に必要な数のキャッシュページ112aを、上述したようにキャッシュメモリ112上に確保する。
キャッシュページ112aが確保されると、リードライト処理部151は、アクセス対象のRAIDグループ160からのステージング処理を要求するステージング要求信号をバックエンド100bに送信する。この要求に応じてバックエンド100bで実行されるステージング処理は、図6を参照して説明した読出し元からのステージング処理B1となる。そして、リードライト処理部151は、ステージング処理で読出し情報が記憶されたキャッシュページ112aからその読出し情報を読み出してサーバ200に転送する。その転送が終了すると、リードライト処理部151は、サーバ200に、リードコマンドに応じた処理が完了したことを通知する完了通知信号を送信する。
また、リードライト処理部151は、キャッシュページ管理部152に次のような6つの情報を伝える。
1つ目の情報は、コマンドの種類である。ケースn1_1では、コマンドの種類はリードコマンドである。2つ目の情報は、コマンドで指定された、アクセス対象のRAIDグループ160を表すアクセスRG番号である。3つ目の情報は、アクセス対象のRAIDグループ160の負荷状態である。リードライト処理部151は、この負荷状態を、上述の負荷管理テーブル156を参照して得る。ケースn1_1では、この負荷状態はノーマル状態である。4つ目の情報は、確保されたキャッシュページ112aのCページ番号である。5つ目の情報は、その確保されたキャッシュページ112aに対応付けられた上記の区分の存在箇所を表すLBAである。6つ目の情報は、その確保されたキャッシュページ112aのn個のブロック112a_1のうち情報が記憶されたブロック112a_1の位置である。
キャッシュページ管理部152は、キャッシュページ管理テーブル153のアクセスRG番号格納部153cにおける、伝えられたCページ番号に対応した欄に、伝えられたアクセスRG番号を格納する。また、キャッシュページ管理部152は、LBA格納部153dにおける、そのCページ番号に対応した欄に、伝えられたLBAを格納する。
また、キャッシュページ管理部152は、Cページ状態格納部153bにおける、そのCページ番号に対応した欄内の状態フラグに対して次のようなフラグ操作を行う。
ケースn1_1では、キャッシュページ112aが新たに確保される。この場合、確保時のキャッシュページ112aの管理状態はインバリッド状態である。また、コマンドの種類がリードコマンドであるので、キャッシュページ112aに記憶される情報は、上書き可能なバリッド情報である。そこで、キャッシュページ管理部152は、上記の欄内の、インバリッドフラグを解除してバリッドフラグを設定する。このフラグ操作により、確保されたキャッシュページ112aの管理状態がインバリッド状態からバリッド状態に切り替えられる。
また、キャッシュページ管理部152は、バリッドビットマップ格納部153eにおける、上記のCページ番号に対応した欄内のバリッドビットマップに対し、次のようなビットマップ操作を行う。即ち、キャッシュページ管理部152は、そのバリッドビットマップにおける、その伝えられた位置のブロック112a_1に対応する符号を「1」にする。
次に、図13の表T1中のケースn1_2について説明する。
[ケースn1_2]
リードライト処理部151は、ケースn1_2の場合、サーバ200から転送されてくる書込み情報の記憶に必要なキャッシュページ112aを確保する。そして、必要なキャッシュページ112aが確保されると、リードライト処理部151は、サーバ200に対し、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。
サーバ200から書込み情報が転送されてくると、リードライト処理部151は、その転送されてきた書込み情報を、確保したキャッシュページ112aの、コマンドで指定されたLBA範囲に対応するブロック112a_1に記憶する。
また、リードライト処理部151は、キャッシュページ管理部152に上記の6つの情報を伝える。そして、キャッシュページ管理部152が、その伝えられた情報に基づいて、キャッシュページ管理テーブル153への情報の格納、フラグ操作、およびビットマップ操作を行う。
ここで、ケースn1_2では、コマンドの種類がライトコマンドであるので、キャッシュページ112aに記憶される情報は、アクセス対象のRAIDグループ160へ書込み前のダーティ情報である。そこで、キャッシュページ管理部152は、インバリッドフラグを解除してダーティフラグを設定する。このフラグ操作により、確保されたキャッシュページ112aの管理状態がインバリッド状態からダーティ状態に切り替えられる。
また、ビットマップ操作については、ダーティビットマップについて行われる。操作内容については、上記のケースn1_1でのビットマップ操作の操作内容と同じである。
次に、図13の表T1中のケースn2について説明する。
[ケースn2]
このケースn2は、アクセス対象のRAIDグループ160がノーマル状態であって、コマンドがリードコマンドであり、さらに、キャッシュページ112aが確保済みであったケースである。
このケースn2では、確保済みのキャッシュページ112aの管理状態がバリッド状態である場合とダーティ状態である場合とがある。これらの場合、バリッドビットマップやダーティビットマップでは、キャッシュページ112a内のn個のブロック112a_1のうち、情報が格納されているブロック112a_1に対応する位置の符号が「1」となっている。
ケースn2では、まず、リードライト処理部151が、バリッドビットマップとダーティビットマップとのいずれかにおいて、リードコマンドで指定されたLBA範囲に対応する位置の符号が全て「1」になっているか否かを判定する。
バリッドビットマップとダーティビットマップとのいずれかにおいて、これらの符号が全て「1」になっている場合、キャッシュページ112a内に、必要な読出し情報が全てそろっていることとなる。従って、この場合には、リードライト処理部151は、そのキャッシュページ112aの、リードコマンドで指定されたLBA範囲に対応するブロック112a_1から読出し情報を読み出してサーバ200に転送する。
また、この場合、リードライト処理部151は、キャッシュページ管理部152に、キャッシュページ管理テーブル153内の情報について変更の必要がない旨を通知する。その結果、キャッシュページ管理テーブル153内の状態フラグや各ビットマップ等がそのまま維持される。
一方、リードコマンドで指定されたLBA範囲に対応する位置の符号のうち、バリッドビットマップとダーティビットマップとの両方で「0」になっているものがある場合、キャッシュページ112a内に、必要な読出し情報がそろっていないこととなる。つまり、キャッシュページ112a内で、読出し情報のうち、その「0」の符号に対応するLBAのブロック112a_1の情報が欠けている。このため、リードライト処理部151は、その「0」の符号に対応するLBAのブロック112a_1についてのステージング処理の実行を要求するステージング要求信号をバックエンド100bに送信する。そして、このステージング要求信号に応じて実行されるステージング処理により、キャッシュページ112a内における上記のような情報の欠けが埋められる。このステージング処理は、図6を参照して説明した読出し元からのステージング処理B1となる。
その後、リードライト処理部151は、キャッシュページ112aの、リードコマンドで指定されたLBA範囲に対応するブロック112a_1から読出し情報を読み出してサーバ200に転送する。
また、この場合、リードライト処理部151は、キャッシュページ管理部152に、キャッシュページ112aのn個のブロック112a_1のうち、ステージング処理によって情報が記憶されたブロック112a_1の位置を伝える。すると、キャッシュページ管理部152が、その伝えられた位置に基づいてビットマップ操作を行う。
また、この場合、リードライト処理部151は、キャッシュページ管理部152に、キャッシュページ管理テーブル153内のバリッドビットマップ以外の情報については変更の必要がない旨を通知する。その結果、状態フラグ等についてはそのまま維持される。
次に、図13の表T1中のケースn3について説明する。
[ケースn3]
このケースn3は、アクセス対象のRAIDグループ160がノーマル状態であって、コマンドがライトコマンドであり、さらに、キャッシュページ112aが確保済みであったケースである。
ケースn3では、まず、リードライト処理部151が、サーバ200に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。
サーバ200から書込み信号が転送されてくると、リードライト処理部151は、キャッシュページ112aの、コマンドで指定されたLBA範囲に対応するブロック112a_1にその書込み情報を上書きする。その後、リードライト処理部151は、サーバ200に完了通知信号を送信する。
また、このケースn3では、リードライト処理部151から伝えられる情報に基づいて、キャッシュページ管理部152が、確保済みのキャッシュページ112aの状態フラグについて次のようなフラグ操作を行う。
このケースn3でも、上記のケースn2と同様に、確保済みのキャッシュページ112aの管理状態がバリッド状態である場合とダーティ状態である場合とがある。
管理状態がバリッド状態である場合、キャッシュページ管理部152は、バリッドフラグを解除してダーティフラグを設定する。一方、管理状態がダーティ状態である場合、キャッシュページ管理部152は、設定された状態のダーティフラグをそのまま維持する。
また、このケースn3では、キャッシュページ管理部152が、ダーティビットマップとバリッドビットマップとの双方について、次のようなビットマップ操作を行う。
まず、ダーティビットマップにおける、情報が記憶されたブロック112a_1に対応する符号を「1」にする。さらに、キャッシュページ管理部152は、バリッドビットマップにおける、そのブロック112a_1に対応する符号を「0」にする。
また、ケースn3では、リードライト処理部151は、キャッシュページ管理部152に、状態フラグとビットマップ以外の情報については変更の必要がない旨を通知する。その結果、アクセスRG番号や、区分の存在箇所を表すLBA等についてはそのまま維持される。
以上で、アクセス対象のRAIDグループ160がノーマル状態である場合についての説明を終了する。
尚、アクセス対象のRAIDグループ160がノーマル状態の場合、そのRAIDグループ160について確保済みのキャッシュページ112aはバリッド状態かダーティ状態となっている。このため、図13の表T1では、確保済みのキャッシュページ112aがグレイ状態であるというケースは生じないこととなっている。
次に、アクセス対象のRAIDグループがビジー状態である場合について説明する。
図14は、アクセス対象のRAIDグループがビジー状態である場合に想定される複数のケースを表形式で示す図である。
この図14に示す表T2には、ケースb1からケースb5までの5つのケースが示されている。
図14の表T1におけるケースb1は、アクセス対象のRAIDグループ160がビジー状態であって、キャッシュページ112aが未確保であったケースである。
以下、このケースb1について、コマンドがリードコマンドである場合(ケースb1_1)と、コマンドがライトコマンドである場合(ケースb1_2)を説明する。
[ケースb1_1]
ケースb1_1では、リードライト処理部151は、まず、読出し情報の記憶に必要なキャッシュページ112aを、キャッシュメモリ112上に確保する。
このケースb1_1では、元々キャッシュページ112aが未確保であったので、キャッシュメモリ112には読出し情報は存在していないことになる。
ただし、このケースb1_1では、アクセス対象のRAIDグループ160がビジー状態となっている。そして、ビジー状態のRAIDグループ160については、図6を参照して説明した退避処理A2や複製処理A3が過去に行われている可能性がある。つまり、今回のリードコマンドで読出しを要求されている情報が、過去に実行された退避処理A2や複製処理A3によってディスクページ161に書き込まれている可能性がある。
このため、ケースb1_1では、リードライト処理部151が、このような情報がディスクページ161に書き込まれているか否かの判定を行う。この判定は、リードライト処理部151が、図12に示すディスクページ管理テーブル158を次のように参照することで行われる。
リードライト処理部151は、まず、リードコマンドで指定されたアクセスRG番号でアクセスRG番号格納部158c内を検索する。そのアクセスRG番号がアクセスRG番号格納部158c内に存在した場合、リードライト処理部151は、LBA格納部158dを参照する。この参照により、リードライト処理部151は、コマンドで指定されたLBA範囲を包含する1つの又は一連の区分に対応したディスクページ161が存在しているか否かを判定する。
そして、対応済みのディスクページ161が存在していた場合、リードライト処理部151は、そのディスクページ161に対応する退避ビットマップと複製ビットマップについて次のような判定を行う。
リードライト処理部151は、その退避ビットマップと複製ビットマップとのいずれかにおいて、リードコマンドで指定されたLBA範囲に対応する位置の符号が全て「1」になっているか否かを判定する。
退避ビットマップと複製ビットマップとのいずれかにおいて、これらの符号が全て「1」になっている場合、ディスクページ161内に、必要な読出し情報が全てそろっていることとなる。
この場合、リードライト処理部151は、そのディスクページ161から読出し情報を読み出して、上記のように確保されたキャッシュページ112aへ記憶するステージング処理の実行を要求するステージング要求信号をバックエンド100bに送信する。
このディスクページ161からのステージング処理は、そのディスクページ161が属するRAIDグループ160がノーマル状態であるので、バックエンド100bにおいて直ちに実行されることとなる。このときに実行されるステージング処理は、図6を参照して説明した、読出し元以外からのステージング処理B2である。
一方、リードコマンドで指定されたLBA範囲に対応する位置の符号のうち、退避ビットマップと複製ビットマップとの両方で「0」になっているものがある場合、ディスクページ161内に、必要な読出し情報がそろっていないこととなる。
この場合、リードライト処理部151は、アクセス対象のRAIDグループ160から読出し情報を読み出してキャッシュページ112aへ記憶するステージング処理の実行を要求するステージング要求信号をバックエンド100bに送信する。
このステージング処理は、読出し元のRAIDグループ160がビジー状態であるので、バックエンド100bでは、そのRAIDグループ160が、アクセス量が閾値未満の低負荷状態となるまで実行が延期される。そして、読出し元のRAIDグループ160が低負荷状態となると、ステージング処理が実行される。このときに実行されるステージング処理は、図6を参照して説明した、読出し元からのステージング処理B1である。
尚、このときにキャッシュページ112aに記憶された読出し情報は、詳細については後述するように、複製処理A3によって、アクセス対象のRAIDグループ160以外の、ノーマル状態のRAIDグループ160のディスクページ161に書き込まれる。
以上に説明したいずれかのステージング処理によって読出し情報がキャッシュページ112aに記憶されると、リードライト処理部151は、キャッシュページ112aから読出し情報を読み出してサーバ200に転送する。そして、その転送が終了すると、リードライト処理部151は、サーバ200に完了通知信号を送信する。
また、このケースb1_1では、キャッシュページ管理部152が、キャッシュページ管理テーブル153において、確保されたキャッシュページ112aに対応付けられたインバリッドフラグを解除してグレイフラグを設定する。これにより、そのキャッシュページ112aの管理状態がグレイ状態に切り替えられる。また、キャッシュページ管理部152は、バリッドビットマップについて、情報が記憶されたブロック112a_1に対応する位置の符号を「1」にするビットマップ操作を行う。
次に、図14の表T2中のケースb1_2について説明する。
[ケースb1_2]
ケースb1_2では、リードライト処理部151は、書込み情報の記憶に必要なキャッシュページ112aを、キャッシュメモリ112上に確保する。そして、キャッシュページ112aが確保された後、リードライト処理部151は、サーバ200に対し、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。サーバ200から書込み情報が転送されてくると、リードライト処理部151は、その転送されてくる書込み情報をキャッシュページ112aに記憶する。その記憶が終了すると、リードライト処理部151は、サーバ200に完了通知信号を送信する。
尚、このときにキャッシュページ112aに記憶された書込み情報は、詳細については後述するように、退避処理A2によって、アクセス対象のRAIDグループ160以外の、ノーマル状態のRAIDグループ160のディスクページ161に書き込まれる。
そして、このケースb1_2でも、確保されたキャッシュページ112aの管理状態がグレイ状態に切り替えられる。また、ダーティビットマップについて、情報が記憶されたブロック112a_1に対応する位置の符号を「1」にするビットマップ操作が行われる。
次に、図14の表T2中のケースb2について説明する。
[ケースb2]
このケースb2は、アクセス対象のRAIDグループ160がビジー状態であって、コマンドがリードコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースb2は、その確保済みのキャッシュページ112aの管理状態が、バリッド状態あるいはダーティ状態となっているケースである。
このケースb2で実行される処理では、まず、リードライト処理部151が、バリッドビットマップとダーティビットマップとのいずれかにおいて、リードコマンドで指定されたLBA範囲に対応する位置の符号が全て「1」になっているか否かを判定する。
バリッドビットマップとダーティビットマップとのいずれかにおいて、これらの符号が全て「1」になっている場合、リードライト処理部151は、次のような処理を実行する。即ち、この場合、リードライト処理部151は、そのキャッシュページ112aの、リードコマンドで指定されたLBA範囲に対応するブロック112a_1から読出し情報を読み出してサーバ200に転送する。
一方、リードコマンドで指定されたLBA範囲に対応する位置の符号のうち、バリッドビットマップとダーティビットマップとの両方で「0」になっているものがある場合、リードライト処理部151は、次のような処理を実行する。
この場合、読出し情報のうち、バリッドビットマップとダーティビットマップとの両方で「0」になっているLBAに対応した情報が、キャッシュページ112a内で欠けている。そこで、リードライト処理部151は、図12に示すディスクページ管理テーブル158を参照して、上記のようにキャッシュページ112a内で欠けている情報が、ディスクページ161上に存在しているか否かの判定を行う。
まず、リードコマンドで指定されたアクセスRG番号でアクセスRG番号格納部158c内を検索する。そのアクセスRG番号がアクセスRG番号格納部158c内に存在した場合、リードライト処理部151は、LBA格納部158dを参照する。この参照により、リードライト処理部151は、コマンドで指定されたLBA範囲を包含する1つの又は一連の区分に対応したディスクページ161が存在しているか否かを判定する。
そして、対応済みのディスクページ161が存在していた場合、リードライト処理部151は、そのディスクページ161に対応する退避ビットマップと複製ビットマップについて次のような判定を行う。
リードライト処理部151は、その退避ビットマップと複製ビットマップとのいずれかにおいて、バリッドビットマップとダーティビットマップとの両方で「0」になっているLBAに対応した符号が全て「1」になっているか否かを判定する。
退避ビットマップと複製ビットマップとのいずれかにおいて、これらの符号が全て「1」になっている場合、キャッシュページ112a内で欠けている情報が、ディスクページ161上に存在していることとなる。この場合、リードライト処理部151は、バックエンド100bに対し、次のようなステージング処理の実行を要求するステージング要求信号を送信する。即ち、このステージング処理は、バリッドビットマップとダーティビットマップとの両方で「0」になっているLBAに対応した情報を、ディスクページ161から読み出してキャッシュページ112aに記憶する処理である。このステージング処理により、キャッシュページ112a内における情報の欠けが、ディスクページ161内の情報によって埋められる。このディスクページ161からのステージング処理は、そのディスクページ161が属するRAIDグループ160がノーマル状態であるので、バックエンド100bにおいて直ちに実行されることとなる。このときに実行されるステージング処理は、図6を参照して説明した、読出し元以外からのステージング処理B2である。
一方、退避ビットマップと複製ビットマップとの両方で、バリッドビットマップとダーティビットマップとで「0」になっているLBAに対応した符号のうち「0」になっているものがある場合、ディスクページ161上でも情報の欠けがあることとなる。
この場合には、リードライト処理部151は、バックエンド100bに対して次のようなステージング処理の実行を要求するステージング要求信号を送信する。
即ち、このステージング処理は、バリッドビットマップとダーティビットマップとの両方で「0」になっているLBAに対応した情報を、読出し元のRAIDグループ160から読み出してキャッシュページ112aに記憶する処理である。
ただし、ケースb2では、読出し元のRAIDグループ160がビジー状態であるので、バックエンド100bでは、そのRAIDグループ160が、アクセス量が閾値未満の低負荷状態となるまでステージング処理の実行が延期される。そして、読出し元のRAIDグループ160が低負荷状態となると、ステージング処理が実行される。このときに実行されるステージング処理は、図6を参照して説明した、読出し元からのステージング処理B1である。
尚、このときにキャッシュページ112aに記憶された読出し情報は、詳細については後述するように、複製処理A3によってディスクページ161に書き込まれる。
以上に説明したいずれかのステージング処理によって読出し情報がキャッシュページ112aに記憶されると、リードライト処理部151は、キャッシュページ112aから読出し情報を読み出してサーバ200に転送する。そして、その転送が終了すると、リードライト処理部151は、サーバ200に完了通知信号を送信する。
また、このケースb2では、キャッシュページ管理部152は、読出し情報が記憶されたキャッシュページ112aに対応付けられたバリッドフラグあるいはダーティフラグを解除してグレイフラグを設定する。これにより、そのCページ番号が示すキャッシュページ112aの管理状態がグレイ状態に切り替えられる。
また、キャッシュページ112a内に全ての読出し情報がそろっており、バックエンド100bにステージング要求信号が送信されなかった場合、リードライト処理部151は、次のような処理を行う。この場合、リードライト処理部151は、キャッシュページ管理部152に、キャッシュページ管理テーブル153内の、状態フラグ以外の情報について変更の必要がない旨を通知する。その結果、キャッシュページ管理テーブル153内の各ビットマップ等がそのまま維持される。
一方、キャッシュページ112a内に情報の欠けがあり、バックエンド100bにステージング処理の実行を要求する要求信号を送信した場合、次のようなビットマップ操作が行われる。即ち、バリッドビットマップにおける、情報が記憶されたブロック112a_1に対応する符号が「1」にされる。
また、この場合、キャッシュページ管理テーブル153内のアクセスRG番号等についてはそのまま維持される。
次に、図14の表T2中のケースb3について説明する。
[ケースb3]
このケースb3は、アクセス対象のRAIDグループ160がビジー状態であって、コマンドがリードコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースb3は、その確保済みのキャッシュページ112aの管理状態がグレイ状態となっているケースである。
このケースb3で実行される処理は、処理の対象となるキャッシュページ112aの管理状態が、元々グレイ状態となっている点を除いて、上述のケースb2で実行される処理と同様である。
尚、このケースb3では、キャッシュページ管理テーブル153内の、ビットマップ以外の情報についてはそのまま維持される。
次に、図14の表T2中のケースb4について説明する。
[ケースb4]
このケースb4は、アクセス対象のRAIDグループ160がビジー状態であって、コマンドがライトコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースb4は、その確保済みのキャッシュページ112aの管理状態が、バリッド状態あるいはダーティ状態となっているケースである。
ケースb4では、リードライト処理部151は、キャッシュメモリ112aが確保済みであることを確認すると、サーバ200に対し、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。そして、サーバ200から書込み情報が転送されてくると、リードライト処理部151は、確保済みのキャッシュページ112aに、その転送されてきた書込み情報を上書きする。その後、リードライト処理部151は、サーバ200に完了通知信号を送信する。
尚、このときにキャッシュページ112aに記憶された書込み情報は、詳細については後述するように、退避処理A2によって、アクセス対象のRAIDグループ160以外の、ノーマル状態のRAIDグループ160のディスクページ161に書き込まれる。
また、このケースb4では、キャッシュページ管理部152が、確保済みのキャッシュページ112aの状態フラグについて、次のようなフラグ操作を行う。即ち、そのキャッシュページ112aがバリッド状態であった場合には、バリッドフラグが解除されてダーティフラグが設定される。一方、キャッシュページ112aが元々ダーティ状態であった場合には、設定された状態のダーティフラグがそのまま維持される。
また、キャッシュページ管理部152は、そのキャッシュページ112aにおいて情報が記憶されたブロック112a_1の位置に基づいて、ダーティビットマップとバリッドビットマップに対するビットマップ操作を行う。
また、キャッシュページ管理テーブル153内の、状態フラグとダーティビットマップ以外の情報についてはそのまま維持される。
次に、図14の表T2中のケースb5について説明する。
[ケースb5]
このケースb5は、アクセス対象のRAIDグループ160がビジー状態であって、コマンドがライトコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースb4は、その確保済みのキャッシュページ112aの管理状態がグレイ状態となっているケースである。
このケースb5で実行される処理は、処理の対象となるキャッシュページ112aの管理状態が、元々グレイ状態となっている点を除いて、上述のケースb4で実行される処理と同様である。
尚、このケースb4では、キャッシュページ管理テーブル153内の、ビットマップ以外の情報がそのまま維持される。
以上で、アクセス対象のRAIDグループ160がビジー状態である場合についての説明を終了する。
次に、アクセス対象のRAIDグループ160がリストア状態である場合について説明する。
図15は、アクセス対象のRAIDグループがリストア状態である場合に想定される複数のケースを表形式で示す図である。
この図15に示す表T3には、ケースr1からケースr4までの4つのケースが示されている。
図15の表T3におけるケースr1は、アクセス対象のRAIDグループ160がリストア状態であって、キャッシュページ112aが未確保であったケースである。
以下、このケースr1について、コマンドがリードコマンドである場合(ケースr1_1)と、コマンドがライトコマンドである場合(ケースr1_2)を説明する。
[ケースr1_1]
このケースr1_1で実行される処理は、アクセス対象のRAIDグループ160がリストア状態である点を除いて、上述のケースb1_1で実行される処理と同様である。
このケースr1_1では、確保されたキャッシュページ112aの管理状態がバリッド状態に切り替えられる。
次に、図15の表T3中のケースr1_2について説明する。
[ケースr1_2]
このケースr1_2で実行される処理は、アクセス対象のRAIDグループ160がリストア状態である点を除いて、上述のケースb1_2で実行される処理と同様である。
このケースr1_2では、確保されたキャッシュページ112aの管理状態がダーティ状態に切り替えられる。
次に、図15の表T3中のケースr2について説明する。
[ケースr2]
このケースr2は、アクセス対象のRAIDグループ160がリストア状態であって、コマンドがリードコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースr2は、その確保済みのキャッシュページ112aの管理状態が、バリッド状態、ダーティ状態、グレイ状態のうちのいずれかの状態となっているケースである。
このケースr2で実行される処理は、アクセス対象のRAIDグループ160がリストア状態である点を除いて、上述のケースb2で実行される処理と同様である。
このケースr2では、キャッシュページ管理テーブル153内の情報がそのまま維持される。
次に、図15の表T3中のケースr3について説明する。
[ケースr3]
このケースr3は、アクセス対象のRAIDグループ160がリストア状態であって、コマンドがライトコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースr2は、その確保済みのキャッシュページ112aの管理状態が、バリッド状態あるいはダーティ状態となっているケースである。
このケースr2で実行される処理は、アクセス対象のRAIDグループ160がリストア状態である点を除いて、図13の表T1におけるケースn3で実行される処理と同様である。
このケースr2でも、ケースn3のときと同様、確保されたキャッシュページ112aがバリッド状態であった場合には、管理状態がダーティ状態に切り替えられる。一方、そのキャッシュページ112aが元々ダーティ状態であった場合には、管理状態はダーティ状態のまま維持される。
次に、図15の表T3中のケースr4について説明する。
[ケースr4]
このケースr4は、アクセス対象のRAIDグループ160がリストア状態であって、コマンドがライトコマンドであり、キャッシュページ112aが確保済みであって、さらに、次のような場合に相当する。即ち、このケースr2は、その確保済みのキャッシュページ112aの管理状態がグレイ状態となっているケースである。
このケースr4で実行される処理は、キャッシュページ管理部152による状態フラグの設定又は解除を除いて、上記のケースr3で実行される処理と同様である。
このケースr4では、確保されたキャッシュページ112aの管理状態がグレイ状態からダーティ状態に切り替えられる。
以上で、ストレージ装置100における処理の詳細についての、フロントエンド100aでの処理に注目した説明を終了する。
以下では、バックエンド100bでの処理に注目した説明を、ライトバック処理とリストア処理とについて説明する。
まず、ライトバック処理について説明する。
上述したように、ライトバック処理は、キャッシュページ112aに記憶されている情報を、RAIDグループ160に書き込む処理である。以下、このライトバック処理についての説明を、処理対象のキャッシュページ112aの管理状態や、アクセス対象のRAIDグループ160の状態によって想定される複数のケースそれぞれについて行う。
図16は、ライトバック処理について想定される複数のケースを表形式で示す図である。
この図15に示す表T4には、ケースw1からケースw5までの5つのケースが示されている。
まず、ケースw1について説明する。
[ケースw1]
ケースw1は、処理対象のキャッシュページ112aがダーティ状態であり、アクセス対象のRAIDグループ160がノーマル状態であるケースである。
このケースw1での書込み対象の情報は、ライトコマンドに応じてキャッシュページ112aに記憶されている、RAIDグループ160への書込み前の書込み情報(ダーティ情報)である。
そして、ケースw1での、その書込み情報の書込み先は、アクセス対象のRAIDグループ160における、キャッシュページ112aに対応付けられた上記の区分内のブロックである。
ここで、処理対象のキャッシュページ112aでは、読出し情報や、RAIDグループ160への書込みが既に終了している書込み情報が、バリッド情報として上記のダーティ情報と混在している可能性がある。このような情報は、図9のキャッシュページ管理テーブル153において、バリッドビットマップでは「1」に対応しているが、ダーティビットマップでは「0」に対応している。
そこで、ケースw1では、アクセス処理部154が、まず、キャッシュページ管理テーブル153における、処理対象のキャッシュページ112aに対応付けられたダーティビットマップを参照する。そして、アクセス処理部154は、キャッシュページ112aに記憶されている情報のうち、このダーティビットマップ中の「1」に対応する情報のみを読み出す。
続いて、アクセス処理部154は、読み出した情報を、アクセス対象のRAIDグループ160における上記の区分内のブロックに書込む。
この書込みの終了後、アクセス処理部154は、フロントエンド100aに対し、次のようなビットマップ操作の実行を要求する要求信号を送信する。
そのビットマップ操作では、処理対象のキャッシュページ112aに対応付けられたダーティビットマップが、そのキャッシュページ112aに対応付けられたバリッドビットマップに論理和される。そして、その後で、ダーティビットマップの符号が全て「0」に設定される。
処理対象のキャッシュページ112a内の、上記のようにRAIDグループ160への書込みが終了した情報は、このビットマップ操作により、バリッドビットマップ中の「1」に対応しダーティビットマップ中の「0」に対応したバリッド情報となる。
また、アクセス処理部154は、フロントエンド100aに対し、処理対象のキャッシュページ112aの管理状態を、ダーティ状態からバリッド状態に切替える切替え処理の実行を要求する要求信号を送信する。この要求信号を受けて、フロントエンド100aでは、キャッシュ管理部152が、処理対象のキャッシュページ112aに対応付けられたダーティフラグを解除してバリッドフラグを設定する。
以上に説明したケースw1での処理は、図6を参照して説明した通常の書込み処理A1である。
次に、ケースw2について説明する。
[ケースw2]
ケースw2は、処理対象のキャッシュページ112aがダーティ状態であり、アクセス対象のRAIDグループ160がビジー状態であるケースである。
このケースw2での書込み対象の情報も、ライトコマンドに応じてキャッシュページ112aに記憶されているダーティ情報である。
このケースw2では、アクセス対象のRAIDグループ160がビジー状態であり、直ぐには、このRAIDグループ160への書込みが難しい。
そこで、ケースw2では、アクセス対象のRAIDグループ160以外の、ノーマル状態のRAIDグループ160内のディスクページ161を書込み先とした、図6を参照して説明した退避処理A2のための準備が行われる。
ケースw2では、アクセス処理部154が、フロントエンド100aに対し、処理対象のキャッシュページ112aの管理状態を、ダーティ状態からグレイ状態に切替える切替え処理の実行を要求する要求信号を送信する。この要求信号を受けて、フロントエンド100aでは、キャッシュ管理部152が、処理対象のキャッシュページ112aに対応付けられたダーティフラグを解除してグレイフラグを設定する。
この管理状態の切替え処理により、処理対象のキャッシュページ112a内の情報は、退避処理A2の実行が予定されたグレイ情報となる。この退避処理A2は、後述のケースw4での処理に相当する。
次に、ケースw3について説明する。
[ケースw3]
ケースw3は、処理対象のキャッシュページ112aがダーティ状態であり、アクセス対象のRAIDグループ160がリストア状態であるケースである。
このケースw3での書込み対象の情報も、ライトコマンドに応じてキャッシュページ112aに記憶されているダーティ情報である。
そして、ケースw3での、その書込み情報の書込み先は、アクセス対象のRAIDグループ160における、キャッシュページ112aに対応付けられた上記の区分内のブロックである。
このケースw3では、過去の退避処理A2によって、処理対象のキャッシュページ112aと同じ区分に対応付けられたディスクページ161がダーティ状態で存在する可能性がある。そのようなディスクページ161内の情報は、今回のアクセス対象のRAIDグループ160への書込み待ちとなっている。このような情報が存在する場合、最新情報である今回の書込み情報を優先しつつ、今回の書込み情報と、ディスクページ161内の情報とを合わせてアクセス対象のRAIDグループ160に書き込む必要がある。
そこで、このケースw3では、アクセス処理部154が、まず、このような書込み待ちの書込み情報が存在する可能性があるか否かを判定する。
この判定は、アクセス処理部154が、図12に示すディスクページ管理テーブル158を次のように参照することで行われる。
アクセス処理部154は、まず、アクセス対象のRAIDグループ160を示すアクセスRG番号でアクセスRG番号格納部158c内を検索する。
そのアクセスRG番号がアクセスRG番号格納部158c内に存在した場合、アクセス処理部154は、処理対象のキャッシュページ112aに対応付けられた区分の存在箇所を表すLBAでLBA格納部158d内を検索する。
そのLBAがLBA格納部158d内に存在しなかった場合、アクセス処理部154は、書込み待ちの書込み情報が存在する可能性はないものと判定する。この場合には、上記のケースw1と同様の処理が実行される。
一方、上記の区分の存在箇所を表すLBAが、LBA格納部158d内に存在した場合、アクセス処理部154は、書込み待ちの書込み情報が存在する可能性があると判定する。この場合には、アクセス処理部154は、さらに、次のような処理を行う。
アクセス処理部154は、まず、ディスクページ管理部157に対し、そのディスクページ161の退避ビットマップにおける、キャッシュページ112aに対応付けられたダーティビットマップの「1」の符号に対応した符号を「0」にするように命じる。
続いて、アクセス処理部154は、そのディスクページ161から、退避ビットマップの「1」の符号に対応したブロックの情報を読み出す。そして、アクセス処理部154は、キャッシュページ112aに、その読み出した情報を記憶する。
以上の処理は、ディスクページ161内の書込み待ちの情報のうち、キャッシュページ112a内の最新情報で更新されるものを除いた残りを、キャッシュページ112aに取り込む処理である。
そして、アクセス処理部154は、ディスクページ管理部157に対し、そのディスクページ161の退避ビットマップの符号と複製ビットマップの符号を全て「0」にして、さらにダーティフラグを解除してインバリッドフラグを設定するように命じる。
この後は、上記のケースw1と同様の処理が実行される。
次に、ケースw4について説明する。
[ケースw4]
ケースw4は、処理対象のキャッシュページ112aがグレイ状態であり、アクセス対象のRAIDグループ160がビジー状態であるケースである。
このケースw4では、アクセス処理部154が、退避処理A2あるいは複製処理A3を実行する。ケースw4では、キャッシュページ112a内の、ダーティビットマップの「1」の符号に対応したブロック112a_1の情報だけでなく、バリッドビットマップの「1」の符号に対応したブロック112a_1の情報も書込みの対象とする。ダーティビットマップの「1」の符号に対応したブロック112a_1の情報を書き込む処理が退避処理A2に相当する。また、バリッドビットマップの「1」の符号に対応したブロック112a_1の情報を書き込む処理が複製処理A3に相当する。
ケースw4では、アクセス処理部154が、まず、処理対象のキャッシュページ112aに対応した、退避先又は複製先のディスクページ161が確保済みであるか否かを判定する。
この判定は、アクセス処理部154が、図12に示すディスクページ管理テーブル158を次のように参照することで行われる。
アクセス処理部154は、まず、アクセス対象のRAIDグループ160を示すアクセスRG番号でアクセスRG番号格納部158c内を検索する。
そのアクセスRG番号がアクセスRG番号格納部158c内に存在した場合、アクセス処理部154は、処理対象のキャッシュページ112aに対応付けられた上記の区分の存在箇所を表すLBAでLBA格納部158d内を検索する。
そのLBAがLBA格納部158d内に存在しなかった場合、アクセス処理部154は、ディスクページ161が未確保であると判定する。この場合、アクセス処理部154は、インバリッド状態あるいはバリッド状態のディスクページ161の中から、退避先あるいは複製先のディスクページ161を確保する。また、このときには、LBA格納部158dにおける、その確保したディスクページ161に対応する欄に、上記の検索で使われたLBAが格納される。さらに、キャッシュページ112aに対応付けられたバリッドビットマップとダーティビットマップとが、複製ビットマップと退避ビットマップとして、ディスクページ管理テーブル158に格納される。
一方、上記の区分を表すLBAがLBA格納部158d内に存在した場合、アクセス処理部154はディスクページ161が確保済みであると判定する。
この場合には、以下の処理が実行される。
まず、キャッシュページ112aに対応付けられたバリッドビットマップとダーティビットマップとが、複製ビットマップと退避ビットマップにそれぞれ論理和される。さらに、論理和後の退避ビットマップの「1」の符号に対応する複製ビットマップの符号が「0」にされる。これにより、キャッシュページ112aから書き込まれる最新のダーティ情報が、ディスクページ161においても、書込み待ちの情報として扱われることとなる。
未確保、確保済みそれぞれの場合に応じた上記の処理が行われた後、アクセス処理部154は、処理対象のキャッシュページ112a内の情報をディスクページ161に書き込む。
その後、アクセス処理部154は、ディスクページ管理テーブル158内の、そのディスクページ161に対応する退避ビットマップの符号が全て「0」であるか否かを判定する。
符号が全て「0」であることは、今回、書き込まれた情報が読出し情報のみであることを意味する。この場合、ディスクページ161がインバリッド状態のときにはインバリッドフラグが解除されてバリッドフラグが設定される。また、ディスクページ161がバリッド状態のときにはバリッドフラグが設定されたままで維持される。
一方、退避ビットマップに「1」の符号が存在するということは、今回、書き込まれた情報に、書込み情報が存在していることを意味する。この場合には、インバリッドフラグ又はバリッドフラグが解除されてダーティフラグが設定される。
さらに、アクセス処理部154は、フロントエンド100aに対し、処理対象のキャッシュページ112aについて次のようなビットマップ操作とフラグ操作とを実行するよう要求する要求信号を送信する。この要求信号において、アクセス処理部154は、まず、バリッドビットマップへのダーティビットマップの論理和と、ダーティビットマップの符号を全て「0」にするビットマップ操作の実行を要求する。また、アクセス処理部154は、処理対象のキャッシュページ112aのグレイフラグを解除してバリッドフラグを設定するフラグ操作の実行を要求する。このフラグ操作により、キャッシュページ112aの管理状態が、上書き可能なバリッド状態に切り替えられる。
尚、本実施形態では、ケースw4において、バリッドビットマップで符号が「1」になっている情報と同一の情報が、ディスクページ161上の同じLBAに存在した場合、上書きが実行される。この上書きは、本実施形態では、上書きの前後で情報が変わらないため認められている。ただし、バリッドビットマップと、複製ビットマップおよび退避ビットマップとの比較により、このような上書きを排除することとしても良い。
次に、ケースw5について説明する。
[ケースw5]
ケースw5は、処理対象のキャッシュページ112aがグレイ状態であり、アクセス対象のRAIDグループ160がリストア状態であるケースである。
ケースw5では、アクセス処理部154が、キャッシュページ管理テーブル153を参照することで、処理対象のキャッシュページ112aに対応付けられたダーティビットマップの符号が全て「0」であるか否かを判定する。
ダーティビットマップの符号が全て「0」であることは、グレイ状態のキャッシュページ112a内には読出し情報のみが記憶されていることを意味する。この場合には、処理対象のキャッシュページ112aの管理状態がバリッド状態に切り替えられる。
一方、ダーティビットマップに「1」の符号が存在するということは、グレイ状態のキャッシュページ112a内に、アクセス対象のRAIDグループ160への書込み前の書込み情報が記憶されていることを意味する。この場合には、処理対象のキャッシュページ112aの管理状態がダーティ状態に切り替えられる。そして、その後は、上述したケースw3と同様の処理が実行されて、キャッシュページ112a内の書込み情報が、アクセス対象のRAIDグループ160に書き込まれる。
以上で、ライトバック処理についての説明を終了する。
尚、ライトバック処理の対象のキャッシュページ112aがグレイ状態であることは、コマンドで指定されたアクセス対象のRAIDグループ160がビジー状態かリストア状態になっていることを意味している。このため、図16の表T4では、処理対象のキャッシュページ112aがグレイ状態でアクセス対象のRAIDグループ160がノーマル状態であるというケースは生じないこととなっている。
次に、リストア処理について説明する。
リストア処理は、上述したように、ディスクページ161に書き込まれた書込み情報を、本来の書込み先である、アクセス対象のRAIDグループ160に移動させる処理である。また、このリストア処理では、ディスクページ161に書き込まれた後に不要となった読出し情報の無効化も行われる。
リストア処理は、上述したように、負荷管理部155から、任意のRAIDグループ160の状態をリストア状態に判別した旨の通知があると実行される。
リストア処理では、まず、アクセス処理部154が、キャッシュページ管理テーブル153を参照する。そして、アクセスRG番号に対応する、全てのグレイ状態のキャッシュページ112aそれぞれについて、ダーティビットマップの符号が全て「0」であるか否かを判定する。
ダーティビットマップの符号が全て「0」であった場合、処理対象のキャッシュページ112aの管理状態がバリッド状態に切り替えられる。
一方、ダーティビットマップに「1」の符号が存在した場合、処理対象のキャッシュページ112aの管理状態がダーティ状態に切り替えられる。
次に、アクセス処理部154は、ディスクページ管理テーブル158を参照する。そして、アクセスRG番号に対応する、全てのバリッド状態又はダーティ状態のディスクページ161それぞれについて、以下の処理を実行する。
バリッド状態のディスクページ161については、複製ビットマップの符号が全て「0」にされる。そして、そのディスクページ161の管理状態がインバリッド状態に切り替えられる。この切替えにより、そのディスクページ161に記憶されている情報が無効化されることとなる。
ダーティ状態のディスクページ161については、アクセス処理部154は、次のような処理を実行する。
アクセス処理部154は、まず、キャッシュページ管理テーブル153を参照する。
そして、アクセス処理部154は、キャッシュページ管理テーブル153に、このダーティ状態のディスクページ161に対応付られているアクセスRG番号とLBAとが格納されているか否かを判定する。
これらの情報が格納されていた場合、アクセス処理部154は、ダーティ状態のディスクページ161内の情報を記憶するためのキャッシュページ112aが確保済みであると判断する。
一方、上記のアクセスRG番号とLBAが格納されていなかった場合、アクセス処理部154は、キャッシュページ112aが未確保であると判断する。
キャッシュページ112aが未確保である場合、アクセス処理部154は、インバリッド状態又はバリッド状態のキャッシュページ112aの中から、情報の記憶のためのキャッシュページ112aを確保する。
次に、アクセス処理部154は、確保済みのキャッシュページ112a、あるいは、上記のように確保されたキャッシュページ112aに、以下のような処理によって、処理対象のディスクページ161の情報を記憶する。
まず、アクセス処理部154は、ディスクページ管理部157に対し、次のようなビットマップ操作の実行を命じる。アクセス処理部154は、処理対象のディスクページ161の退避ビットマップにおける、記憶先のキャッシュページ112aに対応付けられたダーティビットマップで「1」の符号に対応する符号を「0」にするように命じる。
その後、アクセス処理部154は、処理対象のディスクページ161から、退避ビットマップで「1」の符号に対応するブロックの情報を読み出して、キャッシュページ112aの対応するブロック112a_1に記憶する。
さらに、アクセス処理部154は、フロントエンド100aに対し、次のようなビットマップ操作とフラグ操作の実行を要求する要求信号を送信する。
この要求信号では、情報の記憶先のキャッシュページ112aに対応付けられたダーティビットマップに、処理対象のディスクページ161に対応付けられた退避ビットマップを論理和するビットマップ操作が要求される。また、キャッシュページ112aに対応付けられたインバリッドフラグ又はバリッドフラグを解除してダーティフラグを設定するフラグ操作が要求される。また、キャッシュページ112aが元々ダーティ状態であった場合には、ダーティフラグを設定したままでの維持が要求される。
続いて、アクセス処理部154は、ディスクページ管理部157に対し、そのディスクページ161に対応付けられたダーティフラグを解除してインバリッドフラグを設定するように命じる。これにより、そのディスクページ161の管理状態が、インバリッド状態に切り替えられる。
リストア処理における、ここまでに説明した処理が、図6を参照して説明したリストア時ステージング処理C1に相当する。
このリストア時ステージング処理C1により、ディスクページ161内の書込み待ちの情報のうち、キャッシュページ112a内で情報が未記憶となっているブロックの情報が、その未記憶のブロック112a_1に記憶される。これにより、キャッシュページ112a内の最新の書込み情報と、ディスクページ161内の書込み待ちの情報とがキャッシュページ112a上で合わせられる。
以上の処理が、アクセス対象のRAIDグループ160に対応する全てのディスクページ161について実行されると、アクセス処理部154は、負荷管理部155に対し、次のようなフラグ操作を命じる。このフラグ操作では、図11に示す負荷管理テーブル156における、アクセスRG番号に対応した、リストア状態を示す状態フラグが解除されて、ノーマル状態を示す状態フラグが設定される。
そして、その後、アクセス処理部154は、上記のようにディスクページ161の情報が記憶されたキャッシュページ112aから情報を読み出して、アクセス対象のRAIDグループ160に書き込む。このときの書込みは、図16の表T4に示すケースw1の処理と同様である。このリストア処理で行われる書込み処理が、図6を参照して説明した復元処理C2に相当する。
以上で、図6に示すストレージ装置100における処理の詳細についての説明を終了する。
次に、ストレージ装置100内での、コマンドに応じた情報の動きについて、次のような5つの例を代表例として挙げて説明する。
図17は、コマンドに応じた情報の動きについての第1の例を示す模式図である。
第1の例は、アクセス先のRAIDグループ160がビジー状態であった場合の、ライトコマンドに応じた書込み情報の動きの例である。また、この第1の例では、アクセス先のRAIDグループ160について、今回のライトコマンドの前に、ディスクページ161への情報の退避処理や複製処理は行われていないものとする。
まず、サーバ200から書込み情報D1がストレージ装置100に転送されてくる(ステップS301)。このとき、ライトコマンドで、アクセスRG番号として「0」番が指定されているものとする。
第1の例では、この「0」番のRAIDグループ160がビジー状態となっている。
そのため、まず、その「0」番以外のRG番号の、ノーマル状態のRAIDグループ160内のディスクページ161に、書込み情報D1が書き込まれる(ステップS302)。第1の例では、「2」番のRAIDグループ160のディスクページ161が、書込み情報D1の退避先として使われている。
この書込みは、図14の表T2に示す上述のケースb1_2、ケースb4、ケースb5のうちのいずれかの処理によるキャッシュメモリ112への記憶と、図16の表T4に示す上述のケースw2と、ケースw4のライトバック処理によって行われる。
次に、「0」番のRAIDグループ160がリストア状態になると、上記のディスクページ161内の書込み情報D1が、本来の書込み先である「0」番のRAIDグループ160に書き込まれる(ステップS303)。
このように、本実施形態では、本来の書込み先のRAIDグループ160がビジー状態であったとしても、書込み先を別のノーマル状態のRAIDグループ160に変更することで書込み処理の遅延が抑制されることとなる。
また、本実施形態では、別のRAIDグループ160に書き込まれた書込み情報は、本来の書込み先のRAIDグループ160がリストア状態となったときに、アクセス処理部154によってそのRAIDグループ160に移される。これにより、その別のRAIDグループ160における、それまで書込み情報が書き込まれていたディスクページ161が、他の情報の書込みに利用できるようになる。このように、本実施形態では、各RAIDグループ160が、ディスクページ161の利用の点で、効率的に運用されることとなっている。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
この応用形態は、上記書込部によって、上記書込み先記憶部以外の記憶部に書き込まれた情報を、その書込み先記憶部が上記第2状態になったときにその書込み先記憶部に移動させる移動部を備えている。
本実施形態におけるアクセス処理部154は、この応用形態における移動部の一例にも相当している。
また、本実施形態のストレージ装置100は、キャッシュメモリ112と、そのキャッシュメモリ112が有する複数のキャッシュページ112aそれぞれの状態管理等を行うキャッシュページ管理部152とを備えている。
そして、このストレージ装置100では、アクセス対象であってノーマル状態やリストア状態となっているRAIDグループ160に対応したキャッシュページ112a内の書込み情報が、そのRAIDグループ160に書き込まれる。
一方で、アクセス対象であってビジー状態となっているRAIDグループ160に対応したキャッシュページ112a内の書込み情報は、そのRAIDグループ160以外のノーマル状態のRAIDグループ160に書き込まれる。
RAIDグループ160に対するアクセス速度よりも高速のアクセスが可能なメモリであるキャッシュメモリ112を介したこのような書込み処理により、書込み処理の遅延が一層抑制されることとなる。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
この応用形態は、次のような保管部と管理部とを備えている。
保管部は、上記書込部に与えられた書込み対象の情報のうちその書込部による書込みが未了の情報、および上記読出部により上記読出し元記憶部から読み出された情報を保管する。そして、この保管部は、上記記憶部に対する情報の読書き速度よりも高速に情報が出し入れ可能なものとなっている
管理部は、上記保管部が有する保管領域の状態を管理する管理部である。そして、管理部は、次のような保管状態と未保管状態とを区別して管理する。保管状態は、上記書込部による書込み前の情報が保管されている状態である。未保管状態は、その書込み前の情報が未保管である状態である。管理部は、更に保管状態については、次のような第1の保管状態と第2の保管状態とを区別して管理する。第1の保管状態は、上記書込み先記憶部が上記第1状態である場合の保管状態である。第2の保管状態は、その書込み先記憶部が上記第2状態である場合の保管状態である。
そして、この応用形態では、上記書込部が、上記第2の保管状態にある保管領域に保管されている情報については上記書込み先記憶部に書き込む。また、この書込部は、上記第1の保管状態にある保管領域に保管されている情報については、上記複数の記憶部のうちその書込み先記憶部以外の上記第2状態である記憶部に書き込む。
本実施形態におけるキャッシュメモリ112が、この応用形態における保管部の一例に相当している。また、本実施形態におけるキャッシュページ管理部112aが、この応用形態における管理部の一例に相当する。また、キャッシュページ112aについてのダーティ状態が、この応用形態にいう保管状態の一例に相当する。また、キャッシュページ112aについてのインバリッド状態とバリッド状態が、この応用形態にいう未保管状態の一例に相当する。また、ダーティ状態のうち、記憶している情報の本来の書込み先のRAIDグループ160がビジー状態となっている状態が、この応用形態にいう第1の保管状態の一例に相当する。また、ダーティ状態のうち、記憶している情報の本来の書込み先のRAIDグループ160がノーマル状態又はリストア状態となっている状態が、この応用形態にいう第2の保管状態の一例に相当する。また、本実施形態におけるアクセス処理部154は、この応用形態における書込部の一例にも相当している。
図18は、コマンドに応じた情報の動きについての第2の例を示す模式図である。
第2の例は、アクセス先のRAIDグループ160がビジー状態であった場合の、リードコマンドに応じた読出し情報の動きの例である。また、この第2の例でも、アクセス先のRAIDグループ160について、今回のリードコマンドの前に、ディスクページ161への情報の退避処理や複製処理は行われていないものとする。
まず、サーバ200からのリードコマンドに応じて、読出し元のRAIDグループ160から読出し情報D2が読み出されて、キャッシュメモリ112に記憶される(ステップS401)。このとき、リードコマンドで、アクセスRG番号として「0」番が指定されているものとする。
第2の例でも、この「0」番のRAIDグループ160がビジー状態である。
本実施形態では、ビジー状態のAIDグループ160の情報の読出しは、そのAIDグループ160へのアクセス量が閾値未満に減少して、リストア状態にまでは至らないまでも低負荷状態となるまでは延期される。そして、その延期の後で読み出された読出し情報D2が、その「0」番以外のRG番号の、ノーマル状態のRAIDグループ160内のディスクページ161に書き込まれる(ステップS402)。第2の例では、「3」番のRAIDグループ160のディスクページ161が、読出し情報D2の書込み先として使われている。
この書込みは、図14の表T2に示す上述のケースb1_1、ケースb2、ケースb3のうちのいずれかの処理によるキャッシュメモリ112への記憶と、図16の表T4に示す上述のケースw4のライトバック処理によって行われる。
そして、この読出し後であって、「0」番のRAIDグループ160がビジー状態であるときに、上記の読出し情報D2について、リードコマンドで再度読出しが要求された場合には、上記のディスクページ161から読出し情報D2が読み出される。このディスクページ161は、上述したようにノーマル状態のRAIDグループ160のディスクページ161である。従って、この再度の読出しは、本来の読出し元のRAIDグループ160がビジー状態であっても遅延することなく実行される。このことは本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
この応用形態では、上記読出部は、上記読出し元記憶部が上記第2状態である場合にその読出し元記憶部にアクセスし、その読出し元記憶部が上記第1状態である場合にはその読出し元記憶部へのアクセスを延期するものとなっている。
また、この応用形態は、上記読出部によるアクセス延期の後で上記読出し元記憶部から読み出された情報を、上記複数の記憶部のうちその読出し元記憶部以外の上記第2状態である記憶部に書き込む予備書込部を備えている。
さらに、この応用形態では、上記読出部は、上記読出し元記憶部が上記第1状態であって、かつ、上記読出し元のアドレスに存在する情報が上記予備書込部によってその読出し元記憶部以外の記憶部に書き込まれている場合に、次のような処理を実行する。読出部は、この場合に、その読出し元記憶部へのアクセスに替えて、その予備書込部によって情報が書き込まれた記憶部にアクセスして情報を読み出す。
本実施形態におけるアクセス処理部154は、この応用形態における読出部と予備書込部とを兼ねた一例にも相当している。
図19は、コマンドに応じた情報の動きについての第3の例を示す模式図である。
第3の例は、アクセス先のRAIDグループ160がビジー状態であった場合の、ライトコマンドに応じた読出し情報の動きの例である。
尚、この第3の例では、アクセス先のRAIDグループ160について、今回のライトコマンドの前に、ディスクページ161への情報の複製処理が行われていたものとする。
まず、サーバ200から書込み情報D3がストレージ装置100に転送されてくる(ステップS501)。このとき、ライトコマンドで、アクセスRG番号として「0」番が指定されているものとする。
第3の例では、この「0」番のRAIDグループ160がビジー状態である。
そのため、まず、その「0」番以外のRG番号の、ノーマル状態のRAIDグループ160内のディスクページ161に、書込み情報D3が書き込まれる(ステップS502)。
ここで、この第3の例では、「3」番のRAIDグループ160内の、過去の複製処理で読出し情報D4が書き込まれているディスクページ161が、書込み情報D3の書込み先として使われる。この第3の例では、このディスクページ161への書込み情報D3の書込みは、そのディスクページ161上の読出し情報D4への上書きによって行われる。
この書込みも、図14の表T2に示す上述のケースb1_1、ケースb4、ケースb5のうちのいずれかの処理によるキャッシュメモリ112への記憶と、図16の表T4に示す上述のケースw4のライトバック処理によって行われる。
次に、「0」番のRAIDグループ160がリストア状態になると、上記のディスクページ161内の書込み情報D3のみが、本来の書込み先である「0」番のRAIDグループ160に書き込まれる(ステップS503)。
この第3の例でも、本来の書込み先のRAIDグループ160がビジー状態であったとしても、書込み先を別のノーマル状態のRAIDグループ160に変更することで書込み処理の遅延が抑制されることとなる。
図20は、コマンドに応じた情報の動きについての第4の例を示す模式図である。
第4の例は、アクセス先のRAIDグループ160がビジー状態であった場合の、ライトコマンドに応じた読出し情報の動きの例である。
尚、この第4の例では、アクセス先のRAIDグループ160について、今回のライトコマンドの前に、ディスクページ161への情報の退避処理が行われていたものとする。
まず、サーバ200から書込み情報D5がストレージ装置100に転送されてくる(ステップS601)。このとき、ライトコマンドで、アクセスRG番号として「0」番が指定されているものとする。
第4の例では、この「0」番のRAIDグループ160がビジー状態である。
そのため、まず、その「0」番以外のRG番号の、ノーマル状態のRAIDグループ160内のディスクページ161に、書込み情報D5が書き込まれる(ステップS602)。
ここで、この第4の例では、「2」番のRAIDグループ160内の、過去の退避処理で書込み情報D6が書き込まれているディスクページ161が、今回の書込み情報D5の書込み先として使われている。また、この過去の退避処理における書込み情報D6の本来の書込み先も、今回の書込み情報D5の書込み先と同じ「0」番のRAIDグループ160である。そして、今回のライトコマンドが発行された段階で、書込み情報D6は書込み待ちとなっている。
この第4の例では、このディスクページ161への今回の書込み情報D5の書込みは、そのディスクページ161上の過去の書込み情報D6への上書きによって行われる。そして、この第4の例では、今回の書込み情報D5を過去の書込み情報D6に上書きした情報全体がリストア処理の対象となる。
この書込みも、図14の表T2に示す上述のケースb1_1、ケースb4、ケースb5のうちのいずれかの処理によるキャッシュメモリ112への記憶と、図16の表T4に示す上述のケースw4のライトバック処理によって行われる。
次に、「0」番のRAIDグループ160がリストア状態になると、上記のディスクページ161内の上記の上書き後の情報全体が、本来の書込み先である「0」番のRAIDグループ160に書き込まれる(ステップS603)。
この第4の例のように、本実施形態では、過去にディスクページ161に書き込まれて書込み待ちとなっている書込み情報D6と書込み先が同じ書込み情報D5が、ディスクページ161上で、その書込み待ちの書込み情報D6に上書きされる。これにより、退避処理が複数回行われたとしても、ディスクページ161には最新の書込み情報が格納される。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
この応用形態では、上記書込部は、その書込部によって上記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが書込み先のアドレスとして再び指定された場合に、次のような処理を行う。即ち、この場合、書込部は、その書込み先記憶部へのアクセスに替えて、その書込み先記憶部以外の、その情報が記憶されている記憶部にアクセスして新たな書込み対象の情報を上書きする。
本実施形態におけるアクセス処理部154は、この応用形態における書込部の一例にも相当している。
図21は、コマンドに応じた情報の動きについての第5の例を示す模式図である。
第5の例は、アクセス先のRAIDグループ160がビジー状態であった場合の、リードコマンドに応じた読出し情報の動きの例である。
尚、この第5の例では、アクセス先のRAIDグループ160について、今回のライトコマンドの前に、ディスクページ161への情報の退避処理が行われていたものとする。
また、この第5の例では、リードコマンドで、その退避処理でディスクページ161に格納されている書込み情報D7を含んだ、この書込み情報D7よりも多い情報の読出しが要求されているものとする。
第5の例では、リードコマンドで指定された本来の読出し元は、「0」番のRAIDグループ160である。この「0」番のRAIDグループ160がビジー状態となっている。また、過去の退避処理によって、その「0」番のRAIDグループ160を本来の書込み先とした書込み情報D7が、ノーマル状態の「2」番のRAIDグループ160のディスクページ161に書き込まれて、本来の書込み先への書込み待ちとなっている。
まず、今回要求されている情報のうち、「2」番のRAIDグループ160のディスクページ161に格納されている書込み情報D7が、そのディスクページ161から読み出されてキャッシュメモリ112に記憶される(ステップS701)。
次に、今回要求されている情報のうち、その書込み情報D7以外の読出し情報D8が、本来の読出し元である「0」番のRAIDグループ160から読み出されてキャッシュメモリ112に記憶される(ステップS702)。尚、このステップS702での読出しは、「0」番のRAIDグループ160が低負荷状態となるのを待って行われる。
ここまでの処理は、図14の表T2に示す上述のケースb1_1、ケースb2、ケースb3のうちのいずれかの処理によって行われる。
ここまでの処理により、キャッシュメモリ112上に、今回要求されている情報の全てがそろうこととなる。
そして、このようにそろった情報が、キャッシュメモリ112から読み出されてサーバ200に転送される(ステップS703)。
この転送の時点で、「0」番のRAIDグループ160がビジー状態であるならば、上記のようにキャッシュメモリ112上にそろった情報全体が、「2」番のRAIDグループ160のディスクページ161に上書きされる(ステップS704)。
このステップS704の上書きは、図16の表T4に示す上述のケースw2と、ケースw4のライトバック処理によって行われる。
そして、「0」番のRAIDグループ160がリストア状態になると、上記のディスクページ161内の情報のうち、書込み待ちとなっていた書込み情報D7のみが、本来の書込み先である「0」番のRAIDグループ160に書き込まれる(ステップS705)。
この第5の例のように、本実施形態では、本来の読出し元がビジー状態であって、読出し情報が、一部でも、書込み待ちの書込み情報としてディスクページ161上に存在する場合には、このディスクページ161から情報が読み出される。書込み待ちの書込み情報が格納されたディスクページ161を有するRAIDグループ160はノーマル状態であるので、少なくとも、このディスクページ161からの読出しは遅延することなく実行される。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
この応用形態では、上記読出部は、上記書込部によって上記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが読出し元のアドレスとして指定された場合に、次のような処理を行う。即ち、この場合、読出部は、上記読出し元記憶部へのアクセスに替えて、その書込み先記憶部以外の、その情報が記憶されている記憶部にアクセスしてその情報を読み出す。
本実施形態におけるアクセス処理部154は、この応用形態における読出部の一例にも相当している。
10 情報記憶装置
11 記憶部
12 書込部
13 読出部
14 状態判別部
100 ストレージ装置
100a フロントエンド
100b バックエンド
101,511 HDD
110 コントローラモジュール
111,501 キャッシュ制御部
111a,113a ROM
111b,113b RAM
112,502 キャッシュメモリ
112a キャッシュページ
112a_1 ブロック
113,503 ディスク制御部
151 リードライト処理部
152 キャッシュページ管理部
153 キャッシュページ管理テーブル
153a Cページ番号格納部
153b Cページ状態格納部
153c,158c アクセスRG番号格納部
153d,158d LBA格納部
153e バリッドビットマップ格納部
153f ダーティビットマップ格納部
154 アクセス処理部
154a,503a キュー管理部
155 負荷管理部
156 負荷管理テーブル
156a RG番号格納部
156b RAID状態格納部
156c Dページ先頭LBA格納部
156d Dページ容量格納部
156e Dページ使用量格納部
157 ディスクページ管理部
158 ディスクページ管理テーブル
158a Dページ番号格納部
158b Dページ状態格納部
158e 複製ビットマップ格納部
158f 退避ビットマップ格納部
160,510 RAIDグループ
161 ディスクページ
200,600 サーバ
250,650 SAN
500 比較例のストレージ装置

Claims (6)

  1. アドレスが割り当てられている複数の記憶部と、
    書込み先のアドレスが指定され書込み対象の情報が与えられて、前記複数の記憶部のうち該書込み先のアドレスが割り当てられている書込み先記憶部にアクセスして該書込み対象の情報を書き込む書込部と、
    読出し元のアドレスが指定されて、前記複数の記憶部のうち該読出し元のアドレスが割り当てられている読出し元記憶部にアクセスして該記憶部から情報を読み出す読出部と、
    前記複数の記憶部それぞれの状態を、各記憶部に対するアクセス量に基づいて、相対的にアクセス量が多い第1状態と相対的にアクセス量が少ない第2状態とに判別する状態判別部とを備え、
    前記書込部は、前記書込み先記憶部の状態が前記第2状態である場合には該書込み先記憶部にアクセスして前記書込み対象の情報を書き込み、該書込み先記憶部の状態が前記第1状態である場合には、前記複数の記憶部のうち該書込み先記憶部以外の前記第2状態である記憶部にアクセスして前記書込み対象の情報を書き込むものであることを特徴とする情報記憶装置。
  2. 前記書込部によって、前記書込み先記憶部以外の記憶部に書き込まれた情報を、該書込み先記憶部が前記第2状態になったときに該書込み先記憶部に移動させる移動部を備えたことを特徴とする請求項1記載の情報記憶装置。
  3. 前記書込部に与えられた書込み対象の情報のうち該書込部による書込みが未了の情報、および前記読出部により前記読出し元記憶部から読み出された情報を保管する、前記記憶部に対する情報の読書き速度よりも高速に情報が出し入れ可能な保管部と、
    前記保管部が有する保管領域の状態を管理する管理部であって、前記書込部による書込み前の情報が保管されている保管状態と、該書込み前の情報が未保管である未保管状態とを区別して管理し、更に前記保管状態については、前記書込み先記憶部が前記第1状態である場合の第1の保管状態と、該書込み先記憶部が前記第2状態である場合の第2の保管状態とを区別して管理する管理部とを備え、
    前記書込部が、前記第2の保管状態にある保管領域に保管されている情報については前記書込み先記憶部に書き込み、前記第1の保管状態にある保管領域に保管されている情報については、前記複数の記憶部のうち該書込み先記憶部以外の前記第2状態である記憶部に書き込むものであることを特徴とする請求項1又は2記載の情報記憶装置。
  4. 前記読出部は、前記読出し元記憶部が前記第2状態である場合に該読出し元記憶部にアクセスし、該読出し元記憶部が前記第1状態である場合には該読出し元記憶部へのアクセスを延期するものであり、
    前記読出部によるアクセス延期の後で前記読出し元記憶部から読み出された情報を、前記複数の記憶部のうち該読出し元記憶部以外の前記第2状態である記憶部に書き込む予備書込部を備え、
    前記読出部は、前記読出し元記憶部が前記第1状態であって、かつ、前記読出し元のアドレスに存在する情報が前記予備書込部によって該読出し元記憶部以外の記憶部に書き込まれている場合に、該読出し元記憶部へのアクセスに替えて、該予備書込部によって情報が書き込まれた記憶部にアクセスして情報を読み出すものであることを特徴とする請求項1から3のうちいずれか1項記載の情報記憶装置。
  5. 前記読出部は、前記書込部によって前記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが読出し元のアドレスとして指定された場合に、前記読出し元記憶部へのアクセスに替えて、該書込み先記憶部以外の、該情報が記憶されている記憶部にアクセスして該情報を読み出すものであることを特徴とする請求項1から4のうちいずれか1項記載の情報記憶装置。
  6. 前記書込部は、該書込部によって前記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが書込み先のアドレスとして再び指定された場合に、該書込み先記憶部へのアクセスに替えて、該書込み先記憶部以外の、該情報が記憶されている記憶部にアクセスして新たな書込み対象の情報を上書きするものであることを特徴とする請求項1から5のうちいずれか1項記載の情報記憶装置。
JP2010272879A 2010-12-07 2010-12-07 情報記憶装置 Withdrawn JP2012123551A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010272879A JP2012123551A (ja) 2010-12-07 2010-12-07 情報記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010272879A JP2012123551A (ja) 2010-12-07 2010-12-07 情報記憶装置

Publications (1)

Publication Number Publication Date
JP2012123551A true JP2012123551A (ja) 2012-06-28

Family

ID=46504937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010272879A Withdrawn JP2012123551A (ja) 2010-12-07 2010-12-07 情報記憶装置

Country Status (1)

Country Link
JP (1) JP2012123551A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164510A (ja) * 2013-02-25 2014-09-08 Fujitsu Ltd ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法
JP2015095198A (ja) * 2013-11-14 2015-05-18 富士通株式会社 ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
JP2015103195A (ja) * 2013-11-28 2015-06-04 日本電気株式会社 スイッチおよびスイッチの制御方法およびスイッチの制御プログラムおよび記憶システム
WO2016194979A1 (ja) * 2015-06-02 2016-12-08 日本電気株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014164510A (ja) * 2013-02-25 2014-09-08 Fujitsu Ltd ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法
JP2015095198A (ja) * 2013-11-14 2015-05-18 富士通株式会社 ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
US9804780B2 (en) 2013-11-14 2017-10-31 Fujitsu Limited Storage apparatus, method of controlling storage apparatus, and non-transitory computer-readable storage medium storing program for controlling storage apparatus
JP2015103195A (ja) * 2013-11-28 2015-06-04 日本電気株式会社 スイッチおよびスイッチの制御方法およびスイッチの制御プログラムおよび記憶システム
WO2016194979A1 (ja) * 2015-06-02 2016-12-08 日本電気株式会社 ストレージシステム、ストレージ制御装置、ストレージ制御方法及びプログラム

Similar Documents

Publication Publication Date Title
JP6437656B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
JP4890160B2 (ja) ストレージシステム及びバックアップ/リカバリ方法
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
JP5257672B2 (ja) ジャーナルの階層を管理する計算機システム及び方法
EP1729218A1 (en) Nonvolatile storage system
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
JP4385215B2 (ja) スナップショットシミュレーション機能を有するディスクアレイ装置
JP6398102B2 (ja) メモリシステム
JP2007219703A (ja) ハードディスクストレージ制御プログラム、ハードディスクストレージ装置、ハードディスクストレージ制御方法
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP4993020B2 (ja) 仮想テープ装置、制御方法、制御部
JP2007108981A (ja) ストレージ装置及びボリューム間のデータ交換方法
US20150339058A1 (en) Storage system and control method
JP4490451B2 (ja) 階層型ストレージ管理システムにおける要求スケジューリング方法、要求スケジューリング装置、及びプログラム
CN113360082B (zh) 存储系统及其控制方法
US7451285B2 (en) Computer systems, management computers and storage system management method
JP2017107318A (ja) メモリシステム、情報処理装置および処理方法
JP5152006B2 (ja) 記憶装置、記憶装置のデータ転送方法
JP2012123551A (ja) 情報記憶装置
US20110252205A1 (en) Managing Access Commands By Multiple Level Caching
JP7500991B2 (ja) ストレージ制御装置及びストレージ制御プログラム
US20160259571A1 (en) Storage subsystem
JP4245021B2 (ja) ストレージ装置、ストレージシステム、ストレージ装置の制御方法
JPH07200187A (ja) ディスクアレイ装置
JP2006146661A (ja) レプリケーションシステム、方法、レプリカストレージ、およびプログラム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140304