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