(57)【要約】【課題】クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑える。【解決手段】ストレージアクセス制御装置６０は、ストレージシステム７０におけるノード７１の個々に対して、所定の基準に基づいて優先順位を付与する付与部６１と、障害が発生した第一のノード７１よりも優先順位が低い、第二のノード７１を特定する特定部６２と、第一のノード７１におけるキャッシュドライブ７１１におけるキャッシュデータを、ノード７１の少なくともいずれかに記憶されている元データを用いて、第二のノード７１におけるキャッシュドライブ７１１に復元する復元部６３と、ホスト装置８０によるアクセス先を、第一のノード７１におけるキャッシュドライブ７１１から、第二のノード７１におけるキャッシュドライブ７１１に変更する変更部６４と、を備える。【選択図】      図１６
2020086554.tif 000002
【特許請求の範囲】
【請求項１】
ストレージドライブと、
前記ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、
を備えるノードを複数有するストレージシステムにおいて、前記ノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置による前記第一のノードにおける前記キャッシュドライブへのアクセスが不能となる前記ストレージシステムに対する前記アクセスを制御する装置であって、
前記ノードの個々に対して、所定の基準に基づいて、前記キャッシュデータの存在に関する優先順位を付与する付与手段と、
前記第一のノードよりも前記優先順位が低い、前記ノードのうちの第二のノードを特定する特定手段と、
前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを、前記ノードの少なくともいずれかに記憶されている前記元データを用いて、前記第二のノードにおける前記キャッシュドライブに復元する復元手段と、
前記ホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第二のノードにおける前記キャッシュドライブに変更する変更手段と、
を備えるストレージアクセス制御装置。
【請求項２】
前記付与手段は、前記ホスト装置による前記ノードに対するアクセス実績に基づいて、前記優先順位を付与する、
請求項１に記載のストレージアクセス制御装置。
【請求項３】
前記特定手段は、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを格納可能な未使用領域を有する前記キャッシュドライブを備える前記第二のノードを特定する、
請求項１または請求項２に記載のストレージアクセス制御装置。
【請求項４】
前記特定手段は、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを格納可能な未使用領域を有する前記キャッシュドライブを備える、前記第一のノードを除く前記ノードが存在しない場合、前記第一のノードを除く前記ノードのうち、前記優先順位が最も低いノードを前記第二のノードとして特定し、
前記復元手段は、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを格納可能になるように、前記第二のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを削除する、
請求項１または請求項２に記載のストレージアクセス制御装置。
【請求項５】
前記所定の基準を表す情報と、前記元データと前記元データの格納先である前記ストレージドライブとを関連付けた情報と、前記元データに関する前記キャッシュデータと前記キャッシュデータの格納先である前記キャッシュドライブとを関連付けた情報と、前記キャッシュドライブの使用状況を表す情報と、を記憶する記憶手段をさらに備える、
請求項１乃至請求項４のいずれか一項に記載のストレージアクセス制御装置。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載のストレージアクセス制御装置と、
前記ストレージシステムと、
前記ホスト装置と、
を有するストレージアクセス制御システム。
【請求項７】
前記ストレージシステムは、１以上の前記ホスト装置を含む前記ノードを有し、
前記キャッシュドライブは、前記ホスト装置ごとに前記キャッシュデータを記憶し、
前記付与手段は、前記優先順位を前記ホスト装置の個々に対して付与し、
前記特定手段は、前記第一のノードに含まれる個々の第一の前記ホスト装置よりも前記優先順位が低い第二の前記ホスト装置を、前記第一のホスト装置ごとに特定し、
前記復元手段は、前記第一のノードにおける前記第一のホスト装置に関する前記キャッシュデータを、前記第二のホスト装置が含まれる第三の前記ノードにおける前記キャッシュドライブに復元し、
前記変更手段は、前記第一のホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第三のノードにおける前記キャッシュドライブに変更する、
請求項６に記載のストレージアクセス制御システム。
【請求項８】
前記復元手段は、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを格納可能な未使用領域を有する前記キャッシュドライブを備える前記第三のノードが存在しない場合、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを格納可能になるように、前記第二のホスト装置がアクセスする前記キャッシュデータを削除する、
請求項７に記載のストレージアクセス制御システム。
【請求項９】
ストレージドライブと、
前記ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、
を備えるノードを複数有するストレージシステムにおいて、前記ノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置による前記第一のノードにおける前記キャッシュドライブへのアクセスが不能となる前記ストレージシステムに対する前記アクセスを、情報処理装置によって制御する方法であって、
前記ノードの個々に対して、所定の基準に基づいて、前記キャッシュデータの存在に関する優先順位を付与し、
前記第一のノードよりも前記優先順位が低い、前記ノードのうちの第二のノードを特定し、
前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを、前記ノードの少なくともいずれかに記憶されている前記元データを用いて、前記第二のノードにおける前記キャッシュドライブに復元し、
前記ホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第二のノードにおける前記キャッシュドライブに変更する、
ストレージアクセス制御方法。
【請求項１０】
ストレージドライブと、
前記ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、
を備えるノードを複数有するストレージシステムにおいて、前記ノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置による前記第一のノードにおける前記キャッシュドライブへのアクセスが不能となる前記ストレージシステムに対する前記アクセスを制御するプログラムであって、
前記ノードの個々に対して、所定の基準に基づいて、前記キャッシュデータの存在に関する優先順位を付与する付与処理と、
前記第一のノードよりも前記優先順位が低い、前記ノードのうちの第二のノードを特定する特定処理と、
前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを、前記ノードの少なくともいずれかに記憶されている前記元データを用いて、前記第二のノードにおける前記キャッシュドライブに復元する復元処理と、
前記ホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第二のノードにおける前記キャッシュドライブに変更する変更処理と、
をコンピュータに実行させるためのストレージアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、クラスタ環境を構成するストレージ装置において障害が発生した場合に、当該ストレージ装置へのアクセスを制御する技術に関する。
【背景技術】
【０００２】
高度に情報化された現代社会においては、コンピュータシステムに対して要求される可用性や信頼性などのレベルが年々高まってきている。したがって、コンピュータシステムの可用性や信頼性を向上させることを実現する技術への期待が高まってきている。
【０００３】
このような技術に関連する技術として、特許文献１には、ストレージ装置の使用を停止する場合に備えたシステムが開示されている。このシステムにおける複数のストレージ装置の其々は、管理情報を格納する管理情報格納領域とキャッシュ情報を格納するキャッシュ領域とを有するメモリと、キャッシュ領域の状態を管理するプロセッサと、を備える。その複数のストレージ装置の少なくとも一部は、各ストレージ装置のキャッシュ領域の状態に基づいて、使用を停止するストレージ装置の管理情報のコピー先となるストレージ装置を決定する。そして、コピー先のストレージ装置は、キャッシュ領域の少なくとも一部を解放して、当該管理情報を格納する。
【０００４】
また、特許文献２には、ノード数が４個以上のクラスタ型計算機システムにおいて、障害発生時に主記憶あるいはキャッシュに蓄えられたデータを失うことなく処理を速やかに継続するシステムが開示されている。このシステムは、４個以上のノードで構成されたクラスタ型計算機システムであって、すべてのノードを結合する第１の種類のノード間ネットワークと、各ノードを２個ずつ結合する第２の種類のノード間ネットワークを備える。このシステムは、当該第２の種類のノード間ネットワークを、障害発生時に障害が生じたノードで行われていた処理を、当該第２の種類のノード間ネットワークで結合されている他方のノードへ引き継ぐための情報通信に専ら用いる。
【０００５】
また、特許文献３には、仮想マシンサーバの仮想マシンへの操作の実行前に、その仮想マシンが当該操作による実行に利用する利用データを保存する共有ディスク装置から、その仮想マシンの操作対象先となる他の仮想マシンサーバのディスクキャッシュ部に、その利用データを移すようにした装置が開示されている。
【０００６】
また、特許文献４には、再構成／再構築テーブルおよびスペース割り当てテーブルをチェックすることによって、パリティストライプが再構成されているかどうか、およびパリティストライプが割り当てられているかどうかを判断する、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）ストレージシステムにおけるデータ再構成の方法が開示されている。この方法では、パリティストライプの再構成が行われる前は、障害が起こったハイブリッドドライブの不揮発性メモリをチェックすることによってアクセス可能かどうかを判断し、アクセス可能である場合は、再構成を行う代わりに、新しいハイブリッドドライブにデータをコピーする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１７／０２２００２号
【特許文献２】特開２００４−１９２４８２号公報
【特許文献３】特開２０１６−１８４１８８号公報
【特許文献４】特表２０１６−５３０６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大規模なコンピュータシステムは、ある機能を実現する単体装置をノードとして複数束ねたクラスタ（マルチノード）システムを構成することが多い。このようなクラスタシステムを構成するストレージシステムにおける各ノード（即ち単体のストレージ装置）は、アクセス性能の向上を目的として、データを格納する磁気ディクスに加えてキャッシュを備える場合がある。このようなキャッシュとしては、例えば、ＳＳＤ（Solid State Drive）等の、磁気ディクスよりもアクセス速度が高速なデバイスが用いられる。
【０００９】
このようなクラスタシステムを構成するストレージシステム内のあるノードのキャッシュに障害が発生した場合、当該キャッシュが使用できなくなることによって、当該ノードに記憶されているデータへのアクセス性能が低下する。したがって、そのようなアクセス性能の低下を回避するためには、稼動しているノードのキャッシュが、障害が発生したノードのキャッシュの機能を引き継ぐ必要がある。この場合、ストレージシステム全体としては、キャッシュの資源（ハードウェア）は障害が発生する前よりも減少しているので、障害が発生したノードのキャッシュの機能を、稼動しているノードのキャッシュに適切に割り当てるようにしないと、システム性能が大きく低下する虞がある。特許文献１乃至４は、このような課題については特に言及していない。本願発明の主たる目的は、この課題を解決するストレージアクセス制御装置等を提供することである。
【課題を解決するための手段】
【００１０】
本願発明の一態様に係るストレージアクセス制御装置は、ストレージドライブと、前記ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、を備えるノードを複数有するストレージシステムにおいて、前記ノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置による前記第一のノードにおける前記キャッシュドライブへのアクセスが不能となる前記ストレージシステムに対する前記アクセスを制御する装置であって、前記ノードの個々に対して、所定の基準に基づいて、前記キャッシュデータの存在に関する優先順位を付与する付与手段と、前記第一のノードよりも前記優先順位が低い、前記ノードのうちの第二のノードを特定する特定手段と、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを、前記ノードの少なくともいずれかに記憶されている前記元データを用いて、前記第二のノードにおける前記キャッシュドライブに復元する復元手段と、前記ホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第二のノードにおける前記キャッシュドライブに変更する変更手段と、を備える。
【００１１】
上記目的を達成する他の見地において、本願発明の一態様に係るストレージアクセス制御方法は、ストレージドライブと、前記ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、を備えるノードを複数有するストレージシステムにおいて、前記ノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置による前記第一のノードにおける前記キャッシュドライブへのアクセスが不能となる前記ストレージシステムに対する前記アクセスを、情報処理装置によって制御する方法であって、前記ノードの個々に対して、所定の基準に基づいて、前記キャッシュデータの存在に関する優先順位を付与し、前記第一のノードよりも前記優先順位が低い、前記ノードのうちの第二のノードを特定し、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを、前記ノードの少なくともいずれかに記憶されている前記元データを用いて、前記第二のノードにおける前記キャッシュドライブに復元し、前記ホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第二のノードにおける前記キャッシュドライブに変更する。
【００１２】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るストレージアクセス制御プログラムは、ストレージドライブと、前記ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、を備えるノードを複数有するストレージシステムにおいて、前記ノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置による前記第一のノードにおける前記キャッシュドライブへのアクセスが不能となる前記ストレージシステムに対する前記アクセスを制御するプログラムであって、前記ノードの個々に対して、所定の基準に基づいて、前記キャッシュデータの存在に関する優先順位を付与する付与処理と、前記第一のノードよりも前記優先順位が低い、前記ノードのうちの第二のノードを特定する特定処理と、前記第一のノードにおける前記キャッシュドライブに記憶されていた前記キャッシュデータを、前記ノードの少なくともいずれかに記憶されている前記元データを用いて、前記第二のノードにおける前記キャッシュドライブに復元する復元処理と、前記ホスト装置によるアクセス先を、前記第一のノードにおける前記キャッシュドライブから、前記第二のノードにおける前記キャッシュドライブに変更する変更処理と、をコンピュータに実行させる。
【００１３】
更に、本願発明は、係るストレージアクセス制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１４】
本願発明は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることを可能とする。
【図面の簡単な説明】
【００１５】
【図１】本願発明の第１の実施形態に係るストレージアクセス制御システム１の構成を概念的に示すブロック図である。
【図２】本願発明の第１の実施形態に係るストレージシステム２０において障害が発生する前の、ストレージシステム２０のデータ格納状況を例示する図である。
【図３】本願発明の第１の実施形態に係るシステム管理情報１５０の構成を概念的に例示する図である。
【図４】本願発明の第１の実施形態に係るストレージシステム２０において、ノード２１に障害が発生した後のストレージシステム２０のデータ格納状況を例示する図である。
【図５】本願発明の第１の実施形態に係るストレージシステム２０において、ノード２１に障害が発生した後のシステム管理情報１５０の構成を例示する図である。
【図６】本願発明の第１の実施形態に係るストレージアクセス制御装置１０の動作を示すフローチャートである。
【図７】本願発明の第２の実施形態に係るストレージアクセス制御システム２の構成を概念的に示すブロック図である。
【図８】本願発明の第２の実施形態に係るクラスタシステム５０において、障害が発生する前のクラスタシステム５０のデータ格納状況を例示する図である。
【図９】本願発明の第２の実施形態に係るシステム管理情報４５０に含まれるノード管理情報４５１の構成を概念的に例示する図である。
【図１０】本願発明の第２の実施形態に係るシステム管理情報４５０に含まれる仮想マシン管理情報４５２の構成を概念的に例示する図である。
【図１１】本願発明の第２の実施形態に係るシステム管理情報４５０に含まれる使用状況管理情報４５３の構成を概念的に例示する図である。
【図１２】本願発明の第２の実施形態に係るクラスタシステム５０において、ノード５１におけるキャッシュドライブ５１１とストレージドライブ５１２とに障害が発生した後のクラスタシステム５０のデータ格納状況を例示する図である。
【図１３】本願発明の第２の実施形態に係るクラスタシステム５０において、図１２に示す障害が発生した後のノード管理情報４５１の構成を概念的に例示する図である。
【図１４】本願発明の第２の実施形態に係るクラスタシステム５０において、図１２に示す障害が発生した後の使用状況管理情報４５３の構成を概念的に例示する図である。
【図１５】本願発明の第２の実施形態に係るストレージアクセス制御装置４０の動作を示すフローチャートである。
【図１６】本願発明の第３の実施形態に係るストレージアクセス制御装置６０の構成を概念的に示すブロック図である。
【図１７】本願発明の各実施形態に係るストレージアクセス制御装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１７】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係るストレージアクセス制御システム１の構成を概念的に示すブロック図である。ストレージアクセス制御システム１は、大別して、ストレージアクセス制御装置１０、ストレージシステム２０、及び、ホスト装置３０を含む。ストレージアクセス制御装置１０とストレージシステム２０とは通信可能に接続されている。また、ストレージアクセス制御装置１０とホスト装置３０とは、通信可能に接続されている。
【００１８】
ホスト装置３０は、サーバ装置等の情報処理装置であり、ストレージシステム２０に記憶されているデータにアクセスする。そして、ストレージアクセス制御装置１０は、ホスト装置３０によるストレージシステム２０に対するアクセスを制御する情報処理装置である。
【００１９】
ストレージシステム２０は、３つのノード２１乃至２３を含むクラスタ（マルチノード）システムである。ノード２１乃至２３の各々は、単体のストレージ装置として動作可能な構成要素である。尚、ストレージシステム２０に含まれるノードの数は３つに限定されない。
【００２０】
ノード２１は、キャッシュドライブ２１１とストレージドライブ２１２を備える。ノード２２は、キャッシュドライブ２２１とストレージドライブ２２２を備える。ノード２３は、キャッシュドライブ２３１とストレージドライブ２３２を備える。尚、ノード２１乃至２３のハードウェアの仕様は同等であることとする。
【００２１】
ストレージドライブ２１２、２２２、２３２は、ホスト装置３０によってアクセスされる元データを格納する磁気ディスク等の記憶デバイスである。キャッシュドライブ２１１、２２１、２３１は、ストレージドライブ２１２、２２２、２３２に記憶されている元データの少なくとも一部のコピーであるキャッシュデータを記憶している。キャッシュドライブ２１１、２２１、２３１は、ストレージドライブ２１２、２２２、２３２よりも、高速なアクセスが可能であり、かつ、記憶容量が小さい、例えばＳＳＤ等の記憶デバイスである。
【００２２】
図２は、本実施形態に係るストレージシステム２０において障害が発生する前の、ストレージシステム２０のデータ格納状況を例示する図である。ノード２１におけるストレージドライブ２１２は、元データＤ１及びＤ３を記憶し、キャッシュドライブ２１１は、元データＤ１の少なくとも一部のコピーであるキャッシュデータＣ１を記憶している。ノード２２におけるストレージドライブ２２２は、元データＤ２及びＤ１を記憶し、キャッシュドライブ２２１は、元データＤ２の少なくとも一部のコピーであるキャッシュデータＣ２を記憶している。ノード２３におけるストレージドライブ２３２は、元データＤ３及びＤ２を記憶し、キャッシュドライブ２３１は、元データＤ３の少なくとも一部のコピーであるキャッシュデータＣ３を記憶している。
【００２３】
図２に例示するストレージシステム２０では、元データＤ１乃至Ｄ３は、それぞれ、２つのノードにおけるストレージドライブに格納されている。即ち、ストレージシステム２０は、元データＤ１乃至Ｄ３の記憶に関して、冗長な構成を備えている。そして、異なる二つのストレージドライブに記憶されている２つの元データは、ストレージシステム２０によって内容が一致するように同期制御が行われていることとする。
【００２４】
図１に示すストレージアクセス制御装置１０は、ホスト装置３０がアクセスするデータがキャッシュデータとしてキャッシュドライブ２１１、２２１、２３１のいずれかに存在する場合、当該データが存在するキャッシュドライブへのアクセスを行う。ストレージアクセス制御装置１０は、ホスト装置３０がアクセスするデータがキャッシュデータとしてキャッシュドライブ２１１、２２１、２３１のいずれにも存在しない場合、当該データに関する元データが存在するストレージドライブへのアクセスを行う。
【００２５】
本実施形態に係るストレージアクセス制御装置１０は、付与部１１、特定部１２、復元部１３、変更部１４、記憶部１５、アクセス実績収集部１６、及び、障害検出部１７を備えている。記憶部１５は、例えば磁気ディスクあるいは電子メモリ等の記憶デバイスであり、システム管理情報１５０を記憶している。システム管理情報１５０は、ストレージシステム２０の状態を表す情報（ストレージシステム２０に記憶されたデータに関するメタデータを含む情報）であり、ストレージアクセス制御装置１０が備える構成要素によって、参照あるいは更新される。
【００２６】
図３は、本実施形態に係るシステム管理情報１５０の構成を概念的に例示する図である。システム管理情報１５０は、ノード管理情報１５１と使用状況管理情報１５２とを含んでいる。図３に例示するノード管理情報１５１は、ノード２１乃至２３における、キャッシュドライブ２１１、２２１、２３１、及び、ストレージドライブ２１２、２２２、２３２に、図２に例示する通り、キャッシュデータＣ１乃至Ｃ３、及び、元データＤ１乃至Ｄ３が記憶されていることを表している。
【００２７】
図３に例示するノード管理情報１５１は、また、ノード２１に記憶されている元データＤ３、ノード２２に記憶されている元データＤ１、及び、ノード２３に記憶されている元データＤ２が、冗長分の元データであることを表している。尚、これらの冗長分の元データは、ストレージシステム２０のいずれかのノードにおいて障害が発生した場合において、障害が発生したノードにおけるキャッシュドライブに記憶されていたキャッシュデータを復元する際に使用されるデータである。
【００２８】
図３に例示するノード管理情報１５１は、また、ノード２１乃至２３が正常に稼動していることを示している。
【００２９】
図３に例示する使用状況管理情報１５２は、キャッシュドライブ２１１、２２１、２３１の使用率（キャッシュドライブの容量に対して、キャッシュデータＣ１乃至Ｃ３が占める割合）を表している。使用状況管理情報１５２は、後述する特定部１２によって、所定のタイミングに（例えば定期的に）、更新される。
【００３０】
図１に示すアクセス実績収集部１６は、ホスト装置３０によるノード２１乃至２３に対するアクセス実績（回数）を収集する。ホスト装置３０によるノード２１に対するアクセス実績は、ホスト装置３０によるキャッシュデータＣ１及び元データＤ１に対するアクセス実績に相当する。ホスト装置３０によるノード２２あるいは２３に対するアクセス実績も同様に、ノード２２あるいは２３に記憶されているキャッシュデータ及び元データに対するアクセス実績に相当する。
【００３１】
アクセス実績収集部１６は、所定のタイミングに（例えば定期的に）、ノード２１乃至２３に関するアクセス実績を収集し、収集したアクセス実績を、図３に例示する通り、ノード管理情報１５１に反映する。
【００３２】
図１に示す付与部１１は、ノード管理情報１５１が示すノード２１乃至２３に関するアクセス実績に基づいて、ノード２１乃至２３の個々に対して、優先順位を付与する。但し、本実施形態に係る優先順位は、ストレージシステム２０におけるキャッシュドライブ２１１、２２１、及び２３１の何れかにおいて障害が発生することによって、使用可能なキャッシュドライブが減少した場合において、どのノードに関するキャッシュデータを優先的に稼動しているキャッシュドライブに残すか（即ち、キャッシュデータを優先的にストレージシステム２０に存在させるか）を示す指標であることとする。
【００３３】
より具体的には、図３に例示するノード管理情報１５１によれば、ノード２１乃至２３に関するアクセス実績は、値が大きいほうから、ノード２１、ノード２２、ノード２３の順になっている。従ってこの場合、付与部１１は、ノード２１乃至２３に対して、高い方から順に、「１」、「２」、「３」という優先順位を付与し、付与した優先順位をノード管理情報１５１に反映する。
【００３４】
付与部１１は、アクセス実績収集部１６によって、ノード２１乃至２３に関するアクセス実績の値が更新されることに伴い、ノード管理情報１５１が示す優先順位を更新する。
【００３５】
図１に示す障害検出部１７は、ストレージシステム２０を監視し、ストレージシステム２０において発生した障害を検出する。障害検出部１７によって検出される障害の内容は様々であるが、本実施形態では以降、ノード２１（第一のノード）の全体（即ちキャッシュドライブ２１１及びストレージドライブ２１２）が使用不可となる障害が発生した場合を例にして説明することとする。
【００３６】
特定部１２は、ノード管理情報１５１を参照することによって、障害が発生したノード２１よりも優先順位が低いノードを、キャッシュドライブ２１１に記憶されていたキャッシュデータＣ１の復元先として特定する。図３に例示するノード管理情報１５１によれば、ノード２１よりも優先順位が低いノードはノード２２とノード２３との２つが存在する。このような場合、特定部１２は、優先順位と、使用状況管理情報１５２が示すキャッシュドライブの使用状況とに基づいて、復元先とするノード（第二のノード）を特定する。
【００３７】
即ち、特定部１２は、まず、使用状況管理情報１５２に基づいて、キャッシュデータＣ１を復元可能な未使用領域が、キャッシュドライブ２２１及び２３１の少なくともいずれかに存在するか確認する。ノード２２とノード２３との少なくともいずれかに、キャッシュデータＣ１を復元可能な未使用領域が存在する場合、特定部１２は、未使用領域が存在するノードであって、優先順位がより低いノードを復元先とするノードとして特定する。
【００３８】
図３に例示する使用状況管理情報１５２によれば、キャッシュドライブ２１１、２２１、２３１とも使用率が高いので、特定部１２は、キャッシュデータＣ１を復元可能な未使用領域は、キャッシュドライブ２２１及びキャッシュドライブ２３１に存在しないことを確認する。この場合、特定部１２は、優先順位が最も低いノードであるノード２３を、キャッシュデータＣ１の復元先とするノードとして特定する。
【００３９】
尚、ノード２２に関する障害が発生した場合では、特定部１２は、ノード２２よりも優先順位が低いノード２３を、キャッシュデータＣ２の復元先とするノードとして特定する。そして、ノード２３に関する障害が発生した場合では、特定部１２は、ノード２３よりも優先順位が低いノードが存在しないことから、キャッシュデータＣ３の復元先を特定しない。即ち、本実施形態に係るストレージアクセス制御装置１０は、優先順位が最も低いノード２３において障害が発生した場合、キャッシュデータＣ３をノード２１あるいはノード２２に復元することを行わない。
【００４０】
復元部１３は、障害が発生したノード２１（第一のノード）におけるキャッシュドライブ２１１に記憶されていたキャッシュデータＣ１を、ノード２２及びノード２３の少なくともいずれかに記憶されている元データＤ１を用いて、特定部１２によって特定されたノード２３（第二のノード）におけるキャッシュドライブ２３１に復元する。
【００４１】
図４は、本実施形態に係るストレージシステム２０において、ノード２１に障害が発生した後のストレージシステム２０のデータ格納状況を例示する図である。復元部１３は、図４に例示する通り、キャッシュデータＣ１の復元先であるキャッシュドライブ２３１からキャッシュデータＣ３を削除する。そして復元部１３は、ストレージドライブ２２２に格納されている冗長分の元データＤ１を用いて、キャッシュドライブ２３１にキャッシュデータＣ１を復元する。
【００４２】
図１に示す変更部１４は、ホスト装置３０によるキャッシュデータＣ１に対するアクセス先を、障害が発生したノード２１におけるキャッシュドライブ２１１から、キャッシュデータＣ１の復元先であるノード２３におけるキャッシュドライブ２３１に変更する。変更部１４は、また、キャッシュドライブ２３１から削除した、ホスト装置３０によるキャッシュデータＣ３に対するアクセス先を、ノード２３におけるキャッシュドライブ２３１から、ストレージドライブ２３２における元データＤ３に変更する。
【００４３】
図５は、本実施形態に係るストレージシステム２０において、ノード２１に障害が発生した後のシステム管理情報１５０の構成を例示する図である。図５に例示するノード管理情報１５１によれば、ノード２１に関する稼働状況は、障害検出部１７によって、「正常」から「異常」に更新されている。そして、ノード２３に関するキャッシュドライブ格納データは、変更部１４によって、キャッシュデータＣ３からキャッシュデータＣ１に更新されている。また、ノード２２に関するストレージドライブ格納データは、変更部１４によって、元データＤ１に関して冗長分ではない元データに更新されている。
【００４４】
また、図５に例示する使用状況管理情報１５２によれば、キャッシュドライブ２３１に記憶されるデータがキャッシュデータＣ３からキャッシュデータＣ１に更新されたので、特定部１２よって、キャッシュドライブ２３１の使用率が「８５％」から「９０％」に更新されている。
【００４５】
次に図６のフローチャートを参照して、本実施形態に係るストレージアクセス制御装置１０の動作（処理）について詳細に説明する。
【００４６】
付与部１１は、所定のタイミングに、ホスト装置３０によるノード２１乃至２３へのアクセス実績に基づいて、ノード２１乃至２３の個々に対して優先順位を付与する（ステップＳ１０１）。障害検出部１７は、ノード２１に関する障害が発生したことを検出する（ステップＳ１０２）。
【００４７】
特定部１２は、ノード２１よりも優先順位が低いノード２２及び２３のキャッシュドライブ２２１及び２３１のうち、キャッシュデータＣ１を復元可能な未使用領域を有するものがあるか確認する（ステップＳ１０３）。
【００４８】
キャッシュデータＣ１を復元可能な未使用領域を有するものがある場合（ステップＳ１０４でＹｅｓ）、特定部１２は、キャッシュデータＣ１を復元可能な未使用領域を有するノード２２及び２３のうち、優先順位が最も低いノードを、キャッシュデータＣ１の復元先に特定する（ステップＳ１０５）。
【００４９】
キャッシュデータＣ１を復元可能な未使用領域を有するものがない場合（ステップＳ１０４でＮｏ）、特定部１２は、ノード２２及び２３のうち、優先順位が最も低いノード２３を、キャッシュデータＣ１の復元先に特定する（ステップＳ１０６）。復元部１３は、ノード２３のキャッシュドライブ２３１からキャッシュデータＣ３を削除する（ステップＳ１０７）。
【００５０】
復元部１３は、ストレージドライブ２２２に格納されている元データＤ１（冗長分）を用いて、復元先のノードにおけるキャッシュドライブに、キャッシュデータＣ１を復元する（ステップＳ１０８）。変更部１４は、ホスト装置３０によるキャッシュデータＣ１に関するアクセス先を、キャッシュドライブ２１１から復元先のキャッシュドライブに変更し（ステップＳ１０９）、全体の処理は終了する。
【００５１】
本実施形態に係るストレージアクセス制御装置１０は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることができる。その理由は、ストレージアクセス制御装置１０は、ノードの個々に対して優先順位を付与し、障害が発生したノードよりも優先順位が低いノードのいずれかをキャッシュデータの復元先のノードに特定し、いずれかのノードに記憶されていた元データを用いて復元先のノードにキャッシュデータを復元するからである。
【００５２】
以下に、本実施形態に係るストレージアクセス制御装置１０によって実現される効果について、詳細に説明する。
【００５３】
大規模なコンピュータシステムは、ある機能を実現する単体装置をノードとして複数束ねたクラスタシステムを構成することが多い。このようなクラスタシステムを構成するストレージシステムにおける各ノードは、アクセス性能の向上を目的として、データを格納する磁気ディクスに加えてキャッシュを備える場合がある。このようなクラスタシステムを構成するストレージシステム内のあるノードのキャッシュに障害が発生した場合、当該キャッシュが使用できなくなることによって、当該ノードに記憶されているデータへのアクセス性能が低下する。したがって、そのようなアクセス性能の低下を回避するためには、稼動しているノードのキャッシュが、障害が発生したノードのキャッシュの機能を引き継ぐ必要がある。この場合、ストレージシステム全体としては、キャッシュの資源（ハードウェア）は障害が発生する前よりも減少しているので、障害が発生したノードのキャッシュの機能を、稼動しているノードのキャッシュに適切に割り当てるようにしないと、システム性能が大きく低下する虞がある。
【００５４】
このような課題に対して、本実施形態に係るストレージアクセス制御装置１０は、ストレージドライブと、ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、を備えるノードを複数有するストレージシステム２０に対するホスト装置３０によるアクセスを制御する。ストレージシステム２０において、複数のノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置３０による第一のノードにおけるキャッシュドライブへのアクセスが不能となる。
【００５５】
そして、ストレージアクセス制御装置１０は、付与部１１と、特定部１２と、復元部１３と、変更部１４とを備え、例えば図１乃至図６を参照して上述した通り動作する。即ち、付与部１１は、ノードの個々に対して、所定の基準に基づいて、キャッシュデータの存在に関する優先順位を付与する。特定部１２は、第一のノードよりも優先順位が低い、複数のノードのうちの第二のノードを特定する。復元部１３は、第一のノードにおけるキャッシュドライブに記憶されていたキャッシュデータを、複数のノードの少なくともいずれかに記憶されている元データを用いて、第二のノードにおけるキャッシュドライブに復元する。そして変更部１４は、ホスト装置３０によるアクセス先を、第一のノードにおけるキャッシュドライブから、第二のノードにおけるキャッシュドライブに変更する。
【００５６】
即ち、本実施形態に係るストレージアクセス制御装置１０は、ストレージシステム２０におけるいずれかのキャッシュドライブに障害が発生した場合に、付与した優先順位が高いノードにおけるキャッシュデータが、ストレージシステム２０における稼働中のキャッシュドライブに残るように制御する。これにより、本実施形態に係るストレージアクセス制御装置１０は、クラスタシステムを構成するストレージシステム２０のキャッシュに障害が発生した場合において、ストレージシステム２０に対するアクセス性能の低下を適切に抑えることができる。
【００５７】
また、本実施形態に係る付与部１１は、ホスト装置３０による各ノードに対するアクセス実績に基づいて、各ノードに対する優先順位を付与する。即ち、本実施形態に係るストレージアクセス制御装置１０は、ノードに対して適切に優先順位を付与するので、アクセス性能の低下を適切に抑えることを確実に行うことができる。
【００５８】
また、付与部１１がノードに対して優先順位を付与する際に用いる基準は、ホスト装置３０によるアクセス実績に限定されない。付与部１１は、例えば、ストレージアクセス制御システム１の管理者などによって与えられた、各ノードに記憶されるデータの重要性を表す情報等を、優先順位を付与する際に用いる基準として用いてもよい。
【００５９】
また、本実施形態に係る特定部１２は、障害が発生したノードにおけるキャッシュドライブに記憶されていたキャッシュデータを格納可能な未使用領域を有するキャッシュドライブを備えるノードを、当該キャッシュデータの復元先のノードとして特定する。即ち、本実施形態に係るストレージアクセス制御装置１０は、稼働中のキャッシュドライブにおける未使用領域を有効活用するので、ストレージシステム２０に対するアクセス性能の低下をより適切に抑えることができる。
【００６０】
また、特定部１２は、上述したキャッシュデータを格納可能な未使用領域を有するキャッシュドライブを備えるノードが存在しない場合、優先順位が最も低いノードを当該キャッシュデータの復元先のノードとして特定する。そして復元部１３は、当該キャッシュデータを格納可能になるように、復元先のノードにおけるキャッシュドライブに記憶されていたキャッシュデータを削除する。これにより本実施形態に係るストレージアクセス制御装置１０は、ストレージシステム２０に対するアクセス性能の低下を、適切かつ確実に抑えることができる。
【００６１】
尚、上述した本実施形態では、ノード全体（即ち当該ノードにおけるキャッシュドライブ及びストレージドライブの両方）が使用不可となる障害が発生することを前提としたが、キャッシュドライブのみが使用不可となる障害の発生を前提としてもよい。その場合、当該ノードにおけるストレージドライブは使用可能であるので、ストレージシステム２０が上述したような元データに関する冗長構成を備えなくても、ストレージアクセス制御装置１０は、キャッシュデータを復元することができる。
【００６２】
＜第２の実施形態＞
図７は、本願発明の第２の実施の形態に係るストレージアクセス制御システム２の構成を概念的に示すブロック図である。尚、本実施形態において、上述した第１の実施形態と同様の機能を備える構成要素に関しては、第一の実施形態と同一の番号を付与することによって、その詳細な説明を省略することとする。ストレージアクセス制御システム２は、大別して、ストレージアクセス制御装置４０、及び、クラスタシステム５０を含む。ストレージアクセス制御装置４０とクラスタシステム５０とは通信可能に接続されている。
【００６３】
本実施形態に係るクラスタシステム５０は、３つのノード５１乃至５３を含むクラスタ（マルチノード）システムである。尚、クラスタシステム５０に含まれるノードの数は３つに限定されない。
【００６４】
本実施形態に係るノード５１乃至５３は、第１の実施形態に係るノード２１乃至２３に対して、ホスト装置３０に相当する構成を加えた構成を備えている。即ち、ノード５１は、キャッシュドライブ２１１及びストレージドライブ２１２に加えて、３つの仮想マシンＶＭＡ、ＶＭＤ、ＶＭＩを備えている。ノード５２は、キャッシュドライブ２２１及びストレージドライブ２２２に加えて、３つの仮想マシンＶＭＢ、ＶＭＥ、ＶＭＨを備えている。ノード５３は、キャッシュドライブ２３１及びストレージドライブ２３２に加えて、３つの仮想マシンＶＭＣ、ＶＭＦ、ＶＭＧを備えている。即ち、ノード５１乃至５３の各々は、ホスト装置とストレージ装置とを含み、単体でサービスを提供可能な構成要素である。尚、ノード５１乃至５３が備える仮想マシンは、３つに限定されない。また、ノード５１乃至５３は、仮想マシンの代わりに実マシンを備えてもよい。
【００６５】
図８は、本実施形態に係るクラスタシステム５０において障害が発生する前の、クラスタシステム５０のデータ格納状況を例示する図である。ノード５１におけるストレージドライブ２１２は、元データＤＡ、ＤＤ、ＤＩ、ＤＣ、ＤＥ、ＤＧを記憶している。但し、元データＤＡは仮想マシンＶＭＡが使用するデータであり、元データＤＤは仮想マシンＶＭＤが使用するデータである。元データＤＩ、ＤＣ、ＤＥ、ＤＧについても同様に、いずれかの仮想マシンが使用するデータである。キャッシュドライブ２１１は、順に、元データＤＡ、ＤＤ、ＤＩの少なくとも一部のコピーである、キャッシュデータＣＡ、ＣＤ、ＣＩを記憶している。
【００６６】
ノード５２におけるストレージドライブ２２２及びキャッシュドライブ２２１、及び、ノード５３におけるストレージドライブ２３２及びキャッシュドライブ２３１もノード５１と同様に、図８に例示する通り、元データ及びキャッシュデータを記憶している。
【００６７】
図８に例示するクラスタシステム５０では、元データＤＡ乃至ＤＩは、それぞれ、２つのノードにおけるストレージドライブに格納されている。即ち、クラスタシステム５０は、第１の実施形態に係るストレージシステム２０と同様に、元データＤＡ乃至ＤＩの記憶に関して、冗長な構成を備えている。
【００６８】
図７に示すストレージアクセス制御装置４０は、仮想マシンＶＭＡ乃至ＶＭＩがアクセスするデータがキャッシュデータとしてキャッシュドライブ２１１、２２１、２３１のいずれかに存在する場合、当該データが存在するキャッシュドライブへのアクセスを行う。ストレージアクセス制御装置４０は、仮想マシンＶＭＡ乃至ＶＭＩがアクセスするデータがキャッシュデータとしてキャッシュドライブ２１１、２２１、２３１のいずれにも存在しない場合、当該データに関する元データが存在するストレージドライブへのアクセスを行う。
【００６９】
本実施形態に係るストレージアクセス制御装置４０は、付与部４１、特定部４２、復元部４３、変更部４４、記憶部１５、アクセス実績収集部４６、及び、障害検出部１７を備えている。記憶部１５は、システム管理情報４５０を記憶している。システム管理情報４５０は、第１の実施形態に係るシステム管理情報１５０と同様にクラスタシステム５０の状態を表す情報であり、ストレージアクセス制御装置４０が備える構成要素によって、参照あるいは更新される。
【００７０】
図９は、本実施形態に係るシステム管理情報４５０に含まれるノード管理情報４５１の構成を概念的に例示する図である。図９に例示するノード管理情報４５１は、ノード５１乃至５３における、キャッシュドライブ２１１、２２１、２３１、及び、ストレージドライブ２１２、２２２、２３２に、図８に例示する通り、キャッシュデータＣＡ乃至ＣＩ、及び、元データＤＡ乃至ＤＩが記憶されていることを表している。図９に例示するノード管理情報４５１は、また、第１の実施形態に係るノード管理情報１５１と同様に、ストレージドライブ２１２、２２２、２３２に冗長分の元データが記憶されていることを表している。
【００７１】
図７に示すアクセス実績収集部４６は、仮想マシンＶＭＡ乃至ＶＭＩの個々について、ノード５１乃至５３に記憶されているキャッシュデータあるいは元データに対するアクセス実績（回数）を、所定のタイミングに（例えば定期的に）収集する。アクセス実績収集部４６は、アクセス実績に関する収集結果を表す情報を、システム管理情報４５０に含まれる仮想マシン管理情報４５２として生成あるいは更新する。
【００７２】
図１０は、本実施形態に係る仮想マシン管理情報４５２の構成を概念的に例示する図である。例えば図１０に例示する、ノード５１に含まれる仮想マシンＶＭＡに関するアクセス実績は、仮想マシンＶＭＡによるキャッシュデータＣＡ及び元データＤＡに対するアクセス実績に相当する。仮想マシンＶＭＢ乃至ＶＭＩに関するアクセス実績も同様に、各仮想マシンに関するキャッシュデータ及び元データに対するアクセス実績に相当する。
【００７３】
図７に示す付与部４１は、仮想マシン管理情報４５２が示す仮想マシンＶＭＡ乃至ＶＭＩに関するアクセス実績に基づいて、仮想マシンＶＭＡ乃至ＶＭＩの個々に対して、優先順位を付与する。但し、本実施形態に係る優先順位は、クラスタシステム５０におけるキャッシュドライブ２１１、２２１、及び２３１の何れかにおいて障害が発生することによって、使用可能なキャッシュドライブが減少した場合において、どの仮想マシンに関するキャッシュデータを優先的に稼動しているキャッシュドライブに残すかを示す指標であることとする。
【００７４】
図１０に例示する仮想マシン管理情報４５２によれば、仮想マシンＶＭＡ乃至ＶＭＩに関するアクセス実績は、値が大きいほうから、仮想マシンＶＭＡ乃至ＶＭＩの順になっている。従ってこの場合、付与部４１は、仮想マシンＶＭＡ乃至ＶＭＩに対して、順に、「１」乃至「９」という優先順位を付与し、付与した優先順位を仮想マシン管理情報４５２に反映する。
【００７５】
図１１は、本実施形態に係るシステム管理情報４５０に含まれる使用状況管理情報４５３の構成を概念的に例示する図である。使用状況管理情報４５３は、図１１に例示する通り、キャッシュドライブ２１１、２２１、２３１の使用率を、それぞれのキャッシュドライブに記憶されているキャッシュデータごとに表している。使用状況管理情報４５３は、後述する特定部４２によって、所定のタイミングに（例えば定期的に）、更新される。
【００７６】
図７に示す障害検出部１７は、クラスタシステム５０を監視し、クラスタシステム５０において発生した障害を検出する。本実施形態では以降、ノード５１（第一のノード）におけるキャッシュドライブ２１１及びストレージドライブ２１２が使用不可となる障害が発生した場合を例にして説明することとする。即ち、障害が発生したノード５１に含まれる仮想マシンＶＭＡ、ＶＭＤ、ＶＭＩは、その障害が発生した後も継続して動作することとする。
【００７７】
特定部４２は、仮想マシン管理情報４５２を参照することによって、障害が発生したノード５１に含まれる仮想マシンの個々について、優先度がより低い仮想マシンに関するキャッシュデータが記憶されたノードを、キャッシュドライブ２１１に記憶されていたキャッシュデータＣＡ、ＣＤ、ＣＩの復元先として特定する。
【００７８】
図１０に例示する仮想マシン管理情報４５２によれば、ノード５１に含まれる仮想マシンＶＭＡよりも優先順位が低い仮想マシンはＶＭＢ乃至ＶＭＩ（但しノード５１に含まれるＶＭＤとＶＭＩは除く）であり、当該仮想マシンに関するキャッシュデータＣＢ、ＣＣ、ＣＥ乃至ＣＨが記憶されているノードはノード５２及び５３である。また、ノード５１に含まれる仮想マシンＶＭＤよりも優先順位が低い仮想マシンはＶＭＥ乃至ＶＭＩ（但しノード５１に含まれるＶＭＩは除く）であり、当該仮想マシンに関するキャッシュデータＣＥ乃至ＣＨが記憶されているノードはノード５２及び５３である。また、ノード５１に含まれる仮想マシンＶＭＩよりも優先順位が低い仮想マシンは存在しない。このような場合、特定部４２は、優先順位と、使用状況管理情報４５３が示すキャッシュドライブの使用状況とに基づいて、復元先とするノード（第三のノード）を特定する。
【００７９】
即ち、特定部４２は、まず、使用状況管理情報４５３に基づいて、キャッシュデータＣＡ及びＣＤを復元可能な未使用領域が、キャッシュドライブ２２１及び２３１の少なくともいずれかに存在するか確認する。ノード２２とノード２３との少なくともいずれかに、キャッシュデータＣＡ及びＣＤを復元可能な未使用領域が存在する場合、特定部４２は、未使用領域が存在するノードであって、優先順位がより低いノードを復元先とするノードとして特定する。特定部４２は、また、優先順位が最も低い仮想マシンＶＭＩに関するキャッシュデータＣＩに対しては、復元先とするノードを特定しない。
【００８０】
図１１に例示する使用状況管理情報４５３によれば、キャッシュドライブ２１１、２２１、２３１とも使用率が高いので、特定部４２は、キャッシュデータＣＡ及びＣＤを復元可能な未使用領域は、キャッシュドライブ２２１及びキャッシュドライブ２３１に存在しないことを確認する。この場合、特定部４２は、キャッシュデータＣＡの復元先に関しては、仮想マシンＶＭＡより優先順位が低い仮想マシンに関するキャッシュデータを優先順位が低い方から順番に削除することによって、キャッシュドライブ２２１あるいはキャッシュドライブ２３１に、キャッシュデータＣＡを復元可能な未使用領域を確保可能か確認する。特定部４２は、キャッシュデータＣＤの復元先に関しても同様に、仮想マシンＶＭＤより優先順位が低い仮想マシンに関するキャッシュデータを優先順位が低い方から順番に削除することによって、キャッシュドライブ２２１あるいはキャッシュドライブ２３１に、キャッシュデータＣＤを復元可能な未使用領域を確保可能か確認する。そして特定部４２は、上述の通りに確認した結果に基づいて、キャッシュデータＣＡ及びＣＤに関して、復元先とするノードを特定する。
【００８１】
図１２は、本実施形態に係るクラスタシステム５０において、ノード５１におけるキャッシュドライブ２１１とストレージドライブ２１２とに障害が発生した後のクラスタシステム５０のデータ格納状況を例示する図である。
【００８２】
復元部４３は、図１２に例示する通り、キャッシュデータＣＡの復元先であるキャッシュドライブ２３１からキャッシュデータＣＦ、ＣＧを削除する。そして復元部４３は、ストレージドライブ２２２に格納されている冗長分の元データＤＡを用いて、キャッシュドライブ２３１にキャッシュデータＣＡを復元する。
【００８３】
復元部４３は、また、図１２に例示する通り、キャッシュデータＣＤの復元先であるキャッシュドライブ２２１からキャッシュデータＣＨを削除する。そして復元部４３は、ストレージドライブ２２２に格納されている冗長分の元データＤＤを用いて、キャッシュドライブ２２１にキャッシュデータＣＤを復元する。
【００８４】
図７に示す変更部４４は、仮想マシンＶＭＡによるキャッシュデータＣＡに対するアクセス先を、障害が発生したノード５１におけるキャッシュドライブ２１１から、キャッシュデータＣＡの復元先であるノード２３におけるキャッシュドライブ２３１に変更する。変更部４４は、また、仮想マシンＶＭＤによるキャッシュデータＣＤに対するアクセス先を、障害が発生したノード５１におけるキャッシュドライブ２１１から、キャッシュデータＣＤの復元先であるノード２２におけるキャッシュドライブ２２１に変更する。変更部４４は、また、仮想マシンＶＭＩによるキャッシュデータＣＩに対するアクセス先を、障害が発生したノード５１におけるキャッシュドライブ２１１から、ノード５３におけるストレージドライブ２３２における元データＤＩに変更する。
【００８５】
変更部４４は、また、キャッシュドライブ２２１から削除した、仮想マシンＶＭＨによるキャッシュデータＣＨに対するアクセス先を、キャッシュドライブ２１１から、ストレージドライブ２２２における元データＤＨに変更する。変更部４４は、また、キャッシュドライブ２３１から削除した、仮想マシンＶＭＦ、ＶＭＧによるキャッシュデータＣＦ、ＣＧに対するアクセス先を、ストレージドライブ２３２における元データＤＦ、ＤＧに変更する。
【００８６】
図１３は、本実施形態に係るクラスタシステム５０において、ノード５１に障害が発生した後のノード管理情報４５１の構成を例示する図である。図１３に例示するノード管理情報１５１によれば、ノード５１に関する稼働状況は、障害検出部１７によって、「正常」から「異常」に更新されている。そして、ノード５２に関するキャッシュドライブ格納データは、変更部４４によって、キャッシュデータＣＢ、ＣＥ、ＣＨからキャッシュデータＣＢ、ＣＥ、ＣＤに更新されている。また、ノード５２に関するストレージドライブ格納データは、変更部４４によって、元データＤＡ、ＤＤに関して冗長分ではない元データに更新されている。また、ノード５３に関するキャッシュドライブ格納データは、変更部４４によって、キャッシュデータＣＣ、ＣＦ、ＣＧからキャッシュデータＣＣ、ＣＡに更新されている。また、ノード５３に関するストレージドライブ格納データは、変更部１４によって、元データＤＩに関して冗長分ではない元データに更新されている。
【００８７】
図１４は、本実施形態に係るクラスタシステム５０において、ノード５１に障害が発生した後の使用状況管理情報４５３の構成を例示する図である。図１４に例示する使用状況管理情報４５３によれば、キャッシュドライブ２２１に記憶されるデータがキャッシュデータＣＨからキャッシュデータＣＤに更新され、キャッシュドライブ２３１に記憶されるデータがキャッシュデータＣＦ、ＣＧからキャッシュデータＣＡに更新されたことに伴い、特定部１２よって、キャッシュドライブ２２１、２３１の使用状況が更新されている。
【００８８】
次に図１５のフローチャートを参照して、本実施形態に係るストレージアクセス制御装置４０の動作（処理）について詳細に説明する。
【００８９】
付与部１１は、所定のタイミングに、仮想マシンＶＭＡ乃至ＶＭＩによるキャッシュデータあるいはストレージデータへのアクセス実績に基づいて、仮想マシンＶＭＡ乃至ＶＭＩの個々に対して優先順位を付与する（ステップＳ２０１）。障害検出部１７は、ノード５１のキャッシュドライブ２１１に関する障害が発生したことを検出する（ステップＳ２０２）。
【００９０】
特定部１２は、ノード５２及び５３のキャッシュドライブ２２１及び２３１のうち、キャッシュデータＣＡ及びＣＤを復元可能な未使用領域を有するものがあるか、それぞれ確認する（ステップＳ２０３）。
【００９１】
キャッシュデータＣＡ、ＣＤを復元可能な未使用領域を有するものがある場合（ステップＳ２０４でＹｅｓ）、特定部１２は、未使用領域を有するノード５２及び５３のうち、含まれる仮想マシンの優先順位と、ノード５２及び５３のキャッシュドライブの使用状況とに基づいて、復元先のノードを特定する（ステップＳ２０５）。
【００９２】
キャッシュデータＣＡ、ＣＤを復元可能な未使用領域を有するものがない場合（ステップＳ２０４でＮｏ）、特定部１２は、ノード５２及び５３に含まれる仮想マシンの優先順位と、ノード５２及び５３のキャッシュドライブの使用状況とに基づいて、復元先のノードを特定する（ステップＳ２０６）。復元部１３は、キャッシュデータＣＡ、ＣＤを格納できるように、復元先のノードから、キャッシュデータを削除する（ステップＳ２０７）。
【００９３】
復元部１３は、ストレージドライブ２２２に格納されている元データＤＡ、ＤＤを用いて、復元先のノードにおけるキャッシュドライブに、キャッシュデータＣＡ、ＣＤを復元する（ステップＳ２０８）。変更部４４は、仮想マシンＶＭＡ、ＶＭＤによるキャッシュデータＣＡ、ＣＤに関するアクセス先を、キャッシュドライブ２１１から復元先のキャッシュドライブに変更し（ステップＳ２０９）、全体の処理は終了する。
【００９４】
本実施形態に係るストレージアクセス制御装置４０は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることができる。その理由は、第１の実施形態について説明した通りである。
【００９５】
また、本実施形態に係るストレージアクセス制御装置４０が制御対象とするクラスタシステム５０を構成するノードは、第１の実施形態に係るホスト装置３０に相当する仮想マシンを含んでいる。付与部４１は、例えば、各仮想マシンが、ノード内のキャッシュドライブやストレージドライブに記憶された当該仮想マシンが使用するデータへアクセスした実績に基づいて、仮想マシンごとに優先順位を付与する。そして、特定部４２及び復元部４３は、上述の通りに付与された優先順位と、各仮想マシンに関するキャッシュデータがキャッシュドライブを使用する状況とに基づいて、第１の実施形態と同様なポリシーを用いて、障害が発生したノードに記憶されていたキャッシュデータを復元する。したがって、本実施形態に係るストレージアクセス制御装置４０は、ホスト装置とストレージ装置とを含むノードによって構成されたクラスタシステムを制御する場合において、障害が発生したことによる、当該ホスト装置から当該ストレージ装置に対するアクセス性能の低下を、より適切に抑えることができる。
【００９６】
＜第３の実施形態＞
図１６は、本願発明の第３の実施形態に係るストレージアクセス制御装置６０の構成を概念的に示すブロック図である。
【００９７】
本実施形態に係るストレージアクセス制御装置６０は、ホスト装置８０によるストレージシステム７０に対するアクセスを制御する装置である。
【００９８】
ストレージシステム７０は、ノード７１を複数有する。ノード７１は、ストレージドライブ７１２と、キャッシュドライブ７１１とを備える。ストレージドライブ７１２は元データ７１４を記憶している。キャッシュドライブ７１１は、元データ７１４の少なくとも一部をキャッシュデータ７１３として記憶している。
【００９９】
ストレージシステム７０は、ノード７１のうちの第一のノード７１に関する障害が発生した場合に、ホスト装置８０による第一のノード７１におけるキャッシュドライブ７１１へのアクセスが不能となるようなシステムである。
【０１００】
本実施形態に係るストレージアクセス制御装置６０は、付与部６１、特定部６２、復元部６３、及び、変更部６４を備えている。
【０１０１】
付与部６１は、ノード７１の個々に対して、所定の基準６１０に基づいて、キャッシュデータ７１３の存在に関する優先順位６１１を付与する。
【０１０２】
特定部６２は、第一のノード７１よりも優先順位６１１が低い、ノード７１のうちの第二のノード７１を特定する。
【０１０３】
復元部６３は、第一のノード７１におけるキャッシュドライブ７１１に記憶されていたキャッシュデータ７１３を、ノード７１の少なくともいずれかに記憶されている元データ７１４を用いて、第二のノード７１におけるキャッシュドライブ７１１に復元する。
【０１０４】
変更部６４は、ホスト装置８０によるアクセス先を、第一のノード７１におけるキャッシュドライブ７１１から、第二のノード７１におけるキャッシュドライブ７１１に変更する。
【０１０５】
本実施形態に係るストレージアクセス制御装置６０は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることができる。その理由は、ストレージアクセス制御装置６０は、ノード７１の個々に対して優先順位６１１を付与し、障害が発生したノード７１よりも優先順位６１１が低いノードのいずれかをキャッシュデータ７１３の復元先のノードに特定し、いずれかのノード７１に記憶されていた元データ７１４を用いて復元先のノード７１にキャッシュデータ７１３を復元するからである。
【０１０６】
＜ハードウェア構成例＞
上述した各実施形態において図１、図７、及び、図１６に示したストレージアクセス制御装置における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、図７、及び、図１６において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・付与部１１、４１、及び６１、
・特定部１２、４２、及び６２、
・復元部１３、４３、及び６３、
・変更部１４、４４、及び６４、
・記憶部１５における記憶制御機能、
・アクセス実績収集部１６及び４６、
・障害検出部１７。
【０１０７】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図１７を参照して説明する。
【０１０８】
図１７は、本願発明の各実施形態に係るストレージアクセス制御装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図１７は、図１、図７、及び、図１６に示したストレージアクセス制御装置を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【０１０９】
図１７に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・モニターやスピーカ、キーボード等の入出力インタフェース９０９。
【０１１０】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【０１１１】
そして、上述した実施形態を例に説明した本願発明は、図１７に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、図７、及び、図１６）における上述した構成、或いはフローチャート（図６及び図１５）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【０１１２】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【０１１３】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【０１１４】
１    ストレージアクセス制御システム
１０    ストレージアクセス制御装置
１１    付与部
１２    特定部
１３    復元部
１４    変更部
１５    記憶部
１５０    システム管理情報
１５１    ノード管理情報
１５２    使用状況管理情報
１６    アクセス実績収集部
１７    障害検出部
２０    ストレージシステム
２１    ノード
２１１    キャッシュドライブ
２１２    ストレージドライブ
２２    ノード
２２１    キャッシュドライブ
２２２    ストレージドライブ
２３    ノード
２３１    キャッシュドライブ
２３２    ストレージドライブ
３０    ホスト装置
２    ストレージアクセス制御システム
４０    ストレージアクセス制御装置
４１    付与部
４２    特定部
４３    復元部
４４    変更部
４５０    システム管理情報
４５１    ノード管理情報
４５２    仮想マシン管理情報
４５３    使用状況管理情報
４６    アクセス実績収集部
５０    クラスタシステム
５１    ノード
５２    ノード
５３    ノード
６０    ストレージアクセス制御装置
６１    付与部
６１０    所定の基準
６１１    優先順位
６２    特定部
６３    復元部
６４    変更部
７０    ストレージシステム
７１    ノード
７１１    キャッシュドライブ
７１２    ストレージドライブ
７１３    キャッシュデータ
７１４    元データ
８０    ホスト装置
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2020086554.tif 000003
【図２】
2020086554.tif 000004
【図３】
2020086554.tif 000005
【図４】
2020086554.tif 000006
【図５】
2020086554.tif 000007
【図６】
2020086554.tif 000008
【図７】
2020086554.tif 000009
【図８】
2020086554.tif 000010
【図９】
2020086554.tif 000011
【図１０】
2020086554.tif 000012
【図１１】
2020086554.tif 000013
【図１２】
2020086554.tif 000014
【図１３】
2020086554.tif 000015
【図１４】
2020086554.tif 000016
【図１５】
2020086554.tif 000017
【図１６】
2020086554.tif 000018
【図１７】
2020086554.tif 000019