(57)【要約】【課題】大容量のデータの効率的な移行を可能にする。【解決手段】ストレージ制御装置は、受付部、決定部、及び、移行部を含む。受付部は、複数のストレージに分散して配置された複数の分割データを含む複数のボリュームのうち、移行元のストレージから移行先のストレージへ移行する対象ボリュームの指定を受け付ける。決定部は、移行元のストレージ内に配置可能な分割データの数と、対象ボリュームの分割データの数とに基づいて、移行元のストレージ内に配置する対象ボリュームの分割データのレイアウトを決定する。移行部は、決定したレイアウトに基づいて、対象ボリュームの分割データを移行元のストレージに配置して、配置した複数の分割データを一括して移行先のストレージへ移行する制御を行う。【選択図】図１
2016192170.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージに分散して配置された複数の分割データを含む複数のボリュームのうち、移行元のストレージから移行先のストレージへ移行する対象ボリュームの指定を受け付ける受付部と、
前記移行元のストレージ内に配置可能な分割データの数と、前記対象ボリュームの分割データの数とに基づいて、前記移行元のストレージ内に配置する前記対象ボリュームの分割データのレイアウトを決定する決定部と、
該決定したレイアウトに基づいて、前記対象ボリュームの分割データを前記移行元のストレージに配置して、配置した該複数の分割データを一括して前記移行先のストレージへ移行する制御を行う移行部と、
を備えることを特徴とするストレージ制御装置。
【請求項２】
前記決定部は、前記対象ボリュームの分割データの数が、前記移行元のストレージに連続して配置可能な分割データの数を示す配置可能数よりも大きい場合、前記配置可能数分の分割データ毎に、前記対象ボリュームの分割データが、前記対象ボリュームにおける該分割データのアドレスの順に、前記移行元のストレージの所定の記憶領域の一端から連続して配置されるようにレイアウトを決定し、
前記移行部は、該決定したレイアウトに基づいて、前記配置可能数分の分割データ毎に対象ボリュームの分割データを前記移行元のストレージに配置して、配置した該分割データを一括して前記移行先のストレージへ移行する制御を行う
ことを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記決定部は、前記対象ボリュームの分割データの数が前記配置可能数よりも大きい場合、前記記憶領域に存在する前記分割データのうち、前記アドレスの順が前記配置可能数より後である分割データが、前記記憶領域の他端から連続して配置されるように、前記レイアウトを変更し、
前記移行部は、該変更したレイアウトに基づいて、前記分割データを前記移行元のストレージに配置し、前記アドレスの順が前記配置可能数以前の分割データを一括して前記移行先のストレージへ移行する制御を行う
ことを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記移行部は、前記記憶領域に存在する前記分割データのうち前記アドレスの順が前記配置可能数より後である分割データの数に応じて、前記配置可能数を変更する
ことを特徴とする請求項３に記載のストレージ制御装置。
【請求項５】
前記受け付け部は、移行元のストレージから移行先のストレージへ移行しない対象外ボリュームの指定を受け付け、
前記移行部は、前記記憶領域に存在する前記分割データのうち、前記対象外ボリュームに含まれる分割データを、前記移行元のストレージ以外のストレージに配置する
ことを特徴とする請求項１〜４のうちいずれか１項に記載のストレージ制御装置。
【請求項６】
第１のストレージと、
前記第１のストレージと交換される第２のストレージと、
前記第１のストレージおよび前記第２のストレージ以外の１以上の他のストレージと、
を備え、
前記第２のストレージは、
前記第１のストレージと前記他のストレージとに分散して配置された複数の分割データを含む複数のボリュームのうち、前記第１のストレージから前記第２のストレージへ移行する対象ボリュームの指定を受け付ける受付部と、
前記第１のストレージ内に配置可能な分割データの数と、前記対象ボリュームの分割データの数とに基づいて、前記第１のストレージ内に配置する前記対象ボリュームの分割データのレイアウトを決定する決定部と、
該決定したレイアウトに基づいて、前記対象ボリュームの分割データを前記第１のストレージに配置して、配置した該複数の分割データを一括して前記第２のストレージへ移行する制御を行う移行部と、
を備えることを特徴とするストレージシステム。
【請求項７】
コンピュータに、
複数のストレージに分散して配置された複数の分割データを含む複数のボリュームのうち、移行元のストレージから移行先のストレージへ移行する対象ボリュームの指定を受け付け、
前記移行元のストレージ内に配置可能な分割データの数と、前記対象ボリュームの分割データの数とに基づいて、前記移行元のストレージ内に配置する前記対象ボリュームの分割データのレイアウトを決定し、
該決定したレイアウトに基づいて、前記対象ボリュームの分割データを前記移行元のストレージに配置して、配置した該複数の分割データを一括して前記移行先のストレージへ移行する制御を行う、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージシステムおよびストレージ制御プログラムに関する。
【背景技術】
【０００２】
複数のストレージを連携させて１つのシステムとして稼動させる技術として、スケールアウト型ストレージと称される技術が知られている。また、入出力の負荷集中を抑制するために、複数のストレージにまたがってボリュームのセグメントを分散するワイドストライピングと称される技術が知られている。
【０００３】
スケールアウト型ストレージでは、容量または性能が不足した場合に、ストレージ（以下、ノードと称することもある）の交換を行う。また、保守期限が近づいている運用中のストレージを新規のストレージに交換する場合もある。ストレージの交換においては、データの移行が行われる。データ移行に関する技術として、以下の２つの技術が提案されている（例えば、特許文献１〜２参照）。
【０００４】
第１の技術として、上位装置と制御装置を有する記憶システムがある。上位装置は、第１のストレージ装置内の第１のボリュームに格納されたデータをファイル単位で第２のストレージ装置内の対応する第２のボリュームにコピーする。制御装置は、第１のボリュームに記憶されたデータを第２のボリュームにボリューム単位でコピーするように第１及び第２のストレージ装置を制御する。記憶システムは、データ移行対象の第１のボリュームに格納されたデータの状況に応じて、当該第１のボリュームに格納されたデータを、ボリューム単位及びファイル単位のいずれで移行するかを決定する。
【０００５】
第２技術として、上位装置と、制御装置と、データ移行制御部と、を備える記憶システムがある。上位装置は、第１のストレージ装置内の第１のボリュームに格納されたデータをファイル単位で第１のストレージ装置から読み出して第２のストレージ装置内の対応する第２のボリュームにコピーする。制御装置は、第１のボリュームに記憶されたデータを第２のボリュームにボリューム単位でコピーするように第１及び第２のストレージ装置を制御する。データ移行制御部は、第１のボリュームに格納されたデータの状況に応じて、第１のボリュームに格納されたデータを、ボリューム単位で移行する第１のデータ移行方法及びファイル単位で移行する第２のデータ移行方法のいずれの方法で移行するかを決定する。そしてデータ移行制御部は、決定した第１又は第２のデータ移行方法によりデータ移行を行なうように、必要な制御処理を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２１１１３２号公報
【特許文献２】特開２０１３−３３５１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数のストレージにデータが分散している状態で、運用中のストレージから新規のストレージにデータを移行する場合、移行する必要のないデータも移行される。このため、効率的なデータの移行を行うことが難しい。また、データの移行は、システムの運用を継続しながら行うことが望ましい。
【０００８】
そこで、１つの側面では、本発明は、大容量のデータの効率的な移行を可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
一態様によるストレージ制御装置は、受付部、決定部、及び、移行部を含む。受付部は、複数のストレージに分散して配置された複数の分割データを含む複数のボリュームのうち、移行元のストレージから移行先のストレージへ移行する対象ボリュームの指定を受け付ける。決定部は、移行元のストレージ内に配置可能な分割データの数と、対象ボリュームの分割データの数とに基づいて、移行元のストレージ内に配置する対象ボリュームの分割データのレイアウトを決定する。移行部は、決定したレイアウトに基づいて、対象ボリュームの分割データを移行元のストレージに配置して、配置した複数の分割データを一括して移行先のストレージへ移行する制御を行う。
【発明の効果】
【００１０】
一態様によれば、大容量のデータの効率的な移行を可能にする。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係るストレージ制御装置の機能ブロックの一例を示す。
【図２】ストレージシステムの一例を示す。
【図３】仮想化ストレージの最小物理構成の一例を示す。
【図４】スケールアウト型ストレージの構成の一例を示す。
【図５】新規のノードを追加したストレージシステムの一例を示す。
【図６】ワイドストライピングの一例を示す。
【図７】ボリューム管理マネージャが管理する分散配置情報の一例を示す。
【図８】新陳代謝マネージャの機能ブロックの一例を示す。
【図９】ボリューム再配置の一例を示す。
【図１０】セグメントの再配置を行った後のストレージシステムの全体の一例を示す。
【図１１】ボリュームの移行の説明図（その１）である。
【図１２】ボリュームの移行の説明図（その２）である。
【図１３】ボリュームの移行の説明図（その３）である。
【図１４】再配置制御部の構成の詳細の一例を示す。
【図１５】再配置処理前のセグメントの配置の一例を示す。
【図１６】配置管理情報のデータ構造の一例を示す。
【図１７】最適配置情報の説明図である。
【図１８】移行対象外のボリュームのセグメントの追い出しの説明図である。
【図１９】最適配置情報により示されるレイアウトに存在しないセグメントの後端への移動の説明図である。
【図２０】最適配置情報により示されるレイアウトに存在するセグメントの移動の説明図である。
【図２１】セグメント群の移行（１回目）の説明図である。
【図２２】移行が未完了であるセグメントに対する最適配置情報の説明図である。
【図２３】最適配置情報に基づいたセグメントの再配置（２回目）の説明図である。
【図２４】セグメント群の移行（２回目）の説明図である。
【図２５】実施形態に係るボリュームの移行処理の詳細を図解したフローチャートの一例である。
【図２６】最適配置情報作成処理の詳細を図解したフローチャートの一例である。
【図２７】比較例における再配置処理の説明図である。
【図２８】実施形態における再配置処理の説明図である。
【図２９】実施形態に係るコントローラのハードウェア構成の一例を示す。
【発明を実施するための形態】
【００１２】
図１は、実施形態に係るストレージ制御装置の機能ブロックの一例を示す。図１において、ストレージ制御装置１０１は、受付部１０２、決定部１０３、及び、移行部１０４を含む。
【００１３】
受付部１０２は、複数のストレージに分散して配置された複数の分割データを含む複数のボリュームのうち、移行元のストレージから移行先のストレージへ移行する対象ボリュームの指定を受け付ける。決定部１０３は、移行元のストレージ内に配置可能な分割データの数と、対象ボリュームの分割データの数とに基づいて、移行元のストレージ内に配置する対象ボリュームの分割データのレイアウトを決定する。移行部１０４は、決定したレイアウトに基づいて、対象ボリュームの分割データを移行元のストレージに配置（再配置）して、配置した複数の分割データを一括して移行先のストレージへ移行する制御を行う。
【００１４】
ストレージ制御装置１０１は、移行元のストレージ内に配置可能な分割データの数と、対象ボリュームの分割データの数とに基づいて決定されたレイアウトに応じて、分割データの配置を行い、その後配置したデータを一括して移行している。これにより、ストレージ制御装置１０１は、一括して移行できるデータ量を最大化することができる。また、ストレージ制御装置１０１は、移行のために通信される管理メッセージ量を削減できる。よって、ストレージ制御装置１０１では、移行における管理が容易になり、移行処理を効率的に行うことができる。
【００１５】
ストレージ制御装置１０１は、移行元のストレージ内に配置可能な分割データの数と、対象ボリュームの分割データの数とに基づいて、レイアウトを決定し、このレイアウトに基づいて配置を行っている。すなわち、配置前に決定した最適なレイアウトに基づいて、配置が行われる。これにより、ストレージ制御装置１０１は、配置において発生するノード内でのセグメントの移動（コピー）の回数を削減することができる。
【００１６】
また、決定部１０３は、対象ボリュームの分割データの数が、移行元のストレージに連続して配置可能な分割データの数を示す配置可能数よりも大きい場合、以下のようにレイアウトを決定する。すなわち、決定部１０３は、配置可能数分の分割データ毎に、対象ボリュームの分割データが、対象ボリュームにおける分割データのアドレスの順に、移行元のストレージの所定の記憶領域の一端から連続して配置されるようにレイアウトを決定する。そして、移行部１０４は、決定したレイアウトに基づいて、配置可能数分の分割データ毎に対象ボリュームの分割データを移行元のストレージに配置して、配置した分割データを一括して移行先のストレージへ移行する制御を行う。
【００１７】
ストレージ制御装置１０１は、配置可能数分の分割データ毎に、対象ボリュームにおける分割データのアドレスの順に、連続して配置されるようにレイアウトを決定している。これにより、ストレージ制御装置１０１は、移行元のノードにはいりきらない大容量ボリュームの移行であっても、効率的に移行を行うことができる。
【００１８】
また、決定部１０３は、対象ボリュームの分割データの数が配置可能数よりも大きい場合、記憶領域に存在する分割データのうち、アドレスの順が配置可能数より後である分割データが、記憶領域の他端から連続して配置されるように、レイアウトを変更する。そして、移行部１０４は、変更されたレイアウトに基づいて、分割データを配置し、アドレスの順が配置可能数以前の分割データを一括して移行する制御を行う。
【００１９】
ストレージ制御装置１０１は、記憶領域に存在する分割データのうち、アドレスの順が配置可能数より後である分割データが、記憶領域の他端から連続して配置されるように、レイアウトを変更している。これにより、ストレージ制御装置１０１は、移行元のストレージへの配置におけるストレージ間の通信量を抑制することができる。
【００２０】
また、移行部１０４は、記憶領域に存在する分割データのうちアドレスの順が配置可能数より後である分割データの数に応じて、配置可能数を変更する。これにより、ストレージ制御装置１０１は、移行元のストレージへの配置におけるストレージ間の通信量を抑制することができる。
【００２１】
また、受付部１０２は、移行元のストレージから移行先のストレージへ移行しない対象外ボリュームの指定を受け付ける。そして、移行部１０４は、記憶領域に存在する分割データのうち、対象外ボリュームに含まれる分割データを、移行元のストレージ以外のストレージに配置する。これにより、ストレージ制御装置１０１は、一括して移行できるデータ量を最大化することができる。
【００２２】
（システムの全体構成の一例）
以下、図面を参照して、実施形態について説明する。図２は、システム１の一例を示している。システム１は、サーバ２、スイッチ３、ノード４Ａ〜ノード４Ｃおよびインターコネクト７を含む。システム１は、ストレージシステムの一例である。
【００２３】
サーバ２はホスト装置であり、所定の処理を行う。サーバ２は、業務サーバと称されることもある。スイッチ３は、サーバ２とノード４Ａ〜４Ｃとの間の通信を切り替える。スイッチ３は、業務スイッチと称されることもある。
【００２４】
図２の例では、ノード４Ａは「ノード＃１」と示し、ノード４Ｂは「ノード＃２」と示し、ノード４Ｃは「ノード＃３」と示している。各ノード４Ａ〜４Ｃは、ストレージの一例である。例えば、ストレージは、ストレージ筐体に内蔵される。
【００２５】
各ノード４Ａ〜４Ｃ（総称してノード４と称することもある）は、コントローラ５Ａ〜５Ｃ（総称してコントローラ５と称することもある）および記憶領域６Ａ〜６Ｃ（総称して記憶領域６と称することもある）を含む。例えば、コントローラ５および記憶領域６も、上述したストレージ筐体に内蔵される。
【００２６】
記憶領域６はデータを記憶する。例えば、記憶領域６は、ディスク領域である。コントローラ５は、記憶領域６に記憶されているデータのリードやライト等の制御を行う。インターコネクト７は、各ノード４を接続する通信路である。図２の例では、各ノード４に記憶されているデータは、スイッチ３およびインターコネクト７を経由して、他のノード４に移行することができる。
【００２７】
（スケールアウト型ストレージの一例）
図２に示したストレージは、仮想化ストレージ装置である。仮想化ストレージ装置とは、物理的なストレージのディスク構成や容量に縛られることなく、自由な容量、構成を実現することのできるストレージ装置である。ストレージ装置内部に実ストレージ装置（以下、ＳＵ（Storage Unit）と称することもある）があり、ＳＵのディスク領域をプールとして一元管理するプロセッサ装置（以下、ＰＵ（Processor Unit）と称することもある）により仮想的なボリュームを生成できる。コントローラ５はＳＵの一例である。記憶領域６はＰＵの一例である。
【００２８】
図３は、仮想化ストレージの最小物理構成の一例を示す。仮想化ストレージは、ＰＵ（ＰＵ＃１、ＰＵ＃２）、ＳＷ（ＳＷ＃１、ＳＷ＃２）、及びＳＵ（ＳＵ＃１）を含む。各ＰＵは、各ＳＷを介して、ＳＵに接続する。ＳＵは、ＬＵＮ(Logical Unit Number）により識別される複数のストレージデバイス（以下、単にＬＵＮと称することもある）を含む。ＰＵでは、仮想化ソフトウェアが稼動し、仮想的なディスクを業務サーバに認識させる。仮想ディスクに対する入出力リクエストは、仮想化ソフトウェアが適切な対応付けまたは変換を行い、実ストレージデバイスへの入出力を制御する。
【００２９】
また、図２に示したシステム１は、スケールアウト型ストレージの形態を採用している。スケールアウト型ストレージは、ＰＵとＳＵの組をノードとして、ノード単位でスケールアウトできる装置である。スケールアウトすることで、容量不足や処理性能不足を解消することができる。
【００３０】
図４は、スケールアウト型ストレージの構成の一例を示す。図４の例に示すように、スケールアウト型ストレージでは、各ノード４の記憶領域６はプール８として一元管理されている。従って、各ノード４が分離していたとしても、ユーザは各ノード４の記憶領域６を１つの仮想的な記憶領域として扱うことができる。
【００３１】
（ワイドストライピングの一例）
各ノード４はそれぞれボリュームという単位でデータを管理している。ボリュームは論理ボリュームと称されることもある。実施形態では、ボリューム自体はデータであり、ボリュームは複数に分割される。実施形態では、分割されたボリュームはセグメントと称される。セグメントは、分割データの一例である。
【００３２】
なお、実施形態では、上記のように、データはボリュームとして、分割データはセグメントとして説明するが、データはボリュームには限定されない。また、分割データはセグメントには限定されない。データは任意の情報であってもよく、分割データはデータを分割した情報であればよい。また、ボリュームはデータが格納された記憶領域でもよく、セグメントは分割データが格納された記憶領域であってもよい。
【００３３】
図４の例では、ノード４Ａによって入出力が制御されるボリュームを「Vol_1」とし、ノード４Ｂによって入出力が制御されるボリュームを「Vol_2」とし、ノード４Ｃによって入出力が制御されるボリュームを「Vol_3」とした場合の例を示している。
【００３４】
各ノード４によって入出力が制御されるボリュームを分割したセグメントは、各ノード４の記憶領域６に分散配置される。この分散配置はワイドストライピングと称されることもある。ワイドストライピングでは、１つのノード４に入出力負荷が偏在しないように、セグメントを複数のノード４に分散配置する。ワイドストライピングを行うことで、システム１は安定した性能を発揮することができる。
【００３５】
図４の例では、各ノード４によって入出力が制御されるボリュームは３つに分割されて３つのセグメントとなる。そして、３つのセグメントは、それぞれ３つのノード４に分散配置されている。これにより、分割された３つのセグメントを均等に分散配置することができる。なお、ボリュームは任意の数のセグメントに分割してもよい。なお、図４では、各ノード４の記憶領域６は同一のプール８に含まれる例を示したが、幾つかのノード４の記憶領域６は、異なるプールに含まれるようにしてもよい。
【００３６】
例えば、図４において、各ノードに含まれる８つのＬＵＮの容量が１ＴＢとすると、仮想化ストレージでは、１００ＧＢのボリュームを２４０個や１２ＴＢのボリュームを２個などとして構成することができる。このように、仮想化ストレージでは、物理的なストレージのボリューム構成や容量に縛られることなく、自由な容量、構成を実現できる。
【００３７】
（新規ノードを追加した一例）
図５は、システム１において、新規のノードを追加した例を示している。図５に示すように、実施形態では、３種類のノード４がある。交換ノード４Ａは、交換対象となるノードである。
【００３８】
既存ノード４Ｂは、既存のシステム１で運用されていたノード４のうち、交換対象とならないノードである。上述したワイドストライピングの例では、交換ノード４Ａと１以上の既存ノード４とにセグメントが分散配置されている。
【００３９】
図５の例では、既存ノード４Ｂは１つを示しているが、例えば、図２で示したノード４Ｃが既存ノードであってもよい。既存ノードの数は１または２には限定されない。新規ノード４Ｄは、新規に追加されるノードである。交換ノード４Ａが新規ノード４Ｄに交換される。
【００４０】
交換ノード４Ａのコントローラ５Ａについて説明する。コントローラ５Ａは、入出力制御部１０Ａ、クラスタ制御１１Ａおよびボリューム管理エージェント１２Ａを含む。以降、図面では、ボリューム管理エージェントを「ボリューム管理Ａｇｔ」と表記する。
【００４１】
入出力制御部１０Ａは、交換ノード４Ａに対するデータの入出力制御を行う。
クラスタ制御１１Ａは複数のノード間のクラスタリングに関する制御を行う。システム１においては、複数のノード４のうちの一部または全部は冗長構成（クラスタ構成）をとってもよい。ボリューム管理エージェント１２Ａはボリュームを管理する。
【００４２】
既存ノード４Ｂのコントローラ５Ｂについて説明する。コントローラ５Ｂは、入出力制御部１０Ｂ、クラスタ制御１１Ｂ、ＧＵＩ制御１５およびボリューム管理マネージャ１６を含む。以降、図面では、ボリューム管理マネージャを「ボリューム管理Ｍｇｒ」と表記する。
【００４３】
入出力制御部１０Ｂは、既存ノード４Ｂに対するデータの入出力制御を行う。クラスタ制御１１Ｂは複数のノード間のクラスタリングに関する制御を行う。ＧＵＩ制御１５は、ＧＵＩ（Graphical User Interface）の制御を行う。ボリューム管理マネージャ１６は、交換ノード４Ａと既存ノード４Ｂとに分散配置されているセグメントの管理を行う。
【００４４】
（ボリューム管理マネージャの一例）
ここで、ワイドストライピングに基づく、ボリューム管理マネージャ１６の一例について説明する。
【００４５】
図６は、ワイドストライピングの一例を示している。図６に示すように、ボリュームは複数のセグメントに分割される。分割されたセグメントは、複数のＬＵＮに分散配置される。実施形態では、ＬＵＮはストレージになる。
【００４６】
例えば、１つのボリュームが４つのセグメントに分割されるときに、１つのセグメントが２５６ＭＢであるとすると、１つのボリュームは１０２４ＭＢになる。尚、実施形態においては、各セグメントのサイズは所定の固定サイズとする。
【００４７】
ボリューム管理マネージャ１６は、分散配置情報を有する。分散配置情報は、各ボリュームの各セグメントが格納されているＬＵＮとそのＬＵＮにおける格納領域を示す情報である。尚、分散配置情報は、所定の記憶領域に格納される。
【００４８】
図７は、ボリューム管理マネージャ１６が管理する分散配置情報の一例である。図７において、分散配置情報は、「ボリュームインデックス」、「ＬＵＮ  ＩＤ」、「オフセット」、「ボリュームＩＤ」のデータ項目を含む。各データ項目は、レコード（行）毎に対応付けられる。「ボリュームインデックス」は、ボリュームにおけるセグメントの位置を示すインデックス番号を示す。すなわち「ボリュームインデックス」は、セグメントがボリュームの何番目の要素であるかを示す。「ＬＵＮ  ＩＤ」は、該当するセグメントが格納されているＬＵＮの識別番号を示す。「オフセット」は、該当するセグメントが格納されている領域のＬＵＮ内のオフセットを示す。「ボリュームＩＤ」はボリュームの識別番号を示す。
【００４９】
図７の例では、「ボリュームＩＤ」が「1」のボリューム（ボリュームＡと記す）についてのデータ構造を示している。このボリュームＡは、複数のノードの複数のＬＵＮに格納されたセグメントを含んでいる。例えば、ボリュームＡの最初のセグメントは、ノード１のＬＵＮ１の0番地から255番地までの領域に格納されていることが示されている。また、ボリュームＡの２番目のセグメントは、ノード２のＬＵＮ１の0番地から255番地までの領域に格納されていることが示されている。
【００５０】
（新陳代謝）
図５に示すように、新規ノード４Ｄのコントローラ５Ｄは、入出力制御部１０Ｄ、クラスタ制御１１Ｄ、ボリューム管理エージェント１２Ｄおよび新陳代謝マネージャ１３を含む。入出力制御部１０Ｄは、新規ノード４Ｄに対するデータの入出力制御を行う。クラスタ制御１１Ｄは複数のノード間のクラスタリングに関する制御を行う。ボリューム管理エージェント１２Ｄはボリュームを管理する。
【００５１】
新陳代謝マネージャ１３は、新陳代謝の制御を行う。新陳代謝マネージャ１３は、ストレージ制御装置１０１の一例である。
【００５２】
新陳代謝について説明する。新陳代謝とは、複数のノード４を用いて運用されているシステム１で、例えば保守期限が近づいたノード４を新規のノード４に交換することである。この交換は、オンラインで、すなわち、業務サーバの運用を停止することなしに実施することが求められる。交換においては、交換するノードのデータが新規のノードに移行される。
【００５３】
新陳代謝をオンラインで実施する場合、データ移行中に更新されるデータも全て交換先ノードに移行される。これを実現するために、交換するボリュームのデータ更新をボリュームのセグメント単位で管理し、最初のコピー後に更新された領域を再度コピーするなどの処理が行われる。
【００５４】
ここで、スケールアウト型ストレージでは、ボリュームは、複数のノードのディスク領域に分散して配置された複数のデータを含んでいる。このような、分散して配置されたデータを含むボリュームを移行する場合、複数ノードにわたるデータの管理や制御が行われることとなる。
【００５５】
また、互換性のないノード間では、実データを分散して配置することはできない。これは、既存のノード群と新しいノード群でストレージの世代が異なるため仮想化ソフトウェアやインターコネクトが異なる場合などは、それぞれのノード群で独立したプール管理が行われるためである。このため、新規ノードと既存ノードの間に互換性がない場合に、移行途中のある時点において、新規ノードと既存ノードまたは交換ノードとに分散してデータが配置されると、そのボリュームは使用不可となり、業務が停止することとなる。
【００５６】
これらのことから、データの移行は、１つの移行元ノードからボリューム単位で一括して行うことが望ましい。そこで実施形態では、新陳代謝マネージャ１３は、移行前に、先ず、各ノードに分散配置されていたセグメントを交換ノードに集めて配置するように制御する。そして、新陳代謝マネージャ１３は、交換ノードに集められた移行するボリュームのセグメントを一括してボリューム単位で移行するように制御する。
【００５７】
図５の例では、新陳代謝を制御する新陳代謝マネージャ１３は、新規ノード４Ｄのコントローラ５Ｄに含まれている。図８は、新陳代謝マネージャ１３の機能ブロックの一例を示している。なお、以降の図面において、新陳代謝マネージャは「新陳代謝Ｍｇｒ」と表記する。
【００５８】
図８の例の新陳代謝マネージャ１３は、情報取得部２１、互換性認識部２２、リードライト要求認識部２３、再配置制御部２４、移行制御部２５、入力情報認識部２６、リスト記憶部２７、及び、配置情報記憶部２８を含む。
【００５９】
情報取得部２１は、既存ノード４Ｂのボリューム管理マネージャ１６から分散配置情報を取得する。例えば、情報取得部２１は、新規ノード４Ｄの通信機能を用いて、スイッチ３またはインターコネクト７を経由して、既存ノード４Ｂから分散配置情報を取得する。
【００６０】
互換性認識部２２は、インターコネクト７の互換性を認識する。互換性認識部２２は、互換性のあるインターコネクト７に接続されるノード４の間で通信を行うことができる。リードライト要求認識部２３は、サーバ２から入出力制御部１０Ｄに対して、リード要求またはライト要求があったことを認識する。
【００６１】
再配置制御部２４は、ワイドストライピングされている各セグメントの再配置を行う。交換ノード４Ａのボリューム（Vol_1：以下、ボリュームＶ１とする）は、交換ノード４Ａおよび１以上の既存ノードに分散配置されている。再配置制御部２４は、ボリュームＶ１のセグメント（ボリュームＶ１を分割したセグメント）を交換ノード４Ａの記憶領域６Ａに再配置する制御を行う。また、再配置制御部２４は、交換ノード４Ａに配置されている移行対象外のボリュームのセグメントを他の１以上のノード４に配置する制御を行う。具体的には、再配置制御部２４は、コントローラ５Ｂのボリューム管理マネージャ１６に指示を送り、この指示を受信したボリューム管理マネージャ１６がデータの再配置を制御する。尚、ボリューム管理マネージャ１６は、受信した指示に応じて、コントローラ５Ａのボリューム管理エージェント１２Ａに対して再配置の指示を送る。そして、この指示を受信したボリューム管理エージェント１２Ａが再配置を実行することにより、交換ノード４Ａのセグメントの再配置を制御する。また、再配置制御部２４は、交換ノード４Ｄに配置されているボリュームのセグメントを他の１以上のノード４に配置する制御を行う。また、再配置制御部２４は、ワイドストライピングを行う。
【００６２】
移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄの入出力制御部１０Ｄに移行する。例えば、移行制御部２５は、入出力制御部１０Ａを入出力制御部１０Ｄにコピーしてもよい。このとき例えば、交換ノード４Ａに割り当てられていたアドレス（例えば仮想ＩＰ（Internet Protocol）アドレス）も新規ノード４Ｄに移行されてもよい。これにより、ボリュームＶ１の担当ノードが交換ノード４Ａから新規ノード４Ｄに変更される。移行制御部２５は、移行部１０４の一例である。
【００６３】
そして、移行制御部２５は、入出力制御部１０Ａの移行を行った後に、交換ノード４Ａの記憶領域６Ａに記憶されているボリュームＶ１のセグメントを新規ノード４Ｄに移行する。つまり、移行制御部２５は、ボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行する。
【００６４】
入力情報認識部２６は、入力された情報を認識する。例えば、新規ノード４Ｄやシステム１を管理するコンピュータ（不図示）に設けられる入力手段（不図示）を用いて、ユーザが情報を入力した場合、ユーザが入力した情報を入力情報認識部２６が認識する。
【００６５】
リスト記憶部２７は、第１リスト３１および第２リスト３２を記憶する。第１リスト３１は、移行するボリュームのリストである。第２リスト３２は、移行を行わない移行対象外ボリュームのリストである。第１リスト３１に含まれる移行するボリュームの識別情報は、入力情報認識部２６を介してユーザから入力されてもよい。第１リスト３２に含まれる移行対象外ボリュームの識別情報は、入力情報認識部２６を介してユーザから入力されてもよい。
【００６６】
配置情報記憶部２８は、最適配置情報３３及び配置管理情報３４を記憶する。最適配置情報３３及び配置管理情報３４はいずれも、再配置制御部２４による再配置処理において用いられる情報である。最適配置情報３３は、交換ノードの記憶領域に格納されるセグメントのレイアウトを示す情報であって、移行のための最適なレイアウト（配置）を示す情報である。最適な配置とは、具体的には、例えば、交換ノードの記憶領域のうちの所定の領域の一端からボリュームインデックスの順にセグメントが連続して配置された状態を指す。配置管理情報３４は、交換ノードの記憶領域に格納されているセグメントを示す情報である。最適配置情報３３及び配置管理情報３４の詳細は、後述する。
【００６７】
（ボリューム再配置の一例）
図９（Ａ）および図９（Ｂ）は、ボリューム再配置の一例を示している。図９（Ａ）に示すように、交換ノード４Ａに対応するボリュームＶ１がある。また、既存ノード４Ｂに対応するボリューム（Vol_2：以下、ボリュームＶ２とする）がある。また、既存ノード４Ｃに対応するボリューム（Vol_3：以下、ボリュームＶ３とする）がある。
【００６８】
ボリュームＶ１、Ｖ２およびＶ３はそれぞれ複数に分割されて複数のセグメントとなり、各ノード４に均等に分散配置されている。情報取得部２１は、既存ノード４Ｂのボリューム管理マネージャ１６から分散配置情報を取得する。
【００６９】
これにより、再配置制御部２４は、交換ノード４Ａと既存ノード４Ｂおよび４Ｃとに分散配置されているボリュームのセグメントに関する情報を認識できる。再配置制御部２４は、分散配置情報に基づいて、ボリュームＶ１のセグメントを交換ノード４Ａに再配置する制御を行う。
【００７０】
また、再配置制御部２４は、分散配置情報に基づいて、交換ノード４Ａに配置されているボリュームＶ１以外のボリュームＶ２およびＶ３のセグメントを既存ノード４Ｂまたは４Ｃに再配置する制御を行う。
【００７１】
図９（Ｂ）は、再配置制御部２４がセグメントの再配置を行った後に、各ノード４に再配置されるセグメントの状態を示している。図９（Ｂ）に示すように、ボリュームＶ１のセグメントは全て交換ノード４Ａに再配置されている。
【００７２】
図１０は、図９（Ｂ）のようにセグメントの再配置を行った後のシステム１の全体の一例を示している。図９（Ｂ）および図１０に示すように、交換ノード４ＡはボリュームＶ１だけのセグメントを記憶する。
【００７３】
ここで、再配置制御部２４は、任意の１以上のボリュームのセグメントを交換ノード４Ａに再配置してもよい。例えば、交換ノード４ＡにボリュームＶ２のセグメントが多く配置されている場合、再配置制御部２４は、既存ノード４Ｂおよび４ＣからボリュームＶ２のセグメントを交換ノード４Ａに再配置する。
【００７４】
（ボリュームの移行の一例）
次に、ボリュームの移行の一例について、図１１〜図１３を参照して説明する。図１１〜図１３は、ボリュームの移行の説明図である。上述したように、再配置制御部２４は、１以上の既存のノード４から交換するノード４にボリュームのセグメントの再配置を行う。以下、交換するノード４は交換ノード４Ａであり、１以上の既存のノード４は既存ノード４Ｂおよび４Ｃであるものとする。
【００７５】
再配置制御部２４によるボリュームのセグメントの再配置を行うことにより、交換ノード４Ａの記憶領域６Ａにボリュームが再配置される。このボリュームを上述したボリュームＶ１とする。
【００７６】
図１１に示すように、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄに移行する。例えば、移行制御部２５は、入出力制御部１０Ａの機能を新規ノード４Ｄの入出力制御部１０Ｄにコピーする。これにより、ボリュームＶ１の担当は、交換ノード４Ａから新規ノード４Ｄに変更される。
【００７７】
次に、図１２に示すように、移行制御部２５は、スイッチ３を経由して、交換ノード４Ａの記憶領域６Ａに再配置されているボリュームＶ１を新規ノード４Ｄの記憶領域６Ｄに移行する。尚、インターコネクト７Ａとインターコネクト７Ｂの間に互換性があり、インターコネクトを介して、交換ノード４Ａと新規ノード４Ｄの通信が可能である場合には、インターコネクトを経由して移行が行われてもよい。
【００７８】
以上のように、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄに移行することで、移行するボリュームＶ１の担当は新規ノード４Ｄになる。その後に、移行制御部２５は、ボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行するため、システム１の運用の継続性を維持しつつ、ノードの交換を行うことができる。また、サーバ２については設定変更を加えることなく、ノードの交換を行うことができる。
【００７９】
図１３は、移行制御部２５が交換ノード４Ａをシステム１から切り離した状態を示している。交換ノード４Ａが担当していたボリュームＶ１の担当は新規ノード４Ｄに変更されている。また、ボリュームＶ１は新規ノード４Ｄの記憶領域６Ｄに移行されている。
【００８０】
上述したように、再配置制御部２４は、交換ノード４Ａと既存ノード４Ｂおよび４Ｃとに分散配置されていたボリュームＶ１のセグメントを交換ノード４Ａに再配置している。その後に、移行制御部２５がボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行している。このため、移行制御部２５は、交換ノード４Ａに集められたボリュームＶ１のセグメントをそのまま新規ノード４Ｄに移行すればよいため、効率的なデータの移行を行うことができる。また、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄに移行した後に、ボリュームＶ１の移行を行っている。従って、システム１の運用を継続しながら、データの移行を行うことができる。
【００８１】
（大容量ボリュームの再配置の一例）
移行するボリュームが大容量である場合、再配置の際に、交換ノードに大容量ボリュームを格納する領域を確保できない場合がある。この場合、移行するボリュームの再配置ができないため、大容量ボリュームのデータを一括して移行することはできない。これは、例えば図９等において、移行するボリュームＶ１の容量が、交換ノード４Ａの記憶領域６Ａよりも大きい場合などである。
【００８２】
そこで、移行するボリュームが大容量である場合には、セグメント単位で移行を行うことも考えられる。しかしながらセグメント単位での移行は、大量のセグメントに対して管理や更新を行いながらコピーを行うこととなるため、移行の効率が悪くなる。
【００８３】
また、新規ノードが使用するインターコネクトと既存ノードが使用するインターコネクトで規格の互換性が無い場合(例：Ethernet（登録商標）とInfinibandなど)、スイッチ３が属するネットワーク（以下、業務ネットワークとも称する）を経由して、メッセージ通信やデータの移行が行われる。この場合、業務ネットワークでは、移行のための大量の通信メッセージと実データがやりとりされることとなる。ここで、業務ネットワークでは、サーバ２からの業務Ｉ／Ｏによるデータも通信される。よって、業務ネットワークを介した移行を行うと、業務に影響が及ぶ場合もある。
【００８４】
実施形態においては、このような移行するボリュームが大容量である場合の移行に対応するために、移行するボリュームのセグメントを、交換ノードに配置可能なセグメントの総数（以下、配置可能数とも称する）毎に纏めて、データの移行を行う。ここで、一度に纏められるセグメント群は、ボリュームにおけるセグメントの位置（以下、ボリュームインデックスとも称する）が連続するセグメント群となるように纏められる。また、このようなセグメント群が移行される順番は、ボリュームにおけるセグメント群の位置に応じた順となるように制御される。配置可能数毎に一括してデータの移行を行うことで、大容量のボリュームであっても、効率的なデータの移行が可能となる。これにより、データの移行において、業務ネットワークにかかる負荷を軽減することができる。
【００８５】
移行するボリュームのセグメントを配置可能数分のセグメント群毎に纏めて移行できるように、実施形態においては、セグメントの再配置処理が適切に制御される。具体的には、再配置処理において、再配置制御部２４は、最適配置情報３３及び配置管理情報３４を用いて、配置可能数毎に纏めるセグメント群を、交換ノードの記憶領域６Ａに集めるための再配置処理を行う。このとき、再配置制御部２４は、再配置後の記憶領域のレイアウトが、記憶領域の一端からボリュームインデックスの順にセグメントが連続して配置された状態となるように、再配置処理を行う。
【００８６】
このような、記憶領域の一端からボリュームインデックスの順にセグメントが連続して配置された状態となるように行われる再配置処理においては、セグメントのコピーが多発する可能性がある。そこで実施形態の再配置制御部２４は、セグメントのコピー回数を抑制しつつ、データの再配置を行う。
【００８７】
以下、実施形態に係る再配置制御部２４について詳細に説明する。
尚、再配置処理において、ノード間でデータが行き来するとそれだけ無駄なコストが発生する。そのため、再配置制御部２４は、再配置処理前から交換ノード内に存在する移行するボリュームのセグメントについては、他の既存ノードに追い出さないように制御する。
【００８８】
図１４は、再配置制御部２４の構成の詳細の一例を示す。再配置制御部２４は、取得部４１、作成部４２、及び再配置部４３を含む。取得部４１は、情報取得部２１から分散配置情報を取得する。また、取得部４１は、リスト記憶部２７から第１リスト３１及び第２リスト３２を取得する。作成部４２は、分散配置情報に基づいて、配置管理情報３４を作成する。また、作成部４２は、移行するボリュームのセグメント数と配置可能数とに応じて、最適配置情報３３を作成する。再配置部４３は、最適配置情報３３と配置管理情報３４を用いて、セグメントの再配置を行う。取得部４１は、受付部１０２の一例である。作成部４２は、決定部１０３の一例である。再配置部４３は、移行部１０４の一例である。
【００８９】
以下、図１５〜図２０を参照して、大容量ボリュームの移行に対応した再配置処理の詳細を説明する。図１５〜図２０の説明において、移行するボリュームのボリュームＡ（ボリュームＩＤは「１」）、移行対象外のボリュームＤ（ボリュームＩＤは「Ｄ」）として説明する。
【００９０】
図１５は、再配置処理前のセグメントの配置の一例を示す。図１５において、各ノード４Ａ〜４Ｃの記憶領域に、移行するボリューム及び移行対象外ボリュームのセグメントが分散して配置されている。移行するノード４Ａの記憶領域は８つの分割領域を含む。８つの分割領域は、ノードインデックスにより識別される。図１５においては、左上の分割領域から右上の分割領域にかけて、順にノードインデックスは「１」、「２」、「３」、「４」であり、左下の分割領域から右下の分割領域にかけて、順にノードインデックスは、「５」、「６」、「７」、「８」であるとして説明する。ノードインデックスが連続する領域同士は、物理的に連続しているものとする。すなわち、ノードインデックス「４」とノードインデックス「５」の分割領域も物理的に連続しているものとする。また、各分割領域のサイズは、セグメントサイズである。図１５において、移行するボリュームＡのセグメントに振られた数字は、ボリュームインデックスの値を示している。すなわち、移行するボリュームＡは、ボリュームインデックスが「１」〜「１０」のセグメントを含むボリュームである。よって、図１５の例は、移行するボリュームＡを交換ノード４Ａの記憶領域に一度にすべてを格納することはできない例を示している。以下では、図１５に示す状態からデータの再配置が行われる様子を例に説明する。
【００９１】
先ず、取得部４１は、リスト記憶部２７から第１リスト３１及び第２リスト３２を取得する。作成部４２、及び再配置部４３は、第１リスト３１から移行するボリュームの識別情報を取得する。また、作成部４２、及び再配置部４３は、第２リスト３２から移行対象外のボリュームの識別情報を取得する。
【００９２】
次に、取得部４１は、情報取得部２１から分散配置情報を取得する。この分散配置情報に基づいて、作成部４２は、配置管理情報３４を作成する。配置管理情報３４は、交換ノード４Ａの現在の記憶領域に格納されているセグメントの配置を示す情報である。
【００９３】
図１６は、配置管理情報３４のデータ構造の一例を示す。図１６において、配置管理情報３４は、「ノードインデックス」、「ボリュームＩＤ」、及び「ボリュームインデックス」のデータ項目を含む。各データ項目は、レコード（行）毎に対応付けられる。
【００９４】
「ノードインデックス」は、交換ノード４Ａの記憶領域６Ａをセグメントのサイズ毎に分割したときの各分割領域の識別情報を示す。尚、ノードインデックスが連続する分割領域同士は、それらの物理領域が連続することを示す。「ボリュームＩＤ」は、対応する「ノードインデックス」で示される分割領域に格納されているセグメントが属するボリュームの識別番号を示す。「ボリュームインデックス」は、対応する「ノードインデックス」で示される分割領域に格納されているセグメントの、ボリュームにおける位置を示すインデックス番号を示す。すなわち「ボリュームインデックス」は、セグメントがボリュームの何番目の要素であるかを示す。
【００９５】
図１６に示す配置管理情報３４は、図１５に示す交換ノード４Ａのセグメントの配置を示している。例えば、配置管理情報３４の最初のレコードは、交換ノード４Ａの「ノードインデックス」が「１」の分割領域に、「ボリュームＩＤ」が「１」のボリュームにおける「ボリュームインデックス」が「１」で示されるセグメントが格納されていることを示している。以下の説明では、「ノードインデックス」がｘ（ｘは正の整数）の分割領域を分割領域ｘと記し、「ボリュームインデックス」がｙ（ｙは正の整数）で示されるセグメントをセグメントｙと記す場合がある。
【００９６】
次に、再配置制御部２４は、交換ノード４Ａの記憶領域６Ａにおける再配置後のセグメントの最適な配置を示す最適配置情報３３を作成する。最適な配置は、移行するボリュームの未だ移行されていないセグメントのうち、配置可能数と等しい数のセグメントもしくは未だ移行されていないセグメントの全てが、ボリュームインデックスの順に、記憶領域６Ａの一端から連続して配置された状態である。未だ移行されていないセグメントの総数が配置可能数より大きい場合には、最適な配置は、配置可能数と等しい数のセグメントが記憶領域６Ａの一端から連続して配置された状態となる。未だ移行されていないセグメントの総数が配置可能数以下の場合には、最適な配置は、未だ移行されていないセグメントの全てが、記憶領域６Ａの一端から連続して配置された状態となる。尚、再配置処理は、配置可能数のセグメント毎に複数回繰り返される可能性があるが、最適配置情報３３は、次回行われる再配置処理の最適配置を示す。
【００９７】
尚、移行するボリュームが複数ある場合には、最適な配置は、以下のようになる。すなわち、移行する複数のボリュームをボリュームＸとボリュームＹとした場合、最適な配置は、記憶領域６Ａの一端からボリュームＸの未移行のセグメントが、ボリュームインデックスの順に連続して配置された状態となる。そして、最適な配置は、ボリュームＸの最後のセグメントが格納された分割領域の次の分割領域から、ボリュームＹのセグメントが、ボリュームインデックスの順に連続して配置された状態となる。
【００９８】
図１７は、最適配置情報３３の説明図である。図１７（Ａ）は、最適配置情報３３のデータ構造の一例を示す。最適配置情報３３は、ノード内のインデックスとボリュームインデックスとの対応関係を示す。図１７（Ａ）において、最適配置情報３３は、「ノードインデックス」、「ボリュームＩＤ」、及び「ボリュームインデックス」のデータ項目を含む。各データ項目は、レコード（行）毎に対応付けられる。
【００９９】
「ノードインデックス」は、交換ノード４Ａの記憶領域６Ａをセグメントのサイズ毎に分割したときの各分割領域の識別情報を示す。「ボリュームＩＤ」は、最適なレイアウトにおいて、対応する「ノードインデックス」で示される分割領域に格納されるセグメントが属するボリュームの識別番号を示す。「ボリュームインデックス」は、最適なレイアウトにおいて、対応する「ノードインデックス」で示される分割領域に格納されるセグメントのインデックス番号を示す。
【０１００】
図１７（Ｂ）は、最適配置情報３３により示される物理的な配置の説明図である。最適配置情報３３において、各分割領域に格納されるセグメントはすべて、移行するボリュームである「ボリュームＩＤ」が「１」のボリュームＡに属するセグメントとなっている。また、ノードインデックスが「１」〜「８」の分割領域には、それぞれ、「ボリュームインデックス」が「１」〜「８」のセグメントが格納されている。このように、図１７（Ａ）の最適配置情報３３は、ボリュームＡの未移行のセグメントのうち、ボリュームインデックスの小さい順に配置可能数（「８」）と等しい数のセグメント１〜８が、記憶領域６Ａの一端から連続して配置された状態を示している。尚、以下の説明では、ノードインデックスが最小（「１」）の分割領域を前端と記し、ノードインデックスが配置可能数と等しい分割領域を後端と記す。
【０１０１】
最適配置情報３３の作成が完了すると、再配置部４３は、移行対象外のボリュームＤのセグメントを交換ノード４Ａから既存ノード４Ｂおよび４Ｃに追い出す。図１８は、移行対象外のボリュームのセグメントの追い出しの説明図である。図１８（Ａ）は、追い出しの様子を示す。図１８（Ｂ）は、追い出し時の最適配置情報３３を示す。図１８（Ｃ）は、追い出し時の配置管理情報３４の変化を示す。
【０１０２】
図１８（Ａ）に示すように、再配置部４３は、交換ノード４Ａの記憶領域６Ａに格納されているボリュームＤのセグメントを、既存ノード４Ｂ及び４Ｃの空き領域に再配置する。追い出されたセグメントが格納されていた記憶領域６Ａの領域は、空き領域となる。再配置部４３は、追い出しとともに、配置管理情報３４を更新する。
【０１０３】
図１８（Ｃ）に示すように、配置管理情報３４において、「ボリュームＩＤ」が「Ｄ」のレコードの「ボリュームＩＤ」及び「ボリュームインデックス」の値が「ｎｕｌｌ」に変更されている。尚、値が「ｎｕｌｌ」のレコードは、空き領域を示すレコードである。
【０１０４】
尚、既存ノードへの追い出し先が確保できないセグメントについては、交換ノードの後端に移動させるものとする。尚、この移動に伴って、最適配置において後端に格納されるセグメントの格納先が埋まってしまう。このため、再配置部４３は、後端の分割領域へのデータの移動が不可能となったことを最適配置情報３３に反映し、配置可能数をデクリメントする。これにより再配置部４３は、重複してセグメントが格納されることを防ぐ。ただし、仮想ボリューム全体の容量には十分な余裕がある場合が多く、既存ノードへの追い出し先が確保できないケースが発生する確率は少ない。
【０１０５】
追い出しが完了すると、再配置部４３は、最適配置情報３３に基づいて、移行するボリュームＡのセグメントを交換ノード４Ａに再配置する。すなわち、再配置部４３は、最適配置情報３３が示すレイアウトとなるように、移行するボリュームのセグメントの移動を行う。移動先の分割領域が空き領域でない場合には、再配置部４３は、その領域に格納されているセグメントを、一時的に交換ノード４Ａの別の空き領域に退避する。この退避においても、再配置部４３は、最適配置情報３３が示すレイアウトとなるように退避先を決める。移行するボリュームＡのセグメントの再配置は、具体的には、以下の手順で行われる。
【０１０６】
先ず、再配置部４３は、交換ノード４Ａに一度に収まりきらないセグメントを、記憶領域６Ａの後端に移動させる。すなわち、再配置部４３は、交換ノード４Ａに存在するボリュームＡのセグメントのうち、最適配置情報３３により示されるレイアウトに存在しないセグメントを、記憶領域６Ａの後端に移動させる。具体的には、再配置部４３は、交換ノード４Ａに存在するボリュームＡのセグメントのうち、ボリュームインデックスが大きいセグメントから順に選択し、以下の追い出し処理を繰り返し行う。すなわち、再配置部４３は、先ず、選択したセグメントのボリュームインデックスが、最適配置情報３３の何れのレコードの「ボリュームインデックス」とも異なるか否かを判定し、異なると判定した場合には、選択したセグメントを記憶領域６Ａの後端に移動させる。また、選択したセグメントの移動とともに、再配置部４３は、最適配置情報３３において、後端の分割領域に対応するレコードの「ボリュームインデックス」の値を、移動したセグメントのボリュームインデックスに更新する。また、再配置部４３は、移動後の状態を配置管理情報３４に反映する。その後、再配置部４３は、配置可能数の値をデクリメント（−１）する。尚、このような追い出し処理は、追い出し処理において選択したセグメントのボリュームインデックスが、最適配置情報３３の何れかのレコードの「ボリュームインデックス」と一致するまで繰り返し行われる。
【０１０７】
図１９は、最適配置情報３３により示されるレイアウトに存在しないセグメントの後端への移動の説明図である。図１９（Ａ）は、後端への移動の様子を示す。図１９（Ｂ）は、後端への移動時の最適配置情報３３の変化を示す。図１９（Ｃ）は、後端への移動時の配置管理情報３４の変化を示す。
【０１０８】
図１９（Ｂ）に示すように、後端への移動前において、最適配置情報３３のレコードの「ボリュームインデックス」の値は「１」〜「８」のいずれかであり、配置可能数は「８」である。図１９（Ａ）に示すように、後端への移動前において、記憶領域６Ａに格納されているボリュームＡのセグメントのうち、ボリュームインデックスが「１」〜「８」の何れとも異なるセグメントは、セグメント９及びセグメント１０である。
【０１０９】
よって、先ず、再配置部４３は、ボリュームインデックスが最も大きいセグメント１０を選択する。次に再配置部４３は、セグメント１０のボリュームインデックスは、最適配置情報３３の何れのレコードの「ボリュームインデックス」とも異なると判定する。そして再配置部４３は、セグメント１０を後端、すなわち、分割領域８に移動する。それとともに再配置部４３は、最適配置情報３３の「ノードインデックス」が「８」のレコードの「ボリュームインデックス」の値を「１０」に変更し、配置可能数の値を「８」から「７」に変更する。
【０１１０】
次に、再配置部４３は、ボリュームインデックスが「１０」の次に大きいセグメント９を選択する。セグメント９についてもセグメント１０と同様に、再配置部４３は、後端への移動と、最適配置情報３３及び配置可能数の変更を行う。
【０１１１】
以上のようにして、再配置部４３は、最適配置情報３３により示されるレイアウトに存在しないセグメントを、記憶領域６Ａの後端に移動させる。
【０１１２】
次に、再配置部４３は、最適配置情報３３で示されるレイアウトとなるように、移行するボリュームのセグメントを移動する。すなわち、再配置部４３は、最適配置情報３３により示されるレイアウトに存在するセグメントを、記憶領域６Ａの前端からの連続領域に移動させる。具体的には、再配置部４３は、最適配置情報３３のレコードの「ノードインデックス」の昇順にレコードを１つずつ選択する。そして、再配置部４３は、選択したレコードの「ボリュームインデックス」で示されるセグメントを、「ノードインデックス」で示される分割領域に移動する。この選択と移動を、再配置部４３は、配置可能数で示される回数繰り返す。また、再配置部４３は、移動後の状態を配置管理情報３４に反映する。
【０１１３】
図２０は、最適配置情報３３により示されるレイアウトに存在するセグメントの移動の説明図である。図２０（Ａ）は、移動の様子を示す。図２０（Ｂ）は、移動時の最適配置情報３３を示す。図２０（Ｃ）は、移動時の配置管理情報３４の変化を示す。移動前において、配置可能数は「６」である。
【０１１４】
図２０（Ａ）に示すように、先ず、再配置部４３は、図２０（Ｂ）の最適配置情報３３から「ノードインデックス」の値が最も小さい「１」であるレコードを選択する。選択したレコードの「ボリュームインデックス」の値は「１」であるので、再配置部４３は、セグメント１を分割領域１に配置する。図２０（Ａ）の場合には、既に配置済みとなっている。同様に、再配置部４３は、「ノードインデックス」の値が「２」〜「６」のレコードを順に選択し、セグメント２〜セグメント６を、分割領域２〜分割領域６に配置する。そして、再配置部４３は、図２０（Ｃ）に示すように、移動後の記憶領域６Ａの状態を配置管理情報３４に反映する。
【０１１５】
以上のようにして、再配置部４３は、最適配置情報３３により示されるレイアウトに存在するセグメントを、記憶領域６Ａの前端からの連続領域に移動させる。
【０１１６】
再配置部４３は、上述した、移行対象外のボリュームのセグメントの追い出しと、移行するボリュームのセグメントの移動とを繰り返す。これにより、空き領域をさらに一時領域として確保し、交換ノードの前端からの連続領域に格納する移行するボリュームのセグメント数を増やしていく。
【０１１７】
以上のようにして、セグメントの再配置が完了すると、移行制御部２５は、配置管理情報３４を用いて、記憶領域６Ａの前端に格納されたセグメントからボリュームインデックスが連続するセグメント郡を纏めて、一括して新規ノード４Ｄに移行する。移行が完了すると、移行したセグメントが格納されていた記憶領域６Ａの分割領域は空き領域となる。移行制御部２５は、移行後の記憶領域６Ａの状態を、配置管理情報３４に反映する。
【０１１８】
図２１は、セグメント群の移行（１回目）の説明図である。図２１（Ａ）は、移行（１回目）の様子を示す。図２１（Ｂ）は、移行（１回目）時の最適配置情報３３を示す。図２１（Ｃ）は、移行（１回目）時の配置管理情報３４の変化を示す。
【０１１９】
図２１（Ａ）に示すように、移行制御部２５は、図２１（Ｂ）の配置管理情報３４を参照して、分割領域１に格納されているセグメント１からボリュームインデックスが連続するセグメント６までのセグメント郡を纏めて移行する。移行が完了すると、移行制御部２５は、図２１（Ｃ）に示すように、移行後の記憶領域６Ａの状態を配置管理情報３４に反映し、配置可能数を「８」に戻す。
【０１２０】
以上のようにして、移行制御部２５はセグメント群の移行を行う。尚、移行制御部２５は、空き領域にセグメントの移動をさせようとしたが、使用できる空き領域がない場合は、連続領域に片寄せできた範囲でセグメント群を一括して移行する。
【０１２１】
移行が完了すると、移行したセグメントが格納されていた記憶領域６Ａの領域は空き領域となるので、その空き領域を用いて、再配置制御部２４は、移行するボリュームのうち移行が未完了のセグメントに対して再配置処理を行う。すなわち、再配置制御部２４は、上述した最適配置情報３３の作成処理以降の処理を繰り返す。
【０１２２】
図２２は、移行が未完了であるセグメントに対する最適配置情報３３の説明図である。図２２（Ａ）は、移行が未完了であるセグメントに対する最適配置情報３３を示す。図２２（Ｂ）は、最適配置情報３３により示される記憶領域６Ａのレイアウトを示す図である。
【０１２３】
上述したように、最適配置情報３３は、未だ移行されていないセグメントの総数が配置可能数以下の場合には、以下を示す。すなわち、この場合、最適配置情報３３は、移行するボリュームの未だ移行されていないセグメントのうち、ボリュームインデックスの小さい順に、未だ移行されていないセグメントの全てが記憶領域６Ａの一端から連続して配置された状態のレイアウトを示す。図２１を参照して説明したように、セグメント１〜セグメント６の移行は既に完了しており、移行が完了していないセグメントはセグメント７〜セグメント１０である。配置可能数は「８」である。よって、未だ移行されていないセグメントの数は配置可能数以下であるので、最適な配置は、未だ移行されていないセグメントの全てが記憶領域６Ａの一端から連続して配置された状態となる。図２２（Ａ）の最適配置情報３３を参照すると、「ノードインデックス」が「１」〜「４」のレコードの「ボリュームインデックス」にそれぞれ、「７」〜「１０」が格納されている。すなわち、最適配置は、図２２（Ｂ）に示すように、分割領域１〜分割領域４にそれぞれ、セグメント７〜セグメント１０が格納された状態となる。尚、図２２（Ａ）の最適配置情報３３では、「ノードインデックス」が「５」〜「８」のレコードも記載しているが、これらのレコードはなくてもよい。
【０１２４】
最適配置情報３３の作成が完了すると、再配置部４３は、作成した最適配置情報３３に基づいて、移行するボリュームＡのセグメントを交換ノード４Ａに再配置する。尚、交換ノードには移行対象外のボリュームのセグメントは存在しないので、追い出し処理はスキップされる。
【０１２５】
図２３は、最適配置情報３３に基づいたセグメントの再配置（２回目）の説明図である。図２３（Ａ）は、再配置（２回目）の様子を示す。図２３（Ｂ）は、再配置（２回目）時の最適配置情報３３を示す。図２３（Ｃ）は、再配置（２回目）時の配置管理情報３４の変化を示す。配置可能数は「８」である。
【０１２６】
図２３（Ａ）に示すように、分割領域１〜分割領域４にそれぞれ、セグメント７〜セグメント１０が格納されるように再配置が行われる。また、図２３（Ｃ）に示すように、配置管理情報３４が更新される。
【０１２７】
再配置が完了すると、移行制御部２５は、配置管理情報３４を用いて、記憶領域６Ａの前端に格納されたセグメントからボリュームインデックスが連続するセグメント郡を纏めて、一括して新規ノード４Ｄの記憶領域６Ｄに移行する。
【０１２８】
図２４は、セグメント群の移行（２回目）の説明図である。図１８（Ａ）は、移行（２回目）の様子を示す。図２４（Ｂ）は、移行（２回目）時の最適配置情報３３を示す。図２４（Ｃ）は、移行（２回目）時の配置管理情報３４の変化を示す。
【０１２９】
図２４（Ａ）に示すように、移行制御部２５は、図２４（Ｃ）の配置管理情報３４を参照して、分割領域１に格納されているセグメント７からボリュームインデックスが連続するセグメント１０までのセグメント郡を纏めて移行する。移行が完了すると、移行制御部２５は、図２４（Ｃ）に示すように、移行後の記憶領域６Ａの状態を配置管理情報３４に反映する。
【０１３０】
以上のようにして、移行するボリュームのすべてのセグメントの移行を完了する。移行が完了した時点で、交換ノードに移行対象外のボリュームのセグメントが存在する場合は、再配置制御部２４は、それらのセグメントを既存のノードへ追い出す。
【０１３１】
次に、実施形態に係るボリュームの移行処理の動作フローを説明する。図２５は、実施形態に係るボリュームの移行処理の詳細を図解したフローチャートの一例である。
【０１３２】
図２５において、先ず、取得部４１は、第１リスト３１を取得する（Ｓ１０１）。第１リスト３１を参照することにより、作成部４２及び再配置部４３は、移行するボリュームの識別情報を取得する。
【０１３３】
次に、取得部４１は、第２リスト３２を取得する（Ｓ１０２）。第２リスト３２を参照することにより、作成部４２及び再配置部４３は、移行対象外のボリュームの識別情報を取得する。
【０１３４】
次に、作成部４２は、最適配置情報３３を作成する（Ｓ１０３）。すなわち、作成部４２は、配置可能数と、移行するボリュームのセグメントの数とに基づいて、最適配置情報３３作成する。この処理の詳細は、後ほど図２６を参照して説明する。
【０１３５】
次に、再配置部４３は、移行するノードの記憶領域に格納されている移行対象外のボリュームのセグメントを、既存ノードへ追い出す（Ｓ１０４）。
【０１３６】
次に、再配置部４３は、交換ノードに収まりきれないセグメントが存在するか否かを判定する（Ｓ１０５）。交換ノードに収まりきれないセグメントは存在しないと判定された場合（Ｓ１０５でＮｏ）、処理は、Ｓ１０８に遷移する。一方、交換ノードに収まりきらないセグメントが存在すると判定した場合（Ｓ１０５でＹｅｓ）、再配置部４３は、収まりきらないセグメントを、交換ノードの記憶領域の後端へ移動する（Ｓ１０６）。交換ノードに収まりきらないセグメントとは、具体的には、そのセグメントのボリュームインデックスが、最適配置情報３３の何れのレコードの「ボリュームインデックス」の値とも異なるセグメントである。
【０１３７】
次に、再配置部４３は、最適配置情報３３において、後端の分割領域にＳ１０６で移動されたセグメントが格納される旨を反映する。そして、配置可能数の値を、後端へ移動したセグメントの数だけ減少させる（Ｓ１０７）。
【０１３８】
次に、再配置部４３は、最適配置情報３３に基づいて、移行するボリュームのセグメントを交換ノードに再配置する（Ｓ１０８）。
【０１３９】
次に、再配置部４３は、交換ノードに移動できる領域があるか否かを判定する（Ｓ１０９）。交換ノードに移動できる領域があると判定された場合（Ｓ１０９でＮｏ）、処理はＳ１０４に遷移する。一方、交換ノードに移動できる領域がないと判定された場合（Ｓ１０９でＹｅｓ）、移行制御部２５は、新規ノードへデータを移行する（Ｓ１１０）。データの移行においては、移行制御部２５は、移行するノードの記憶領域の前端に格納されたセグメントからボリュームインデックスが連続するセグメント郡を纏めて、一括して新規ノードに移行する。
【０１４０】
次に、移行制御部２５は、移行する全てのボリュームのセグメントが全て移行済みか否かを判定する（Ｓ１１１）。移行するボリュームのセグメントのいずれかが移行済みでないと判定した場合（Ｓ１１１でＮｏ）、処理はＳ１０３に遷移する。一方、移行する全てのボリュームのセグメントを全て移行済みであると判定した場合（Ｓ１１１でＹｅｓ）、処理は終了する。
【０１４１】
次に、最適配置情報３３の作成処理のフローについて具体的に説明する。図２６は、最適配置情報３３作成処理の詳細を図解したフローチャートの一例である。
【０１４２】
図２６において、先ず、作成部４２は、交換ノードの記憶領域の容量に基づいて、配置可能数を算出し、変数Sumに代入する（Ｓ２０１）。具体的には、例えば作成部４２は、交換ノードの記憶領域の容量をセグメントサイズで割った値を、配置可能数として算出する。
【０１４３】
次に、作成部４２は、第１リスト３１から１つボリュームを選択する（Ｓ２０２）。ここで選択したボリュームを、図２６の以下の説明では、対象ボリュームと記す。次に、作成部４２は、例えば分散配置情報に基づいて、対象ボリュームのセグメント数を算出し、変数Viに代入する（Ｓ２０３）。尚、対象ボリュームのうち移行済みのセグメントが存在する場合には、変数Viには、対象ボリュームのうち移行済みでないセグメントの数が代入される。
【０１４４】
そして、作成部４２は、対象ボリュームのセグメント数と配置可能数との差分をとり、結果を変数Sumに代入する（Ｓ２０４）。すなわち、作成部４２は、(Sum = Sum - Vi)を計算する。
【０１４５】
次に、作成部４２は、算出結果に基づいて、対象ボリュームの全てのセグメントが一度に交換ノードに収まるか否かを判定する。言い換えると作成部４２は、交換ノードに、対象ボリュームの全てのセグメントを格納することのできる記憶領域を一度に確保できるか否かを判定する。すなわち、作成部４２は、Sumの値が0以上か否かを判定する（Ｓ２０５）。尚、Sumの値が0以上であるということは、交換ノードに、対象ボリュームの全てのセグメントを格納する記憶領域を一度に確保できることを示している。Sumの値が0未満であるということは、交換ノードに、対象ボリュームのセグメントの全てを格納する記憶領域を一度に確保できないことを示している。
【０１４６】
記憶領域を確保できると判定した場合は（Ｓ２０５でＹｅｓ）、Ｓ２０６及びＳ２０７において、作成部４２は最適な配置を仮定したときに、対象ボリュームの各セグメントが格納される記憶領域にそれぞれ対応するレコードを最適配置情報３３に追加する処理を行う。すなわち、先ず、作成部４２は、対象ボリュームの移行されていないセグメントのうち、「ボリュームインデックス」の値が小さい順に１つずつセグメントを選択する（Ｓ２０６）。次に、作成部４２は、最適配置情報３３の新規のレコードを作成し、作成したレコードの各データ項目に対応する値を格納する（Ｓ２０７）。すなわち、作成部４２は、作成したレコードの「ノードインデックス」に、最適配置情報３３の既存のレコードの「ノードインデックス」の最大値に１加えた値を格納する。また、作成部４２は、「ボリュームＩＤ」、「ボリュームインデックス」にそれぞれ、対象ボリュームの識別情報、Ｓ２０６で選択したセグメントのボリュームインデックスの値を格納する。
【０１４７】
そして、作成部４２は、Ｓ２０６において対象ボリュームのすべてのセグメントを選択済みか否かを判定する（Ｓ２０８）。対象ボリュームのいずれかのセグメントを選択済みでないと判定した場合（Ｓ２０８でＮｏ）、作成部４２は、処理をＳ２０６に遷移させ、未選択のセグメントのうち「ボリュームインデックス」の値が小さい順に１つセグメントを選択する。一方、対象ボリュームのすべてのセグメントを選択済みであると判定した場合（Ｓ２０８でＹｅｓ）、作成部４２は、処理をＳ２０２に遷移させ、再度、第１リスト３１からボリュームを選択し、以降の処理を実行する。
【０１４８】
記憶領域を確保できないと判定した場合は（Ｓ２０５でＮｏ）、Ｓ２０９及びＳ２１０において、作成部４２は最適な配置を仮定したときに、対象ボリュームの各セグメントが格納される記憶領域にそれぞれ対応するレコードを最適配置情報３３に追加する処理を行う。尚、最適配置情報３３のレコードの数は、最大で配置可能数と同じになる。すなわち、先ず、作成部４２は、対象ボリュームの移行されていないセグメントのうち、「ボリュームインデックス」の値が小さい順に１つずつセグメントを選択する（Ｓ２０９）。次に、作成部４２は、最適配置情報３３の新規のレコードを作成し、作成したレコードの各データ項目に対応する値を格納する（Ｓ２１０）。すなわち、作成部４２は、作成したレコードの「ノードインデックス」に、最適配置情報３３の既存のレコードの「ノードインデックス」の最大値に１加えた値を格納する。また、作成部４２は、「ボリュームＩＤ」、「ボリュームインデックス」にそれぞれ、対象ボリュームの識別情報、Ｓ２０９で選択したセグメントのボリュームインデックスの値を格納する。
【０１４９】
そして、作成部４２は、最適配置情報３３のレコードの数が配置可能数以上か否かを判定する（Ｓ２１１）。最適配置情報３３のレコードの数が配置可能数未満であると判定した場合（Ｓ２１１でＮｏ）、作成部４２は、処理をＳ２０９に遷移させ、未選択のセグメントのうち「ボリュームインデックス」の値が小さい順に１つずつセグメントを選択する。一方、最適配置情報３３のレコードの数が配置可能数以上であると判定した場合（Ｓ２１１でＹｅｓ）、作成部４２は、処理を終了する。
【０１５０】
以上説明したように、実施形態の再配置処理においては、先ず最適配置情報３３を作成し、この情報に基づいてセグメントの再配置を行っている。このように再配置を行うことで、再配置におけるセグメントのコピー回数を削減することができる。ここで、このような実施形態の効果を説明するために、事前に最適配置の設計をせずに再配置を行う比較例と、実施形態とを比較する。
【０１５１】
比較例では、再配置処理において、ボリュームインデックスが小さいセグメントから順に、交換ノードの記憶領域の前端へ動かされる。そして、移動先の分割領域が空き領域でない場合、移動先の領域に格納されていたセグメントは、空き領域のうちでノードインデックスが最も大きい分割領域へ追い出される。
【０１５２】
図２７は、比較例における、再配置処理の説明図である。ここでは、交換ノードの分割領域の総数が「８」であり、移行するボリュームのセグメントの総数は「９」以上であるものとする。図２７においては、（Ａ）〜（Ｆ）の順に再配置が行われる。
【０１５３】
図２７（Ａ）に示すように、再配置処理前の初期配置では、ノードインデックスが「１」、「２」、「７」、「８」の分割領域に、それぞれ、ボリュームインデックスが「２」、「７」、「９」、「３」のセグメントが格納されている。このとき、比較例においては、先ず、セグメント１が分割領域１に格納される。分割領域１には、もともとセグメント２が格納されているので、セグメント１の移動前に、セグメント２を分割領域６に移動させる。このように、セグメント１の移動において、セグメント１とセグメント２がコピーされているため、コピー回数は「２」となる。
【０１５４】
図２７（Ｂ）では、セグメント２がセグメント１に格納される様子が示されている。セグメント１と同様にコピーが行われるので、コピー回数は「２」となる。同様にして、セグメント３〜セグメント６の移動の様子が、図２７（Ｃ）〜（Ｅ）に示されている。
【０１５５】
図２７（Ｅ）のセグメント６の格納が終了した時点で、移動することが可能な領域がなくなったので、交換ノードは、最終的に図２７（Ｆ）に示すようなレイアウトとなる。このように、比較例においては、交換ノードの記憶領域の前端に格納されたセグメントからボリュームインデックスが連続するセグメントの数は、「６」となり、このようなレイアウトになるまでにコピーされた回数は、「９」となる。
【０１５６】
次に、図２７と同じ初期配置からの再配置が、実施形態において実行される様子を説明する。図２８は、実施形態における、再配置処理の説明図である。図２８（Ｘ）は、交換ノードに収まらないセグメントを後端に移動した後（図２５のＳ１０７の直後）の最適配置情報３３を示している。図２８においては、上述した点順で（Ａ）〜（Ｄ）の順に再配置が行われる。
【０１５７】
図２８（Ａ）において、先ず、交換ノードに収まりきらないセグメント９が後端に移動される。このとき、後端の分割領域８には、もともとセグメント３が格納されているので、セグメント３が最適配置情報３３に基づいて、分割領域３に移動される。図２８（Ａ）におけるコピー回数は「２」である。
【０１５８】
次に、図２８（Ｂ）において、最適配置情報３３に基づいて、セグメント１が分割領域１に移動される。このとき、分割領域１には、もともとセグメント２が格納されているので、セグメント２が最適配置情報３３に基づいて、分割領域２に移動される。さらにこのとき、分割領域２には、もともとセグメント７が格納されているので、セグメント７も最適配置情報３３に基づいて、分割領域７に移動される。図２８（Ｂ）におけるコピー回数は「３」である。
【０１５９】
次に、図２８（Ｃ）において、セグメント４〜セグメント６が、それぞれ、分割領域４〜分割領域６に移動される。図２８（Ｃ）におけるコピー回数は「３」である。最終的に、交換ノードは、図２８（Ｄ）のレイアウトとなる。これは、図２８（Ｘ）の最適配置情報３３で示されるレイアウトと同様である。
【０１６０】
図２８に示すように事前に最適配置の設計を行うことによって、デフラグのような多段のコピーを許すものより効率的にデータの移動を行うことができる。
【０１６１】
実施形態においては、交換ノードの記憶領域の前端に格納されたセグメントからボリュームインデックスが連続するセグメントの数は、「７」となり、このようなレイアウトになるまでにコピーされた回数は、「８」となる。
【０１６２】
実施形態は、図２７で説明した比較例と比べると、連続するセグメントの数及びコピー回数がともに改善されている。実施形態においては、連続するセグメントの数を大きくすることができるため、一回の移行処理で移行できるデータ量を増加させることができる。これにより効率的な移行が可能となる。また、実施形態においては、再配置におけるコピー回数を削減することができる。これにより、効率的な再配置が可能となる。
【０１６３】
また、実施形態においては、再配置処理前から交換ノード内に存在する移行するボリュームのセグメントについては、他の既存ノードに追い出さないように制御される。これにより、再配置におけるノード間の通信量を抑制することができる。
【０１６４】
（コントローラのハードウェア構成）
次に、コントローラ５のハードウェア構成について説明する。図２９は、実施形態に係るコントローラ５のハードウェア構成の一例を示す。
【０１６５】
図２９において、コントローラ５は、ＣＰＵ６０１、メモリ６０２、読取装置６０３、及び通信インターフェース６０４を含む。ＣＰＵ６０１、メモリ６０２、読取装置６０３、及び通信インターフェース６０４はバス等を介して接続される。
【０１６６】
ＣＰＵ６０１は、メモリ６０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、コントローラ５Ｄの新陳代謝マネージャ１３のリスト記憶部２７以外の各部の機能の一部または全部の機能を提供する。ＣＰＵ６０１が実行するプログラムは、ストレージ制御プログラムであってよい。
【０１６７】
メモリ６０２は、例えば半導体メモリであり、ＲＡＭ（Random Access Memory）領域およびＲＯＭ（Read Only Memory）領域を含んで構成される。メモリ６０２はリスト記憶部２７、及び配置情報記憶部２８の一部または全部の機能を提供する。
【０１６８】
読取装置６０３は、ＣＰＵ６０１の指示に従って着脱可能記憶媒体６５０にアクセスする。着脱可能記憶媒体６５０は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。尚、読取装置６０３はコントローラ５Ｄに含まれなくてもよい。
【０１６９】
さらに、実施形態のコントローラ５Ｄの一部は、ハードウェアで実現してもよい。或いは、実施形態のコントローラ５Ｄは、ソフトウェアおよびハードウェアの組合せで実現してもよい。
【０１７０】
尚、セグメントの再配置処理は、再配置制御部２４により制御されるが、上述したように、実際の動作は各ノードのボリューム管理マネージャ１６またはボリューム管理エージェント１２により実行される。すなわち、再配置制御部２４の機能の一部または全部は、ボリューム管理マネージャ１６またはボリューム管理エージェント１２により実現されてもよい。
【０１７１】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１７２】
１      システム
２      サーバ
３      スイッチ
４      ノード
５      コントローラ
６      記憶領域
７      インターコネクト
１０    入出力制御部
１１    クラスタ制御
１２    ボリューム管理エージェント
１３    新陳代謝マネージャ
１６    ボリューム管理マネージャ
２２    互換性認識部
２３    リードライト要求認識部
２４    再配置制御部
２５    移行制御部
２６    入力情報認識部
２７    リスト記憶部
２８    配置情報記憶部
３１    第１リスト
３２    第２リスト
３３    最適配置情報
３４    配置管理情報
４１    取得部
４２    作成部
４３    再配置部
６０１  ＣＰＵ
６０２  メモリ
６０３  読取装置
６０４  通信インターフェース
６５０  着脱可能記憶媒体
【図１】
2016192170.tif 000003
【図２】
2016192170.tif 000004
【図３】
2016192170.tif 000005
【図４】
2016192170.tif 000006
【図５】
2016192170.tif 000007
【図６】
2016192170.tif 000008
【図７】
2016192170.tif 000009
【図８】
2016192170.tif 000010
【図９】
2016192170.tif 000011
【図１０】
2016192170.tif 000012
【図１１】
2016192170.tif 000013
【図１２】
2016192170.tif 000014
【図１３】
2016192170.tif 000015
【図１４】
2016192170.tif 000016
【図１５】
2016192170.tif 000017
【図１６】
2016192170.tif 000018
【図１７】
2016192170.tif 000019
【図１８】
2016192170.tif 000020
【図１９】
2016192170.tif 000021
【図２０】
2016192170.tif 000022
【図２１】
2016192170.tif 000023
【図２２】
2016192170.tif 000024
【図２３】
2016192170.tif 000025
【図２４】
2016192170.tif 000026
【図２５】
2016192170.tif 000027
【図２６】
2016192170.tif 000028
【図２７】
2016192170.tif 000029
【図２８】
2016192170.tif 000030
【図２９】
2016192170.tif 000031