説明

ディスクアレイ制御装置及び方法並びにプログラム

【課題】物理ディスクの故障や経路の故障により冗長性を失っている場合のデータ損失の危険性を回避し、また、スループットの低下を回避できるようにする。
【解決手段】ホスト装置10からディスクアレイ制御装置11に新たなデータの書き込み要求があると、プロセッサ80は、論理ディスク状態テーブル70及びディスク経路状態テーブル71を確認し、冗長性が確保されている場合には、負荷分散を考慮して、仮想ボリューム50、51内の論理ディスク100に偏り無く分散してデータを配置し、冗長性が無くなっている論理ディスク100に対しては、新たなデータ格納領域としては確保しないようにする。また、定期的な監視デーモンタスクによって、冗長性の無い論理ディスク100上に配置されているデータは、順次、冗長性のある論理ディスク100へとデータを移動させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想化機能を有するディスクアレイを制御するのに用いて好適なディスクアレイ制御装置及び方法並びにプログラムに関する。
【背景技術】
【0002】
アクセス速度の向上や信頼性の向上を図るために、複数の物理ディスクをRAID(Redundant Arrays of Inexpensive Disk)構成とすることが行われている。RAIDタイプには各種のものがあり、アクセス速度を優先するか信頼性を優先するか等に応じて、RAIDのタイプが決定される。また、仮想化機能を有するディスクアレイ装置では、ストレージリソースの利用効率を高めるために、仮想ボリュームが設定できる。例えば特許文献1に示されるように、仮想ボリュームでは、ホスト装置からの要求に応じて、論理ボリュームの記憶領域を動的に割り当てることができる。
【0003】
また、障害が発生する前の正常状態の時に論理ディスクのレプリカを作成しておくことによって、ディスクに障害が発生時にレプリカ側の冗長性を活かして安全にコピー動作を行うものが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−234158号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
仮想化機能を有するディスクアレイ装置においては、負荷分散を考慮して、仮想ボリュームでのデータの配置は、どの論理ディスクに対しても偏り無く規則的に配置していくのが一般的である。ところが、このようにすると、物理ディスクの故障やケーブル等の故障により冗長性を失っている論理ディスクに対しても、データを配置してしまうことになる。ディスクアレイ装置は、冗長性を保つために様々なRAIDタイプの論理ディスクを構成するが、冗長ディスク数以上の物理ディスクが故障すると、論理閉塞状態に陥り、データ損失の危険性が高まることになる。
【0006】
また、高信頼性ディスクアレイ装置では物理ディスクへのアクセス経路を二重化しているのが一般的で、二重化した経路を両方使うことでスループット性能を向上させている。このような構成で、一方の経路に故障が生じると、スループットの低下を招くことになる。
【0007】
また、障害が発生する前の正常状態の時に論理ディスクのレプリカを作成するものでは、レプリカを作成するためには、2倍のディスクリソースを使う必要がある。また、書き込み要求に対しては、正規のディスクとレプリカディスクの両方に書き込みを行わなければならず、運用性能が劣化してしまう。
【0008】
上述の課題を鑑み、本発明は、物理ディスクの故障や経路の故障により冗長性を失っている場合のデータ損失の危険性を回避し、また、スループットの低下を回避できるディスクアレイ制御装置及び方法並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述の課題を解決するために、本発明は、新たなデータの書き込み要求を受けると、論理ディスクの冗長性及び経路の冗長性が確保されているか否かを判定する手段と、論理ディスクの冗長性及び経路の冗長性が確保されている場合には、仮想ボリューム内の論理ディスクに偏り無く分散してデータを配置し、論理ディスクの冗長性又は経路の冗長性を失っている場合には、仮想ボリューム中の冗長性を失っている論理ディスク及び経路の冗長性を失っている経路に繋がる論理ディスク以外の論理ディスクにデータを配置する手段とを備えることを特徴とするディスクアレイ制御装置である。
【0010】
本発明は、新たなデータの書き込み要求を受けると、論理ディスクの冗長性及び経路の冗長性が確保されているか否かを判定し、論理ディスクの冗長性及び経路の冗長性が確保されている場合には、仮想ボリューム内の論理ディスクに偏り無く分散してデータを配置し、論理ディスクの冗長性又は経路の冗長性を失っている場合には、仮想ボリューム中の冗長性を失っている論理ディスク及び冗長性を失っている経路に繋がる論理ディスク以外の論理ディスクにデータを配置することを特徴とするディスクアレイ制御方法である。
【発明の効果】
【0011】
本発明によれば、新たなデータの書き込み要求を受けると、論理ディスクの冗長性及び経路の冗長性が確保されているか否かを判定し、論理ディスク及び経路の冗長性が確保されている場合には、負荷分散を考慮して、仮想ボリューム内の論理ディスクに偏り無く分散してデータを配置し、論理ディスクの冗長性又は経路の冗長性を失っている場合には、仮想ボリューム中の冗長性を失っている論理ディスク及び冗長性を失っている経路に繋がる論理ディスク以外の論理ディスクにデータを配置している。これにより、冗長ディスク数以上の物理ディスク故障により論理ディスクが閉塞状態となることを回避することができる。すなわちデータ損失の危険性を低減することができる。また、経路故障によりスループットが低減している論理ディスクへのデータ配置を回避しているので、性能劣化を防ぐことができる。
【0012】
また、本発明によれば、冗長性の無い論理ディスク上に配置されているデータを、順次、冗長性のある論理ディスクへ移動させる処理を定期的に行うようにしている。このため、ユーザの手間を省き、常に最適なデータ配置状態を保つことができる。
また、本発明によれば、論理ディスクのレプリカを作成する場合と比較してディスクリソースを抑えることができ、また、通常運用における書き込み要求に対しても、性能が劣化することはない。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施形態のディスクアレイ装置の説明に用いるブロック図である。
【図2】本発明の第1の実施形態のディスクアレイ装置における論理ディスク状態テーブルの一例の説明図である。
【図3】本発明の第1の実施形態のディスクアレイ装置における論理ディスクや経路の障害の説明図である。
【図4】本発明の第1の実施形態のディスクアレイ装置におけるディスク経路状態テーブルの一例の説明図である。
【図5】本発明の第1の実施形態のディスクアレイ装置における新規データ格納領域へのデータ格納処理を示すフローチャートである。
【図6】本発明の第1の実施形態のディスクアレイ装置における冗長性の無い論理ディスク上に配置されているデータを冗長性のある論理ディスクへと移動させる処理を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態について図面を参照しながら説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態のディスクアレイ制御装置11の一例を示すものである。図1において、ディスクアレイ制御装置11は、ホストアクセス制御部20、21、22と、プロセッサ80と、論理ディスク状態テーブル70と、ディスク経路状態テーブル71と、データ割当て関連テーブル72と、ディスクアクセス制御部30、31、32とから構成される。
【0015】
ディスクエンクロージャ40、41、42は、複数の物理ディスク90を収納して構成される。RAIDタイプに応じて複数の物理ディスク90から論理ディスク100が構成される。また、複数の論理ディスク100から仮想ボリューム50、51が構成される。
【0016】
つまり、ディスクエンクロージャ40、41、42内の複数の物理ディスク90は、RAID構成とすることにより、ホスト装置10からは、論理ディスク100として扱われる。また、ここでは、物理ボリュームとして3つのディスクエンクロージャ40、41、42からなるストレージデバイスが設けられている。これらのストレージデバイスは、仮想化機能により、2つの仮想ボリューム50、51として扱われる。
【0017】
ホストアクセス制御部20、21、22は、ホスト装置10との間のデータのアクセス制御を行っている。ディスクアクセス制御部30、31、32は、ディスクエンクロージャ40、41、42との間のデータのアクセス制御を行っている。ここでは、ディスクアクセス制御部30、31、32とディスクエンクロージャ40、41、42との間は、それぞれ2系統の経路によって接続されている。すなわち、ディスクアクセス制御部30とディスクエンクロージャ40との間は、経路60及び61によって接続され、ディスクアクセス制御部31とディスクエンクロージャ41との間は、経路62及び63によって接続され、ディスクアクセス制御部32とディスクエンクロージャ42との間は、経路64及び65によって接続されている。このように、物理ディスクへのアクセス経路を二重化することで、スループット性能を向上させている。
【0018】
論理ディスク状態テーブル70は、論理ディスク100の管理を行うためのテーブルである。この論理ディスク状態テーブル70には、論理ディスクと物理ディスクとの関係が含まれている。ディスク経路状態テーブル71は、ディスクアレイ制御装置11とディスクエンクロージャ40、41、42との間を接続する経路60〜65の管理を行うためのテーブルである。このディスク経路状態テーブル71には、論理ディスクと経路との関係が含まれている。データ割当て関連テーブル72は、各ディスクに割り当てるデータの管理を行うためのテーブルである。
【0019】
図2は、論理ディスク状態テーブル70の一例を示すものである。図2(A)に示すように、論理ディスク状態テーブル70は、論理ディスク毎に、RAIDタイプ200、ディスク数201、冗長ディスク数202、冗長パス(経路)数203、物理ディスク番号204、縮退ディスク番号205からなる。
【0020】
論理ディスク状態テーブル70は、論理ディスク若しくは経路状態が変化した際に、プロセッサ80により更新される。例えば、図3に示すように、ディスクエンクロージャ40中の論理ディスク番号「1」に故障が生じたとする。このような物理ディスク90の故障がプロセッサ80により検出されると、論理ディスク状態テーブルの冗長ディスク数202が図2(B)に示すように更新される。
【0021】
図4は、ディスク経路状態テーブル71の一例を示すものである。ディスク経路状態テーブル71は、図4(A)に示すように、経路毎に、その経路に繋がる配下の論理ディスク番号300、冗長経路番号301、冗長経路数302からなる。
【0022】
ディスク経路状態テーブル71は、経路状態若しくは論理ディスク構成が変化した際に、プロセッサ80により更新される。例えば、図3に示すように、ディスクアレイ制御装置11とディスクエンクロージャ41との間の経路63に故障が生じたとする。このような経路63の故障がプロセッサ80により検出されると、ディスク経路状態テーブル71の冗長経路数302が図4(B)に示すように更新される。
【0023】
ディスクアレイ制御装置11のプロセッサ80は、ホスト装置10からのデータ格納要求を受け付けた場合、データ格納領域が既に割当て済みか否かを確認し、未割当ての場合には、新規データ格納領域へのデータ格納処理を行う。このとき、本発明の第1の実施形態では、論理ディスク100の冗長性及び経路の冗長性が確保されているか否かを判定し、論理ディスク100の冗長性及び経路の冗長性が確保されている場合には、負荷分散を考慮して、仮想ボリューム50、51内の論理ディスク100に偏り無く分散してデータを配置し、論理ディスク100の冗長性又は経路の冗長性が確保されている場合には、冗長性が無くなっている論理ディスク100又は冗長性が無くなっている経路に繋がる論理ディスク100を、新たなデータ格納領域として確保しないようにしている。また、定期的な監視デーモンタスクによって、冗長性の無い論理ディスク100及び冗長性を失っている経路に繋がる論理ディスク100上に配置されているデータは順次、冗長性のある論理ディスク100へとデータを移動させるようにしている。
【0024】
図5は、本発明の第1の実施形態において、ホスト装置10からのデータ格納要求を受け付けた場合の新規データ格納領域へのデータ格納処理を示すフローチャートである。
【0025】
図5において、まず、プロセッサ80は、図2に示す論理ディスク状態テーブル70の冗長ディスク数202が「0」でないか、若しくは図4に示すディスク経路状態テーブル71の冗長経路数302が「0」でないかを確認する(ステップ401)。冗長ディスク数202または冗長経路数302が「0」であるデータが存在する場合は、プロセッサ80は、仮想ボリューム内の当該論理ディスク以外の論理ディスクからデータ格納領域を確保する(ステップ402)。冗長ディスク数202又は冗長経路数302が「0」であるデータが存在しない場合は、プロセッサ80は、仮想ボリューム内の全論理ディスクからデータ配置が均等になるように論理ディスクを選択し、データ格納領域を確保する(ステップ403)。確保する領域が決定すると、プロセッサ80は、当該領域にデータを格納する(ステップ404)。
【0026】
また、図6は、定期的な監視デーモンタスクによって、冗長性の無い論理ディスク上に配置されているデータを冗長性のある論理ディスクへと移動させる処理を示すフローチャートである。
【0027】
図6において、まず、監視デーモンタスクがタイマによって一定間隔で起床すると(ステップ501)、冗長性が無い論理ディスク又は冗長性が無い経路につながる論理ディスクの存在を確認する(ステップ502)。冗長性が無い論理ディスク又は冗長性が無い経路につながる論理ディスクが存在した場合は、プロセッサ80は、当該論理ディスク上に既に格納済みデータが有るかを確認する(ステップ503)。格納済みデータが有る場合、プロセッサ80は、データ整合性の保つため当該データ領域をロックし(ステップ504)、該当論理ディスク上のデータを読み出し、冗長性のある論理ディスク上にデータをコピーし、データ割当て管連テーブルを更新する(ステップ505)。そして、プロセッサ80は、当該データ領域のロックを外し(ステップ506)、処理を終了する。これを一定時間毎に繰り返すことにより、冗長性の無い論理ディスクからデータが無くなり、冗長性のある論理ディスクが当該データを格納することになる。
【0028】
上述のように、本発明の第1実施形態のディスクアレイ制御装置11では、論理ディスク100の管理を行うための論理ディスク状態テーブル70と、経路60、61、62の管理を行うためのディスク経路状態テーブル71とが設けられている。論理ディスク状態テーブル70は物理ディスク90が故障が検知されると随時更新され、ディスク経路状態テーブル71は経路63の故障が検知されると随時更新される。
【0029】
ホスト装置10からディスクアレイ制御装置11に新たなデータの書き込み要求があると、プロセッサ80は、論理ディスク状態テーブル70及びディスク経路状態テーブル71を確認し、冗長性が確保されている場合には、負荷分散を考慮して、仮想ボリューム50、51内の論理ディスク100に偏り無く分散してデータを配置し、冗長性が確保されていない場合には、冗長性が無くなっている論理ディスク100又は冗長性が無くなっている経路に繋がる論理ディスク100を、新たなデータ格納領域として確保しないようにしている。
【0030】
また、定期的な監視デーモンタスクによって、冗長性の無い論理ディスク100又は冗長性の無い経路に繋がる論理ディスク100上に配置されているデータは、順次、冗長性のある論理ディスク100へとデータを移動させるようにしている。このように、本発明の第1の実施形態では、常に冗長性のある論理ディスクにデータを配置するように制御しているので、データ信頼性の低下や性能劣化を防ぐことができる。
【0031】
また、本発明の第1に実施形態では、冗長性の無い論理ディスク上に配置されているデータを、順次、冗長性のある論理ディスクへ移動させる処理を定期的に行うようにしている。このため、ユーザの手間を省き、常に最適なデータ配置状態を保つことができる。また、本発明によれば、論理ディスクのレプリカを作成する場合と比較してディスクリソースを抑えることができ、また、通常運用における書き込み要求に対しても、性能が劣化することはない。
【0032】
<第2の実施形態>
本発明の第2の実施形態として、その基本的構成は第1の実施形態と同様であるが、実体容量以上の仮想ボリュームを構築でき、実体容量が必要になった時点でディスクを増設する機能すなわちシンプロビジョにング機能を備えたディスクアレイ装置についても、本発明のデータ配置アルゴリズムを適用できる。この場合に、データ信頼性の向上・性能劣化の防止という効果が得られる。
【0033】
なお、上述の実施形態では、ディスクアレイ制御装置11をホスト装置10とは別のハードウェアで構成しているが、ディスクアレイ制御装置11をホスト装置10内に組み込むようにしても良い。また、ディスクアレイ制御装置11の処理は、コンピュータプログラムによりソフトウェアで実現しても良い。
【0034】
本発明は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【符号の説明】
【0035】
10 ホスト装置
11 ディスクアレイ制御装置
20 ホストアクセス制御部
30 ディスクアクセス制御部
40 ディスクエンクロージャ
50、51 仮想ボリューム
60〜65 経路
70 論理ディスク状態テーブル
71 ディスク経路状態テーブル
72 データ割当て関連テーブル
80 プロセッサ
90 物理ディスク
100 論理ディスク

