(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、ストレージ装置は、より高速にリード及びライト処理を実行可能なようにキャッシュを備えることが知られている。より具体的に、ストレージ装置は、例えば、リード処理を受け付けた場合に、情報を、ハードディスクドライブから読み出すのではなく、SSDにより構成されたキャッシュから読み出す。このように、ストレージ装置は、情報を高速に読み書き可能なSSDをキャッシュ(「二次キャッシュ」とも称する)として活用する技術が存在する。尚、以下の説明において、本願では、説明の便宜上、ハードディスクドライブ(Hard_disk_drive)を「HDD」と称する。
【0009】
以下の説明では、より具体的に、一般的に知られたストレージ装置210について
図7乃至
図9を参照して説明する。
図7は、一般的に知られたストレージ装置210の構成を示すブロック図である。
【0010】
図7において、ストレージ装置210は、データを含む情報を記憶する1つ以上のHDD230及びSSDキャッシュ220を有する。また、SSDキャッシュ220は、HDD230と比較してI/O(Input/Output)処理性能に優れたSSD221及びSSD222を有する。
【0011】
図7において、ライト処理を実行する場合に、ホストコンピュータ200から送信されたライトデータは、SSD221にキャッシュされる。そして、当該ライトデータは、HDD230に記憶される。また、リード処理を実行する場合には、HDD230に記憶されたリードデータは、SSD222にキャッシュされる。そして、当該リードデータは、ホストコンピュータ200に送信される。
【0012】
ここで、以下の説明では、例えば、SSD221が故障した場合について
図8を参照して説明する。
【0013】
図8は、一般的に知られたストレージ装置210においてSSD221が故障した態様を概念的に例示する図である。尚、
図8に示すストレージ装置210の構成は、
図7に示すストレージ装置210の構成と同様である。そのため、詳細な説明は省略する。
【0014】
図8において、SSD221が故障した場合に、ホストコンピュータ200から送信されたライトデータは、HDD230に記憶されないだけでなく、SSD221にキャッシュされたデータも損失する。即ち、一般的に知られたストレージ装置210では、SSD221にキャッシュされたライトデータが失われデータ損失が発生する。
【0015】
また、以下の説明では、例えば、SSD222が故障した場合について
図9を参照して説明する。
【0016】
図9は、一般的に知られたストレージ装置210においてSSD222が故障した態様を概念的に例示する図である。尚、
図9に示すストレージ装置210の構成は、
図7に示すストレージ装置210の構成と同様である。そのため、詳細な説明は省略する。
【0017】
図9において、SSD222が故障した場合に、HDD230に記憶されたリードデータは、HDD230に記憶されている。そのため、SSD222が故障した場合であっても、ストレージ装置210においてデータ損失は発生しない。
【0018】
このように、一般的に知られたストレージ装置210では、ライトデータをキャッシュするSSD221が故障した場合に、HDD230に記憶されない虞がある。即ち、ライトデータをSSD221からHDD230に書き出していない場合に、ストレージ装置210では、データ損失が生じる可能性がある。また、例えば、RAIDを構成するストレージ装置であっても、SSDにおいて多重障害が発生した場合には、データ損失は発生する虞がある。
【0019】
また、特許文献1乃至特許文献3に開示された技術は、SSD内部を制御する技術が開示されているに留まる。特許文献1乃至特許文献3には、SSDをキャッシュとして動作させることについては開示も示唆もしていない。そして、特許文献1には、キャッシュメモリ容量を抑制することが記載されているに留まる。また、特許文献2には、物理ブロックに対する書き込み回数を平均化することが記載されているに留まる。
【0020】
さらに、特許文献3は、論理ドライブのエラー回数やアクセス回数を用いて論理ドライブを交換することが記載されているに留まる。即ち、特許文献3には、ライトキャッシュを優先して安全性の高い記憶装置により構築することについて、考慮されておらず何ら述べられていない。
【0021】
本発明は、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減可能なキャッシュ制御装置等を提供することを主たる目的とする。
【課題を解決するための手段】
【0022】
上記の課題を達成すべく、本発明の一態様に係るキャッシュ制御装置は、以下の構成を備えることを特徴とする。
【0023】
即ち、本発明の一態様に係るキャッシュ制御装置は、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視手段と、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する制御手段と、
を備える。
【0024】
或いは、同目的は、上記に示すキャッシュ制御装置を含むストレージ装置によっても達成される。
【0025】
また、同目的を達成すべく、本発明の一態様に係るキャッシュ制御方法は、以下の構成を備えることを特徴とする。
【0026】
即ち、本発明の一態様に係るキャッシュ制御方法は、
情報処理装置によって、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視し、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する。
【0027】
尚、同目的は、上記の各構成を有するキャッシュ制御装置及びキャッシュ制御方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【0028】
本発明によれば、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減可能なキャッシュ制御装置等を提供することができる。
【発明を実施するための形態】
【0030】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【0031】
<第1の実施形態>
図1は、本発明の第1の実施形態におけるキャッシュ制御装置1を含むストレージ装置10の構成を示すブロック図である。
【0032】
図1において、ストレージ装置10は、キャッシュ11、1つ以上の記憶装置12及びキャッシュ制御装置1を有する。また、キャッシュ11は、記憶装置13及び記憶装置14により構成される。
【0033】
尚、以下の説明では、説明の便宜上、第1の記憶装置を「記憶装置13」と称する。また、以下の説明では、第2の記憶装置を「記憶装置14」と称する。そして、以下の説明では、第3の記憶装置を「記憶装置12」と称する。
【0034】
また、以下の説明では、説明の便宜上、一例として、記憶装置13は、ライトキャッシュとして機能することとする。また、記憶装置14は、リードキャッシュとして機能することとする(以下、各実施形態においても同様)。
【0035】
より具体的に、ストレージ装置10は、例えば、ライト処理を実行する場合に、ホストコンピュータ200から送信された書き込み情報(「ライトデータ」とも記す)を記憶装置13にキャッシュするよう制御する。また、ストレージ装置10は、記憶装置13にキャッシュされた書き込み情報を、記憶装置12に記憶するよう制御する。
【0036】
また、ストレージ装置10は、例えば、リード処理を実行する場合に、記憶装置12に記憶された読み込み情報(「リードデータ」とも記す)を、記憶装置14にキャッシュするよう制御する。また、ストレージ装置10は、記憶装置14にキャッシュされた読み込み情報を、ホストコンピュータ200に送信するよう制御する。
【0037】
記憶装置(記憶装置12、記憶装置13及び記憶装置14)は、例えば、コンピュータによるデータの読み書きが可能な不揮発性の記憶装置である。より具体的に、一例として、記憶装置は、HDD、SSD、半導体メモリ、或いは、それらに類するデータ記憶媒体等の不揮発性の記憶装置を採用することができる。
【0038】
次に、
図1において、キャッシュ制御装置1は、監視部2及び制御部3を備える。
【0039】
監視部2は、キャッシュ11を構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置(記憶装置13及び記憶装置14)の障害を監視する。即ち、監視部2は、キャッシュ11を構成する複数の記憶装置毎に、その記憶装置において発生する障害を監視する。また、監視部2は、特定の記憶装置において障害が発生した場合に、値をインクリメントするよう第1のエラーポイントを制御する。
【0040】
ここで、エラー情報(エラー情報102、エラー情報103)は、第1のエラーポイントと第2のエラーポイントとを含む情報である。エラー情報102は、記憶装置13に対応するエラー情報である。また、エラー情報103は、記憶装置14に対応するエラー情報である。即ち、エラー情報は、キャッシュ11を構成する複数の記憶装置毎に存在する。
【0041】
より具体的に、監視部2は、記憶装置13と記憶装置14とにおいて発生する障害を監視する。
【0042】
監視部2は、記憶装置13において障害が発生した場合に、エラー情報102に含まれる第1のエラーポイントの値をインクリメントするよう制御する。
【0043】
また、監視部2は、記憶装置14において障害が発生した場合に、エラー情報103に含まれる第1のエラーポイントの値をインクリメントするよう制御する。即ち、エラー情報102及びエラー情報103の第1のエラーポイントは、記憶装置に障害が発生した際に加算される加算カウンタである。
【0044】
次に、以下の説明において、より具体的に、本実施形態における監視部2の動作について説明する。
【0045】
図2は、本発明の第1の実施形態における監視部2が行う動作を示すフローチャートである。係るフローチャートに沿って監視部2の動作手順を説明する。
【0046】
ステップS1:
監視部2は、キャッシュ11を構成する複数の記憶装置を監視する。
【0047】
ここでは、監視部2は、記憶装置13と記憶装置14とにおいて、障害が発生したか否かを判別する。
【0048】
監視部2は、例えば、記憶装置13及び記憶装置14に対して発行されたコマンドに対する応答種別に基づき障害が発生したか否かを判別する構成を採用してもよい。ここで、応答種別とは、例えば、コマンドに対して、正常に終了したことを示す正常応答、障害が発生したことを示すエラー応答及び応答のない無応答である。また、エラー応答とは、例えば、ホストコンピュータ200との通信障害による通信エラー、媒体(メモリ)エラー及びハードウェア故障によるハードウェアエラーなどが考えられる。この場合に、監視部2は、正常応答以外の応答を障害が発生したと判別することができる。
【0049】
ステップS1において「YES」:
監視部2は、記憶装置において、障害が発生したか否かを判別した結果、障害が発生したと判別する場合に、処理をステップS2に進める。
【0050】
ステップS1において「NO」:
監視部2は、記憶装置において、障害が発生したか否かを判別した結果、障害が発生していないと判別する場合に、処理をステップS1に戻す。即ち、監視部2は、記憶装置の監視を継続する。
【0051】
ステップS2:
監視部2は、エラー情報(エラー情報102、エラー情報103)に含まれる第1のエラーポイントの値をインクリメントするよう制御する。
【0052】
ここでは、例えば、記憶装置13に障害が発生した場合の動作について説明する。監視部2は、エラー情報102に含まれる第1のエラーポイントの値をインクリメントするよう制御する。
【0053】
このように、監視部2は、繰り返しキャッシュ11を構成する複数の記憶装置を監視する。
【0054】
次に、以下の説明では、制御部3の動作について説明する。
【0055】
尚、以下の説明では、説明の便宜上、一例として、寿命に関する情報を、単に「寿命情報」と称する。
【0056】
また、以下の説明では、記憶装置13における第1のエラーポイントと第2のエラーポイントとの差分値を、「第1のポイント差分値」と称する。そして、以下の説明では、記憶装置14における第1のエラーポイントと第2のエラーポイントとの差分値を、「第2のポイント差分値」と称する。また、以下の説明では、第1のポイント差分値と第2のポイント差分値との差分値を、「第3のポイント差分値」と称する。さらに、以下の説明では、制御部3が求めた寿命情報の差分値を、「寿命差分値」と称する(以下、各実施形態においても同様)。
【0057】
制御部3は、監視時刻に、以下において説明する処理を実行する。制御部3は、キャッシュ11を構成する記憶装置における監視部2による監視結果を示す障害情報(エラー情報102及び103)と寿命に関する情報(寿命情報)と判定情報とに基づき、複数の記憶装置の優劣を判別する。そして、制御部3は、優劣を判別した結果に応じて、キャッシュ11の構成を変更する(スワップ処理)。即ち、制御部3は、複数の記憶装置のうち、ライトキャッシュとして動作する記憶装置が他の記憶装置より劣ると判別する場合には、当該他の記憶装置をライトキャッシュに割り当てる。
【0058】
より具体的に、制御部3は、複数の記憶装置のうち、ライトキャッシュとして動作する記憶装置(第1の記憶装置)の障害情報と、その記憶装置と異なる他の記憶装置の障害情報とに基づいて、障害判定処理を実行する。制御部3は、障害判定処理を実行した結果、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣ると判別する場合に、係るキャッシュ11の構成を変更する。一方で、制御部3は、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣らないと判別する場合に、ライトキャッシュとして動作する記憶装置の寿命情報と当該他の記憶装置の寿命情報とに基づいて、寿命判定処理を実行する。制御部3は、寿命判定処理を実行した結果、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣ると判別する場合には、係るキャッシュ11の構成を変更する。尚、障害判定処理及び寿命判定処理については、本実施形態において後述する。
【0059】
ここで、以下の説明では、寿命情報及び監視情報101について説明する。
【0060】
寿命情報は、例えば、記憶装置13及び記憶装置14において管理された寿命に関する情報である。寿命情報は、例えば、記憶装置13及び記憶装置14が未使用な状態を「100」とする。また、寿命情報は、例えば、記憶装置13及び記憶装置14が寿命に達した状態を「0」とする。即ち、寿命情報は、減算カウンタである。より具体的に、例えば、記憶装置にSSDを採用する場合に、寿命情報は、SSDに対する書き込み回数を示す情報を含む。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0061】
また、監視情報101は、制御部3が処理を開始する時刻を示す「監視時刻」、その監視時刻から所定の期間を示す「インターバル情報」、スワップ処理の実行判定に用いる判定情報を含む。ここで、判定情報は、「ポイント差分閾値(第1の閾値)」、「寿命閾値(第2の閾値)」及び「寿命差分閾値(第3の閾値)」を含む。
【0062】
監視情報101、エラー情報102及びエラー情報103は、例えば、ストレージ装置10が有する不図示の記憶領域に格納されている構成を採用してもよい。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0063】
次に、以下の説明において、より具体的に、本実施形態における制御部3の動作について説明する。
【0064】
図3A及び
図3Bは、本発明の第1の実施形態における制御部3が行う動作を示すフローチャートである。係るフローチャートに沿って制御部3の動作手順を説明する。
【0065】
ステップS11:
制御部3は、監視情報101に含まれる監視時刻と現在の時刻とを比較する。
【0066】
ステップS11において「YES」:
制御部3は、監視時刻と現在の時刻とを比較した結果、現在の時刻が監視時刻を経過したと判別する場合に、処理をステップS12に進める。
【0067】
ステップS11において「NO」:
制御部3は、監視時刻と現在の時刻とを比較した結果、現在の時刻が監視時刻を経過していないと判別する場合に、処理を終了する。
【0068】
ステップS12:
制御部3は、監視情報101の更新処理を実行する。
【0069】
より具体的に、制御部3は、監視情報101に含まれる監視時刻とインターバル情報とに基づき、次回の監視時刻を算出する。即ち、制御部3は、自装置において処理を実行する次回の時刻(監視時刻)を算出する。
【0070】
また、制御部3は、算出した次回の監視時刻を、監視情報101に記憶する。即ち、制御部3は、監視情報101に含まれる監視時刻を、算出した監視時刻に更新する。
【0071】
尚、制御部3は、監視時刻にインターバル情報を加算することによって、次回の監視時刻を算出することができる。
【0072】
ステップS13:
制御部3は、記憶装置毎に、エラー情報(エラー情報102、エラー情報103)に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、差分値を算出する。即ち、制御部3は、記憶装置毎に、例えば、エラー情報に格納された第1のエラーポイントから第2のエラーポイントを減算することによって、差分値を算出する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0073】
より具体的に、制御部3は、エラー情報102に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、差分値(第1のポイント差分値)を算出する。そして、制御部3は、エラー情報103に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、差分値(第2のポイント差分値)を算出する。
【0074】
ステップS14:
制御部3は、記憶装置毎に、エラー情報に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報に格納する。
【0075】
より具体的に、制御部3は、エラー情報102に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報102に格納する。また、制御部3は、エラー情報103に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報103に格納する。
【0076】
ステップS15:
制御部3は、エラー判定処理(障害判定処理)を実行する。
【0077】
制御部3は、算出した第1のポイント差分値及び第2のポイント差分値と、ポイント差分閾値とに基づいて、エラー判定処理を実行する。
【0078】
より具体的に、制御部3は、例えば、ライトキャッシュとして動作する記憶装置のポイント差分値からその記憶装置と異なる他の記憶装置のポイント差分値を減算することによって、それらポイント差分値の差分値(第3のポイント差分値)を算出する。次に、制御部3は、算出した第3のポイント差分値と、監視情報101に含まれるポイント差分閾値とを比較する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0079】
ここでは、制御部3は、ライトキャッシュとして動作する記憶装置13の第1のポイント差分値から記憶装置13と異なる他の記憶装置14の第2のポイント差分値を減算することによって、第3のポイント差分値を算出することとする。
【0080】
ステップS15において「YES」:
制御部3は、比較した結果、第3のポイント差分値がポイント差分閾値より大きいと判別する場合に、処理をステップS18に進める。
【0081】
ステップS15において「NO」:
制御部3は、比較した結果、第3のポイント差分値がポイント差分閾値より大きくないと判別する場合に、処理をステップS16に進める。
【0082】
ステップS16:
制御部3は、第1の寿命判定処理を実行する。即ち、制御部3は、キャッシュ11を構成する全ての記憶装置から寿命に関する情報(寿命情報)を取得する。次に、制御部3は、ライトキャッシュとして動作する記憶装置の寿命情報と、監視情報101に含まれる寿命閾値とを比較する。
【0083】
ここでは、制御部3は、記憶装置13及び記憶装置14からそれぞれの記憶装置における寿命情報を取得する。また、制御部3は、ライトキャッシュとして動作する記憶装置13の寿命情報と、監視情報101に含まれる寿命閾値とを比較する。
【0084】
ステップS16において「YES」:
制御部3は、比較した結果、ライトキャッシュとして動作する記憶装置の寿命情報が寿命閾値より小さいと判別する場合に、処理をステップS17に進める。
【0085】
ここでは、制御部3は、比較した結果、記憶装置13の寿命情報が寿命閾値より小さいと判別する場合に、処理をステップS17に進める。
【0086】
ステップS16において「NO」:
制御部3は、比較した結果、ライトキャッシュとして動作する記憶装置の寿命情報が寿命閾値より小さくないと判別する場合に、処理を終了する。
【0087】
ここでは、制御部3は、比較した結果、記憶装置13の寿命情報が寿命閾値より小さくないと判別する場合に、処理を終了する。
【0088】
ステップS17:
制御部3は、ライトキャッシュとして動作する記憶装置の寿命情報、その記憶装置と異なる他の記憶装置の寿命情報及び寿命差分閾値に基づいて、第2の寿命判定処理を実行する。
【0089】
より具体的に、制御部3は、例えば、当該異なる他の記憶装置の寿命情報からライトキャッシュとして動作する記憶装置の寿命情報を減算することによって、差分値(寿命差分値)を算出する。次に、制御部3は、算出した寿命差分値と、監視情報101に含まれる寿命差分閾値とを比較する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない(以下、各実施形態においても同様)。
【0090】
ここでは、制御部3は、記憶装置14の寿命情報から記憶装置13の寿命情報を減算することによって、寿命差分値を算出する。制御部3は、算出した寿命差分値と、監視情報101に含まれる寿命差分閾値とを比較する。
【0091】
ステップS17において「YES」:
制御部3は、比較した結果、算出した寿命差分値が寿命差分閾値より大きいと判別する場合に、処理をステップS18に進める。
【0092】
ステップS17において「NO」:
制御部3は、比較した結果、算出した寿命差分値が寿命差分閾値より大きくないと判別する場合に、処理を終了する。
【0093】
ステップS18:
制御部3は、スワップ処理を実行する。即ち、制御部3は、キャッシュ11の構成を変更する。
【0094】
より具体的に、制御部3は、ライトキャッシュとして動作する記憶装置を、リードキャッシュに割り当てる。その一方で、制御部3は、リードキャッシュとして動作する記憶装置を、ライトキャッシュに割り当てる。
【0095】
ここでは、例えば、記憶装置14がより障害が少なく、且つ寿命の長い記憶装置として説明する。制御部3は、より障害が少なく、且つ寿命の長い記憶装置14をライトキャッシュとして構成する。また、制御部3は、他方の記憶装置13をリードキャッシュとして構成する。
【0096】
これにより、制御部3は、1つ以上の記憶装置のうち、より障害が少なく、且つ寿命の長い一方の記憶装置をライトキャッシュとして構成することができる。即ち、ストレージ装置10は、安全性の高いライトキャッシュにデータをキャッシュすることができるため、当該データの損失リスクを低減することができる。
【0097】
尚、上述した本実施形態では、説明の便宜上、一例として、監視部2は、記憶装置に障害が発生した際に、記憶装置毎に、対応するエラー情報に第1及び第2のエラーポイントを格納する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。監視部2は、1つのエラー情報に記憶装置毎の第1及び第2のエラーポイントを格納する構成を採用してもよい。その場合に、監視部2は、例えば、1つのエラー情報に、個々の記憶装置を識別可能なように第1及び第2のエラーポイントを格納することにより実現してもよい。
【0098】
また、キャッシュ制御装置1は、例えば、RAIDを構成するキャッシュに対しても適用可能である。
【0099】
このように本実施の形態に係るキャッシュ制御装置1によれば、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減することができる。その理由は、以下に述べる通りである。
【0100】
即ち、キャッシュ制御装置1は、キャッシュ11を構成する複数の記憶装置において発生する障害を監視する監視部2と、記憶装置におけるエラー情報、寿命情報及び判定情報に基づいて記憶装置の優劣を判別する制御部3とを備えるからである。また、制御部3は、判別結果に応じて、キャッシュ11の構成を変更することができるからである。
【0101】
これにより、キャッシュ制御装置1は、ライトキャッシュとして動作する記憶装置に障害が発生する可能性が高いと判別した場合に、障害発生の可能性が低い記憶装置を特定することができる。また、キャッシュ制御装置1は、ライトキャッシュとして動作する記憶装置から特定した記憶装置に切り替えることができる。即ち、キャッシュ制御装置1は、ライトキャッシュの障害発生を抑止すると共に、データ損失のリスクを低減することができる。
【0102】
<第2の実施形態>
次に、上述した本発明の第1の実施形態に係るキャッシュ制御装置1を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【0103】
本発明の第2の実施形態におけるキャッシュ制御装置1について、
図2乃至
図5を参照して説明する。
【0104】
図4は、本発明の第2の実施形態におけるキャッシュ制御装置1を含むストレージ装置20の構成を示すブロック図である。
【0105】
図4において、ストレージ装置20は、SSDキャッシュ21、1つ以上のHDD22及びキャッシュ制御装置1を有する。また、SSDキャッシュ21は、SSD23及びSSD24により構成される。キャッシュ制御装置1は、監視部2及び制御部3を備える。
【0106】
HDD22は、第1の実施形態において説明した記憶装置12に相当する。また、SSD23は、第1の実施形態において説明した記憶装置13に相当する。SSD24は、第1の実施形態において説明した記憶装置14に相当する。
【0107】
次に、以下の説明において、より具体的に、本実施形態におけるキャッシュ制御装置1が行うSSD23において処理を継続可能な障害が発生した際の動作について、
図2乃至
図5を参照して説明する。
【0108】
図5は、本発明の第2の実施形態におけるキャッシュ制御装置1を含むストレージ装置20のSSD23において、障害が発生した態様を概念的に例示する図である。
【0109】
図5に示すストレージ装置20の構成は、
図4に示すストレージ装置20の構成と同様である。そのため、詳細な説明は、省略する。
【0110】
以下の説明では、説明の便宜上、一例として、SSD23は、ライトキャッシュとして機能することとする。また、SSD24は、リードキャッシュとして機能することとする。
【0111】
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、前述した構成にはこれに限定されない(以下の実施形態においても同様)。
【0112】
まず、以下の説明では、監視部2による監視処理について、
図2を参照して説明する。
【0113】
監視部2は、SSD23において、障害が発生したと判別する(ステップS1おいて「YES」)。監視部2は、エラー情報102に含まれる第1のエラーポイントの値をインクリメントするよう制御する(ステップS2)。
【0114】
次に、以下の説明では、制御部3による一連の処理について、
図3A及び
図3Bを参照して説明する。
【0115】
制御部3は、現在の時刻が監視時刻を経過したと判別する(ステップS11において「YES」)。制御部3は、監視情報101に含まれる監視時刻とインターバル情報とに基づき、次回の監視時刻を算出する。制御部3は、監視情報101に含まれる監視時刻を、算出した監視時刻に更新する(ステップS12)。制御部3は、エラー情報102に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、第1のポイント差分値を算出する。そして、制御部3は、エラー情報103に格納された第1のエラーポイントと第2のエラーポイントとに基づいて、第2のポイント差分値を算出する(ステップS13)。制御部3は、エラー情報102に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報102に格納する。また、制御部3は、エラー情報103に格納された第1のエラーポイントの値を、第2のエラーポイントとしてエラー情報103に格納する(ステップ(ステップS14)。
【0116】
制御部3は、ライトキャッシュとして動作するSSD23の第1のポイント差分値からSSD23と異なる他のSSD24の第2のポイント差分値を減算することによって、第3のポイント差分値を算出する(ステップS15)。
【0117】
次に、制御部3は、算出した第3のポイント差分値と、監視情報101に含まれるポイント差分閾値とを比較する。制御部3は、比較した結果、第3のポイント差分値がポイント差分閾値より大きくないと判別する(ステップS15において「NO」)。
【0118】
制御部3は、SSD23及びSSD24から寿命情報を取得する。また、制御部3は、ライトキャッシュとして動作するSSD23の寿命情報と、監視情報101に含まれる寿命閾値とを比較する。制御部3は、比較した結果、ライトキャッシュとして動作するSSD23の寿命情報が寿命閾値より小さいと判別する(ステップS16において「YES」)。
【0119】
制御部3は、SSD24の寿命情報からライトキャッシュとして動作するSSD23の寿命情報を減算することによって、寿命差分値を算出する。次に、制御部3は、算出した寿命差分値と、監視情報101に含まれる寿命差分閾値とを比較する。制御部3は、比較した結果、算出した寿命差分値が寿命差分閾値より大きいと判別する(ステップS17において「YES」)。
【0120】
制御部3は、ライトキャッシュとして動作するSSD23を、リードキャッシュに割り当てる。その一方で、制御部3は、リードキャッシュとして動作するSSD24を、ライトキャッシュに割り当てる(ステップS18)。
【0121】
尚、上述した本実施形態では、説明の便宜上、一例として、キャッシュ制御装置1は、2つの記憶装置(SSD23、SSD24)の優劣を判別した結果に応じて、スワップ処理を実行する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。キャッシュ制御装置1は、2つの記憶装置の優劣を判別した結果に応じて、その2つの記憶装置と異なる予備の記憶装置をライトキャッシュに割り当てる構成を採用してもよい。或いは、キャッシュ制御装置1は、複数の記憶装置の優劣を判別した結果に応じて、スワップ処理を実行する構成を採用してもよい。
【0122】
その場合に、制御部3は、複数の記憶装置のうち、最も障害が少なく、且つ寿命の長い記憶装置をライトキャッシュに割り当てることにより実現してもよい。
【0123】
このように本実施の形態に係るキャッシュ制御装置1によれば、第1の実施形態において説明した効果を享受できると共に、さらに、SSDキャッシュを備えたストレージ装置に適用して好適である。また、キャッシュ制御装置1によれば、さらに、データ損失のリスクを低減することができる。その理由は、以下に述べる通りである。
【0124】
即ち、キャッシュ制御装置1は、HDDよりI/O性能の優れたSSDを制御することができるからである。また、複数の記憶装置を備えたSSDキャッシュ21であっても、キャッシュ制御装置1は、複数の記憶装置の優劣を判別することができるからである。また、キャッシュ制御装置1は、優劣を判別した結果に応じて、複数の記憶装置のうち、より障害が少なく、且つ寿命の長い一方の記憶装置をライトキャッシュとして構成することができるからである。
【0125】
(ハードウェア構成例)
上述した実施形態において図面に示した各部は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。これらの各ソフトウェアモジュールは、専用のハードウェアによって実現してもよい。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定されうる。この場合のハードウェア環境の一例を、
図6を参照して説明する。
【0126】
図6は、本発明の模範的な実施形態に係るキャッシュ制御装置を実行可能な情報処理装置300(コンピュータ)の構成を例示的に説明する図である。即ち、
図6は、
図1に示したキャッシュ制御装置1、或いは、
図4に示したキャッシュ制御装置1、の全体または一部のキャッシュ制御装置を実現可能なサーバ等のコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【0127】
図6に示した情報処理装置300は、CPU301、ROM(リード_Only_Memory)302、RAM(Random_Access_Memory)303、ハードディスク304(記憶装置)、並びに外部装置との通信インタフェース(Interface:以降、「I/F」と称する)305、CD−ROM(Compact_Disc_リード_Only_Memory)等の記憶媒体307に格納されたデータを読み書き可能なリーダライタ308を備え、これらの構成がバス306(通信線)を介して接続された一般的なコンピュータである。
【0128】
そして、上述した実施形態を例に説明した本発明は、
図6に示した情報処理装置300に対して、その説明において参照したブロック構成図(
図1、
図4)或いはフローチャート(
図2、
図3A、
図3B)の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのCPU301に読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ(RAM303)またはハードディスク304等の不揮発性の記憶デバイスに格納すれば良い。
【0129】
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、CD−ROM等の各種記憶媒体307を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが格納された記憶媒体によって構成されると捉えることができる。