(57)【要約】【課題】  論理ディスクに使用されるいずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下を緩和することができる制御装置を提供する。【解決手段】  本発明の制御装置は、１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出する監視手段と、前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する拡張手段とを備える。【選択図】      図１１
2015170272.tif 000002
【特許請求の範囲】
【請求項１】
１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出する監視手段と、
前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する拡張手段と
を備える制御装置。
【請求項２】
前記拡張手段は、前記高負荷状態が検出された前記ストレージプールに使用されている前記１個以上の物理ディスクの少なくとも一部から、格納されているデータの一部を、前記追加された物理ディスクに移動させる
請求項１に記載の制御装置。
【請求項３】
前記監視手段は、前記ストレージプールに使用される前記１個以上の物理ディスクのうち、負荷が前記基準を超える前記物理ディスクである高負荷物理ディスクの存在を検出することにより、検出した高負荷物理ディスクが使用されている前記ストレージプールにおける前記高負荷状態を検出する
請求項１又は２に記載の制御装置。
【請求項４】
前記ストレージプールに使用される前記物理ディスクと、請求項１乃至３のいずれかに記載の制御装置とを含むストレージシステム。
【請求項５】
１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出し、
前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する
制御方法。
【請求項６】
前記高負荷状態が検出された前記ストレージプールに使用されている前記１個以上の物理ディスクの少なくとも一部から、格納されているデータの一部を、前記追加された物理ディスクに移動させる
請求項５に記載の制御方法。
【請求項７】
前記ストレージプールに使用される前記１個以上の物理ディスクのうち、負荷が前記基準を超える前記物理ディスクである高負荷物理ディスクの存在を検出することにより、検出した高負荷物理ディスクが使用されている前記ストレージプールにおける前記高負荷状態を検出する
請求項５又は６に記載の制御方法。
【請求項８】
コンピュータを、
１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出する監視手段と、
前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する拡張手段と
して動作させる制御プログラム。
【請求項９】
コンピュータを、
前記高負荷状態が検出された前記ストレージプールに使用されている前記１個以上の物理ディスクの少なくとも一部から、格納されているデータの一部を、前記追加された物理ディスクに移動させる前記拡張手段と
して動作させる請求項８に記載の制御プログラム。
【請求項１０】
コンピュータを、
前記ストレージプールに使用される前記１個以上の物理ディスクのうち、負荷が前記基準を超える前記物理ディスクである高負荷物理ディスクの存在を検出することにより、検出した高負荷物理ディスクが使用されている前記ストレージプールにおける前記高負荷状態を検出する前記監視手段と
して動作させる請求項８又は９に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクを制御する技術に関する。
【背景技術】
【０００２】
特許文献１には、それぞれ性能の異なる記憶領域により構成される複数のプールが仮想ボリュームに割り当てられるストレージシステムを管理する管理装置が記載されている。特許文献１に記載されている管理装置は、単位時間当たりのアクセス数が多い記憶領域からデータを移行する、単位時間当たりのアクセス数が少ない記憶領域を選出する。
【０００３】
特許文献２には、上位システムのアクセス対象に、プールボリュームから記憶容量を割り当てる計算機システムが記載されている。特許文献２に記載の計算機システムは、アクセス対象にライトが発生すると、アクセス対象のライト領域に、プールボリュームから記憶容量を割り当てる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２２１６６０号公報
【特許文献２】ＷＯ２０１１／１３５６３５
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の管理装置は、アクセスが多いプールに格納されているデータを、他のプールに移す。移されたデータに対するアクセスが多い場合、そのデータの移行によって、データが移されたプールへのアクセスは、移行前と同様に多くなる。移行前に負荷が高かった物理ディスクの負荷が軽減されたとしても、移行後には他の物理ディスクの負荷が高くなる。従って、いずれかの物理ディスクの負荷が高い状態は緩和されない。すなわち、特許文献１の管理装置は、物理ディスクに性能の差がない場合、いずれかの物理ディスクの負荷が高いことによる、ストレージシステム全体の性能低下を軽減することはできない。
【０００６】
特許文献２の計算機システムは、プールボリュームに負荷が高い物理ディスクが存在する場合に、プールボリュームを構成する物理ディスクの負荷を軽減することはできない。
【０００７】
本発明の目的の一つは、論理ディスクに使用されるいずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下を緩和することができる制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の制御装置は、１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出する監視手段と、前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する拡張手段とを備える。
【０００９】
本発明の制御方法は、１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールの負荷が基準を超える高負荷状態を検出し、前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する。
【００１０】
本発明の制御プログラムは、コンピュータを、１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出する監視手段と、前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する拡張手段として動作させる。
【発明の効果】
【００１１】
本発明には、論理ディスクに使用されるいずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下を緩和することができるという効果がある。
【図面の簡単な説明】
【００１２】
【図１】図１は、第１の実施形態の情報処理システム１００の構成の例を表すブロック図である。
【図２】図２は、制御情報記憶部２が記憶するデータの例を表すブロック図である。
【図３】図３は、各ホスト装置と、各論理ディスクと、仮想プールとの関係を模式的に表す図である。
【図４】図４は、シンプロビジョニングの技術が適用されている場合における、各論理ディスクに対する仮想プール２０の記憶領域の割り当ての例を模式的に表すブロック図である。
【図５】図５は、仮想プールに対する各実ディスクの記憶領域の割り当ての例を模式的に表す図である。
【図６】図６は、設定値管理テーブル３２４の一例を表す図である。
【図７】図７は、第１の実施形態の制御装置３０の、仮想プールの記憶領域を拡張する動作の一例を表すフローチャートである。
【図８】図８は、仮想プールの拡張の例を模式的に表す図である。
【図９】図９は、拡張された仮想プールの記憶領域を模式的に表す図である。
【図１０】図１０は、仮想プールの拡張が行われた場合における、仮想プールに対する実ディスクの記憶領域の割り当ての一例を模式的に表すブロック図である。
【図１１】図１１は、第２の実施形態の制御装置３０Ａの構成の例を表すブロック図である。
【図１２】図１２は、制御装置３０、及び制御装置３０Ａを実現することができる、コンピュータ１０００の構成の一例を表す図である。
【発明を実施するための形態】
【００１３】
次に、実施形態に基づいて本発明について説明する。
【００１４】
＜第１の実施形態＞
まず、本発明の第１の実施形態について、図面を参照して詳細に説明する。
【００１５】
図１は、本実施形態の情報処理システム１００の構成の例を表すブロック図である。図１を参照すると、情報処理システム１００は、ストレージ装置１と、ホスト装置とを含む。図１に記載されているホスト装置は、ホスト装置５０、ホスト装置５１、・・・、ホスト装置５ｎである。ホスト装置の数は１台以上であればよい。各ホスト装置は、通信ネットワークを介して、ストレージ装置１に接続されている。各ホスト装置は、通信ネットワークを介して、ストレージ装置１にアクセスすることができる。
【００１６】
ストレージ装置１は、ストレージコントローラ１０と、ディスクアレイ２とを含む。
【００１７】
ディスクアレイ２は、複数の実ディスクを含む。実ディスクは、例えば、１つの物理ディスクである。物理ディスクは、例えば、ハードディスク装置や、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等である。実ディスクは、例えばＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）５などの技術に基づき、複数の物理ディスクを組み合わせて構築される仮想的な記憶装置であってもよい。図１に示す例では、ディスクアレイ２が含む複数の実ディスクは、実ディスク２００ａ〜実ディスク２００ｅと、実ディスク２０１ａ〜実ディスク２０１ｅと、実ディスク２１０と、実ディスク２１１とである。図１に示す例では、実ディスク２００ａ〜実ディスク２００ｅは、仮想プール２０として運用されている。同様に、実ディスク２０１ａ〜実ディスク２０１ｅは、仮想プール２１として運用されている。仮想プールは、複数の実ディスクを組み合わせて実現される、論理的な記憶領域である。仮想プールは、ストレージプール、あるいは記憶域プールとも表記される。実ディスク２１０及び実ディスク２１１は、いずれの仮想プールにも属していない。本発明の各実施形態の説明では、いずれの仮想プールにも属していない実ディスクを、「未使用装置」と表記することにする。図１に示す例では、実ディスク２１０及び実ディスク２１１は、未使用装置２２として描かれている。
【００１８】
ストレージ装置１は、ストレージ装置１が含む各部によって、各ホスト装置が発行する入力命令に応じて、ディスクアレイ２が含む各実ディスクへのデータの書き込みを行う。ストレージ装置１は、ストレージ装置１が含む各部によって、各ホスト装置が発行する出力命令に応じて、ディスクアレイ２が含む各実ディスクからのデータの読み出しを行う。
【００１９】
ストレージコントローラ１０は、ディスクアレイ２に含まれる各実ディスクに接続されている。ストレージコントローラ１０は、ディスクアレイ２に含まれる各実ディスクにアクセスすることができる。そして、ストレージコントローラ１０は、それらの実ディスクを使用して構成されている、上述の各仮想プールにアクセスすることができる。
【００２０】
ストレージコントローラ１０は、制御装置３０と、制御情報記憶部３２と、ホストコントローラ３００と、ユーザデータ記憶部３１０と、ディスクコントローラ３０７とを含む。
【００２１】
ストレージコントローラ１０は、ホストコントローラ３００と、ホストコントローラ３００が接続されている通信ネットワークを介して、各ホスト装置に接続されている。ホストコントローラ３００は、各ホスト装置と制御装置３０との間の通信を制御する。例えば、ホストコントローラ３００は、各ホスト装置が発行する入力命令及び出力命令を受信し、受信した入力命令及び出力命令を制御装置３０に送信する。ホストコントローラ３００は、ホスト装置が制御装置３０に送信するデータを受信し、そのデータを制御装置３０に送信する。ホストコントローラ３００は、制御装置３０がいずれかのホスト装置に送信するデータを受信し、送信先のホスト装置にその受信したデータを送信する。
【００２２】
制御装置３０は、ディスクアレイ制御部３０１と、設定管理部３０２と、未使用装置特定部３０３と、監視部３０４と、アラーム送信部３０５と、拡張部３０６とを含む。制御装置３０は、制御装置３０が含む構成要素によって、ストレージ装置１全体の管理及び制御を行う。制御装置３０は、さらに、制御情報記憶部３２を含んでいてもよい。
【００２３】
ディスクコントローラ３０７は、ストレージ装置１が含む実ディスクと、制御装置３０との間の通信を中継する。
【００２４】
ディスクアレイ制御部３０１は、ストレージ装置１に対する書き込みデータや、読み出しデータに対して、例えば上述のＲＡＩＤ５の技術に基づく制御を行う。その場合、ディスクアレイ制御部３０１は、受信したデータをディスクアレイ２に書き込みにおいて、そのデータのストライピングを行う。ディスクアレイ制御部３０１は、ディスクアレイ２からデータを読み出しにおいて、データの合成を行なう。
【００２５】
ディスクアレイ制御部３０１は、データの入力命令や出力命令などのアクセス命令により、アクセスされるアクセス先を制御する。すなわち、ホスト装置が発行するアクセス命令におけるアクセス先のアドレスと、実際にアクセスされる物理ディスクにおけるアクセス先のアドレスとの変換を行う。
【００２６】
以上により、ディスクアレイ制御部３０１は、各ホスト装置に対して、論理ディスクを提供する。論理ディスクは、各ホスト装置がディスクドライブとしてアクセスすることができる論理的なディスクである。論理ディスクには、仮想プールに含まれる記憶領域が割り当てられる。論理ディスクに書き込まれたデータは、データが書き込まれた領域に割り当てられている、仮想プールの記憶領域に書き込まれる。仮想プールは、複数の実ディスクを使用して実現される。
【００２７】
ディスクアレイ制御部３０１によって、アクセス命令によるアクセス先のアドレスが仮想化される。アクセス先のアドレスの仮想化によって、後で詳細に説明するシンプロビジョニングの機能が実現される。後述される、制御情報記憶部３２に格納される論理ディスク情報管理テーブル３２１に、例えば、実ディスクのアドレスとホスト装置が送信するアクセス命令におけるアクセス先のアドレスとを関連付ける論理ディスク情報が記録される。
【００２８】
設定管理部３０２は、例えばホスト装置のいずれかがストレージ装置１に対して行ったしきい値や他の設定値を受信する。そして、設定管理部３０２は、受信した設定に応じて設定を行う。設定管理部３０２については、後で詳細に説明する。
【００２９】
未使用装置特定部３０３は、ディスクアレイ２に含まれる未使用の実ディスクである未使用装置を特定する。未使用装置特定部３０３については、後で詳細に説明する。
【００３０】
監視部３０４は、仮想プール毎に、仮想プールの状態が、負荷が所定の基準より高い状態である高負荷状態であるか否かを判定する。本実施形態では、高負荷状態は、仮想プールに使用されるいずれかの物理ディスクの負荷が、所定の基準より高い状態であることを表す。例えば、監視部３０４は、ディスクアレイ２に含まれる各物理ディスクの負荷を監視する。そして、監視部３０４は、監視の結果に基づき、仮想プールの負荷が所定の基準より高い高負荷状態であるか否かを判定する。負荷が所定の基準より高い物理ディスクを、以下の説明において、高負荷物理ディスクと表記することにする。監視部３０４は、仮想プールに使用されている物理ディスクに、高負荷物理ディスクが含まれている場合、その仮想プールは高負荷状態であると判定する。なお、監視部３０４は、仮想プールの負荷を、他の指標に基づいて計測してもよい。
【００３１】
監視部３０４は、物理ディスクの負荷を表す値として、例えば、後述されるディスクビジー率を測定すればよい。監視部３０４は、例えばディスクビジー率を所定の閾値と比較することによって、測定された負荷が所定の基準より高いか否かを判定すればよい。監視部３０４は、例えば、測定されたディスクビジー率が、所定の閾値を超えた物理ディスクが、高負荷状態であると判定すればよい。その所定の閾値は、後述される、アラーム発生閾値である。物理ディスクの負荷を表す値は、他の値であってもよい。
【００３２】
拡張部３０６は、仮想プールが高負荷状態である場合、例えば仮想プールに未使用装置を組み込むことによって、仮想プールの容量を拡張する。
【００３３】
アラーム送信部３０５は、高負荷状態が検出された場合、例えば、高負荷物理ディスクが使用されている仮想プールから記憶領域が割り当てられている論理ディスクを使用するホスト装置に対して、アラームを送信する。
【００３４】
ユーザデータ記憶部３１０は、各ホスト装置が論理ディスクに書き込んだデータのキャッシュを記憶する。ユーザデータ記憶部３１０は、例えばキャッシュメモリによって実現される。
【００３５】
制御情報記憶部３２は、各論理ディスク、各仮想プール、及び各実ディスクの少なくともいずれかの、設定及び状態の少なくともいずれかを記憶する。制御情報記憶部３２は、例えばキャッシュメモリによって実現される。
【００３６】
図２は、制御情報記憶部２が記憶するデータの例を表すブロック図である。図２を参照すると、制御情報記憶部２は、論理ディスク情報管理テーブル３２１と、プール情報管理テーブル３２２ａ〜プール情報管理テーブル３２２ｎと、物理ディスク情報管理テーブル３２３ａ〜物理ディスク情報管理テーブル３２３ｎと、設定値管理テーブル３２４を記憶する。
【００３７】
上述のように、論理ディスク情報管理テーブル３２１には、実ディスクのアドレスとホスト装置が送信するアクセス命令におけるアクセス先のアドレスとを関連付ける論理ディスク情報が記録される。論理ディスク情報管理テーブル３２１には、例えば、論理ディスクにおける記憶領域と、その記憶領域に割り当てられている仮想プールにおける記憶領域を関連付ける設定値が記録されていてもよい。
【００３８】
各プール情報管理テーブルには、例えば、いずれかの仮想プールにおいて、仮想プールに含まれる記憶領域と、その記憶領域が割り当てられている論理ディスクの領域とを関連付ける設定値が記録されていればよい。
【００３９】
各物理ディスク情報管理テーブルには、例えば、それぞれの物理ディスクの状態及び性能を表すデータ値が記録されている。
【００４０】
設定値管理テーブル３２４には、例えば、各物理ディスクの負荷の高さを判定する場合に、基準として使用されるしきい値が記録されている。設定値管理テーブル３２４については、後で詳細に説明する。
【００４１】
図３は、各ホスト装置と、各論理ディスクと、仮想プールとの関係を模式的に表す図である。各ホスト装置は、論理ディスクに対してアクセスを行う。図３に示す例では、ホスト装置５０とホスト装置５１とが、論理ディスク２５０、論理ディスク２５１、・・・、及び論理ディスク２５ｎのいずれかににアクセスする。各論理ディスクには、仮想プールの領域が割り当てられる。図３に示す例では、仮想プール２０の記憶領域が、各論理ディスクに割り当てられる。各論理ディスクに書き込まれたデータは、書き込み先である記憶領域に割り当てられている、仮想プールの記憶領域に書き込まれる。各論理ディスクから読み出されるデータは、読み出し先である記憶領域に割り当てられている、仮想プールの記憶領域から読み出される。図３に示す例では、いずれかの論理ディスクに対して、例えばデータの読み出し又はデータの書き込みであるアクセスが行われると、各論理ディスクに領域が割り当てられている仮想プール２０に格納されているデータに対して、読み出しや書き込みが行われる。
【００４２】
図４は、シンプロビジョニングの技術が適用されている場合における、各論理ディスクに対する仮想プール２０の記憶領域の割り当ての例を模式的に表すブロック図である。図４において、各論理ディスクの、実線によって囲まれている領域が、仮想プール２０の記憶領域が割り当てられている記憶領域である割り当て済み領域を表す。各論理ディスクの、破線によって囲まれている領域が、仮想プール２０の記憶領域が割り当てられていない記憶領域である未割り当て領域を表す。図４に示すように、シンプロビジョニングの技術が適用されている場合、各論理ディスクの設定されている容量全体に、仮想プール２０から記憶領域が割り当てられる必要はない。各論理ディスクの、例えば、いずれかのホスト装置がアクセスした領域である、一部の領域に、仮想プール２０から記憶領域が割り当てられる。なお、仮想プール２０の記憶領域のうち、いずれかの論理ディスクに割り当てられている記憶領域が、使用領域である。また、なお、仮想プール２０の記憶領域のうち、いずれの論理ディスクにも割り当てられていない記憶領域が、未使用領域である。
【００４３】
図５は、仮想プールに対する各実ディスクの記憶領域の割り当ての例を模式的に表す図である。仮想プールの記憶領域は、例えば図５に示すように、各実ディスクに分散して割り当てられる。図５に示す例では、例えば、仮想プールのＡ０という符号が付与されている記憶領域が実ディスクの数に等分割された各領域に、いずれかの実ディスクの、Ａ０という符号が付与されている記憶領域が割り当てられる。同様に、付与されている符号がＡ１〜Ａ４である仮想プールの各記憶領域に対して、実ディスクの同じ番号が付与された記憶領域が割り当てられる。
【００４４】
次に、設定値管理テーブル３２４について、図面を参照して詳細に説明する。
【００４５】
図６は、設定値管理テーブル３２４の一例を表す図である。設定値管理テーブル３２４には、図６に例示するように、各物理ディスクに対して、物理ディスク番号と、実ディスク番号と、アラーム送信閾値と、ディスクビジー率と、プール番号と、拡張対象フラグが記録される。
【００４６】
物理ディスク番号は、物理ディスクに付与されている番号である。物理ディスク番号は、例えば、物理ディスクの識別子である。
【００４７】
実ディスク番号は、物理ディスクが使用されている実ディスクの番号である。実ディスク番号は、例えば、実ディスクの識別子である。図６に示す例では、１個の物理ディスクが１個の実ディスクに使用される。そして、実ディスクの実ディスク番号番号と、その実ディスクに使用される物理ディスクの物理ディスク番号は同じである。
【００４８】
アラーム送信閾値は、後述されるディスクビジー率に対する閾値である。アラーム送信閾値は、例えば、仮想プールが生成された際に、設定管理部３０２により、例えばストレージ装置１の設計者によってあらかじめ決められた値に設定されてもよい。アラーム送信閾値は、例えば、いずれかのホスト装置を介して、ホスト装置のユーザによる指示に基づいて、設定管理部３０２により設定されてもよい。
【００４９】
ディスクビジー率は、物理ディスクの負荷の高さを表す指標である。本実施形態では、ディスクビジー率は、例えば、所定時間における物理ディスクへのＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）応答時間の総和である。ディスクビジー率は、監視部３０４により検出される。
【００５０】
監視部３０４は、各物理ディスクのディスクビジー率を測定する。そして、監視部３０４は、測定したディスクビジー率を、物理ディスク毎に、設定値管理テーブル３２４に記録する。監視部３０４は、測定したディスクビジー率が、アラーム送信閾値を上回る物理ディスクが存在する場合、その物理ディスクの、後で詳しく述べる拡張対象フラグを、例えば「１」に変更する。
【００５１】
プール番号は、物理ディスクが使用される仮想プールに付与されているプール番号を表す。プール番号は、例えば、仮想プールの識別子である。物理ディスクが使用される仮想プールは、より詳細には、物理ディスクが使用される実ディスクの記憶領域が割り当てられている仮想プールである。設定値管理テーブル３２４に含まれるプール番号は、例えば、仮想プール作成時に、設定管理部３０２によって設定される。
【００５２】
拡張対象フラグは、物理ディスクが使用される仮想プールが、拡張の対象であるか否かを表すフラグである。拡張対象フラグの初期値は、拡張の対象ではないことを表す値である、例えば「０」である。そして、監視部３０４が、ディスクビジー率がアラーム送信閾値を超える物理ディスクである高負荷物理ディスクを検出した場合、監視部３０４は、検出された高負荷物理ディスクの拡張対象フラグを、拡張の対象であることを表す値である、例えば「１」に変更する。拡張の対象ではないことを表す値と、拡張の対象であることを表す値は、互いに異なる値であれば、他の値であってもよい。以下の説明において、拡張の対象であることを表す、拡張対象フラグの値を、「１」と表記することにする。同様に、拡張の対象でないことを表す、拡張対象フラグの値を、「０」と表記することにする。
【００５３】
アラーム送信部３０５は、いずれかの物理ディスクの拡張対象フラグが「１」になった場合、ホスト装置に対して、アラームを送信する。アラーム送信部３０５は、例えば、拡張対象フラグが「１」になった物理ディスクが使用される仮想プールから記憶領域が割り当てられている論理ディスクを使用しているホスト装置に対して、アラームを送信すればよい。アラームを受信したホスト装置は、例えば、物理ディスクの性能が低下していることを表す表示を、そのホスト装置の表示部（図示されない）に表示すればよい。
【００５４】
拡張部３０６は、いずれかの物理ディスクの拡張対象フラグが「１」になった場合、未使用装置特定部３０３に、その物理ディスクが使用される仮想プールに追加することが可能な、未使用である実ディスクを要求する。
【００５５】
未使用装置特定部３０３は、拡張対象フラグが「１」になった物理ディスクが使用される仮想プールに追加することが可能な、未使用である実ディスクを特定する。未使用である実ディスクは、いずれの仮想プールにも使用されておらず、ホットスペアの対象にもなっていない実ディスクである。仮想プールに使用可能な実ディスクは、例えば、記憶容量がその仮想プールに使用できる条件に合致する実ディスクである。
【００５６】
拡張部３０６は、未使用装置特定部３０３が特定した実ディスクを使用して、拡張対象フラグが「１」になった物理ディスクが使用される仮想プールに記憶領域を拡張する。すなわち、拡張部３０６は、未使用装置特定部３０３が特定した実ディスクを、拡張対象フラグが「１」になった物理ディスクが使用される仮想プールに追加する。拡張部３０６は、拡張対象フラグが「１」である物理ディスクが使用される仮想プールに記憶領域を拡張した後、その物理ディスクの拡張フラグを「０」に変更してもよい。以下の動作の説明に記載されているように、監視部３０４が、拡張フラグが「１」である物理ディスクの負荷が基準を下回ることを拡張後に検出した場合に、その物理ディスクの拡張フラグを「０」に変更してもよい。
【００５７】
次に、本実施形態の制御装置３０の動作について、図面を参照して詳細に説明する。
【００５８】
図７は、本実施形態の制御装置３０の、仮想プールの記憶領域を拡張する動作の一例を表すフローチャートである。
【００５９】
ストレージ装置１が動作を開始すると、制御装置３０は図７に示す動作を開始する。
【００６０】
まず、監視部３０４が、仮想プール毎に、高負荷状態を検出する（ステップＳ１０１）。前述のように、監視部３０４は、仮想プールに使用されるいずれかの物理ディスクが高負荷物理ディスクである場合に、その仮想プールの高負荷状態を検出すればよい。前述のように、監視部３０４は、各物理ディスクの負荷を表す値として、例えばディスクビジー率を測定する。そして、監視部３０４は、ディスクビジー率が、ディスクビジー率に対する閾値であるアラーム発生閾値を上回る物理ディスクを検出する。前述のように、各物理ディスクに対するアラーム発生閾値は、設定値管理テーブル３２４に記録されている。監視部３０４は、各物理ディスクのアラーム発生閾値として、設定値管理テーブル３２４において、その物理ディスクの物理ディスク番号に関連付けられているアラーム発生閾値を使用すればよい。本実施形態では、ディスクビジー率がアラーム発生閾値を上回る物理ディスクが、高負荷物理ディスクである。監視部３０４は、検出された高負荷物理ディスクが使用されている仮想プールを特定する。前述のように、設定値管理テーブル３２４には、各物理ディスクが使用される仮想プールのプール番号が記録されている。
【００６１】
いずれの仮想プールにおいても高負荷状態が検出されない場合（ステップＳ１０２においてＮｏ）、制御装置３０の動作は、ステップＳ１０１に戻る。そして、制御装置３０は、各物理ディスクの負荷の監視を続ける。
【００６２】
いずれかの仮想プールにおいて高負荷状態が検出された場合（ステップＳ１０２においてＹｅｓ）、アラーム送信部３０５は、高負荷状態が検出された仮想プールの記憶領域が割り当てられている論理ディスクを特定する。各仮想プールには、いずれかのプール情報管理テーブルが関連付けられている。前述のように、プール情報管理テーブルにおいて、仮想プールの記憶領域と、その記憶領域が割り当てられている論理ディスクの記憶領域とが、関連付けられている。アラーム送信部３０５は、高負荷状態が検出された仮想プールに関連付けられているプール情報管理テーブルにおいて、その仮想プールの記憶領域が割り当てられている論理ディスクを特定すればよい。そして、アラーム送信部３０５は、特定された論理ディスクを使用する各ホスト装置に対して、アラームを送信する。論理ディスクと、その論理ディスクを使用するホスト装置との関係は、例えば、論理ディスク情報管理テーブル３２１に記録されていればよい。アラーム送信部３０５は、全てのホスト装置に対してアラームを送信してもよい。
【００６３】
そして、拡張部３０６は、高負荷状態が検出された仮想プールに使用することができる未使用の実ディスクを、未使用装置特定部３０３に要求する。
【００６４】
未使用装置特定部３０３は、高負荷状態が検出された仮想プールに使用することができる未使用の実ディスクを特定する（ステップＳ１０４）。
【００６５】
拡張部３０６は、特定された未使用の実ディスクを用いて、高負荷状態が検出された仮想プールを拡張する（ステップＳ１０５）。
【００６６】
図８は、仮想プールの拡張の例を模式的に表す図である。図８の上段によって表される、拡張前の仮想プール２０は、実ディスク２００ａ〜実ディスク２００ｅを使用して構築されている。例えば、図６に示す例のように、実ディスク２００ａとして動作する物理ディスク２００ａのディスクビジー率がアラーム発生閾値を超えた場合、監視部３０４は、物理ディスク２００ａの拡張対象フラグを「１」に変更する。そして、監視部３０４は、物理ディスク２００ａが使用されている仮想プール２０が高負荷状態であることを検出する。
【００６７】
仮想プール２０が高負荷状態であることが検出されると、未使用装置特定部３０３は、仮想プール２０に使用することができる未使用実ディスクを特定する。図８に示す例では、未使用装置特定部３０３は、一つ目の未使用実ディスクとして、実ディスク２１０が特定する。
【００６８】
拡張部３０６は、図８の中段によって表される例では、特定された実ディスク２１０を使用して、仮想プール２０を拡張する。
【００６９】
未使用実ディスクを使用して仮想プールを拡張しても、その仮想プールが高負荷状態であることが検出される場合、未使用装置特定部３０３は、新たに別の未使用ディスクを特定する。例えば、実ディスク２１０を使用して仮想プール２０を拡張しても、仮想プール２０が高負荷状態であることが検出される場合、未使用装置特定部３０３は、仮想プール２０に使用することができる、さらに別の未使用実ディスクを特定する。図８に示す例では、実ディスク２１１が、未使用装置特定部３０３により、仮想プール２０に使用することができる未使用実ディスクとして特定された、さらに別の未使用実ディスクである。
【００７０】
拡張部３０６は、図８の下段によって表される例では、特定された実ディスク２１１を使用して、仮想プール２０を拡張する。以下の説明において、例えば、実ディスク２１０を使用して仮想プール２０を拡張することを、「仮想プール２０に実ディスク２１０を追加する」と表記することにする。
【００７１】
拡張部３０６は、追加した実ディスクの記憶領域を、追加前に存在した仮想プール２０の記憶領域の一部に割り当てる。以下の説明において、追加した実ディスクの記憶領域が割り当てられる、仮想プールの記憶領域の一部を、割り当て変更領域と表記する。
【００７２】
そして、拡張部３０６は、追加前に割り当て変更領域に割り当てられていた、各実ボリュームの記憶領域に格納されていたデータを、追加後にその割り当て変更領域に割り当てられた、追加された実領域の記憶領域に移動する。
【００７３】
図９は、拡張された仮想プールの記憶領域を模式的に表す図である。例えば、実ディスク２１０を使用した拡張により、図９に示すＡ５によって表される記憶領域が増加する。さらに、実ディスク２１１を称した拡張により、図９に示すＡ６によって表される記憶領域が増加する。拡張による増加した仮想プールの記憶領域には、データは格納されていない。従って、増加直後においては、増加した記憶領域に対する、データを読み出すアクセスは発生しないことが見込まれる。
【００７４】
拡張部３０６は、仮想プールの記憶領域を拡張する際、拡張前に仮想プールに使用されている各実ディスクの一部の記憶領域を、拡張により増加した記憶領域に割り当てる。そして、拡張部３０６は、仮想プールの拡張時に追加された実ディスクの記憶領域を、拡張前に仮想プールに使用されている各実ディスクの前述の一部の記憶領域が割り当てられていた、仮想プールの記憶領域に割り当てる。拡張部３０６は、追加された実ディスクの記憶領域に対して、その記憶領域が割り当てられた仮想プールの記憶領域に、拡張前に割り当てられていた各実ディスクの記憶領域に格納されているデータを移動する。
【００７５】
図１０は、仮想プールの拡張が行われた場合における、仮想プールに対する実ディスクの記憶領域の割り当ての一例を模式的に表すブロック図である。
【００７６】
図１０に示す例では、仮想プール２０の拡張前において、各実ディスクの領域は、図５のように、仮想プール２０に割り当てられている。図５に示す状態では、例えば、仮想プールの記憶領域Ａ０は実ディスクの数である５によって等分されている。そして、記憶領域Ａ０が分割されたそれぞれの記憶領域に、各実ディスクの、付与されている符号がＡ０である記憶領域が割り当てられている。割り当てられている符号がＡ１〜Ａ４である記憶領域についても同様である。
【００７７】
そして、仮想プール２０が実ディスク２１０を使用して拡張された場合、仮想プール２０の記憶領域は、例えば、図９の中央に示すように増加する。実ディスク２１０を使用した拡張によって増加した記憶領域は、図９の中央に示す、符号Ａ５によって表される記憶領域である。
【００７８】
拡張部３０６は、仮想プール２０に実ディスク２１０を追加すると、追加前に、仮想プール２０に使用されている各実ディスクが割り当てられていた仮想プール２０の領域の一部に、追加された実ディスクを割り当てる。
【００７９】
図１０に示す上段の図において、仮想プール２０の拡張前に、仮想プール２０に割り当てられていた各実ディスクの領域は、図１０の上段における、破線に囲まれた記憶領域である。図１０に示す例では、拡張部３０６は、図１０の上段において破線に囲まれた記憶領域が割り当てられていた仮想プールの記憶領域に、実ディスク２１０の記憶領域を割り当てる。具体的には、拡張部３０６は、図１０の上段において破線に囲まれている、Ａ０からＡ４の符号が付与された記憶領域が割り当てられていた、仮想プール２０の記憶領域に、図１０の中段において同じ符号が付与されている、実ディスク２１０の領域を割り当てる。
【００８０】
そして、拡張部３０６は、新たに仮想プール２０の記憶領域に割り当てられた実ディスク２１０の記憶領域に、拡張前にその記憶領域が割り当てられた仮想プール２０の記憶領域に割り当てられていた実ディスクの記憶領域に格納されていたデータを移動する。図１０に示す例では、拡張部３０６は、図１０の上段において破線に囲まれている各領域に格納されているデータを、その領域と同じ符号が付与されている実ディスク２１０の領域に移動する。
【００８１】
そして、拡張部３０６は、追加された実ディスク２１０の記憶領域が割り当てられた仮想プール２０の記憶領域に、追加前に割り当てられていた各実ディスクの記憶領域を、仮想プール２０の増加した記憶領域に割り当てる。図９に示す例では、増加した記憶領域は、記憶領域Ａ５である。拡張部３０６は、図１０の上段に示す、破線で囲まれた記憶領域を、仮想プール２１０の追加によって増加した記憶領域Ａ５に割り当てる。図１０の中段において、符号としてＡ５が付与されている記憶領域が、仮想プール２０の記憶領域Ａ５に割り当てられた記憶領域である。
【００８２】
拡張部３０６は、さらに、実ディスク２１１を仮想プール２０に追加する場合も、同様の動作を行う。
【００８３】
すなわち、図１０の中段において破線によって囲まれている記憶領域が割り当てられていた、仮想プール２０の領域に、実ディスク２１１の記憶領域を割り当てる。そして、図１０の中段において破線によって囲まれている記憶領域に格納されているデータを、同じ符号が付与されている、実ディスク２１１の記憶領域に移動する。そして、図１０の中段において破線で囲まれている領域を、実ディスク２１１の追加によって増加した記憶領域Ａ６に割り当てる。
【００８４】
仮想プール２０の拡張後、高負荷物理ディスクであった物理ディスクの負荷が所定の基準を下回る状態になった場合、監視部３０４は、その物理ディスクの拡張対象フラグを、「１」から「０」に変更すればよい。
【００８５】
なお、実ディスクの追加による、仮想プールに対する実ディスクの記憶領域の割り当ての変更は、図１０に示す例に限られない。例えば、一つの実ディスクは一つの物理ディスクであり、仮想プール２０がＲＡＩＤ５や他の種類のＲＡＩＤに基づき構築されている場合に、拡張部３０６は、仮想プール２０に使用されるＲＡＩＤグループに含まれる物理ディスクを１台増加させてもよい。そして、拡張部３０６は、使用する物理ディスクが増加した状態で、仮想プール２０を構築し直してもよい。拡張部３０６が、仮想プール２０に物理ディスクを追加する方法は、既存の方法でよい。
【００８６】
以上で説明した本実施形態には、論理ディスクに使用されるいずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下を緩和することができるという第１の効果がある。
【００８７】
その理由は、拡張部３０６が、高負荷状態が検出された論理ディスクに記憶領域が割り当てられている仮想プールに対して、未使用である、１以上の物理ディスクを使用して実現される実ディスクを追加するからである。仮想プールに未使用である実ディスクを追加することによって、論理ディスクに対する新たな書き込みは、追加された実ディスクにも分散する。従って、いずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下を緩和することができる。
【００８８】
例えば、論理ディスクに上述のシンプロビジョニングの技術が使用されている場合、論理ディスクに実際に割り当てられている記憶領域は、各ホスト装置により認識される論理ディスクの容量より小さい。また、一つの仮想プールの記憶領域が、複数の論理ディスクの記憶領域に割り当てられることも可能である。すなわち、複数の論理ディスクに対するアクセスが、その論理ディスクの容量の総和より小さい容量の仮想プールに集中する。従って、この場合、各論理ディスクに、その論理ディスクの容量と同じ大きさの記憶領域が記憶領域のプールから割り当てられている場合と比較して、単位時間当たりのＩ／Ｏ負荷が大きくなる傾向があることが考えられる。そのため、シンプロビジョニングの技術が使用されている場合、仮想プールに使用される物理ディスクの負荷が大きくなり、そのことによる論理ディスクの性能の低下が起こりやすいと考えられる。本実施形態によると、そのような場合においても、性能の低下を緩和することが可能である。
【００８９】
本実施形態には、論理ディスクに使用されるいずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下を、さらに緩和することができるという第２の効果がある。
【００９０】
その理由は、拡張部３０６が、未使用である実ディスクを追加する前に仮想プールに格納されているデータを、追加した実ディスクに移動するからである。拡張部３０６が、未使用である実ディスクを追加する前に仮想プールに格納されているデータを、追加した実ディスクに移動することにより、既存のデータに対する書き込み及び読み出しの負荷が、新たに追加された実ディスクにも分散する。従って、いずれかの物理ディスクに負荷が集中することによる、論理ディスクの性能の低下をさらに緩和することができる。
【００９１】
本実施形態には、論理ディスクの性能が、所定の基準を下回らないよう保証することができるという第３の効果がある。
【００９２】
その理由は、物理ディスクの負荷を表す指標として、性能を表す値を使用することができるからである。そして、拡張部３０６が、その指標によって表される負荷が、所定の基準を上回らないように、論理ディスクに領域が割り当てられる仮想プールに未使用の実ディスクを追加するからである。物理ディスクの負荷の高さを表す値として、例えば、上述のディスクビジー率を使用することができる。拡張部３０６は、ディスクビジー率がアラーム発生閾値を上回った物理ディスクが使用される仮想プールに、未使用の実ディスクを追加することにより、ディスクビジー率がアラーム発生閾値を上回った物理ディスクの負荷を分散する。拡張部３０６は、ディスクビジー率がアラーム発生閾値を下回るまで、未使用の実ディスクの追加を行う。このことにより、例えば、応答時間の短さによって表される論理ディスクの性能の高さが、所定の基準を下回らないようにすることができる。
【００９３】
＜第２の実施形態＞
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００９４】
図１１は、本実施形態の制御装置３０Ａの構成の例を表すブロック図である。
【００９５】
図１１を参照すると、本実施形態の制御装置３０Ａは、１個以上の物理ディスクを使用して構築され、格納されたデータが前記物理ディスクに分散して配置されるストレージプールにおいて、負荷が基準を超える高負荷状態を検出する監視部３０４と、前記高負荷状態が検出されるのに応じて、当該高負荷状態が検出された前記ストレージプールに使用される前記物理ディスクとして、物理ディスクを追加する拡張部３０６とを備える。
【００９６】
図１１に示す例では、上述の実ディスクは、例えばハードディスク装置やＳＳＤ等の物理ディスクである。
【００９７】
以上で説明した本実施形態には、第１の実施形態の第１の効果と同じ効果がある。その理由は、第１の実施形態の第１の効果が生じる理由と同じである。
【００９８】
制御装置３０、及び制御装置３０Ａは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【００９９】
図１２は、制御装置３０、及び制御装置３０Ａを実現することができる、コンピュータ１０００の構成の一例を表す図である。図１２を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、各ホスト装置や各物理ディスクにアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、制御装置３０、又は制御装置３０Ａとして動作させるプログラムが格納されている。
【０１００】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００を、制御装置３０、又は制御装置３０Ａとして動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、制御装置３０、又は制御装置３０Ａとして動作する。
【０１０１】
ディスクアレイ制御部３０１、設定管理部３０２、未使用装置特定部３０３、監視部３０４、アラーム送信部３０５、拡張部３０６は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、制御情報記憶部３２は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、ディスクアレイ制御部３０１、設定管理部３０２、未使用装置特定部３０３、監視部３０４、アラーム送信部３０５、拡張部３０６、制御情報記憶部３２の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０１０２】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１０３】
１    ストレージ装置
２    ディスクアレイ
１０    ストレージコントローラ
２０、２１    仮想プール
３０    制御装置
５０、５１、５ｎ    ホスト装置
２００ａ、２００ｂ、２００ｃ、２００ｄ、２００ｅ、２０１ａ、２０１ｅ、２１０、２１１    実ディスク、物理ディスク
２５０、２５１、２５ｎ    論理ディスク
３００    ホストコントローラ
３０１    ディスクアレイ制御部
３０２    設定管理部
３０３    未使用装置特定部
３０４    監視部
３０５    アラーム送信部
３０６    拡張部
３０７    ディスクコントローラ
３１０    ユーザデータ記憶部
３２１    論理ディスク情報管理テーブル
３２２ａ、３２２ｎ    プール情報管理テーブル
３２３ａ、３２３ｎ    物理ディスク情報管理テーブル
３２４    設定値管理テーブル
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
2015170272.tif 000003
【図２】
2015170272.tif 000004
【図３】
2015170272.tif 000005
【図４】
2015170272.tif 000006
【図５】
2015170272.tif 000007
【図６】
2015170272.tif 000008
【図７】
2015170272.tif 000009
【図８】
2015170272.tif 000010
【図９】
2015170272.tif 000011
【図１０】
2015170272.tif 000012
【図１１】
2015170272.tif 000013
【図１２】
2015170272.tif 000014