(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数のノードそれぞれが有する第１のストレージ装置にデータが分散して格納されている仮想ディスクに属するデータを、該複数のノードの１つとして用いられるコンピュータに管理させるデータ管理プログラムにおいて、
前記コンピュータに、
前記仮想ディスクの記憶容量に相当する第２のストレージ装置内の記憶領域が、移行先記憶領域とされたとき、前記仮想ディスク内の記憶領域のうちの、前記コンピュータが前記移行先記憶領域との対応付けを担当する担当領域に、前記移行先記憶領域内の一部の記憶領域を対応付け、
前記コンピュータが管理している前記仮想ディスクのデータのうち、前記担当領域のデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーし、前記コンピュータが管理している前記仮想ディスクのデータのうち、前記担当領域以外の記憶領域のデータを、該データの前記仮想ディスク内での位置の前記移行先記憶領域との対応付けを担当するノードを介して、該データに対応する前記移行先記憶領域へコピーする、
処理を実行させるデータ管理プログラム。
【請求項２】
前記コンピュータに、さらに、
前記コンピュータが管理している前記仮想ディスクのデータのコピーが完了すると、前記コンピュータが管理している前記仮想ディスクのデータが格納されていた前記コンピュータが有する前記第１のストレージ装置の記憶領域を開放する、
処理を実行させることを特徴とする請求項１記載のデータ管理プログラム。
【請求項３】
前記コンピュータに、さらに、
第３のストレージ装置内に、前記移行先記憶領域内の単位記憶領域ごとの前記仮想ディスク内の記憶領域との対応関係、および前記移行先記憶領域内の単位記憶領域ごとのデータの有無を管理する管理情報を格納し、
前記仮想ディスクのデータをコピーする際には、前記管理情報を参照して、該データの前記仮想ディスク内での記憶領域に対応する前記移行先記憶領域内の単位記憶領域を特定し、特定した該単位記憶領域に該データをコピーし、
前記仮想ディスクのデータを前記移行先記憶領域へコピーすると、データがコピーされた前記移行先記憶領域内の単位記憶領域にデータが格納されたことを、前記管理情報に設定する、
処理を実行させることを特徴とする請求項１または２のいずれかに記載のデータ管理プログラム。
【請求項４】
前記仮想ディスクは、データが２重化して前記複数のノードに分散格納されており、２重化されたデータのうち、優先して参照される一方のデータが第１の属性、他方のデータが第２の属性と定義されており、
前記コンピュータに、さらに、
前記仮想ディスクのデータをコピーする際には、前記第２の属性のデータを、該第２の属性のデータの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーする処理を実行させることを特徴とする請求項１乃至３のいずれかに記載のデータ管理プログラム。
【請求項５】
ネットワークを介して接続された複数のノードを有し、前記複数のノードそれぞれが有する第１のストレージ装置に、仮想ディスク内のデータを分散して格納するストレージシステムにおいて、
前記複数のノードそれぞれは、前記仮想ディスクの記憶容量に相当する第２のストレージ装置内の記憶領域が、移行先記憶領域とされたとき、前記仮想ディスク内の記憶領域のうちの、ノード自身が前記移行先記憶領域との対応付けを担当する担当領域に、前記移行先記憶領域内の一部の記憶領域を対応付け、
前記複数のノードそれぞれは、ノード自身が管理している前記仮想ディスクのデータのうち、該ノードの担当領域のデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーし、該ノードが管理している前記仮想ディスクのデータのうち、前記担当領域以外の記憶領域のデータを、該データの前記仮想ディスク内での位置の前記移行先記憶領域との対応付けを担当するノードを介して、該データに対応する前記移行先記憶領域へコピーする、
ことを特徴とするストレージシステム。
【請求項６】
ネットワークを介して接続された複数のノードそれぞれが有する第１のストレージ装置にデータが分散して格納されている仮想ディスクに属するデータを、該複数のノードの１つとして用いられるコンピュータに管理させるデータ管理方法において、
前記コンピュータが、
前記仮想ディスクの記憶容量に相当する第２のストレージ装置内の記憶領域が、移行先記憶領域とされたとき、前記仮想ディスク内の記憶領域のうちの、前記コンピュータが前記移行先記憶領域との対応付けを担当する担当領域に、前記移行先記憶領域内の一部の記憶領域を対応付け、
前記コンピュータが管理している前記仮想ディスクのデータのうち、前記担当領域のデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーし、前記コンピュータが管理している前記仮想ディスクのデータのうち、前記担当領域以外の記憶領域のデータを、該データの前記仮想ディスク内での位置の前記移行先記憶領域との対応付けを担当するノードを介して、該データに対応する前記移行先記憶領域へコピーする、
ことを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に格納されたデータを管理するデータ管理プログラム、ストレージシステム、およびデータ管理方法に関する。
【背景技術】
【０００２】
大規模なコンピュータネットワークではデータの信頼性を確保するため、データを複数のストレージ装置に多重化して格納する場合がある。データを多重化させる手法の１つとして、データをネットワーク上の複数のノード（ディスクノード）それぞれに接続されたストレージ装置に、多重化させたデータを分散格納する方法がある。このように、ネットワーク上の複数のディスクノードでデータを分散管理するシステムを、マルチノードストレージシステムと呼ぶ。
【０００３】
マルチノードストレージシステムでは、アクセスを行うノード（アクセスノード）内に仮想ディスクを定義し、仮想ディスクを介してデータの入出力を行う。仮想ディスク内の記憶領域は複数のセグメントに分割され、各セグメントがストレージ装置の複数の記憶領域を対応付けられる。アプリケーションが仮想ディスクのセグメントを指定してデータの書き込みを行うと、書き込み対象のセグメントに対応付けられた複数のストレージ装置にデータが書き込まれる。このようにデータを多重化することで、データの信頼性を高めることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００４／１０４８４５号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の技術では、マルチノードストレージシステムの仮想ディスク内のデータを他のシステムに移行する場合、仮想ディスク内のデータのコピー処理が１台のコンピュータで実行され、そのコンピュータに負荷がかかりすぎていた。
【０００６】
例えば、既存の仮想ディスクのアクセスを止められない場合、以下の手順でデータが移行される。
［処理１］仮想ディスクのスナップショットを、仮想ディスクにアクセス可能なコンピュータが作成する。
［処理２］仮想ディスクにアクセス可能なコンピュータが、作成したスナップショットを他システムに接続されるストレージ装置にコピーする。
［処理３］仮想ディスクにアクセス可能なコンピュータが、仮想ディスクへのアクセスを停止して、処理２のコピー後に発生した仮想ディスク内のデータ更新内容を他システムのストレージ装置に反映する。
［処理４］他システム内のコンピュータが、移行先のストレージ装置へのアクセスを開始する。
【０００７】
このような手順で仮想ディスク内のデータを他のシステムのストレージ装置に移行した場合、処理１から処理３までを１台のコンピュータが行うこととなり、そのコンピュータの処理負荷が過大となる。
【０００８】
１つの側面では、データ移行時のコンピュータの処理負荷を軽減したデータ管理プログラム、ストレージシステム、およびデータ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案としては、データ管理プログラムは、ネットワークを介して接続された複数のノードそれぞれが有する第１のストレージ装置にデータが分散して格納されている仮想ディスクに属するデータを、該複数のノードの１つとして用いられるコンピュータに管理させる。すなわち、データ管理プログラムは、コンピュータに以下の処理を実行させる。
【００１０】
コンピュータは、第２のストレージ装置内の、仮想ディスクの記憶容量に相当する記憶領域を移行先記憶領域とし、該移行先記憶領域を仮想ディスク内の記憶領域に対応付ける。そして、コンピュータは、コンピュータが管理している仮想ディスクのデータを、該データの仮想ディスク内での位置に対応する移行先記憶領域内の位置へコピーする。
【００１１】
また、１つの案として、ストレージシステムは、ネットワークを介して接続された複数のノードを有し、複数のノードそれぞれが有する第１のストレージ装置に、仮想ディスク内のデータを分散して格納する。複数のノードのうちの少なくとも１つのノードは、第２のストレージ装置内の、仮想ディスクの記憶容量に相当する記憶領域を移行先記憶領域とし、該移行先記憶領域を仮想ディスク内の記憶領域に対応付ける。そして、複数のノードは、それぞれ自己が管理している仮想ディスクのデータを、該データの仮想ディスク内での位置に対応する移行先記憶領域内の位置へコピーする。
【００１２】
また、１つの案として、データ管理方法は、ネットワークを介して接続された複数のノードそれぞれが有する第１のストレージ装置にデータが分散して格納されている仮想ディスクに属するデータを、該複数のノードの１つとして用いられるコンピュータに管理させる。
【００１３】
このデータ管理方法では、コンピュータが、第２のストレージ装置内の、仮想ディスクの記憶容量に相当する記憶領域を移行先記憶領域とし、該移行先記憶領域を仮想ディスク内の記憶領域に対応付ける。さらにコンピュータは、コンピュータが管理している仮想ディスクのデータを、該データの仮想ディスク内での位置に対応する移行先記憶領域内の位置へコピーする。
【発明の効果】
【００１４】
データ移行時のコンピュータの処理負荷が軽減される。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態の機能を示すブロック図である。
【図２】第２の実施の形態のマルチノードストレージシステム構成例を示す図である。
【図３】ディスクノードのハードウェア構成例を示す図である。
【図４】仮想ディスクのデータ構造を示す図である。
【図５】第２の実施の形態に係るマルチノードストレージシステムの各装置の機能を示すブロック図である。
【図６】ストレージ装置のデータ構造例を示す図である。
【図７】メタデータ記憶部のデータ構造の一例を示す図である。
【図８】状態フラグで示される状態の種類を示す図である。
【図９】仮想ディスクメタデータ記憶部のデータ構造の一例を示す図である。
【図１０】データ移行に利用される各ノードの機能を示す図である。
【図１１】第２の実施の形態におけるデータ移行処理の手順を示すシーケンス図である。
【図１２】スライスコピー処理の手順を示すシーケンス図である。
【図１３】スライスコピー処理によるメタデータの内容の推移の一例を示す図である。
【図１４】セカンダリ切り離し処理手順を示すシーケンス図である。
【図１５】セカンダリ切り離し処理で更新されたメタデータの例を示す図である。
【図１６】データ移行後のメタデータ用ディスク内のメタデータの例を示す図である。
【図１７】ノード故障時の制御ノードにおける処理手順を示すフローチャートである。
【図１８】シングルプライマリ化処理の手順を示すフローチャートである。
【図１９】再２重化処理の手順を示すフローチャートである。
【図２０】セグメントに割り当てられたスライスのメタデータの例を示す図である。
【図２１】シングルプライマリへの変更例を示す図である。
【図２２】異常セグメントにリザーブスライス割り当て後のメタデータの例を示す図である。
【図２３】再２重化完了後のメタデータの例を示す図である。
【図２４】第３の実施の形態のマルチノードストレージシステムの構成例を示す図である。
【図２５】第３の実施の形態に係るマルチノードストレージシステムの各装置の機能を示すブロック図である。
【図２６】データ移行に利用される各ノードの機能を示す図である。
【図２７】第３の実施の形態におけるデータ移行処理の手順を示すシーケンス図である。
【図２８】ディスクノードへの担当領域の通知例を示す図である。
【図２９】各ディスクノードが管理するスライスとメタデータ用ディスクとを示す図である。
【図３０】各メタデータ用ディスク内に格納されたメタデータの例を示す図である。
【図３１】第４の実施の形態のマルチノードストレージシステムの構成例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態の機能を示すブロック図である。図１に示すストレージシステムは、ネットワークを介して接続された複数のノード５〜７を有する。複数のノード５〜７は、それぞれストレージ装置２〜４を有する。このストレージ装置２〜４に、仮想ディスク１のデータが分散して格納されている。
【００１７】
このようなストレージシステムにおいて、仮想ディスク１のデータを、ストレージ装置８に移行させる場合がある。例えば、ストレージシステムで利用していた仮想ディスク１を、ＳＡＮ（Storage Area Network）などの他のシステムに移行する場合である。なお、ストレージ装置８は、仮想ディスク１のデータを格納するストレージ装置２〜４とは別に設けられている。
【００１８】
このように仮想ディスク１のデータをストレージ装置８に移行するために、ノード５は、対応付け手段５ａとコピー手段５ｂとを有する。またノード６は、コピー手段６ａを有する。さらにノード７は、コピー手段７ａを有する。
【００１９】
ノード５の対応付け手段５ａは、ストレージ装置８内の、仮想ディスク１の記憶容量に相当する記憶領域を移行先記憶領域８ａとする。そして対応付け手段５ａは、移行先記憶領域８ａを仮想ディスク１内の記憶領域に対応付ける。例えば対応付け手段５ａは、仮想ディスク１内の連続する記憶領域を、移行先記憶領域８ａ内の連続する記憶領域に対応付ける。
【００２０】
ノード５のコピー手段５ｂは、ノード５が管理している仮想ディスク１のデータをストレージ装置２から取り出し、そのデータの仮想ディスク１内での位置に対応する移行先記憶領域８ａ内の位置へコピーする。
【００２１】
またノード６のコピー手段６ａは、ノード６が管理している仮想ディスク１のデータをストレージ装置３から取り出し、そのデータの仮想ディスク１内での位置に対応する移行先記憶領域８ａ内の位置へコピーする。さらにノード７のコピー手段７ａは、ノード７が管理している仮想ディスク１のデータをストレージ装置４から取り出し、そのデータの仮想ディスク１内での位置に対応する移行先記憶領域８ａ内の位置へコピーする。
【００２２】
このように、各ノード５〜７は、仮想ディスク１内のデータのうち自己の管理するデータのみをコピーすればよく、１つのノードに負荷が集中せずにすむ。その結果、データ移行時の各ノードの負荷が軽減される。
【００２３】
しかも、データをコピーしている間もコピー元の仮想ディスク１のデータにアクセス可能である。すなわち、データ移行中であっても、仮想ディスク１を用いたデータ管理サービスを継続して提供できる。そのため、データ移行に伴うサービス停止期間を低減できる。
【００２４】
ところで、仮想ディスク１内の記憶領域と移行先記憶領域８ａとの対応関係は、例えば制御ノード９を介して各ノード５〜７のコピー手段５ｂ，６ａ，７ａに通知される。この場合、制御ノード９は、ノード５の対応付け手段５ａから、仮想ディスク１内の記憶領域と移行先記憶領域８ａとの対応関係を示す情報を取得する。そして、制御ノード９は、各ノード５〜７に対して、仮想ディスク１内の記憶領域と移行先記憶領域８ａとの対応関係を通知する。
【００２５】
なお制御ノード９は、仮想ディスク１内の記憶領域と移行先記憶領域８ａとの対応関係を通知と共に、コピー指示を行うことができる。その場合、各ノード５〜７のコピー手段５ｂ，６ａ，７ａは、コピー指示に従ってデータのコピーを行う。例えば制御ノード９は、仮想ディスク１内の単位記憶領域を、アドレスの小さい順に１つずつ選択する。そして、制御ノード９は、選択した単位記憶領域のデータを管理しているノードに対して、選択した単位記憶領域に対応する移行先記憶領域８ａ内の位置を通知すると共に、選択した単位記憶領域のデータのコピーを指示する。すると、コピーの指示を受けたノードによって、選択した単位記憶領域のデータが、移行先記憶領域８ａにコピーされる。制御ノード９は、例えば、選択した単位記憶領域のコピーが完了するのを待って、次の単位記憶領域を選択する。これにより、データのコピーが順番に行われる。データのコピーが順番に行われることで、複数のノードにより、ストレージ装置８へのデータコピーが同時に行われることが抑制される。その結果、例えば、データ移行に伴うネットワーク上のデータ通信の輻輳の発生が抑制される。
【００２６】
なお各ノード５〜７は、自己の管理している仮想ディスク１のデータのコピーが完了すると、自己の管理している仮想ディスク１のデータが格納されていたストレージ装置２〜４の記憶領域を開放することができる。記憶領域の開放とは、その記憶領域に、現在記憶されているデータとは関連性のないデータを格納可能とすることである。
【００２７】
また、ストレージ装置８がノード５の直下に接続されている場合がある。このような場合、ノード５は、他のノード６，７が管理している仮想ディスク１の各データをノード６，７から受信すると、受信したデータを、そのデータの仮想ディスク内での位置に対応する移行先記憶領域８ａ内の位置へ書き込む。
【００２８】
また、ノード５は、さらに、移行先記憶領域８ａを有するストレージ装置８内に、移行先記憶領域８ａに関する管理情報を格納することができる。管理情報には、例えば、移行先記憶領域８ａ内の単位記憶領域ごとの仮想ディスク内の記憶領域との対応関係、および移行先記憶領域８ａ内の単位記憶領域ごとのデータの有無が含まれる。管理情報をストレージ装置８に格納した場合、各ノード５〜７が仮想ディスク１のデータをコピーする際には、管理情報を参照する。そして各ノード５〜７は、管理情報に基づいてデータの仮想ディスク内での記憶領域に対応する移行先記憶領域８ａ内の単位記憶領域を特定し、特定した単位記憶領域に該データをコピーする。また各ノード５〜７は、仮想ディスク１のデータを移行先記憶領域８ａ内へコピーすると、データがコピーされた移行先記憶領域８ａ内の単位記憶領域にデータが格納されたことを、管理情報に設定する。
【００２９】
このように、管理情報を用いて移行先記憶領域８ａ内のデータを管理することで、データ移行の途中で障害などが発生し、仮想ディスク１のデータが失われても、移行先記憶領域８ａ内のデータを用いた復旧が容易となる。すなわち、管理情報を参照すれば、仮想ディスク１内の失われたデータに対応する移行先記憶領域８ａ内の単位記憶領域が判別できる。その単位記憶領域内にデータが格納されていれば、そのデータを用いて仮想ディスク１内のデータを復旧できる。
【００３０】
また、仮想ディスク１の記憶領域を複数に分割し、分割された記憶領域を、各ノード５〜７での担当領域とすることができる。この場合、各ノード５〜７は、自己の担当領域について、移行先記憶領域８ａとの対応付けを行う。例えばノード５〜７は、仮想ディスク１内の全記憶領域のうちの自己の担当する担当領域に、移行先記憶領域８ａ内の少なくとも一部の記憶領域を対応付ける。この場合、移行先記憶領域８ａへのコピーは、例えば、コピー先の位置の対応付けを行ったノードを介して行われる。すなわち、各ノード５〜７は、自己の管理している仮想ディスク１のデータのうち、自己の担当領域以外の記憶領域のデータを移行先記憶領域８ａにコピーする場合がある。その場合、コピー対象のデータの仮想ディスク１内での位置の割り当てを担当したノードを介してデータのコピーを行う。具体的には、各ノード５〜７は、コピー対象のデータの仮想ディスク１内での位置の割り当てを担当したノードにデータを送信する。すると、そのデータを受信したノードが、そのデータに対応する移行先記憶領域８ａ内の位置へデータを格納する。
【００３１】
なお、ストレージシステムでは、仮想ディスク１のデータを２重化して複数のノードに分散格納することができる。その場合、２重化されたデータのうち、優先して参照される一方のデータを第１の属性、他方のデータを第２の属性と定義することができる。このようにデータが２重化された場合、各ノード５〜７のコピー手段５ｂ，６ａ，７ａは、仮想ディスク１のデータをコピーする際に、第２の属性のデータを、第２の属性のデータの仮想ディスク内での位置に対応する移行先記憶領域８ａ内の位置へコピーする。優先して参照される第１の属性のデータではなく、第２の属性のデータをコピーすることで、データ移行時における仮想ディスク１内のデータ参照時間の遅延を抑止できる。
【００３２】
〔第２の実施の形態〕
次に、第２の実施の形態の詳細を説明する。第２の実施の形態は、データを２重化して管理するマルチノードストレージシステムにおいて、データ移行を行うものである。
【００３３】
図２は、第２の実施の形態のマルチノードストレージシステム構成例を示す図である。第２の実施の形態では、スイッチ１０を介して、複数のディスクノード１００，２００，３００、制御ノード５００、アクセスノード３０、および管理ノード４００が接続されている。ディスクノード１００には、ストレージ装置１１０，１２０が接続されている。ディスクノード２００には、ストレージ装置２１０が接続されている。ディスクノード３００には、ストレージ装置３１０が接続されている。
【００３４】
なお、ディスクノード１００に接続されているストレージ装置１２０は、マルチノードストレージシステム以外のシステムに移行するデータの記憶用に接続されている。マルチノードストレージシステム以外のシステムとしては、例えばＳＡＮがある。
【００３５】
各ディスクノード１００，２００，３００には、ディスクノードＩＤが付与されている。図２の例では、ディスクノード１００のディスクノードＩＤは「ＤＰ１」、ディスクノード２００のディスクノードＩＤは「ＤＰ２」、ディスクノード３００のディスクノードＩＤは「ＤＰ３」である。各ディスクノード１００，２００，３００に接続されたストレージ装置１１０，１２０，２１０，３１０は、ディスクノード１００，２００，３００のディスクノードＩＤによってネットワーク上の位置が識別される。
【００３６】
ストレージ装置１１０には、複数のハードディスク装置（ＨＤＤ）１１１，１１２，１１３，１１４が実装されている。ストレージ装置１２０には、複数のＨＤＤ１２１，１２２，１２３，１２４が実装されている。ストレージ装置２１０には、複数のＨＤＤ２１１，２１２，２１３，２１４が実装されている。ストレージ装置３１０には、複数のＨＤＤ３１１，３１２，３１３，３１４が実装されている。各ストレージ装置１１０，１２０，２１０，３１０は、内蔵するＨＤＤを用いたＲＡＩＤシステムである。
【００３７】
ディスクノード１００，２００，３００は、例えば、ＩＡ（Intel Architecture）と呼ばれるアーキテクチャのコンピュータである。ディスクノード１００，２００，３００は、接続されたストレージ装置１１０，１２０，２１０，３１０に格納されたデータを管理し、管理しているデータをスイッチ１０経由で端末装置２１，２２，２３に提供する。また、ディスクノード１００，２００，３００は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも２つのディスクノードで管理されている。
【００３８】
制御ノード５００は、ディスクノード１００，２００，３００を管理する。例えば、制御ノード５００は、ディスクノード１００，２００，３００から新たなストレージ装置の接続通知を受け取ると、仮想ディスクを介して、接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
【００３９】
アクセスノード３０には、ネットワーク２０を介して複数の端末装置２１，２２，２３が接続されている。アクセスノード３０には、仮想ディスクが定義されている。そして、アクセスノード３０は、端末装置２１，２２，２３からの仮想ディスク上でのデータのアクセス要求に応答して、ディスクノード１００，２００，３００内の対応するデータへアクセスする。
【００４０】
管理ノード４００は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード４００では、管理者からの操作入力に応答して、仮想ディスクのデータの移行先となるストレージ装置の接続指示をディスクノードに送信する。また、管理ノード４００は、管理者からの操作入力に応答して、仮想ディスクのデータの移行指示を制御ノード５００に送信する。
【００４１】
図３は、ディスクノードのハードウェア構成例を示す図である。ディスクノード１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０９を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００４２】
ＲＡＭ１０２は、ディスクノード１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００４３】
バス１０９に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、光学ドライブ装置１０６、通信インタフェース１０７、およびストレージ装置インタフェース１０８がある。
【００４４】
ＨＤＤ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ１０３は、制御ノード５００の二次記憶装置として使用される。ＨＤＤ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００４５】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００４６】
入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４７】
光学ドライブ装置１０６は、レーザ光などを利用して、光ディスク１４に記録されたデータの読み取りを行う。光ディスク１４は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１４には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４８】
通信インタフェース１０７は、スイッチ１０に接続されている。通信インタフェース１０７は、スイッチ１０を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４９】
ストレージ装置インタフェース１０８は、外部接続されたストレージ装置１１０，１２０との間でデータ通信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、ディスクノード１００のハードウェア構成を示しているが、他のディスクノード２００，３００、アクセスノード３０、管理ノード４００、および制御ノード５００も同様のハードウェア構成で実現することができる。
【００５０】
図４は、仮想ディスクのデータ構造を示す図である。本実施の形態では、仮想ディスク６０には仮想ディスク識別子「ＬＶＯＬ１」が付与されている。ネットワーク経由で接続された３台のディスクノード１００，２００，３００には、個々のノードの識別のためにそれぞれ「ＤＰ−１」、「ＤＰ−２」、「ＤＰ−３」というノード識別子が付与されている。そして、各ディスクノード１００，２００，３００は、ノード識別子によってスイッチ１０で一意に識別される。
【００５１】
各ディスクノード１００，２００，３００が有するストレージ装置１１０，１２０，２１０，３１０それぞれにおいてＲＡＩＤ５のストレージシステムが構成されている。各ストレージ装置１１０，２１０，３１０内の記憶領域は、複数のスライス１１５ａ，１１５ｂ，・・・，１１５ｎ，２１５ａ，２１５ｂ，・・・，２１５ｎ，３１５ａ，３１５ｂ，・・・，３１５ｎに分割して管理されている。
【００５２】
仮想ディスク６０は、セグメント６１〜６４という単位で構成される。セグメント６１〜６４の記憶容量は、ストレージ装置１１０，２１０における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が１ギガバイトとするとセグメントの記憶容量も１ギガバイトである。仮想ディスク６０の記憶容量はセグメント１つ当たりの記憶容量の整数倍である。セグメント６１〜６４は、それぞれプライマリスライス６１ａ，６２ａ，６３ａ，６４ａとセカンダリスライス６１ｂ，６２ｂ，６３ｂ，６４ｂとの組（スライスペア）で構成される。プライマリスライスは、データ参照やデータ書き込みにおいて、優先的にアクセスされる。すなわち、アクセスノード３０から仮想ディスク６０内のデータへのアクセスは、そのデータが属するセグメントに割り当てられたプライマリスライスに対して行われる。
【００５３】
同一セグメントに属する２つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には仮想ディスク識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。
【００５４】
図４の例では、仮想ディスク６０内のスライスの識別子を、「Ｐ」または「Ｓ」のアルファベットと数字との組合せで示している。「Ｐ」はプライマリスライスであることを示している。「Ｓ」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、１番目のセグメント６１のプライマリスライスが「Ｐ１」で示され、セカンダリスライスが「Ｓ１」で示される。
【００５５】
本実施の形態では、図４に示した仮想ディスク６０内のデータを、ディスクノード１００に接続されたストレージ装置１２０に移行するものとする。
図５は、第２の実施の形態に係るマルチノードストレージシステムの各装置の機能を示すブロック図である。アクセスノード３０は、仮想ディスクアクセス制御部３１を有している。仮想ディスクアクセス制御部３１は、端末装置２１，２２，２３からの仮想ディスク６０内のデータを指定したアクセス要求に応じて、指定されたデータを管理するディスクノードに対してデータアクセスを行う。具体的には、仮想ディスクアクセス制御部３１は、アクセス対象のデータが記憶された仮想ディスク６０内のブロックを特定する。次に、仮想ディスクアクセス制御部３１は、特定したブロックに対応するセグメントを特定する。さらに、仮想ディスクアクセス制御部３１は、予め取得しているメタデータを参照し、セグメントを構成するプライマリスライスに対応するディスクノードおよびそのディスクノード内のスライスを特定する。メタデータは、各セグメントに割り当てられたスライスの管理情報である。メタデータには、セグメントに割り当てられたスライスの所在などが示されている。そして、仮想ディスクアクセス制御部３１は、特定したディスクノードに対して、特定したスライスへのアクセス要求を出力する。
【００５６】
制御ノード５００は、仮想ディスク管理部５１０と仮想ディスクメタデータ記憶部５２０とを有している。
仮想ディスク管理部５１０は、ディスクノード１００，２００，３００が有するストレージ装置１１０，１２０，２１０，３１０内のスライスを管理する。例えば、仮想ディスク管理部５１０は、システム起動時に、ディスクノード１００，２００，３００に対してメタデータ取得要求を送信する。そして、仮想ディスク管理部５１０は、メタデータ取得要求に対して返信されたメタデータから仮想ディスクメタデータを生成し、仮想ディスクメタデータ記憶部５２０に格納する。
【００５７】
また仮想ディスク管理部５１０は、管理ノード４００から仮想ディスク内のデータの移行指示を受け取ると、指定された仮想ディスク内のデータの指定されたストレージ装置へのコピーを、その仮想ディスクのデータを管理するディスクノードに指示する。仮想ディスク管理部５１０は、移行指示に応じたデータのコピーが完了すると、管理ノード４００に対して移行完了応答を送信する。
【００５８】
仮想ディスクメタデータ記憶部５２０は、ディスクノード１００，２００，３００から収集されたメタデータに基づいて生成された仮想ディスクメタデータを記憶する。例えば、制御ノード５００内のＲＡＭ５０２の記憶領域の一部が仮想ディスクメタデータ記憶部５２０として使用される。
【００５９】
ディスクノード１００は、データアクセス部１３０、データ管理部１４０、およびメタデータ記憶部１５０を有している。
データアクセス部１３０は、アクセスノード３０からの要求に応答して、ストレージ装置１１０内のデータにアクセスする。具体的には、データアクセス部１３０は、アクセスノード３０からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置１１０から取得し、リード要求の送信元であるアクセスノードに返信する。また、データアクセス部１３０は、アクセスノード３０からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置１１０内に格納する。
【００６０】
データ管理部１４０は、ディスクノード１００にストレージ装置１２０が物理接続された場合に、ストレージ装置１２０をマルチストレージシステム内の一ストレージ装置として論理的に接続する。すなわちデータ管理部１４０は、ストレージ装置１２０を、制御ノード５００から認識できるようにする。
【００６１】
またデータ管理部１４０は、データアクセス部１３０によってライト要求に基づくデータの書き込みが行われた場合、データが書き込まれたスライス（プライマリスライス）に対応するセカンダリスライス内のデータ更新を行う。セカンダリスライス内のデータ更新処理は、セカンダリスライスを管理するディスクノードのデータ管理部と連携動作によって実現される。すなわち、データ管理部１４０は、更新されたデータを、セカンダリスライスを管理するディスクノードに送信する。そのデータを受け取ったディスクノードのデータ管理部は、セカンダリスライスにそのデータを書き込む。これにより、２重化されたデータの一貫性が保たれる。
【００６２】
さらに、データ管理部１４０は、仮想ディスク管理部５１０からのメタデータ取得要求に応答して、メタデータ記憶部１５０に記憶されたメタデータを仮想ディスク管理部５１０に対して送信する。
【００６３】
メタデータ記憶部１５０は、メタデータを記憶する。例えば、ＲＡＭ内の記憶領域の一部がメタデータ記憶部１５０として使用される。なお、メタデータ記憶部１５０に格納されるメタデータは、システム停止時にはストレージ装置１１０内に格納され、システム起動時にメタデータ記憶部１５０に読み込まれる。
【００６４】
他のディスクノード２００，３００は、ディスクノード１００と同様の機能を有している。すなわち、ディスクノード２００は、データアクセス部２２０、データ管理部２３０、およびメタデータ記憶部２４０を有している。ディスクノード３００は、データアクセス部３２０、データ管理部３３０、およびメタデータ記憶部３４０を有している。ディスクノード２００，３００内の各要素は、ディスクノード１００内の同名の要素と同じ機能を有している。
【００６５】
管理ノード４００は、管理者からの操作入力に応答して、マルチストレージシステムの管理用の指示を、各ノードに送信する。例えば、管理者は、ストレージ装置１２０とディスクノード１００とをケーブルで接続（物理接続）した場合、管理ノード４００に対してストレージ装置１２０の論理的な接続を指示する操作入力を行う。すると管理ノード４００は、管理者からの操作入力に応答してディスクノード１００に対して、新たに物理接続されたストレージ装置１２０の接続指示を送信する。その接続指示に基づいてディスクノード１００がストレージ装置１２０内にメタデータの格納などの処理を行い、ストレージ装置１２０を制御ノード５００において認識可能とする。接続指示に応じた処理が完了すると、ディスクノード１００から管理ノード４００へ接続完了応答が返される。
【００６６】
また、管理ノード４００は、管理者からの操作入力に応答して、仮想ディスクの移行指示を制御ノード５００に送信する。例えば、仮想ディスク６０内のデータのストレージ装置１２０への移行指示が送信される。この移行指示に応じて、制御ノード５００が各ディスクノード１００，２００，３００を制御し、データ移行を実現する。データの移行が完了すると、制御ノード５００から管理ノード４００へ移行完了応答が送信される。
【００６７】
図５の例は、仮想ディスク６０のデータをストレージ装置１２０に移行する場合を想定している。この場合、ストレージ装置１２０には、制御ノード５００によって、移行先ディスク１２１とメタデータ用ディスク１２２とが設けられる。なお、移行先ディスク１２１とメタデータ用ディスク１２２とは、それぞれストレージ装置１２０内のＨＤＤで構成されるＲＡＩＤ構成のディスクグループを複数分割することで得られる仮想的なディスクである。移行先ディスク１２１とメタデータ用ディスク１２２として使用される仮想的なディスクは、図４に示したマルチノードストレージシステムにおける仮想ディスク６０とは異なり、１つのストレージ装置１２０内のＨＤＤにより実現されている。移行先ディスク１２１とメタデータ用ディスク１２２とには、論理ユニット番号（ＬＵＮ）が割り振られ、論理ユニット番号によってディスクノード１００で識別される。
【００６８】
作成される移行先ディスク１２１の記憶容量は、移行対象の仮想ディスク６０と同じである。作成されるメタデータ用ディスク１２２の記憶容量は、仮想ディスク６０のメタデータを格納可能な容量である。移行先ディスク１２１は、少なくともディスクノード１００およびアクセスノード３０からアクセス可能である。メタデータ用ディスク１２２は、少なくともディスクノード１００からアクセス可能である。
【００６９】
次に、ストレージ装置１１０、移行先ディスク１２１、およびメタデータ用ディスク１２２内のデータ構造を詳細に説明する。ストレージ装置１１０には、複数のスライスとスライスごとのメタデータとが格納されている。移行先ディスク１２１とメタデータ用ディスク１２２とは、ストレージ装置１２０をディスクノード１００に接続した直後は、内容がブランクである。ストレージ装置１２０接続後に、データ管理部１４０により、移行先ディスク１２１内の記憶領域がスライス単位に分割される。またストレージ装置１２０接続後に、データ管理部１４０により、メタデータ用ディスク１２２内にメタデータが格納される。
【００７０】
図６は、ストレージ装置のデータ構造例を示す図である。ストレージ装置１１０には、スライス１１５ａ，１１５ｂ，・・・，１１５ｎとは別に、デバイス情報１１６と複数のメタデータ１１７ａ，１１７ｂ，・・・，１１７ｎとが格納されている。移行先ディスク１２１内には、複数のスライス１２１ａ，１２１ｂ，・・・，１２１ｎが設けられている。メタデータ用ディスク１２２内には、移行先ディスク１２１内のスライス１２１ａ，１２１ｂ，・・・，１２１ｎそれぞれに対応するメタデータ１２２ａ，１２２ｂ，・・・，１２２ｎと、デバイス情報１２２ｘとが格納されている。
【００７１】
デバイス情報１１６，１２２ｘは、ストレージ装置１１０，１２０の管理に使用される情報である。例えば、デバイス情報１１６，１２２ｘには、ストレージ装置１１０，１２０がマルチノードストレージシステムに組み込まれていることを示す情報が含まれる。また、ストレージ装置１２０のデバイス情報１２２ｘには、マルチストレージシステム内の仮想ディスクのデータの移行先となるディスクであることを示す情報を含めることができる。
【００７２】
さらに、デバイス情報１１６，１２２ｘには、メタデータ格納形式が含まれる。メタデータ格納形式は、各メタデータが対応するスライスと連続の記憶領域に格納されているのか、あるいはメタデータを一纏めにして、スライスとは個別の記憶領域に格納されているのかを示す情報である。本実施の形態では、各メタデータが対応するスライスと連続の記憶領域に格納されている場合のメタデータ格納形式を「type1」とする。また、メタデータを一纏めにして、スライスとは個別の記憶領域に格納されている場合のメタデータ格納形式を「type2」とする。
【００７３】
図６の例では、ストレージ装置１１０は、個々のスライスと連続の記憶領域に、そのスライスに対応するメタデータが格納されている。従って、ストレージ装置１１０のメタデータ格納形式は「type1」である。移行先ディスク１２１に対応するメタデータは一纏めにしてメタデータ用ディスク１２２に格納されるため、メタデータ格納形式は「type2」となる。なお、移行先ディスク１２１に対応するメタデータは、ディスクノード１００から見た場合に移行先ディスク１２１とは別ディスクとなるメタデータ用ディスク１２２に格納される。そこで、スライスとメタデータを別ディスクに一纏めで格納する場合のメタデータ格納形式を「type3」とすることもできる。この場合、ストレージ装置１２０のデバイス情報１２２ｘに示されるデータ格納形式は「type3」となる。
【００７４】
ストレージ装置１１０に格納されたメタデータ１１７ａ，１１７ｂ，・・・，１１７ｎは、ディスクノード１００の起動時にデータ管理部１４０によって読み出され、メタデータ記憶部１５０に格納される。同様に、メタデータ用ディスク１２２に格納されたメタデータ１２２ａ，１２２ｂ，・・・，１２２ｎも、ディスクノード１００の起動時にデータ管理部１４０によって読み出され、メタデータ記憶部１５０に格納される。
【００７５】
次に、ディスクノード１００内のメタデータ記憶部１５０のデータ構造について説明する。
図７は、メタデータ記憶部のデータ構造の一例を示す図である。メタデータ記憶部１５０には、メタデータテーブル１５１が格納されている。メタデータテーブル１５１には、ディスクノードＩＤ、スライスＩＤ、状態、仮想ディスクＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの欄が設けられている。メタデータテーブル１５１内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す１つのレコードとなる。
【００７６】
ディスクノードＩＤの欄には、ストレージ装置１１０，１２０を管理しているディスクノード１００の識別情報（ディスクノードＩＤ）が設定される。
スライスＩＤの欄には、メタデータに対応するスライスのストレージ装置１１０，１２０内での識別情報（スライスＩＤ）が設定される。なお、スライスＩＤ「１」〜「１０００」が、ストレージ装置１１０のスライスに割り当てられたスライスＩＤである。また、スライスＩＤ「１００１」〜「１１００」が、ストレージ装置１２０の移行先ディスク１２１のスライスに割り当てられたスライスＩＤである。ディスクノード１００のデータアクセス部１３０は、スライスＩＤと、そのスライスＩＤに対応するスライスの所在（ストレージ装置１１０なのか移行先ディスク１２１なのか）を認識している。そして、データアクセス部１３０は、スライスＩＤに基づいて、どのストレージ装置にアクセスすべきかを判断できる。
【００７７】
状態の欄には、スライスの状態を示す状態フラグが設定される。
図８は、状態フラグで示される状態の種類を示す図である。各スライスの状態を示す状態フラグには、「Ｆ」、「Ｐ」、「Ｓ」、「Ｒ」、「Ｂ」、および「ＳＰ」の何れかが設定される。
【００７８】
スライスが仮想ディスクのセグメントに割り当てられていない場合、状態フラグ「Ｆ」が設定される。スライスが仮想ディスクのセグメントのプライマリスライスに割り当てられている場合、状態フラグ「Ｐ」が設定される。スライスが仮想ディスクのセグメントのセカンダリスライスに割り当てられている場合、状態フラグ「Ｓ」が設定される。スライスを仮想ディスクのセグメントに割り当てることが決定したが、まだデータのコピーが行われていない場合、予約済を示す状態フラグ「Ｒ」が設定される。移行先ディスク１２１のスライスであるが、まだデータのコピーが行われていない場合、ブランクを示す状態フラグ「Ｂ」が設定される。スライスが仮想ディスクの冗長性が損なわれたセグメントに割り当てられている場合、シングルプライマリを示す状態フラグ「ＳＰ」が設定される。
【００７９】
状態フラグのうち、「Ｐ」、「Ｓ」、または「ＳＰ」が設定されている場合、対応するスライスにデータが格納されている。
以下、図７の説明に戻る。
【００８０】
仮想ディスクＩＤの欄には、スライスに対応するセグメントが属する仮想ディスクを識別するための識別情報（仮想ディスクＩＤ）が設定される。
仮想ディスクアドレスの欄には、スライスが割り当てられているセグメントの先頭を示す仮想ディスク内でのアドレスが設定される。
【００８１】
ペアのディスクノードＩＤの欄には、ペアのスライス（同じセグメントに属する別のスライス）を有するストレージ装置を管理するディスクノードの識別情報（ディスクノードＩＤ）が設定される。
【００８２】
ペアのスライスＩＤの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報（スライスＩＤ）が設定される。
図７では、ストレージ装置１２０がディスクノード１００のＯＳで認識され、ストレージ装置１２０用のメタデータがメタデータテーブル１５１に登録された直後の状態が示されている。すなわち、データ移行のためのストレージ装置１２０へのデータのコピーは未実施である。そのため、ストレージ装置１２０（ディスクＩＤ「１００１」〜「１１００」）のスライスの状態フラグは、すべて「Ｂ」となっている。
【００８３】
また、移行先ディスク１２１内の各スライスは、仮想ディスクアドレスのセグメントに割り当てられている。なお、移行先ディスク１２１内のスライスのうち、スライスＩＤの値が小さいスライスほど、仮想ディスクアドレスの値が小さいセグメントに割り当てられている。これにより、データ移行後は、仮想ディスク６０におけるデータ配列と同じ配列で、仮想ディスク６０内のデータが移行先ディスク１２１内に格納されることとなる。
【００８４】
各ディスクノード１００，２００，３００のメタデータ記憶部１５０，２４０，３４０に格納されたメタデータは、制御ノード５００からの要求に応じて制御ノード５００に送信される。制御ノード５００では、ディスクノード１００，２００，３００から収集したメタデータを、仮想ディスクメタデータ記憶部５２０に格納する。
【００８５】
図９は、仮想ディスクメタデータ記憶部のデータ構造の一例を示す図である。図９に示すように、仮想ディスクメタデータ記憶部５２０には、各ディスクノード１００，２００，３００が保持していたメタデータテーブル１５１，２４１，３４１に含まれるメタデータが格納される。
【００８６】
なお、制御ノード５００の仮想ディスク管理部５１０は、仮想ディスクが複数ある場合、ディスクノード１００，２００，３００から収集したメタデータを、仮想ディスクＩＤによって分類してもよい。
【００８７】
次に、仮想ディスク６０からストレージ装置１２０へのデータ移行の実施に利用される各ノードの機能について、詳細に説明する。
図１０は、データ移行に利用される各ノードの機能を示す図である。制御ノード５００の仮想ディスク管理部５１０は、仮想ディスクのデータ移行のために、スライス割り当て制御部５１１およびデータコピー指示部５１２を有する。
【００８８】
スライス割り当て制御部５１１は、システム起動時などに、各ディスクノード１００，２００，３００に対してメタデータ照会要求を送信する。するとディスクノード１００，２００，３００からメタデータが応答される。またスライス割り当て制御部５１１は、データコピー対象のスライスを選択し、該当スライスを管理しているディスクノードに対して、コピーの進行状況に応じてメタデータの更新を指示する。データコピー指示部５１２は、データコピーのコピー元となるスライスを管理するディスクノードに対して、移行先ディスク１２１への該当スライス内のデータの送信を指示する。
【００８９】
ディスクノード１００のデータ管理部１４０は、移行先ストレージ接続部１４１、メタデータ管理部１４２、およびデータコピー部１４３を有する。
移行先ストレージ接続部１４１は、ディスクノード１００に接続されたストレージ装置１２０の存在を制御ノード５００に認識させる。例えば、移行先ストレージ接続部１４１は、管理ノード４００からの接続指示を受けると、ディスクノード１００に接続されているストレージ装置のうち、未認識のストレージ装置１２０を検出する。移行先ストレージ接続部１４１は、検出したストレージ装置１２０をＯＳに認識させる。さらに移行先ストレージ接続部１４１は、検出したストレージ装置１２０内の１つの仮想的なディスクを移行先ディスク１２１とし、他の１つの仮想的なディスクをメタデータ用ディスク１２２とする。そして移行先ストレージ接続部１４１は、メタデータ用ディスク１２２に、移行先ディスク１２１内の記憶領域を分割して得られるスライスごとのメタデータを格納する。その後、移行先ストレージ接続部１４１は、接続完了応答を管理ノード４００に送信する。
【００９０】
メタデータ管理部１４２は、制御ノード５００からのメタデータ照会要求に応答して、メタデータ記憶部１５０内のメタデータを制御ノード５００に送信する。また、メタデータ管理部１４２は、制御ノード５００からの指示に従って、メタデータを更新する。
【００９１】
データコピー部１４３は、制御ノード５００からの指示に従って、仮想ディスク６０のセグメントに割り当てられたスライス内のデータを、移行先ディスク１２１内のスライスにコピーする。また、データコピー部１４３は、他のディスクノード２００，３００から、移行先ディスク１２１内のスライスをコピー先としてデータを受信すると、受信したデータを、コピー先として指定されたスライスに格納する。
【００９２】
ディスクノード２００のデータ管理部２３０は、メタデータ管理部２３１とデータコピー部２３２とを有する。メタデータ管理部２３１は、制御ノード５００からの指示に従って、メタデータを更新する。データコピー部２３２は、制御ノード５００からの指示に従って、仮想ディスク６０のセグメントに割り当てられたスライス内のデータを、コピー先のスライスを指定して、ディスクノード１００に送信する。
【００９３】
ディスクノード３００のデータ管理部３３０は、メタデータ管理部３３１とデータコピー部３３２とを有する。メタデータ管理部３３１とデータコピー部３３２との機能は、それぞれディスクノード２００のメタデータ管理部２３１とデータコピー部２３２との機能と同じである。
【００９４】
次に、データ移行処理の手順について説明する。
図１１は、第２の実施の形態におけるデータ移行処理の手順を示すシーケンス図である。以下、図１１に示す処理を、ステップ番号に沿って説明する。
【００９５】
［ステップＳ１１］管理ノード４００からディスクノード１００に接続指示が出される。例えば、管理者は管理ノード４００に対して、データの移行を指示する。この指示では、例えば仮想ディスク６０の仮想ディスクＩＤ、仮想ディスクのセグメント数（または仮想ディスク６０のデータ容量）、および移行先のストレージ装置を接続したディスクノード１００のディスクノードＩＤが指定される。管理ノード４００は、指定されたディスクノード１００に対して、仮想ディスク６０の仮想ディスクＩＤと仮想ディスク６０のセグメント数とを指定した接続指示を送信する。
【００９６】
ディスクノード１００は、管理ノード４００からの接続指示に応答して、データ移行先となるストレージ装置１２０をマルチノードストレージシステムの配下のストレージ装置として接続する。具体的には、ディスクノード１００の移行先ストレージ接続部１４１は、ストレージ装置１２０内の１つのディスクを移行先ディスク１２１、他の１つのディスクをメタデータ用ディスク１２２として、ディスクノード１００のＯＳに認識させる。この時点では、移行先ディスク１２１とメタデータ用ディスク１２２との内容はブランクである。その後、移行先ストレージ接続部１４１は、メタデータ用ディスク１２２にメタデータを格納する。なお、移行先ディスク１２１については、接続時には書き込みは行われない。
【００９７】
メタデータ用ディスク１２２へ格納するメタデータの内容は、管理ノード４００からの指示に従って行われる。例えば、管理ノード４００からの接続指示において、データの移行を行う仮想ディスク６０の仮想ディスクＩＤとセグメントの数が指定される。すると、移行先ストレージ接続部１４１は、仮想ディスクのセグメントの数分のスライスに対応するメタデータを作成し、そのメタデータの仮想ディスクＩＤの欄には、仮想ディスク６０の仮想ディスクＩＤを設定する。そして、移行先ストレージ接続部１４１は、作成したメタデータと、メタデータの格納形式を示すデバイス情報とを、メタデータ用ディスク１２２に格納する。この際、移行先ストレージ接続部１４１は、メタデータ用ディスク１２２に格納したメタデータを、メタデータ記憶部１５０にも格納する。その後、移行先ストレージ接続部１４１は、管理ノード４００に対して接続完了応答を送信する。
【００９８】
［ステップＳ１２］管理ノード４００から制御ノード５００に移行指示が出される。例えば、移行指示には、データの移行先となるストレージ装置１２０を接続したディスクノード１００のディスクノードＩＤが指定されている。制御ノード５００のスライス割り当て制御部５１１は、移行指示で指定されたディスクノード１００に対して、メタデータ照会要求を送信する。
【００９９】
［ステップＳ１３］メタデータ照会要求を受け取ったディスクノード１００では、メタデータ管理部１４２がメタデータ記憶部１５０からメタデータを取得し、制御ノード５００に送信する。なお、メタデータ管理部１４２は、メタデータ記憶部１５０からストレージ装置１２０内のスライスのメタデータのみを取得し、取得したメタデータを制御ノード５００に送信してもよい。
【０１００】
［ステップＳ１４］メタデータを受信した制御ノード５００のスライス割り当て制御部５１１は、受信したメタデータにより仮想ディスクメタデータ記憶部５２０内のメタデータを更新する。そして、データコピー指示部５１２の制御の下、ディスクノード１００，２００，３００によるスライス内のデータの移行先ディスク１２１へのコピー処理が行われる。
【０１０１】
［ステップＳ１５］データのコピーが完了すると、制御ノード５００のスライス割り当て制御部５１１の制御の下、仮想ディスク６０のセグメントに対するセカンダリスライスの切り離し（割り当て解除）処理が行われる。スライス割り当て制御部５１１は、セカンダリスライスの切り離し処理が完了すると、移行完了応答を管理ノード４００に送信する。
【０１０２】
このような手順で、仮想ディスク６０内のデータが移行先ディスク１２１に移行される。次に、ステップＳ１４に示したスライスコピー処理について詳細に説明する。
図１２は、スライスコピー処理の手順を示すシーケンス図である。図１２には、１つのセグメントに関するスライスコピー処理が示されている。以下、図１２に示す処理をステップ番号に沿って説明する。
【０１０３】
［ステップＳ２１］制御ノード５００のスライス割り当て制御部５１１は、移行対象の仮想ディスク６０のセグメントのうち、スライスコピー処理を行っていないセグメントを１つ選択する。スライス割り当て制御部５１１は、選択したセグメントに割り当てられているスライスを管理しているディスクノードに対して、メタデータ変更要求を送信する。
【０１０４】
例えば、アドレス「Ａ１」のセグメントが選択されたものとする。移行対象の仮想ディスク６０内の冗長構成が保たれたセグメントであれば、選択されたセグメントには、状態がプライマリのスライス、状態がセカンダリのスライス、および状態がブランクのスライスが割り当てられている。そこでスライス割り当て制御部５１１は、図９に示したメタデータテーブル１５１，２４１，３４１を参照し、選択されたセグメントに割り当てられたブランクのスライスが、ディスクノード１００で管理されていることを認識する。そして、スライス割り当て制御部５１１は、ディスクノード１００に対して、選択したセグメントに割り当てられたブランクのスライスの状態をリザーブ「Ｒ」に変更することを指示するメタデータ変更要求を送信する。
【０１０５】
［ステップＳ２２］ディスクノード１００では、メタデータ管理部１４２がメタデータ変更要求を受信する。すると、メタデータ管理部１４２は、メタデータ変更要求に従い、メタデータ記憶部１５０内のメタデータ変更要求で指定されたスライスのメタデータを更新する。すなわち、メタデータ管理部１４２は、指定されたスライスのメタデータの状態の欄の状態フラグを「Ｂ」から「Ｒ」に変更する。さらにメタデータ管理部１４２は、メタデータ用ディスク１２２内のメタデータ変更要求で指定されたスライスのメタデータについても同様に更新する。メタデータ管理部１４２は、メタデータの更新が完了すると、変更完了応答を制御ノード５００に送信する。
【０１０６】
［ステップＳ２３］制御ノード５００では、スライス割り当て制御部５１１が変更完了応答を受信する。すると、スライス割り当て制御部５１１は、仮想ディスクメタデータ記憶部５２０内のメタデータについても、メタデータ変更要求で指示した内容と同様に更新する。その後、制御ノード５００のデータコピー指示部５１２が、選択したセグメントに割り当てられたセカンダリのスライスを管理するディスクノードに対して、スライスコピー指示を送信する。
【０１０７】
例えばアドレス「Ａ１」のセグメントが選択された場合、データコピー指示部５１２は、図９に示したメタデータテーブル１５１，２４１，３４１を参照する。これによりデータコピー指示部５１２は、選択されたセグメントに割り当てられたセカンダリのスライスが、ディスクノード３００で管理されていることを認識する。そしてデータコピー指示部５１２は、ディスクノード３００に対して、選択したセグメントに割り当てられたセカンダリのスライス内のデータを、選択したセグメントに割り当てられたリザーブのスライスにコピーすべき旨のスライスコピー指示を送信する。スライスコピー指示には、例えば、選択したセグメントのセカンダリのスライスとリザーブのスライスとのそれぞれの、ディスクノードＩＤとスライスＩＤとが示される。
【０１０８】
［ステップＳ２４］ディスクノード３００では、データコピー部３３２がスライスコピー指示を受信する。するとデータコピー部３３２は、スライスコピー指示で指定されたセカンダリのスライス内のデータを、リザーブのスライスを管理するディスクノード１００に送信する。この際、送信したデータの格納先として、例えばスライスコピー指示で指定されたリザーブのスライスのスライスＩＤが指定される。
【０１０９】
［ステップＳ２５］ディスクノード１００では、ディスクノード３００から送信されたデータをデータコピー部１４３が受信する。するとデータコピー部１４３は、移行先ディスク１２１内の指定されたスライスに対して、受信したデータを書き込む。データの書き込みが完了すると、データコピー部１４３は、書き込み完了応答をディスクノード３００に送信する。
【０１１０】
［ステップＳ２６］ディスクノード３００のデータコピー部３３２は、ディスクノード１００から書き込み完了応答を受信すると、制御ノード５００に対してコピー完了応答を送信する。
【０１１１】
［ステップＳ２７］制御ノード５００のデータコピー指示部５１２は、選択したセグメントに割り当てられた各スライスを管理するディスクノード１００，２００，３００に対して、メタデータ変更要求を送信する。例えば、プライマリのスライスを管理するディスクノード２００に対しては、選択したセグメントに割り当てられていたスライスのペアの相手を移行先ディスク１２１内のデータのコピー先となったスライスに変更することを示すメタデータ変更要求が送信される。セカンダリのスライスを管理するディスクノード３００に対しては、選択したセグメントに割り当てられていたスライスの状態を、セカンダリ「Ｓ」からフリー「Ｆ」へ変更することを示すメタデータ変更要求が送信される。リザーブのスライスを管理するディスクノード１００に対しては、選択したセグメントに割り当てられていたスライスの状態を、リザーブ「Ｒ」からセカンダリ「Ｓ」へ変更することを示すメタデータ変更要求が送信される。
【０１１２】
なお、図１２の例では、セカンダリスライスをフリースライスに変更するようにメタデータ変更要求が出されているが、プライマリスライスをフリースライスに変更するようにしてもよい。その場合、セカンダリスライスをプライマリスライスに変更することとなる。
【０１１３】
［ステップＳ２８］ディスクノード２００では、メタデータ変更要求をメタデータ管理部２３１が受信する。メタデータ管理部２３１は、メタデータ変更要求に従って、メタデータ記憶部２４０内のメタデータを更新する。すなわちメタデータ管理部２３１は、選択されたセグメントに割り当てられたプライマリのスライスのメタデータに対し、ペアのディスクノードＩＤとして、移行先ディスク１２１が接続されたディスクノード１００のディスクノードＩＤを設定する。またメタデータ管理部２３１は、選択されたセグメントに割り当てられたプライマリのスライスのメタデータに対し、ペアのスライスとして、移行先ディスク１２１内のデータのコピー先となったスライスのスライスＩＤを設定する。さらにメタデータ管理部２３１は、メタデータ記憶部２４０に対するメタデータ更新処理と同様のメタデータ更新処理を、ストレージ装置２１０内のメタデータに対しても行う。メタデータの更新が完了すると、メタデータ管理部２３１は、変更完了応答を制御ノード５００に送信する。
【０１１４】
［ステップＳ２９］ディスクノード３００では、メタデータ変更要求をメタデータ管理部３３１が受信する。メタデータ管理部３３１は、メタデータ変更要求に従って、メタデータ記憶部３４０内のメタデータを更新する。すなわちメタデータ管理部３３１は、選択されたセグメントに割り当てられたセカンダリのスライスのメタデータの状態フラグを、セカンダリ「Ｓ」からフリー「Ｆ」に変更する。また、メタデータ管理部３３１は、状態フラグを変更したメタデータの、仮想ディスクＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの各欄の設定内容を削除する。状態がフリーとなったスライスは、セグメントへの割り当てが解除され、他のセグメントへの割り当てが可能となる。すなわち、状態がフリーとなったスライスは、そのスライスの記憶領域が開放される。
【０１１５】
さらにメタデータ管理部３３１は、メタデータ記憶部３４０に対するメタデータ更新処理と同様のメタデータ更新処理を、ストレージ装置３１０内のメタデータに対しても行う。メタデータの更新が完了すると、メタデータ管理部３３１は、変更完了応答を制御ノード５００に送信する。
【０１１６】
［ステップＳ３０］ディスクノード１００では、メタデータ変更要求をメタデータ管理部１４２が受信する。メタデータ管理部１４２は、メタデータ変更要求に従って、メタデータ記憶部１５０内のメタデータを更新する。すなわちメタデータ管理部１４２は、選択されたセグメントに割り当てられたリザーブのスライスのメタデータの状態フラグを、リザーブ「Ｒ」からセカンダリ「Ｓ」に変更する。また、メタデータ管理部１４２は、状態フラグを変更したメタデータのペアのディスクノードＩＤの欄に、プライマリスライスを管理するディスクノードのディスクノードＩＤを設定する。さらに、メタデータ管理部１４２は、状態フラグを変更したメタデータのペアのスライスＩＤの欄に、プライマリスライスのスライスＩＤを設定する。その後、メタデータ管理部１４２は、メタデータ記憶部１５０に対するメタデータ更新処理と同様のメタデータ更新処理を、メタデータ用ディスク１２２内のメタデータに対しても行う。メタデータの更新が完了すると、メタデータ管理部１４２は、変更完了応答を制御ノード５００に送信する。
【０１１７】
［ステップＳ３１］制御ノード５００では、スライス割り当て制御部５１１が、各ディスクノード１００，２００，３００から送信された変更完了応答を受信する。すると、スライス割り当て制御部５１１は、仮想ディスクメタデータ記憶部５２０内のメタデータについても、ステップＳ２７においてメタデータ変更要求で指示した内容と同様に更新する。
【０１１８】
図１２に示したスライスコピー処理が、移行対象の仮想ディスク６０内のセグメントごとに実行される。例えば、制御ノード５００のスライス割り当て制御部５１１は、ステップＳ３１の処理が完了すると、仮想ディスク６０内の未選択のセグメントの有無を判断する。未選択のセグメントがあれば、スライス割り当て制御部５１１は、図１２に示したスライスコピー処理を、ステップＳ２１から開始する。未選択のセグメントがなければ、図１１に示すスライスコピー処理（ステップＳ１４）が完了し、次のセカンダリ切り離し処理（ステップＳ１５）が実行される。
【０１１９】
次に、スライスコピー処理によるメタデータの内容の推移について説明する。
図１３は、スライスコピー処理によるメタデータの内容の推移の一例を示す図である。なお、図１３には、仮想ディスクアドレス「Ａ１」に対応するセグメントを選択して、スライスコピー処理を実行した場合の、該当セグメントに割り当てられているスライスのメタデータの内容の推移が示されている。
【０１２０】
第１の状態は、セグメント選択（図１２のステップＳ２１）時点での、処理対象のスライスのメタデータの状態を示している。図１３の例では、仮想ディスクアドレス「Ａ１」のセグメントに対して、プライマリスライスとして、ディスクノード２００（ディスクノードＩＤ「ＤＰ２」）のスライスＩＤ「スライス１００」のスライスが割り当てられている。仮想ディスクアドレス「Ａ１」のセグメントに対して、セカンダリスライスとして、ディスクノード３００（ディスクノードＩＤ「ＤＰ３」）のスライスＩＤ「スライス２００」のスライスが割り当てられている。
【０１２１】
また、選択されたセグメントの仮想ディスクアドレスは、仮想ディスク６０内の先頭のアドレスである。すなわち、仮想ディスク６０内の先頭のセグメントが選択されている。そこで、ディスクノード１００（ディスクノードＩＤ「ＤＰ１」）で管理される移行先ディスク１２１の先頭のスライスが、データコピー先のスライスとして選択される。移行先ディスク１２１の先頭のスライスのスライスＩＤは、「スライス１００１」である。移行先ディスク１２１の先頭のスライスの状態は、ブランク「Ｂ」である。
【０１２２】
第２の状態は、移行先ディスク１２１内のスライスのセグメントへの割り当て処理（図１２のステップＳ２２）後の状態を示している。移行先ディスク１２１のスライスＩＤ「スライス１００１」のスライスの状態は、ブランク「Ｂ」からリザーブ「Ｒ」に変更されている。
【０１２３】
第３の状態は、コピー完了後に行われるメタデータ変更処理（図１２のステップＳ２７〜Ｓ３１）後の状態を示している。ディスクノード１００（ディスクノードＩＤ「ＤＰ１」）のスライスＩＤ「スライス１００１」のスライスのメタデータは、状態がセカンダリ「Ｓ」に変更されている。また、そのメタデータには、ペアのディスクノードＩＤとしてディスクノード２００のディスクノードＩＤ「ＤＰ２」が設定され、ペアのスライスＩＤとして、選択されたセグメントのプライマリスライスのスライスＩＤ「スライス１００」が設定されている。
【０１２４】
ディスクノード２００（ディスクノードＩＤ「ＤＰ２」）のスライスＩＤ「スライス１００」のスライスのメタデータには、ペアのディスクノードＩＤがディスクノード１００のディスクノードＩＤ「ＤＰ１」に変更されている。さらに、そのメタデータのペアのスライスＩＤが、選択されたセグメントのセカンダリスライスのスライスＩＤ「スライス１００１」に変更されている。
【０１２５】
ディスクノード３００（ディスクノードＩＤ「ＤＰ３」）のスライスＩＤ「スライス２００」のスライスのメタデータは、状態がフリー「Ｆ」に変更されている。また、そのメタデータの仮想ディスクＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの内容は、「ＮＵＬＬ」に変更されている。これにより、ディスクノード３００（ディスクノードＩＤ「ＤＰ３」）のスライスＩＤ「スライス２００」のスライスは、仮想ディスクアドレス「Ａ１」のセグメントから切り離されたこととなる。
【０１２６】
次に、図１１のステップＳ１５に示したセカンダリ切り離し処理の詳細について説明する。
図１４は、セカンダリ切り離し処理手順を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。
【０１２７】
［ステップＳ４１］制御ノード５００のスライス割り当て制御部５１１は、移行対象の仮想ディスク６０のセグメントのうち、スライスコピー処理を行っていないセグメントを１つ選択する。データコピー指示部５１２は、選択したセグメントに割り当てられた各スライスを管理するディスクノード１００，２００に対して、メタデータ変更要求を送信する。
【０１２８】
例えば、プライマリのスライスを管理するディスクノード２００に対しては、選択したセグメントに割り当てられていたスライスの状態を、プライマリ「Ｐ」からフリー「Ｆ」に変更することを示すメタデータ変更要求が送信される。セカンダリのスライスを管理するディスクノード１００に対しては、選択したセグメントに割り当てられていたスライスの状態を、セカンダリ「Ｓ」からプライマリ「Ｐ」へ変更することを示すメタデータ変更要求が送信される。
【０１２９】
［ステップＳ４２］ディスクノード２００では、メタデータ変更要求をメタデータ管理部２３１が受信する。メタデータ管理部２３１は、メタデータ変更要求に従って、メタデータ記憶部２４０内のメタデータを更新する。すなわちメタデータ管理部２３１は、選択されたセグメントに割り当てられたセカンダリのスライスのメタデータの状態フラグを、プライマリ「Ｐ」からフリー「Ｆ」に変更する。また、メタデータ管理部２３１は、状態フラグを変更したメタデータの、仮想ディスクＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの各欄の設定内容を削除する。さらにメタデータ管理部２３１は、メタデータ記憶部２４０に対するメタデータ更新処理と同様のメタデータ更新処理を、ストレージ装置２１０内のメタデータに対しても行う。メタデータの更新が完了すると、メタデータ管理部２３１は、変更完了応答を制御ノード５００に送信する。
【０１３０】
［ステップＳ４３］ディスクノード１００では、メタデータ変更要求をメタデータ管理部１４２が受信する。メタデータ管理部１４２は、メタデータ変更要求に従って、メタデータ記憶部１５０内のメタデータを更新する。すなわちメタデータ管理部１４２は、選択されたセグメントに割り当てられたセカンダリのスライスのメタデータの状態フラグを、セカンダリ「Ｓ」からプライマリ「Ｐ」に変更する。また、メタデータ管理部１４２は、状態フラグを変更したメタデータの、ペアのディスクノードＩＤ、およびペアのスライスＩＤの各欄の設定内容を削除する。さらにメタデータ管理部１４２は、メタデータ記憶部１５０に対するメタデータ更新処理と同様のメタデータ更新処理を、メタデータ用ディスク１２２内のメタデータに対しても行う。メタデータの更新が完了すると、メタデータ管理部１４２は、変更完了応答を制御ノード５００に送信する。
【０１３１】
［ステップＳ４４］制御ノード５００では、スライス割り当て制御部５１１が、各ディスクノード１００，２００から送信された変更完了応答を受信する。すると、スライス割り当て制御部５１１は、仮想ディスクメタデータ記憶部５２０内のメタデータについても、ステップＳ４１においてメタデータ変更要求で指示した内容と同様に更新する。
【０１３２】
図１４に示したセカンダリ切り離し処理が、移行対象の仮想ディスク６０内のセグメントごとに実行される。例えば、制御ノード５００のスライス割り当て制御部５１１は、ステップＳ４４の処理が完了すると、仮想ディスク６０内の未選択のセグメントの有無を判断する。未選択のセグメントがあれば、スライス割り当て制御部５１１は、図１４に示したセカンダリ切り離し処理を、ステップＳ４１から開始する。未選択のセグメントがなければ、図１１に示すセカンダリ切り離し処理（ステップＳ１５）が完了し、スライス割り当て制御部５１１から管理ノード４００へ移行完了応答が送信される。
【０１３３】
図１５は、セカンダリ切り離し処理で更新されたメタデータの例を示す図である。図１５には、セカンダリ切り離し処理後の状態が示されているディスクノード１００（ディスクノードＩＤ「ＤＰ１」）のスライスＩＤ「スライス１００１」のスライスのメタデータは、状態がプライマリ「Ｐ」に変更されている。また、そのメタデータには、ペアのディスクノードＩＤとペアのスライスＩＤとは、内容が削除され「ＮＵＬＬ」に変更されている。
【０１３４】
ディスクノード２００（ディスクノードＩＤ「ＤＰ２」）のスライスＩＤ「スライス１００」のスライスのメタデータには、状態がフリー「Ｆ」に変更されている。また、そのメタデータの仮想ディスクＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの内容は、「ＮＵＬＬ」に変更されている。これにより、ディスクノード２００（ディスクノードＩＤ「ＤＰ２」）のスライスＩＤ「スライス１００」のスライスは、仮想ディスクアドレス「Ａ１」のセグメントから切り離されたこととなる。
【０１３５】
すべてのデータ移行処理が完了すると、移行先ディスク１２１内のスライスはすべてプライマリスライスとなる。
図１６は、データ移行後のメタデータ用ディスク内のメタデータの例を示す図である。図１６に示す用に、メタデータ用ディスク１２２内の各メタデータ１２２ａ，１２２ｂ，・・・，１２２ｎは、状態がすべてプライマリ「Ｐ」となっている。
【０１３６】
以上のようにして、仮想ディスク６０内のデータが、移行先ディスク１２１に移行される。移行後は、仮想ディスク６０における仮想ディスクアドレスの順に、移行先ディスク１２１の上位から順番のスライスにデータが移行される。データ移行後は、アクセスノード３０から仮想ディスク６０を指定したアクセスを停止すれば、移行先ディスク１２１をマルチノードストレージシステムから切り離すことができる。具体的には、移行先ディスク１２１を有するストレージ装置１２０を、ディスクノード１００から切り離すことができる。そして、ストレージ装置１２０をＳＡＮシステムに接続することで、仮想ディスク６０内のデータのシステム間の移行が完了する。
【０１３７】
ところで、第２の実施の形態では、仮想ディスク６０内のデータの移行が完了するまで、メタデータ用ディスク１２２に格納されたメタデータを用いて、移行先ディスク１２１内のデータをマルチストレージシステムの管理下に置くことができる。そのため、例えばデータ移行中に何れかのノードに故障が発生した場合、データ移行処理を中止し、データの保守を行うことができる。
【０１３８】
図１７は、ノード故障時の制御ノードにおける処理手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］制御ノード５００の仮想ディスク管理部５１０は、ディスクノードまたはストレージ装置の故障を検出する。例えば各ディスクノード１００，２００，３００から定期的にハートビートが出力される場合、仮想ディスク管理部５１０は所定期間以上ハートビートが途絶えたディスクノードについて、故障したものと判定する。なお、ハートビートとは、ディスクノード自身が正常に稼動していることを制御ノード５００に知らせるために、所定間隔で出力する信号である。また、ディスクノード１００，２００，３００のデータ管理部１４０，２３０，３３０は、ストレージ装置の故障を検知すると、ストレージ装置が故障した旨の情報（故障通知メッセージ）を制御ノード５００に送信することもできる。この場合、制御ノード５００の仮想ディスク管理部５１０は、故障通知メッセージに基づいて、ストレージ装置の故障を認識する。
【０１３９】
［ステップＳ５２］スライス割り当て制御部５１１は、データ移行処理を中止する。例えば、スライスコピー処理（図１１のステップＳ１４）やセカンダリ切り離し処理（図１１のステップＳ１５）の途中であった場合、スライス割り当て制御部５１１は、新たなセグメントの選択を行わずに、データ移行処理を終了する。
【０１４０】
［ステップＳ５３］スライス割り当て制御部５１１は、各ディスクノード１００，２００，３００からスライス情報を取得する。例えばスライス割り当て制御部５１１は、各ディスクノード１００，２００，３００に対して、メタデータ照会要求を送信する。故障せずに動作しているディスクノードのメタデータ管理部は、メタデータ照会要求に応答し、メタデータ記憶部内のメタデータを制御ノード５００に送信する。スライス割り当て制御部５１１は、ディスクノードから送られたメタデータに基づいて、仮想ディスクメタデータ記憶部５２０内のメタデータを更新する。
【０１４１】
このとき、故障しているディスクノードからはメタデータが送られてこない。そのため、仮想ディスクメタデータ記憶部５２０内の更新後のメタデータに基づいて仮想ディスク６０のセグメントへのスライスの割り当てを判断すると、プライマリとセカンダリとの一方しか割り当てられていないセグメントが生じ得る。
【０１４２】
ストレージ装置の故障の場合、例えばディスクノードのメタデータ管理部において、故障したストレージ装置内のスライスに対応するメタデータを、制御ノード５００に送信しないようにすることができる。また、制御ノード５００のスライス割り当て制御部５１１が、故障したストレージ装置内のスライスに対応するメタデータについては、仮想ディスクメタデータ記憶部５２０に格納しないようにすることもできる。
【０１４３】
［ステップＳ５４］スライス割り当て制御部５１１は、シングルプライマリ化の処理を行う。シングルプライマリ化処理とは、冗長性が損なわれたセグメントに割り当てられているスライスを、シングルプライマリの状態（状態フラグが「ＳＰ」）にする処理である。この処理の詳細は後述する（図１８参照）。
【０１４４】
［ステップＳ５５］スライス割り当て制御部５１１は、再２重化処理を行う。再２重化処理では、冗長性が損なわれたセグメントのデータを２重化する処理である。この処理の詳細は後述する（図１９参照）。
【０１４５】
このような手順で、データ移行の途中でディスクノードの故障が発生しても、冗長性が損なわれたセグメントの２重化を回復させることができる。すなわち、ディスクノード１００のメタデータ管理部１４２は、メタデータ照会要求に応答し、移行先ディスク１２１内のスライスに対応するメタデータについても制御ノード５００に送信する。これにより、例えばスライスコピー処理完了後、セカンダリ切り離し処理中にストレージ装置１１０以外のストレージ装置２１０，３１０が故障した場合でも、仮想ディスク６０の２重化の復旧が可能となる。
【０１４６】
図１８は、シングルプライマリ化処理の手順を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。
［ステップＳ６１］スライス割り当て制御部５１１は、仮想ディスクメタデータ記憶部５２０内のメタデータを参照し、ステップＳ６２において未選択の異常セグメントの有無を判断する。異常セグメントとは、プライマリスライスとセカンダリスライスとの何れか一方しか割り当てられていないセグメントである。例えばスライス割り当て制御部５１１は、仮想ディスク６０の仮想ディスクアドレスが小さい順にセグメントを抽出する。そして、スライス割り当て制御部５１１は、抽出したセグメントに割り当てられたスライスを仮想ディスクメタデータ記憶部５２０から検索する。検索によりプライマリスライスとセカンダリスライスとの何れか一方しか見つからなければ、スライス割り当て制御部５１１は、抽出したセグメントを異常セグメントと判断する。
【０１４７】
ステップＳ６１で未選択の異常セグメントがある場合、処理がステップＳ６２に進められる。ステップＳ６１で未選択の異常セグメントがなければ、シングルプライマリ化の処理が終了する。
【０１４８】
［ステップＳ６２］スライス割り当て制御部５１１は、ステップＳ６１で検出した異常セグメントを１つ選択する。
［ステップＳ６３］スライス割り当て制御部５１１は、選択した異常セグメントに割り当てられているスライスを管理しているディスクノードへ、該当スライスの状態をシングルプライマリ「ＳＰ」に変更することを指示するメタデータ変更要求を送信する。なお、選択した異常セグメントに割り当てられているスライスの状態は、プライマリスライス（状態「Ｐ」）の場合と、セカンダリスライス（状態「Ｓ」）の場合とがある。
【０１４９】
メタデータ変更要求を受信したディスクノードでは、異常セグメントに割り当てられているスライスの状態が、シングルプライマリ「ＳＰ」に変更される。スライス割り当て制御部５１１は、メタデータ変更要求を送信したディスクノードから変更完了応答を受信すると、処理をステップＳ６１に進める。
【０１５０】
このようにして、冗長性が損なわれた異常セグメントに割り当てられているスライスの状態が、すべてシングルプライマリ「ＳＰ」に変更される。
図１９は、再２重化処理の手順を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
【０１５１】
［ステップＳ７１］スライス割り当て制御部５１１は、仮想ディスクメタデータ記憶部５２０内のメタデータを参照し、ステップＳ７２において未選択の異常セグメントの有無を判断する。再２重化処理を実行時には、異常セグメントは、シングルプライマリスライスが割り当てられているセグメントである。例えばスライス割り当て制御部５１１は、仮想ディスク６０の仮想ディスクアドレスが小さい順にセグメントを抽出する。そして、スライス割り当て制御部５１１は、抽出したセグメントに割り当てられたスライスを仮想ディスクメタデータ記憶部５２０から検索する。検索によりシングルプライマリスライスが見つかれば、スライス割り当て制御部５１１は、抽出したセグメントを異常セグメントと判断する。
【０１５２】
ステップＳ７１で未選択の異常セグメントがある場合、処理がステップＳ７２に進められる。ステップＳ７１で未選択の異常セグメントがなければ、シングルプライマリ化の処理が終了する。
【０１５３】
［ステップＳ７２］スライス割り当て制御部５１１は、ステップＳ７１で検出した異常セグメントを１つ選択する。
［ステップＳ７３］スライス割り当て制御部５１１は、仮想ディスクメタデータ記憶部５２０内のメタデータを参照し、プライマリスライスとは別のディスクノードで管理されているフリーのスライスを１つ選択する。
【０１５４】
［ステップＳ７４］スライス割り当て制御部５１１は、ステップＳ７３で選択したスライスの状態をフリー「Ｆ」からリザーブ「Ｒ」に変更することを指示するメタデータ変更要求を、ステップＳ７３で選択したスライスを管理するディスクノードに送信する。メタデータ変更要求では、ステップＳ７３で選択したスライスを、ステップＳ７２で選択したセグメントに割り当てることも示される。メタデータ変更要求を受信したディスクノードでは、メタデータ変更要求で指定されたスライスが、ステップＳ７２で選択したセグメントに割り当てられ、状態がリザーブ「Ｒ」に変更される。
【０１５５】
またスライス割り当て制御部５１１は、選択したセグメントのシングルプライマリスライスを管理するディスクノードに対して、シングルプライマリスライスからプライマリスライスへの状態の変更を指示するメタデータ変更要求を送信する。プライマリスライスへの変更を指示するメタデータ変更要求を受信したディスクノードでは、メタデータ変更要求に従ってメタデータが変更される。
【０１５６】
スライス割り当て制御部５１１は、メタデータ変更要求を送信した各ディスクノードから変更完了応答を受信すると、処理をステップＳ７５に進める。
［ステップＳ７５］データコピー指示部５１２は、ステップＳ７２で選択したセグメントのシングルプライマリスライスを管理するディスクノードに対して、シングルプライマリスライス内のデータのコピー要求を送信する。コピー要求では、コピー先として、ステップＳ７４でリザーブに変更したスライスが指定される。コピー要求を受信したディスクノードでは、指定されたシングルプライマリスライスのデータを、リザーブスライスを管理するディスクノードに送信する。リザーブスライスを管理するディスクノードは、シングルプライマリスライスのデータを受信し、リザーブスライスに書き込む。リザーブスライスを管理するディスクノードは、リザーブスライスへのデータの書き込みが完了すると、シングルプライマリスライスを管理するディスクノードへ書き込み完了応答を送信する。シングルプライマリスライスを管理するディスクノードは、書き込み完了応答を受信すると、制御ノード５００に対してコピー完了応答を送信する。スライス割り当て制御部５１１は、コピー完了応答を受信すると、処理をステップＳ７６に進める。
【０１５７】
［ステップＳ７６］スライス割り当て制御部５１１は、ステップＳ７２で選択したセグメントに割り当てられたスライスを管理するディスクノードに対して、メタデータ変更要求を送信する。具体的には、スライス割り当て制御部５１１は、選択したセグメントのリザーブスライスを管理するディスクノードに対して、リザーブスライスからセカンダリスライスへの状態の変更を指示するメタデータ変更要求を送信する。
【０１５８】
メタデータ変更要求を受信した各ディスクノードでは、メタデータ変更要求に従ってメタデータが変更される。スライス割り当て制御部５１１は、メタデータ変更要求を送信したディスクノードから変更完了応答を受信すると、処理をステップＳ７１に進める。
【０１５９】
次に、ノード故障時の処理を、具体例を用いて説明する。
まず、ステップＳ６１における異常セグメントか否か判断内容を、具体例を用いて説明する。
【０１６０】
図２０は、セグメントに割り当てられたスライスのメタデータの例を示す図である。図２０には、セグメントに割り当てられたスライスのメタデータの例として、６つのパターンが示されている。なお、図２０では、メタデータに含まれるペアのディスクノードＩＤとペアのスライスＩＤとの欄は省略されている。
【０１６１】
第１のパターンは、判断対象のセグメントに対して、プライマリスライス、セカンダリスライス、およびブランクスライスが割り当てられている例である。この場合、スライス割り当て制御部５１１は、判断対象のセグメントを正常なセグメントと判定する。
【０１６２】
第２のパターンは、判断対象のセグメントに対して、プライマリスライスとセカンダリスライスとが割り当てられている例である。この場合、スライス割り当て制御部５１１は、判断対象のセグメントを正常なセグメントと判定する。
【０１６３】
第３のパターンは、判断対象のセグメントに対して、ブランクスライスとセカンダリスライスとが割り当てられている例である。この場合、スライス割り当て制御部５１１は、判断対象のセグメントを異常なセグメントと判定する。
【０１６４】
第４のパターンは、判断対象のセグメントに対して、ブランクスライスとプライマリスライスとが割り当てられている例である。この場合、スライス割り当て制御部５１１は、判断対象のセグメントを異常なセグメントと判定する。
【０１６５】
第５のパターンは、判断対象のセグメントに対して、プライマリスライスのみが割り当てられている例である。この場合、スライス割り当て制御部５１１は、判断対象のセグメントを異常なセグメントと判定する。
【０１６６】
第６のパターンは、判断対象のセグメントに対して、セカンダリスライスのみが割り当てられている例である。この場合、スライス割り当て制御部５１１は、判断対象のセグメントを異常なセグメントと判定する。
【０１６７】
このように図２０に示した例では、第３から第６のパターンに該当するセグメントが異常と判定され、スライスのシングルプライマリへの変更が行われる。
図２１は、シングルプライマリへの変更例を示す図である。図２１に示すように、プライマリスライスとセカンダリスライスとが、シングルプライマリスライスに変更される。ブランクスライスについては、変更されない。
【０１６８】
変更後のメタデータは、所定のタイミングでアクセスノード３０に通知される。例えばアクセスノード３０は、スライスへのアクセスを行いエラーが発生すると、制御ノード５００に対して、該当スライスが割り当てられていたセグメントに関するメタデータ照会要求を送信する。すると、制御ノード５００の仮想ディスク管理部５１０が、指定されたセグメントに割り当てられたスライスのメタデータを仮想ディスクメタデータ記憶部５２０から取得し、アクセスノード３０に送信する。これにより、アクセスノード３０は最新のメタデータを取得することができる。
【０１６９】
アクセスノード３０は、セグメント内のデータにアクセスする場合、そのセグメントに割り当てられたプライマリスライスまたはシングルプライマリスライスにアクセスする。そのため、図２１に示すようにシングルプライマリ化を行うことで、アクセスノード３０から異常セグメント内のデータへのアクセスが可能となる。
【０１７０】
シングルプライマリ化が完了すると、スライス割り当て制御部５１１は、フリースライスを選択して、異常セグメントのリザーブスライスとする。
図２２は、異常セグメントにリザーブスライス割り当て後のメタデータの例を示す図である。図２２に示すように、リザーブスライスは、シングルプライマリスライスを管理しているディスクノードとは別のディスクノードが管理するスライスから選択される。この際、シングルプライマリスライスは、プライマリスライスに変更される。また、ブランクスライスについては、変更されない。
【０１７１】
その後、プライマリスライスからリザーブスライスへのデータのコピーが行われ、リザーブスライスがセカンダリスライスに変更される。
図２３は、再２重化完了後のメタデータの例を示す図である。図２３に示すように、再２重化が完了することで、異常セグメントであったセグメントには、プライマリスライスとセカンダリスライスとが割り当てられ、冗長性が確保される。
【０１７２】
以上説明したように、マルチノードストレージシステムにおけるストレージ装置に分散配置されているデータを、各データを管理するディスクノードから移行先ディスク１２１にコピーするようにしたため、データ移行処理の負荷が１つのノードに集中せずにすむ。その結果、マルチノードストレージシステムの運用を安定的に継続しながら、仮想ディスク６０内のデータの他のシステムで利用するストレージ装置１２０への移行を実行できる。
【０１７３】
しかも、ＳＡＮなどのマルチノードストレージシステム以外のシステムに接続して使用する予定のストレージ装置１２０にデータを安全に移行することができる。すなわち、データ移行が完了するまではストレージ装置１２０内のデータを制御ノード５００の管理下に置き、マルチノードストレージシステムによる高い信頼性を確保することができる。例えば、移行先ディスク１２１とは別にメタデータ用ディスク１２２を設けたことで、データ移行が完了するまでは、移行先ディスク１２１もマルチストレージシステム管理下の１つのストレージ装置として扱うことができる。そのため、データ移行中に障害などが発生しても、メタデータ用ディスク１２２内のメタデータを利用して、適切な復旧処理が可能となる。
【０１７４】
さらに、セカンダリスライスのデータを、移行先ディスク１２１にコピーするようにしたことで、アクセスノード３０からプライマリスライスへのアクセスに影響を与えずに、データコピーを行うことができる。
【０１７５】
〔第３の実施の形態〕
次に第３の実施の形態について説明する。第３の実施の形態は、移行先ディスクに対して複数のディスクノードからアクセス可能としたものである。これにより、複数のディスクノードから並行して移行先ディスクにデータをコピーすることができ、データ移行に要する時間を短縮することができる。
【０１７６】
図２４は、第３の実施の形態のマルチノードストレージシステムの構成例を示す図である。図２４において、図２に示した第２の実施の形態の構成における要素と同じ要素には同じ符号を付し、説明を省略する。
【０１７７】
第３の実施の形態では、スイッチ１０を介して、複数のディスクノード１００ａ，２００ａ，３００ａ，制御ノード５００ａ、アクセスノード３０、管理ノード４００ａ、およびストレージ装置６００が接続されている。ストレージ装置６００は、例えばｉＳＣＳＩ（Internet Small Computer System Interface）によってスイッチ１０に接続されている。
【０１７８】
ディスクノード１００ａには、ストレージ装置１１０が接続されている。ディスクノード２００ａには、ストレージ装置２１０が接続されている。ディスクノード３００ａには、ストレージ装置３１０が接続されている。
【０１７９】
ストレージ装置６００には、複数のＨＤＤ６０１，６０２，６０３，６０４が実装されている。ストレージ装置６００は、内蔵するＨＤＤを用いたＲＡＩＤシステムである。
ディスクノード１００ａ，２００ａ，３００ａは、接続されたストレージ装置１１０，２１０，３１０に格納されたデータを管理し、管理しているデータをスイッチ１０経由で端末装置２１，２２，２３に提供する。またディスクノード１００ａ，２００ａ，３００ａは、ストレージ装置６００を論理的に接続することができる。論理的に接続するとは、ストレージ装置６００に対して、直接接続されたストレージ装置と同様にアクセス可能とすることである。
【０１８０】
制御ノード５００ａは、ディスクノード１００ａ，２００ａ，３００ａを管理する。例えば、制御ノード５００ａは、ディスクノード１００ａ，２００ａ，３００ａから新たなストレージ装置の接続通知を受け取ると、仮想ディスク６０を介して、接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
【０１８１】
なお、ディスクノード１００ａ，２００ａ，３００ａと制御ノード５００ａとは、図３に示したディスクノード１００と同様のハードウェア構成で実現できる。
図２５は、第３の実施の形態に係るマルチノードストレージシステムの各装置の機能を示すブロック図である。
【０１８２】
制御ノード５００ａは、仮想ディスク管理部５１０ａと仮想ディスクメタデータ記憶部５２０ａとを有している。
仮想ディスク管理部５１０ａは、ディスクノード１００ａ，２００ａ，３００ａが有するストレージ装置１１０，２１０，３１０，６００内のスライスを管理する。例えば、仮想ディスク管理部５１０ａは、システム起動時に、ディスクノード１００ａ，２００ａ，３００ａに対してメタデータ取得要求を送信する。そして、仮想ディスク管理部５１０ａは、メタデータ取得要求に対して返信されたメタデータから仮想ディスクメタデータを生成し、仮想ディスクメタデータ記憶部５２０ａに格納する。
【０１８３】
また仮想ディスク管理部５１０ａは、管理ノード４００ａから仮想ディスク内のデータの移行指示を受け取ると、指定された仮想ディスク内のデータの指定されたストレージ装置へのコピーを、その仮想ディスクのデータを管理するディスクノードに指示する。仮想ディスク管理部５１０ａは、移行指示に応じたデータのコピーが完了すると、管理ノード４００ａに対して移行完了応答を送信する。
【０１８４】
仮想ディスクメタデータ記憶部５２０ａは、ディスクノード１００ａ，２００ａ，３００ａから収集されたメタデータに基づいて生成された仮想ディスクメタデータを記憶する。例えば、制御ノード５００ａ内のＲＡＭの記憶領域の一部が仮想ディスクメタデータ記憶部５２０ａとして使用される。
【０１８５】
ディスクノード１００ａは、データアクセス部１３０ａ、データ管理部１４０ａ、およびメタデータ記憶部１５０ａを有している。
データアクセス部１３０ａは、アクセスノード３０からの要求に応答して、ストレージ装置１１０内のデータにアクセスする。データ管理部１４０ａは、スイッチ１０にストレージ装置６００が物理接続された場合に、ストレージ装置６００をマルチストレージシステム内の一ストレージ装置として論理的に接続する。すなわちデータ管理部１４０ａは、ストレージ装置６００を、ディスクノード１００ａ経由で制御ノード５００ａから認識できるようにする。
【０１８６】
またデータ管理部１４０ａは、データアクセス部１３０ａによってライト要求に基づくデータの書き込みが行われた場合、データが書き込まれたスライス（プライマリスライス）に対応するセカンダリスライス内のデータを更新する。すなわち、データ管理部１４０ａは、更新されたデータを、セカンダリスライスを管理するディスクノードに送信する。そのデータを受け取ったディスクノードのデータ管理部は、セカンダリスライスにそのデータを書き込む。これにより、２重化されたデータの一貫性が保たれる。
【０１８７】
さらに、データ管理部１４０ａは、仮想ディスク管理部５１０ａからのメタデータ取得要求に応答して、メタデータ記憶部１５０ａに記憶されたメタデータを仮想ディスク管理部５１０ａに対して送信する。
【０１８８】
メタデータ記憶部１５０ａは、メタデータを記憶する。例えば、ＲＡＭ内の記憶領域の一部がメタデータ記憶部１５０ａとして使用される。なお、メタデータ記憶部１５０ａに格納されるメタデータは、システム停止時にはストレージ装置１１０内に格納され、システム起動時にメタデータ記憶部１５０ａに読み込まれる。
【０１８９】
他のディスクノード２００ａ，３００ａは、ディスクノード１００ａと同様の機能を有している。すなわち、ディスクノード２００ａは、データアクセス部２２０ａ、データ管理部２３０ａ、およびメタデータ記憶部２４０ａを有している。ディスクノード３００ａは、データアクセス部３２０ａ、データ管理部３３０ａ、およびメタデータ記憶部３４０ａを有している。ディスクノード２００ａ，３００ａ内の各要素は、ディスクノード１００ａ内の同名の要素と同じ機能を有している。
【０１９０】
管理ノード４００ａは、管理者からの操作入力に応答して、マルチストレージシステムの管理用の指示を、各ノードに送信する。例えば、管理者は、ストレージ装置６００とスイッチ１０とをケーブルで接続（物理接続）した場合、管理ノード４００ａに対してストレージ装置６００の論理的な接続を指示する操作入力を行う。すると管理ノード４００ａは、管理者からの操作入力に応答して各ディスクノード１００ａ，２００ａ，３００ａに対して、新たに物理接続されたストレージ装置６００の接続指示を送信する。その接続指示に基づいてディスクノード１００ａ，２００ａ，３００ａがストレージ装置６００内にメタデータの格納などの処理を行い、ストレージ装置６００を制御ノード５００ａにおいて認識可能とする。接続指示に応じた処理が完了すると、ディスクノード１００ａ，２００ａ，３００ａから管理ノード４００ａへ接続完了応答が返される。
【０１９１】
図２５の例は、仮想ディスク６０のデータをストレージ装置６００に移行する場合を想定している。この場合、ストレージ装置６００には、制御ノード５００ａによって、移行先ディスク６１１と複数のメタデータ用ディスク６１２〜６１４とが設けられる。なお、移行先ディスク６１１とメタデータ用ディスク６１２〜６１４とは、それぞれストレージ装置６００内のＨＤＤで構成されるＲＡＩＤ構成のディスクグループを複数分割することで得られる仮想的なディスクである。移行先ディスク６１１とメタデータ用ディスク６１２〜６１４として使用される仮想的なディスクは、図４に示したマルチノードストレージシステムにおける仮想ディスク６０とは異なり、１つのストレージ装置６００内のＨＤＤにより実現されている。移行先ディスク６１１とメタデータ用ディスク６１２〜６１４とには、論理ユニット番号（ＬＵＮ）などの識別子が割り振られ、識別子によってディスクノード１００ａ，２００ａ，３００ａで識別される。図２５の例では、移行先ディスク６１１には、識別子「ＬＵ」のディスクが使用されている。メタデータ用ディスク６１２には、識別子「ＬＵ１」のディスクが使用されている。メタデータ用ディスク６１３には、識別子「ＬＵ２」のディスクが使用されている。メタデータ用ディスク６１４には、識別子「ＬＵ３」のディスクが使用されている。
【０１９２】
３つのメタデータ用ディスク６１２〜６１４は、それぞれディスクノード１００ａ，２００ａ，３００ａに対応する。各ディスクノード１００ａ，２００ａ，３００ａは、対応するメタデータ用ディスクに、移行先ディスク６１１内の自己の管理するスライスのメタデータを格納する。
【０１９３】
次に、仮想ディスク６０からストレージ装置６００へのデータ移行の実施に利用される各ノードの機能について、詳細に説明する。
図２６は、データ移行に利用される各ノードの機能を示す図である。制御ノード５００ａの仮想ディスク管理部５１０ａは、仮想ディスクのデータ移行のために、スライス割り当て制御部５１１ａおよびデータコピー指示部５１２ａを有する。
【０１９４】
スライス割り当て制御部５１１ａは、システム起動時などに、各ディスクノード１００ａ，２００ａ，３００ａに対してメタデータ照会要求を送信する。するとディスクノード１００ａ，２００ａ，３００ａからメタデータが応答される。またスライス割り当て制御部５１１ａは、データコピー対象のスライスを選択し、該当スライスを管理しているディスクノードに対して、コピーの進行状況に応じてメタデータの更新を指示する。データコピー指示部５１２ａは、データコピーのコピー元となるスライスを管理するディスクノードに対して、移行先ディスク６１１ａへの該当スライス内のデータの送信を指示する。
【０１９５】
ディスクノード１００ａのデータ管理部１４０ａは、移行先ストレージ接続部１４１ａ、メタデータ管理部１４２ａ、およびデータコピー部１４３ａを有する。
移行先ストレージ接続部１４１ａは、スイッチ１０に接続されたストレージ装置６００の存在を制御ノード５００ａに認識させる。例えば、移行先ストレージ接続部１４１ａは、管理ノード４００ａからの接続指示を受けると、スイッチ１０を介して接続されているストレージ装置の探索を行い、未認識のストレージ装置６００を検出する。移行先ストレージ接続部１４１ａは、検出したストレージ装置６００をＯＳに認識させる。さらに移行先ストレージ接続部１４１ａは、検出したストレージ装置６００内の１つの仮想的なディスクを移行先ディスク６１１とし、他の１つの仮想的なディスクを、自己の管理するメタデータ用ディスク６１２とする。そして移行先ストレージ接続部１４１ａは、メタデータ用ディスク６１２に、移行先ディスク６１１内の記憶領域を分割して得られるスライスのうち、ディスクノード１００ａが管理するスライスのメタデータを格納する。その後、移行先ストレージ接続部１４１ａは、接続完了応答を管理ノード４００ａに送信する。
【０１９６】
メタデータ管理部１４２ａは、制御ノード５００ａからのメタデータ照会要求に応答して、メタデータ記憶部１５０ａ内のメタデータを制御ノード５００ａに送信する。また、メタデータ管理部１４２ａは、制御ノード５００ａからの指示に従って、メタデータを更新する。
【０１９７】
データコピー部１４３ａは、制御ノード５００ａからの指示に従って、仮想ディスク６０のセグメントに割り当てられたスライス内のデータを、移行先ディスク６１１内のスライスにコピーする。また、データコピー部１４３ａは、他のディスクノード２００ａ，３００ａから、移行先ディスク６１１内のスライスをコピー先としてデータを受信すると、受信したデータを、コピー先として指定されたスライスに格納する。
【０１９８】
ディスクノード２００ａのデータ管理部２３０ａは、移行先ストレージ接続部２３１ａ、メタデータ管理部２３２ａ、およびデータコピー部２３３ａを有する。移行先ストレージ接続部２３１ａ、メタデータ管理部２３２ａ、およびデータコピー部２３３ａの機能は、それぞれディスクノード１００ａの移行先ストレージ接続部１４１ａ、メタデータ管理部１４２ａ、およびデータコピー部１４３ａと同じである。ただし、移行先ストレージ接続部２３１ａは、管理ノード４００ａから接続指示を受けた場合、管理するメタデータ用ディスク６１２とは別の仮想的なディスクを、自己の管理するメタデータ用ディスク６１３とする。
【０１９９】
ディスクノード３００ａのデータ管理部３３０ａは、移行先ストレージ接続部３３１ａ、メタデータ管理部３３２ａ、およびデータコピー部３３３ａを有する。移行先ストレージ接続部３３１ａ、メタデータ管理部３３２ａ、およびデータコピー部３３３ａの機能は、それぞれディスクノード１００ａの移行先ストレージ接続部１４１ａ、メタデータ管理部１４２ａ、およびデータコピー部１４３ａと同じである。ただし、移行先ストレージ接続部３３１ａは、管理ノード４００ａから接続指示を受けた場合、管理するメタデータ用ディスク６１２，６１３とは別の仮想的なディスクを、自己の管理するメタデータ用ディスク６１４とする。
【０２００】
次に、データ移行処理の手順について説明する。
図２７は、第３の実施の形態におけるデータ移行処理の手順を示すシーケンス図である。以下、図２７に示す処理を、ステップ番号に沿って説明する。
【０２０１】
［ステップＳ８１］管理ノード４００ａからディスクノード１００ａ，２００ａ，３００ａに接続指示が出される。例えば、管理者は管理ノード４００ａに対して、データの移行を指示する。管理ノード４００ａは、指定されたディスクノード１００ａ，２００ａ，３００ａに対して、仮想ディスク６０の仮想ディスクＩＤ、仮想ディスク６０のセグメント数を指定した接続指示を送信する。第３の実施の形態では、接続指示に、各ディスクノード１００ａ，２００ａ，３００ａが管理を担当する仮想ディスク６０内の領域を示す担当領域情報が含まれる。
【０２０２】
また管理ノード４００ａは、例えば、移行先ディスク６１１、仮想ディスク、メタデータ用ディスク６１２〜６１４とするストレージ装置６００内の仮想ディスクの識別番号（例えば、ＲＡＩＤのＬＵＮ）を接続指示に含めることができる。これにより、各ディスクノード１００ａ，２００ａ，３００ａは、移行先ディスク６１１と、自己の管理するメタデータを格納するメタデータ用ディスク６１２〜６１４とを認識できる。
【０２０３】
ディスクノード１００ａは、管理ノード４００ａからの接続指示に応答して、データ移行先となるストレージ装置６００をマルチノードストレージシステムの配下のストレージ装置として接続する。例えば、ディスクノード１００ａの移行先ストレージ接続部１４１ａは、スイッチ１０を介して接続されている未認識のストレージ装置を検索することで、ストレージ装置６００を認識する。そして移行先ストレージ接続部１４１ａは、ストレージ装置６００内の１つの仮想的なディスクを移行先ディスク６１１、他の１つのディスクをメタデータ用ディスク６１２として、ディスクノード１００ａのＯＳに認識させる。この時点では、移行先ディスク６１１とメタデータ用ディスク６１２との内容はブランクである。その後、移行先ストレージ接続部１４１ａは、メタデータ用ディスク６１２にメタデータを格納する。なお、移行先ディスク６１１については、接続時には書き込みは行われない。
【０２０４】
メタデータ用ディスク６１２へ格納するメタデータの内容は、管理ノード４００ａからの指示に従って行われる。例えば、管理ノード４００ａからの接続指示において、データの移行を行う仮想ディスク６０の仮想ディスクＩＤと、仮想ディスク６０内の担当領域が指定される。担当領域は、ディスクノード１００ａが管理を担当するセグメントである。移行先ストレージ接続部１４１ａは、仮想ディスク６０の担当するセグメントに割り当てるスライスに対応するメタデータを作成し、そのメタデータの仮想ディスクＩＤの欄には、仮想ディスク６０の仮想ディスクＩＤを設定する。そして移行先ストレージ接続部１４１ａは、作成したメタデータと、メタデータの格納形式を示すデバイス情報とを、メタデータ用ディスク６１２に格納する。この際、移行先ストレージ接続部１４１ａは、メタデータ用ディスク６１２に格納したメタデータを、メタデータ記憶部１５０ａにも格納する。その後、移行先ストレージ接続部１４１ａは、管理ノード４００ａに対して接続完了応答を送信する。
【０２０５】
［ステップＳ８２］ディスクノード２００ａの移行先ストレージ接続部２３１ａは、ディスクノード１００ａと同様に、管理ノード４００ａからの接続指示に従って、移行先ディスク６１１とメタデータ用ディスク６１３を認識する。そして移行先ストレージ接続部２３１ａは、メタデータ用ディスク６１３内に、ディスクノード２００ａが管理を担当するセグメントに割り当てるスライスに対応するメタデータを作成し、メタデータ用ディスク６１３に格納する。その後、移行先ストレージ接続部２３１ａは、管理ノード４００ａに接続完了応答を送信する。
【０２０６】
［ステップＳ８３］ディスクノード３００ａの移行先ストレージ接続部３３１ａは、ディスクノード１００ａと同様に、管理ノード４００ａからの接続指示に従って、移行先ディスク６１１とメタデータ用ディスク６１４を認識する。そして移行先ストレージ接続部３３１ａは、メタデータ用ディスク６１４内に、ディスクノード３００ａが管理を担当するセグメントに割り当てるスライスに対応するメタデータを作成し、メタデータ用ディスク６１４に格納する。その後、移行先ストレージ接続部３３１ａは、管理ノード４００ａに接続完了応答を送信する。
【０２０７】
［ステップＳ８４］管理ノード４００ａから制御ノード５００ａに移行指示が出される。例えば、移行指示には、データの移行先となるストレージ装置６００を接続したディスクノード１００ａ，２００ａ，３００ａのディスクノードＩＤが指定されている。制御ノード５００ａのスライス割り当て制御部５１１ａは、移行指示で指定されたディスクノード１００ａ，２００ａ，３００ａに対して、メタデータ照会要求を送信する。
【０２０８】
［ステップＳ８５］メタデータ照会要求を受け取ったディスクノード１００ａでは、メタデータ管理部１４２ａがメタデータ記憶部１５０ａからメタデータを取得し、制御ノード５００ａに送信する。なお、メタデータ管理部１４２ａは、メタデータ記憶部１５０ａからストレージ装置６００内のスライスのメタデータのみを取得し、取得したメタデータを制御ノード５００ａに送信してもよい。
【０２０９】
［ステップＳ８６］メタデータ照会要求を受け取ったディスクノード２００ａでは、メタデータ管理部２３２ａがメタデータ記憶部２４０ａからメタデータを取得し、制御ノード５００ａに送信する。なお、メタデータ管理部２３２ａは、メタデータ記憶部２４０ａからストレージ装置６００内のスライスのメタデータのみを取得し、取得したメタデータを制御ノード５００ａに送信してもよい。
【０２１０】
［ステップＳ８７］メタデータ照会要求を受け取ったディスクノード３００ａでは、メタデータ管理部３３２ａがメタデータ記憶部３４０ａからメタデータを取得し、制御ノード５００ａに送信する。なお、メタデータ管理部３３２ａは、メタデータ記憶部３４０ａからストレージ装置６００内のスライスのメタデータのみを取得し、取得したメタデータを制御ノード５００ａに送信してもよい。
【０２１１】
［ステップＳ８８］メタデータを受信した制御ノード５００ａのスライス割り当て制御部５１１ａは、受信したメタデータにより仮想ディスクメタデータ記憶部５２０ａ内のメタデータを更新する。そして、データコピー指示部５１２ａの制御の下、ディスクノード１００ａ，２００ａ，３００ａによるスライス内のデータの移行先ディスク６１１へのコピー処理が行われる。
【０２１２】
［ステップＳ８９］データのコピーが完了すると、制御ノード５００ａのスライス割り当て制御部５１１ａの制御の下、仮想ディスク６０のセグメントに対するセカンダリスライスの切り離し（割り当て解除）処理が行われる。スライス割り当て制御部５１１ａは、セカンダリスライスの切り離し処理が完了すると、移行完了応答を管理ノード４００ａに送信する。
【０２１３】
このような手順で、仮想ディスク６０内のデータが移行先ディスク６１１に移行される。
第３の実施の形態における第２の実施の形態との相違点として、複数のディスクノード１００ａ，２００ａ，３００ａで分担して移行先ディスク６１１を管理することがある。各ディスクノード１００ａ，２００ａ，３００ａには、接続指示の際に、それぞれが担当する仮想ディスク６０内のセグメントが通知される。各ディスクノード１００ａ，２００ａ，３００ａは、担当するセグメントに対応する移行先ディスク６１１内のスライスを管理する。
【０２１４】
図２８は、ディスクノードへの担当領域の通知例を示す図である。例えば、管理ノード４００ａは、担当領域情報７１，７２，７３を含む接続指示を、ディスクノード１００ａ，２００ａ，３００ａに送信する。
【０２１５】
担当領域情報７１，７２，７３には、移行先ディスクＩＤ、メタデータ用ディスクＩＤ、仮想ディスクＩＤ、仮想ディスク開始アドレス、および仮想ディスク終了アドレスのフィールドが設けられている。移行先ディスクＩＤのフィールドには、移行先ディスク６１１として使用するストレージ装置６００内の仮想的なディスクの識別子が設定される。メタデータ用ディスクＩＤのフィールドには、管理を担当するスライスのメタデータの格納に使用するメタデータ用ディスクとして使用するストレージ装置６００内の仮想的なディスクの識別子が設定される。仮想ディスクＩＤのフィールドには、移行対象の仮想ディスク６０の仮想ディスクＩＤが設定される。仮想ディスク開始アドレスのフィールドには、管理を担当する複数のセグメントのうちの先頭のセグメントを示すアドレスが設定される。仮想ディスク終了アドレスのフィールドには、管理を担当する複数のセグメントのうちの最後部のセグメントを示すアドレスが設定される。
【０２１６】
例えばディスクノード１００ａには、担当領域情報７１が送信されている。この担当領域情報７１には、移行先ディスクＩＤ「ＬＵ」、メタデータ用ディスクＩＤ「ＬＵ１」、仮想ディスクＩＤ「ＬＶＯＬ１」、仮想ディスク開始アドレス「Ａ１」、仮想ディスク終了アドレス「Ａ１０」が設定されている。
【０２１７】
このような担当領域情報７１，７２，７３に基づいて、各ディスクノード１００ａ，２００ａ，３００ａは、自己の管理するセグメントを認識する。なお、移行先ディスク６１１内のスライスは、アドレスが小さい方から順に、アドレスの小さいセグメントに割り当てられるものとする。この場合、各ディスクノード１００ａ，２００ａ，３００ａは、自己の管理するセグメントを認識することで、そのセグメントのデータを格納するための移行先ディスク６１１内のスライスも一意に特定できる。
【０２１８】
図２９は、各ディスクノードが管理するスライスとメタデータ用ディスクとを示す図である。ディスクノード１００ａに対して通知される担当領域情報７１（図２８参照）では、移行先ディスクＩＤ「ＬＵ」、仮想ディスク開始アドレス「Ａ１」、および仮想ディスク終了アドレス「Ａ１０」が示されている。そこで、ディスクノード１００ａは、識別子「ＬＵ」の移行先ディスク６１１内の先頭のスライスＩＤ「スライス１００１」のスライスから、スライスＩＤ「スライス１０１０」のスライスまでの１０個のスライスを、自己の管理対象と認識する。またディスクノード１００ａに対して通知される担当領域情報７１（図２８参照）では、メタデータ用ディスクＩＤ「ＬＵ１」が示されている。そこで、ディスクノード１００ａは、識別子「ＬＵ１」のメタデータ用ディスク６１２内に、自己の管理するスライスのメタデータを格納する。
【０２１９】
ディスクノード２００ａに対して通知される担当領域情報７２（図２８参照）では、移行先ディスクＩＤ「ＬＵ」、仮想ディスク開始アドレス「Ａ１１」、および仮想ディスク終了アドレス「Ａ２０」が示されている。そこで、ディスクノード２００ａは、識別子「ＬＵ」の移行先ディスク６１１内のスライスＩＤ「スライス１０１１」のスライスから、スライスＩＤ「スライス１０２０」のスライスまでの１０個のスライスを、自己の管理対象と認識する。またディスクノード２００ａに対して通知される担当領域情報７２（図２８参照）では、メタデータ用ディスクＩＤ「ＬＵ２」が示されている。そこで、ディスクノード２００ａは、識別子「ＬＵ２」のメタデータ用ディスク６１３内に、自己の管理するスライスのメタデータを格納する。
【０２２０】
ディスクノード３００ａに対して通知される担当領域情報７３（図２８参照）では、移行先ディスクＩＤ「ＬＵ」、仮想ディスク開始アドレス「Ａ２１」、および仮想ディスク終了アドレス「Ａ３０」が示されている。そこで、ディスクノード３００ａは、識別子「ＬＵ」の移行先ディスク６１１内のスライスＩＤ「スライス１０２１」のスライスから、スライスＩＤ「スライス１０３０」のスライスまでの１０個のスライスを、自己の管理対象と認識する。またディスクノード３００ａに対して通知される担当領域情報７３（図２８参照）では、メタデータ用ディスクＩＤ「ＬＵ３」が示されている。そこで、ディスクノード３００ａは、識別子「ＬＵ３」のメタデータ用ディスク６１４内に、自己の管理するスライスのメタデータを格納する。
【０２２１】
図３０は、各メタデータ用ディスク内に格納されたメタデータの例を示す図である。図３０の例では、スライスコピー処理（図２７のステップＳ８８）の実行前のメタデータを示している。
【０２２２】
メタデータ用ディスク６１２には、ディスクノード１００ａが管理するスライスのメタデータが格納されている。そのためディスクノードＩＤの欄には、ディスクノード１００ａのディスクノードＩＤ「ＤＰ１」が設定されている。またメタデータ用ディスク６１２には、スライスＩＤが「スライス１００１」〜「スライス１０１０」の各スライスに対応するメタデータが格納されている。スライスＩＤが「スライス１００１」〜「スライス１０１０」の各スライスは、仮想ディスク６０の仮想ディスクアドレス「Ａ１」〜「Ａ１０」の各セグメントに割り当てられている。
【０２２３】
メタデータ用ディスク６１３には、ディスクノード２００ａが管理するスライスのメタデータが格納されている。そのためディスクノードＩＤの欄には、ディスクノード２００ａのディスクノードＩＤ「ＤＰ２」が設定されている。またメタデータ用ディスク６１３には、スライスＩＤが「スライス１０１１」〜「スライス１０２０」の各スライスに対応するメタデータが格納されている。スライスＩＤが「スライス１０１１」〜「スライス１０２０」の各スライスは、仮想ディスク６０の仮想ディスクアドレス「Ａ１１」〜「Ａ２０」の各セグメントに割り当てられている。
【０２２４】
メタデータ用ディスク６１４には、ディスクノード３００ａが管理するスライスのメタデータが格納されている。そのためディスクノードＩＤの欄には、ディスクノード３００ａのディスクノードＩＤ「ＤＰ３」が設定されている。またメタデータ用ディスク６１４には、スライスＩＤが「スライス１０２１」〜「スライス１０３０」の各スライスに対応するメタデータが格納されている。スライスＩＤが「スライス１０２１」〜「スライス１０３０」の各スライスは、仮想ディスク６０の仮想ディスクアドレス「Ａ２１」〜「Ａ３０」の各セグメントに割り当てられている。
【０２２５】
なお図３０の例では、移行先ディスク６１１の各スライスのスライスＩＤは全ディスクノードで一意になるようにしているが、スライスＩＤは個々のディスクノード内で一意であればよい。すなわち、異なるディスクノードでスライスＩＤが重複しても、各メタデータのディスクノードＩＤとの組み合わせによってスライスを一意に識別可能である。
【０２２６】
図３０に示すように、各メタデータ用ディスク６１２〜６１４内にメタデータが格納された後、スライスコピー処理（ステップＳ８８）とセカンダリ切り離し処理（ステップＳ８９）とが行われる。スライスコピー処理とセカンダリ切り離し処理の詳細は、移行先ディスク６１１を管理するディスクノードが複数あること以外は、第２の実施の形態と同様である。すなわち、制御ノード５００ａは、移行先ディスク６１０のスライスのメタデータ変更要求を送信する場合、該当スライスを管理しているディスクノードを判断し、該当ディスクノードに対してメタデータ変更要求を送信する。なお、移行先ディスク６１０のスライスをどのディスクノードが管理しているのかは、各ディスクノード１００ａ，２００ａ，３００ａから収集したメタデータのディスクノードＩＤの欄を参照することで判断できる。
【０２２７】
このように、移行先ディスク６１０のスライスの管理を複数のディスクノードで行うことで、データ移行の処理効率が向上する。また、移行先ディスク６１０のスライスのメタデータの変更などの処理が１つのディスクに集中せずにすみ、データ移行に関する処理でディスクノードの負荷が過大となることを抑制できる。
【０２２８】
〔第４の実施の形態〕
次に、第４の実施の形態について説明する。第４の実施の形態は、移行先ディスクが設けられたストレージ装置とは別のストレージ装置に、メタデータ用ディスクを設けるようにしたものである。
【０２２９】
図３１は、第４の実施の形態のマルチノードストレージシステムの構成例を示す図である。図３１において、図５に示した第２の実施の形態の構成における要素を同じ要素には同じ符号を付し、説明を省略する。
【０２３０】
第４の実施の形態では、図２に示した第２の実施の形態におけるストレージ装置１２０に代えて、２台のストレージ装置７１０，７２０がディスクノード１００に接続されている。ストレージ装置７１０には、移行先ディスク７１１が設けられている。またストレージ装置７２０には、メタデータ用ディスク７２１が設けられている。
【０２３１】
移行先ディスク７１１に格納される情報は、第２の実施の形態における移行先ディスク１２１に格納される情報と同様である。メタデータ用ディスク７２１に格納される情報は、第２の実施の形態におけるメタデータ用ディスク１２２に格納される情報と同様である。すなわち、第２の実施の形態において１台のストレージ装置１２０内に設けられていた移行先ディスク１２１とメタデータ用ディスク１２２とのそれぞれに対応する情報が、第４の実施の形態では、複数のストレージ装置７１０，７２０に別個に格納されている。ディスクノード１００は、スライスのデータを移行先ディスク７１１に格納し、各スライスのメタデータをメタデータ用ディスク７２１に格納する。
【０２３２】
このように、移行先ディスク７１１とメタデータ用ディスク７２１とをそれぞれ別個のストレージ装置７１０，７２０に設けることで、ストレージ装置７１０をＳＡＮなどの他のシステムに接続する際の処理が容易となる。すなわち、メタデータ用ディスク７２１は、データ移行中の信頼性確保のために設けられている。そのため移行先ディスク７１１を他のシステムに移行後は、メタデータ用ディスク７２１は使用されない。第２の実施の形態のように１つのストレージ装置１２０内に移行先ディスク１２１とメタデータ用ディスク１２２とを設けた場合、移行先ディスク１２１へのデータ移行完了後、メタデータ用ディスク１２２の削除処理が行われる。これは、使用する予定のないメタデータ用ディスク１２２がストレージ装置１２０内に残存していたのでは、資源の使用効率が低下するためである。一方、移行先ディスク７１１が設けられたストレージ装置７１０とは別のストレージ装置７２０にメタデータ用ディスク７２１を設けておけば、メタデータ用ディスク７２１の削除処理を行わずに、ストレージ装置７２０を他のシステムに接続できる。その結果、データ移行の作業効率が向上する。
【０２３３】
なお、ストレージ装置７２０に設けられたメタデータ用ディスク７２１は、移行先ディスク７１１へのデータ移行を行った仮想ディスクとは別の仮想ディスクのデータ移行を行うときに利用できる。そのため、メタデータ用ディスク７２１の削除処理は行わなくともよい。
【０２３４】
なお、図２５に示した第３の実施の形態の例においても、メタデータ用ディスク６１２，６１３，６１４を、ストレージ装置６００とは別のストレージ装置に設けることができる。
【０２３５】
〔その他の応用例〕
第２の実施の形態では、移行先ディスク１２１を有するストレージ装置１２０が、ディスクノード１００に直接接続されているが、ストレージ装置１２０をスイッチ１０経由でディスクノード１００に接続してもよい。
【０２３６】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、管理ノード、制御ノード、ディスクノードなどが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０２３７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２３８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２３９】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０２４０】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０２４１】
以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。
（付記１）  ネットワークを介して接続された複数のノードそれぞれが有する第１のストレージ装置にデータが分散して格納されている仮想ディスクに属するデータを、該複数のノードの１つとして用いられるコンピュータに管理させるデータ管理プログラムにおいて、
前記コンピュータに、
第２のストレージ装置内の、前記仮想ディスクの記憶容量に相当する記憶領域を移行先記憶領域とし、該移行先記憶領域を前記仮想ディスク内の記憶領域に対応付け、
前記コンピュータが管理している前記仮想ディスクのデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーする、
処理を実行させるためのデータ管理プログラム。
【０２４２】
（付記２）  前記コンピュータに、さらに、
前記コンピュータが管理している前記仮想ディスクのデータのコピーが完了すると、前記コンピュータが管理している前記仮想ディスクのデータが格納されていた前記コンピュータが有する前記第１のストレージ装置の記憶領域を開放する、
処理を実行させることを特徴とする付記１記載のデータ管理プログラム。
【０２４３】
（付記３）  前記コンピュータに、さらに、
前記コンピュータ以外のノードが管理している前記仮想ディスクの各データを該ノードから受信すると、受信した該データを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へ書き込む、
処理を実行させることを特徴とする付記１または２のいずれかに記載のデータ管理プログラム。
【０２４４】
（付記４）  前記コンピュータに、さらに、
第３のストレージ装置内に、前記移行先記憶領域内の単位記憶領域ごとの前記仮想ディスク内の記憶領域との対応関係、および前記移行先記憶領域内の単位記憶領域ごとのデータの有無を管理する管理情報を格納し、
前記仮想ディスクのデータをコピーする際には、前記管理情報を参照して、該データの前記仮想ディスク内での記憶領域に対応する前記移行先記憶領域内の単位記憶領域を特定し、特定した該単位記憶領域に該データをコピーし、
前記仮想ディスクのデータを前記移行先記憶領域へコピーすると、データがコピーされた前記移行先記憶領域内の単位記憶領域にデータが格納されたことを、前記管理情報に設定する、
処理を実行させることを特徴とする付記１乃至３のいずれかに記載のデータ管理プログラム。
【０２４５】
（付記５）  前記コンピュータに、さらに、
前記移行先記憶領域の前記仮想ディスク内の記憶領域との対応付けの際には、前記仮想ディスク内の全記憶領域のうちの前記コンピュータが前記移行先記憶領域との対応付けを担当する担当領域に、前記移行先記憶領域内の少なくとも一部の記憶領域を対応付け、
前記仮想ディスクのデータをコピーする際には、前記コンピュータが管理している前記仮想ディスクのデータのうち、前記担当領域以外の記憶領域のデータを、該データの前記仮想ディスク内での位置の前記移行先記憶領域との対応付けを担当するノードを介して、該データに対応する前記移行先記憶領域へコピーする、
処理を実行させることを特徴とする付記１乃至４のいずれかに記載のデータ管理プログラム。
【０２４６】
（付記６）  前記仮想ディスクは、データが２重化して前記複数のノードに分散格納されており、２重化されたデータのうち、優先して参照される一方のデータが第１の属性、他方のデータが第２の属性と定義されており、
前記コンピュータに、さらに、
前記仮想ディスクのデータをコピーする際には、前記第２の属性のデータを、該第２の属性のデータの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーする処理を実行させることを特徴とする付記１乃至５のいずれかに記載のデータ管理プログラム。
【０２４７】
（付記７）  前記コンピュータに、さらに、
前記仮想ディスクのデータをコピーする際には、前記第２の属性データのコピー後、該第２の属性のデータを、優先して参照される前記第１の属性のデータに変更する処理を実行させることを特徴とする付記６記載のデータ管理プログラム。
【０２４８】
（付記８）  ネットワークを介して接続された複数のノードを有し、前記複数のノードそれぞれが有する第１のストレージ装置に、仮想ディスク内のデータを分散して格納するストレージシステムにおいて、
前記複数のノードのうちの少なくとも１つのノードは、第２のストレージ装置内の、前記仮想ディスクの記憶容量に相当する記憶領域を移行先記憶領域とし、該移行先記憶領域を前記仮想ディスク内の記憶領域に対応付け、
前記複数のノードは、それぞれ自己が管理している前記仮想ディスクのデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーする、
ことを特徴とするストレージシステム。
【０２４９】
（付記９）  前記仮想ディスク内の単位記憶領域を順番に選択し、選択した該単位記憶領域のデータを管理するノードに対して、該データの前記移行先記憶領域へのコピーを指示する制御ノードをさらに有し、
前記ディスクノードは、前記制御ノードからの指示に応じて、自己が管理している前記仮想ディスクのデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーする、
ことを特徴とする付記８記載のストレージシステム。
【０２５０】
（付記１０）  ネットワークを介して接続された複数のノードそれぞれが有する第１のストレージ装置にデータが分散して格納されている仮想ディスクに属するデータを、該複数のノードの１つとして用いられるコンピュータに管理させるデータ管理方法において、
前記コンピュータが、
第２のストレージ装置内の、前記仮想ディスクの記憶容量に相当する記憶領域を移行先記憶領域とし、該移行先記憶領域を前記仮想ディスク内の記憶領域に対応付け、
前記コンピュータが管理している前記仮想ディスクのデータを、該データの前記仮想ディスク内での位置に対応する前記移行先記憶領域内の位置へコピーする、
ことを特徴とするデータ管理方法。
【符号の説明】
【０２５１】
１  仮想ディスク
２〜４，８  ストレージ装置
５〜７  ノード
５ａ  対応付け手段
５ｂ，６ａ，７ａ  コピー手段
８ａ  移行先記憶領域
【図１】
0005640480.tif 000002
【図２】
0005640480.tif 000003
【図３】
0005640480.tif 000004
【図４】
0005640480.tif 000005
【図５】
0005640480.tif 000006
【図６】
0005640480.tif 000007
【図７】
0005640480.tif 000008
【図８】
0005640480.tif 000009
【図９】
0005640480.tif 000010
【図１０】
0005640480.tif 000011
【図１１】
0005640480.tif 000012
【図１２】
0005640480.tif 000013
【図１３】
0005640480.tif 000014
【図１４】
0005640480.tif 000015
【図１５】
0005640480.tif 000016
【図１６】
0005640480.tif 000017
【図１７】
0005640480.tif 000018
【図１８】
0005640480.tif 000019
【図１９】
0005640480.tif 000020
【図２０】
0005640480.tif 000021
【図２１】
0005640480.tif 000022
【図２２】
0005640480.tif 000023
【図２３】
0005640480.tif 000024
【図２４】
0005640480.tif 000025
【図２５】
0005640480.tif 000026
【図２６】
0005640480.tif 000027
【図２７】
0005640480.tif 000028
【図２８】
0005640480.tif 000029
【図２９】
0005640480.tif 000030
【図３０】
0005640480.tif 000031
【図３１】
0005640480.tif 000032