(57)【要約】【課題】システムの運用を継続しながら、効率的なデータの移行を行うことを目的とする。【解決手段】ストレージ制御装置は、再配置制御部および移行制御部を含む。再配置制御部は、第１のデータを分割した第１の分割データが第１のストレージと該第１のストレージ以外の１以上の他のストレージとに分散配置されているときの分散配置に関する情報に基づいて、他のストレージから第１の分割データを第１のストレージに再配置する制御を行う。移行制御部は、第１のデータの入出力制御を行う制御部を前記第１のストレージから第２のストレージに移行した後に、第１のストレージに記憶されている第１のデータを前記第１のストレージから第２のストレージに移行する制御を行う。【選択図】図７
2016024563.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータを分割した第１の分割データが第１のストレージと該第１のストレージ以外の１以上の他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う再配置制御部と、
前記第１のデータの入出力制御を行う制御部を前記第１のストレージから第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う移行制御部と、
を備えることを特徴とするストレージ制御装置。
【請求項２】
前記再配置制御部は、前記第１のストレージが記憶している前記第１のデータ以外の第２のデータを分割した第２の分割データを前記他のストレージに再配置する制御を行う、
ことを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記移行制御部は、前記制御部に、前記第１のデータを移行している間に、前記第１のデータに対してライトアクセスがあった場合、前記ライトアクセスの対象が前記第２のストレージとなるように制御させ、前記第１のデータに対してリードアクセスがあった場合、前記リードアクセスの対象が前記第２のストレージに移行されていれば、前記リードアクセスの対象が前記第２のストレージとなるように制御させ、前記リードアクセスの対象が前記第２のストレージに移行されていなければ、前記リードアクセスの対象が前記第１のストレージとなるように制御させる、
ことを特徴とする請求項１又は２記載のストレージ制御装置。
【請求項４】
前記再配置制御部は、前記第２のストレージと前記他のストレージとの間に接続の互換性がある場合には、前記第２のストレージが記憶している前記第１のデータを前記他のストレージに分散配置し、前記互換性がない場合には、前記分散配置を実施しないように制御する、
ことを特徴とする請求項１〜３のうちいずれか１項に記載のストレージ制御装置。
【請求項５】
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、移動するデータ量に応じて前記第１のデータとして選択する、
ことを特徴とする請求項１〜４のうちいずれか１項に記載のストレージ制御装置。
【請求項６】
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、前記第１のストレージおよび前記第２のストレージの容量以下のサイズを持つデータを前記第１のデータとして選択する、
ことを特徴とする請求項１〜４のうちいずれか１項に記載のストレージ制御装置。
【請求項７】
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、入出力負荷に応じて前記第１のデータを選択する、
ことを特徴とする請求項１〜４のうちいずれか１項に記載のストレージ制御装置。
【請求項８】
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、ミラーリングされていないデータを前記第１のデータとして選択する、
ことを特徴とする請求項１〜４のうちいずれか１項に記載のストレージ制御装置。
【請求項９】
前記再配置制御部は、前記移行制御部が連続して移行制御を行うときには、同じストレージに前記第１の分割データの再配置を行い、前記移行制御部が連続した移行制御を行わないときには、異なるストレージに前記第１の分割データを分散配置する、
ことを特徴とする請求項１〜８のうちいずれか１項に記載のストレージ制御装置。
【請求項１０】
第１のストレージと、
前記第１のストレージと交換される第２のストレージと、
前記第１のストレージおよび前記第２のストレージ以外の１以上の他のストレージと、
を備え、
前記第２のストレージは、
第１のデータを分割した第１の分割データが前記第１のストレージと前記他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う再配置制御部と、
前記第１のデータの入出力制御を行う制御部を前記第１のストレージから前記第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う移行制御部と、
を備えることを特徴とするストレージシステム。
【請求項１１】
コンピュータに、
第１のデータを分割した第１の分割データが第１のストレージと該第１のストレージ以外の１以上の他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う再配置制御処理と、
前記第１のデータの入出力制御を行う制御部を前記第１のストレージから第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う移行制御処理と、
を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージシステムおよびストレージ制御プログラムに関する。
【背景技術】
【０００２】
複数のストレージを連携させて１つのシステムとして稼動させる技術として、スケールアウト型ストレージと称される技術が知られている。また、入出力の負荷集中を抑制するために、複数のストレージにボリュームのセグメントを分散するワイドストライピングと称される技術が知られている。
【０００３】
スケールアウト型ストレージでは、容量または性能が不足した場合に、ストレージ（以下、ノードと称することもある）の交換を行う。また、保守期限が近づいている運用中のストレージを新規のストレージに交換する場合もある。関連する技術として、以下の３つの技術が提案されている（例えば、特許文献１〜３参照）。
【０００４】
第１の技術は、ストレージシステムが、イニシエータとターゲットとの対応関係を管理するネームサーバとに接続される。ストレージシステムは、第一のストレージノードと第二のストレージノードを有する。第一のストレージノードには第一のターゲットが設定された第一の論理ユニットが、第二のストレージノードには第二の論理ユニットが存在する。第一の論理ユニットから第二の論理ユニットへデータを移行する際、第一のストレージノードは第一の論理ユニットに格納されているデータだけでなく、第一のターゲットの情報も第二のストレージノードに送信する。第二のストレージノードは受信した第一のターゲットの情報を用いて、第二の論理ユニットにターゲットを設定する。
【０００５】
第２の技術は、論理ボリュームを第１記憶場所から第２記憶場所に移すオペレーションを開始する。論理ボリューム内のデータを第１記憶場所から第２記憶場所にコピーするために第１及び第２記憶場所の間で１つの関係が確立される。論理ボリューム内のデータを第１記憶場所から第２記憶場所にコピーしている間に論理ボリューム内のデータに対する読み出しリクエストが受信される。該読み出しリクエストに応じて、その要求されたデータが第１記憶場所内の該論理ボリュームの第１コピーに存するか、それとも第２記憶場所内の該論理ボリュームの第２コピーに存するかが判定される。要求されたデータは、該論理ボリュームが第１記憶場所から第２記憶場所にコピーされている間に、判定された該論理ボリュームの第１又は第２のコピーから戻される。
【０００６】
第３の技術は、第一のストレージ装置と、第二のストレージ装置と、計算機とがネットワークを介して接続されたシステムに関する技術である。第一のストレージ装置は、第一の物理ポートと第一の論理ボリュームとが割り当てられたターゲットとを管理する。第二のストレージ装置は、第二の論理ボリュームを管理する。計算機は、第一の物理ポートとの間に第一の通信路を確立し、この通信路を使用してターゲットに対するアクセスを行う。第一のストレージ装置が、ターゲットと同じ識別子を持つターゲットを第二のストレージ装置に作成し、そのターゲットへ第二の論理ボリュームと、第二の物理ポートとを割り当てる。計算機が、第二の物理ポートとの間に第二の通信路を確立し、前記ターゲットへのアクセスを第二の通信路を用いて継続する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−３５３０３５号公報
【特許文献２】特開２００８−００９９７８号公報
【特許文献３】特開２００６−０９２０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数のストレージにデータが分散している状態で、運用中のストレージから新規のストレージにデータを移行する場合、移行対象のストレージのデータが移行対象以外のストレージから更新される可能性がある。このため、効率的なデータの移行を行うことが難しい。また、データの移行は、システムの運用を継続しながら行うことが望ましい。
【０００９】
そこで、１つの側面では、本発明は、システムの運用を継続しながら、効率的なデータの移行を行うことを目的とする。
【課題を解決するための手段】
【００１０】
一態様によるストレージ制御装置は、再配置制御部および移行制御部を含む。再配置制御部は、第１のデータを分割した第１の分割データが第１のストレージと該第１のストレージ以外の１以上の他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う。移行制御部は、前記第１のデータの入出力制御を行う制御部を前記第１のストレージから第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う。
【発明の効果】
【００１１】
一態様によれば、システムの運用を継続しながら、効率的なデータの移行を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】スケールアウト型ストレージの一例を示す図である。
【図２】複数のストレージにセグメントをワイドストライピングした状態の一例を示す図である。
【図３】新規のノードを追加したシステムの一例を示す図である。
【図４】ワイドストライピングの概念の一例を説明する図である。
【図５】第１テーブルの一例を示す図である。
【図６】第２テーブルの一例を示す図である。
【図７】新陳代謝マネージャの機能ブロックの一例を示す図である。
【図８】ボリューム再配置の一例を示す図である。
【図９】セグメントの再配置を行った後のシステムの全体の一例を示す図である。
【図１０】入出力制御部を新規ノードに移行する一例を示す図である。
【図１１】ボリュームの移行および新規ノードに対するサーバからのアクセスを示す一例を説明する図である。
【図１２】新規ノードがインターコネクトと互換性がない場合の一例を説明する図である。
【図１３】交換ノードをシステムから切り離したシステムの状態の一例を示す図である。
【図１４】図１３の状態からワイドストライピングを行ったシステムの状態の一例を示す図である。
【図１５】新規ノードがインターコネクトに互換性がない場合におけるサーバからのアクセスの一例を説明する図である。
【図１６】複数のノードを交換した場合の各ノードの一例を示す図である。
【図１７】図１６の状態からワイドストライピングを行った各ノードの一例を示す図である。
【図１８】第１の選択処理を示すフローチャート（その１）である。
【図１９】第１の選択処理を示すフローチャート（その２）である。
【図２０】第２の選択処理を示すフローチャートである。
【図２１】再配置制御処理を示すフローチャートである。
【図２２】移行制御処理を示すフローチャート（その１）である。
【図２３】移行制御処理を示すフローチャート（その２）である。
【図２４】新規ノードのコントローラのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１３】
（システムの全体構成の一例）
以下、図面を参照して、実施形態について説明する。図１は、システム１の一例を示している。システム１は、サーバ２、スイッチ３、ノード４Ａ〜ノード４Ｃおよびインターコネクト７を含む。システム１は、ストレージシステムの一例である。
【００１４】
サーバ２はホスト装置であり、所定の処理を行う。サーバ２は、業務サーバと称されることもある。スイッチ３は、サーバ２とノード４Ａ〜４Ｃとの間の通信を切り替える。スイッチ３は、業務スイッチと称されることもある。
【００１５】
図１の例では、ノード４Ａは「ノード＃１」と示し、ノード４Ｂは「ノード＃２」と示し、ノード４Ｃは「ノード＃３」と示している。各ノード４Ａ〜４Ｃは、ストレージの一例である。例えば、ストレージは、ストレージ筐体に内蔵される。
【００１６】
各ノード４Ａ〜４Ｃ（総称してノード４と称することもある）は、コントローラ５Ａ〜５Ｃ（総称してコントローラ５と称することもある）および記憶領域６Ａ〜６Ｃ（総称して記憶領域６と称することもある）を含む。例えば、コントローラ５および記憶領域６も、上述したストレージ筐体に内蔵される。
【００１７】
記憶領域６はデータを記憶する。例えば、記憶領域６は、ディスク領域である。コントローラ５は、記憶領域６に記憶されているデータのリードやライト等の制御を行う。インターコネクト７は、各ノード４を接続する通信路である。図１の例では、各ノード４に記憶されているデータは、スイッチ３およびインターコネクト７を経由して、他のノード４に移行することができる。
【００１８】
（ワイドストライピングの一例）
図１に示したシステム１は、スケールアウト型ストレージの形態を採用している。図２の例に示すように、スケールアウト型ストレージでは、各ノード４の記憶領域６はプール８として一元管理されている。従って、各ノード４が分離していたとしても、ユーザは各ノード４の記憶領域６を１つの仮想的な記憶領域として扱うことができる。
【００１９】
各ノード４はそれぞれボリュームという単位でデータを管理している。ボリュームは論理ボリュームと称されることもある。ボリューム自体はデータであり、実施形態では、ボリュームは複数に分割される。実施形態では、分割されたボリュームはセグメントと称される。セグメントは、分割データの一例である。
【００２０】
なお、実施形態では、上記のように、データはボリュームとして、分割データはセグメントとして説明するが、データはボリュームには限定されない。また、分割データはセグメントには限定されない。データは任意の情報であってもよく、分割データはデータを分割した情報であればよい。
【００２１】
図２の例では、ノード４Ａによって入出力が制御されるボリュームを「Vol_1」とし、ノード４Ｂによって入出力が制御されるボリュームを「Vol_2」とし、ノード４Ｃによって入出力が制御されるボリュームを「Vol_3」とした場合の例を示している。
【００２２】
各ノード４によって入出力が制御されるボリュームを分割したセグメントは、各ノード４の記憶領域６に分散配置される。この分散配置はワイドストライピングと称されることもある。ワイドストライピングでは、１つのノード４に入出力負荷が偏在しないように、セグメントを複数のノード４に分散配置する。ワイドストライピングを行うことで、システム１は安定した性能を発揮することができる。
【００２３】
図２の例では、各ノード４によって入出力が制御されるボリュームは３つに分割されて３つのセグメントとなる。そして、３つのセグメントは、それぞれ３つのノード４に分散配置されている。これにより、分割された３つのセグメントを均等に分散配置することができる。なお、ボリュームは任意の数のセグメントに分割してもよい。なお、図２では、各ノード４の記憶領域６は同一のプール８に含まれる例を示したが、幾つかのノード４の記憶領域６は、異なるプールに含まれるようにしてもよい。
【００２４】
（新規ノードを追加した一例）
図３は、システム１において、新規のノードを追加した例を示している。図３に示すように、実施形態では、３種類のノード４がある。交換ノード４Ａは、交換対象となるノードである。交換ノード４Ａは第１のストレージの一例である。
【００２５】
既存ノード４Ｂは、既存のシステム１で運用されていたノード４のうち、交換対象とならないノードである。既存ノード４Ｂは、他のストレージの一例である。上述したワイドストライピングの例では、交換ノード４Ａと１以上の既存ノード４とにセグメントが分散配置されている。
【００２６】
図３の例では、既存ノード４Ｂは１つを示しているが、例えば、図１で示したノード４Ｃが既存ノードであってもよい。既存ノードの数は１または２には限定されない。新規ノード４Ｄは、新規に追加されるノードである。交換ノード４Ａが新規ノード４Ｄに交換される。新規ノード４Ｄは第２のストレージの一例である。
【００２７】
交換ノード４Ａのコントローラ５Ａについて説明する。コントローラ５Ａは、入出力制御部１０Ａ、クラスタ制御１１Ａおよびボリューム管理１２Ａを含む。入出力制御部１０Ａは、交換ノード４Ａに対するデータの入出力制御を行う。
【００２８】
交換されるノード４に含まれる入出力制御部は、制御部の一例である。図３の例では、入出力制御部１０Ａが制御部の一例である。クラスタ制御１１Ａは複数のノード間のクラスタリングに関する制御を行う。システム１においては、複数のノード４のうちのいくつかは冗長構成（クラスタ構成）をとってもよい。ボリューム管理１２Ａはボリュームを管理する。
【００２９】
既存ノード４Ｂのコントローラ５Ｂについて説明する。コントローラ５Ｂは、入出力制御部１０Ｂ、クラスタ制御１１Ｂ、ＧＵＩ制御１５およびボリューム管理マネージャ１６を含む。以降、図面では、ボリューム管理マネージャを「ボリューム管理Ｍｇｒ」と表記する。
【００３０】
入出力制御部１０Ｂは、既存ノード４Ｂに対するデータの入出力制御を行う。クラスタ制御１１Ｂは複数のノード間のクラスタリングに関する制御を行う。ＧＵＩ制御１５は、ＧＵＩ（Graphical User Interface）の制御を行う。ボリューム管理マネージャ１６は、交換ノード４Ａと既存ノード４Ｂとに分散配置されているセグメントの管理を行う。
【００３１】
（ボリューム管理マネージャの一例）
ここで、ワイドストライピングに基づく、ボリューム管理マネージャ１７の一例について説明する。図４は、ワイドストライピングの概念の一例を示している。図４に示すように、ボリュームは複数のセグメントセットに分割される。また、セグメントセットも、複数のセグメントに分割される。分割されたセグメントは、複数のＬＵＮ(Logical Unit Number）に分散配置される。実施形態では、ＬＵＮはストレージになる。
【００３２】
例えば、１つのボリュームが４つのセグメントセットに分割され、１つのセグメントセットが８つのセグメントに分割されるときに、１つのセグメントが２５６ＭＢであるとすると、１つのボリュームは８ＧＢになる。
【００３３】
図５は、ボリューム管理マネージャ１６が管理する第１テーブルの一例である。図５に示す例の第１テーブルの「Segment_id」はセグメントに割り当てられた識別番号を示す。「LUN_id」は、該当するセグメントが属するＬＵＮの識別番号を示す。「Offset」は、ＬＵＮ内のオフセットを示す。
【００３４】
「Volume_ID」はボリュームの識別番号を示す。「SegmentSet_index」はセグメントセットのインデックスを示す。「Segment_index」はセグメントセット内のセグメントのインデックスを示す。
【００３５】
図６は、ボリューム管理マネージャ１６が管理する第２テーブルの一例である。図６に示す例の第２テーブルの「Volume_id」はボリュームの識別番号を示す。「redunduncy」は冗長度を示し、値が「１」の場合、非ミラーを示し、値が「２」の場合、ミラーであることを示す。「Controller」はボリュームの入出力制御を担当するノードを示す。「Retry」は、内部リトライ数を示す。「IO_load」は入出力の負荷を示す。
【００３６】
内部リトライ数は、入出力制御部１０がボリュームに対するアクセスを行った際に、エラー等によりアクセスに失敗し、内部でアクセスの再リトライが発生した数である。内部リトライ数は、例えばアクセス対象のデータが記憶されているディスク等の物理媒体やアクセス経路上に異常がある場合に増加する。
【００３７】
例えば、図５の第１テーブルの「Segment_id」を参照することで、当該セグメントが何れのボリュームから分割されたかを認識することができる。つまり、ボリューム管理マネージャ１６が管理する第１テーブルを参照することで、ボリュームを分割したセグメントの分散配置に関する情報を認識することができる。以下、分散配置に関する情報を分散配置情報と称する。分散配置情報はコントローラ５Ｄの図示しないメモリに記憶されている。
【００３８】
（新陳代謝マネージャの一例）
図３に示すように、新規ノード４Ｄのコントローラ５Ｄは、入出力制御部１０Ｄ、クラスタ制御１１Ｄ、ボリューム管理１２Ｄおよび新陳代謝マネージャ１３を含む。入出力制御部１０Ｄは、新規ノード４Ｄに対するデータの入出力制御を行う。クラスタ制御１１Ｄは複数のノード間のクラスタリングに関する制御を行う。ボリューム管理１２Ｄはボリュームを管理する。
【００３９】
新陳代謝マネージャ１３は、新陳代謝の制御を行う。新陳代謝について説明する。新陳代謝とは、複数のノード４を用いて運用されているシステム１で、保守期限が近づいたノード４を新規のノード４に交換することである。新陳代謝マネージャ１３は、ストレージ制御装置の一例である。
【００４０】
図３の例では、新陳代謝を制御する新陳代謝マネージャ１３は、新規ノード４Ｄのコントローラ５Ｄに含まれている。図７は、新陳代謝マネージャ１３の機能ブロックの一例を示している。なお、以降の図面において、新陳代謝マネージャは「新陳代謝Ｍｇｒ」と表記する。
【００４１】
図７の例の新陳代謝マネージャ１３は、情報取得部２１、互換性認識部２２、リードライト要求認識部２３、再配置制御部２４および移行制御部２５、入力情報認識部２６、リスト記憶部２７および選択制御部２８を含む。
【００４２】
情報取得部２１は、既存ノード４Ｂのボリューム管理マネージャ１６から分散配置情報を取得する。例えば、情報取得部２１は、新規ノード４Ｄの通信機能を用いて、スイッチ３またはインターコネクト７を経由して、既存ノード４Ｂから分散配置情報を取得する。
【００４３】
互換性認識部２２は、インターコネクト７の互換性を認識する。互換性のあるインターコネクト７に接続されるノード４の間で通信を行うことができる。リードライト要求認識部２３は、サーバ２から入出力制御部１０Ｄに対して、リード要求またはライト要求があったことを認識する。
【００４４】
再配置制御部２４は、ワイドストライピングされている各セグメントの再配置を行う。交換ノード４Ａのボリューム（Vol_1：以下、ボリュームＶ１とする）は、交換ノード４Ａおよび１以上の既存ノードに分散配置されている。再配置制御部２４は、ボリュームＶ１のセグメント（ボリュームＶ１を分割したセグメント）を交換ノード４Ａの記憶領域６Ｄに再配置する制御を行う。
【００４５】
また、再配置制御部２４は、交換ノード４Ａに再配置されているボリュームのセグメントを他の１以上のノード４に分散配置する制御を行う。つまり、再配置制御部２４は、ワイドストライピングを行う。
【００４６】
移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄの入出力制御部１０Ｄに移行する。例えば、移行制御部２５は、入出力制御部１０Ａを入出力制御部１０Ｄにコピーしてもよい。このとき例えば、交換ノード４Ａに割り当てられていたアドレス（例えば仮想ＩＰ（Internet Protocol）アドレス）も新規ノード４Ｄに移行されてもよい。これにより、ボリュームＶ１の担当ノードが交換ノード４Ａから新規ノード４Ｄに変更される。
【００４７】
そして、移行制御部２５は、入出力制御部１０Ａの移行を行った後に、交換ノード４Ａの記憶領域６Ａに記憶されているボリュームＶ１の全てのセグメントを新規ノード４Ｄに移行する。つまり、移行制御部２５は、ボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行する。
【００４８】
入力情報認識部２６は、入力された情報を認識する。例えば、新規ノード４Ｄやシステム１を管理するコンピュータ（不図示）に設けられる入力手段（不図示）を用いて、ユーザが情報を入力した場合、ユーザが入力した情報を入力情報認識部２６が認識する。
【００４９】
リスト記憶部２７は、第１リストおよび第２リストを記憶する。第１リストは、交換ノード４Ａに再配置されるボリュームに関するリストである。第２リストは、交換ノード４Ａから既存ノード４Ｂ、４Ｃに再配置されるボリュームに関するリストである。詳細は、後述する。選択制御部２８は、再配置するボリュームを選択する制御を行う。
【００５０】
（ボリューム再配置の一例）
図８（Ａ）および（Ｂ）は、ボリューム再配置の一例を示している。図８（Ａ）に示すように、交換ノード４Ａに対応するボリュームＶ１がある。また、既存ノード４Ｂに対応するボリューム（Vol_2：以下、ボリュームＶ２とする）がある。また、既存ノード４Ｃに対応するボリューム（Vol_3：以下、ボリュームＶ３とする）がある。
【００５１】
ボリュームＶ１、Ｖ２およびＶ３はそれぞれ複数に分割されて複数のセグメントとなり、各ノード４に均等に分散配置されている。情報取得部２１は、既存ノード４Ｂのボリューム管理マネージャ１６から分散配置情報を取得する。
【００５２】
これにより、再配置制御部２４は、交換ノード４Ａと既存ノード４Ｂおよび４Ｃとに分散配置されているボリュームのセグメントに関する情報を認識できる。再配置制御部２４は、分散配置情報に基づいて、ボリュームＶ１のセグメントを交換ノード４Ａに再配置する制御を行う。
【００５３】
交換されるノード４に再配置されるボリュームは第１のデータの一例であり、当該ボリュームのセグメントは第１の分割データの一例である。実施形態では、ボリュームＶ１が第１のデータの一例となる。また、ボリュームＶ１を分割したセグメントが第１の分割データの一例となる。
【００５４】
また、再配置制御部２４は、分散配置情報に基づいて、交換ノード４Ａに配置されているボリュームＶ１以外のボリュームＶ２およびＶ３のセグメントを既存ノード４Ｂまたは４Ｃに再配置する制御を行う。
【００５５】
交換されるノード４から１以上の既存ノードに再配置されるボリュームは第２のデータの一例であり、当該ボリュームのセグメントは第２の分割データの一例である。実施形態では、ボリュームＶ２およびＶ３が第２のデータの一例となり、これらのボリュームのセグメントが第２の分割データの一例となる。
【００５６】
図８（Ｂ）は、再配置制御部２４がセグメントの再配置を行った後に、各ノード４に再配置されるセグメントの状態を示している。図８（Ｂ）に示すように、ボリュームＶ１のセグメントは全て交換ノード４Ａに再配置されている。
【００５７】
図９は、図８（Ｂ）のようにセグメントの再配置を行った後のシステム１の全体の一例を示している。図８（Ｂ）および図９に示すように、交換ノード４ＡはボリュームＶ１だけのセグメントを記憶する。
【００５８】
ここで、再配置制御部２４は、任意の１以上のボリュームのセグメントを交換ノード４Ａに再配置してもよい。例えば、交換ノード４ＡにボリュームＶ２のセグメントが多く配置されている場合、再配置制御部２４は、既存ノード４Ｂおよび４ＣからボリュームＶ２のセグメントを交換ノード４Ａに再配置する。
【００５９】
これにより、交換ノード４Ａに移動するデータ量を少なくすることができる。再配置制御部２４は、移動するデータ量が所定の率よりも低いボリュームを選択して、交換ノード４Ａに再配置を行う。所定の率は、任意に設定することができる。再配置制御部２４は、複数のボリュームのうち、移動するデータ量が最も少ないボリュームを選択してもよい。
【００６０】
また、再配置制御部２４は、交換ノード４Ａの記憶領域６Ａおよび新規ノード４Ｄの記憶領域６Ｄの容量以下のデータサイズを持つボリュームを選択する。例えば、ボリュームＶ１のデータサイズが交換ノード４Ａの記憶領域６Ａの容量を超過している場合、再配置制御部２４は、ボリュームＶ１以外のボリュームＶ２またはＶ３を交換ノード４Ａに再配置するように制御する。
【００６１】
また、再配置制御部２４は、ボリュームの入出力負荷に応じて交換ノード４Ａに再配置するボリュームを選択してもよい。新規ノード４Ｄと既存ノード４Ｂおよび４Ｃとを比較して、新規ノード４Ｄが既存ノード４Ｂおよび４Ｃよりも性能が高ければ、再配置制御部２４は、複数のボリュームのうち、入出力負荷が高いボリュームを選択する。
【００６２】
そして、再配置制御部２４は、入出力負荷が高いボリュームを交換ノード４Ａに再配置する。再配置制御部２４は、複数のボリュームのうち、入出力負荷が所定の値より高いボリュームを選択し、交換ノード４Ａに再配置してもよい。所定の値は任意に設定してもよい。また、再配置制御部２４は、入出力負荷が最も高いボリュームを選択して、選択したボリュームを交換ノード４Ａに再配置してもよい。
【００６３】
新規ノード４Ｄが既存ノード４Ｂおよび４Ｃよりも性能が高いときには、新規ノード４Ｄに入出力負荷が高いボリュームを移行する。新規ノード４Ｄは高付加に対応することができるため、システム１は安定した運用を行うことができる。
【００６４】
一方、新規ノード４Ｄが既存ノード４Ｂおよび４Ｃより性能が低ければ、再配置制御部２４は、複数のボリュームのうち、入出力負荷が低いボリュームを選択する。そして、再配置制御部２４は、選択したボリュームを交換ノード４Ａに再配置してもよい。
【００６５】
例えば、既存ノード４Ｂと既存ノード４Ｃとで２つのノードになる。２つのノードの入出力性能が新規ノード４Ｄの入出力性能よりも大きいとき等は、再配置制御部２４は、入出力負荷が高いボリュームを既存ノード４Ｂおよび４Ｃに再配置する。また、再配置制御部２４は、入出力負荷が低いボリュームを交換ノード４Ａに再配置する。
【００６６】
従って、再配置制御部２４は、新規ノード４Ｄが既存ノード４Ｂおよび４Ｃよりも性能が低ければ、入出力負荷が低いボリュームを選択して、交換ノード４Ａに再配置する。このとき、再配置制御部２４は、複数のボリュームのうち、入出力負荷が所定の値より低いボリュームを選択してもよい。所定の値は任意に設定してもよい。また、再配置制御部２４は、複数のボリュームのうち、入出力負荷が最も低いボリュームを選択してもよい。
【００６７】
新規ノード４Ｄが既存ノード４Ｂおよび４Ｃよりも性能が低いときには、新規ノード４Ｄに入出力負荷が低いボリュームを移行することで、システム１は安定した運用を行うことができる。
【００６８】
以上のように、再配置制御部２４は、新規ノード４Ｄと既存ノード４Ｂおよび４Ｃとの性能およびボリュームの入出力負荷に応じて、交換ノード４Ａに再配置するボリュームを選択してもよい。なお、この場合、新陳代謝マネージャ１３は、新規ノード４Ｄと既存ノード４Ｂおよび４Ｃとの性能の値を記憶する。
【００６９】
また、再配置制御部２４は、複数のボリュームのうち、内部リトライ数に応じてボリュームを再配置してもよい。例えば、再配置制御部２４は、内部リトライ数が所定の値より多いボリュームを交換ノード４Ａに再配置してもよい。所定の値は任意に設定してもよい。交換ノード４Ａに再配置されるボリュームは新規ノード４Ｄに移行される。
【００７０】
よって、内部リトライ数が多いボリュームを交換ノード４Ａに再配置することで、当該ボリュームは新規ノード４Ｄで安定的に運用することができる。再配置制御部２４は、複数のボリュームのうち、内部リトライ数が最も多いボリュームを選択して、交換ノード４Ａに再配置してもよい。
【００７１】
新規ノード４Ｄは、既存ノード４Ｂおよび４Ｃよりも信頼性が高い場合が多い。再配置制御部２４は、内部リトライ数が多いボリュームを信頼性が高い新規ノード４Ｄに移行することで、システム１の安定的な運用を行うことができる。
【００７２】
また、再配置制御部２４は、複数のボリュームのうち、非ミラーボリュームを選択して、交換ノード４Ａに再配置してもよい。ボリュームはミラーリングされて、ミラーリングされたボリュームはミラーボリュームとしてプール８に記憶されることがある。従って、非ミラーボリュームは、元のボリュームになる。
【００７３】
非ミラーボリュームは、信頼性の高いノード４で運用されることが望ましい。新規ノード４Ｄは、既存ノード４Ｂおよび４Ｃより信頼性が高い場合が多く、この場合、再配置制御部２４は、複数のボリュームのうち、非ミラーボリュームを交換ノード４Ａに再配置してもよい。なお、交換ノード４Ａに再配置されるボリュームは複数であってもよい。
【００７４】
次に、交換ノード４Ａに再配置されない１以上のボリュームについて説明する。交換するノード４は１つだけではなく、複数の場合もある。再配置制御部２４は、交換するノード４が１つの場合（交換ノード４Ａとする）には、交換ノード４Ａに再配置されなかった１以上のボリュームを既存ノード４Ｂと既存ノード４Ｃとで分散配置する。つまり、再配置制御部２４は、交換するノード４が１つの場合には、複数の既存のノード４でボリュームのワイドストライピングを行うようにしてもよい。
【００７５】
複数のノード４を交換する場合、再配置制御部２４は、ワイドストライピングを行わないようにしてもよい。複数のノード４を交換する場合、再配置制御部２４は、それぞれの交換するノード４にボリュームを再配置する。従って、１つ目の交換するノード４にボリュームの再配置を行った後にワイドストライピングを行わないことで、２つ目以降の交換するノード４に効率的にボリュームの再配置を行うことができる。
【００７６】
また、交換するノード４が１つの場合（交換ノード４Ａ）、再配置制御部２４は、１つのノード４の性能で対応できるボリュームについては、分散配置を行わないようにしてもよい。次回以降のノード４の交換を行うときに、再配置制御部２４は交換するノード４にボリュームの再配置を行う。このときに、ボリュームの分散配置が行われていなければ、再配置制御部２４は、効率的にボリュームの再配置を行うことができる。
【００７７】
（ボリュームの移行の一例）
次に、ボリュームの移行の一例について説明する。上述したように、再配置制御部２４は、１以上の既存のノード４から交換するノード４にボリュームのセグメントの再配置を行う。以下、交換するノード４は交換ノード４Ａであり、１以上の既存のノード４は既存ノード４Ｂおよび４Ｃであるものとする。
【００７８】
再配置制御部２４によるボリュームの全てのセグメントの再配置を行うことにより、交換ノード４Ａの記憶領域６Ａにボリュームが再配置される。このボリュームを上述したボリュームＶ１とする。
【００７９】
図１０に示すように、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄに移行する。例えば、移行制御部２５は、入出力制御部１０Ａの機能を新規ノード４Ｄの入出力制御部１０Ｄにコピーする。これにより、ボリュームＶ１の担当は、交換ノード４Ａから新規ノード４Ｄに変更される。
【００８０】
次に、図１１に示すように、移行制御部２５は、インターコネクト７を経由して、交換ノード４Ａの記憶領域６Ａに再配置されているボリュームＶ１を新規ノード４Ｄの記憶領域６Ｄに移行する。移行制御部２５は、ボリュームＶ１をセグメントごとに新規ノード４Ｄに移行してもよい。
【００８１】
移行制御部２５が、ボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行している間に、サーバ２がボリュームＶ１に対してリードアクセスまたはライトアクセスを行う場合がある。なお、図１１において、移行されるボリュームＶ１は実線で示し、リードアクセスまたはライトアクセスは破線で示している。
【００８２】
ボリュームＶ１の移行中に、サーバ２がボリュームＶ１に対してライトアクセスを行った場合、リードライト要求認識部２３は、ボリュームＶ１に対するライトアクセスを認識する。移行制御部２５は、新規ノード４Ｄの記憶領域６Ｄにライトアクセスの対象となるデータを記憶する。
【００８３】
一方、ボリュームＶ１の移行中に、サーバ２がボリュームＶ１に対してリードアクセスを行った場合、リードライト要求認識部２３は、ボリュームＶ１に対するリードアクセスを認識する。
【００８４】
ボリュームＶ１の移行中において、移行済みのセグメントは新規ノード４Ｄの記憶領域６Ｄに記憶されているが、移行前のセグメントは交換ノード４Ａの記憶領域６Ａに記憶されている。
【００８５】
従って、移行制御部２５は、新規ノード４Ｄに移行済みのセグメントに対するリードアクセスの場合は、リードアクセスの対象が新規ノード４Ｄの記憶領域６Ｄとなるように制御する。一方、移行制御部２５は、新規ノード４Ｄ移行されていないセグメントに対するリードアクセスの場合は、リードアクセスの対象が交換ノード４Ａの記憶領域６Ａとなるように制御する。
【００８６】
これにより、ボリュームＶ１を移行している間に、サーバ２がボリュームＶ１に対してリードアクセスまたはライトアクセスを行った場合でも、システム１は正常に動作することが可能である。
【００８７】
以上のように、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄに移行することで、移行するボリュームＶ１の担当は新規ノード４Ｄになる。その後に、移行制御部２５は、ボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行するため、システム１の運用の継続性を維持しつつ、ノードの交換を行うことができる。また、サーバ２については設定変更を加えることなく、ノードの交換を行うことができる。
【００８８】
また、ボリュームＶ１の移行中に、サーバ２がボリュームＶ１に対してリードアクセスまたはライトアクセスを行った場合、移行制御部２５は上述した制御を行うことで、システム１の正常な動作を維持することができる。
【００８９】
図１２は、交換ノード４Ａと既存ノード４Ｂおよび４Ｃとの間でインターコネクト７の互換性があるが、新規ノード４Ｄはインターコネクト７の互換性がない場合を示している。この場合、移行制御部２５は、インターコネクト７を経由して、交換ノード４Ａから新規ノード４ＤにボリュームＶ１を移行することができない。従って、移行制御部２５はスイッチ３を経由して、交換ノード４Ａから新規ノード４ＤにボリュームＶ１を移行する制御を行う。
【００９０】
図１３は、移行制御部２５が交換ノード４Ａをシステム１から切り離した状態を示している。交換ノード４Ａが担当していたボリュームＶ１の担当は新規ノード４Ｄに変更されている。また、ボリュームＶ１は新規ノード４Ｄの記憶領域６Ａに移行されている。
【００９１】
上述したように、再配置制御部２４は、交換ノード４Ａと既存ノード４Ｂおよび４Ｃとに分散配置されていたボリュームＶ１のセグメントを交換ノード４Ａに再配置している。その後に、移行制御部２５がボリュームＶ１を交換ノード４Ａから新規ノード４Ｄに移行している。
【００９２】
このため、移行制御部２５は、交換ノード４Ａに集められたボリュームＶ１のセグメントをそのまま新規ノード４Ｄに移行すればよいため、効率的なデータの移行を行うことができる。
【００９３】
また、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄに移行した後に、ボリュームＶ１の移行を行っている。従って、システム１の運用を継続しながら、データの移行を行うことができる。
【００９４】
（データ移行後の分散配置の一例）
次に、データ移行後の分散配置の一例について説明する。図１３に示すように、システム１は、新規ノード４Ｄと既存ノード４Ｂおよび４Ｃとを有して運用される。新規ノード４ＤはボリュームＶ１の全てのセグメントを記憶している。図１３の例では、新規ノード４Ｄは、ボリュームＶ１のセグメントＣ１、Ｃ２およびＣ３を記憶している。
【００９５】
スケールアウト型ストレージでは、ワイドストライピングを行うことで、入出力負荷の偏在をなくし、効率的なシステム１の運用が可能になる。従って、新規ノード４Ｄは、セグメントＣ１、Ｃ２およびＣ３を分散配置することが好ましい。
【００９６】
図１４は、再配置制御部２４がインターコネクト７を経由して、セグメントＣ２を既存ノード４Ｂに再配置し、セグメントＣ３を既存ノード４Ｃに再配置している。なお、再配置制御部２４は、セグメントＣ１を新規ノード４Ｄから移動していない。従って、セグメントＣ１、Ｃ２およびＣ３は、各ノード４にワイドストライピングされる。
【００９７】
ここで、互換性認識部２２は、新規ノード４がインターコネクト７に互換性があるか否かを認識する。新規ノード４がインターコネクト７に互換性があると互換性認識部２２が認識した場合は、再配置制御部２４はセグメントＣ１、Ｃ２およびＣ３をワイドストライピングする。
【００９８】
一方、新規ノード４がインターコネクト７に互換性がないと認識した場合、再配置制御部２４はワイドストライピングを実施しなくてもよい。図１５に示すように、サーバ２は、スイッチ３を経由して、各ノード４に対してアクセスを行う。
【００９９】
このとき、サーバ２がボリュームＶ１のセグメントＣ３に対してアクセスを行うときには、ボリュームＶ１の担当ノードである新規ノード４に対してアクセスを行う。図１５に示すように、ワイドストライピングにより、セグメントＣ３が既存ノード４Ｃの記憶領域６Ｃに配置されている場合、スイッチ３を経由して再度のアクセスが行われる。つまり、新規ノード４Ｄから既存ノード４Ｃに対して、スイッチ３を経由して再度のアクセスが行われる。
【０１００】
この場合、スイッチ３に対する負荷が高くなる。新規ノード４がインターコネクト７との間で互換性がある場合には、新規ノード４Ｄから既存ノード４Ｃに対して再度のアクセスを行うこともできる。ただし、新規ノード４がインターコネクト７と互換性がない場合には、スイッチ３が使用されるため、スイッチ３に対する負荷が高くなる。
【０１０１】
そこで、新規ノード４がインターコネクト７と互換性がないと互換性認識部２２が認識している場合、再配置制御部２４は新規ノード４のセグメントＣ１、Ｃ２およびＣ３のワイドストライピングを実施しないようにしてもよい。ただし、スイッチ３が高い負荷に対する耐性がある場合等には、再配置制御部２４はワイドストライピングを実施してもよい。
【０１０２】
（複数ノードの交換の一例）
図１６は、既存ノード４Ｂが交換ノードになり、当該交換ノードが新規ノード４Ｅに交換された一例を示している。既存ノード４Ｂを交換ノードとして、当該交換ノードの新規ノード４Ｄへの交換は、交換ノード４Ａから新規ノード４Ｄへの交換と同様である。
【０１０３】
図１６は、新規ノード４Ｄおよび４Ｅの２つのノードが交換されている例を示している。既存ノード４Ｃには第１インターコネクト７Ａが接続されている。新規ノード４Ｄおよび４Ｅには第２インターコネクト７Ｂが接続されている。
【０１０４】
新規ノード４Ｄまたは４Ｅの何れかの新陳代謝マネージャ１３の再配置制御部２４は、第２インターコネクト７Ｂを経由して、ワイドストライピングを行う。図１７は、その一例を示している。
【０１０５】
図１７の例において、新規ノード４ＤのセグメントＣ１が新規ノード４Ｅに移行されている。また、新規ノード４ＥのセグメントＣ４が新規ノード４Ｄに移行されている。再配置制御部２４は、図１７の例に示すようなワイドストライピングを行ってもよい。
【０１０６】
（第１の選択処理）
次に、図１８を参照して、第１の選択処理について説明する。第１の選択処理は、交換ノード４Ａに再配置する１以上のボリュームを選択する処理である。第１の選択処理で選択されたボリュームは交換ノード４Ａに再配置され、その後、新規ノード４Ｄに移行される。
【０１０７】
ユーザは、上述した入力手段を用いて、移行させるボリュームを指定することができる。また、ユーザは、入力手段を用いて、移行させないボリュームを指定することができる。ユーザが指定した移行させるボリュームを「Vmove」とする。入力情報認識部２６は、この「Vmove」を認識する（Ｓ１）。また、ユーザが指定した移行させないボリュームを「Vrefuse」とする。入力情報認識部２６は、この「Vrefuse」を認識する（Ｓ２）。
【０１０８】
選択制御部２８は、交換ノード４Ａの記憶領域６Ａに記憶されているセグメントのボリュームを第１リストに追加する。第１リストは、交換ノード４Ａに再配置する候補となるボリュームに関するリストである。
【０１０９】
上述したように、スケールアウト型ストレージにおいて、ボリュームのセグメントがワイドストライピングされていると、１つのノード４に異なるボリュームのセグメントが含まれる。従って、交換ノード４Ａにも異なるボリュームのセグメントが含まれる場合がある。例えば、交換ノード４ＡにボリュームＶ１、Ｖ２およびＶ３のセグメントが含まれている場合、選択制御部２８は、ボリュームＶ１、Ｖ２およびＶ３を第１リストに追加する（Ｓ３）。
【０１１０】
選択制御部２８は、第１リストに含まれるボリュームＶ１、Ｖ２およびＶ３のうち、交換ノード４Ａに含まれるセグメントの割合の低い順に並べる（Ｓ４）。第１リストに含まれるボリュームを「Vcandidate」とする。
【０１１１】
選択制御部２８は、「Vmove」と「Vcandidate」との和集合の演算を行う。図１８では「Vmove U Vcandidate」として示している。この和集合の演算により、複数のボリュームが選択される。
【０１１２】
そして、和集合の演算を行った結果として得られる複数のボリュームの中から、「Vrefuse」のボリュームを除外する。図１８では、その結果を「(Vmove U Vcandidate)-Vrefuse」として示している。これにより、１以上のボリュームが選択される。
【０１１３】
また、交換ノード４Ａの記憶領域６Ａの容量を「Nold」とし、新規ノード４Ｄの記憶領域６Ｄの容量を「Nnew」とする。「min(Nold,Nnew)」は、「Nold」と「Nnew」とのボリュームの容量のうち少ない方を示す。
【０１１４】
選択制御部２８は、「(Vmove U Vcandidate)-Vrefuse」により選択された１以上のボリュームのサイズが「min(Nold,Nnew)」よりも小さいか否かを判定する（Ｓ５）。図１８では、「(Vmove U Vcandidate)-Vrefuse < min(Nold,Nnew)」として示している。
【０１１５】
Ｓ５の判定でＮＯの場合、処理は「Ａ」に進む。図１９は、「Ａ」移行の処理を示している。選択制御部２８は、セグメントの割合の低い順に並べられているボリュームから順番にボリュームを取得する（Ｓ６）。
【０１１６】
選択制御部２８は、選択したボリュームのサイズが新規ノード４Ｄの空き容量より大きいか否かを判定する（Ｓ７）。Ｓ７の判定でＮＯの場合、つまり選択したボリュームのサイズが新規ノード４Ｄの空き容量以下の場合、当該ボリュームは新規ノード４Ｄに移行することができる。
【０１１７】
Ｓ７の判定でＮＯの場合、選択制御部２８は、Ｓ６で取得したボリュームがミラーであるか否かを判定する（Ｓ８）。つまり、選択制御部２８は、当該ボリュームが非ミラーボリュームであるか否かを判定する。
【０１１８】
Ｓ８の判定でＹＥＳの場合、つまり、取得したボリュームがミラーリングされたボリュームである場合、選択制御部２８は、取得したボリュームの内部リトライ数が閾値Ｔ１より小さいか否かを判定する（Ｓ９）。閾値Ｔ１は任意の値に設定することができる。
【０１１９】
Ｓ９の判定でＮＯの場合、つまり取得したボリュームの内部リトライ数が多い場合（閾値Ｔ１以上の場合）、選択制御部２８は次の２つの条件を満たすか否かを判定する。１つ目の条件は、「取得したボリュームの入出力負荷が閾値Ｔ２より小さく、且つ新規ノード４Ｄが既存ノード４Ｂ、４Ｃより低性能であること」である。
【０１２０】
閾値Ｔ２は、任意に設定することができる。例えば、具体的な値を予め閾値Ｔ２として設定してもよい。また、閾値Ｔ２は、第１リストに含まれるボリュームの入出力負荷の平均としてもよい。
【０１２１】
２つ目の条件は、「取得したボリュームの入出力負荷が閾値Ｔ２よりも大きく、且つ新規ノード４Ｄが既存ノード４Ｂ、４Ｃより高性能であること」である。選択制御部２８は、１つ目の条件または２つ目の条件が成立するか否かを判定する（Ｓ１０）。
【０１２２】
何れの条件も成立しない場合、Ｓ１０の判定はＮＯとなる。この場合、選択制御部２８は、第１リストから対象のボリュームを削除して、第２リストに当該ボリュームを追加する（Ｓ１１）。第２リストは、交換ノード４Ａから既存ノード４Ｂ、４Ｃに再配置されるボリュームに関するリストである。従って、対象ボリュームは、移行対象の候補から除外される。
【０１２３】
ここで、Ｓ７の判定でＹＥＳの場合、つまり選択したボリュームのサイズが新規ノード４Ｄの空き容量より大きい場合、当該ボリュームは新規ノード４Ｄに移行されない。従って、選択制御部２８は、Ｓ８〜Ｓ１０の処理を行うことなく、対象のボリュームを第１リストから削除して、当該対象のボリュームを第２リストに追加する。
【０１２４】
Ｓ８の判定でＮＯ場合、Ｓ９の判定でＹＥＳの場合、Ｓ１０の判定でＹＥＳの場合、およびＳ１１の処理が行われた後、処理は「Ｂ」に移行する。つまり、図１８のＳ５の処理に戻る。
【０１２５】
Ｓ８の判定でＮＯの場合、つまり、該当のボリュームが非ミラーボリュームである場合、該当のボリュームは第１リストから削除されない。また、Ｓ９の判定でＹＥＳの場合、つまり該当のボリュームの内部リトライ数が閾値Ｔ１より小さい場合、該当のボリュームは第１リストから削除されない。
【０１２６】
また、Ｓ１０の判定でＹＥＳの場合、つまり上記の１つ目の条件または２つ目の条件の何れかが成立する場合、該当ボリュームは第１リストから削除されない。一方、Ｓ１１の処理が行われると、該当ボリュームは第１リストから削除される。
【０１２７】
Ｓ１１の処理が行われると、次に「Ｂ」からＳ５の処理に移行する。このとき、第１リストから１つのボリュームが削除されているため、「Vcandidate」は前回にＳ５の処理を行ったときより少なくなっている。
【０１２８】
以上の処理を繰り返し、選択制御部２８は、交換ノード４Ａに再配置するボリュームを選択する。選択されたボリュームは交換ノード４Ａから新規ノード４Ｄに移行するボリュームになる。
【０１２９】
（第２の選択処理）
次に、図２０を参照して、第２の選択処理を説明する。第２の選択処理は、交換ノード４Ａから既存ノード４Ｂ、４Ｃに再配置するボリュームを選択する処理である。第２の選択処理で選択されるボリュームは１以上のボリュームになる。
【０１３０】
第１の選択処理が終了すると、１以上のボリュームが移行対象として選択される。このため、第１の選択処理のＳ１１の処理が行われるごとに、第２リストにボリュームが追加される。
【０１３１】
選択制御部２８は、第２リストのボリュームを負荷の高い順番でソートする（Ｓ２１）。選択制御部２８は、第２リストから１つのボリュームを選択する（Ｓ２２）。選択制御部２８は、選択したボリュームのボリュームサイズが各既存ノードの空き容量より大きいか否かを判定する（Ｓ２３）。
【０１３２】
Ｓ２３の判定でＮＯの場合、選択制御部２８は、連続してノード交換を行うか否かを判定する（Ｓ２４）。Ｓ２４の判定でＮＯの場合、選択制御部２８は、該当ボリュームの入出力負荷が閾値Ｔ３より小さいか否かを判定する（Ｓ２５）。閾値Ｔ３は任意の値に設定してよい。
【０１３３】
Ｓ２５の判定でＮＯの場合、つまりＳ２２で選択したボリュームの入出力負荷が大きい場合、選択制御部２８は、異なるノード４にボリュームのセグメントを分散配置するように決定する（Ｓ２６）。つまり、選択制御部２８は、ボリュームのセグメントが既存ノード４Ｂおよび４Ｃにワイドストライピングされるように決定する。
【０１３４】
また、Ｓ２３の判定でＹＥＳの場合、つまりボリュームサイズが各既存ノードの空き容量より大きい場合、処理はＳ２６に移行し、選択制御部２８は、ボリュームを分割したセグメントを分散配置する。
【０１３５】
一方、Ｓ２４の判定でＹＥＳの場合、つまり連続したノード交換の場合、選択制御部２８は、同じノードにセグメントを再配置するように決定する（Ｓ２７）。また、Ｓ２５の判定でＹＥＳの場合、つまり該当ボリュームの入出力負荷が低い場合、選択制御部２８は、同じノードにセグメントを再配置するように決定する。
【０１３６】
Ｓ２６の処理またはＳ２７の処理は、ボリュームの配置に関する決定であり、実際にはまだボリュームの配置は行われていない。次に、選択制御部２８は、第２リストが空になっているか否かを判定する（Ｓ２８）。
【０１３７】
Ｓ２８の判定がＮＯの場合、第２リストには未だボリュームが残っている。よって、処理はＳ２２に進む。一方、Ｓ２８の判定がＹＥＳの場合、第２リストにはボリュームが残っていないため、処理は終了する。
【０１３８】
（再配置制御処理）
次に、図２１を参照して、再配置制御処理について説明する。上述した第１の選択処理により、再配置制御処理は、実際にボリュームのセグメントを再配置する処理である。最初に、新陳代謝マネージャ１３が既存ノード４Ｂのボリューム管理マネージャ１６に対して、再配置の指示を出す（Ｓ３１）。
【０１３９】
この再配置の指示に基づいて、ボリューム管理マネージャ１６は、ボリュームのセグメントの再配置を行う。なお、ボリューム管理マネージャ１６は、既存ノード４Ｃにあってもよい。この場合は、再配置制御部２４は既存ノード４Ｃのボリューム管理マネージャ１６に対して、再配置するよう制御を行う（Ｓ３２）。
【０１４０】
第１の選択処理により、交換ノード４Ａに再配置するボリュームは選択されている。実施形態では、選択したボリュームはボリュームＶ１である。よって、ボリューム管理マネージャ１６は、ボリュームＶ１のセグメントを交換ノード４Ａの記憶領域６Ａに再配置する。
【０１４１】
次に、再配置制御部２４は、第２の選択処理の結果に基づいて、交換ノード４Ａから既存ノード４Ｂ、４Ｃにボリュームのセグメントを再配置するよう、ボリューム管理マネージャ１６に対して制御を行う（Ｓ３３）。
【０１４２】
第２の選択処理により、１以上のボリュームについて、既存ノード４Ｂと４Ｃとにセグメントを分散配置するか、１つの既存ノード４Ｂまたは４Ｃにセグメントを配置するかが決定されている。この決定に基づいて、再配置制御部２４は、再配置制御を行う。
【０１４３】
（移行制御処理）
次に、図２２および図２３を参照して、移行制御処理について説明する。再配置制御処理を行うことにより、交換ノード４Ａの記憶領域６ＡにボリュームＶ１のセグメントが再配置される。最初に、移行制御部２５は、交換ノード４Ａの入出力制御部１０Ａを新規ノード４Ｄの入出力制御部１０Ｄに移行する（Ｓ４１）。
【０１４４】
これにより、ボリュームＶ１の担当ノードは新規ノード４Ｄに変更される。Ｓ４１が行われた後に、移行制御部２５は、交換ノード４Ａから新規ノード４Ｄにデータの移行する処理を行う（Ｓ４２）。つまり、移行制御部２５は、交換ノード４Ａから新規ノード４ＤにボリュームＶ１の移行を行う。
【０１４５】
移行制御部２５は、ボリュームＶ１の移行を行っている間に、サーバ２からボリュームＶ１にライト要求（ライトアクセス）があったか否かを判定する（Ｓ４３）。ライトアクセスがあった場合には、入出力制御部１０Ｄは、当該ライトアクセスを新規ノード４Ｄに対して行うように制御する（Ｓ４４）。Ｓ４３でＮＯの場合には、Ｓ４４の処理は行われない。
【０１４６】
移行制御部２５は、ボリュームＶ１の移行を行っているときに、サーバ２からボリューム２にリード要求（リードアクセス）があったか否かを判定する（Ｓ４５）。Ｓ４５でＹＥＳの場合、移行制御部２５は、リードアクセスの対象となるセグメントが新規ノード４Ｄに移行済みであるか否かを判定する（Ｓ４６）。
【０１４７】
Ｓ４６でＹＥＳの場合、つまりリードアクセスの対象となるセグメントが新規ノード４Ｄに移行済みの場合、入出力制御部１０Ｄは、当該リードアクセスを新規ノード４Ｄに対して行うように制御する（Ｓ４７）。つまり、入出力制御部１０Ｄは、新規ノード４Ｄからリードするように制御する。
【０１４８】
一方、Ｓ４６でＮＯの場合、つまりリードアクセスの対象となるセグメントが新規ノード４Ｄに移行されていない場合、入出力制御部１０Ｄは、当該リードアクセスを交換ノード４Ａに対して行うように制御する（Ｓ４８）。つまり、入出力制御部１０Ｄは、交換ノード４Ａからリードするように制御する。
【０１４９】
Ｓ４５の判定でＮＯの場合（つまり、リードアクセスがない場合）、Ｓ４７の処理を行った場合またはＳ４８の処理を行った場合、移行制御部２８は、データ移行処理が終了したか否かを判定する（Ｓ４９）。つまり、交換ノード４Ａから新規ノード４Ｄにボリュームの全てのセグメントを移行したか否かを判定する。
【０１５０】
Ｓ４９でＮＯの場合、処理はＳ４２に戻る。そして、ボリュームＶ１のセグメントの移行処理が行われる。一方、Ｓ４９でＹＥＳの場合、処理は「Ｃ」に進む。「Ｃ」以降の処理について、図２３を参照して説明する。
【０１５１】
交換ノード４Ａから新規ノード４Ｄに対するボリュームＶ１の全てのセグメントの移行が終了すると、交換ノード４Ａは、システム１から切り離すことが可能になる。従って、新陳代謝マネージャ１３は、ボリューム制御マネージャ１６に対して、交換ノード４をシステム１から切り離す指示を出す（Ｓ５０）。この指示に基づいて、ボリューム制御マネージャ１６は、交換ノード４をシステム１から切り離す（Ｓ５１）。
【０１５２】
移行制御部２５は、新規ノード４Ｄとインターコネクト７の互換性があるノード４が存在するか否かを判定する（Ｓ５２）。Ｓ５２でＹＥＳの場合、移行制御部２５は、新規ノード４Ｄと他のノード４（ここでは、既存ノード４Ｂおよび４Ｃ）との間でワイドストライピングを実施する（Ｓ５３）。一方、Ｓ５２でＮＯの場合は、ワイドストライピングは実施しない。以上により、移行制御処理が終了する。
【０１５３】
（新規ノードのコントローラのハードウェア構成）
次に、新規ノードのコントローラ５Ｄのハードウェア構成について説明する。図１４は、実施形態に係る新規ノードのハードウェア構成の一例を示す。
【０１５４】
図１４において、新規ノード４Ｄのコントローラ５Ｄは、ＣＰＵ６０１、メモリ６０２、読取装置６０３、及び通信インターフェース６０４を含む。ＣＰＵ６０１、メモリ６０２、読取装置６０３、及び通信インターフェース６０４はバスを介して接続される。
【０１５５】
ＣＰＵ６０１は、メモリ６０２を利用して上述のフローチャートの手順を記述したプログラムを実行することにより、コントローラ５Ｄの新陳代謝マネージャ１３のリスト記憶部２７以外の各部の機能の一部または全部の機能を提供する。ＣＰＵ６０１が実行するプログラムは、ストレージ制御プログラムであってよい。
【０１５６】
メモリ６０２は、例えば半導体メモリであり、ＲＡＭ（Random Access Memory）領域およびＲＯＭ（Read Only Memory）領域を含んで構成される。メモリ６０２はリスト記憶部２７の一部または全部の機能を提供する。
【０１５７】
読取装置６０３は、ＣＰＵ６０１の指示に従って着脱可能記憶媒体６５０にアクセスする。着脱可能記憶媒体６５０は、たとえば、半導体デバイス（ＵＳＢメモリ等）、磁気的作用により情報が入出力される媒体（磁気ディスク等）、光学的作用により情報が入出力される媒体（ＣＤ−ＲＯＭ、ＤＶＤ等）などにより実現される。尚、読取装置６０３はコントローラ５Ｄに含まれなくてもよい。
【０１５８】
さらに、実施形態のコントローラ５Ｄの一部は、ハードウェアで実現してもよい。或いは、実施形態のコントローラ５Ｄは、ソフトウェアおよびハードウェアの組合せで実現してもよい。
【０１５９】
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１６０】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）
第１のデータを分割した第１の分割データが第１のストレージと該第１のストレージ以外の１以上の他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う再配置制御部と、
前記第１のデータの入出力制御を行う制御部を前記第１のストレージから第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う移行制御部と、
を備えることを特徴とするストレージ制御装置。
（付記２）
前記再配置制御部は、前記第１のストレージが記憶している前記第１のデータ以外の第２のデータを分割した第２の分割データを前記他のストレージに再配置する制御を行う、
ことを特徴とする付記１記載のストレージ制御装置。
（付記３）
前記移行制御部は、前記制御部に、前記第１のデータを移行している間に、前記第１のデータに対してライトアクセスがあった場合、前記ライトアクセスの対象が前記第２のストレージとなるように制御させ、前記第１のデータに対してリードアクセスがあった場合、前記リードアクセスの対象が前記第２のストレージに移行されていれば、前記リードアクセスの対象が前記第２のストレージとなるように制御させ、前記リードアクセスの対象が前記第２のストレージに移行されていなければ、前記リードアクセスの対象が前記第１のストレージとなるように制御させる、
ことを特徴とする付記１記載のストレージ制御装置。
（付記４）
前記再配置制御部は、前記第２のストレージと前記他のストレージとの間に接続の互換性がある場合には、前記第２のストレージが記憶している前記第１のデータを前記他のストレージに分散配置し、前記互換性がない場合には、前記分散配置を実施しないように制御する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記５）
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、移動するデータ量に応じて前記第１のデータとして選択する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記６）
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、前記第１のストレージおよび前記第２のストレージの容量以下のサイズを持つデータを前記第１のデータとして選択する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記７）
前記再配置制御部は、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、入出力負荷に応じて前記第１のデータを選択する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記８）
前記再配置制御部は、前記第１のストレージの性能が前記他のストレージの性能より高い場合、前記第１のストレージまたは前記他のストレージに配置された複数のデータのうち、前記入出力負荷が所定の値よりも高いデータを前記第１のデータとして選択する、
ことを特徴とする付記７記載のストレージ制御装置。
（付記９）
前記再配置制御部は、前記第１のストレージの性能が前記他のストレージの性能より低い場合、前記複数のデータのうち、前記入出力負荷が所定の値よりも低いデータを前記第１のデータとして選択する、
ことを特徴とする付記７記載のストレージ制御装置。
（付記１０）
前記再配置制御部は、複数のデータのうち、内部リトライ数に応じて前記第１のデータとして選択する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記１１）
前記再配置制御部は、複数のデータのうち、ミラーリングされていないデータを前記第１のデータとして選択する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記１２）
前記再配置制御部は、前記移行制御部が連続して移行制御を行うときには、同じストレージに前記第１の分割データの再配置を行い、前記移行制御部が連続した移行制御を行わないときには、異なるストレージに前記第１の分割データを分散配置する、
ことを特徴とする付記１記載のストレージ制御装置。
（付記１３）
第１のストレージと、
前記第１のストレージと交換される第２のストレージと、
前記第１のストレージおよび前記第２のストレージ以外の１以上の他のストレージと、
を備え、
前記第２のストレージは、
第１のデータを分割した第１の分割データが前記第１のストレージと前記他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う再配置制御部と、
前記第１のデータの入出力制御を行う制御部を前記第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う移行制御部と、
を備えることを特徴とするストレージシステム。
（付記１４）
コンピュータに、
第１のデータを分割した第１の分割データが第１のストレージと該第１のストレージ以外の１以上の他のストレージとに分散配置されているときの前記分散配置に関する情報に基づいて、前記他のストレージから前記第１の分割データを前記第１のストレージに再配置する制御を行う再配置制御処理と、
前記第１のデータの入出力制御を行う制御部を第２のストレージに移行した後に、前記第１のストレージに記憶されている前記第１のデータを前記第１のストレージから前記第２のストレージに移行する制御を行う移行制御処理と、
を実行させるストレージ制御プログラム。
【符号の説明】
【０１６１】
１      システム
２      サーバ
３      スイッチ
４      ノード
５      コントローラ
６      記憶領域
７      インターコネクト
１０    入出力制御部
１３    新陳代謝マネージャ
１６    ボリューム管理マネージャ
２２    互換性認識部
２３    リードライト要求認識部
２４    再配置制御部
２５    移行制御部
６０１  ＣＰＵ
６０２  メモリ
６０３  読取装置
６０４  通信インターフェース
６５０  着脱可能記憶媒体
【図１】
2016024563.tif 000003
【図３】
2016024563.tif 000004
【図４】
2016024563.tif 000005
【図５】
2016024563.tif 000006
【図６】
2016024563.tif 000007
【図７】
2016024563.tif 000008
【図１０】
2016024563.tif 000009
【図１８】
2016024563.tif 000010
【図１９】
2016024563.tif 000011
【図２０】
2016024563.tif 000012
【図２１】
2016024563.tif 000013
【図２２】
2016024563.tif 000014
【図２３】
2016024563.tif 000015
【図２４】
2016024563.tif 000016
【図２】
2016024563.tif 000017
【図８】
2016024563.tif 000018
【図９】
2016024563.tif 000019
【図１１】
2016024563.tif 000020
【図１２】
2016024563.tif 000021
【図１３】
2016024563.tif 000022
【図１４】
2016024563.tif 000023
【図１５】
2016024563.tif 000024
【図１６】
2016024563.tif 000025
【図１７】
2016024563.tif 000026