【特許請求の範囲】
【請求項1】
新たなデータの書き込み要求を受けると、論理ディスクの冗長性及び経路の冗長性が確保されているか否かを判定する手段と、
前記論理ディスクの冗長性及び経路の冗長性が確保されている場合には、仮想ボリューム内の論理ディスクに偏り無く分散してデータを配置し、前記論理ディスクの冗長性又は経路の冗長性を失っている場合には、前記仮想ボリューム中の前記冗長性を失っている論理ディスク及び前記経路の冗長性を失っている経路に繋がる論理ディスク以外の論理ディスクにデータを配置する手段と
を備えることを特徴とするディスクアレイ制御装置。
【請求項2】
さらに、前記冗長性を失っている論理ディスク及び前記冗長性を失っている経路に繋がる論理ディスク上に配置されているデータを、順次、冗長性のある論理ディスクへ移動させる処理を定期的に行う手段を有することを特徴とする請求項1に記載のディスクアレイ制御装置。
【請求項3】
さらに、論理ディスクと物理ディスクとの関係を含む論理ディスク状態テーブルを有し、
前記論理ディスク状態テーブルにより、前記論理ディスクの冗長性が確保されているか否かを判定し、
物理ディスクの故障が検知されると、前記論理ディスク状態テーブルが更新される
ことを特徴とする請求項1又は2に記載のディスクアレイ制御装置。
【請求項4】
さらに、論理ディスクと経路との関係を含むディスク経路状態テーブルを有し、
前記ディスク経路状態テーブルにより、前記経路の冗長性が確保されているか否かを判定し、
経路の故障が検知されると、前記ディスク経路状態テーブルが更新される
ことを特徴とする請求項1から3の何れかに記載のディスクアレイ制御装置。
【請求項5】
請求項1から4の何れかに記載したディスクアレイ制御装置をコンピュータで実現させることを特徴とするコンピュータプログラム。
【請求項6】
新たなデータの書き込み要求を受けると、論理ディスクの冗長性及び経路の冗長性が確保されているか否かを判定し、
前記論理ディスクの冗長性及び経路の冗長性が確保されている場合には、仮想ボリューム内の論理ディスクに偏り無く分散してデータを配置し、前記論理ディスクの冗長性又は経路の冗長性を失っている場合には、前記仮想ボリューム中の前記冗長性を失っている論理ディスク及び前記冗長性を失っている経路に繋がる論理ディスク以外の論理ディスクにデータを配置する
ことを特徴とするディスクアレイ制御方法。
【請求項7】
さらに、前記冗長性を失っている論理ディスク及び前記冗長性を失っている経路に繋がる論理ディスク上に配置されているデータを、順次、冗長性のある論理ディスクへ移動させる処理を定期的に行うことを特徴とする請求項6に記載のディスクアレイ制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−256975(P2010−256975A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−103058(P2009−103058)
【出願日】平成21年4月21日(2009.4.21)
【出願人】(390001395)NECシステムテクノロジー株式会社 (438)
【Fターム(参考)】