以下、本願発明の実施の形態について図面を参照して詳細に説明する。
<第1の実施形態>
図1は、本願発明の第1の実施の形態に係るストレージアクセス制御システム1の構成を概念的に示すブロック図である。ストレージアクセス制御システム1は、大別して、ストレージアクセス制御装置10、ストレージシステム20、及び、ホスト装置30を含む。ストレージアクセス制御装置10とストレージシステム20とは通信可能に接続されている。また、ストレージアクセス制御装置10とホスト装置30とは、通信可能に接続されている。
ホスト装置30は、サーバ装置等の情報処理装置であり、ストレージシステム20に記憶されているデータにアクセスする。そして、ストレージアクセス制御装置10は、ホスト装置30によるストレージシステム20に対するアクセスを制御する情報処理装置である。
ストレージシステム20は、3つのノード21乃至23を含むクラスタ(マルチノード)システムである。ノード21乃至23の各々は、単体のストレージ装置として動作可能な構成要素である。尚、ストレージシステム20に含まれるノードの数は3つに限定されない。
ノード21は、キャッシュドライブ211とストレージドライブ212を備える。ノード22は、キャッシュドライブ221とストレージドライブ222を備える。ノード23は、キャッシュドライブ231とストレージドライブ232を備える。尚、ノード21乃至23のハードウェアの仕様は同等であることとする。
ストレージドライブ212、222、232は、ホスト装置30によってアクセスされる元データを格納する磁気ディスク等の記憶デバイスである。キャッシュドライブ211、221、231は、ストレージドライブ212、222、232に記憶されている元データの少なくとも一部のコピーであるキャッシュデータを記憶している。キャッシュドライブ211、221、231は、ストレージドライブ212、222、232よりも、高速なアクセスが可能であり、かつ、記憶容量が小さい、例えばSSD等の記憶デバイスである。
図2は、本実施形態に係るストレージシステム20において障害が発生する前の、ストレージシステム20のデータ格納状況を例示する図である。ノード21におけるストレージドライブ212は、元データD1及びD3を記憶し、キャッシュドライブ211は、元データD1の少なくとも一部のコピーであるキャッシュデータC1を記憶している。ノード22におけるストレージドライブ222は、元データD2及びD1を記憶し、キャッシュドライブ221は、元データD2の少なくとも一部のコピーであるキャッシュデータC2を記憶している。ノード23におけるストレージドライブ232は、元データD3及びD2を記憶し、キャッシュドライブ231は、元データD3の少なくとも一部のコピーであるキャッシュデータC3を記憶している。
図2に例示するストレージシステム20では、元データD1乃至D3は、それぞれ、2つのノードにおけるストレージドライブに格納されている。即ち、ストレージシステム20は、元データD1乃至D3の記憶に関して、冗長な構成を備えている。そして、異なる二つのストレージドライブに記憶されている2つの元データは、ストレージシステム20によって内容が一致するように同期制御が行われていることとする。
図1に示すストレージアクセス制御装置10は、ホスト装置30がアクセスするデータがキャッシュデータとしてキャッシュドライブ211、221、231のいずれかに存在する場合、当該データが存在するキャッシュドライブへのアクセスを行う。ストレージアクセス制御装置10は、ホスト装置30がアクセスするデータがキャッシュデータとしてキャッシュドライブ211、221、231のいずれにも存在しない場合、当該データに関する元データが存在するストレージドライブへのアクセスを行う。
本実施形態に係るストレージアクセス制御装置10は、付与部11、特定部12、復元部13、変更部14、記憶部15、アクセス実績収集部16、及び、障害検出部17を備えている。記憶部15は、例えば磁気ディスクあるいは電子メモリ等の記憶デバイスであり、システム管理情報150を記憶している。システム管理情報150は、ストレージシステム20の状態を表す情報(ストレージシステム20に記憶されたデータに関するメタデータを含む情報)であり、ストレージアクセス制御装置10が備える構成要素によって、参照あるいは更新される。
図3は、本実施形態に係るシステム管理情報150の構成を概念的に例示する図である。システム管理情報150は、ノード管理情報151と使用状況管理情報152とを含んでいる。図3に例示するノード管理情報151は、ノード21乃至23における、キャッシュドライブ211、221、231、及び、ストレージドライブ212、222、232に、図2に例示する通り、キャッシュデータC1乃至C3、及び、元データD1乃至D3が記憶されていることを表している。
図3に例示するノード管理情報151は、また、ノード21に記憶されている元データD3、ノード22に記憶されている元データD1、及び、ノード23に記憶されている元データD2が、冗長分の元データであることを表している。尚、これらの冗長分の元データは、ストレージシステム20のいずれかのノードにおいて障害が発生した場合において、障害が発生したノードにおけるキャッシュドライブに記憶されていたキャッシュデータを復元する際に使用されるデータである。
図3に例示するノード管理情報151は、また、ノード21乃至23が正常に稼動していることを示している。
図3に例示する使用状況管理情報152は、キャッシュドライブ211、221、231の使用率(キャッシュドライブの容量に対して、キャッシュデータC1乃至C3が占める割合)を表している。使用状況管理情報152は、後述する特定部12によって、所定のタイミングに(例えば定期的に)、更新される。
図1に示すアクセス実績収集部16は、ホスト装置30によるノード21乃至23に対するアクセス実績(回数)を収集する。ホスト装置30によるノード21に対するアクセス実績は、ホスト装置30によるキャッシュデータC1及び元データD1に対するアクセス実績に相当する。ホスト装置30によるノード22あるいは23に対するアクセス実績も同様に、ノード22あるいは23に記憶されているキャッシュデータ及び元データに対するアクセス実績に相当する。
アクセス実績収集部16は、所定のタイミングに(例えば定期的に)、ノード21乃至23に関するアクセス実績を収集し、収集したアクセス実績を、図3に例示する通り、ノード管理情報151に反映する。
図1に示す付与部11は、ノード管理情報151が示すノード21乃至23に関するアクセス実績に基づいて、ノード21乃至23の個々に対して、優先順位を付与する。但し、本実施形態に係る優先順位は、ストレージシステム20におけるキャッシュドライブ211、221、及び231の何れかにおいて障害が発生することによって、使用可能なキャッシュドライブが減少した場合において、どのノードに関するキャッシュデータを優先的に稼動しているキャッシュドライブに残すか(即ち、キャッシュデータを優先的にストレージシステム20に存在させるか)を示す指標であることとする。
より具体的には、図3に例示するノード管理情報151によれば、ノード21乃至23に関するアクセス実績は、値が大きいほうから、ノード21、ノード22、ノード23の順になっている。従ってこの場合、付与部11は、ノード21乃至23に対して、高い方から順に、「1」、「2」、「3」という優先順位を付与し、付与した優先順位をノード管理情報151に反映する。
付与部11は、アクセス実績収集部16によって、ノード21乃至23に関するアクセス実績の値が更新されることに伴い、ノード管理情報151が示す優先順位を更新する。
図1に示す障害検出部17は、ストレージシステム20を監視し、ストレージシステム20において発生した障害を検出する。障害検出部17によって検出される障害の内容は様々であるが、本実施形態では以降、ノード21(第一のノード)の全体(即ちキャッシュドライブ211及びストレージドライブ212)が使用不可となる障害が発生した場合を例にして説明することとする。
特定部12は、ノード管理情報151を参照することによって、障害が発生したノード21よりも優先順位が低いノードを、キャッシュドライブ211に記憶されていたキャッシュデータC1の復元先として特定する。図3に例示するノード管理情報151によれば、ノード21よりも優先順位が低いノードはノード22とノード23との2つが存在する。このような場合、特定部12は、優先順位と、使用状況管理情報152が示すキャッシュドライブの使用状況とに基づいて、復元先とするノード(第二のノード)を特定する。
即ち、特定部12は、まず、使用状況管理情報152に基づいて、キャッシュデータC1を復元可能な未使用領域が、キャッシュドライブ221及び231の少なくともいずれかに存在するか確認する。ノード22とノード23との少なくともいずれかに、キャッシュデータC1を復元可能な未使用領域が存在する場合、特定部12は、未使用領域が存在するノードであって、優先順位がより低いノードを復元先とするノードとして特定する。
図3に例示する使用状況管理情報152によれば、キャッシュドライブ211、221、231とも使用率が高いので、特定部12は、キャッシュデータC1を復元可能な未使用領域は、キャッシュドライブ221及びキャッシュドライブ231に存在しないことを確認する。この場合、特定部12は、優先順位が最も低いノードであるノード23を、キャッシュデータC1の復元先とするノードとして特定する。
尚、ノード22に関する障害が発生した場合では、特定部12は、ノード22よりも優先順位が低いノード23を、キャッシュデータC2の復元先とするノードとして特定する。そして、ノード23に関する障害が発生した場合では、特定部12は、ノード23よりも優先順位が低いノードが存在しないことから、キャッシュデータC3の復元先を特定しない。即ち、本実施形態に係るストレージアクセス制御装置10は、優先順位が最も低いノード23において障害が発生した場合、キャッシュデータC3をノード21あるいはノード22に復元することを行わない。
復元部13は、障害が発生したノード21(第一のノード)におけるキャッシュドライブ211に記憶されていたキャッシュデータC1を、ノード22及びノード23の少なくともいずれかに記憶されている元データD1を用いて、特定部12によって特定されたノード23(第二のノード)におけるキャッシュドライブ231に復元する。
図4は、本実施形態に係るストレージシステム20において、ノード21に障害が発生した後のストレージシステム20のデータ格納状況を例示する図である。復元部13は、図4に例示する通り、キャッシュデータC1の復元先であるキャッシュドライブ231からキャッシュデータC3を削除する。そして復元部13は、ストレージドライブ222に格納されている冗長分の元データD1を用いて、キャッシュドライブ231にキャッシュデータC1を復元する。
図1に示す変更部14は、ホスト装置30によるキャッシュデータC1に対するアクセス先を、障害が発生したノード21におけるキャッシュドライブ211から、キャッシュデータC1の復元先であるノード23におけるキャッシュドライブ231に変更する。変更部14は、また、キャッシュドライブ231から削除した、ホスト装置30によるキャッシュデータC3に対するアクセス先を、ノード23におけるキャッシュドライブ231から、ストレージドライブ232における元データD3に変更する。
図5は、本実施形態に係るストレージシステム20において、ノード21に障害が発生した後のシステム管理情報150の構成を例示する図である。図5に例示するノード管理情報151によれば、ノード21に関する稼働状況は、障害検出部17によって、「正常」から「異常」に更新されている。そして、ノード23に関するキャッシュドライブ格納データは、変更部14によって、キャッシュデータC3からキャッシュデータC1に更新されている。また、ノード22に関するストレージドライブ格納データは、変更部14によって、元データD1に関して冗長分ではない元データに更新されている。
また、図5に例示する使用状況管理情報152によれば、キャッシュドライブ231に記憶されるデータがキャッシュデータC3からキャッシュデータC1に更新されたので、特定部12よって、キャッシュドライブ231の使用率が「85%」から「90%」に更新されている。
次に図6のフローチャートを参照して、本実施形態に係るストレージアクセス制御装置10の動作(処理)について詳細に説明する。
付与部11は、所定のタイミングに、ホスト装置30によるノード21乃至23へのアクセス実績に基づいて、ノード21乃至23の個々に対して優先順位を付与する(ステップS101)。障害検出部17は、ノード21に関する障害が発生したことを検出する(ステップS102)。
特定部12は、ノード21よりも優先順位が低いノード22及び23のキャッシュドライブ221及び231のうち、キャッシュデータC1を復元可能な未使用領域を有するものがあるか確認する(ステップS103)。
キャッシュデータC1を復元可能な未使用領域を有するものがある場合(ステップS104でYes)、特定部12は、キャッシュデータC1を復元可能な未使用領域を有するノード22及び23のうち、優先順位が最も低いノードを、キャッシュデータC1の復元先に特定する(ステップS105)。
キャッシュデータC1を復元可能な未使用領域を有するものがない場合(ステップS104でNo)、特定部12は、ノード22及び23のうち、優先順位が最も低いノード23を、キャッシュデータC1の復元先に特定する(ステップS106)。復元部13は、ノード23のキャッシュドライブ231からキャッシュデータC3を削除する(ステップS107)。
復元部13は、ストレージドライブ222に格納されている元データD1(冗長分)を用いて、復元先のノードにおけるキャッシュドライブに、キャッシュデータC1を復元する(ステップS108)。変更部14は、ホスト装置30によるキャッシュデータC1に関するアクセス先を、キャッシュドライブ211から復元先のキャッシュドライブに変更し(ステップS109)、全体の処理は終了する。
本実施形態に係るストレージアクセス制御装置10は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることができる。その理由は、ストレージアクセス制御装置10は、ノードの個々に対して優先順位を付与し、障害が発生したノードよりも優先順位が低いノードのいずれかをキャッシュデータの復元先のノードに特定し、いずれかのノードに記憶されていた元データを用いて復元先のノードにキャッシュデータを復元するからである。
以下に、本実施形態に係るストレージアクセス制御装置10によって実現される効果について、詳細に説明する。
大規模なコンピュータシステムは、ある機能を実現する単体装置をノードとして複数束ねたクラスタシステムを構成することが多い。このようなクラスタシステムを構成するストレージシステムにおける各ノードは、アクセス性能の向上を目的として、データを格納する磁気ディクスに加えてキャッシュを備える場合がある。このようなクラスタシステムを構成するストレージシステム内のあるノードのキャッシュに障害が発生した場合、当該キャッシュが使用できなくなることによって、当該ノードに記憶されているデータへのアクセス性能が低下する。したがって、そのようなアクセス性能の低下を回避するためには、稼動しているノードのキャッシュが、障害が発生したノードのキャッシュの機能を引き継ぐ必要がある。この場合、ストレージシステム全体としては、キャッシュの資源(ハードウェア)は障害が発生する前よりも減少しているので、障害が発生したノードのキャッシュの機能を、稼動しているノードのキャッシュに適切に割り当てるようにしないと、システム性能が大きく低下する虞がある。
このような課題に対して、本実施形態に係るストレージアクセス制御装置10は、ストレージドライブと、ストレージドライブに記憶されている元データの少なくとも一部をキャッシュデータとして記憶しているキャッシュドライブと、を備えるノードを複数有するストレージシステム20に対するホスト装置30によるアクセスを制御する。ストレージシステム20において、複数のノードのうちの第一のノードに関する障害が発生した場合に、ホスト装置30による第一のノードにおけるキャッシュドライブへのアクセスが不能となる。
そして、ストレージアクセス制御装置10は、付与部11と、特定部12と、復元部13と、変更部14とを備え、例えば図1乃至図6を参照して上述した通り動作する。即ち、付与部11は、ノードの個々に対して、所定の基準に基づいて、キャッシュデータの存在に関する優先順位を付与する。特定部12は、第一のノードよりも優先順位が低い、複数のノードのうちの第二のノードを特定する。復元部13は、第一のノードにおけるキャッシュドライブに記憶されていたキャッシュデータを、複数のノードの少なくともいずれかに記憶されている元データを用いて、第二のノードにおけるキャッシュドライブに復元する。そして変更部14は、ホスト装置30によるアクセス先を、第一のノードにおけるキャッシュドライブから、第二のノードにおけるキャッシュドライブに変更する。
即ち、本実施形態に係るストレージアクセス制御装置10は、ストレージシステム20におけるいずれかのキャッシュドライブに障害が発生した場合に、付与した優先順位が高いノードにおけるキャッシュデータが、ストレージシステム20における稼働中のキャッシュドライブに残るように制御する。これにより、本実施形態に係るストレージアクセス制御装置10は、クラスタシステムを構成するストレージシステム20のキャッシュに障害が発生した場合において、ストレージシステム20に対するアクセス性能の低下を適切に抑えることができる。
また、本実施形態に係る付与部11は、ホスト装置30による各ノードに対するアクセス実績に基づいて、各ノードに対する優先順位を付与する。即ち、本実施形態に係るストレージアクセス制御装置10は、ノードに対して適切に優先順位を付与するので、アクセス性能の低下を適切に抑えることを確実に行うことができる。
また、付与部11がノードに対して優先順位を付与する際に用いる基準は、ホスト装置30によるアクセス実績に限定されない。付与部11は、例えば、ストレージアクセス制御システム1の管理者などによって与えられた、各ノードに記憶されるデータの重要性を表す情報等を、優先順位を付与する際に用いる基準として用いてもよい。
また、本実施形態に係る特定部12は、障害が発生したノードにおけるキャッシュドライブに記憶されていたキャッシュデータを格納可能な未使用領域を有するキャッシュドライブを備えるノードを、当該キャッシュデータの復元先のノードとして特定する。即ち、本実施形態に係るストレージアクセス制御装置10は、稼働中のキャッシュドライブにおける未使用領域を有効活用するので、ストレージシステム20に対するアクセス性能の低下をより適切に抑えることができる。
また、特定部12は、上述したキャッシュデータを格納可能な未使用領域を有するキャッシュドライブを備えるノードが存在しない場合、優先順位が最も低いノードを当該キャッシュデータの復元先のノードとして特定する。そして復元部13は、当該キャッシュデータを格納可能になるように、復元先のノードにおけるキャッシュドライブに記憶されていたキャッシュデータを削除する。これにより本実施形態に係るストレージアクセス制御装置10は、ストレージシステム20に対するアクセス性能の低下を、適切かつ確実に抑えることができる。
尚、上述した本実施形態では、ノード全体(即ち当該ノードにおけるキャッシュドライブ及びストレージドライブの両方)が使用不可となる障害が発生することを前提としたが、キャッシュドライブのみが使用不可となる障害の発生を前提としてもよい。その場合、当該ノードにおけるストレージドライブは使用可能であるので、ストレージシステム20が上述したような元データに関する冗長構成を備えなくても、ストレージアクセス制御装置10は、キャッシュデータを復元することができる。
<第2の実施形態>
図7は、本願発明の第2の実施の形態に係るストレージアクセス制御システム2の構成を概念的に示すブロック図である。尚、本実施形態において、上述した第1の実施形態と同様の機能を備える構成要素に関しては、第一の実施形態と同一の番号を付与することによって、その詳細な説明を省略することとする。ストレージアクセス制御システム2は、大別して、ストレージアクセス制御装置40、及び、クラスタシステム50を含む。ストレージアクセス制御装置40とクラスタシステム50とは通信可能に接続されている。
本実施形態に係るクラスタシステム50は、3つのノード51乃至53を含むクラスタ(マルチノード)システムである。尚、クラスタシステム50に含まれるノードの数は3つに限定されない。
本実施形態に係るノード51乃至53は、第1の実施形態に係るノード21乃至23に対して、ホスト装置30に相当する構成を加えた構成を備えている。即ち、ノード51は、キャッシュドライブ211及びストレージドライブ212に加えて、3つの仮想マシンVMA、VMD、VMIを備えている。ノード52は、キャッシュドライブ221及びストレージドライブ222に加えて、3つの仮想マシンVMB、VME、VMHを備えている。ノード53は、キャッシュドライブ231及びストレージドライブ232に加えて、3つの仮想マシンVMC、VMF、VMGを備えている。即ち、ノード51乃至53の各々は、ホスト装置とストレージ装置とを含み、単体でサービスを提供可能な構成要素である。尚、ノード51乃至53が備える仮想マシンは、3つに限定されない。また、ノード51乃至53は、仮想マシンの代わりに実マシンを備えてもよい。
図8は、本実施形態に係るクラスタシステム50において障害が発生する前の、クラスタシステム50のデータ格納状況を例示する図である。ノード51におけるストレージドライブ212は、元データDA、DD、DI、DC、DE、DGを記憶している。但し、元データDAは仮想マシンVMAが使用するデータであり、元データDDは仮想マシンVMDが使用するデータである。元データDI、DC、DE、DGについても同様に、いずれかの仮想マシンが使用するデータである。キャッシュドライブ211は、順に、元データDA、DD、DIの少なくとも一部のコピーである、キャッシュデータCA、CD、CIを記憶している。
ノード52におけるストレージドライブ222及びキャッシュドライブ221、及び、ノード53におけるストレージドライブ232及びキャッシュドライブ231もノード51と同様に、図8に例示する通り、元データ及びキャッシュデータを記憶している。
図8に例示するクラスタシステム50では、元データDA乃至DIは、それぞれ、2つのノードにおけるストレージドライブに格納されている。即ち、クラスタシステム50は、第1の実施形態に係るストレージシステム20と同様に、元データDA乃至DIの記憶に関して、冗長な構成を備えている。
図7に示すストレージアクセス制御装置40は、仮想マシンVMA乃至VMIがアクセスするデータがキャッシュデータとしてキャッシュドライブ211、221、231のいずれかに存在する場合、当該データが存在するキャッシュドライブへのアクセスを行う。ストレージアクセス制御装置40は、仮想マシンVMA乃至VMIがアクセスするデータがキャッシュデータとしてキャッシュドライブ211、221、231のいずれにも存在しない場合、当該データに関する元データが存在するストレージドライブへのアクセスを行う。
本実施形態に係るストレージアクセス制御装置40は、付与部41、特定部42、復元部43、変更部44、記憶部15、アクセス実績収集部46、及び、障害検出部17を備えている。記憶部15は、システム管理情報450を記憶している。システム管理情報450は、第1の実施形態に係るシステム管理情報150と同様にクラスタシステム50の状態を表す情報であり、ストレージアクセス制御装置40が備える構成要素によって、参照あるいは更新される。
図9は、本実施形態に係るシステム管理情報450に含まれるノード管理情報451の構成を概念的に例示する図である。図9に例示するノード管理情報451は、ノード51乃至53における、キャッシュドライブ211、221、231、及び、ストレージドライブ212、222、232に、図8に例示する通り、キャッシュデータCA乃至CI、及び、元データDA乃至DIが記憶されていることを表している。図9に例示するノード管理情報451は、また、第1の実施形態に係るノード管理情報151と同様に、ストレージドライブ212、222、232に冗長分の元データが記憶されていることを表している。
図7に示すアクセス実績収集部46は、仮想マシンVMA乃至VMIの個々について、ノード51乃至53に記憶されているキャッシュデータあるいは元データに対するアクセス実績(回数)を、所定のタイミングに(例えば定期的に)収集する。アクセス実績収集部46は、アクセス実績に関する収集結果を表す情報を、システム管理情報450に含まれる仮想マシン管理情報452として生成あるいは更新する。
図10は、本実施形態に係る仮想マシン管理情報452の構成を概念的に例示する図である。例えば図10に例示する、ノード51に含まれる仮想マシンVMAに関するアクセス実績は、仮想マシンVMAによるキャッシュデータCA及び元データDAに対するアクセス実績に相当する。仮想マシンVMB乃至VMIに関するアクセス実績も同様に、各仮想マシンに関するキャッシュデータ及び元データに対するアクセス実績に相当する。
図7に示す付与部41は、仮想マシン管理情報452が示す仮想マシンVMA乃至VMIに関するアクセス実績に基づいて、仮想マシンVMA乃至VMIの個々に対して、優先順位を付与する。但し、本実施形態に係る優先順位は、クラスタシステム50におけるキャッシュドライブ211、221、及び231の何れかにおいて障害が発生することによって、使用可能なキャッシュドライブが減少した場合において、どの仮想マシンに関するキャッシュデータを優先的に稼動しているキャッシュドライブに残すかを示す指標であることとする。
図10に例示する仮想マシン管理情報452によれば、仮想マシンVMA乃至VMIに関するアクセス実績は、値が大きいほうから、仮想マシンVMA乃至VMIの順になっている。従ってこの場合、付与部41は、仮想マシンVMA乃至VMIに対して、順に、「1」乃至「9」という優先順位を付与し、付与した優先順位を仮想マシン管理情報452に反映する。
図11は、本実施形態に係るシステム管理情報450に含まれる使用状況管理情報453の構成を概念的に例示する図である。使用状況管理情報453は、図11に例示する通り、キャッシュドライブ211、221、231の使用率を、それぞれのキャッシュドライブに記憶されているキャッシュデータごとに表している。使用状況管理情報453は、後述する特定部42によって、所定のタイミングに(例えば定期的に)、更新される。
図7に示す障害検出部17は、クラスタシステム50を監視し、クラスタシステム50において発生した障害を検出する。本実施形態では以降、ノード51(第一のノード)におけるキャッシュドライブ211及びストレージドライブ212が使用不可となる障害が発生した場合を例にして説明することとする。即ち、障害が発生したノード51に含まれる仮想マシンVMA、VMD、VMIは、その障害が発生した後も継続して動作することとする。
特定部42は、仮想マシン管理情報452を参照することによって、障害が発生したノード51に含まれる仮想マシンの個々について、優先度がより低い仮想マシンに関するキャッシュデータが記憶されたノードを、キャッシュドライブ211に記憶されていたキャッシュデータCA、CD、CIの復元先として特定する。
図10に例示する仮想マシン管理情報452によれば、ノード51に含まれる仮想マシンVMAよりも優先順位が低い仮想マシンはVMB乃至VMI(但しノード51に含まれるVMDとVMIは除く)であり、当該仮想マシンに関するキャッシュデータCB、CC、CE乃至CHが記憶されているノードはノード52及び53である。また、ノード51に含まれる仮想マシンVMDよりも優先順位が低い仮想マシンはVME乃至VMI(但しノード51に含まれるVMIは除く)であり、当該仮想マシンに関するキャッシュデータCE乃至CHが記憶されているノードはノード52及び53である。また、ノード51に含まれる仮想マシンVMIよりも優先順位が低い仮想マシンは存在しない。このような場合、特定部42は、優先順位と、使用状況管理情報453が示すキャッシュドライブの使用状況とに基づいて、復元先とするノード(第三のノード)を特定する。
即ち、特定部42は、まず、使用状況管理情報453に基づいて、キャッシュデータCA及びCDを復元可能な未使用領域が、キャッシュドライブ221及び231の少なくともいずれかに存在するか確認する。ノード22とノード23との少なくともいずれかに、キャッシュデータCA及びCDを復元可能な未使用領域が存在する場合、特定部42は、未使用領域が存在するノードであって、優先順位がより低いノードを復元先とするノードとして特定する。特定部42は、また、優先順位が最も低い仮想マシンVMIに関するキャッシュデータCIに対しては、復元先とするノードを特定しない。
図11に例示する使用状況管理情報453によれば、キャッシュドライブ211、221、231とも使用率が高いので、特定部42は、キャッシュデータCA及びCDを復元可能な未使用領域は、キャッシュドライブ221及びキャッシュドライブ231に存在しないことを確認する。この場合、特定部42は、キャッシュデータCAの復元先に関しては、仮想マシンVMAより優先順位が低い仮想マシンに関するキャッシュデータを優先順位が低い方から順番に削除することによって、キャッシュドライブ221あるいはキャッシュドライブ231に、キャッシュデータCAを復元可能な未使用領域を確保可能か確認する。特定部42は、キャッシュデータCDの復元先に関しても同様に、仮想マシンVMDより優先順位が低い仮想マシンに関するキャッシュデータを優先順位が低い方から順番に削除することによって、キャッシュドライブ221あるいはキャッシュドライブ231に、キャッシュデータCDを復元可能な未使用領域を確保可能か確認する。そして特定部42は、上述の通りに確認した結果に基づいて、キャッシュデータCA及びCDに関して、復元先とするノードを特定する。
図12は、本実施形態に係るクラスタシステム50において、ノード51におけるキャッシュドライブ211とストレージドライブ212とに障害が発生した後のクラスタシステム50のデータ格納状況を例示する図である。
復元部43は、図12に例示する通り、キャッシュデータCAの復元先であるキャッシュドライブ231からキャッシュデータCF、CGを削除する。そして復元部43は、ストレージドライブ222に格納されている冗長分の元データDAを用いて、キャッシュドライブ231にキャッシュデータCAを復元する。
復元部43は、また、図12に例示する通り、キャッシュデータCDの復元先であるキャッシュドライブ221からキャッシュデータCHを削除する。そして復元部43は、ストレージドライブ222に格納されている冗長分の元データDDを用いて、キャッシュドライブ221にキャッシュデータCDを復元する。
図7に示す変更部44は、仮想マシンVMAによるキャッシュデータCAに対するアクセス先を、障害が発生したノード51におけるキャッシュドライブ211から、キャッシュデータCAの復元先であるノード23におけるキャッシュドライブ231に変更する。変更部44は、また、仮想マシンVMDによるキャッシュデータCDに対するアクセス先を、障害が発生したノード51におけるキャッシュドライブ211から、キャッシュデータCDの復元先であるノード22におけるキャッシュドライブ221に変更する。変更部44は、また、仮想マシンVMIによるキャッシュデータCIに対するアクセス先を、障害が発生したノード51におけるキャッシュドライブ211から、ノード53におけるストレージドライブ232における元データDIに変更する。
変更部44は、また、キャッシュドライブ221から削除した、仮想マシンVMHによるキャッシュデータCHに対するアクセス先を、キャッシュドライブ211から、ストレージドライブ222における元データDHに変更する。変更部44は、また、キャッシュドライブ231から削除した、仮想マシンVMF、VMGによるキャッシュデータCF、CGに対するアクセス先を、ストレージドライブ232における元データDF、DGに変更する。
図13は、本実施形態に係るクラスタシステム50において、ノード51に障害が発生した後のノード管理情報451の構成を例示する図である。図13に例示するノード管理情報151によれば、ノード51に関する稼働状況は、障害検出部17によって、「正常」から「異常」に更新されている。そして、ノード52に関するキャッシュドライブ格納データは、変更部44によって、キャッシュデータCB、CE、CHからキャッシュデータCB、CE、CDに更新されている。また、ノード52に関するストレージドライブ格納データは、変更部44によって、元データDA、DDに関して冗長分ではない元データに更新されている。また、ノード53に関するキャッシュドライブ格納データは、変更部44によって、キャッシュデータCC、CF、CGからキャッシュデータCC、CAに更新されている。また、ノード53に関するストレージドライブ格納データは、変更部14によって、元データDIに関して冗長分ではない元データに更新されている。
図14は、本実施形態に係るクラスタシステム50において、ノード51に障害が発生した後の使用状況管理情報453の構成を例示する図である。図14に例示する使用状況管理情報453によれば、キャッシュドライブ221に記憶されるデータがキャッシュデータCHからキャッシュデータCDに更新され、キャッシュドライブ231に記憶されるデータがキャッシュデータCF、CGからキャッシュデータCAに更新されたことに伴い、特定部12よって、キャッシュドライブ221、231の使用状況が更新されている。
次に図15のフローチャートを参照して、本実施形態に係るストレージアクセス制御装置40の動作(処理)について詳細に説明する。
付与部11は、所定のタイミングに、仮想マシンVMA乃至VMIによるキャッシュデータあるいはストレージデータへのアクセス実績に基づいて、仮想マシンVMA乃至VMIの個々に対して優先順位を付与する(ステップS201)。障害検出部17は、ノード51のキャッシュドライブ211に関する障害が発生したことを検出する(ステップS202)。
特定部12は、ノード52及び53のキャッシュドライブ221及び231のうち、キャッシュデータCA及びCDを復元可能な未使用領域を有するものがあるか、それぞれ確認する(ステップS203)。
キャッシュデータCA、CDを復元可能な未使用領域を有するものがある場合(ステップS204でYes)、特定部12は、未使用領域を有するノード52及び53のうち、含まれる仮想マシンの優先順位と、ノード52及び53のキャッシュドライブの使用状況とに基づいて、復元先のノードを特定する(ステップS205)。
キャッシュデータCA、CDを復元可能な未使用領域を有するものがない場合(ステップS204でNo)、特定部12は、ノード52及び53に含まれる仮想マシンの優先順位と、ノード52及び53のキャッシュドライブの使用状況とに基づいて、復元先のノードを特定する(ステップS206)。復元部13は、キャッシュデータCA、CDを格納できるように、復元先のノードから、キャッシュデータを削除する(ステップS207)。
復元部13は、ストレージドライブ222に格納されている元データDA、DDを用いて、復元先のノードにおけるキャッシュドライブに、キャッシュデータCA、CDを復元する(ステップS208)。変更部44は、仮想マシンVMA、VMDによるキャッシュデータCA、CDに関するアクセス先を、キャッシュドライブ211から復元先のキャッシュドライブに変更し(ステップS209)、全体の処理は終了する。
本実施形態に係るストレージアクセス制御装置40は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることができる。その理由は、第1の実施形態について説明した通りである。
また、本実施形態に係るストレージアクセス制御装置40が制御対象とするクラスタシステム50を構成するノードは、第1の実施形態に係るホスト装置30に相当する仮想マシンを含んでいる。付与部41は、例えば、各仮想マシンが、ノード内のキャッシュドライブやストレージドライブに記憶された当該仮想マシンが使用するデータへアクセスした実績に基づいて、仮想マシンごとに優先順位を付与する。そして、特定部42及び復元部43は、上述の通りに付与された優先順位と、各仮想マシンに関するキャッシュデータがキャッシュドライブを使用する状況とに基づいて、第1の実施形態と同様なポリシーを用いて、障害が発生したノードに記憶されていたキャッシュデータを復元する。したがって、本実施形態に係るストレージアクセス制御装置40は、ホスト装置とストレージ装置とを含むノードによって構成されたクラスタシステムを制御する場合において、障害が発生したことによる、当該ホスト装置から当該ストレージ装置に対するアクセス性能の低下を、より適切に抑えることができる。
<第3の実施形態>
図16は、本願発明の第3の実施形態に係るストレージアクセス制御装置60の構成を概念的に示すブロック図である。
本実施形態に係るストレージアクセス制御装置60は、ホスト装置80によるストレージシステム70に対するアクセスを制御する装置である。
ストレージシステム70は、ノード71を複数有する。ノード71は、ストレージドライブ712と、キャッシュドライブ711とを備える。ストレージドライブ712は元データ714を記憶している。キャッシュドライブ711は、元データ714の少なくとも一部をキャッシュデータ713として記憶している。
ストレージシステム70は、ノード71のうちの第一のノード71に関する障害が発生した場合に、ホスト装置80による第一のノード71におけるキャッシュドライブ711へのアクセスが不能となるようなシステムである。
本実施形態に係るストレージアクセス制御装置60は、付与部61、特定部62、復元部63、及び、変更部64を備えている。
付与部61は、ノード71の個々に対して、所定の基準610に基づいて、キャッシュデータ713の存在に関する優先順位611を付与する。
特定部62は、第一のノード71よりも優先順位611が低い、ノード71のうちの第二のノード71を特定する。
復元部63は、第一のノード71におけるキャッシュドライブ711に記憶されていたキャッシュデータ713を、ノード71の少なくともいずれかに記憶されている元データ714を用いて、第二のノード71におけるキャッシュドライブ711に復元する。
変更部64は、ホスト装置80によるアクセス先を、第一のノード71におけるキャッシュドライブ711から、第二のノード71におけるキャッシュドライブ711に変更する。
本実施形態に係るストレージアクセス制御装置60は、クラスタシステムを構成するストレージシステムのキャッシュに障害が発生した場合において、当該ストレージシステムに対するアクセス性能の低下を適切に抑えることができる。その理由は、ストレージアクセス制御装置60は、ノード71の個々に対して優先順位611を付与し、障害が発生したノード71よりも優先順位611が低いノードのいずれかをキャッシュデータ713の復元先のノードに特定し、いずれかのノード71に記憶されていた元データ714を用いて復元先のノード71にキャッシュデータ713を復元するからである。
<ハードウェア構成例>
上述した各実施形態において図1、図7、及び、図16に示したストレージアクセス制御装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、図7、及び、図16において、少なくとも、下記構成は、ソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・付与部11、41、及び61、
・特定部12、42、及び62、
・復元部13、43、及び63、
・変更部14、44、及び64、
・記憶部15における記憶制御機能、
・アクセス実績収集部16及び46、
・障害検出部17。
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図17を参照して説明する。
図17は、本願発明の各実施形態に係るストレージアクセス制御装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図17は、図1、図7、及び、図16に示したストレージアクセス制御装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
図17に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・モニターやスピーカ、キーボード等の入出力インタフェース909。
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
そして、上述した実施形態を例に説明した本願発明は、図17に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1、図7、及び、図16)における上述した構成、或いはフローチャート(図6及び図15)の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。