(57)【要約】【課題】システム内に分散配置されるデータに対するアクセス性能の低下を防ぐこと。【解決手段】ＰＵ＃１は、ＳＷ＃１に直接接続されるＰＵ＃１〜＃７とＳＵ＃１〜＃６をスイッチグループＧ１としてグループ化する。また、ＰＵ＃１は、ＳＷ＃３に直接接続されるＰＵ＃８とＳＵ＃７をスイッチグループＧ２としてグループ化する。ＰＵ＃１は、スイッチグループＧ１については、スイッチグループＧ１に属するＳＵ＃１〜＃６においてデータの再配置制御を行う。また、ＰＵ＃１は、スイッチグループＧ２については、スイッチグループＧ２に属するＳＵ＃７においてデータの再配置制御を行う。【選択図】図１
2015055941.tif 000002
【特許請求の範囲】
【請求項１】
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う制御部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、
前記各グループに属するストレージユニットにおける割当中の記憶領域の偏りの度合いに応じて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記割当情報に基づいて、前記各グループに属するストレージユニットに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分に基づいて、前記各グループに属するストレージユニットにおける割当中の記憶領域の割当状況に所定の偏りがあるか否かを判定し、前記所定の偏りがあるとの判定に基づいて、前記割当情報に基づき割当中の記憶領域の再配置制御を行うことを特徴とする請求項２に記載のストレージ制御装置。
【請求項４】
前記制御部は、
前記割当情報に基づいて、前記複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記所定の偏りがあると判定することを特徴とする請求項３に記載のストレージ制御装置。
【請求項５】
前記制御部は、
算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上で、かつ、所定のサイズ以上の場合に、前記所定の偏りがあると判定することを特徴とする請求項４に記載のストレージ制御装置。
【請求項６】
前記割当情報は、前記各グループに属するストレージユニットの記憶領域に割り当てられた各セグメントの割り当て情報を含み、
前記制御部は、割当中のセグメント数に基づいて前記差分を算出することを特徴とする請求項３〜５のいずれか一つに記載のストレージ制御装置。
【請求項７】
前記制御部は、
前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置計画を作成し、作成した前記再配置計画に従って、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする請求項１〜６のいずれか一つに記載のストレージ制御装置。
【請求項８】
コンピュータが、
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
処理を実行することを特徴とする制御方法。
【請求項９】
コンピュータに、
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、制御方法およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
従来、物理的な記憶装置のボリューム構成や記憶容量に縛られることなく、自由なボリューム構成、記憶容量の記憶装置を実現することができるストレージシステムとして、仮想化環境向けストレージ、いわゆる仮想化ストレージ装置がある。仮想化ストレージ装置は、装置内部に物理的な記憶装置に対するアクセスを制御する実ストレージ装置を有し、実ストレージ装置を管理するプロセッサにより仮想的なボリュームを作成する。
【０００３】
また、仮想化ストレージ装置は、例えば、ワイドストライピングによるデータアクセスを行う。ワイドストライピングとは、１つのボリュームに対するデータアクセスを、複数のＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）に分散し、固定長のストリップと呼ばれる単位でアクセスする技術である。
【０００４】
また、仮想化ストレージ装置に要求される記憶容量の増加に伴って、仮想化ストレージ装置全体の記憶領域の拡張が行われる場合がある。仮想化ストレージ装置全体の記憶領域の拡張方法としては、例えば、実ストレージ装置を管理するプロセッサと実ストレージ装置を１セットとする拡張セットの追加が挙げられる。
【０００５】
また、仮想化ストレージ装置内のプロセッサの故障等の障害発生時における縮退運転を可能にするため、仮想化ストレージ装置内のプロセッサと実ストレージ装置がスイッチを介してフルメッシュ接続される場合がある。また、仮想化ストレージ装置への拡張セットの追加に伴ってスイッチが増設されると、スイッチ間をカスケード接続することにより、プロセッサと実ストレージ装置のフルメッシュ接続が実現される。
【０００６】
関連する先行技術としては、例えば、複数のディスクによりグループを構成し、複数のグループからそれぞれ記憶領域を仮想ボリュームに割り当て、外部操作に基づいて、仮想ボリュームが使用している各グループの記憶領域を再配置する技術がある。また、複数のスイッチポートを有し、あるスイッチポートにデータフレームが入力された場合に、データフレームに指定される宛先の接続ポートに繋がるスイッチポートにデータフレームを出力するスイッチを含んで構成されるストレージシステムがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２３４１５８号公報
【特許文献２】特開２００３−３３０７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術によれば、システム内の複数の実ストレージ装置に分散配置されるデータへのアクセス時に、スイッチ間をカスケード接続する経路上の通信量が増大して、実ストレージ装置へのアクセス性能の低下を招くという問題がある。
【０００９】
一つの側面では、本発明は、システム内に分散配置されるデータに対するアクセス性能の低下を防ぐことができるストレージ制御装置、制御方法およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うストレージ制御装置、制御方法およびストレージ制御プログラムが提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、システム内に分散配置されるデータに対するアクセス性能の低下を防ぐことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態にかかる制御方法の一実施例を示す説明図である。
【図２】図２は、ＰＵ＃１等のハードウェア構成例を示すブロック図である。
【図３】図３は、ＰＵ＃１の機能的構成例を示すブロック図である。
【図４】図４は、ＰＵ＃１のストレージ制御処理手順の一例を示すフローチャートである。
【図５】図５は、実施例にかかるストレージシステム１００の基本構成例を示す説明図である。
【図６】図６は、ＶＤＩＳＫの構成例を示す説明図である。
【図７】図７は、実施例にかかるＰＵの機能的構成例を示す説明図である。
【図８】図８は、ＳＷグループ管理テーブル７００の記憶内容の一例を示す説明図である。
【図９】図９は、ＳＷグループ管理テーブル７００の更新例を示す説明図である。
【図１０】図１０は、ボリュームインデックステーブル１０００の記憶内容の一例を示す説明図である。
【図１１】図１１は、ミラーボリュームインデックステーブル１１００の記憶内容の一例を示す説明図である。
【図１２】図１２は、ボリュームセグメントテーブル１２００の記憶内容の一例を示す説明図である。
【図１３】図１３は、再配置計画テーブル７２０の記憶内容の一例を示す説明図（その１）である。
【図１４】図１４は、再配置計画テーブル７２０の記憶内容の一例を示す説明図（その２）である。
【図１５】図１５は、ボリュームの再配置計画例を示す説明図である。
【図１６】図１６は、ボリュームの再配置例を示す説明図（その１）である。
【図１７】図１７は、ボリュームの配置例を示す説明図である。
【図１８】図１８は、ボリュームインデックステーブル１０００の更新例を示す説明図である。
【図１９】図１９は、再配置計画テーブル７２０の更新例を示す説明図である。
【図２０】図２０は、ボリュームの再配置例を示す説明図（その２）である。
【図２１】図２１は、ＳＵ増設時のデータ再配置の一例を示す説明図（その１）である。
【図２２】図２２は、ＳＵ増設時のデータ再配置の一例を示す説明図（その２）である。
【図２３】図２３は、ストレージシステム１００のノード増設処理手順の一例を示すシーケンス図（その１）である。
【図２４】図２４は、ストレージシステム１００のノード増設処理手順の一例を示すシーケンス図（その２）である。
【図２５】図２５は、ストレージシステム１００の再配置処理手順の一例を示すシーケンス図（その１）である。
【図２６】図２６は、ストレージシステム１００の再配置処理手順の一例を示すシーケンス図（その２）である。
【図２７】図２７は、ストレージシステム１００の再配置処理手順の一例を示すシーケンス図（その３）である。
【図２８】図２８は、ストレージシステム１００の再配置処理手順の一例を示すシーケンス図（その４）である。
【図２９】図２９は、ストレージシステム１００の第１再配置停止処理手順の一例を示すシーケンス図である。
【図３０】図３０は、ストレージシステム１００の第２再配置停止処理手順の一例を示すシーケンス図である。
【図３１】図３１は、ストレージシステム１００の再配置一時停止処理手順の一例を示すシーケンス図である。
【図３２】図３２は、ストレージシステム１００の再配置再開処理手順の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下に図面を参照して、本発明にかかるストレージ制御装置、制御方法およびストレージ制御プログラムの実施の形態を詳細に説明する。なお、本明細書では、ストレージ制御装置を「ＰＵ（Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）」と表記し、ストレージユニットを「ＳＵ（Ｓｔｏｒａｇｅ  Ｕｎｉｔ）」と表記し、スイッチを「ＳＷ（Ｓｗｉｔｃｈ）」と表記する場合がある。
【００１４】
（制御方法の一実施例）
図１は、実施の形態にかかる制御方法の一実施例を示す説明図である。図１（Ａ）において、ストレージシステム１００は、ＰＵ＃１〜＃４と、ＳＵ＃１〜＃３と、ＳＷ＃１，＃２と、を含む。ここで、ＰＵ＃１は、ストレージシステム１００内の他のＰＵ（例えば、ＰＵ＃２〜＃４）を管理し、システム全体を制御するマスタ制御部として動作する。また、ＰＵ＃１は、ストレージシステム１００にＳＵが追加されると、そのＳＵを利用可能な状態にしてストレージシステム１００全体の記憶容量を拡張する機能を有する。
【００１５】
各ＰＵ＃１〜＃４は、自配下のＳＵ＃１〜＃３を制御するコンピュータである。各ＰＵ＃１〜＃４は、自配下のＳＵ＃１〜＃３に対するアクセスを受け付ける。また、各ＰＵ＃１〜＃４は、追加されたＳＵが接続されてアクセス可能な状態になると、そのＳＵも自配下のＳＵとして管理する。
【００１６】
ＳＵ＃１〜＃３は、それぞれストレージ（以下、「ＳＴ」と称する）を有し、各ＳＴに対するアクセスをそれぞれ制御するコンピュータである。ＳＴは、それぞれ一以上の記憶装置Ｄを含む。記憶装置Ｄは、例えば、ハードディスク、光ディスク、フラッシュメモリ、磁気テープなどの物理的な記憶装置であってもよく、また、論理的な記憶装置であるＬＵＮであってもよい。
【００１７】
ＳＷ＃１，＃２は、スイッチング機能を有するコンピュータである。ＳＷ＃１，＃２は、受信したデータの宛先に対応する経路（ポート）を選択してデータを中継する。ストレージシステム１００では、冗長化されたＳＷ＃１，＃２を介してＰＵ＃１〜＃４とＳＵ＃１〜＃３がフルメッシュ接続される（図１（Ａ）参照）。
【００１８】
これにより、ストレージシステム１００内の全ＰＵから全ＳＵへのアクセスが可能となり、ＰＵの故障等の障害発生時における縮退運転が可能となる。なお、縮退運転とは、システムに障害が発生したときに性能や機能を部分的に停止させた状態で稼働を続行することである。
【００１９】
また、ストレージシステム１００は、例えば、ワイドストライピングによるデータアクセスを行う。ワイドストライピングによれば、アクセス集中による性能低下を抑止し、サーバ等の上位装置からのストレージシステム１００へのアクセス量やボリュームの物理的位置を意識した複雑な性能設計を行うことなく、安定した性能を確保することができる。
【００２０】
また、ストレージシステム１００は、ストレージシステム１００に要求される記憶容量の増加に伴って、ストレージシステム１００全体の記憶領域を拡張することができる。例えば、ストレージシステム１００では、ＰＵとＳＵを１セットとして、ストレージシステム１００全体の記憶領域を拡張することができる。
【００２１】
以下の説明では、ＰＵとＳＵを１セットとする拡張セットを、ストレージシステム１００に追加することを「スケールアウト」と表記し、ＰＵとＳＵのペアを「ノード」と表記する場合がある。ただし、基本構成では、ストレージシステム１００は、冗長化のために１台のＳＵに２台のＰＵが接続される場合を想定する。すなわち、図１の例では、ＰＵ＃１，＃２とＳＵ＃１が１ノード（基本ノード）となる。
【００２２】
スケールアウト後に格納されるデータは、ワイドストライピングにより、複数のＳＵ上にデータが格納される可能性があり、複数のＳＵ分のアクセス性能が期待できる。一方、各ＳＷが有するポートの数は有限であり、各ＳＷに接続できるＰＵやＳＵの数には限りがある。このため、ストレージシステム１００では、スケールアウトが繰り返し行われてＳＷのポートが不足すると、ＳＷが増設される。
【００２３】
一例として、ＳＷが２４ポート仕様である場合を想定する。また、図１ではＳＵとＳＷを接続する経路として２本の線を示したが、ＳＵとＳＷは物理的に２本のケーブルにより接続される場合を想定する。この場合、図１（Ａ）に示す状態からスケールアウトを進めていくと、７ノード構成から、ＳＷ＃１，＃２のポートが不足するため、ＳＷ＃３，＃４が増設される。
【００２４】
この際、ストレージシステム１００では、ＳＷ同士をカスケード接続することでＰＵとＳＵとのフルメッシュ接続を実現する。カスケード接続とは、複数のＳＷを直列に接続して、より多くの機器（例えば、ＰＵやＳＵ）を接続できるようにすることである。図１（Ｂ）の例では、ＳＷ＃１，＃３間がカスケード接続され、ＳＷ＃２，＃４間がカスケード接続される。なお、ＳＷ＃１，＃２は、冗長性のために２台用意されており、ＳＷ＃１，＃２間はカスケード接続されない。ＳＷ＃３，＃４についても同様である。
【００２５】
ここで、スケールアウト前に格納されたデータに対するアクセス性能は、スケールアウト前のＳＵの性能のままに留まってしまう。スケールアウト前後で格納されたデータに対するアクセス性能にアンバランスがあることは、ストレージシステム１００の性能を管理する上で望ましくない。
【００２６】
このため、データに対するアクセス性能の最適化を図るべく、スケールアウト時に、ストレージシステム１００内のＳＵ間に生じたデータの偏りの度合いに応じて、ＳＵ間でデータの再配置を行うことが考えられる。ところが、スケールアウト時のデータ再配置を実施すると、既設ＳＵ（例えば、ＳＵ＃１〜＃６）に格納されているデータを増設ＳＵ（例えば、ＳＵ＃７）に分散配置することになる。
【００２７】
この配置状態において、例えば、ＰＵ＃１からデータアクセスする場合、ＳＵ＃１〜＃７に分散されたデータへアクセスすることになる。ところが、ＳＵ＃７上のデータへアクセスするには、ＳＷ間をカスケード接続する経路を使うことになる。この経路の帯域は、ＰＵ／ＳＵ間を接続する経路の帯域と同じであるため、ＳＷ間を行き来するデータ転送が多くなるとＳＵへのアクセス性能が低下し、データの分散配置によるアクセス性能の最適化が期待できなくなってしまう。
【００２８】
そこで、本実施の形態では、ＰＵ＃１は、各ＳＷに直接接続されるＰＵとＳＵとをグループ化し、各グループ（以下、「スイッチグループＧ」と称する）に属するＳＵにおいてデータの再配置制御を行う。この際、ＰＵ＃１は、サーバ等から接続する場合のアクセス経路が、データが格納されているスイッチグループＧ内のＰＵを通るようにパス構成を制御する。
【００２９】
具体的には、例えば、図１（Ｂ）に示す例では、ＰＵ＃１は、ＳＷ＃１（ＳＷ＃２）に直接接続されるＰＵ＃１〜＃７とＳＵ＃１〜＃６とをスイッチグループＧ１としてグループ化する。また、ＰＵ＃１は、ＳＷ＃３（ＳＷ＃４）に直接接続されるＰＵ＃８とＳＵ＃７とをスイッチグループＧ２としてグループ化する。
【００３０】
そして、ＰＵ＃１は、スイッチグループＧ１については、スイッチグループＧ１に属するＳＵ＃１〜＃６においてデータの再配置制御を行う。また、ＰＵ＃１は、スイッチグループＧ２については、スイッチグループＧ２に属するＳＵ＃７においてデータの再配置制御を行う。
【００３１】
これにより、ストレージシステム１００のスケールアウトに伴ってＳＷ間をカスケード接続する場合であっても、データアクセス時にＳＷ間のカスケード経路を使わなくなり、データアクセス時のアクセス性能の低下を防ぐことができる。
【００３２】
また、ＳＷ間をカスケード接続することにより、ストレージシステム１００の可用性を高めることができる。例えば、ＰＵ＃８の増設時に、既設のＰＵ＃１〜＃７のクラスタにＰＵ＃８を含めて、同一クラスタの構成要素としてＰＵ＃８を管理することにより、クラスタを管理するマスタ制御部をＰＵ＃１の１台とすることができる。
【００３３】
また、例えば、ＰＵ＃８に異常が発生した場合に、ＰＵ＃８に割り当てられたボリュームを他のＰＵ（例えば、ＰＵ＃１〜＃７）にフェイルオーバーさせることができる。フェイルオーバーとは、例えば、あるＰＵに異常が発生した場合に、他のＰＵが、異常ＰＵに代わって処理やデータを引き継ぐ機能である。
【００３４】
また、例えば、スイッチグループＧ１内のＰＵ異常等により、アクセス性能を維持できない、あるいは、代替ＰＵが不足するという状況に陥った場合に、スイッチグループＧの枠を外してスイッチグループＧ２内のＰＵ＃８およびＳＵ＃７を活用することが可能となる。
【００３５】
（ＰＵ＃１等のハードウェア構成例）
つぎに、図１に示したＰＵ＃１〜＃８、ＳＵ＃１〜＃７およびＳＷ＃１〜＃４等のコンピュータ（ここでは、単に「ＰＵ＃１等」と称する）のハードウェア構成例について説明する。
【００３６】
図２は、ＰＵ＃１等のハードウェア構成例を示すブロック図である。図２において、ＰＵ＃１等は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、を有する。また、各構成部はバス２１０によってそれぞれ接続されている。
【００３７】
ここで、ＣＰＵ２０１は、ＰＵ＃１等の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有している。より具体的には、例えば、フラッシュＲＯＭがＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やファームウェアなどのプログラムを記憶し、ＲＯＭがアプリケーションプログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されているプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させることになる。
【００３８】
Ｉ／Ｆ２０３は、他のコンピュータからのデータの入出力を制御する。具体的には、例えば、Ｉ／Ｆ２０３は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークに接続され、このネットワークを介して他のコンピュータに接続される。そして、Ｉ／Ｆ２０３は、ネットワークと内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。
【００３９】
（ＰＵ＃１の機能的構成例）
つぎに、ストレージシステム１００内のマスタ制御部となるＰＵ＃１の機能的構成例について説明する。ただし、ストレージシステム１００において、ＰＵ＃１がダウンした場合は、他のＰＵ（例えば、ＰＵ＃２〜＃８）が、ＰＵ＃１の機能を引き継ぐ。
【００４０】
図３は、ＰＵ＃１の機能的構成例を示すブロック図である。図３において、ＰＵ＃１は、記憶部３０１と、分類部３０２と、算出部３０３と、判定部３０４と、作成部３０５と、再配置制御部３０６と、を含む構成である。分類部３０２〜再配置制御部３０６は、具体的には、例えば、図２に示したメモリ２０２に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０３により、その機能を実現する。また、各機能部の処理結果は、例えば、メモリ２０２に記憶される。
【００４１】
記憶部３０１は、ストレージシステム１００内のＳＵの記憶領域の割当状況を含む割当情報を記憶する。ここで、割当情報は、例えば、ストレージシステム１００内のＰＵ上で作成されるボリュームがＳＵ内のどの記憶装置Ｄに割り当てられているかを示す情報である。
【００４２】
また、ボリュームは、ストレージシステム１００の管理単位となる記憶領域である。具体的には、例えば、ボリュームは、複数の物理的な記憶装置または記憶装置（例えば、ハードディスク）内のパーティションをグループ化して、仮想的に一つのボリュームとした論理ボリュームであってもよい。
【００４３】
詳細な説明は図６を用いて後述するが、例えば、ボリュームは、複数のセグメントセットの集合体であり、各セグメントセットは、複数のセグメントの集合体である。この場合、割当情報は、ボリュームを構成する各セグメントがＳＵ内のどの記憶装置Ｄに割り当てられているかを示す情報となる。
【００４４】
なお、ボリューム作成時において、ボリュームを構成する各セグメントは、同一スイッチグループＧに属するいずれかのＳＵ内の記憶装置Ｄに割り当てられる。すなわち、ストレージシステム１００では、ボリュームはスイッチグループＧを跨がないように作成される。
【００４５】
割当情報は、例えば、ＳＵ＃１のメモリ２０２に記憶されている。ＰＵ＃１は、例えば、ＳＵ＃１のメモリ２０２から割当情報を読み出して記憶部３０１に記憶する。この割当情報は、例えば、ストレージシステム１００内の各ＳＵの記憶領域の割当状況に応じて更新される。
【００４６】
なお、割当情報は、冗長化のために複数のＳＵ（例えば、ＳＵ＃２〜＃７）のメモリ２０２に記憶されることにしてもよい。割当情報の具体例については、図８〜図１０を用いて後述する。記憶部３０１は、例えば、ＰＵ＃１のメモリ２０２により実現される。
【００４７】
分類部３０２は、ストレージシステム１００内のＳＷに直接接続されるＰＵとＳＵとをグループ化する。具体的には、例えば、分類部３０２は、ストレージシステム１００がスケールアウトされたことに応じて、ストレージシステム１００内の各ＳＷに直接接続されるＰＵとＳＵとをグループ化する。分類された分類結果は、例えば、後述の図７に示すＳＷグループ管理テーブル７００に記憶される。
【００４８】
算出部３０３は、記憶部３０１に記憶された割当情報に基づいて、スイッチグループＧに属するＳＵにそれぞれ含まれる記憶装置Ｄ間における割当中の記憶領域の記憶容量の差分ｄを算出する。以下の説明では、記憶装置Ｄの割当中の記憶領域の記憶容量を「割当量ｑ」と表記する場合がある。
【００４９】
具体的には、例えば、算出部３０３は、スイッチグループＧ１（図１参照）に属するＳＵ＃１〜＃６に含まれる複数の記憶装置Ｄのうち、割当量ｑが最大となる記憶装置Ｄの最大割当量ｑ＿ｍａｘを算出する。また、算出部３０３は、スイッチグループＧ１（図１参照）に属するＳＵ＃１〜＃６に含まれる複数の記憶装置Ｄのうち、割当量ｑが最小となる記憶装置Ｄの最小割当量ｑ＿ｍｉｎを算出する。そして、算出部３０３は、最大割当量ｑ＿ｍａｘと最小割当量ｑ＿ｍｉｎとの差分ｄを算出することにしてもよい。
【００５０】
なお、各記憶装置Ｄの割当量ｑは、例えば、各記憶装置Ｄに割り当てられているボリュームのセグメント数から求めることができる。例えば、セグメントの容量を２５６［ＭＢ］とし、ある記憶装置Ｄに割り当てられているセグメント数が「２」の場合、この記憶装置Ｄの割当量ｑは５１２［ＭＢ］となる。セグメントは、所定容量で規定された管理単位の記憶領域であり、ホストからボリュームへの記録再生指示アドレス（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）等の位置情報で管理される。
【００５１】
判定部３０４は、算出部３０３によって算出された差分ｄに基づいて、スイッチグループＧに属するＳＵの記憶領域の割当状況に所定の偏りがあるか否かを判定する。ここで、所定の偏りがある状態とは、スイッチグループＧに属するＳＵにおける割当中の記憶領域（例えば、セグメント）を再配置したほうが望ましい程度に記憶領域の割当状況が偏っている状態である。
【００５２】
具体的には、例えば、判定部３０４は、最大割当量ｑ＿ｍａｘと最小割当量ｑ＿ｍｉｎとの差分ｄが、最大割当量ｑ＿ｍａｘの所定の割合α以上の場合に、スイッチグループＧに属するＳＵの記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。また、判定部３０４は、算出された最大割当量ｑ＿ｍａｘと最小割当量ｑ＿ｍｉｎとの差分ｄが、所定のサイズβ以上の場合に、スイッチグループＧに属するＳＵの記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。
【００５３】
さらに、判定部３０４は、最大割当量ｑ＿ｍａｘと最小割当量ｑ＿ｍｉｎとの差分ｄが、最大割当量ｑ＿ｍａｘの所定の割合α以上の場合、かつ、所定のサイズβ以上の場合に、スイッチグループＧに属するＳＵの記憶領域の割当状況に所定の偏りがあると判定することにしてもよい。
【００５４】
既設のＳＵに比べて記憶容量の大きなＳＵを増設した場合には、増設したＳＵに多くのセグメントが配分されてしまう場合がある。このため、判定部３０４は、上述したように、使用可能な記憶容量に対する使用量から得られる使用率ではなく、割当量、すなわち、絶対使用量の比較を用いて、ＳＵの記憶領域の割当状況に所定の偏りがあるか否かを判定する。
【００５５】
なお、ストレージグループＧに既設のＳＵが存在する状態でＳＵを増設した直後は、増設したＳＵに対する記憶領域の割り当てが行われておらず、増設したＳＵの割当量（割当中の記憶領域の記憶容量）は０である。このため、判定部３０４は、割当量ｑの差分ｄを検出することにより、スイッチグループＧに属するＳＵの記憶領域の割当量の偏りを容易に検出することができる。
【００５６】
判定部３０４による判定処理は、例えば、予め設定された時間間隔で定期的に行われてもよく、また、ストレージシステム１００の管理者等の操作入力により任意のタイミングで行われてもよい。なお、割合αおよびサイズβは、例えば、メモリ２０２に記憶されている。また、割合αおよびサイズβの具体的な値については後述する。
【００５７】
作成部３０５は、記憶部３０１に記憶された割当情報に基づいて、スイッチグループＧに属するＳＵ間で記憶装置Ｄの割当量ｑが均等になるような再配置計画を作成する。ここで、再配置計画とは、例えば、ボリュームを構成するセグメントを、どのＳＵのどの記憶装置Ｄに再配置するかを表すものである。具体的には、例えば、作成部３０５は、スイッチグループＧ１に属するＳＵ＃１〜＃６に含まれる記憶装置Ｄ間で割当量ｑが均等になるような再配置計画を作成する。
【００５８】
また、作成部３０５は、記憶部３０１に記憶された割当情報に基づいて、スイッチグループＧに属するＳＵの各ＳＴにおいて再配置によるデータ移動のためのコピー処理が少なくなるような再配置計画を作成することにしてもよい。作成された再配置計画は、例えば、後述の図７に示す再配置計画テーブル７２０に記憶される。
【００５９】
再配置制御部３０６は、記憶部３０１に記憶された割当情報に基づいて、スイッチグループＧに属するＳＵにおいて割当中の記憶領域の再配置制御を行う。具体的には、例えば、再配置制御部３０６は、スイッチグループＧに属するＳＵにおける割当中の記憶領域の偏りの度合いに応じて、スイッチグループＧに属するＳＵにおいて割当中の記憶領域の再配置制御を行う。
【００６０】
より具体的には、例えば、再配置制御部３０６は、スイッチグループＧ１に属するＳＵ＃１〜＃６を制御して、作成部３０５によって作成されたスイッチグループＧ１の再配置計画に従って、ＳＵ＃１〜＃６における割当中の記憶領域の配置を再配置する。
【００６１】
再配置制御部３０６による再配置制御処理は、例えば、判定部３０４によってスイッチグループＧに属するＳＵの記憶領域の割当状況に所定の偏りがあると判定されたことに応じて実行される。また、再配置制御部３０６による再配置制御処理は、例えば、ストレージシステム１００のスケールアウトが行われたことを検出したことに応じて実行されることにしてもよい。
【００６２】
ただし、スイッチグループＧの増加を伴うスケールアウト直後は、新しいスイッチグループＧに属するＳＵへの記憶領域の割り当ては行われていない。このため、再配置制御部３０６は、スイッチグループＧの増加を伴うスケールアウト直後は再配置制御処理を行わないことにしてもよい。
【００６３】
（ＰＵ＃１のストレージ制御処理手順）
つぎに、ＰＵ＃１のストレージ制御処理手順について説明する。このストレージ制御処理は、例えば、ストレージシステム１００のスケールアウトが行われ、かつ、スケールアウトによってスイッチグループＧが増えない場合に実行される。また、このストレージ制御処理は、管理者等の操作入力による任意のタイミング、あるいは、定期的に実行される。
【００６４】
図４は、ＰＵ＃１のストレージ制御処理手順の一例を示すフローチャートである。図４のフローチャートにおいて、まず、ＰＵ＃１は、ＳＵ＃１のメモリ２０２から割当情報を読み出す（ステップＳ４０１）。
【００６５】
つぎに、ＰＵ＃１は、ストレージシステム１００内のスイッチグループＧを選択する（ステップＳ４０２）。そして、ＰＵ＃１は、読み出した構成情報に基づいて、スイッチグループＧに属するＳＵに含まれる複数の記憶装置Ｄのうち、割当量ｑが最大となる記憶装置Ｄの最大割当量ｑ＿ｍａｘを算出する（ステップＳ４０３）。
【００６６】
つぎに、ＰＵ＃１は、スイッチグループＧに属するＳＵに含まれる複数の記憶装置Ｄのうち、割当量ｑが最小となる記憶装置Ｄの最小割当量ｑ＿ｍｉｎを算出する（ステップＳ４０４）。そして、ＰＵ＃１は、算出した最大割当量ｑ＿ｍａｘと最小割当量ｑ＿ｍｉｎとの差分ｄを算出する（ステップＳ４０５）。
【００６７】
つぎに、ＰＵ＃１は、算出した差分ｄが最大割当量ｑ＿ｍａｘの割合α以上か否かを判断する（ステップＳ４０６）。ここで、差分ｄが最大割当量ｑ＿ｍａｘの割合α未満の場合（ステップＳ４０６：Ｎｏ）、ＰＵ＃１は、ステップＳ４１０に移行する。
【００６８】
一方、差分ｄが最大割当量ｑ＿ｍａｘの割合α以上の場合（ステップＳ４０６：Ｙｅｓ）、ＰＵ＃１は、差分ｄがサイズβ以上か否かを判断する（ステップＳ４０７）。ここで、差分ｄがサイズβ未満の場合（ステップＳ４０７：Ｎｏ）、ＰＵ＃１は、ステップＳ４１０に移行する。
【００６９】
一方、差分ｄがサイズβ以上の場合（ステップＳ４０７：Ｙｅｓ）、ＰＵ＃１は、読み出した割当情報に基づいて、スイッチグループＧに属するＳＵに含まれる記憶装置Ｄ間で割当量ｑが均等になるような再配置計画を作成する（ステップＳ４０８）。つぎに、ＰＵ＃１は、スイッチグループＧに属するＳＵを制御して、作成した再配置計画に従って、スイッチグループＧに属するＳＵにおける割当中の記憶領域の配置を再配置する（ステップＳ４０９）。
【００７０】
そして、ＰＵ＃１は、ストレージシステム１００内から選択していない未選択のスイッチグループＧがあるか否かを判断する（ステップＳ４１０）。ここで、未選択のスイッチグループＧがある場合（ステップＳ４１０：Ｙｅｓ）、ＰＵ＃１は、ステップＳ４０２に戻って、ストレージシステム１００内の未選択のスイッチグループＧを選択する。
【００７１】
一方、未選択のスイッチグループＧがない場合（ステップＳ４１０：Ｎｏ）、ＰＵ＃１は、本フローチャートによる一連の処理を終了する。
【００７２】
これにより、ストレージシステム１００内のスイッチグループＧごとに、スイッチグループＧに属するＳＵの記憶領域の割当状況を判定して、スイッチグループＧに属するＳＵにおける割当中の記憶領域の再配置制御を行うことができる。
【００７３】
以上説明したように、実施の形態にかかるＰＵ＃１によれば、ストレージシステム１００内の各ＳＷに直接接続されるＰＵとＳＵをグループ化し、各スイッチグループＧに属するＳＵにおいて割当中の記憶領域の再配置制御を行うことができる。これにより、ストレージシステム１００のスケールアウトに伴ってＳＷ間をカスケード接続する場合であっても、データアクセス時にＳＷ間のカスケード経路を使わなくなり、データアクセス時のアクセス性能の低下を抑制することができる。
【００７４】
また、ＰＵ＃１によれば、各スイッチグループＧに属するＳＵにおける割当中の記憶領域の偏りの度合いに応じて、各スイッチグループＧに属するＳＵにおいて割当中の記憶領域の再配置制御を行うことができる。これにより、ストレージシステム１００内に分散配置されるデータに対するアクセス性能の最適化を図ることができる。
【００７５】
また、ＰＵ＃１によれば、各スイッチグループＧに属するＳＵに含まれる記憶装置Ｄの最大割当量ｑ＿ｍａｘと記憶装置Ｄの最小割当量ｑ＿ｍｉｎとの差分ｄを算出することができる。そして、ＰＵ＃１によれば、算出した差分ｄが、最大割当量ｑ＿ｍａｘの割合α以上で、かつ、サイズβ以上の場合に、各スイッチグループＧに属するＳＵの記憶領域の割当状況に所定の偏りがあると判定することができる。これにより、各スイッチグループＧに属するＳＵにおける割当中の記憶領域を再配置したほうが望ましい程度にＳＴ間の記憶領域の割当状況が偏っているか否かを判断することができる。
【００７６】
また、ＰＵ＃１によれば、各スイッチグループＧに属するＳＵに含まれる記憶装置Ｄ間で割当量ｑが均等になるように、各スイッチグループＧに属するＳＵにおいて割当中の記憶領域の再配置制御を行うことができる。これにより各スイッチグループＧに属するＳＵ間でデータに対するアクセスが均等になるように分散することができる。
【００７７】
（実施例）
つぎに、実施の形態にかかるストレージシステム１００の実施例について説明する。
【００７８】
（ストレージシステム１００の基本構成例）
図５は、実施例にかかるストレージシステム１００の基本構成例を示す説明図である。図５において、ストレージシステム１００は、ＰＵ＃１と、ＰＵ＃２と、ＳＷ＃１と、ＳＷ＃２と、ＳＵ＃１と、を含む。
【００７９】
ここで、ＰＵ＃１，＃２は、ＳＵ＃１を制御する。ＰＵ＃１，＃２は、各ＰＵ＃１，＃２上にボリュームを作成する場合、各ＰＵ＃１，＃２が属するスイッチグループＧ１に属するＳＵ（例えば、ＳＵ＃１）のＬＵＮをボリュームに割り当てる。ＰＵ＃１，＃２は、例えば、後述する業務サーバＢＳや管理サーバＭＳがアクセス可能なサーバである。ＳＵ＃１は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）＃１〜＃４を有し、ＲＡＩＤ＃１〜＃４に対するアクセスを制御する。
【００８０】
各ＲＡＩＤ＃１〜＃４は、複数の記憶装置（例えば、ハードディスク）をまとめて一つの記憶装置としたＲＡＩＤグループである。具体的には、各ＲＡＩＤ＃１〜＃４は、それぞれ２つのＬＵＮで構成されている。図１に示したＳＴは、例えば、ＲＡＩＤ＃１〜＃４に相当し、図１に示した記憶装置Ｄは、例えば、ＬＵＮに相当する。
【００８１】
以下の説明では、ストレージシステム１００に含まれるＰＵ＃１，＃２とＳＵ＃１を「基本ノード」と表記し、ストレージシステム１００に追加される拡張セットを「増設ノード」と表記する場合がある。また、ストレージシステム１００により提供される仮想的なボリュームを「ＶＤＩＳＫ」と表記する場合がある。
【００８２】
（ＶＤＩＳＫの構成例）
図６は、ＶＤＩＳＫの構成例を示す説明図である。図６において、ＶＤＩＳＫ＃ｉは、セグメントセット＃１〜＃ｎの集合体である（ｉ：自然数、ｎ：２以上の自然数）。各セグメントセット＃１〜＃ｎは、８個のセグメント＃１〜＃８の集合体である。ここでは、各セグメントセット＃１〜＃８の容量は、例えば、２［ＧＢ］であり、また、各セグメント＃１〜＃８の容量は、例えば、２５６［ＭＢ］である。
【００８３】
図５に示したストレージシステム１００を例に挙げると、各セグメント＃１〜＃８は、ＳＵ＃１内のＬＵＮ＃１〜＃８ごとに割り当てられる。ユーザのデータは、固定長のストリップ（１［ＭＢ］）単位で記録される。また、このストリップはセグメント＃１〜＃８を順に利用する形でストライピングされる。
【００８４】
（ストレージシステム１００内のＰＵの機能的構成例）
図７は、実施例にかかるＰＵの機能的構成例を示す説明図である。図７において、ストレージシステム１００は、基本ノードＮ１と、増設ノードＮ２と、を含む。図７では、ストレージシステム１００に増設ノードＮ２を増設した直後、すなわち、スケールアウト直後のストレージシステム１００の状態を表す。基本ノードＮ１は、ＰＵ＃１と、ＰＵ＃２と、ＳＵ＃１と、を含む。増設ノードＮ２は、ＰＵ＃３と、ＳＵ＃２と、を含む。
【００８５】
基本ノードＮ１内のＰＵ＃１，＃２と、増設ノードＮ２内のＰＵ＃３と、管理サーバＭＳとは、管理用ＬＡＮを介して接続される。管理サーバＭＳは、ストレージシステム１００の管理者が使用するコンピュータであり、装置管理ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を有する。
【００８６】
また、基本ノードＮ１内のＰＵ＃１，＃２と、増設ノードＮ２内のＰＵ＃３と、業務サーバＢＳとは、Ｉ／Ｏ用ＬＡＮを介して接続される。業務サーバＢＳは、業務用のアプリケーションがインストールされたコンピュータである。
【００８７】
また、ＰＵ＃１，＃２，＃３と、ＳＵ＃１，＃２とは、Ｉ／Ｏ用ＬＡＮおよび内部管理ＬＡＮを介して接続される。各ＳＵ＃１，＃２は、構成管理ＤＢ＃１，＃２と、ストレージ制御部＃１，＃２とを有する。ストレージ制御部＃１，＃２は、ストレージ制御プログラムをＣＰＵが実行することにより実現される。ストレージ制御プログラムは、各ＳＵ＃１，＃２内のＳＴ（ストレージ）に対するアクセスを制御するプログラムである。
【００８８】
構成管理ＤＢ＃１，＃２には、ボリューム管理テーブル７１０と再配置計画テーブル７２０とが含まれる。ボリューム管理テーブル７１０と再配置計画テーブル７２０は、ＰＵ＃１によって構成管理ＤＢ＃１（または、構成管理ＤＢ＃２）から読み出されて使用される。
【００８９】
ここで、ボリューム管理テーブル７１０は、ボリュームインデックステーブル１０００（図１０参照）と、ミラーボリュームインデックステーブル１１００（図１１参照）と、ボリュームセグメントテーブル１２００（図１２参照）と、を含む。上述した割当情報は、例えば、ボリューム管理テーブル７１０に相当する。
【００９０】
ボリュームインデックステーブル１０００は、ボリューム（ＶＤＩＳＫ）を管理するテーブルである。ミラーボリュームインデックステーブル１１００は、ミラーボリュームを管理するテーブルである。ボリュームセグメントテーブル１２００は、ボリュームのセグメントを管理するテーブルである。各テーブル１０００，１１００，１２００は、ボリューム番号をインデックスとして関連付けられる。
【００９１】
また、再配置計画テーブル７２０は、ＶＤＩＳＫを構成する各セグメントをどこへ配置するかを計画した計画後の配置先のストレージ装置（ＳＵ）、ＬＵＮ番号および再配置状況を管理するテーブルである。既に再配置が完了した（もしくは、再配置が不要な）セグメントの再配置状況については「再配置完了（もしくは、再配置不要）」とする。また、現状再配置中のセグメントの再配置状況については「再配置中」とし、今後再配置されるセグメントの再配置状況については「再配置待」とする。
【００９２】
再配置の一時停止中は、ＰＵ＃１は、再配置計画テーブル７２０を削除することなく保持しておく。再配置が停止された場合は、ＰＵ＃１は、再配置計画テーブル７２０を破棄する。また、再配置の一時停止中にボリューム（ＶＤＩＳＫ）が削除された場合、ＰＵ＃１は、ボリューム管理テーブル７１０のボリュームインデックステーブル１０００から該当レコードを削除するとともに、再配置計画テーブル７２０から該当レコードを削除する。なお、ボリューム管理テーブル７１０と再配置計画テーブル７２０についての詳細な説明は、図１０〜図１４を用いて後述する。
【００９３】
ＰＵ＃１は、Ｉ／Ｏ制御部＃１と、ＰＵ制御部＃１と、クラスタ制御Ｍと、装置管理ＧＵＩ制御部＃１と、ＰＵ負荷監視部＃１と、ＳＵ制御部＃１と、ボリューム管理Ｍと、ボリューム管理Ａ＃１と、を含む。また、ＰＵ＃１は、ＳＷグループ管理テーブル７００と、ボリューム管理テーブル７１０と、再配置計画テーブル７２０と、を有する。図３に示した分類部３０２、算出部３０３、判定部３０４、作成部３０５および再配置制御部３０６は、例えば、ボリューム管理Ｍに相当する。
【００９４】
また、ＰＵ＃２は、Ｉ／Ｏ制御部＃２と、ＰＵ制御部＃２と、クラスタ制御部＃２と、ＰＵ負荷監視部＃２と、ＳＵ制御部＃２と、ボリューム管理Ａ＃２と、を含む。また、ＰＵ＃３は、Ｉ／Ｏ制御部＃３と、ＰＵ制御部＃３と、クラスタ制御部＃３と、ＰＵ負荷監視部＃３と、ＳＵ制御部＃３と、ボリューム管理Ａ＃３と、を含む。
【００９５】
ここで、Ｉ／Ｏ制御部＃１〜＃３は、業務サーバＢＳからのＩ／Ｏ要求を受け付けて処理する。ＰＵ制御部＃１〜＃３は、各ＰＵ＃１〜＃３を制御する。クラスタ制御Ｍは、ＰＵ同士をクラスタリングする。ここでは、ＰＵ＃１とＰＵ＃２とＰＵ＃３とでクラスタが形成されている。クラスタ制御部＃２，＃３は、クラスタ制御ＭによってクラスタリングされたＰＵ＃１〜＃３を認識する。
【００９６】
装置管理ＧＵＩ制御部＃１は、管理サーバＭＳからの指示に従って、ストレージシステム１００の状態を判断したり、新規ボリュームを作成したりする。ＰＵ負荷監視部＃１〜＃３は、各ＰＵ＃１〜＃３にかかる負荷を監視する。ＳＵ制御部＃１〜＃３は、各ＳＵ＃１，＃２を制御する。
【００９７】
ボリューム管理Ｍは、ボリューム管理Ａ＃１〜＃３を制御する。具体的には、例えば、ボリューム管理Ｍは、再配置制御スレッドを起動して、ボリューム管理Ａ＃１〜＃３に実行させる。ボリューム管理Ａ＃１〜＃３は、ボリューム管理Ｍの制御に従って、ボリュームを管理する。
【００９８】
なお、ストレージシステム１００において、ＰＵ＃１がダウンした場合は、例えば、ＰＵ＃２またはＰＵ＃３が、ＰＵ＃１の機能を引き継ぐ。また、業務サーバＢＳ、管理サーバＭＳのハードウェア構成は、例えば、ＣＰＵ、メモリ、磁気ディスクドライブ、磁気ディスク、ディスプレイ、Ｉ／Ｆ、キーボード、マウス等により実現される。
【００９９】
（ＳＷグループ管理テーブル７００の記憶内容）
ここで、ＳＷグループ管理テーブル７００の記憶内容について説明する。
【０１００】
図８は、ＳＷグループ管理テーブル７００の記憶内容の一例を示す説明図である。図８において、ＳＷグループ管理テーブル７００は、ＳＷ＃１系のＳＷのＳＷグループ管理情報（例えば、ＳＷグループ管理情報８１１）と、ＳＷ＃２系のＳＷのＳＷグループ管理情報（例えば、ＳＷグループ管理情報８２１）と、を含む。
【０１０１】
ＳＷ＃１系は、ＳＷ＃１とカスケード接続されるＳＷであり、ＳＷ＃２系は、ＳＷ＃２とカスケード接続されるＳＷである。図８に示すＳＷグループ管理テーブル７００の記憶内容は、ストレージシステム１００が３ノード構成時の記憶内容である（基本ノードＮ１：ＰＵ＃１，＃２＋ＳＵ＃１、増設ノードＮ２：ＰＵ＃３＋ＳＵ＃２、増設ノードＮ３：ＰＵ＃４＋ＳＵ＃３）。
【０１０２】
ＳＷグループ管理情報は、ＳＷグループ番号、ＳＷ番号、ポート数、接続機器数および総使用ポート数を表す。ＳＷグループ番号は、スイッチグループＧの識別子である。ＳＷ番号は、ＳＷの識別子である。ポート数は、ＳＷが有するポート数である。接続機器数は、ＳＷに接続されている機器（ＰＵ、ＳＵ等）の数である。総使用ポート数は、使用中のポートの総数である。
【０１０３】
また、ＳＷグループ管理情報は、接続機器と使用ポート数とを対応付けて表す。接続機器は、ＳＷに接続されている機器である。使用ポート数は、機器との接続に使用しているポートの数である。なお、ＳＷが有するポートのうちの２つのポートは、ＳＷ間のカスケード接続用（ｆｏｒ  Ｃａｓｃａｄｅ）およびＳＷの管理用（ｆｏｒ  Ｍａｎａｇｅｍｅｎｔ）にリザーブされる。
【０１０４】
例えば、ＳＷグループ管理情報８１１は、ＳＷ＃１のＳＷグループ番号「１」、ＳＷ番号「１」、ポート数「２４」、接続機器数「９」および総使用ポート数「１２」を表す。また、ＳＷグループ管理情報８１１は、例えば、接続機器「ＰＵ＃１」の使用ポート数「１」や接続機器「ＳＵ＃１」の使用ポート数「２」を表す。なお、接続機器「ＮＵＬＬ（０）」は、未使用のポートがあることを示す。
【０１０５】
（ＳＷグループ管理テーブル７００の更新例）
つぎに、ＳＷグループ管理テーブル７００の更新例について説明する。ここでは、ストレージシステム１００が３ノード構成から７ノード構成に拡張した場合を例に挙げて、ＳＷグループ管理テーブル７００の更新例について説明する。
【０１０６】
図９は、ＳＷグループ管理テーブル７００の更新例を示す説明図である。図９において、ＳＷグループ管理テーブル７００は、ＳＷ＃１系のＳＷ＃１，＃３のＳＷグループ管理情報８１１，８１２と、ＳＷ＃２系のＳＷ＃２，＃４のＳＷグループ管理情報８２１，８２２と、を含む。
【０１０７】
ここでは、ＳＷ＃１，＃２のポート数「２４」に対して、総使用ポート数が「２２」であり、増設単位である「ＰＵ×１＋ＳＵ×１のポート数＝３」を賄うことができない。このため、ストレージシステム１００内にＳＥ＃３，＃４が増設され、ＳＷグループ管理テーブル７００にＳＷ＃３，＃４のＳＷグループ管理情報８１２，８２２が新たに作成されている。
【０１０８】
例えば、ＳＷグループ管理情報８１２は、ＳＷ＃３のＳＷグループ番号「２」、ＳＷ番号「３」、ポート数「２４」、接続機器数「４」および総使用ポート数「５」を表す。また、ＳＷグループ管理情報８１２は、例えば、接続機器「ＰＵ＃８」の使用ポート数「１」や接続機器「ＳＵ＃７」の使用ポート数「２」を表す。
【０１０９】
（ボリューム管理テーブル７１０の記憶内容）
つぎに、ボリューム管理テーブル７１０の記憶内容について説明する。
【０１１０】
図１０は、ボリュームインデックステーブル１０００の記憶内容の一例を示す説明図である。図１０において、ボリュームインデックステーブル１０００は、ボリューム番号、ボリューム名、稼働ＰＵ番号、ボリューム属性、ボリュームサイズ、ボリューム状態および再配置状況のフィールドを有する。各フィールドに情報を設定することで、ボリューム情報１０００−１〜１０００−ｎがレコードとして記憶される。
【０１１１】
ここで、ボリューム番号は、ＶＤＩＳＫの識別子である。ボリューム名は、ＶＤＩＳＫの名称である。稼働ＰＵ番号は、ＶＤＩＳＫが稼働しているＰＵの識別子である。ボリューム属性は、ＶＤＩＳＫの属性である。ボリュームサイズは、業務サーバＢＳからみたＶＤＩＳＫのサイズ（ＧＢ）である。ボリューム状態は、ＶＤＩＳＫにアクセスできるか否かを示す状態である。再配置状況は、ＶＤＩＳＫの再配置状況を示す。
【０１１２】
例えば、ボリューム情報１０００−１は、ＶＤＩＳＫ１のボリューム名「Ｖｄｉｓｋ１」、稼働ＰＵ番号「１」、ボリューム属性「シンプロボリューム」、ボリュームサイズ「５００」、ボリューム状態「正常」および再配置状況「再配置中」を示している。なお、ボリューム情報１０００−ｎのように、ボリューム名が「ＮＵＬＬ（０）」のボリューム情報は、未作成のＶＤＩＳＫの情報である。
【０１１３】
図１１は、ミラーボリュームインデックステーブル１１００の記憶内容の一例を示す説明図である。図１１において、ミラーボリュームインデックステーブル１１００は、ボリューム番号、ミラー数、ミラーボリューム番号１およびミラーボリューム番号２のフィールドを有する。各フィールドに情報を設定することで、ミラーボリューム情報（例えば、ミラーボリューム情報１１００−１，１１００−２）がレコードとして記憶される。
【０１１４】
ここで、ボリューム番号は、ミラーボリュームの識別子である。ミラー数は、ミラーリングするボリュームの数である。ミラーボリューム番号１，２は、ミラーボリュームの実体であるＶＤＩＳＫの識別子である。例えば、ミラーボリューム情報１１００−１は、ＶＤＩＳＫ２のミラー数「２」、ミラーボリューム番号１「１２７」およびミラーボリューム番号２「１２８」を示している。
【０１１５】
図１２は、ボリュームセグメントテーブル１２００の記憶内容の一例を示す説明図である。図１２の例は、ストレージシステム１００に７ノード目の増設ノード（ＰＵ＃８＋ＳＵ＃７）が追加された後に、ボリューム（ボリューム番号７０１）が作成された場合のボリュームセグメントテーブル１２００の記憶内容である。
【０１１６】
図１２において、ボリュームセグメントテーブル１２００は、ボリューム番号、セグメントセット番号、セグメント番号、ＳＷグループ番号、ストレージ装置、ＬＵＮ番号およびセグメント状態のフィールドを有する。各フィールドに情報を設定することで、セグメント情報（例えば、セグメント情報１２００−１，１２００−２）がレコードとして記憶される。
【０１１７】
ここで、ボリューム番号は、ＶＤＩＳＫの識別子である。セグメントセット番号は、ＶＤＩＳＫを構成するセグメントセットの識別子である。セグメント番号は、セグメントセットを構成するセグメントの識別子である。ＳＷグループ番号は、セグメントが属するスイッチグループＧの識別子である。
【０１１８】
ストレージ装置は、セグメントが属するＳＵの識別子である。ＬＵＮ番号は、セグメントが割り当てられたＬＵＮの識別子である。セグメント状態は、セグメントにアクセスできるか否かを示す状態である。例えば、セグメント情報１２００−１は、ＶＤＩＳＫ１のセグメントセット１のセグメント１のＳＷグループ番号「１」、ストレージ装置「１」、ＬＵＮ番号「１」およびセグメント状態「有効」を示している。
【０１１９】
（再配置計画テーブル７２０の記憶内容）
つぎに、再配置計画テーブル７２０の記憶内容について説明する。
【０１２０】
図１３は、再配置計画テーブル７２０の記憶内容の一例を示す説明図（その１）である。図１３の例は、ストレージシステム１００に６ノード目までの増設ノードが追加された場合の再配置計画テーブル７２０の記憶内容である。
【０１２１】
図１３において、再配置計画テーブル７２０は、ボリューム番号、セグメントセット番号、セグメント番号、ＳＷグループ番号、現ストレージ装置、現ＬＵＮ番号、再配置ストレージ装置、再配置ＬＵＮ番号および再配置状況のフィールドを有する。各フィールドに情報を設定することで、再配置計画情報（例えば、再配置計画情報１３００−１〜１３００−５）がレコードとして記憶される。
【０１２２】
ここで、ボリューム番号は、ＶＤＩＳＫの識別子である。セグメントセット番号は、ＶＤＩＳＫを構成するセグメントセットの識別子である。セグメント番号は、セグメントセットを構成するセグメントの識別子である。ＳＷグループ番号は、セグメントが属するスイッチグループＧの識別子である。
【０１２３】
現ストレージ装置は、再配置前のセグメントが属するＳＵの識別子である。現ＬＵＮ番号は、再配置前のセグメントが割り当てられたＬＵＮの識別子である。再配置ストレージ装置は、再配置後のセグメントが属するＳＵの識別子である。再配置ＬＵＮ番号は、再配置後のセグメントが割り当てられるＬＵＮの識別子である。再配置状況は、セグメントの再配置状況を示す。
【０１２４】
例えば、再配置計画情報１３００−１は、ＶＤＩＳＫ１のセグメントセット１のセグメント１のＳＷグループ番号「１」、現ストレージ装置「１」、現ＬＵＮ番号「１」、再配置ストレージ装置「１」、再配置ＬＵＮ番号「１」および再配置状況「再配置済」を示す。
【０１２５】
図１４は、再配置計画テーブル７２０の記憶内容の一例を示す説明図（その２）である。図１４の例は、ストレージシステム１００に７ノード目の増設ノード（ＰＵ＃８＋ＳＵ＃７）が追加された後に、ボリューム（ボリューム番号７０１）が作成され、その後、ストレージシステム１００に８ノード目の増設ノード（ＰＵ＃９＋ＳＵ＃８）が追加された場合の再配置計画テーブル７２０の記憶内容である。
【０１２６】
図１４において、再配置計画テーブル７２０には、スイッチグループＧ２に属するセグメントの再配置計画情報（例えば、再配置計画情報１４００−１〜１４００−４）が記憶されている。例えば、再配置計画情報１４００−１は、ＶＤＩＳＫ７０１のセグメントセット１のセグメント１のＳＷグループ番号「２」、現ストレージ装置「７」、現ＬＵＮ番号「１」、再配置ストレージ装置「７」、再配置ＬＵＮ番号「１」および再配置状況「再配置不要」を示す。
【０１２７】
また、例えば、再配置計画情報１４００−２は、ＶＤＩＳＫ７０１のセグメントセット１のセグメント２のＳＷグループ番号「２」、現ストレージ装置「７」、現ＬＵＮ番号「２」、再配置ストレージ装置「８」、再配置ＬＵＮ番号「１」および再配置状況「再配置中」を示す。
【０１２８】
（セグメントの割当量ｑの偏りの判定例）
つぎに、スイッチグループＧに属するＳＵに含まれる各ＬＵＮのセグメントの割当量ｑの偏りの判定例について説明する。ＰＵ＃１は、スイッチグループＧに属する各ＬＵＮのセグメントの割当量ｑを監視し、「偏りあり」と検出した場合に、装置管理ＧＵＩ制御部により、偏りが発生している旨を通知する。監視契機としては、例えば、ノードの増設に伴うシステム構成変更時、定期的な監視時間の到来、ＳＵの搭載量の増加時などがある。
【０１２９】
具体的には、例えば、まず、ＰＵ＃１は、ＳＷグループ管理テーブル７００を参照して、スイッチグループＧに属するＳＵを特定する。図９に示したＳＷグループ管理テーブル７００を例に挙げると、ＰＵ＃１は、スイッチグループＧ１に属するＳＵ＃１〜＃６を特定する。また、ＰＵ＃１は、スイッチグループＧ２に属するＳＵ＃７を特定する。
【０１３０】
つぎに、ＰＵ＃１は、ボリューム管理テーブル７１０を参照して、スイッチグループＧごとに、スイッチグループＧに属する各ＬＵＮのセグメントの割当量ｑを算出する。つぎに、ＰＵ＃１は、スイッチグループＧごとに、スイッチグループＧに属する全ＬＵＮのうち、セグメントの割当量ｑが最大であるＬＵＮの最大割当量ｑ＿ｍａｘとセグメントの割当量ｑが最小であるＬＵＮの最小割当量ｑ＿ｍｉｎとを特定する。
【０１３１】
そして、ＰＵ＃１は、スイッチグループＧごとに、最大割当量ｑ＿ｍａｘと最小割当量ｑ＿ｍｉｎとの差分ｄが、最大割当量ｑ＿ｍａｘの割合α以上、かつ、差分ｄがサイズβ以上であるか否かを判断する。ここで、最大割当量ｑ＿ｍａｘの割合α以上、かつ、差分ｄがサイズβ以上の場合、ＰＵ＃１は、スイッチグループＧに属する各ＬＵＮのセグメントの割当量ｑに偏りがあると判定する。
【０１３２】
なお、割合αおよびサイズβは、任意に設定可能である。割合αは、例えば、５〜１０［％］程度の値に設定される。サイズβは、例えば、６４［ＧＢ］や１２８［ＧＢ］程度の値に設定される。
【０１３３】
（ボリュームの再配置計画）
つぎに、ボリューム（ＶＤＩＳＫ）の再配置計画について説明する。ＰＵ＃１は、ＳＵを構成するＬＵＮにおけるセグメントの割当量ｑにより再配置計画を立てる。このため、増設されるＳＵの搭載容量が既存のＳＵの搭載容量と異なる場合であっても均等な再配置を行うことができる。
【０１３４】
図１５は、ボリュームの再配置計画例を示す説明図である。図１５の１項に示すように、スイッチグループＧ１において、８．４［ＴＢ］の基本セット（ＳＵ＃１）に、８．４［ＴＢ］の拡張セット（ＳＵ＃２）を増設する場合を想定する。この場合、ＰＵ＃１は、ＳＵ＃１とＳＵ＃２との間で各ＬＵＮのセグメントの割当量ｑが均等になるように分散配置する。
【０１３５】
図１５の２項に示すように、スイッチグループＧ１において、８．４［ＴＢ］の基本セット（ＳＵ＃１）に、１６．８［ＴＢ］の拡張セット（ＳＵ＃２）を増設する場合を想定する。この場合、ＰＵ＃１は、ＳＵ＃１とＳＵ＃２との間で各ＬＵＮのセグメントの割当量ｑが均等になるように分散配置する。
【０１３６】
図１５の３項に示すように、スイッチグループＧ１において、８．４［ＴＢ］の基本セット（ＳＵ＃１）と８．４［ＴＢ］の拡張セット（ＳＵ＃２）に、１６．８［ＴＢ］の拡張セット（ＳＵ＃３）を増設する場合を想定する。この場合、ＰＵ＃１は、ＳＵ＃１とＳＵ＃２とＳＵ＃３との間で各ＬＵＮのセグメントの割当量ｑが均等になるように分散配置する。
【０１３７】
ここで、図１６を用いて、スケールアウトによって増設されるＳＵ＃２に対して、スイッチグループＧ内の既存のボリュームがどのように再配置されるのかを説明する。ここでは、スケールアウト後に自動で再配置処理が起動される場合について説明するが、管理サーバＭＳのＧＵＩ画面から再配置指示を手動で行うこともできる。
【０１３８】
図１６は、ボリュームの再配置例を示す説明図（その１）である。図１６において、ボリューム１を構成するセグメントＡ０〜Ａ３１と、ボリューム２を構成するセグメントＢ０〜Ｂ１５とがＳＵ＃１に配置されている（図１６中、再配置前）。なお、図１６中、各ＳＵ＃１，＃２内の円柱は、各ＳＵ＃１，＃２内のＬＵＮを表す。
【０１３９】
まず、ＰＵ＃１は、ＳＵ＃１とＳＵ＃２との間で各ＬＵＮのセグメントの割当量ｑが均等になるように再配置計画テーブル７２０を作成する（図１６中、再配置の案）。なお、各セグメントの配置位置は暫定的なものである。
【０１４０】
つぎに、ＰＵ＃１は、再配置計画テーブル７２０を参照して、ボリューム１のセグメントＡ０〜Ａ３１について再配置する。ここでは、ボリューム１のセグメントＡ８〜Ａ１５およびＡ２４〜Ａ３１がＳＵ＃２に再配置されている（図１６中、再配置中）。
【０１４１】
つぎに、ＰＵ＃１は、再配置計画テーブル７２０を参照して、ボリューム２のセグメントＢ０〜Ｂ１５について再配置する。ここでは、ボリューム２のセグメントＢ８〜Ｂ１５がＳＵ＃２に再配置されている（図１６中、再配置後）。これにより、ＳＵ＃１とＳＵ＃２とで物理容量としては均等となる。
【０１４２】
なお、ＬＵＮの使用状況は不連続に見えるが、ボリュームがワイドストライピングされたセグメントで構成されていれば性能面で問題はない。すなわち、ＬＵＮの使用状況の不連続性は性能面に影響しない。このため、不要な移動処理を避ける意味でもセグメントＡ１６〜Ａ２３やセグメントＢ０〜Ｂ７を移動させないほうが、装置として無駄な処理を削減することができる。
【０１４３】
また、各ＰＵや各ＳＵの保守点検等で一時的に再配置処理を止めたい場合のために、ストレージシステム１００は、再配置処理の一時停止機能および再開機能を有する。また、ストレージシステム１００は、再配置処理の停止機能を有する。ただし、再配置処理を停止すると、一度計画した再配置計画を破棄することになり、再配置を再度実行する際に、ストレージシステム１００内の各ＬＵＮのセグメントの割当量ｑの偏り判定および再計画テーブル作成の処理が実行されることとなる。
【０１４４】
これに対し、一時停止機能を利用した場合は、再配置の一時停止中、ＰＵ＃１は、ボリュームの再配置のために立てた再配置計画を破棄せずに保持しておく。そして、ＰＵ＃１は、再開指示を受けた場合に、ボリューム管理テーブル７１０および再配置計画テーブル７２０を参照して、再開すべきエントリから再配置処理を継続する。これにより、再配置中の一時停止および一時停止からの再開が可能となる。
【０１４５】
（ボリュームインデックステーブル１０００の更新例）
つぎに、ボリュームインデックステーブル１０００の更新例について説明する。
【０１４６】
図１７は、ボリュームの配置例を示す説明図である。図１７において、ＶＤＩＳＫ１を構成するセグメント＃１〜＃１６がＳＵ＃１に配置されている。また、基本ノードＮ１に、ＰＵ＃３とＳＵ＃２をセットとする増設ノードＮ２が増設されている。この場合、スイッチグループＧ１に属するＳＵ＃１，＃２に含まれる各ＬＵＮのセグメントの割当量ｑに偏りが生じるため、ＶＤＩＳＫ１の再配置処理が行われる。
【０１４７】
図１８は、ボリュームインデックステーブル１０００の更新例を示す説明図である。図１８において、基本ノードＮ１に増設ノードＮ２が増設されると、ボリュームインデックステーブル１０００内のボリューム情報１８００−１の再配置状況が「再配置待」から「再配置中」に更新される。
【０１４８】
（再配置計画テーブル７２０の更新例）
図１９は、再配置計画テーブル７２０の更新例を示す説明図である。図１９の（１９−１）において、ＰＵ＃１は、ＶＤＩＳＫ１のセグメントセット単位でスイッチグループＧに属するすべてのＳＵに割り付け、かつ、セグメントを割り付ける。また、ＰＵ＃１は、ＬＵＮ番号についても連続ＬＵＮを利用するように割り付けるように計画を立てる。具体的には、例えば、ＰＵ＃１は、偶数セグメントをＳＵ＃２の連続ＬＵＮに割り付けるように計画する。また、ＰＵ＃１は、奇数セグメントをＳＵ＃１の連続ＬＵＮに割り付けるように計画する。
【０１４９】
図１９の（１９−２）において、ＰＵ＃１は、上述したように機械的に再配置計画を立てた後、再配置によるデータ移動のためのコピー処理が少なくなるように再配置計画の見直しを行う。具体的には、例えば、ＰＵ＃１は、現状（現ストレージ装置および現ＬＵＮ番号）と、再配置後（再配置ストレージ装置および再配置ＬＵＮ番号）とをセグメントセット単位で比べる。
【０１５０】
例えば、セグメントセット番号３については、現ＬＵＮ番号と再配置ＬＵＮ番号がすべて不一致であるが、現ＬＵＮ番号を見ると２つのセグメントが同じＬＵＮ番号に割り当たっている以外は、異なるＬＵＮに割り振られている。このため、ＰＵ＃１は、同じＬＵＮに２つのセグメントが割り付けられているものだけをその他のＬＵＮに割り振るように再計画する（ＬＵＮ番号的にはセグメント順ではないが、異なるＬＵＮに割り付けられているならば性能影響はないと判断）。
【０１５１】
再配置すべきセグメントについては、ＰＵ＃１は、再配置状況を「再配置待ち」とする。また、再配置不要なセグメントについては、ＰＵ＃１は、再配置計画テーブル７２０の再配置状況を「再配置不要」とする。
【０１５２】
（同一ＳＵ内の再配置計画）
つぎに、同一ＳＵにおいて再配置によるセグメント移動のためのコピー処理が少なくなるようにする再配置計画について説明する。同一ＳＵ内の再配置計画は、例えば、ＳＵ間で各ＬＵＮのセグメントの割当量ｑが均等になるようにするＳＵ間の再配置計画が行われた後に作成される。
【０１５３】
図２０は、ボリュームの再配置例を示す説明図（その２）である。図２０において、あるＳＵ（例えば、ＳＵ＃１）内にセグメントａ〜ｐから構成されるセグメントセットが「再配置前」のように配置されていたとする。この場合、例えば、ＰＵ＃１は、「再配置の案」のように、セグメントの未使用領域（図２０中、白抜き四角）とセグメント移動により空くセグメントを利用してセグメントａ〜ｈを整列させることができる。なお、図２０中、黒塗り四角は、セグメントの使用中領域である。
【０１５４】
ただし、セグメントａ〜ｄおよびセグメントｅ〜ｇが互いに異なるＲＡＩＤグループに配置されているので、セグメントｈだけを別のＲＡＩＤグループに移動すればＩＯアクセス性能の観点からは十分改善される。このため、ＰＵ＃１は、セグメントｈだけを移動させる再配置計画を立てる。
【０１５５】
この結果、「再配置後」のように、セグメントｈだけが別のＬＵＮに移動されて、ＬＵＮ間で均等になる。このように、同一ＳＵにおいて再配置によるセグメント移動のためのコピー処理が少なくなるようにする再配置計画を立てることにより、余分なセグメントの移動を抑えつつ、アクセス性能を向上させることができる。また、再配置のためにＰＵ／ＳＵ間のアクセスも削減することができる。
【０１５６】
（ＳＵ増設時のデータ再配置）
つぎに、ストレージシステム１００へのＳＵ増設時のデータ再配置について説明する。
【０１５７】
図２１および図２２は、ＳＵ増設時のデータ再配置の一例を示す説明図である。図２１（ｉ）において、ストレージシステム１００内のスイッチグループＧ１（ＳＵ＃１〜＃５）にＳＵ＃６が増設されている。ＰＵ＃１は、スイッチグループＧ１にＳＵ＃６を増設するまでは、スイッチグループＧ１の中でデータ再配置を実施する。
【０１５８】
図２１（ｉｉ）において、ストレージシステム１００にＳＵ＃７が増設されると、ＳＷ＃１（ＳＷ＃２）にＳＷ＃３（ＳＷ＃４）がカスケード接続されてスイッチグループＧ２が作成される。ＳＵ＃７増設時は、スイッチグループＧ２には増設されたＳＵ＃７のみがある状態である。また、ＰＵ＃１は、スイッチグループＧをまたいだデータ再配置は行わない。このため、ＰＵ＃１は、ＳＵ＃７増設時にデータ再配置を実施しない。
【０１５９】
図２２（ｉｉｉ）において、ストレージシステム１００内のスイッチグループＧ２（ＳＵ＃７）にＳＵ＃８が増設されている。この場合、ＰＵ＃１は、スイッチグループＧ２の中でデータ再配置を実施する。このように、データ配置をスイッチグループＧ内に収めることでデータアクセス性能を最適に保つことが可能となり、さらに、データ再配置範囲の極小化（スイッチグループＧ内）によってデータ再配置処理量を低減することができる。
【０１６０】
（再配置処理の具体的処理内容）
つぎに、ボリュームの再配置処理の具体的な処理内容の一例について説明する。各ＰＵは、再配置処理によるセグメント移動による内部的な回線帯域の使用、および各ＰＵのＣＰＵ負荷の影響により業務の運用に支障が出ないように、再配置処理を制御する。
【０１６１】
具体的には、例えば、ＰＵ（例えば、ＰＵ＃１）は、業務サーバＢＳからの１秒当たりのアクセス数（ＩＯＰＳ：Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）が、ＰＵが処理できる最大ＩＯＰＳに達しているか否かを判断する。ここで、業務サーバＢＳからのＩＯＰＳが最大ＩＯＰＳに達している場合、ＰＵは、再配置処理をせず業務ＩＯを優先させる。
【０１６２】
一方、業務サーバＢＳからのＩＯＰＳが最大ＩＯＰＳに達していない場合は、ＰＵは、空きのＩＯＰＳ分を利用して再配置処理を行う。なお、空きのＩＯＰＳとは、最大ＩＯＰＳから現ＩＯＰＳを引いたものである。これにより、業務停止することなく、また、業務への影響を最小限に抑えつつボリュームの再配置を行うことができる。
【０１６３】
ただし、再配置処理の実行によるＰＵ／ＳＵ間の帯域利用およびＰＵのＣＰＵ負荷が増大することにより、業務ＩＯのＩＯＰＳが減少することが考えられる。そこで、ＰＵは、現ＩＯＰＳとＰＵの最大ＩＯＰＳの差分だけをみるのではなく、再配置処理により現ＩＯＰＳの減少率が所定の割合（例えば、１５［％］）を超える場合には、再配置処理を間引くことにより業務のＩＯＰＳを維持できるようにしてもよい。
【０１６４】
具体的には、例えば、ＰＵは、以下のように、現ＩＯＰＳが最大ＩＯＰＳの９５％以上である場合は再配置処理を抑止するために処理中にスリープ（例えば、１〜５［秒］程度待つ）を入れることにしてもよい。なお、ｘは、ＰＵの最大ＩＯＰＳであり、ｙは、現ＩＯＰＳである。また、ＰＵの最大ＩＯＰＳは、予め設定されている。
【０１６５】
０．９５ｘ≦ｙ  ・・・再配置処理をスリープさせる
０．９５ｘ＞ｙ  ・・・再配置処理を稼働させる
【０１６６】
また、ＰＵは、再配置を稼働させたことにより、「０．８５（直前ｙ）≦（現ｙ）」となった場合も、例えば、再配置処理中にスリープを入れることにより業務への影響を抑える。なお、「直前ｙ」は、例えば、再配置処理直前の現ＩＯＰＳである。
【０１６７】
（ストレージシステム１００の各種処理手順）
つぎに、実施例にかかるストレージシステム１００の各種処理手順について説明する。まず、ストレージシステム１００のノード増設処理手順について説明する。ここでは、基本ノードＮ１に増設ノードＮ２を追加する場合を例に挙げて、ストレージシステム１００のノード増設処理手順について説明する。
【０１６８】
＜ノード増設処理手順＞
図２３および図２４は、ストレージシステム１００のノード増設処理手順の一例を示すシーケンス図である。図２３のシーケンス図において、ＣＥ（Ｃｕｓｔｏｍｅｒ  Ｅｎｇｉｎｅｅｒ）は、基本ノードＮ１に増設ノードＮ２を物理的に接続し、ＳＵ＃２の電源を投入する（ステップＳ２３０１）。
【０１６９】
クラスタ制御Ｍは、ＳＵ＃２の増設を検出する（ステップＳ２３０２）。クラスタ制御Ｍは、装置管理ＧＵＩ制御部＃１にＳＵ＃２の増設検出を通知する（ステップＳ２３０３）。装置管理ＧＵＩ制御部＃１は、ＳＵ増設検出事象を管理サーバＭＳのＧＵＩに出力する（ステップＳ２３０４）。
【０１７０】
クラスタ制御Ｍは、ＳＵ＃２のストレージ制御部＃２に対して、新たな管理用ＩＰアドレスの割り付けを指示する（ステップＳ２３０５）。ＳＵ＃２のストレージ制御部＃２は、管理用ＩＰアドレスを指示された値に設定する（ステップＳ２３０６）。クラスタ制御Ｍは、ＰＵ＃１のＳＵ制御部＃１とＰＵ＃２のＳＵ制御部＃２にＳＵ＃２への接続を指示する（ステップＳ２３０７）。
【０１７１】
ＳＵ制御部＃１は、ＳＵ＃２のディスクを問い合わせて、ＳＵ＃２の管理ＤＢ用のＬＵＮおよびユーザデータ用のＬＵＮを検出する（ステップＳ２３０８）。ＳＵ制御部＃２は、ＳＵ＃２のディスクを問い合わせて、ＳＵ＃２の管理ＤＢ用のＬＵＮおよびユーザデータ用のＬＵＮを検出する（ステップＳ２３０９）。ＳＵ制御部＃１は、検出したＬＵＮに対してログイン処理を行う（ステップＳ２３１０）。ＳＵ制御部＃２は、検出したＬＵＮに対してログイン処理を行う（ステップＳ２３１１）。
【０１７２】
ＳＵ制御部＃１は、ＳＵ＃２との接続完了をクラスタ制御Ｍに通知する（ステップＳ２３１２）。ＳＵ制御部＃２は、ＳＵ＃２との接続完了をクラスタ制御Ｍに通知する（ステップＳ２３１３）。クラスタ制御Ｍは、装置管理ＧＵＩ制御部＃１にＳＵ＃２の追加完了を通知する（ステップＳ２３１４）。装置管理ＧＵＩ制御部＃１は、ＳＵ追加完了事象を管理サーバＭＳのＧＵＩに出力する（ステップＳ２３１５）。
【０１７３】
ＣＥは、増設ノードＮ２のＰＵ＃３の電源を投入する（ステップＳ２３１６）。クラスタ制御Ｍは、ＰＵ＃３の増設を検出すると、装置管理ＧＵＩ制御部＃１にＰＵ＃３の増設検出を通知する（ステップＳ２３１７）。装置管理ＧＵＩ制御部＃１は、ＰＵ検出事象を管理サーバＭＳのＧＵＩに出力する（ステップＳ２３１８）。
【０１７４】
図２４のシーケンス図において、クラスタ制御Ｍは、検出したＰＵ＃３のＩＰアドレスの設定をＰＵ制御部＃３に指示する（ステップＳ２４０１）。ＰＵ制御部＃３は、ＩＰアドレスを管理用ＩＰアドレスに変更する（ステップＳ２４０２）。クラスタ制御Ｍは、ＰＵ＃３のＳＵ制御部＃３にＳＵ＃１およびＳＵ＃２への接続を指示する（ステップＳ２４０３）。
【０１７５】
ＳＵ制御部＃３は、ＳＵ＃１のディスクを問い合わせて、ＳＵ＃１の管理ＤＢ用のＬＵＮおよびユーザデータ用のＬＵＮを検出する（ステップＳ２４０４）。ＳＵ制御部＃３は、検出したＬＵＮに対してログイン処理を行う（ステップＳ２４０５）。ＳＵ制御部＃３は、ＳＵ＃２のディスクを問い合わせて、ＳＵ＃２の管理ＤＢ用のＬＵＮおよびユーザデータ用のＬＵＮを検出する（ステップＳ２４０６）。
【０１７６】
ＳＵ制御部＃３は、検出したＬＵＮに対してログイン処理を行う（ステップＳ２４０７）。ＳＵ制御部＃３は、ＳＵ＃１およびＳＵ＃２との接続完了をクラスタ制御Ｍに通知する（ステップＳ２４０８）。クラスタ制御Ｍは、ＰＵ＃２のクラスタ制御部＃２およびＰＵ＃３のクラスタ制御部＃３に対してクラスタ変更を指示する（ステップＳ２４０９）。
【０１７７】
クラスタ制御Ｍは、ＰＵ＃３をクラスタ管理情報に組み込むことにより、クラスタ構成をＰＵ＃１，＃２，＃３に更新する（ステップＳ２４１０）。クラスタ制御部＃２は、ＰＵ＃３をクラスタ管理情報に組み込むことにより、クラスタ構成をＰＵ＃１，＃２，＃３に更新する（ステップＳ２４１１）。クラスタ制御部＃３は、ＰＵ＃３をクラスタ管理情報に組み込むことにより、クラスタ構成をＰＵ＃１，＃２，＃３に更新する（ステップＳ２４１２）。
【０１７８】
クラスタ制御Ｍは、装置管理ＧＵＩ制御部＃１にＰＵ＃３の追加完了を通知する（ステップＳ２４１３）。装置管理ＧＵＩ制御部＃１は、ＰＵ追加完了事象を管理サーバＭＳのＧＵＩに出力する（ステップＳ２４１４）。装置管理ＧＵＩ制御部＃１は、スケールアウトボタンを管理サーバＭＳのＧＵＩに出力する（ステップＳ２４１５）。
【０１７９】
利用者が、接続および内部的な装置組み込みが完了したことを了承する意味で、管理サーバＭＳのＧＵＩ上の「スケールアウトボタン」をクリックすると増設処理が完了する。スケールアウトの完了指示により、ストレージシステム１００としてのストレージ容量はＳＵ＃２の分だけ増加し、ＳＵ＃２上にも新たなデータを格納できるようになる。
【０１８０】
また、例えば、ステップＳ２４１３において、クラスタ制御Ｍは、ボリューム管理ＭにＰＵ＃３の追加完了を通知する。ボリューム管理Ｍは、ＰＵ＃３の追加完了を受け付けると、ストレージシステム１００内のＳＷに直接接続されるＰＵとＳＵとをグループ化して、ＳＷグループ管理テーブル７００を更新する。
【０１８１】
＜再配置処理手順＞
つぎに、ストレージシステム１００の再配置処理手順について説明する。再配置処理は、例えば、ストレージシステム１００のスケールアウト完了後、または管理サーバＭＳのＧＵＩ画面から再配置指示を行った場合に実行される。
【０１８２】
図２５〜図２８は、ストレージシステム１００の再配置処理手順の一例を示すシーケンス図である。図２５のシーケンス図において、管理サーバＭＳの装置管理ＧＵＩは、スケールアウト指示または再配置指示をＰＵ＃１の装置管理ＧＵＩ制御部＃１に通知する（ステップＳ２５０１）。スケールアウト指示は、例えば、ＧＵＩ画面上の「スケールアウトボタン」がクリックされると通知される。また、再配置指示は、例えば、ＧＵＩ画面上の「再配置ボタン」がクリックされると通知される。
【０１８３】
ＰＵ＃１の装置管理ＧＵＩ制御部＃１は、スケールアウト指示を受け付けたか否かを判断する（ステップＳ２５０２）。ここで、スケールアウト指示を受け付けた場合（ステップＳ２５０２：Ｙｅｓ）、装置管理ＧＵＩ制御部＃１からボリューム管理Ｍにスケールアウト指示が通知され、ボリューム管理Ｍは、追加されたＳＵ＃２の容量分をストレージシステム１００全体の容量に加えて、ＳＵ＃２の領域も利用できる状態にする（ステップＳ２５０３）。
【０１８４】
一方、再配置指示を受け付けた場合（ステップＳ２５０２：Ｎｏ）、装置管理ＧＵＩ制御部＃１は、ボリューム管理Ｍに再配置指示を通知する（ステップＳ２５０４）。ボリューム管理Ｍは、ＳＷグループ管理テーブル７００を参照して、スケールアウトでスイッチグループＧが増えたか否かを判断する（ステップＳ２５０５）。
【０１８５】
ここで、スイッチグループＧが増えた場合（ステップＳ２５０５：Ｙｅｓ）、ボリューム管理Ｍは、ステップＳ２８０３に移行する。一方、スイッチグループＧが増えていない場合（ステップＳ２５０５：Ｎｏ）、ボリューム管理Ｍは、図２６に示すステップＳ２６０１に移行する。
【０１８６】
図２６のシーケンス図において、ボリューム管理Ｍは、構成管理ＤＢからボリューム管理テーブル７１０を読み出す（ステップＳ２６０１）。ボリューム管理Ｍは、ボリューム管理テーブル７１０を参照して、ストレージシステム１００内の各スイッチグループＧに属するＳＵに含まれる各ＬＵＮのセグメントの割当量ｑを算出する（ステップＳ２６０２）。
【０１８７】
ボリューム管理Ｍは、算出した各ＬＵＮのセグメントの割当量ｑに基づいて、ストレージシステム１００内の各スイッチグループＧに属するＳＵに含まれる各ＬＵＮのセグメントの割当量ｑに偏りがあるか否かを判断する（ステップＳ２６０３）。
【０１８８】
ここで、スイッチグループＧに偏りがない場合（ステップＳ２６０３：Ｎｏ）、ボリューム管理Ｍは、図２８のステップＳ２８０３に移行する。一方、スイッチグループＧに偏りがある場合（ステップＳ２６０３：Ｙｅｓ）、ボリューム管理Ｍは、スイッチグループＧごとの再配置計画を立てて再配置計画テーブル７２０を作成する（ステップＳ２６０４）。この際、ボリューム管理Ｍは、再配置すべきセグメントについて、再配置計画テーブル７２０の再配置状況を「再配置待」にする。
【０１８９】
ボリューム管理Ｍは、再配置計画テーブル７２０を参照して、各ＰＵ＃１，＃２，＃３の再配置制御スレッドを生成する（ステップＳ２６０５）。各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、ボリューム管理Ｍから指示されたボリュームの再配置をセグメント単位で各ＰＵ＃１，＃２，＃３のボリューム管理Ａ＃１，＃２，＃３に指示する（ステップＳ２６０６）。
【０１９０】
具体的には、例えば、各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、各ＰＵ＃１，＃２，＃３のボリューム管理Ａ＃１，＃２，＃３に再配置すべきディスク情報（ディスクを特定するための情報、移動すべきセグメント）および移動先の情報を通知する。
【０１９１】
図２７のシーケンス図において、各ボリューム管理Ａ＃１，＃２，＃３は、業務ＩＯの現ＩＯＰＳが最大ＩＯＰＳの９５％以上か否かを判断する（ステップＳ２７０１）。ここで、現ＩＯＰＳが最大ＩＯＰＳの９５％以上の場合（ステップＳ２７０１：Ｙｅｓ）、各ボリューム管理Ａ＃１，＃２，＃３は、一定時間スリープして（ステップＳ２７０２）、ステップＳ２７０１に戻る。
【０１９２】
一方、現ＩＯＰＳが最大ＩＯＰＳの９５％未満の場合、（ステップＳ２７０１：Ｎｏ）、各ボリューム管理Ａ＃１，＃２，＃３は、指示に従ってセグメントのコピーを行うことにより、指示されたセグメントを更新する（ステップＳ２７０３）。
【０１９３】
各ボリューム管理Ａ＃１，＃２，＃３は、業務ＩＯのＩＯＰＳが１５％ダウンしたか否かを判断する（ステップＳ２７０４）。ここで、１５％ダウンした場合（ステップＳ２７０４：Ｙｅｓ）、各ボリューム管理Ａ＃１，＃２，＃３は、一定時間スリープして（ステップＳ２７０５）、ステップＳ２７０４に戻る。
【０１９４】
一方、１５％ダウンしていない場合（ステップＳ２７０４：Ｎｏ）、各ボリューム管理Ａ＃１，＃２，＃３は、指示を依頼してきた各ＰＵ＃１，＃２，＃３の再配置制御スレッドに対してコピー完了を通知する（ステップＳ２７０６）。なお、コピー完了の通知を受けた再配置制御スレッドは、コピー完了したセグメントについて、再配置計画テーブル７２０の再配置状況を「再配置完了」にする。
【０１９５】
図２８のシーケンス図において、各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、再配置計画テーブル７２０を参照して、再配置していない残セグメントがあるか否かを判断する（ステップＳ２８０１）。ここで、残セグメントがある場合（ステップＳ２８０１：Ｙｅｓ）、各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、図２６に示したステップＳ２６０６に戻る。
【０１９６】
一方、残セグメントがない場合（ステップＳ２８０１：Ｎｏ）、各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、ボリュームの再配置完了をボリューム管理Ｍに通知する。ボリューム管理Ｍは、再配置計画テーブル７２０を参照して、未処理のボリュームがあるか否かを判断する（ステップＳ２８０２）。
【０１９７】
ここで、未処理のボリュームがある場合（ステップＳ２８０２：Ｙｅｓ）、ボリューム管理Ｍは、図２６に示したステップＳ２６０５に戻る。一方、未処理のボリュームがない場合（ステップＳ２８０２：Ｎｏ）、ボリューム管理Ｍは、再配置指示を契機として動作したか否かを判断する（ステップＳ２８０３）。
【０１９８】
ここで、再配置指示を契機として動作した場合（ステップＳ２８０３：Ｙｅｓ）、ストレージシステム１００は一連の処理を終了する。一方、スケールアウト指示を契機として動作した場合（ステップＳ２８０３：Ｎｏ）、ボリューム管理Ｍは、一定時間スリープして（ステップＳ２８０４）、図２５に示したステップＳ２５０５に戻る。
【０１９９】
これにより、各スイッチグループＧに属するＳＵ間で各ＬＵＮのセグメントの割当量ｑが均等になるようにボリュームの再配置を行うことができる。また、スケールアウト指示を契機として動作した場合には、ストレージシステム１００内の各スイッチグループＧに属するＳＵに含まれる各ＬＵＮのセグメントの割当量ｑに偏りがあるか否かを定期的に判断してボリュームの再配置を行うことができる。
【０２００】
＜再配置停止処理手順＞
つぎに、ストレージシステム１００の再配置停止処理手順について説明する。まず、管理サーバＭＳのユーザにより再配置処理の停止指示が行われる場合の再配置停止処理手順について説明する。
【０２０１】
図２９は、ストレージシステム１００の第１再配置停止処理手順の一例を示すシーケンス図である。図２９のシーケンス図において、管理サーバＭＳの装置管理ＧＵＩは、再配置処理の停止指示を受け付けた場合、再配置処理の停止指示をＰＵ＃１の装置管理ＧＵＩ制御部＃１に通知する（ステップＳ２９０１）。
【０２０２】
装置管理ＧＵＩ制御部＃１は、再配置処理の停止指示を受け付けた場合、再配置処理の停止指示をボリューム管理Ｍに通知する（ステップＳ２９０２）。ボリューム管理Ｍは、ボリューム管理テーブル７１０および再配置計画テーブル７２０の再配置状況を「再配置済」に変更する（ステップＳ２９０３）。
【０２０３】
ボリューム管理Ｍは、再配置処理を実施中の各ＰＵ＃１，＃２，＃３の再配置制御スレッドに対して再配置処理の停止指示を通知する（ステップＳ２９０４）。各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、仕掛け中の再配置処理を中止する（ステップＳ２９０５）。ボリューム管理Ｍは、再配置計画テーブル７２０を破棄して（ステップＳ２９０６）、ストレージシステム１００は一連の処理を終了する。これにより、管理サーバＭＳのユーザにより、実施中の再配置処理を任意のタイミングで停止することができる。
【０２０４】
つぎに、再配置の停止事象が発生した場合のストレージシステム１００の再配置停止処理手順について説明する。再配置の停止事象としては、例えば、新たなスケールアウトが実施された場合、ＲＡＩＤグループが閉塞した場合、ＳＵにおけるＬＵＮが削除された場合などがある。
【０２０５】
図３０は、ストレージシステム１００の第２再配置停止処理手順の一例を示すシーケンス図である。図３０のシーケンス図において、ボリューム管理Ｍは、再配置の停止事象が発生した場合、ボリューム管理テーブル７１０および再配置計画テーブル７２０の再配置状況を「再配置済」に変更する（ステップＳ３００１）。
【０２０６】
ボリューム管理Ｍは、再配置処理を実施中の各ＰＵ＃１，＃２，＃３の再配置制御スレッドに対して再配置処理の停止指示を通知する（ステップＳ３００２）。各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、仕掛け中の再配置処理を中止する（ステップＳ３００３）。ボリューム管理Ｍは、再配置計画テーブル７２０を破棄して（ステップＳ３００４）、ストレージシステム１００は一連の処理を終了する。これにより、再配置の停止事象が発生した場合に、実施中の再配置処理を停止することができる。
【０２０７】
＜再配置一時停止処理手順＞
つぎに、ストレージシステム１００の再配置一時停止処理手順について説明する。再配置一時停止処理は、例えば、各ＰＵや各ＳＵの保守点検等で一時的に再配置処理を止めたい場合に行われる。
【０２０８】
図３１は、ストレージシステム１００の再配置一時停止処理手順の一例を示すシーケンス図である。図３１のシーケンス図において、管理サーバＭＳの装置管理ＧＵＩは、再配置処理の一時停止指示を受け付けた場合、再配置処理の一時停止指示をＰＵ＃１の装置管理ＧＵＩ制御部＃１に通知する（ステップＳ３１０１）。
【０２０９】
装置管理ＧＵＩ制御部＃１は、再配置処理の一時停止指示を受け付けた場合、再配置処理の一時停止指示をボリューム管理Ｍに通知する（ステップＳ３１０２）。ボリューム管理Ｍは、ボリューム管理テーブル７１０および再配置計画テーブル７２０の再配置状況が「再配置中」のエントリについて、再配置状況を「一時停止」に変更する（ステップＳ３１０３）。
【０２１０】
ボリューム管理Ｍは、再配置処理を実施中の各ＰＵ＃１，＃２，＃３の再配置制御スレッドに対して再配置処理の停止指示を通知する（ステップＳ３１０４）。各ＰＵ＃１，＃２，＃３の再配置制御スレッドは、仕掛け中の再配置処理を中止して（ステップＳ３１０５）、ストレージシステム１００は一連の処理を終了する。これにより、管理サーバＭＳのユーザにより、実施中の再配置処理を任意のタイミングで一時停止することができる。
【０２１１】
＜再配置再開処理手順＞
つぎに、ストレージシステム１００の再配置再開処理手順について説明する。再配置再開処理は、例えば、各ＰＵや各ＳＵの保守点検等で一時的に再配置処理を止めた後に再配置を再開する場合に行われる。
【０２１２】
図３２は、ストレージシステム１００の再配置再開処理手順の一例を示すシーケンス図である。図３２のシーケンス図において、管理サーバＭＳの装置管理ＧＵＩは、再配置処理の再開指示を受け付けた場合、再配置処理の再開指示をＰＵ＃１の装置管理ＧＵＩ制御部＃１に通知する（ステップＳ３２０１）。
【０２１３】
装置管理ＧＵＩ制御部＃１は、再配置処理の再開指示を受け付けた場合、再配置処理の再開指示をボリューム管理Ｍに通知する（ステップＳ３２０２）。ボリューム管理Ｍは、ボリューム管理テーブル７１０および再配置計画テーブル７２０の再配置状況が「一時停止」のエントリを検索して（ステップＳ３２０３）、図２６に示したステップＳ２６０５に移行する。これにより、管理サーバＭＳのユーザにより、一時停止中の再配置処理を任意のタイミングで再開することができる。
【０２１４】
以上説明したように、実施例にかかるストレージシステム１００によれば、スケールアウト前に格納されたデータについても、ストレージシステム１００内のスイッチグループＧごとに、スイッチグループＧに含まれるＳＵ全体に再割り当てすることができる。これにより、スケールアウト後のストレージシステム１００が有するポテンシャルに相当するアクセス性能の向上を図ることができる。
【０２１５】
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２１６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２１７】
（付記１）ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部と、
前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う制御部と、
を有することを特徴とするストレージ制御装置。
【０２１８】
（付記２）前記制御部は、
前記各グループに属するストレージユニットにおける割当中の記憶領域の偏りの度合いに応じて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする付記１に記載のストレージ制御装置。
【０２１９】
（付記３）前記制御部は、
前記割当情報に基づいて、前記各グループに属するストレージユニットに含まれる複数の記憶装置の記憶装置間における割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分に基づいて、前記各グループに属するストレージユニットにおける割当中の記憶領域の割当状況に所定の偏りがあるか否かを判定し、前記所定の偏りがあるとの判定に基づいて、前記割当情報に基づき割当中の記憶領域の再配置制御を行うことを特徴とする付記２に記載のストレージ制御装置。
【０２２０】
（付記４）前記制御部は、
前記割当情報に基づいて、前記複数の記憶装置のうち、割当中の記憶領域の記憶容量が最大の記憶装置と、割当中の記憶領域の記憶容量が最小の記憶装置との間の割当中の記憶領域の記憶容量の差分を算出し、算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上の場合に、前記所定の偏りがあると判定することを特徴とする付記３に記載のストレージ制御装置。
【０２２１】
（付記５）前記制御部は、
算出した前記差分が、前記最大の記憶装置に割当中の記憶領域の記憶容量の所定の割合以上で、かつ、所定のサイズ以上の場合に、前記所定の偏りがあると判定することを特徴とする付記４に記載のストレージ制御装置。
【０２２２】
（付記６）前記割当情報は、前記各グループに属するストレージユニットの記憶領域に割り当てられた各セグメントの割り当て情報を含み、
前記制御部は、割当中のセグメント数に基づいて前記差分を算出することを特徴とする付記３〜５のいずれか一つに記載のストレージ制御装置。
【０２２３】
（付記７）前記制御部は、
前記割当情報に基づいて、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置計画を作成し、作成した前記再配置計画に従って、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行うことを特徴とする付記１〜６のいずれか一つに記載のストレージ制御装置。
【０２２４】
（付記８）前記制御部は、
前記各グループに属するストレージユニットにおける割当中の記憶領域の割当状況に所定の偏りがあるか否かを定期的に判定することを特徴とする付記３〜５のいずれか一つに記載のストレージ制御装置。
【０２２５】
（付記９）コンピュータが、
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
処理を実行することを特徴とする制御方法。
【０２２６】
（付記１０）コンピュータに、
ストレージユニットと前記ストレージユニットを制御するストレージ制御装置とを接続するスイッチ同士がカスケード接続されるシステム内の前記各スイッチに直接接続されるストレージ制御装置とストレージユニットとをグループ化し、前記システム内のストレージユニットの記憶領域の割当状況を含む割当情報を記憶する記憶部を参照して、前記各グループに属するストレージユニットにおいて割当中の記憶領域の再配置制御を行う、
処理を実行させることを特徴とするストレージ制御プログラム。
【符号の説明】
【０２２７】
１００  ストレージシステム
３０１  記憶部
３０２  分類部
３０３  算出部
３０４  判定部
３０５  作成部
３０６  再配置制御部
７００  ＳＷグループ管理テーブル
７１０  ボリューム管理テーブル
７２０  再配置計画テーブル
１０００  ボリュームインデックステーブル
１１００  ミラーボリュームインデックステーブル
１２００  ボリュームセグメントテーブル
＃１〜＃８  ＰＵ
＃１〜＃７  ＳＵ
＃１〜＃４  ＳＷ
【図１】
2015055941.tif 000003
【図２】
2015055941.tif 000004
【図３】
2015055941.tif 000005
【図４】
2015055941.tif 000006
【図５】
2015055941.tif 000007
【図６】
2015055941.tif 000008
【図７】
2015055941.tif 000009
【図８】
2015055941.tif 000010
【図９】
2015055941.tif 000011
【図１０】
2015055941.tif 000012
【図１１】
2015055941.tif 000013
【図１２】
2015055941.tif 000014
【図１３】
2015055941.tif 000015
【図１４】
2015055941.tif 000016
【図１５】
2015055941.tif 000017
【図１６】
2015055941.tif 000018
【図１７】
2015055941.tif 000019
【図１８】
2015055941.tif 000020
【図１９】
2015055941.tif 000021
【図２０】
2015055941.tif 000022
【図２１】
2015055941.tif 000023
【図２２】
2015055941.tif 000024
【図２３】
2015055941.tif 000025
【図２４】
2015055941.tif 000026
【図２５】
2015055941.tif 000027
【図２６】
2015055941.tif 000028
【図２７】
2015055941.tif 000029
【図２８】
2015055941.tif 000030
【図２９】
2015055941.tif 000031
【図３０】
2015055941.tif 000032
【図３１】
2015055941.tif 000033
【図３２】
2015055941.tif 000034