(57)【特許請求の範囲】
【請求項１】
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視手段と、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する制御手段と、
を備えることを特徴とするキャッシュ制御装置。
【請求項２】
前記制御手段は、前記キャッシュの構成を変更する処理として、
前記複数の記憶装置のうち、前記ライトキャッシュとして動作する第１の記憶装置が該第１の記憶装置と異なる他の記憶装置より劣ると判別した場合には、前記他の記憶装置を前記ライトキャッシュに割り当てる
ことを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項３】
前記制御手段は、
前記第１の記憶装置の前記障害情報と前記他の記憶装置の前記障害情報とに基づく障害判定処理を実行し、前記障害判定処理を実行した結果、前記第１の記憶装置が前記他の記憶装置より劣ると判別する場合に、前記キャッシュの変更処理を実行する一方で、
前記第１の記憶装置が前記他の記憶装置より劣らないと判別する場合には、前記第１の記憶装置の前記寿命情報と前記他の記憶装置の前記寿命情報とに基づく寿命判定処理を実行し、前記寿命判定処理を実行した結果、前記第１の記憶装置が前記他の記憶装置より劣ると判別した場合には、前記キャッシュの変更処理を実行する
ことを特徴とする請求項２に記載のキャッシュ制御装置。
【請求項４】
前記障害判定処理は、
前記障害情報に格納された第１のエラーポイントと第２のエラーポイントとの差分を求め、前記障害情報に格納された第１のエラーポイントの値を、前記第２のエラーポイントとして前記障害情報に格納し、
前記第１の記憶装置の前記障害情報に基づき求めた第１の差分を示す値と、前記他の記憶装置の前記障害情報に基づき求めた第２の差分を示す値との差分値を求め、その差分値と第１の閾値とを比較し、比較結果のうち、一方の場合は前記第１の記憶装置が前記他の記憶装置より劣ると判別し、他方の場合には前記第１の記憶装置が前記他の記憶装置より劣らないと判別する
ことを特徴とする請求項３に記載のキャッシュ制御装置。
【請求項５】
前記寿命判定処理は、
前記複数の記憶装置から前記寿命情報を取得し、前記取得した第１の記憶装置の寿命情報と第２の閾値とを比較し、比較結果のうち、一方の場合には前記取得した他の記憶装置の寿命情報と前記第１の記憶装置の前記寿命情報とに基づき差分値を求め、その差分値と第３の閾値とを比較し、比較結果のうち、一方の場合には前記第１の記憶装置が前記他の記憶装置より劣ると判別する
ことを特徴とする請求項３に記載のキャッシュ制御装置。
【請求項６】
前記監視手段は、
前記記憶装置に障害が発生した場合に、第１のエラーポイントをインクリメントするよう制御する
ことを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項７】
前記記憶装置は、ＳＳＤである
ことを特徴とする請求項１乃至請求項６の何れかに記載のキャッシュ制御装置。
【請求項８】
請求項１乃至請求項７の何れかに記載されたキャッシュ制御装置を含むことを特徴とするストレージ装置。
【請求項９】
情報処理装置によって、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視手段によって監視し、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する
ことを特徴とするキャッシュ制御方法。
【請求項１０】
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視機能と、
前記記憶装置における寿命に関する寿命情報と前記監視機能による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する機能と、を
コンピュータに実現させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、キャッシュ機能を備えた記憶装置に関する。
【背景技術】
【０００２】
データ（情報）を記憶可能なストレージ装置では、例えば、障害による情報喪失に備えて、様々な対策がとられている。その対策としては、例えば、２台の記憶装置に対して同一の情報を記憶するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ＿Ａｒｒａｙｓ＿ｏｆ＿Ｉｎｅｘｐｅｎｓｉｖｅ＿Ｄｉｓｋｓ）方式が知られている。
【０００３】
ここで、本願出願に先立って存在する関連技術としては、例えば、特許文献１乃至特許文献３がある。
【０００４】
特許文献１は、メモリシステム及びメモリシステムの制御方法に関する技術を開示する。特許文献１に開示されたメモリシステムは、リードまたはライト処理を実行するに際して、データの記憶位置を示す揮発性アドレス情報を、キャッシュメモリに格納する。これにより、メモリシステムは、全てのデータが記憶されている記憶位置とその記憶位置に対応する論理アドレスとをキャッシュメモリに格納するのに比べ、キャッシュメモリの容量を抑えることができる。
【０００５】
次に、特許文献２は、書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法に関する技術を開示する。特許文献２に開示された記憶装置は、不揮発性メモリ内に設けられた複数の物理ブロック毎に、データの書き込みに応じて、書き込み回数を表す情報を保存する。また、記憶装置は、データの書き込みに応じて、保存された書き込み回数情報を参照する。書き込み回数情報を参照した結果、記憶装置は、書き込み回数が所定の回数に達した場合に、書き込みの対象である物理ブロックを、他の物理ブロックと交換する。他の物理ブロックと交換するに際して、記憶装置は、既に交換された物理ブロックと異なる最も書き込み回数の少ない物理ブロックを選定する。これにより、記憶装置は、物理ブロックに対する書き込み回数を平均化することができる。
【０００６】
特許文献３には、半導体ディスク装置におけるメモリ障害減少化方法に関する技術が開示されている。特許文献３に開示された半導体ディスク装置は、複数に分けられた論理ドライブ毎に、アクセス回数をカウントする。また、半導体ディスク装置は、１ビットエラーが発生した場合に、エラーの発生回数をカウントする。半導体ディスク装置は、アクセス回数が所定の回数以上、且つエラーの発生率が所定の閾値に達した場合に、処理を開始する。即ち、半導体ディスク装置は、対象となる論理ドライブに記憶された情報を、アクセス回数が最も少なく、且つエラーの発生回数の少ない論理ドライブに記憶された情報と交換する。これにより、半導体ディスク装置は、障害の発生率を低減することができる。尚、特許文献３に開示された半導体ディスクとは、ＳＳＤ（Ｓｏｌｉｄ＿Ｓｔａｔｅ＿Ｄｒｉｖｅ：本願では、「ＳＳＤ」と称する）である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１２８６４６号公報
【特許文献２】特開２００４−３２６５２３号公報
【特許文献３】特開平０６−０６７８１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、ストレージ装置は、より高速にリード及びライト処理を実行可能なようにキャッシュを備えることが知られている。より具体的に、ストレージ装置は、例えば、リード処理を受け付けた場合に、情報を、ハードディスクドライブから読み出すのではなく、ＳＳＤにより構成されたキャッシュから読み出す。このように、ストレージ装置は、情報を高速に読み書き可能なＳＳＤをキャッシュ（「二次キャッシュ」とも称する）として活用する技術が存在する。尚、以下の説明において、本願では、説明の便宜上、ハードディスクドライブ（Ｈａｒｄ＿ｄｉｓｋ＿ｄｒｉｖｅ）を「ＨＤＤ」と称する。
【０００９】
以下の説明では、より具体的に、一般的に知られたストレージ装置２１０について図７乃至図９を参照して説明する。図７は、一般的に知られたストレージ装置２１０の構成を示すブロック図である。
【００１０】
図７において、ストレージ装置２１０は、データを含む情報を記憶する１つ以上のＨＤＤ２３０及びＳＳＤキャッシュ２２０を有する。また、ＳＳＤキャッシュ２２０は、ＨＤＤ２３０と比較してＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理性能に優れたＳＳＤ２２１及びＳＳＤ２２２を有する。
【００１１】
図７において、ライト処理を実行する場合に、ホストコンピュータ２００から送信されたライトデータは、ＳＳＤ２２１にキャッシュされる。そして、当該ライトデータは、ＨＤＤ２３０に記憶される。また、リード処理を実行する場合には、ＨＤＤ２３０に記憶されたリードデータは、ＳＳＤ２２２にキャッシュされる。そして、当該リードデータは、ホストコンピュータ２００に送信される。
【００１２】
ここで、以下の説明では、例えば、ＳＳＤ２２１が故障した場合について図８を参照して説明する。
【００１３】
図８は、一般的に知られたストレージ装置２１０においてＳＳＤ２２１が故障した態様を概念的に例示する図である。尚、図８に示すストレージ装置２１０の構成は、図７に示すストレージ装置２１０の構成と同様である。そのため、詳細な説明は省略する。
【００１４】
図８において、ＳＳＤ２２１が故障した場合に、ホストコンピュータ２００から送信されたライトデータは、ＨＤＤ２３０に記憶されないだけでなく、ＳＳＤ２２１にキャッシュされたデータも損失する。即ち、一般的に知られたストレージ装置２１０では、ＳＳＤ２２１にキャッシュされたライトデータが失われデータ損失が発生する。
【００１５】
また、以下の説明では、例えば、ＳＳＤ２２２が故障した場合について図９を参照して説明する。
【００１６】
図９は、一般的に知られたストレージ装置２１０においてＳＳＤ２２２が故障した態様を概念的に例示する図である。尚、図９に示すストレージ装置２１０の構成は、図７に示すストレージ装置２１０の構成と同様である。そのため、詳細な説明は省略する。
【００１７】
図９において、ＳＳＤ２２２が故障した場合に、ＨＤＤ２３０に記憶されたリードデータは、ＨＤＤ２３０に記憶されている。そのため、ＳＳＤ２２２が故障した場合であっても、ストレージ装置２１０においてデータ損失は発生しない。
【００１８】
このように、一般的に知られたストレージ装置２１０では、ライトデータをキャッシュするＳＳＤ２２１が故障した場合に、ＨＤＤ２３０に記憶されない虞がある。即ち、ライトデータをＳＳＤ２２１からＨＤＤ２３０に書き出していない場合に、ストレージ装置２１０では、データ損失が生じる可能性がある。また、例えば、ＲＡＩＤを構成するストレージ装置であっても、ＳＳＤにおいて多重障害が発生した場合には、データ損失は発生する虞がある。
【００１９】
また、特許文献１乃至特許文献３に開示された技術は、ＳＳＤ内部を制御する技術が開示されているに留まる。特許文献１乃至特許文献３には、ＳＳＤをキャッシュとして動作させることについては開示も示唆もしていない。そして、特許文献１には、キャッシュメモリ容量を抑制することが記載されているに留まる。また、特許文献２には、物理ブロックに対する書き込み回数を平均化することが記載されているに留まる。
【００２０】
さらに、特許文献３は、論理ドライブのエラー回数やアクセス回数を用いて論理ドライブを交換することが記載されているに留まる。即ち、特許文献３には、ライトキャッシュを優先して安全性の高い記憶装置により構築することについて、考慮されておらず何ら述べられていない。
【００２１】
本発明は、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減可能なキャッシュ制御装置等を提供することを主たる目的とする。
【課題を解決するための手段】
【００２２】
上記の課題を達成すべく、本発明の一態様に係るキャッシュ制御装置は、以下の構成を備えることを特徴とする。
【００２３】
即ち、本発明の一態様に係るキャッシュ制御装置は、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視する監視手段と、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する制御手段と、
を備える。
【００２４】
或いは、同目的は、上記に示すキャッシュ制御装置を含むストレージ装置によっても達成される。
【００２５】
また、同目的を達成すべく、本発明の一態様に係るキャッシュ制御方法は、以下の構成を備えることを特徴とする。
【００２６】
即ち、本発明の一態様に係るキャッシュ制御方法は、
情報処理装置によって、
キャッシュを構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置の障害を監視し、
前記記憶装置における寿命に関する寿命情報と前記監視手段による監視結果を示す障害情報とに基づいて、前記複数の記憶装置の優劣を判別すると共に、その判別結果に応じて、前記キャッシュの構成を変更する。
【００２７】
尚、同目的は、上記の各構成を有するキャッシュ制御装置及びキャッシュ制御方法を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００２８】
本発明によれば、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減可能なキャッシュ制御装置等を提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１の実施形態におけるキャッシュ制御装置を含むストレージ装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態における監視部が行う動作を示すフローチャートである。
【図３Ａ】本発明の第１の実施形態における制御部が行う動作を示すフローチャートである。
【図３Ｂ】本発明の第１の実施形態における制御部が行う動作を示すフローチャートである。
【図４】本発明の第２の実施形態におけるキャッシュ制御装置を含むストレージ装置の構成を示すブロック図である。
【図５】本発明の第２の実施形態におけるキャッシュ制御装置を含むストレージ装置の一方のＳＳＤにおいて、障害が発生した態様を概念的に例示する図である。
【図６】本発明に係る各実施形態を実現可能な情報処理装置のハードウェア構成を例示的に説明するブロック図である。
【図７】一般的に知られたストレージ装置の構成を示すブロック図である。
【図８】一般的に知られたストレージ装置において一方のＳＳＤが故障した態様を概念的に例示する図である。
【図９】一般的に知られたストレージ装置において他方のＳＳＤが故障した態様を概念的に例示する図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００３１】
＜第１の実施形態＞
図１は、本発明の第１の実施形態におけるキャッシュ制御装置１を含むストレージ装置１０の構成を示すブロック図である。
【００３２】
図１において、ストレージ装置１０は、キャッシュ１１、１つ以上の記憶装置１２及びキャッシュ制御装置１を有する。また、キャッシュ１１は、記憶装置１３及び記憶装置１４により構成される。
【００３３】
尚、以下の説明では、説明の便宜上、第１の記憶装置を「記憶装置１３」と称する。また、以下の説明では、第２の記憶装置を「記憶装置１４」と称する。そして、以下の説明では、第３の記憶装置を「記憶装置１２」と称する。
【００３４】
また、以下の説明では、説明の便宜上、一例として、記憶装置１３は、ライトキャッシュとして機能することとする。また、記憶装置１４は、リードキャッシュとして機能することとする（以下、各実施形態においても同様）。
【００３５】
より具体的に、ストレージ装置１０は、例えば、ライト処理を実行する場合に、ホストコンピュータ２００から送信された書き込み情報（「ライトデータ」とも記す）を記憶装置１３にキャッシュするよう制御する。また、ストレージ装置１０は、記憶装置１３にキャッシュされた書き込み情報を、記憶装置１２に記憶するよう制御する。
【００３６】
また、ストレージ装置１０は、例えば、リード処理を実行する場合に、記憶装置１２に記憶された読み込み情報（「リードデータ」とも記す）を、記憶装置１４にキャッシュするよう制御する。また、ストレージ装置１０は、記憶装置１４にキャッシュされた読み込み情報を、ホストコンピュータ２００に送信するよう制御する。
【００３７】
記憶装置（記憶装置１２、記憶装置１３及び記憶装置１４）は、例えば、コンピュータによるデータの読み書きが可能な不揮発性の記憶装置である。より具体的に、一例として、記憶装置は、ＨＤＤ、ＳＳＤ、半導体メモリ、或いは、それらに類するデータ記憶媒体等の不揮発性の記憶装置を採用することができる。
【００３８】
次に、図１において、キャッシュ制御装置１は、監視部２及び制御部３を備える。
【００３９】
監視部２は、キャッシュ１１を構成するライトキャッシュまたはリードキャッシュとして動作する複数の記憶装置（記憶装置１３及び記憶装置１４）の障害を監視する。即ち、監視部２は、キャッシュ１１を構成する複数の記憶装置毎に、その記憶装置において発生する障害を監視する。また、監視部２は、特定の記憶装置において障害が発生した場合に、値をインクリメントするよう第１のエラーポイントを制御する。
【００４０】
ここで、エラー情報（エラー情報１０２、エラー情報１０３）は、第１のエラーポイントと第２のエラーポイントとを含む情報である。エラー情報１０２は、記憶装置１３に対応するエラー情報である。また、エラー情報１０３は、記憶装置１４に対応するエラー情報である。即ち、エラー情報は、キャッシュ１１を構成する複数の記憶装置毎に存在する。
【００４１】
より具体的に、監視部２は、記憶装置１３と記憶装置１４とにおいて発生する障害を監視する。
【００４２】
監視部２は、記憶装置１３において障害が発生した場合に、エラー情報１０２に含まれる第１のエラーポイントの値をインクリメントするよう制御する。
【００４３】
また、監視部２は、記憶装置１４において障害が発生した場合に、エラー情報１０３に含まれる第１のエラーポイントの値をインクリメントするよう制御する。即ち、エラー情報１０２及びエラー情報１０３の第１のエラーポイントは、記憶装置に障害が発生した際に加算される加算カウンタである。
【００４４】
次に、以下の説明において、より具体的に、本実施形態における監視部２の動作について説明する。
【００４５】
図２は、本発明の第１の実施形態における監視部２が行う動作を示すフローチャートである。係るフローチャートに沿って監視部２の動作手順を説明する。
【００４６】
ステップＳ１：
監視部２は、キャッシュ１１を構成する複数の記憶装置を監視する。
【００４７】
ここでは、監視部２は、記憶装置１３と記憶装置１４とにおいて、障害が発生したか否かを判別する。
【００４８】
監視部２は、例えば、記憶装置１３及び記憶装置１４に対して発行されたコマンドに対する応答種別に基づき障害が発生したか否かを判別する構成を採用してもよい。ここで、応答種別とは、例えば、コマンドに対して、正常に終了したことを示す正常応答、障害が発生したことを示すエラー応答及び応答のない無応答である。また、エラー応答とは、例えば、ホストコンピュータ２００との通信障害による通信エラー、媒体（メモリ）エラー及びハードウェア故障によるハードウェアエラーなどが考えられる。この場合に、監視部２は、正常応答以外の応答を障害が発生したと判別することができる。
【００４９】
ステップＳ１において「ＹＥＳ」：
監視部２は、記憶装置において、障害が発生したか否かを判別した結果、障害が発生したと判別する場合に、処理をステップＳ２に進める。
【００５０】
ステップＳ１において「ＮＯ」：
監視部２は、記憶装置において、障害が発生したか否かを判別した結果、障害が発生していないと判別する場合に、処理をステップＳ１に戻す。即ち、監視部２は、記憶装置の監視を継続する。
【００５１】
ステップＳ２：
監視部２は、エラー情報（エラー情報１０２、エラー情報１０３）に含まれる第１のエラーポイントの値をインクリメントするよう制御する。
【００５２】
ここでは、例えば、記憶装置１３に障害が発生した場合の動作について説明する。監視部２は、エラー情報１０２に含まれる第１のエラーポイントの値をインクリメントするよう制御する。
【００５３】
このように、監視部２は、繰り返しキャッシュ１１を構成する複数の記憶装置を監視する。
【００５４】
次に、以下の説明では、制御部３の動作について説明する。
【００５５】
尚、以下の説明では、説明の便宜上、一例として、寿命に関する情報を、単に「寿命情報」と称する。
【００５６】
また、以下の説明では、記憶装置１３における第１のエラーポイントと第２のエラーポイントとの差分値を、「第１のポイント差分値」と称する。そして、以下の説明では、記憶装置１４における第１のエラーポイントと第２のエラーポイントとの差分値を、「第２のポイント差分値」と称する。また、以下の説明では、第１のポイント差分値と第２のポイント差分値との差分値を、「第３のポイント差分値」と称する。さらに、以下の説明では、制御部３が求めた寿命情報の差分値を、「寿命差分値」と称する（以下、各実施形態においても同様）。
【００５７】
制御部３は、監視時刻に、以下において説明する処理を実行する。制御部３は、キャッシュ１１を構成する記憶装置における監視部２による監視結果を示す障害情報（エラー情報１０２及び１０３）と寿命に関する情報（寿命情報）と判定情報とに基づき、複数の記憶装置の優劣を判別する。そして、制御部３は、優劣を判別した結果に応じて、キャッシュ１１の構成を変更する（スワップ処理）。即ち、制御部３は、複数の記憶装置のうち、ライトキャッシュとして動作する記憶装置が他の記憶装置より劣ると判別する場合には、当該他の記憶装置をライトキャッシュに割り当てる。
【００５８】
より具体的に、制御部３は、複数の記憶装置のうち、ライトキャッシュとして動作する記憶装置（第１の記憶装置）の障害情報と、その記憶装置と異なる他の記憶装置の障害情報とに基づいて、障害判定処理を実行する。制御部３は、障害判定処理を実行した結果、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣ると判別する場合に、係るキャッシュ１１の構成を変更する。一方で、制御部３は、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣らないと判別する場合に、ライトキャッシュとして動作する記憶装置の寿命情報と当該他の記憶装置の寿命情報とに基づいて、寿命判定処理を実行する。制御部３は、寿命判定処理を実行した結果、ライトキャッシュとして動作する記憶装置が当該他の記憶装置より劣ると判別する場合には、係るキャッシュ１１の構成を変更する。尚、障害判定処理及び寿命判定処理については、本実施形態において後述する。
【００５９】
ここで、以下の説明では、寿命情報及び監視情報１０１について説明する。
【００６０】
寿命情報は、例えば、記憶装置１３及び記憶装置１４において管理された寿命に関する情報である。寿命情報は、例えば、記憶装置１３及び記憶装置１４が未使用な状態を「１００」とする。また、寿命情報は、例えば、記憶装置１３及び記憶装置１４が寿命に達した状態を「０」とする。即ち、寿命情報は、減算カウンタである。より具体的に、例えば、記憶装置にＳＳＤを採用する場合に、寿命情報は、ＳＳＤに対する書き込み回数を示す情報を含む。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない（以下、各実施形態においても同様）。
【００６１】
また、監視情報１０１は、制御部３が処理を開始する時刻を示す「監視時刻」、その監視時刻から所定の期間を示す「インターバル情報」、スワップ処理の実行判定に用いる判定情報を含む。ここで、判定情報は、「ポイント差分閾値（第１の閾値）」、「寿命閾値（第２の閾値）」及び「寿命差分閾値（第３の閾値）」を含む。
【００６２】
監視情報１０１、エラー情報１０２及びエラー情報１０３は、例えば、ストレージ装置１０が有する不図示の記憶領域に格納されている構成を採用してもよい。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない（以下、各実施形態においても同様）。
【００６３】
次に、以下の説明において、より具体的に、本実施形態における制御部３の動作について説明する。
【００６４】
図３Ａ及び図３Ｂは、本発明の第１の実施形態における制御部３が行う動作を示すフローチャートである。係るフローチャートに沿って制御部３の動作手順を説明する。
【００６５】
ステップＳ１１：
制御部３は、監視情報１０１に含まれる監視時刻と現在の時刻とを比較する。
【００６６】
ステップＳ１１において「ＹＥＳ」：
制御部３は、監視時刻と現在の時刻とを比較した結果、現在の時刻が監視時刻を経過したと判別する場合に、処理をステップＳ１２に進める。
【００６７】
ステップＳ１１において「ＮＯ」：
制御部３は、監視時刻と現在の時刻とを比較した結果、現在の時刻が監視時刻を経過していないと判別する場合に、処理を終了する。
【００６８】
ステップＳ１２：
制御部３は、監視情報１０１の更新処理を実行する。
【００６９】
より具体的に、制御部３は、監視情報１０１に含まれる監視時刻とインターバル情報とに基づき、次回の監視時刻を算出する。即ち、制御部３は、自装置において処理を実行する次回の時刻（監視時刻）を算出する。
【００７０】
また、制御部３は、算出した次回の監視時刻を、監視情報１０１に記憶する。即ち、制御部３は、監視情報１０１に含まれる監視時刻を、算出した監視時刻に更新する。
【００７１】
尚、制御部３は、監視時刻にインターバル情報を加算することによって、次回の監視時刻を算出することができる。
【００７２】
ステップＳ１３：
制御部３は、記憶装置毎に、エラー情報（エラー情報１０２、エラー情報１０３）に格納された第１のエラーポイントと第２のエラーポイントとに基づいて、差分値を算出する。即ち、制御部３は、記憶装置毎に、例えば、エラー情報に格納された第１のエラーポイントから第２のエラーポイントを減算することによって、差分値を算出する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない（以下、各実施形態においても同様）。
【００７３】
より具体的に、制御部３は、エラー情報１０２に格納された第１のエラーポイントと第２のエラーポイントとに基づいて、差分値（第１のポイント差分値）を算出する。そして、制御部３は、エラー情報１０３に格納された第１のエラーポイントと第２のエラーポイントとに基づいて、差分値（第２のポイント差分値）を算出する。
【００７４】
ステップＳ１４：
制御部３は、記憶装置毎に、エラー情報に格納された第１のエラーポイントの値を、第２のエラーポイントとしてエラー情報に格納する。
【００７５】
より具体的に、制御部３は、エラー情報１０２に格納された第１のエラーポイントの値を、第２のエラーポイントとしてエラー情報１０２に格納する。また、制御部３は、エラー情報１０３に格納された第１のエラーポイントの値を、第２のエラーポイントとしてエラー情報１０３に格納する。
【００７６】
ステップＳ１５：
制御部３は、エラー判定処理（障害判定処理）を実行する。
【００７７】
制御部３は、算出した第１のポイント差分値及び第２のポイント差分値と、ポイント差分閾値とに基づいて、エラー判定処理を実行する。
【００７８】
より具体的に、制御部３は、例えば、ライトキャッシュとして動作する記憶装置のポイント差分値からその記憶装置と異なる他の記憶装置のポイント差分値を減算することによって、それらポイント差分値の差分値（第３のポイント差分値）を算出する。次に、制御部３は、算出した第３のポイント差分値と、監視情報１０１に含まれるポイント差分閾値とを比較する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない（以下、各実施形態においても同様）。
【００７９】
ここでは、制御部３は、ライトキャッシュとして動作する記憶装置１３の第１のポイント差分値から記憶装置１３と異なる他の記憶装置１４の第２のポイント差分値を減算することによって、第３のポイント差分値を算出することとする。
【００８０】
ステップＳ１５において「ＹＥＳ」：
制御部３は、比較した結果、第３のポイント差分値がポイント差分閾値より大きいと判別する場合に、処理をステップＳ１８に進める。
【００８１】
ステップＳ１５において「ＮＯ」：
制御部３は、比較した結果、第３のポイント差分値がポイント差分閾値より大きくないと判別する場合に、処理をステップＳ１６に進める。
【００８２】
ステップＳ１６：
制御部３は、第１の寿命判定処理を実行する。即ち、制御部３は、キャッシュ１１を構成する全ての記憶装置から寿命に関する情報（寿命情報）を取得する。次に、制御部３は、ライトキャッシュとして動作する記憶装置の寿命情報と、監視情報１０１に含まれる寿命閾値とを比較する。
【００８３】
ここでは、制御部３は、記憶装置１３及び記憶装置１４からそれぞれの記憶装置における寿命情報を取得する。また、制御部３は、ライトキャッシュとして動作する記憶装置１３の寿命情報と、監視情報１０１に含まれる寿命閾値とを比較する。
【００８４】
ステップＳ１６において「ＹＥＳ」：
制御部３は、比較した結果、ライトキャッシュとして動作する記憶装置の寿命情報が寿命閾値より小さいと判別する場合に、処理をステップＳ１７に進める。
【００８５】
ここでは、制御部３は、比較した結果、記憶装置１３の寿命情報が寿命閾値より小さいと判別する場合に、処理をステップＳ１７に進める。
【００８６】
ステップＳ１６において「ＮＯ」：
制御部３は、比較した結果、ライトキャッシュとして動作する記憶装置の寿命情報が寿命閾値より小さくないと判別する場合に、処理を終了する。
【００８７】
ここでは、制御部３は、比較した結果、記憶装置１３の寿命情報が寿命閾値より小さくないと判別する場合に、処理を終了する。
【００８８】
ステップＳ１７：
制御部３は、ライトキャッシュとして動作する記憶装置の寿命情報、その記憶装置と異なる他の記憶装置の寿命情報及び寿命差分閾値に基づいて、第２の寿命判定処理を実行する。
【００８９】
より具体的に、制御部３は、例えば、当該異なる他の記憶装置の寿命情報からライトキャッシュとして動作する記憶装置の寿命情報を減算することによって、差分値（寿命差分値）を算出する。次に、制御部３は、算出した寿命差分値と、監視情報１０１に含まれる寿命差分閾値とを比較する。但し、本実施形態を例に説明する本発明は、前述した構成には限定されない（以下、各実施形態においても同様）。
【００９０】
ここでは、制御部３は、記憶装置１４の寿命情報から記憶装置１３の寿命情報を減算することによって、寿命差分値を算出する。制御部３は、算出した寿命差分値と、監視情報１０１に含まれる寿命差分閾値とを比較する。
【００９１】
ステップＳ１７において「ＹＥＳ」：
制御部３は、比較した結果、算出した寿命差分値が寿命差分閾値より大きいと判別する場合に、処理をステップＳ１８に進める。
【００９２】
ステップＳ１７において「ＮＯ」：
制御部３は、比較した結果、算出した寿命差分値が寿命差分閾値より大きくないと判別する場合に、処理を終了する。
【００９３】
ステップＳ１８：
制御部３は、スワップ処理を実行する。即ち、制御部３は、キャッシュ１１の構成を変更する。
【００９４】
より具体的に、制御部３は、ライトキャッシュとして動作する記憶装置を、リードキャッシュに割り当てる。その一方で、制御部３は、リードキャッシュとして動作する記憶装置を、ライトキャッシュに割り当てる。
【００９５】
ここでは、例えば、記憶装置１４がより障害が少なく、且つ寿命の長い記憶装置として説明する。制御部３は、より障害が少なく、且つ寿命の長い記憶装置１４をライトキャッシュとして構成する。また、制御部３は、他方の記憶装置１３をリードキャッシュとして構成する。
【００９６】
これにより、制御部３は、１つ以上の記憶装置のうち、より障害が少なく、且つ寿命の長い一方の記憶装置をライトキャッシュとして構成することができる。即ち、ストレージ装置１０は、安全性の高いライトキャッシュにデータをキャッシュすることができるため、当該データの損失リスクを低減することができる。
【００９７】
尚、上述した本実施形態では、説明の便宜上、一例として、監視部２は、記憶装置に障害が発生した際に、記憶装置毎に、対応するエラー情報に第１及び第２のエラーポイントを格納する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。監視部２は、１つのエラー情報に記憶装置毎の第１及び第２のエラーポイントを格納する構成を採用してもよい。その場合に、監視部２は、例えば、１つのエラー情報に、個々の記憶装置を識別可能なように第１及び第２のエラーポイントを格納することにより実現してもよい。
【００９８】
また、キャッシュ制御装置１は、例えば、ＲＡＩＤを構成するキャッシュに対しても適用可能である。
【００９９】
このように本実施の形態に係るキャッシュ制御装置１によれば、キャッシュに障害が発生した場合であっても、そのキャッシュ障害による情報の損失リスクを低減することができる。その理由は、以下に述べる通りである。
【０１００】
即ち、キャッシュ制御装置１は、キャッシュ１１を構成する複数の記憶装置において発生する障害を監視する監視部２と、記憶装置におけるエラー情報、寿命情報及び判定情報に基づいて記憶装置の優劣を判別する制御部３とを備えるからである。また、制御部３は、判別結果に応じて、キャッシュ１１の構成を変更することができるからである。
【０１０１】
これにより、キャッシュ制御装置１は、ライトキャッシュとして動作する記憶装置に障害が発生する可能性が高いと判別した場合に、障害発生の可能性が低い記憶装置を特定することができる。また、キャッシュ制御装置１は、ライトキャッシュとして動作する記憶装置から特定した記憶装置に切り替えることができる。即ち、キャッシュ制御装置１は、ライトキャッシュの障害発生を抑止すると共に、データ損失のリスクを低減することができる。
【０１０２】
＜第２の実施形態＞
次に、上述した本発明の第１の実施形態に係るキャッシュ制御装置１を基本とする第２の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
【０１０３】
本発明の第２の実施形態におけるキャッシュ制御装置１について、図２乃至図５を参照して説明する。
【０１０４】
図４は、本発明の第２の実施形態におけるキャッシュ制御装置１を含むストレージ装置２０の構成を示すブロック図である。
【０１０５】
図４において、ストレージ装置２０は、ＳＳＤキャッシュ２１、１つ以上のＨＤＤ２２及びキャッシュ制御装置１を有する。また、ＳＳＤキャッシュ２１は、ＳＳＤ２３及びＳＳＤ２４により構成される。キャッシュ制御装置１は、監視部２及び制御部３を備える。
【０１０６】
ＨＤＤ２２は、第１の実施形態において説明した記憶装置１２に相当する。また、ＳＳＤ２３は、第１の実施形態において説明した記憶装置１３に相当する。ＳＳＤ２４は、第１の実施形態において説明した記憶装置１４に相当する。
【０１０７】
次に、以下の説明において、より具体的に、本実施形態におけるキャッシュ制御装置１が行うＳＳＤ２３において処理を継続可能な障害が発生した際の動作について、図２乃至図５を参照して説明する。
【０１０８】
図５は、本発明の第２の実施形態におけるキャッシュ制御装置１を含むストレージ装置２０のＳＳＤ２３において、障害が発生した態様を概念的に例示する図である。
【０１０９】
図５に示すストレージ装置２０の構成は、図４に示すストレージ装置２０の構成と同様である。そのため、詳細な説明は、省略する。
【０１１０】
以下の説明では、説明の便宜上、一例として、ＳＳＤ２３は、ライトキャッシュとして機能することとする。また、ＳＳＤ２４は、リードキャッシュとして機能することとする。
【０１１１】
尚、説明の便宜上、上述した構成を例に説明するが、本実施形態を例に説明する本発明は、前述した構成にはこれに限定されない（以下の実施形態においても同様）。
【０１１２】
まず、以下の説明では、監視部２による監視処理について、図２を参照して説明する。
【０１１３】
監視部２は、ＳＳＤ２３において、障害が発生したと判別する（ステップＳ１おいて「ＹＥＳ」）。監視部２は、エラー情報１０２に含まれる第１のエラーポイントの値をインクリメントするよう制御する（ステップＳ２）。
【０１１４】
次に、以下の説明では、制御部３による一連の処理について、図３Ａ及び図３Ｂを参照して説明する。
【０１１５】
制御部３は、現在の時刻が監視時刻を経過したと判別する（ステップＳ１１において「ＹＥＳ」）。制御部３は、監視情報１０１に含まれる監視時刻とインターバル情報とに基づき、次回の監視時刻を算出する。制御部３は、監視情報１０１に含まれる監視時刻を、算出した監視時刻に更新する（ステップＳ１２）。制御部３は、エラー情報１０２に格納された第１のエラーポイントと第２のエラーポイントとに基づいて、第１のポイント差分値を算出する。そして、制御部３は、エラー情報１０３に格納された第１のエラーポイントと第２のエラーポイントとに基づいて、第２のポイント差分値を算出する（ステップＳ１３）。制御部３は、エラー情報１０２に格納された第１のエラーポイントの値を、第２のエラーポイントとしてエラー情報１０２に格納する。また、制御部３は、エラー情報１０３に格納された第１のエラーポイントの値を、第２のエラーポイントとしてエラー情報１０３に格納する（ステップ（ステップＳ１４）。
【０１１６】
制御部３は、ライトキャッシュとして動作するＳＳＤ２３の第１のポイント差分値からＳＳＤ２３と異なる他のＳＳＤ２４の第２のポイント差分値を減算することによって、第３のポイント差分値を算出する（ステップＳ１５）。
【０１１７】
次に、制御部３は、算出した第３のポイント差分値と、監視情報１０１に含まれるポイント差分閾値とを比較する。制御部３は、比較した結果、第３のポイント差分値がポイント差分閾値より大きくないと判別する（ステップＳ１５において「ＮＯ」）。
【０１１８】
制御部３は、ＳＳＤ２３及びＳＳＤ２４から寿命情報を取得する。また、制御部３は、ライトキャッシュとして動作するＳＳＤ２３の寿命情報と、監視情報１０１に含まれる寿命閾値とを比較する。制御部３は、比較した結果、ライトキャッシュとして動作するＳＳＤ２３の寿命情報が寿命閾値より小さいと判別する（ステップＳ１６において「ＹＥＳ」）。
【０１１９】
制御部３は、ＳＳＤ２４の寿命情報からライトキャッシュとして動作するＳＳＤ２３の寿命情報を減算することによって、寿命差分値を算出する。次に、制御部３は、算出した寿命差分値と、監視情報１０１に含まれる寿命差分閾値とを比較する。制御部３は、比較した結果、算出した寿命差分値が寿命差分閾値より大きいと判別する（ステップＳ１７において「ＹＥＳ」）。
【０１２０】
制御部３は、ライトキャッシュとして動作するＳＳＤ２３を、リードキャッシュに割り当てる。その一方で、制御部３は、リードキャッシュとして動作するＳＳＤ２４を、ライトキャッシュに割り当てる（ステップＳ１８）。
【０１２１】
尚、上述した本実施形態では、説明の便宜上、一例として、キャッシュ制御装置１は、２つの記憶装置（ＳＳＤ２３、ＳＳＤ２４）の優劣を判別した結果に応じて、スワップ処理を実行する構成を例に説明した。しかしながら本発明に係る実施形態は、係る構成に限定されない。キャッシュ制御装置１は、２つの記憶装置の優劣を判別した結果に応じて、その２つの記憶装置と異なる予備の記憶装置をライトキャッシュに割り当てる構成を採用してもよい。或いは、キャッシュ制御装置１は、複数の記憶装置の優劣を判別した結果に応じて、スワップ処理を実行する構成を採用してもよい。
【０１２２】
その場合に、制御部３は、複数の記憶装置のうち、最も障害が少なく、且つ寿命の長い記憶装置をライトキャッシュに割り当てることにより実現してもよい。
【０１２３】
このように本実施の形態に係るキャッシュ制御装置１によれば、第１の実施形態において説明した効果を享受できると共に、さらに、ＳＳＤキャッシュを備えたストレージ装置に適用して好適である。また、キャッシュ制御装置１によれば、さらに、データ損失のリスクを低減することができる。その理由は、以下に述べる通りである。
【０１２４】
即ち、キャッシュ制御装置１は、ＨＤＤよりＩ／Ｏ性能の優れたＳＳＤを制御することができるからである。また、複数の記憶装置を備えたＳＳＤキャッシュ２１であっても、キャッシュ制御装置１は、複数の記憶装置の優劣を判別することができるからである。また、キャッシュ制御装置１は、優劣を判別した結果に応じて、複数の記憶装置のうち、より障害が少なく、且つ寿命の長い一方の記憶装置をライトキャッシュとして構成することができるからである。
【０１２５】
（ハードウェア構成例）
上述した実施形態において図面に示した各部は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。これらの各ソフトウェアモジュールは、専用のハードウェアによって実現してもよい。但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定されうる。この場合のハードウェア環境の一例を、図６を参照して説明する。
【０１２６】
図６は、本発明の模範的な実施形態に係るキャッシュ制御装置を実行可能な情報処理装置３００（コンピュータ）の構成を例示的に説明する図である。即ち、図６は、図１に示したキャッシュ制御装置１、或いは、図４に示したキャッシュ制御装置１、の全体または一部のキャッシュ制御装置を実現可能なサーバ等のコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【０１２７】
図６に示した情報処理装置３００は、ＣＰＵ３０１、ＲＯＭ（リード＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）３０３、ハードディスク３０４（記憶装置）、並びに外部装置との通信インタフェース（Ｉｎｔｅｒｆａｃｅ：以降、「Ｉ／Ｆ」と称する）３０５、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿リード＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記憶媒体３０７に格納されたデータを読み書き可能なリーダライタ３０８を備え、これらの構成がバス３０６（通信線）を介して接続された一般的なコンピュータである。
【０１２８】
そして、上述した実施形態を例に説明した本発明は、図６に示した情報処理装置３００に対して、その説明において参照したブロック構成図（図１、図４）或いはフローチャート（図２、図３Ａ、図３Ｂ）の機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、当該ハードウェアのＣＰＵ３０１に読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータ・プログラムは、読み書き可能な一時記憶メモリ（ＲＡＭ３０３）またはハードディスク３０４等の不揮発性の記憶デバイスに格納すれば良い。
【０１２９】
また、前記の場合において、当該ハードウェア内へのコンピュータ・プログラムの供給方法は、ＣＤ−ＲＯＭ等の各種記憶媒体３０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータ・プログラムを構成するコード或いは、そのコードが格納された記憶媒体によって構成されると捉えることができる。
【符号の説明】
【０１３０】
１    キャッシュ制御装置
２    監視部
３    制御部
１０、２０、２１０    ストレージ装置
１１    キャッシュ
１２、１３、１４    記憶装置
２１    ＳＳＤキャッシュ
２２、２３０    ＨＤＤ
２３、２４、２２１、２２２    ＳＳＤ
１０１    監視情報
１０２、１０３    エラー情報
２００    ホストコンピュータ
２２０    ＳＳＤキャッシュ
３００    情報処理装置
３０１    ＣＰＵ
３０２    ＲＯＭ
３０３    ＲＡＭ
３０４    ハードディスク
３０５    通信インタフェース
３０６    バス
３０７    記憶媒体
３０８    リーダライタ
【図１】
0005949816.tif 000002
【図２】
0005949816.tif 000003
【図３Ａ】
0005949816.tif 000004
【図３Ｂ】
0005949816.tif 000005
【図４】
0005949816.tif 000006
【図５】
0005949816.tif 000007
【図６】
0005949816.tif 000008
【図７】
0005949816.tif 000009
【図８】
0005949816.tif 000010
【図９】
0005949816.tif 000011