(57)【要約】【課題】既存のディスクに格納されたデータの仮想ディスクへの移行を効率的に行うことができるようにする。【解決手段】接続対象ストレージ装置５に対応する仮想ディスクを作成し、仮想ディスクの１セグメントに対して既接続ストレージ装置６のスライスを割り当てる。次に、接続対象ストレージ装置５の１スライス分のデータを、既接続ストレージ装置６にコピーする。接続対象ストレージ装置５の残りのデータをスライス５ｃａ，５ｃｂ，・・・に分割し、仮想ディスクのセグメントに割り当てる。そして、コピー済みの管理情報領域５ｂに、残りのスライス５ｃａ，５ｃｂ，・・・分のメタデータ５ｂａ，５ｂｂ，・・・を書き込む。【選択図】図１
2010073190.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数のスライスに分割して管理されるストレージ装置への仮想ディスクを介したアクセス管理をコンピュータに実行させるための仮想ディスク管理プログラムであって、
前記コンピュータに、
既にデータが格納されている接続対象ストレージ装置を有する第１のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
前記仮想ディスクを構成する所定の１セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、
前記既接続ストレージ装置を有する第２のディスクノードに対して前記データ移転先スライスの割当結果を示す移転データ用メタデータを送信し、
前記接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、前記第１のディスクノードに対して、前記管理情報領域内のデータの前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信し、
前記接続対象ストレージ装置の前記１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の１セグメント以外のセグメントに割り当て、
前記第１のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する、
処理を実行させる仮想ディスク管理プログラム。
【請求項２】
前記コンピュータに、さらに、
前記データ移転先スライスを割り当てる際には、前記接続通知の受信前から存在する既存仮想ディスクへの前記既接続ストレージ装置のスライスの割当関係を示すメタデータを参照し、割当関係を有していないスライスを前記データ移転先スライスとする処理を実行させることを特徴とする請求項１記載の仮想ディスク管理プログラム。
【請求項３】
前記管理情報領域は、前記接続対象ストレージ装置内の先頭から１スライス分の記憶領域であることを特徴とする請求項１記載の仮想ディスク管理プログラム。
【請求項４】
ストレージ装置への他のノードからのアクセス管理をコンピュータに実行させるためのストレージ装置管理プログラムであって、
前記コンピュータに、
既にデータが格納されている接続対象ストレージ装置の接続通知を制御ノードに送信し、
前記接続対象ストレージ装置内の所定の１スライス分の記憶領域を管理情報領域とし、前記制御ノードから、既接続ストレージ装置内のデータ移転先スライスへの前記管理情報領域内のデータのコピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信し、
前記制御ノードから、前記接続対象ストレージ装置のスライスと仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込む、
処理を実行させるストレージ装置管理プログラム。
【請求項５】
前記コンピュータに、さらに、
前記管理情報領域に、前記既存データ用メタデータが前記管理情報領域内に格納されていることを示すメタデータ格納形式情報を格納する処理を実行させることを特徴とする請求項４記載のストレージ装置管理プログラム。
【請求項６】
前記コンピュータに、さらに、
前記メタデータ格納形式情報を参照して前記既存データ用メタデータが前記管理情報領域内にあることを認識し、前記管理情報領域から前記既存データ用メタデータを読み出すことを特徴とする請求項５記載のストレージ装置管理プログラム。
【請求項７】
記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを行うマルチノードストレージシステムであって、
既にデータが格納されている接続対象ストレージ装置を有する第１のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する仮想ディスク生成手段と、
前記仮想ディスクを構成する所定の１セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第２のディスクノードに対して割当結果を示す移転データ用メタデータを送信する第１のスライス割当手段と、
前記接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、前記第１のディスクノードに対して、前記管理情報領域内のデータの、前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信するコピー要求送信手段と、
前記接続対象ストレージ装置の前記１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の１セグメント以外のセグメントに割り当て、前記第１のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信する第２のスライス割当手段と、
前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信するスライス割当情報送信手段と、
を具備する制御ノードと、
前記接続対象ストレージ装置の接続通知を前記制御ノードに送信する接続通知送信手段と、
前記制御ノードから前記コピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信するデータ送信手段と、
前記制御ノードから、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す前記既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込むメタデータ書き込み手段と、
を具備する前記第１のディスクノードと、
前記制御ノードから前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更するメタデータ変更手段と、
前記第１のディスクノードから前記管理情報領域内のデータを受信すると、前記移転データ用メタデータに基づいて前記データ移転先スライスを判断し、受信したデータを前記データ移転先スライスに書き込むデータ書き込み手段と、
を有する前記第２のディスクノードと、
を有するマルチノードストレージシステム。
【請求項８】
記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを管理するための仮想ディスク管理方法であって、
第１のディスクノードが、既にデータが格納されている接続対象ストレージ装置の接続通知を前記制御ノードに送信し、
前記制御ノードが、前記接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
前記制御ノードが、前記仮想ディスクを構成する所定の１セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第２のディスクノードに対して割当結果を示す移転データ用メタデータを送信し、
前記第２のディスクノードが、前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更し、
前記制御ノードが、前記接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、前記第１のディスクノードに対して、前記管理情報領域内のデータの、前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信し、
前記第１のディスクノードが、前記コピー要求を受信すると、前記管理情報領域内のデータを前記第２のディスクノードに送信し、
前記第２のディスクノードが、前記第１のディスクノードから受信したデータを前記データ移転先スライスに書き込み、
前記制御ノードが、前記接続対象ストレージ装置の前記１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の１セグメント以外のセグメントに割り当て、前記第１のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
前記第１のディスクノードが、前記制御ノードから前記書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込み、
前記制御ノードが、前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する、
ことを特徴とする仮想ディスク管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のストレージ装置へ仮想ディスクを介したアクセスを行う仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法に関し、特に運用中にストレージ装置の追加が可能な仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法に関する。
【背景技術】
【０００２】
大規模なコンピュータネットワークではデータの信頼性を確保するため、データを複数のストレージデバイスに多重化して格納する場合がある。データを多重化させる手法の１つとして、データをネットワーク上の複数のノード（ディスクノード）それぞれに接続されたストレージデバイスに分散格納する方法がある。このように、ネットワーク上の複数のディスクノードでデータを分散管理するシステムを、マルチノードストレージシステムと呼ぶ。
【０００３】
マルチノードストレージシステムでは、アクセスを行うノード（アクセスノード）内に仮想ディスクを定義し、仮想ディスクを介してデータの入出力を行う。仮想ディスク内の記憶領域は複数のセグメントに分割され、各セグメントがストレージデバイスの複数の記憶領域を対応付けられる。アプリケーションが仮想ディスクのセグメントを指定してデータの書き込みを行うと、書き込み対象のセグメントに対応付けられた複数のストレージデバイスにデータが書き込まれる。このようにデータを多重化することで、データの信頼性を高めることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００４／１０４８４５号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、データを２重化させた場合、ストレージデバイスにおいて格納するデータ量の２倍の記憶領域が使用される。そこで、資源の無駄遣いを減らすためにも、信頼性が要求されないデータについては２重化せずに管理されることが多い。ただし、コンピュータシステムを長期間運用していると、従来、高い信頼性は不要と考えられていたデータについても、２重化によるデータの信頼性の確保が必要となる場合がある。この場合、既にストレージデバイスに格納されているデータを、２重化の対象となる仮想ディスクに移行する必要がある。
【０００６】
既にストレージデバイス（既使用ディスク）に格納されているデータを、仮想ディスクを用いた２重化の対象とするには、以下のような２つのデータの移行方法が考えられる。
まず、既使用ディスクへのアクセスを止めて良い場合には、以下のデータ移行方法が可能である。
１．仮想ディスクを作成後、既使用ディスクへのアクセスを停止する。
２．既使用ディスク内のデータを仮想ディスクにコピーする。
【０００７】
ただし、このようなデータ移行方法ではコピー中に既使用ディスクにアクセスできず、データ移行に伴うサービス停止期間が発生してしまう。コピーは既使用ディスクのアクセスを止められない場合には、以下の手順でデータの移行処理が行われる。
１．仮想ディスクを作成後、既使用ディスクのスナップショットを使用中のＯＳ（Operating System）で作成する。なお、スナップショットとは、ある時点におけるディスク全体のデータを仮想的に複製する技術である。例えば、コピー・オン・ライト方式のスナップショットでは、スナップショット作成時に、データとそのデータが格納されたディスク内のブロックとの関係が記録される。そして、ディスクへのアクセスが監視されデータが更新される、更新前のデータが別の領域（シャドーコピー領域）にコピーされる。これにより、スナップショット作成時のディスク内のデータを維持することができる。
２．使用中のＯＳ経由でスナップショットを仮想ディスクにコピーする。このとき、スナップショット作成後に更新されたデータはシャドーコピー領域から読み出され、更新されていないデータは既使用ディスクから読み出される。仮想ディスクにコピーされたデータは、実際には、その仮想ディスクを構成するセグメントに対応付けられた複数のディスク装置に書き込まれる。
３．既使用ディスクへのアクセスを停止して、既使用ディスクを仮想ディスクに同期する。すなわち、既使用ディスクのスナップショット作成以後に更新されたデータを、仮想ディスクにコピーする。これにより、既使用ディスクの内容と仮想ディスクの内容とが同一となる。
４．仮想ディスクへのアクセスを開始する。
【０００８】
しかし、上記２つのデータ移行技術には以下の課題がある。
２つのデータ移行方法共に、ディスクの容量に比例したコピー時間が必要である。そのため、大容量のディスク装置のデータ移行に長い時間がかかる。コピー時間が長ければ、既使用ディスクを接続するコンピュータはコピーの間余計な処理負荷がかかり、システム全体の処理効率の低下を招く。
【０００９】
本発明はこのような点に鑑みてなされたものであり、既存のディスクに格納されたデータの仮想ディスクへの移行を効率的に行うことができる仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、以下の処理を行う仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法が提供される。
【００１１】
第１のディスクノードは、接続対象ストレージ装置の接続通知を制御ノードに送信する。制御ノードは、接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する。さらに、制御ノードは、仮想ディスクを構成する所定の１セグメントに対して接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、既接続ストレージ装置を有する第２のディスクノードに対して割当結果を示す移転データ用メタデータを送信する。第２のディスクノードは、移転データ用メタデータを受信すると、データ移転先スライスに対応付けて既接続ストレージ装置に格納されているメタデータを、移転データ用メタデータに変更する。その後、制御ノードは、接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、第１のディスクノードに対して、管理情報領域内のデータの、既接続ストレージ装置のデータ移転先スライスへのコピー要求を送信する。第１のディスクノードは、コピー要求を受信すると、管理情報領域内のデータを第２のディスクノードに送信する。第２のディスクノードは、第１のディスクノードから受信したデータをデータ移転先スライスに書き込む。さらに、制御ノードは、接続対象ストレージ装置の所定の１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、仮想ディスクの所定の１セグメント以外のセグメントに割り当て、第１のディスクノードに対して、接続対象ストレージ装置のスライスと仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、管理情報領域への書き込み要求を送信する。第１のディスクノードは、制御ノードから書き込み要求を受信すると、既存データ用メタデータを管理情報領域に書き込む。そして、制御ノードは、仮想ディスクを介して接続対象ストレージ装置および既接続ストレージ装置へアクセスを行うアクセスノードに対して、仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する。
【発明の効果】
【００１２】
上記仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法によれば、既にデータが格納されている接続対象ストレージ装置の１スライス分の管理情報領域以外のデータのコピーを行わずに、接続対象ストレージ装置内のデータに対して仮想ディスク経由でアクセス可能となる。その結果、接続対象ストレージ装置から仮想ディスクへ効率的にデータを移行することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態の概要を示す図である。
【図２】本実施の形態のマルチノードストレージシステム構成例を示す図である。
【図３】制御ノードのハードウェア構成例を示す図である。
【図４】仮想ディスクのデータ構造を示す図である。
【図５】マルチノードストレージシステムの各装置の機能を示すブロック図である。
【図６】ストレージ装置のデータ構造例を示す図である。
【図７】メタデータ記憶部のデータ構造例を示す図である。
【図８】仮想ディスクメタデータ記憶部のデータ構造例を示す図である。
【図９】追加対象のストレージ装置のデータ構造変更例を示す図である。
【図１０】既存ストレージ装置の追加機能を示すブロック図である。
【図１１】既使用のストレージ装置組み込み処理の手順を示すシーケンス図である。
【図１２】仮想ディスク作成処理の手順を示すフローチャートである。
【図１３】新たに作成された仮想ディスクメタデータテーブルを示す図である。
【図１４】ディスクノードにおける変更後のメタデータを示す図である。
【図１５】メタデータ書き込み処理の手順を示すフローチャートである。
【図１６】組み込まれたストレージ装置に対応するメタデータテーブルを示す図である。
【図１７】既使用のストレージ装置を組み込み後のスライス割当関係を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、実施の形態の概要を示す図である。マルチノードストレージシステムは、制御ノード１、ディスクノード２，３、およびアクセスノード４を有する。制御ノード１は、マルチノードストレージシステムへの新たなストレージ装置の組み込み、仮想ディスクの作成・管理を行う。ディスクノード２とディスクノード３とは、接続されたストレージ装置の記憶領域を複数のスライスに分割して管理する。アクセスノード４は、マルチノードストレージシステムで提供されるストレージ装置に対して、仮想ディスクを介してアクセスを行う。
【００１５】
ディスクノード２には、既にデータ５ａが格納されている接続対象ストレージ装置５を有している。図１の例では、この接続対象ストレージ装置５をマルチノードストレージシステムに新たに組み込む場合を想定している。ディスクノード３には、既接続ストレージ装置６を有している。既接続ストレージ装置６は、既にマルチノードストレージシステムに組み込まれており、仮想ディスクへのスライスの割当が可能な状態となっている。
【００１６】
このようなマルチノードストレージシステムに対して、既にデータ５ａが格納されている接続対象ストレージ装置５を組み込むために、各ノードは以下の機能を有する。
制御ノード１は、仮想ディスク生成手段１ａ、第１のスライス割当手段１ｂ、コピー要求送信手段１ｃ、第２のスライス割当手段１ｄ、スライス割当情報送信手段１ｅを有する。仮想ディスク生成手段１ａは、ディスクノード２から接続対象ストレージ装置５の接続通知を受信すると、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する。第１のスライス割当手段１ｂは、仮想ディスクを構成する所定の１セグメントに対して既接続ストレージ装置６の１スライスをデータ移転先スライスとして割り当てる。さらに第１のスライス割当手段１ｂは、既接続ストレージ装置６を有するディスクノード３に対して割当結果を示す移転データ用のメタデータを送信する。コピー要求送信手段１ｃは、接続対象ストレージ装置５内の１スライス分の記憶領域を管理情報領域５ｂとする。そしてコピー要求送信手段１ｃは、ディスクノード２に対して、管理情報領域５ｂ内のデータの、既接続ストレージ装置６のデータ移転先スライスへのコピー要求を送信する。第２のスライス割当手段１ｄは、接続対象ストレージ装置５の所定の１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライス５ｃａ，５ｃｂ，・・・を、仮想ディスクの所定の１セグメント以外のセグメントに割り当てる。そして、第２のスライス割当手段１ｄは、ディスクノード２に対して、接続対象ストレージ装置５のスライス５ｃａ，５ｃｂ，・・・と仮想ディスクのセグメントとの対応関係を示す既存データ用のメタデータ５ｂａ，５ｂｂ，・・・の、管理情報領域５ｂへの書き込み要求を送信する。スライス割当情報送信手段１ｅは、仮想ディスクを介して接続対象ストレージ装置５および既接続ストレージ装置６へアクセスを行うアクセスノード４に対して、仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用のメタデータを送信する。
【００１７】
ディスクノード２は、接続通知送信手段２ａ、データ送信手段２ｂ、およびメタデータ書き込み手段２ｃを有する。接続通知送信手段２ａは、接続対象ストレージ装置５の接続通知を制御ノード１に送信する。データ送信手段２ｂは、制御ノード１からコピー要求を受信すると、管理情報領域５ｂ内のデータを既接続ストレージ装置６が接続されたディスクノード３に送信する。メタデータ書き込み手段２ｃは、制御ノード１から、接続対象ストレージ装置５のスライス５ｃａ，５ｃｂ，・・・と仮想ディスクのセグメントとの対応関係を示す既存データ用のメタデータ５ｂａ，５ｂｂ，・・・の、管理情報領域５ｂへの書き込み要求を受信すると、既存データ用のメタデータ５ｂａ，５ｂｂ，・・・を管理情報領域５ｂに書き込む。
【００１８】
ディスクノード３は、メタデータ変更手段３ａとデータ書き込み手段３ｂとを有する。メタデータ変更手段３ａは、制御ノード１から移転データ用のメタデータを受信すると、データ移転先スライスに対応付けて既接続ストレージ装置６に格納されているメタデータを、移転データ用のメタデータに変更する。データ書き込み手段３ｂは、第１のディスクノード２から管理情報領域５ｂ内のデータを受信すると、移転データ用のメタデータに基づいてデータ移転先スライスを判断し、受信したデータをデータ移転先スライスに書き込む。
【００１９】
このような構成により、以下のような処理が実行される。
まず、ディスクノード２の接続通知送信手段２ａが、接続対象ストレージ装置５の接続通知を制御ノード１に送信する。例えば、接続通知送信手段２ａは、ディスクノード２に接続対象ストレージ装置５が接続されたことを検出したときに、接続通知を送信する。すると、制御ノード１の仮想ディスク生成手段１ａが、スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する。次に制御ノード１の第１のスライス割当手段１ｂが、仮想ディスクを構成する所定の１セグメントに対して既接続ストレージ装置６の１スライスをデータ移転先スライスとして割り当てる。さらに、第１のスライス割当手段１ｂが、ディスクノード３に対して割当結果を示す移転データ用のメタデータを送信する。ディスクノード３ではメタデータ変更手段３ａが、移転データ用のメタデータを受信すると、データ移転先スライスに対応付けて既接続ストレージ装置６に格納されているメタデータを、移転データ用のメタデータに変更する。
【００２０】
その後、制御ノード１のコピー要求送信手段１ｃが、接続対象ストレージ装置５内の１スライス分の記憶領域を管理情報領域５ｂとし、第１のディスクノード２に対して、管理情報領域５ｂ内のデータの、既接続ストレージ装置６のデータ移転先スライスへのコピー要求を送信する。すると、ディスクノード２のデータ送信手段２ｂが、管理情報領域５ｂ内のデータをディスクノード３に送信する。ディスクノード３では、データ書き込み手段３ｂが、ディスクノード２から受信したデータをデータ移転先スライスに書き込む。
【００２１】
さらに、制御ノード１の第２のスライス割当手段１ｄが、接続対象ストレージ装置５の所定の１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライス５ｃａ，５ｃｂ，・・・を、仮想ディスクの所定の１セグメント以外のセグメントに割り当てる。さらに、第２のスライス割当手段１ｄが、ディスクノード２に対して、接続対象ストレージ装置５のスライス５ｃａ，５ｃｂ，・・・と仮想ディスクのセグメントとの対応関係を示す既存データ用のメタデータ５ｂａ，５ｂｂ，・・・の、管理情報領域５ｂへの書き込み要求を送信する。ディスクノード２では、メタデータ書き込み手段２ｃが、制御ノード１から書き込み要求を受信すると、既存データ用のメタデータ５ｂａ，５ｂｂ，・・・を管理情報領域５ｂに書き込む。
【００２２】
そして、制御ノード１のスライス割当情報送信手段１ｅが、仮想ディスクを介して接続対象ストレージ装置５および既接続ストレージ装置６へアクセスを行うアクセスノード４に対して、仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用のメタデータを送信する。
【００２３】
このように、接続対象ストレージ装置５の１スライス分のデータが、他のストレージ装置にコピーされ、コピー済みの領域が管理情報領域５ｂとされる。そして、管理情報領域５ｂに、残りのスライス５ｃａ，５ｃｂ，・・・分のメタデータ５ｂａ，５ｂｂ，・・・が書き込まれる。なお、管理情報領域５ｂには、接続対象ストレージ装置５がマルチノードストレージシステムに組み込まれたことを示す識別情報も格納することができる。仮想ディスクの定義と、その仮想ディスクに割り当てたスライスのメタデータの設定により、接続対象ストレージ装置５のマルチノードストレージシステムへの組み込みが完了する。組み込みが完了すれば、接続対象ストレージ装置５に格納されていたデータ５ａへの仮想ディスクを介したアクセスが可能になる。
【００２４】
なお、接続対象ストレージ装置５に格納されていたデータ５ａを２重化する場合は、リカバリプロセスが開始される。リカバリプロセスは、上記の第１のスライス割当手段１ｂおよび第２のスライス割当手段１ｄで割り当てられたスライス（プライマリスライス）から、仮想ディスクの各セグメントに重複して割り当てられたスライス（セカンダリスライス）へデータをコピーする処理である。なお、リカバリプロセス中であってもプライマリスライスへのアクセスノード４からのアクセスは可能である。
【００２５】
このように、既にデータが格納されている接続対象ストレージ装置５をディスクノード２に接続するだけでデータを仮想ディスクとしてアクセスできる。移行時間はメタデータの変更と先頭スライスのコピーの時間の合計であり、既存ディスクのサイズに依存しない。スライスが１ＧＢであれば、１分以内でデータの移行が完了する。なお、２重化が必要な場合はリカバリプロセスが開始される。リカバリを行うとマルチノードストレージシステム内で大量のデータのコピーが発生するがリカバリ中もアクセスは可能であり、サービスを停止させる必要はない。
【００２６】
しかも、接続対象ストレージ装置５の内部データのみでなく、接続対象ストレージ装置５がマルチノードストレージシステムに組み込まれる。そのため、仮想ディスクへのデータ移行後に接続対象ストレージ装置５が未使用になることがなく、資源の有効利用が図れる。
【００２７】
ところで、図１に示した接続対象ストレージ装置５や既接続ストレージ装置６は、単一のディスク装置であってもよいし、多数のディスク装置を内蔵するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）システムであってもよい。ＲＡＩＤシステムであれば、多重にデータの信頼性を高めることができる。そこで、ＲＡＩＤシステムをストレージ装置として使用し、さらにネットワークを介して接続された複数のディスクノードでデータの２重化を行う場合を例に採り、本実施の形態の詳細を説明する。
【００２８】
図２は、本実施の形態のマルチノードストレージシステム構成例を示す図である。本実施の形態では、ネットワーク１０を介して、複数のディスクノード１００，２００，３００，４００、制御ノード５００、アクセスノード３０、および管理ノード５０が接続されている。ディスクノード１００，２００，３００，４００それぞれには、ストレージ装置１１０，２１０，３１０，４１０が接続されている。
【００２９】
ストレージ装置１１０には、複数のハードディスク装置（ＨＤＤ）１１１，１１２，１１３，１１４が実装されている。ストレージ装置２１０には、複数のＨＤＤ２１１，２１２，２１３，２１４が実装されている。ストレージ装置３１０には、複数のＨＤＤ３１１，３１２，３１３，３１４が実装されている。ストレージ装置４１０には、複数のＨＤＤ４１１，４１２，４１３，４１４が実装されている。各ストレージ装置１１０，２１０，３１０，４１０は、内蔵するＨＤＤを用いたＲＡＩＤシステムである。本実施の形態では、各ストレージ装置１１０，２１０，３１０，４１０のＲＡＩＤ５のディスク管理サービスを提供する。本実施の形態では、運用中のマルチノードストレージシステムに対して、ストレージ装置４１０を新たに組み込むものとする。
【００３０】
ディスクノード１００，２００，３００，４００は、例えば、ＩＡ（Intel Architecture）と呼ばれるアーキテクチャのコンピュータである。ディスクノード１００，２００，３００，４００は、接続されたストレージ装置１１０，２１０，３１０，４１０に格納されたデータを管理し、管理しているデータをネットワーク１０経由で端末装置２１，２２，２３に提供する。また、ディスクノード１００，２００，３００，４００は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも２つのディスクノードで管理されている。
【００３１】
制御ノード５００は、ディスクノード１００，２００，３００，４００を管理する。例えば、制御ノード５００は、ディスクノード１００，２００，３００，４００から新たなストレージ装置の接続通知を受け取ると、新たな仮想ディスクを定義し、その仮想ディスクを介して接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
【００３２】
アクセスノード３０には、ネットワーク２０を介して複数の端末装置２１，２２，２３が接続されている。アクセスノード３０には、仮想ディスクが定義されている。そして、アクセスノード３０は、端末装置２１，２２，２３からの仮想ディスク上でのデータのアクセス要求に応答して、ディスクノード１００，２００，３００，４００内の対応するデータへアクセスする。
【００３３】
管理ノード５０は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード５０では、マルチノードストレージシステムにおける仮想ディスクの使用量などの情報を収集し、運用状況を画面に表示する。
【００３４】
図３は、制御ノードのハードウェア構成例を示す図である。制御ノード５００は、ＣＰＵ（Central Processing Unit）５０１によって装置全体が制御されている。ＣＰＵ５０１には、バス５０７を介してＲＡＭ（Random Access Memory）５０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）５０３、グラフィック処理装置５０４、入力インタフェース５０５、および通信インタフェース５０６が接続されている。
【００３５】
ＲＡＭ５０２は、制御ノード５００の主記憶装置として使用される。ＲＡＭ５０２には、ＣＰＵ５０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ５０２には、ＣＰＵ５０１による処理に必要な各種データが格納される。ＨＤＤ５０３は、制御ノード５００の二次記憶装置として使用される。ＨＤＤ５０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３６】
グラフィック処理装置５０４には、モニタ１１が接続されている。グラフィック処理装置５０４は、ＣＰＵ５０１からの命令に従って、画像をモニタ１１の画面に表示させる。モニタ１１としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置がある。
【００３７】
入力インタフェース５０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース５０５は、キーボード１２やマウス１３から送られてくる信号を、バス５０７を介してＣＰＵ５０１に送信する。なお、マウス１３は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
通信インタフェース５０６は、ネットワーク１０に接続されている。通信インタフェース５０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３９】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、制御ノード５００のハードウェア構成を示しているが、ディスクノード１００，２００，３００，４００、アクセスノード３０、および管理ノード５０も同様のハードウェア構成で実現することができる。
【００４０】
なお、この例ではディスクノード４００が有するストレージ装置４１０が、マルチノードストレージシステムに新たに追加されるものとする。ストレージ装置４１０の追加前は、ストレージ装置１１０，２１０，３１０を用いた仮想ディスクに対して、アクセスノード３０からのアクセスが可能となっている。
【００４１】
図４は、仮想ディスクのデータ構造を示す図である。本実施の形態では、仮想ディスク６０には仮想ディスク識別子「ＬＶＯＬ−Ｘ」が付与されている。ネットワーク経由で接続された３台のディスクノード１００，２００，３００には、個々のノードの識別のためにそれぞれ「ＳＮ−Ａ」、「ＳＮ−Ｂ」、「ＳＮ−Ｃ」というノード識別子が付与されている。そして、各ディスクノード１００，２００，３００に接続されているストレージ装置１１０，２１０，３１０は、ディスクノード１００，２００，３００のノード識別子によってネットワーク１０で一意に識別される。
【００４２】
各ディスクノード１００，２００，３００が有するストレージ装置１１０，２１０，３１０それぞれにおいてＲＡＩＤ５のストレージシステムが構成されている。各ストレージ装置１１０，２１０，３１０で提供される記憶機能は、複数のスライス１１５ａ〜１１５ｅ，２１５ａ〜２１５ｅ，３１５ａ〜３１５ｅに分割されて管理されている。
【００４３】
仮想ディスク６０は、セグメント６１〜６４という単位で構成される。セグメント６１〜６４の記憶容量は、ストレージ装置１１０，２１０における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が１ギガバイトとするとセグメントの記憶容量も１ギガバイトである。仮想ディスク６０の記憶容量はセグメント１つ当たりの記憶容量の整数倍である。セグメント６１〜６４は、それぞれプライマリスライス６１ａ，６２ａ，６３ａ，６４ａとセカンダリスライス６１ｂ，６２ｂ，６３ｂ，６４ｂとの組（スライスペア）で構成される。
【００４４】
同一セグメントに属する２つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には仮想ディスク識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。
【００４５】
図４の例では、仮想ディスク６０内のスライスの識別子を、「Ｐ」または「Ｓ」のアルファベットと数字との組合せで示している。「Ｐ」はプライマリスライスであることを示している。「Ｓ」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、１番目のセグメント６１のプライマリスライス６１ａが「Ｐ１」で示され、セカンダリスライス６１ｂが「Ｓ１」で示される。
【００４６】
図５は、マルチノードストレージシステムの各装置の機能を示すブロック図である。アクセスノード３０は、仮想ディスクアクセス制御部３１を有している。仮想ディスクアクセス制御部３１は、端末装置２１，２２，２３からの仮想ディスク６０内のデータを指定したアクセス要求に応じて、指定されたデータを管理するディスクノードに対してデータアクセスを行う。具体的には、仮想ディスクアクセス制御部３１は、アクセス対象のデータが記憶された仮想ディスク６０内のブロックを特定する。次に、仮想ディスクアクセス制御部３１は、特定したブロックに対応するセグメントを特定する。さらに、仮想ディスクアクセス制御部３１は、予め取得しているメタデータを参照し、セグメントを構成するプライマリスライスに対応するディスクノードおよびそのディスクノード内のスライスを特定する。そして、仮想ディスクアクセス制御部３１は、特定したディスクノードに対して、特定したスライスへのアクセス要求を出力する。
【００４７】
なお、アクセスノード３０の仮想ディスクアクセス制御部３１からディスクノード４００に接続されたストレージ装置４１０にアクセスできるのは、ストレージ装置４１０がマルチノードストレージシステムに組み込まれた後である。ストレージ装置４１０がマルチノードストレージシステムに組み込まれる前は、アクセスノード３０は、仮想ディスクを介さずにストレージ装置４１０に直接アクセスする。その場合、アクセスノード３０のアプリケーションが、ストレージ装置４１０のネットワーク上の位置を認識している必要がある。
【００４８】
制御ノード５００は、仮想ディスク管理部５１０と仮想ディスクメタデータ記憶部５２０とを有している。
仮想ディスク管理部５１０は、ディスクノード１００，２００，３００，４００が有するストレージ装置１１０，２１０，３１０，４１０内のスライスを管理する。例えば、仮想ディスク管理部５１０は、システム起動時に、ディスクノード１００，２００，３００，４００に対してメタデータ取得要求を送信する。そして、仮想ディスク管理部５１０は、メタデータ取得要求に対して返信されたメタデータから仮想ディスクメタデータを生成し、仮想ディスクメタデータ記憶部５２０に格納する。
【００４９】
仮想ディスクメタデータ記憶部５２０は、ディスクノード１００，２００，３００，４００から収集されたメタデータに基づいて生成された仮想ディスクメタデータを記憶する記憶装置である。例えば、制御ノード５００内のＲＡＭ５０２の記憶領域の一部が仮想ディスクメタデータ記憶部５２０として使用される。
【００５０】
ディスクノード１００は、データアクセス部１２０、データ管理部１３０、およびメタデータ記憶部１４０を有している。
データアクセス部１２０は、アクセスノード３０からの要求に応答して、ストレージ装置１１０内のデータにアクセスする。具体的には、データアクセス部１２０は、アクセスノード３０からデータのリード要求を受け取った場合、リード要求で指定されたデータをストレージ装置１１０から取得し、リード要求の送信元であるアクセスノード３０に返信する。また、データアクセス部１２０は、アクセスノード３０からデータのライト要求を受け取った場合、ライト要求に含まれるデータをストレージ装置１１０内に格納する。
【００５１】
なお、ディスクノード１００のデータ管理部１３０は、データアクセス部１２０によってライト要求に基づくデータの書き込みが行われた場合、データが書き込まれたスライス（プライマリスライス）に対応するセカンダリスライスを管理するディスクノードのデータ管理部と連携動作し、セカンダリスライス内のデータを更新する。すなわち、データ管理部１３０は、更新されたデータをセカンダリスライスを管理するディスクノードに送信する。そのデータを受け取ったディスクノードのデータ管理部は、セカンダリスライスにそのデータを書き込む。これにより、２重化されたデータの一貫性が保たれる。
【００５２】
さらに、データ管理部１３０は、仮想ディスク管理部５１０からのメタデータ取得要求に応答して、メタデータ記憶部１４０に記憶されたメタデータを仮想ディスク管理部５１０に対して送信する。
【００５３】
メタデータ記憶部１４０は、メタデータを記憶する記憶装置である。例えば、ＲＡＭ内の記憶領域の一部がメタデータ記憶部１４０として使用される。なお、メタデータ記憶部１４０に格納されるメタデータは、システム停止時にはストレージ装置１１０内に格納され、システム起動時にメタデータ記憶部１４０に読み込まれる。
【００５４】
他のディスクノード２００，３００，４００は、ディスクノード１００と同様の機能を有している。すなわち、ディスクノード２００は、データアクセス部２２０、データ管理部２３０、およびメタデータ記憶部２４０を有している。ディスクノード３００は、データアクセス部３２０、データ管理部３３０、およびメタデータ記憶部３４０を有している。ディスクノード４００は、データアクセス部４２０、データ管理部４３０、およびメタデータ記憶部４４０を有している。ディスクノード２００，３００，４００内の各要素は、ディスクノード１００内の同名の要素と同じ機能を有している。
【００５５】
次に、ストレージ装置１１０内のデータ構造を詳細に説明する。
図６は、ストレージ装置のデータ構造例を示す図である。ストレージ装置１１０には、スライス１１５ａ，１１５ｂ，１１５ｃ，・・・とは別に、デバイス情報１１６と複数のメタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・とが格納されている。
【００５６】
デバイス情報１１６は、ストレージ装置１１０の管理に使用される情報である。例えば、デバイス情報１１６には、ストレージ装置１１０がマルチノードストレージシステムに組み込まれていることを示す情報が含まれる。また、デバイス情報１１６には、メタデータ格納形式が含まれる。メタデータ格納形式は、各メタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・が対応するスライスと連続の記憶領域に格納されているのか、あるいはメタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・を一纏めにして、スライスとは個別の記憶領域に格納されているのかを示す情報である。本実施の形態では、各メタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・が対応するスライスと連続の記憶領域に格納されている場合のメタデータ格納形式を「type1」とする。また、メタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・を一纏めにして、スライスとは個別の記憶領域に格納されている場合のメタデータ格納形式を「type2」とする。
【００５７】
図６の例では、個々のスライスと連続の記憶領域に、そのスライスに対応するメタデータが格納されている。従って、ストレージ装置１１０のメタデータ格納形式は「type1」である。
【００５８】
ストレージ装置１１０に格納されたメタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・は、ディスクノード１００の起動時にデータ管理部１３０によって読み出され、メタデータ記憶部１４０に格納される。なお、データ管理部１３０は、デバイス情報１１６のメタデータ格納形式を参照し、ストレージ装置１１０のメタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・が、対応するスライスと連続の記憶領域に格納されていることを認識できる。
【００５９】
図７は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部１４０には、メタデータテーブル１４１が格納されている。メタデータテーブル１４１には、ディスクノードＩＤ、スライスＩＤ、状態、仮想ディスクＩＤ、セグメントＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの欄が設けられている。メタデータテーブル１４１内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す１つのレコードを構成している。
【００６０】
ディスクノードＩＤの欄は、ストレージ装置１１０を管理しているディスクノード１００の識別情報（ディスクノードＩＤ）が設定される。
スライスＩＤの欄には、メタデータに対応するスライスのストレージ装置１１０内での識別情報（スライスＩＤ）が設定される。
【００６１】
状態の欄には、スライスの状態を示す状態フラグが設定される。スライスが仮想ディスクのセグメントに割り当てられていない場合、状態フラグ「Ｆ」が設定される。仮想ディスクのセグメントのプライマリスライスに割り当てられている場合、状態フラグ「Ｐ」が設定される。仮想ディスクのセグメントのセカンダリスライスに割り当てられている場合、状態フラグ「Ｓ」が設定される。仮想ディスクのセグメントに割り当てることが決定したが、まだデータのコピーが行われていない場合、予約済を示す状態フラグ「Ｒ」が設定される。
【００６２】
仮想ディスクＩＤの欄には、スライスに対応するセグメントが属する仮想ディスクを識別するための識別情報（仮想ディスクＩＤ）が設定される。
仮想ディスクアドレスの欄には、スライスが割り当てられているセグメントの先頭を示す仮想ディスク内でのアドレスが設定される。
【００６３】
ペアのディスクノードＩＤの欄には、ペアのスライス（同じセグメントに属する別のスライス）を有するストレージ装置を管理するディスクノードの識別情報（ディスクノードＩＤ）が設定される。
【００６４】
ペアのスライスＩＤの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報（スライスＩＤ）が設定される。
各ディスクノード１００，２００，３００のメタデータ記憶部１４０，２４０，３４０に格納されたメタデータは、制御ノード５００からの要求に応じて制御ノード５００に送信される。制御ノード５００では、ディスクノード１００，２００，３００から収集したメタデータに基づいて、仮想ディスク６０へのスライスの割当を定義した仮想ディスクメタデータを作成する。具体的には、制御ノード５００の仮想ディスク管理部５１０が、収集したメタデータを仮想ディスクＩＤによって分類する。そして、仮想ディスク管理部５１０は、仮想ディスクＩＤが同じメタデータの集合を、その仮想ディスクＩＤで示される仮想ディスクに対応する仮想ディスクメタデータとする。作成された仮想ディスクメタデータは、仮想ディスクメタデータ記憶部５２０に格納される。
【００６５】
図８は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部５２０には、仮想ディスクメタデータテーブル５２１が格納されている。仮想ディスクメタデータテーブル５２１には、ディスクノードＩＤ、スライスＩＤ、状態、仮想ディスクＩＤ、セグメントＩＤ、仮想ディスクアドレス、ペアのディスクノードＩＤ、およびペアのスライスＩＤの欄が設けられている。仮想ディスクメタデータテーブル５２１内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す１つのレコードを構成している。仮想ディスクメタデータテーブル５２１の各欄に設定される情報は、メタデータテーブル１４１の同名の欄と同種の情報である。
【００６６】
なお、図８の例では、スライスペアを構成する各スライス（同じセグメントに割り当てられた２つのスライス）のメタデータを上下に並べているが、必ずしもそのように並べられている必要はない。
【００６７】
このようなシステムにおいて、マルチノードストレージシステムの管理対象外であったストレージ装置４１０をマルチノードストレージシステムに組み込む。例えば、管理者がストレージ装置４１０をディスクノード４００に接続すると、ディスクノード４００がストレージ装置４１０を検知し、組み込み処理を開始する。なお、管理者によるディスクノード４００への操作入力に応答して、ストレージ装置４１０の組み込み処理を開始するようにしてもよい。また、管理ノード５０への管理者の操作入力により管理ノード５０からディスクノード４００にストレージ装置４１０の組み込み指示が出され、その指示に応答して組み込み処理を開始するようにしてもよい。
【００６８】
ここで、ストレージ装置４１０のマルチノードストレージシステムへの組み込みを開始したディスクノード４００では、データ管理部４３０がストレージ装置４１０内の記憶領域をスライスに分割すると共にメタデータの記憶領域を設ける。
【００６９】
図９は、追加対象のストレージ装置のデータ構造変更例を示す図である。第１の状態（ＳＴ１）は、データ構造変更前のストレージ装置４１０の記憶領域を示している。ストレージ装置４１０は、マルチノードストレージシステムに追加される前は、データを記録可能な全領域４１６に分散してデータが格納されている。このように、マルチノードストレージシステムに組み込まれずに使用されていたストレージ装置４１０には、図６に示したデバイス情報１１６やメタデータ１１７ａ，１１７ｂ，１１７ｃ，・・・に相当する情報の格納領域が設けられていない。そこで、データ管理部４３０は、まず全領域４１６をスライス単位データ（例えば１ＧＢ）ごとに分割する。
【００７０】
第２の状態（ＳＴ２）は、領域分割後の状態を示している。図９に示すような、全領域４１６は、複数の分割領域４１６ａ，４１６ｂ，４１６ｃ，・・・に分けられている。各分割領域４１６ａ，４１６ｂ，４１６ｃ，・・・のサイズは、マルチノードストレージシステムにおけるスライスのサイズと同じである。具体的には、データ管理部４３０は、ストレージ装置４１０の全領域４１６の先頭アドレスから、スライス単位データ分のアドレスを整数回加算して得られる各アドレスを、分割領域４１６ａ，４１６ｂ，４１６ｃ，・・・の先頭アドレスとする。そして、データ管理部４３０は、取得した先頭アドレスを境界として、複数の分割領域４１６ａ，４１６ｂ，４１６ｃ，・・・に分割されているものと認識する。すなわち、データ管理部４３０は、ストレージ装置４１０の全領域４１６を論理的に分割領域４１６ａ，４１６ｂ，４１６ｃ，・・・として分割して認識すればよく、ストレージ装置４１０内のデータフォーマット等の書き換えを行う必要はない。
【００７１】
本実施の形態では、先頭の分割領域４１６ａが、メタデータやデバイス情報を格納するための管理情報領域となる。そこで、データ管理部４３０は、先頭の分割領域４１６ａを他のストレージ装置（図９の例ではストレージ装置１１０）にコピーする。そして、データ管理部４３０は、メタデータ等の作成を行う。
【００７２】
第３の状態（ＳＴ３）は、メタデータ作成後の状態を示している。メタデータは、先頭の分割領域４１６ａ内に作成される。分割領域４１６ａには、デバイス情報４１８と複数のメタデータ４１７ａ，４１７ｂ，・・・が格納されている。また、他の分割領域４１６ｂ，４１６ｃ，・・・は、それぞれ管理対象のスライス４１５ａ，４１５ｂ，・・・となる。メタデータ４１７ａ，４１７ｂ，・・・は、それぞれスライス４１５ａ，４１５ｂ，・・・に１対１で対応付けられている。
【００７３】
デバイス情報４１８には、ストレージ装置４１０におけるデータアクセス頻度などの各種統計情報に加え、メタデータ格納形式が登録されている。図９の例では、メタデータ４１７ａ，４１７ｂ，・・・が分割領域４１６ａに纏めて格納されているため、メタデータ格納形式は「type2」である。
【００７４】
図９に示したようなストレージ装置４１０のデータ構造の変更は、ディスクノード４００のデータ管理部４３０によって行われる。また、先頭の分割領域４１６ａ内のデータの他のディスクノードへのコピーや、他の分割領域４１６ｂ，４１６ｃ，・・・をスライスとして管理するためのメタデータの作成は、制御ノード５００の仮想ディスク管理部５１０の制御下で行われる。以下、マルチノードストレージシステムにおける既存ストレージ装置追加機能について詳細に説明する。
【００７５】
図１０は、既存ストレージ装置の追加機能を示すブロック図である。なお、図１０に示す各要素間の接続関係は、ディスクノード４００が有する既存ストレージ装置の先頭の分割領域のデータをディスクノード１００が管理するストレージ装置に移動する場合の情報の入出力関係を示している。
【００７６】
ディスクノード４００のデータ管理部４３０は、既使用ディスク接続通知部４３１、先頭スライス送信部４３２、先頭スライス受信部４３３、およびメタデータ管理部４３４を有している。既使用ディスク接続通知部４３１は、既にデータが格納されているストレージ装置をマルチノードストレージシステムに追加することを制御ノード５００に通知する。先頭スライス送信部４３２は、ストレージ装置４１０の記憶領域を分割したときの先頭のスライスデータを、他のディスクノードに転送する。先頭スライス受信部４３３は、他のディスクノードが管理する既存ストレージ装置がマルチノードストレージシステムに追加され、既存ストレージ装置の先頭のスライスデータの格納先として指定された場合、そのスライスデータを受信する。
【００７７】
メタデータ管理部４３４は、ストレージ装置４１０内のメタデータおよびメタデータ記憶部４４０内のメタデータを管理する。具体的には、メタデータ管理部４３４は、ストレージ装置４１０をマルチノードストレージシステムに組み込む際には、制御ノード５００から通知された各スライス４１５ａ，４１５ｂ，・・・のメタデータをストレージ装置４１０に格納する。マルチノードストレージシステムに組み込まれるストレージ装置４１０が未使用（有用なデータが格納されていない）の場合、メタデータ管理部４３４は、図６に示したようなメタデータ格納形式「type1」でメタデータを格納することもできる。しかし、本実施の形態では、ストレージ装置４１０が既使用（有用なデータが格納されてる）であるものとする。そこで、メタデータ管理部４３４は、図９に示したようなメタデータ格納形式「type2」でメタデータを格納する。
【００７８】
また、メタデータ管理部４３４は、ストレージ装置４１０に格納されたメタデータを、メタデータ記憶部４４０に転送する。例えば、ストレージ装置４１０がマルチノードストレージシステムに組み込まれた後は、ディスクノード４００起動時にストレージ装置４１０内のデバイス情報４１８を参照し、メタデータ格納形式を判断する。次に、メタデータ管理部４３４は、メタデータ格納形式に基づいてメタデータの格納領域を判断し、ストレージ装置４１０からメタデータを読み出す。そして、メタデータ管理部４３４は、読み出したメタデータを、メタデータ記憶部４４０に格納する。
【００７９】
さらに、メタデータ管理部４３４は、システム運用中にメタデータの更新指示を制御ノード５００から受け取ると、更新指示に従ってストレージ装置４１０とメタデータ記憶部４４０とのそれぞれのメタデータを更新する。なお、メタデータの更新指示は、新たなメタデータの書き込みを指示するメタデータ書き込み要求と、既存のメタデータの内容の変更を指示するメタデータ変更要求とがある。メタデータ管理部４３４は、メタデータの更新に伴って先頭スライスデータの受信が発生する場合、先頭スライス受信部４３３に対して、受信したデータの書き込み先となるスライスを通知する。
【００８０】
ディスクノード１００のデータ管理部１３０は、既使用ディスク接続通知部１３１、先頭スライス送信部１３２、先頭スライス受信部１３３、およびメタデータ管理部１３４を有している。既使用ディスク接続通知部１３１、先頭スライス送信部１３２、先頭スライス受信部１３３、およびメタデータ管理部１３４は、それぞれディスクノード４００内の同名の要素と同じ機能を有している。
【００８１】
制御ノード５００の仮想ディスク管理部５１０は、既使用ディスク追加制御部５１１を有している。既使用ディスク追加制御部５１１は、既使用のストレージ装置をマルチノードストレージシステムへの組み込み処理を制御する。具体的には、既使用ディスク追加制御部５１１は、ディスクノード４００から既使用ストレージ装置の接続通知を受け取ると、接続された既使用のストレージ装置４１０の記憶容量分の仮想ディスクを生成する。さらに、既使用ディスク追加制御部５１１は、生成した仮想ディスクに対してスライスの割当を行う。既使用のストレージ装置に応じて仮想ディスクが生成された場合、先頭のセグメントへは追加された既使用ストレージ装置とは異なるストレージ装置内のスライスが、プライマリスライスとして割り当てられる。２つ目以降のセグメントに対しては、接続対象ストレージ装置内のスライスがプライマリスライスとして割り当てられる。
【００８２】
スライスの割当が完了すると、既使用ディスク追加制御部５１１は、既使用のストレージ装置４１０に応じた仮想ディスクメタデータテーブルを生成し、仮想ディスクメタデータ記憶部５２０に格納する。そして、既使用ディスク追加制御部５１１は、仮想ディスクに割り当てられたスライスを管理するディスクノードに対して、メタデータの更新を指示する。また、既使用ディスク追加制御部５１１は、生成された仮想ディスクの先頭のセグメントに対してプライマリスライスとして割り当てられたスライスへの、データのコピー要求をディスクノード４００に対して通知する。生成された仮想ディスクの先頭のセグメントのデータのコピーが完了し、各ディスクノード１００，２００，３００，４００において少なくともプライマリスライスのメタデータが更新されれば、アクセスノード３０からの生成された仮想ディスクへのアクセスが可能となる。そこで、既使用ディスク追加制御部５１１は、アクセスノード３０に対して、生成された仮想ディスクのメタデータを送信する。これにより、アクセスノード３０が新たな仮想ディスクを認識し、以後、その仮想ディスクを介したデータアクセスが可能となる。
【００８３】
なお、図１に示した各ノード内の機能と図１０の機能との対応関係は次の通りである。制御ノード１内の各機能は、既使用ディスク追加制御部５１１が有している。ディスクノード２内の接続通知送信手段２ａの機能は、ディスクノード１００，４００の既使用ディスク接続通知部１３１，４３１が有する。ディスクノード２内のデータ送信手段２ｂの機能は、ディスクノード１００，４００の先頭スライス送信部１３２，４３２が有する。ディスクノード２のメタデータ書き込み手段２ｃおよびディスクノード３のメタデータ変更手段３ａの機能は、ディスクノード１００，４００のメタデータ管理部１３４，４３４が有する。ディスクノード３のデータ書き込み手段３ｂの機能は、ディスクノード１００，４００の先頭スライス受信部１３３，４３３が有する。
【００８４】
次に、図１０に示した構成による既使用のストレージ装置４１０のマルチノードストレージシステムへの組み込み処理について説明する。
図１１は、既使用のストレージ装置組み込み処理の手順を示すシーケンス図である。以下、図１１に示す処理をステップ番号に沿って説明する。
【００８５】
［ステップＳ１１］ディスクノード４００の既使用ディスク接続通知部４３１は、ストレージ装置４１０のマルチノードストレージシステムへの組み込みを指示する操作入力などに応答して、接続通知を制御ノード５００に送信する。この接続通知には、ディスクノード４００のディスクノードＩＤとストレージ装置４１０の記憶容量を示す情報とが含まれる。
【００８６】
［ステップＳ１２］制御ノード５００では、既使用ディスク追加制御部５１１が接続通知を受信する。既使用ディスク追加制御部５１１は、接続通知で指定されたストレージ装置４１０に応じた仮想ディスクを生成する。ここで、新たに生成された仮想ディスクの先頭のセグメントのプライマリスライスとして、ディスクノード１００が管理するストレージ装置１１０内のスライスが割り当てられたものとする。
【００８７】
［ステップＳ１３］既使用ディスク追加制御部５１１は、メタデータ変更要求をディスクノード１００に送信する。このメタデータ変更要求には、新たに作成した仮想ディスクに割り当てられたスライスに関するメタデータが含まれる。
【００８８】
［ステップＳ１４］ディスクノード１００のメタデータ管理部１３４は、メタデータ変更要求に応答してメタデータを変更する。具体的には、メタデータ管理部１３４は、作成された仮想ディスクの先頭のスライスに割り当てられたスライスのメタデータを、メタデータ変更要求で指定された内容に変更する。
【００８９】
［ステップＳ１５］メタデータ管理部１３４は、メタデータの変更が完了したことを示す変更完了応答を制御ノード５００に送信する。
［ステップＳ１６］制御ノード５００の既使用ディスク追加制御部５１１は、先頭スライスコピー要求をディスクノード４００に送信する。先頭スライスコピー要求には、コピー先のスライスを特定するためのディスクノードＩＤおよびスライスＩＤが含まれている。なお、コピー先のスライスとは、仮想ディスクの先頭のセグメントにプライマリスライスとして割り当てられたスライスである。
【００９０】
［ステップＳ１７］ディスクノード４００の先頭スライス送信部４３２は、ストレージ装置４１０の先頭の分割領域４１６ａ（図９参照）に格納されているデータを、先頭スライスコピー要求で指定されたディスクノード１００に送信する。
【００９１】
［ステップＳ１８］ディスクノード１００の先頭スライス受信部１３３は、ディスクノード４００から送られたデータを受信する。次に、先頭スライス受信部１３３は、メタデータ管理部１３４から、新たに作成された仮想ディスクの先頭のセグメントに割り当てられたスライスのスライス番号を取得する。そして、先頭スライス受信部１３３は、受信したデータを、メタデータ管理部１３４から取得したスライス番号のスライスに格納する。データの受信および書き込みが完了すると、先頭スライス受信部１３３は、ディスクノード４００に対して受信完了応答を送信する。
【００９２】
［ステップＳ１９］ディスクノード４００の先頭スライス送信部４３２は、受信完了応答を受け取ると、分割領域４１６ａ内のデータを削除する。次に、先頭スライス送信部４３２は、制御ノード５００に対してコピー完了応答を送信する。
【００９３】
［ステップＳ２０］制御ノード５００の既使用ディスク追加制御部５１１は、メタデータ書き込み要求をディスクノード４００に送信する。メタデータ書き込み要求には、新たに作成した仮想ディスクに割り当てられたスライスに関するメタデータが含まれる。
【００９４】
［ステップＳ２１］ディスクノード４００のメタデータ管理部４３４は、メタデータ書き込み要求に応答して、メタデータをストレージ装置４１０に書き込む。具体的には、メタデータ管理部４３４は、先頭の分割領域４１６ａ（図９参照）内のデータを削除した後、その分割領域４１６ａ内にメタデータ書き込み要求に示されるメタデータを書き込む。メタデータ管理部４３４は、ストレージ装置４１０へのメタデータの書き込みが完了したら、メタデータ記憶部４４０にメタデータを格納する。
【００９５】
［ステップＳ２２］メタデータ管理部４３４は、メタデータのストレージ装置４１０への書き込み、およびメタデータのメタデータ記憶部４４０への格納が完了すると、書き込み完了応答を制御ノード５００に送信する。
【００９６】
［ステップＳ２３］制御ノード５００の既使用ディスク追加制御部５１１は、メタデータ変更要求をディスクノード１００，２００，３００に送信する。このメタデータ変更要求には、セカンダリスライスとして割り当てるスライスをリザーブ状態にすることを示すメタデータが含まれる。ディスクノード１００，２００，３００は、メタデータ変更要求に応答して、メタデータを変更する。具体的には、ディスクノード１００，２００，３００は、メタデータ変更要求に含まれるメタデータを、ストレージ装置１１０，２１０，３１０に書き込むと共に、メタデータ記憶部１４０，２４０，３４０に格納する。
【００９７】
［ステップＳ２４］ディスクノード１００，２００，３００は、メタデータの変更が完了すると、制御ノード５００に対して変更完了応答を送信する。これにより、ストレージ装置１１０，２１０，３１０内のスライスが、セカンダリスライスとして利用するためのリザーブ（予約済）スライスとなる。リザーブスライスは、スライス割当における空きスライスの検索の際には、割当済のスライスとして認識される。
【００９８】
［ステップＳ２５］制御ノード５００の既使用ディスク追加制御部５１１は、アクセスノード３０に対して、新たに作成した仮想ディスクのメタデータを送信する。この際、プライマリスライスに関するメタデータのみ送信される。アクセスノード３０は、メタデータを受信することで、新たな仮想ディスクの存在、およびその仮想ディスクに割り当てられたスライスを認識できる。以後は、アクセスノード３０は、ディスクノード４００のストレージ装置４１０のアドレスを指定して行っていたアクセスを、新たに作成した仮想ディスクを介して行う。
【００９９】
［ステップＳ２６］制御ノード５００の既使用ディスク追加制御部５１１は、新たに作成した仮想ディスクの先頭のセグメントに関するスライスコピー指示を、そのセグメントのプライマリスライスを管理するディスクノード１００に対して送信する。
【０１００】
［ステップＳ２７］ディスクノード１００は、新たに作成した仮想ディスクの先頭のセグメントに割り当てられたスライスのデータを、そのセグメントのリザーブスライスにコピーする。図１１の例では、ディスクノード３００がリザーブスライスを有している。そこで、ディスクノード１００は、スライスデータをディスクノード３００に送信する。ディスクノード３００は、受信したデータをリザーブスライスに格納する。
【０１０１】
［ステップＳ２８］ディスクノード３００は、データの受信およびリザーブスライスへの格納が完了すると、完了応答をディスクノード１００に送信する。
［ステップＳ２９］ディスクノード１００は、ディスクノード３００から完了応答を受信すると、制御ノード５００に対して、コピーの完了応答を送信する。
【０１０２】
［ステップＳ３０］制御ノード５００の既使用ディスク追加制御部５１１は、ステップＳ２６と並行して、新たに作成した仮想ディスクの先頭以外のセグメントに関するスライスコピー指示を、そのセグメントのプライマリスライスを管理するディスクノード４００に対して送信する。
【０１０３】
［ステップＳ３１］ディスクノード４００は、新たに作成した仮想ディスクの先頭以外のセグメントに割り当てられたスライスのデータを、そのセグメントのリザーブスライスにコピーする。図１１の例では、ディスクノード１００，２００，３００がリザーブスライスを有している。そこで、ディスクノード４００は、スライスデータをディスクノード１００，２００，３００に送信する。ディスクノード１００，２００，３００は、受信したデータをリザーブスライスに格納する。
【０１０４】
［ステップＳ３２］ディスクノード１００，２００，３００は、データの受信およびリザーブスライスへの格納が完了すると、完了応答をディスクノード４００に送信する。
［ステップＳ３３］ディスクノード４００は、ディスクノード１００，２００，３００から完了応答を受信すると、制御ノード５００に対して、コピーの完了応答を送信する。
【０１０５】
制御ノード５００の既使用ディスク追加制御部５１１は、新たに作成した仮想ディスクのプライマリスライスを管理する各ディスクノードからコピーの完了応答を受け取ることで、リザーブスライスをセカンダリスライスとしての使用準備が整ったことを認識する。
【０１０６】
［ステップＳ３４］制御ノード５００の既使用ディスク追加制御部５１１は、メタデータ変更要求をディスクノード１００，２００，３００に送信する。このメタデータ変更要求には、セカンダリスライスの状態にすることを示すメタデータが含まれる。ディスクノード１００，２００，３００は、メタデータ変更要求に応答して、メタデータを変更する。具体的には、ディスクノード１００，２００，３００は、メタデータ変更要求に含まれるメタデータを、ストレージ装置１１０，２１０，３１０に書き込むと共に、メタデータ記憶部１４０，２４０，３４０に格納する。
【０１０７】
［ステップＳ３５］ディスクノード１００，２００，３００は、メタデータの変更が完了すると、制御ノード５００に対して変更完了応答を送信する。これにより、新たに作成した仮想ディスクのデータの２重化が完了する。
【０１０８】
このようにして、マルチノードストレージシステムにおいて、ストレージ装置４１０に格納されていたデータに対し、仮想ディスクを介したアクセスが可能となる。なお、ステップＳ２１で分割領域４１６ａ内のデータを削除してからステップＳ２５で仮想ディスクメタデータを送信するまでの間は、アクセスノード３０から分割領域４１６ａ内のデータへのアクセスはエラーとなる。ただし、ステップＳ２５のアクセスノード３０への仮想ディスクメタデータの送信は、ステップＳ２２の書き込み完了応答を待たずに行うことができる。そのため、分割領域４１６ａ内のデータへアクセスができない期間は、非常に短時間で済む。
【０１０９】
次に、仮想ディスク作成処理（ステップＳ１２）について詳細に説明する。
図１２は、仮想ディスク作成処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
【０１１０】
［ステップＳ４１］既使用ディスク追加制御部５１１は、接続通知を受信すると、仮想ディスクを生成する。すなわち、既使用ディスク追加制御部５１１は、既に生成されている仮想ディスクとは異なる仮想ディスクＩＤ「ＬＶＯＬ−Ｙ」を作成する。
【０１１１】
［ステップＳ４２］既使用ディスク追加制御部５１１は、接続通知で指定された記憶容量分のセグメントを定義し、各セグメントに対してプライマリスライスとセカンダリスライスとを割り当てる。先頭のセグメントには、既使用のストレージ装置４１０とは異なるストレージ装置のスライスが、プライマリスライスとして割り当てられる。先頭以外のセグメントに対しては、既使用のストレージ装置４１０のスライスが、プライマリスライスとして割り当てられる。
【０１１２】
［ステップＳ４３］既使用ディスク追加制御部５１１は、ステップＳ４２で割り当てたスライスに対応するメタデータを作成する。例えば、容量が１００ＧＢでスライスサイズが１ＧＢの場合、既使用ディスク追加制御部５１１は１００個のスライスのメタデータを作成する。作成されたメタデータは、仮想ディスクメタデータ記憶部５２０に格納される。
【０１１３】
図１３は、新たに作成された仮想ディスクメタデータテーブルを示す図である。なお、ディスクノード４００のディスクノードＩＤは「ＳＮ−Ｄ」である。
新たに作成された仮想ディスクメタデータテーブル５２２には、既使用のストレージ装置４１０の記憶容量分のセグメントに対した割り当てられたスライスに関するメタデータが登録されている。各メタデータの仮想ディスクＩＤは「ＬＶＯＬ−Ｙ」である。先頭のセグメント（セグメントＩＤ「１」）のプライマリスライスとしては、ストレージ装置４１０以外のストレージ装置の空きスライスが割り当てられる。図１３の例では、ディスクノードＩＤが「ＳＮ−Ａ」であるディスクノード１００が管理するストレージ装置１１０の１番目のスライス（スライスＩＤ「１」）が、先頭のセグメントのプライマリスライスである。２番目以降のセグメントのプライマリスライスは、ストレージ装置４１０の各スライスである。
【０１１４】
なお、セカンダリスライスとして割り当てられたスライスに関しては、状態「Ｒ」のメタデータが作成される。このメタデータは、プライマリスライスからセカンダリスライスへデータコピーが完了した後、状態「Ｓ」に変更される。
【０１１５】
また、仮想ディスク生成時には、ストレージ装置４１０の各スライス４１５ａ，４１５ｂ，・・・（図９参照）に対して、スライスＩＤが設定されている。スライスＩＤは、ディスクノード４００内で重複しないように生成される。各セグメントのセカンダリスライスとしては、ストレージ装置４１０以外のストレージ装置のスライスが割り当てられる。
【０１１６】
このような仮想ディスクメタデータテーブル５２２によって新たに作成された仮想ディスクへのスライスの割当が定義される。そして、セグメントＩＤ「１」のメタデータを含むメタデータ変更要求が、ディスクノードＩＤ「ＳＮ−Ａ」のディスクノード１００に送信される（図１２のステップＳ１３）。すると、ディスクノード１００では、メタデータが変更される。
【０１１７】
図１４は、ディスクノードにおける変更後のメタデータを示す図である。図７の変更前の状態と比較すると分かるように、メタデータテーブル１４１内のスライスＩＤ「１」のメタデータが変更されている（メタデータテーブル１４１の最上位のレコード）。変更されたメタデータには、新たに作成された仮想ディスク（仮想ディスクＩＤ「ＬＶＯＬ−Ｙ」）の先頭のセグメント（セグメントＩＤ「１」）のプライマリスライス（状態「Ｐ」）として、ストレージ装置１１０の先頭のスライス（スライスＩＤ「１」）が割り当てられていることが示されている。
【０１１８】
なお、図１４には、メタデータ記憶部１４０内のメタデータを示しているが、ストレージ装置１１０のメタデータも変更される。具体的には、メタデータテーブル１４１内のスライスＩＤ「１」のメタデータが、図６に示す先頭のスライス１１５ａのメタデータ１１７ａとして、ストレージ装置１１０に書き込まれる。
【０１１９】
このようにして、仮想ディスクの先頭のセグメントに割り当てられたスライスを管理するディスクノード１００においてメタデータが更新される。その後、ディスクノード４００からストレージ装置４１０の先頭の分割領域４１６ａに格納されているデータがディスクノード１００に転送され、そのデータが仮想ディスクの先頭のセグメントに割り当てられたスライスに格納される。
【０１２０】
ディスクノード４００では、分割領域４１６ａ内のデータをディスクノード１００に送信後、分割領域４１６ａにメタデータの書き込み（図１２のステップＳ２１）が行われる。
【０１２１】
図１５は、メタデータ書き込み処理の手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］ディスクノード４００のメタデータ管理部４３４は、分割領域４１６ａにデバイス情報４１８を書き込む。なおデバイス情報４１８はこのディスクの先頭にメタデータが集中していることを示すメタデータ格納形式（type2）を含む。
【０１２２】
［ステップＳ５２］メタデータ管理部４３４は、デバイス情報４１８に続いて、スライス４１５ａ，４１５ｂ，・・・それぞれに対応するメタデータ４１７ａ，４１７ｂ，・・・を、分割領域４１６ａに書き込む。また、メタデータ管理部４３４は、メタデータ４１７ａ，４１７ｂ，・・・をメタデータ記憶部４４０内のメタデータテーブルに格納する。
【０１２３】
図１６は、組み込まれたストレージ装置に対応するメタデータテーブルを示す図である。ディスクノード４００のメタデータ記憶部４４０には、ストレージ装置４１０のメタデータが登録されたメタデータテーブル４４１が格納されている。図１６に示すように、ストレージ装置４１０がマルチノードストレージシステムに組み込まれた直後は、各スライスは仮想ディスク「ＬＶＯＬ−Ｙ」のプライマリスライスとして割り当てられている。このメタデータテーブル４４１と同じ内容のメタデータが、管理情報領域である分割領域４１６ａに書き込まれる。
【０１２４】
各ディスクノードに対して、仮想ディスク「ＬＶＯＬ−Ｙ」に割り当てたスライスのメタデータが格納されると、プライマリスライスからリザーブスライスへのデータコピーが行われる。データコピーが完了すると、リザーブスライスの状態がセカンダリスライスに変更される。その後、仮想ディスク「ＬＶＯＬ−Ｙ」に対して入力されるデータは、複数のディスクノードで２重化して管理される。
【０１２５】
図１７は、既使用のストレージ装置を組み込み後のスライス割当関係を示す図である。ストレージ装置４１０を新たにマルチノードストレージシステムに組み込んだことにより、仮想ディスク７０が生成されている。仮想ディスク７０を構成するセグメント７１，７２，７３，７４，・・・は、それぞれプライマリスライス７１ａ，７２ａ，７３ａ，７４ａ，・・・とセカンダリスライス７１ｂ，７２ｂ，７３ｂ，７４ｂ，・・・とで構成される。プライマリスライス７１ａ，７２ａ，７３ａ，７４ａ，・・・とセカンダリスライス７１ｂ，７２ｂ，７３ｂ，７４ｂ，・・・とには、それぞれストレージ装置１１０，２１０，３１０，４１０内のいずれかのスライスが割り当てられる。また、新たにシステムに組み込まれたストレージ装置４１０のスライス４１５ａ，４１５ｂ，４１５ｃ，・・・は、それぞれ仮想ディスク７０のセグメント７２，７３，７４に対してプライマリスライスとして割り当てられている。
【０１２６】
なお、図１７の例では図４と同様に、仮想ディスク６０，７０内のスライスの識別子を、「Ｐ」または「Ｓ」のアルファベットと数字との組合せで示している。「Ｐ」はプライマリスライスであることを示している。「Ｓ」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。
【０１２７】
また、各ストレージ装置１１０，２１０，３１０，４１０のスライスの識別子に続く括弧内の記号は、割り当てられた仮想ディスクを示している。括弧内に「Ｘ」と示されたスライスは、仮想ディスクＩＤが「ＬＶＯＬ−Ｘ」である仮想ディスク６０に割り当てられている。括弧内に「Ｙ」と示されたスライスは、仮想ディスクＩＤが「ＬＶＯＬ−Ｙ」である仮想ディスク７０に割り当てられている。
【０１２８】
以上のようにして、既使用のストレージ装置４１０をマルチノードストレージシステムに組み込むことができる。その際、１スライス分のデータ転送とメタデータの更新処理が完了すれば、ストレージ装置４１０に格納されていたデータへのアクセスノード３０からのアクセスが可能となる。すなわち、仮想ディスク７０が作成されると、仮想ディスク７０の各セグメントに割り当てられたプライマリスライスに関するメタデータが、制御ノード５００からアクセスノード３０に通知される。アクセスノード３０では、受け取ったメタデータに基づいて仮想ディスク７０が新たに作成されたことを認識する。アクセスノード３０は、仮想ディスク７０のアドレスを指定したデータアクセスが発生すると、メタデータを参照してアクセス対象のデータが属するセグメントと、そのセグメントに割り当てられたプライマリスライスを判断する。そして、アクセスノード３０は、該当するスライスを指定したデータアクセス要求を、そのスライスを管理しているディスクノードに対して送信する。
【０１２９】
本実施の形態では、データのコピーは１スライス分のデータ量で済む。そのため、ストレージ装置４１０の記憶容量が大規模であっても、データコピーに要する時間が短くて済む。また、コピー対象のデータ量が１スライス分でよいことから、データコピーのためのディスクノードの処理負荷も少なくて済む。
【０１３０】
さらに、ストレージ装置４１０自体がマルチノードストレージシステムに組み込まれる。そのため、ストレージ装置４１０が未使用となる期間が発生せず、資源の使用効率が向上する。しかも、プライマリスライスの割当が完了すれば、仮想ディスク７０内のデータへのアクセスノード３０からのアクセスが可能となる。そのため、データの２重化（プライマリスライスからセカンダリスライスへのデータのコピー）が完了するのを待たずにデータアクセスが可能であり、サービスの停止期間が非常に短くて済む。
【０１３１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ディスクノードや制御ノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１３２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３４】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【０１３５】
（付記１）  記憶領域が複数のスライスに分割して管理されるストレージ装置への仮想ディスクを介したアクセス管理をコンピュータに実行させるための仮想ディスク管理プログラムであって、
前記コンピュータに、
既にデータが格納されている接続対象ストレージ装置を有する第１のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
前記仮想ディスクを構成する所定の１セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、
前記既接続ストレージ装置を有する第２のディスクノードに対して前記データ移転先スライスの割当結果を示す移転データ用メタデータを送信し、
前記接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、前記第１のディスクノードに対して、前記管理情報領域内のデータの前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信し、
前記接続対象ストレージ装置の前記１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の１セグメント以外のセグメントに割り当て、
前記第１のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する、
処理を実行させる仮想ディスク管理プログラム。
【０１３６】
（付記２）  前記コンピュータに、さらに、
前記データ移転先スライスを割り当てる際には、前記接続通知の受信前から存在する既存仮想ディスクへの前記既接続ストレージ装置のスライスの割当関係を示すメタデータを参照し、割当関係を有していないスライスを前記データ移転先スライスとする処理を実行させることを特徴とする付記１記載の仮想ディスク管理プログラム。
【０１３７】
（付記３）  前記管理情報領域は、前記接続対象ストレージ装置内の先頭から１スライス分の記憶領域であることを特徴とする付記１記載の仮想ディスク管理プログラム。
（付記４）  前記コンピュータに、さらに、
前記既存データ用メタデータの前記管理情報領域への書き込み要求を送信後、前記仮想ディスクの各セグメントに対して重複して割り当てたスライスを管理するディスクノードに対して、前記仮想ディスクのセグメントと重複して割り当てたスライスとの対応関係を示す２重化用メタデータを送信する処理を実行させることを特徴とする付記１記載の仮想ディスク管理プログラム。
【０１３８】
（付記５）  ストレージ装置への他のノードからのアクセス管理をコンピュータに実行させるためのストレージ装置管理プログラムであって、
前記コンピュータに、
既にデータが格納されている接続対象ストレージ装置の接続通知を制御ノードに送信し、
前記接続対象ストレージ装置内の所定の１スライス分の記憶領域を管理情報領域とし、前記制御ノードから、既接続ストレージ装置内のデータ移転先スライスへの前記管理情報領域内のデータのコピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信し、
前記制御ノードから、前記接続対象ストレージ装置のスライスと仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込む、
処理を実行させるストレージ装置管理プログラム。
【０１３９】
（付記６）  前記コンピュータに、さらに、
前記管理情報領域に、前記既存データ用メタデータが前記管理情報領域内に格納されていることを示すメタデータ格納形式情報を格納する処理を実行させることを特徴とする付記５記載のストレージ装置管理プログラム。
【０１４０】
（付記７）  前記コンピュータに、さらに、
前記メタデータ格納形式情報を参照して前記既存データ用メタデータが前記管理情報領域内にあることを認識し、前記管理情報領域から前記既存データ用メタデータを読み出すことを特徴とする付記６記載のストレージ装置管理プログラム。
【０１４１】
（付記８）  記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを行うマルチノードストレージシステムであって、
既にデータが格納されている接続対象ストレージ装置を有する第１のディスクノードから前記接続対象ストレージ装置の接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成する仮想ディスク生成手段と、
前記仮想ディスクを構成する所定の１セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第２のディスクノードに対して割当結果を示す移転データ用メタデータを送信する第１のスライス割当手段と、
前記接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、前記第１のディスクノードに対して、前記管理情報領域内のデータの、前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信するコピー要求送信手段と、
前記接続対象ストレージ装置の前記１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の１セグメント以外のセグメントに割り当て、前記第１のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信する第２のスライス割当手段と、
前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信するスライス割当情報送信手段と、
を具備する制御ノードと、
前記接続対象ストレージ装置の接続通知を前記制御ノードに送信する接続通知送信手段と、
前記制御ノードから前記コピー要求を受信すると、前記管理情報領域内のデータを前記既接続ストレージ装置が接続されたディスクノードに送信するデータ送信手段と、
前記制御ノードから、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す前記既存データ用メタデータの、前記管理情報領域への書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込むメタデータ書き込み手段と、
を具備する前記第１のディスクノードと、
前記制御ノードから前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更するメタデータ変更手段と、
前記第１のディスクノードから前記管理情報領域内のデータを受信すると、前記移転データ用メタデータに基づいて前記データ移転先スライスを判断し、受信したデータを前記データ移転先スライスに書き込むデータ書き込み手段と、
を有する前記第２のディスクノードと、
を有するマルチノードストレージシステム。
【０１４２】
（付記９）  記憶領域が複数のスライスに分割して管理される複数のストレージ装置へ仮想ディスクを介したアクセスを管理するための仮想ディスク管理方法であって、
第１のディスクノードが、既にデータが格納されている接続対象ストレージ装置の接続通知を前記制御ノードに送信し、
前記制御ノードが、前記接続通知を受信すると、前記スライスと同じ記憶容量の複数のセグメントで構成された仮想ディスクを生成し、
前記制御ノードが、前記仮想ディスクを構成する所定の１セグメントに対して前記接続対象ストレージ装置以外の既接続ストレージ装置の１スライスをデータ移転先スライスとして割り当て、前記既接続ストレージ装置を有する第２のディスクノードに対して割当結果を示す移転データ用メタデータを送信し、
前記第２のディスクノードが、前記移転データ用メタデータを受信すると、前記データ移転先スライスに対応付けて前記既接続ストレージ装置に格納されているメタデータを、前記移転データ用メタデータに変更し、
前記制御ノードが、前記接続対象ストレージ装置内の１スライス分の記憶領域を管理情報領域とし、前記第１のディスクノードに対して、前記管理情報領域内のデータの、前記既接続ストレージ装置の前記データ移転先スライスへのコピー要求を送信し、
前記第１のディスクノードが、前記コピー要求を受信すると、前記管理情報領域内のデータを前記第２のディスクノードに送信し、
前記第２のディスクノードが、前記第１のディスクノードから受信したデータを前記データ移転先スライスに書き込み、
前記制御ノードが、前記接続対象ストレージ装置の前記１スライス分の記憶領域以外の記憶領域を分割して得られる複数のスライスを、前記仮想ディスクの前記所定の１セグメント以外のセグメントに割り当て、前記第１のディスクノードに対して、前記接続対象ストレージ装置のスライスと前記仮想ディスクのセグメントとの対応関係を示す既存データ用メタデータの、前記管理情報領域への書き込み要求を送信し、
前記第１のディスクノードが、前記制御ノードから前記書き込み要求を受信すると、前記既存データ用メタデータを前記管理情報領域に書き込み、
前記制御ノードが、前記仮想ディスクを介して前記接続対象ストレージ装置および前記既接続ストレージ装置へアクセスを行うアクセスノードに対して、前記仮想ディスクの各セグメントに対するスライスの割り当て関係を示すアクセス用メタデータを送信する、
ことを特徴とする仮想ディスク管理方法。
【符号の説明】
【０１４３】
１  制御ノード
１ａ  仮想ディスク生成手段
１ｂ  第１のスライス割当手段
１ｃ  コピー要求送信手段
１ｄ  第２のスライス割当手段
１ｅ  スライス割当情報送信手段
２，３  ディスクノード
２ａ  接続通知送信手段
２ｂ  データ送信手段
２ｃ  メタデータ書き込み手段
３ａ  メタデータ変更手段
３ｂ  データ書き込み手段
４  アクセスノード
５  接続対象ストレージ装置
５ａ  データ
５ｂ  管理情報領域
５ｂａ，５ｂｂ，・・・  メタデータ
５ｃａ，５ｃｂ，・・・  スライス
６  既接続ストレージ装置
【図１】
2010073190.tif 000003
【図２】
2010073190.tif 000004
【図３】
2010073190.tif 000005
【図４】
2010073190.tif 000006
【図５】
2010073190.tif 000007
【図６】
2010073190.tif 000008
【図７】
2010073190.tif 000009
【図８】
2010073190.tif 000010
【図９】
2010073190.tif 000011
【図１０】
2010073190.tif 000012
【図１１】
2010073190.tif 000013
【図１２】
2010073190.tif 000014
【図１３】
2010073190.tif 000015
【図１４】
2010073190.tif 000016
【図１５】
2010073190.tif 000017
【図１６】
2010073190.tif 000018
【図１７】
2010073190.tif 000019