(57)【要約】【課題】論理ボリュームの複製処理時間を短縮する。【解決手段】論理ボリュームの複製時、制御ノード１０では、論理ボリューム生成手段１０ｂが、仮想スライス領域２１ｂでセグメントに割り当てられていない仮想スライスを検出し、複製論理ボリュームのセグメントに割り当てる。そして、この仮想スライス、仮想スライスが割り当てられた複製論理ボリュームのセグメント及び複製元の論理ボリュームのセグメントの識別情報を関連付けた管理情報を生成する。管理情報は、この仮想スライスを管理するストレージノード２０に対して送信される。【選択図】図１
2010176189.tif 000002
【特許請求の範囲】
【請求項１】
論理ボリュームを複数のストレージ装置に分散配置する処理のための割当制御プログラムにおいて、
コンピュータを、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段、
として機能させることを特徴とする割当制御プログラム。
【請求項２】
前記再割当手段は、前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を管理する前記ストレージ管理装置に対し、前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域を通知して複写要求を行い、前記複製元論理ボリューム分割領域に対応する前記実記憶領域から前記複製論理ボリューム分割領域に対応する前記実記憶領域へのデータ複写処理を実行させる、
ことを特徴とする請求項１記載の割当制御プログラム。
【請求項３】
前記コンピュータを、さらに、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域のデータ読み出し要求に応じて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域に格納されるデータを読み出し、読み出したデータをデータ読み出し要求元に転送する前記ストレージ管理装置から、前記複製元論理ボリューム分割領域に関する前記管理情報の照会要求を受けたときは、前記記憶手段に格納される前記管理情報を検索して、照会要求を受けた前記複製元論理ボリュームの識別情報に関連付けて前記管理情報に設定される前記複製元論理ボリューム分割領域に割り当てられた複製元実記憶領域の識別情報を抽出し、前記複製元実記憶領域の識別情報を前記ストレージ管理装置に送信する管理情報照会手段、
として機能させることを特徴とする請求項１または２記載の割当制御プログラム。
【請求項４】
論理ボリュームを複数のストレージ装置に分散配置して管理する割当制御装置において、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段と、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段と、
を有することを特徴とする割当制御装置。
【請求項５】
論理ボリュームを複数のストレージ装置に分散配置する割当制御方法において、
割当制御装置が、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する手順と、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する手順と、
を行うことを特徴とする割当制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理ボリュームを複数のストレージ装置に分散配置する割当制御プログラム、その割当制御装置及び割当制御方法に関する。
【背景技術】
【０００２】
従来、複数のストレージ装置をネットワーク上に分散配置して協働させることによって、システムの性能及び信頼性を向上させる分散型のマルチノードストレージシステムがある。マルチノードストレージシステムでは、クライアントからの要求に応じた仮想的な論理ボリュームが生成される。この論理ボリュームは、所定の分割領域に分割されて複数のストレージ装置の物理記憶領域に割り当てられる。このとき、論理ボリュームの分割領域と、この分割領域に割り当てられた物理記憶領域とを関連付けた管理情報が生成され、データとともにストレージ装置に記憶される。この管理情報に基づいて、物理記憶領域へのアクセス処理などが行われる。
【０００３】
このようなマルチストレージシステムでは、運用上の都合などにより、運用中の論理ボリュームを複製して複製論理ボリュームを作成する場合がある。従来の複製論理ボリュームの作成処理では、まず、複製論理ボリュームに対応して、ストレージ装置の物理記憶領域が割り当てられる。そして、複製元の論理ボリュームのデータが、複製論理ボリュームに割り当てられたストレージ装置の物理記憶領域にコピーされていた。
【０００４】
このコピー処理の際に、割り当てを行った複製論理ボリュームと複製元の論理ボリュームにリンクを設定し、リンクに基づいてデータをコピーすることが提案されている（例えば、特許文献１参照）。このリンクは、複製終了後に切り離される。
【０００５】
また、ディスクと磁気テープで構成される論理ディスクの複製に関し、テープ上の物理的なデータコピーは行わず、管理情報のみをコピーして別の論理ボリュームを作成する方法も提案されている（例えば、特許文献２）。この方法では、複写元と複写先の仮想論理ボリュームとで、物理記憶領域が共有される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１２２４６３号公報
【特許文献２】特開２００７−３２３５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、複製論理ボリュームの物理記憶領域を割り当て、複製元の論理ボリュームのデータをすべてコピーする複製処理には、コピーに多大な時間がかかるという問題点があった。また、複製論理ボリュームのデータが更新されていない領域では、複製元の論理ボリュームと複製先の論理ボリュームとで同じデータが設定されることになり、冗長でもある。
【０００８】
一方、従来の論理ボリュームの複製時に管理情報のみをコピーする方法は、複数のコンピュータが協働して物理記憶領域を管理するマルチノードシステムに適用することは難しい。マルチノードストレージシステムでは、上記のように、各ストレージ装置に分散配置される物理記憶領域と、論理ボリュームの分割領域とを対応付けた管理情報に基づいてアクセス処理を行っている。すなわち、管理情報に基づいて、アクセス要求のあった論理ボリュームのアドレスに対応する物理記憶領域を特定し、アクセス処理を行う。このため、アクセス要求先が複製論理ボリュームの場合、割り当てられた物理記憶領域に複製データが格納されていなければならず、上記の複製論理ボリュームへのコピー処理を予め行っておく必要がある。
【０００９】
複製元の論理ボリュームと、複製論理ボリュームとで物理記憶領域を共有する場合には、複製元の論理ボリュームに割り当てられた物理記憶領域が、複製論理ボリュームの管理情報に設定されていなければならない。しかし、この割当は、制御装置によって適宜更新されるものであり、これに応じて管理情報も変化する。ストレージ装置に格納される管理情報を最新の状態に保つためには煩雑な処理が必要となるため、複製論理ボリュームと、複製元の論理ボリュームとで物理記憶領域を共有することは容易ではない。
【００１０】
このような点に鑑み、論理ボリュームの複製時の複製論理ボリューム作成時間を短縮し、かつ物理記憶領域の利用効率を高める割当制御プログラム、割当制御装置及び割当制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、論理ボリュームを複数のストレージ装置に分散配置する処理のための割当制御プログラムが提供される。この割当制御プログラムは、コンピュータを、論理ボリューム生成手段及び再割当手段として機能させる。
【００１２】
論理ボリューム生成手段は、論理ボリュームを分割した論理ボリューム分割領域を実記憶領域に割り当てる。実記憶領域は、ストレージ装置群の物理記憶領域にデータ記憶領域を備えた記憶領域である。そして、割り当てられた実記憶領域と論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納する。また、論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を仮想記憶領域に割り当てる。仮想記憶領域は、ストレージ装置群の物理記憶領域にデータ記憶領域を持たない記憶領域である。割り当てた仮想記憶領域、複製論理ボリューム分割領域及び複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて管理情報に設定する。そして、この管理情報を、割り当てた仮想記憶領域を管理するストレージ管理装置に送信する。再割当手段は、仮想記憶領域が割り当てられている複製論理ボリューム分割領域へのデータ書き込み要求があったとき、記憶手段に格納される管理情報に基づいて論理ボリューム分割領域または複製論理ボリューム分割領域に未割当の実記憶領域を検出する。そして、検出された実記憶領域を書き込み要求のあった複製論理ボリューム分割領域に再割当して管理情報を更新する。さらに、管理情報に基づいて複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域に割り当てられた実記憶領域を特定する。そして、特定された実記憶領域に格納されるデータを複製論理ボリューム分割領域に割り当てられた実記憶領域に複写する。
【００１３】
このような割当制御プログラムがコンピュータによって実行されると、論理ボリュームの複製時、複製論理ボリュームを分割した複製論理ボリューム分割領域が、物理記憶領域にデータ記憶領域を持たない仮想記憶領域に割り当てられる。そして、この仮想記憶領域と複製論理ボリューム分割領域、及び複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域を関連付けた管理情報が生成され、記憶手段に格納される。仮想記憶領域が割り当てられた複製論理ボリューム分割領域にデータ書き込み要求があったときは、管理情報に基づいてこの複製論理ボリューム分割領域を実記憶領域に再割当する。そして、管理情報に基づいて複製元論理ボリューム分割領域のデータが格納される実記憶領域を特定し、そこに格納されるデータを再割当された実記憶領域に複写する。
【００１４】
また、上記課題を解決するために、上記の割当制御プログラムを実行するコンピュータと同様の機能を実現する割当制御装置及び割当制御方法が提供される。
【発明の効果】
【００１５】
開示の割当制御プログラム、割当制御装置及び割当制御方法によれば、論理ボリュームの複製は、複製論理ボリューム分割領域に、データ記憶領域を持たない仮想記憶領域を割り当てて終了する。データの複写を伴わずに複製論理ボリュームが生成されるので、論理ボリュームの複製処理時間を短縮することが可能となる。
【００１６】
また、仮想記憶領域が割り当てられた複製論理ボリューム分割領域に書き込み要求があったときは、この複製論理ボリューム分割領域にデータ記憶領域を備えた実記憶領域が再割当される。そして、複製元のデータがこの実記憶領域に複写される。このように、必要なときに実記憶領域が再割当されるので、ストレージ装置の物理記憶領域の利用効率を高めることができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態に適用される論理ボリュームの複製処理の概要を示した図である。
【図２】実施の形態のマルチノードストレージシステムの構成例を示す図である。
【図３】ディスクノードのハードウェア構成例を示す図である。
【図４】マルチノードストレージシステムにおいて複製論理ディスク作成処理を行う各部のソフトウェア構成を示した図である。
【図５】論理ディスクに対するディスクノードのスライス割当状態を示した図である。
【図６】図５の状態を示したメタデータの一例を示した図である。
【図７】複製論理ディスクの生成処理を示したシーケンス図である。
【図８】複製論理ディスクが生成された後のディスクノードのスライス割当状態の一例を示した図である。
【図９】図８の状態を示したメタデータの一例を示した図である。
【図１０】複製論理ディスクのリード処理を示したシーケンス図である。
【図１１】図１０の各処理でアクセスされるデータ領域を示した図である。
【図１２】複製元スライス情報の一例を示した図である。
【図１３】複製元スライス情報を用いたリード処理を示したシーケンス図である。
【図１４】複製元のスライスに関するメタデータが更新されていた場合のリード要求処理の手順を示した図である。
【図１５】複製論理ディスクのライト処理を示したシーケンス図である。
【図１６】再割当終了後の複製論理ディスクのライト処理を示したシーケンス図である。
【図１７】図１５，１６の各処理でアクセスされるデータ領域を示した図である。
【図１８】再割当処理の前と後のメタデータを示した図である。
【図１９】再割当後にアクセスノードに送信されるメタデータの一例を示した図である。
【図２０】制御ノードの複製論理ディスクの作成処理の手順を示したフローチャートである。
【図２１】複製論理ディスク生成処理の手順を示したフローチャートである。
【図２２】制御ノードの再割当処理の手順を示したフローチャートである。
【図２３】ディスクノードのリード処理の手順を示したフローチャートである。
【図２４】ディスクノードのライト関連処理の手順を示したフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される論理ボリュームの複製処理の概要について説明し、その後、具体的な内容を説明する。
図１は、実施の形態に適用される論理ボリュームの複製処理の概要を示した図である。
【００１９】
この論理ボリュームの複製処理は、論理ボリュームの分割領域を物理記憶領域へ配置する制御を行う制御ノード１０と、物理記憶領域を備えたストレージ装置２１と、ストレージ装置２１を管理するストレージノード２０と、を有するマルチノードストレージシステムにおいて実現される。なお、図のストレージノード２０とストレージ装置２１は、複数存在するストレージノードとストレージ装置の代表であるとする。
【００２０】
まず、論理ボリュームについて説明する。論理ボリューム（複製論理ボリュームも含む）は、クライアントからの要求に応じて生成される仮想的な記憶領域である。論理ボリュームは、所定の記憶容量の分割領域に分割して管理される。以下、この分割領域をセグメントと呼ぶ。
【００２１】
次に、ストレージ装置２１について説明する。ストレージ装置２１は、論理ボリュームのデータを格納する物理記憶領域を有する。この物理記憶領域は、所定の分割領域に分割して管理される。以下、この分割領域をスライスと呼ぶ。また、スライスには、セグメントのデータを格納するデータ記憶領域を備えた実記憶領域（以下、実スライスとする）と、データ記憶領域を持たない仮想記憶領域（以下、仮想スライスとする）と、がある。図１では、実スライス領域２１ａと、仮想スライス領域２１ｂの２種類のスライス領域に分割して管理する。実スライス領域２１ａは、スライスを管理するための管理情報と、割り当てられたセグメントのデータを格納する領域が確保された実スライス群で構成される。図では、Ｓ１〜Ｓｊ（ｊは任意の整数）によって表されるｊ個の実スライス領域が、ストレージ装置２１の物理記憶領域に用意されている。これに対し、仮想スライス領域２１ｂは、スライスを管理するための管理情報のみを格納する領域が確保された仮想スライス群で構成される。図では、Ｓｊ＋１〜Ｓｋ（ｋは任意の整数）によって表されるｋ個の領域が、ストレージ装置２１の物理記憶領域に用意されている。
【００２２】
制御ノード１０について説明する。制御ノード１０は、論理ボリュームをセグメント単位に分割し、ストレージ装置２１の実スライス領域２１ａまたは仮想スライス領域２１ｂのいずれかのスライスに割り当てる割当制御を行う割当制御装置として機能する。この制御ノード１０は、管理情報記憶手段１０ａ、論理ボリューム生成手段１０ｂ、管理情報照会手段１０ｃ及び再割当手段１０ｄを有する。
【００２３】
管理情報記憶手段１０ａには、論理ボリュームを所定の記憶容量で分割したセグメントと、そのセグメントに割り当てられたストレージ装置２１のスライスとを対応付ける管理情報が格納される。セグメントには、実スライスまたは仮想スライスのいずれか１つが割り当てられる。管理情報には、スライスごとに、スライス種別、対応するセグメントの識別情報及び複製元のセグメント情報などが設定される。スライス種別には、このスライスが実スライスであるか仮想スライスであるか、また、複製スライスであるか否かを示すスライスに関する情報が登録される。対応するセグメントの識別情報には、このスライスが割り当てられたセグメントの識別情報（例えば、論理ボリューム内のセグメント領域を示すアドレス）が設定される。さらに、複製スライスであるときは、その複製スライスに対応する複製元のセグメント情報が設定される。複製元のセグメント情報には、このスライスが複製スライスであるとき、その複製元のセグメントの識別情報が設定される。
【００２４】
論理ボリューム生成手段１０ｂは、図示しない管理装置から論理ボリュームの生成要求を受け取ると、論理ボリュームを分割した各セグメントにスライスを割り当てる処理を行う。ここでは、論理ボリュームの複製が要求された場合について説明する。複製論理ボリュームの生成要求を取得すると、管理情報記憶手段１０ａから管理情報を読み出し、セグメントが未割当の仮想スライスを検索する。そして、複製論理ボリュームを分割したセグメントに検出された仮想スライスを割り当てる。続いて、この仮想スライスに対応する複製論理ボリュームのセグメントの識別情報、このセグメントに対応する複製元のセグメント情報などが管理情報に設定される。管理情報は、管理情報記憶手段１０ａに格納されるとともに、この仮想スライスを管理するストレージノード（例えば、ストレージノード２０）に送信される。管理情報を受け取ったストレージノード２０は、管理情報を対応する仮想スライスに格納する。
【００２５】
管理情報照会手段１０ｃは、ストレージノード２０のリード転送手段２０ｃより、複製元の論理ボリュームのアドレス情報とともに管理情報の照会依頼を受け取り、処理を開始する。そして、管理情報記憶手段１０ａに格納される対象の複製元の論理ボリュームに関する管理情報を検索する。そして、この複製元の論理ボリュームのセグメントのデータを格納する実スライス情報を抽出し、リード転送手段２０ｃに返す。
【００２６】
再割当手段１０ｄは、仮想スライスに割り当てられた複製論理ボリュームのセグメントを実スライスへ再割当する。アクセス装置から仮想スライスに対してデータの書き込み要求があると、ストレージノード２０は、未割当エラーの応答をアクセス装置に返す。未割当エラーを受けたアクセス装置は、制御ノード１０に対し、対象の複製論理ボリュームのセグメントに対するスライスの再割当要求を行う。この再割当要求に応じて、再割当手段１０ｄが処理を開始する。再割当手段１０ｄでは、管理情報記憶手段１０ａに格納される管理情報に基づいて、セグメントが未割当の実スライスを検索する。こうして検出された実スライスに、再割当要求のあったセグメントが割り当てられる。例えば、ストレージ装置２１の実スライス領域２１ａの実スライスが割り当てられたとする。このとき、割り当てられた実スライスには、複製元のセグメントのデータは格納されていないので、管理情報に基づいて、複製元のセグメントのデータが格納される実スライスを特定する。管理情報記憶手段１０ａには、制御ノード１０が管理するすべてのスライスに関する管理情報が格納されているので、複製元のセグメントの識別情報に基づいて、このデータを格納する実スライスを特定することができる。こうして特定された実スライスを管理するストレージノードに対し、複製元と複製先とを指示し、データの複製依頼を行う。依頼を受けたストレージノードは、複製元の実スライスのデータを読み出し、ストレージノード２０が管理する複製先の実スライスにコピーする。複製元の実スライスを管理するのがストレージノード２０以外であれば、そのストレージノードがストレージノード２０に書き込み依頼を行う。これにより、スライスの割当要求があった複製論理ボリュームのセグメントへのデータ書き込みが可能となる。
【００２７】
ストレージノード２０は、ストレージ装置２１を管理するストレージ管理装置として機能する。このストレージノード２０は、管理情報更新手段２０ａ、リード要求処理手段２０ｂ、リード転送手段２０ｃ、ライト要求処理手段２０ｄ及びデータ複写手段２０ｅを有する。
【００２８】
管理情報更新手段２０ａは、論理ボリューム生成手段１０ｂが更新した管理情報を取得し、ストレージ装置２１の該当するスライスの管理情報を更新する。
リード要求処理手段２０ｂは、図示しないアクセス装置からデータのリード要求を受けると、指定されたスライスに対応する管理情報を読み出し、このスライスが実スライスであるか、仮想スライスであるかを判定する。実スライスであるときは、要求されたデータを読み出し、アクセス装置に読み出したデータを返す。仮想スライスであるときは、管理情報から複製元のセグメント情報を抽出し、リード転送手段２０ｃへ処理を引き継ぐ。
【００２９】
リード転送手段２０ｃは、リード要求処理手段２０ｂから受け取った複製元のセグメント情報に基づいて、制御ノード１０の管理情報照会手段１０ｃに対し、複製元のセグメントに対応する複製元スライスの情報を要求する。そして、得られた複製元スライスの情報に基づき、この複製元スライスを管理するストレージノードに対し、該当するデータのリード要求を行う。要求されたストレージノードは、リード要求処理手段が該当する実スライスからデータを読み出し、要求元のストレージノード２０に応答を返す。ストレージノード２０のリード転送手段２０ｃは、得られたデータをアクセス装置に転送する。なお、管理情報照会手段１０ｃから得られた複製元スライスの情報は、複製元セグメントと対応付けて記憶手段に記憶しておく。以降、同じ複製元セグメントに対するリード要求を受け付けた場合には、この情報に基づいて複製元スライスを管理するストレージノードへデータリード要求を行う。制御ノード１０によって割当が変更になり、複製元スライスが変わったためエラーとなったときは、再度管理情報照会手段１０ｃから最新の情報を取得する。そして、最初に複製元スライスの情報を取得したときと同様の処理を行う。
【００３０】
ライト要求処理手段２０ｄは、図示しないアクセス装置からデータのライト要求を受けると、指定されたスライスに対応する管理情報を読み出し、このスライスが実スライスであるか、仮想スライスであるかを判定する。実スライスであるときは、要求されたデータを該当領域に書き込む。仮想スライスであるときは、未割当エラーをアクセス装置に返す。なお、データ複製処理によって、他のストレージノードから複製データのライト要求を受け付けた場合は、要求されたデータを該当領域に書き込む。
【００３１】
データ複写手段２０ｅは、制御ノード１０の再割当手段１０ｄからのデータ複製依頼を受けると、指定された複製元のスライスのデータを、複製先の実スライスへコピーする処理を行う。複製先の実スライスが他のストレージノードであるときは、読み出したデータを複製先の実スライスを管理するストレージノードに送信し、書き込み依頼を行う。これにより、スライスの割当要求があった複製論理ボリュームのセグメントへのデータ書き込みが可能となる。
【００３２】
このようなマルチノードストレージシステムにおける複製論理ディスクの生成処理について説明する。
例えば、図示しない管理ノードを介して、論理ボリュームの複製依頼が制御ノード１０に入力される。制御ノード１０では、論理ボリューム生成手段１０ｂが、複製論理ボリュームの生成要求を受け、管理情報記憶手段１０ａに格納される管理情報を検索し、セグメントが未割当の仮想スライスを抽出する。そして、複製論理ボリュームを分割したセグメントごとに、抽出された仮想スライスを割り当てる。このとき、セグメントが割り当てられた仮想スライスに関連付けて、複製論理ボリュームのセグメントの識別情報、対応する論理ボリュームのセグメントの識別情報を含む管理情報が生成され、管理情報記憶手段１０ａに格納される。また、生成された管理情報は、セグメントが割り当てられた仮想スライスを管理するストレージノードにそれぞれ送信される。このように、セグメントに仮想スライスを割り当て、管理情報を更新することによって、要求に応じた複製論理ボリュームがマルチノードストレージシステムに構築される。この時点では、複製元の論理ボリュームのデータを複製先論理ボリュームへコピーする処理は行われない。この結果、複製論理ボリュームの作成に要する時間を短縮することが可能となる。
【００３３】
こうして生成された複製論理ボリュームに、データのリード・ライト要求があったときの動作について説明する。リード・ライト要求は、アクセス装置から複製論理ボリュームの要求アドレスに対応する仮想スライスを管理するストレージノード２０に対して発行される。
【００３４】
リード要求は、ストレージノード２０のリード要求処理手段２０ｂに入力される。リード要求処理手段２０ｂは、読み出しが指定されたアドレスが実スライス領域２１ａにあるときは、該当するアドレスから読み出し、アクセス装置に読み出したデータを返す。読み出しが指定されたアドレスが仮想スライス領域２１ｂにあるときは、該当するデータはストレージ装置２１にはないので、リード転送手段２０ｃにデータの転送依頼を行う。リード転送手段２０ｃは、該当仮想スライスの管理情報を読み出し、複製元のセグメントの識別情報が記述される複製元の論理ボリューム情報を抽出する。そして、抽出した複製元の論理ボリューム情報とともに、管理情報照会依頼を制御ノード１０へ送信する。制御ノード１０の管理情報照会手段１０ｃは、受信した複製元の論理ボリューム情報に基づいて管理情報記憶手段１０ａの管理情報を検索し、対応する複製元の実スライスを特定し、この複製元スライス情報を応答としてストレージノード２０に通知する。リード転送手段２０ｃは、特定された複製元のスライスを管理するストレージノードに対してリード要求を行い、得られたデータを応答としてアクセス装置に転送する。なお、管理情報照会手段１０ｃより得られた複製元スライス情報は、対応する複製元の論理ボリュームのセグメントの識別情報に関連付けて記憶手段に記憶しておく。そして、再度同じセグメントにリード要求があったときは、記憶手段に記憶された情報を用いて複製元のスライスを特定し、リード転送処理を行う。このように、リード要求に対しては、複製元のスライスから読み出したデータが転送される。すなわち、複製論理ボリュームの更新されていない（データライトが行われていない）セグメントのデータ領域は、複製元と共有されるため、冗長な構成とならない。
【００３５】
次に、ライト要求は、ストレージノード２０のライト要求処理手段２０ｄに入力される。ライト要求処理手段２０ｄは、データ書き込みが指定されたアドレスが実スライス領域２１ａにあるときは、該当するアドレスにデータを書き込み、アクセス装置に応答を返す。データ書き込みが指定されたアドレスが仮想スライス領域２１ｂにあるときは、該当するデータはストレージ装置２１にはないので、スライス未割当のエラー応答をアクセス装置に返す。未割当のエラーを受信したアクセス装置は、制御ノード１０に対してスライスの再割当要求を行う。
【００３６】
再割当要求を取得した制御ノード１０は、再割当手段１０ｄが、エラーとなった複製論理ボリュームのセグメントに対するスライス再割当処理を行う。まず、管理情報記憶手段１０ａに格納される管理情報から、セグメントが未割当の実スライスを検出する。検出された実スライスに再割当要求のあった複製論理ボリュームのセグメントを割り当て、管理情報を更新する。管理情報は、新たに割り当てられた実スライスを管理するストレージノードに対して送信される。続いて、再割当手段１０ｄは、複製元のセグメントのデータを格納する実スライスを特定する。そして、特定された複製元の実スライスを管理するストレージノードに対し、再割当された複製先の実スライスを指定してデータのコピー要求を行う。ストレージノード２０がデータのコピー要求を受けた場合には、データ複写手段２０ｅが該当する複製元の実スライスのデータを、指定された複製先の実スライスへ送信し、このスライスへのデータ書き込みを依頼する。データの書き込み処理は、相手のデータ複写手段またはライト要求処理手段が行う。こうして、更新対象のセグメントが実スライスに再割当され、データがコピーされた後、元の仮想スライスの割当を解除する。以降、複製論理ボリュームの同じセグメントにデータ書き込み要求があったときは、再割当された実スライスに格納されるデータが更新される。このように、更新要求があったセグメントのみ、新たに実スライスが割り当てられ、データ書き込みが行われる。これにより、必要なときに実スライスが再割当されるので、実記憶領域の利用効率を高めることができる。
【００３７】
以下、発明の実施の形態をストレージ装置がディスク装置で構成されるマルチノードストレージシステムの場合で説明する。図２は、実施の形態のマルチノードストレージシステムの構成例を示す図である。
【００３８】
マルチノードストレージシステムは、ネットワーク６００を介して、制御ノード１００、複数のディスクノード２００，３００，４００と、アクセスノード５００及び管理ノード７００が接続されている。
【００３９】
制御ノード１００は、仮想的な論理ディスクを分割したセグメントを、物理記憶領域を備えたディスク２０７，３０７，４０７に割り当てる割当制御を行う。論理ディスクの複製指示が入力されたときは、複製論理ディスクを新たに作成し、複製論理ディスクのセグメントを、ディスクノード２００，３００，４００が管理する仮想スライスに割り当てる。また、必要に応じて、ディスク２０７，３０７，４０７の各スライスに割り当てたセグメントの再配置を行う。例えば、アクセスノード５００によるディスクノード２０７，３０７，４０７へのアクセス要求が失敗したとき、アクセスノード５００からの再割当要求に応じてセグメントの再配置を行う。
【００４０】
ディスクノード２００にはディスク２０７、ディスクノード３００にはディスク３０７、ディスクノード４００にはディスク４０７が、それぞれ接続されている。ディスク２０７には、物理記憶領域を構成する複数のハードディスク装置（ＨＤＤ）が実装されている。ディスク３０７，４０７の構成も同様である。ディスク２０７，３０７，４０７の物理記憶領域は、スライス単位に分割され、それぞれディスクノード２００，３００，４００によって管理されている。スライスには、セグメントのデータと、スライスに関する管理情報（以下、メタデータとする）を記憶する領域を備えた実スライスと、メタデータを記憶する領域のみの仮想スライスとがある。ディスクノード２００，３００，４００は、例えば、ＩＡ（Intel Architecture）と呼ばれるアーキテクチャのコンピュータである。そして、接続されたディスク２０７，３０７，４０７に格納されるメタデータに基づき、セグメントデータをアクセスノード５００経由で端末装置８０１，８０２，８０３に提供する。
【００４１】
アクセスノード５００には、ネットワーク８００を介して複数の端末装置８０１，８０２，８０３が接続されている。アクセスノード５００は、ディスクノード２００，３００，４００のそれぞれが管理しているデータの格納場所を認識しており、端末装置８０１，８０２，８０３からの要求に応答して、ディスクノード２００，３００，４００へデータアクセスを行う。リード要求時、アクセス先のディスクノード２００，３００，４００からのデータ読み出しが失敗したときは、制御ノード１００から最新のアクセス先情報（メタデータ）を取得し、再度データ読み出しを行う。ライト要求時、アクセス先のディスクノード２００，３００，４００から未割当エラーを受けたときは、制御ノード１００に対象セグメントのスライス再割当要求を行う。そして、新たに割り当てられたアクセス先にデータ書き込みを行う。
【００４２】
管理ノード７００は、マルチノードストレージシステム全体を管理する。また、ユーザの指示に従って、論理ディスクの複製要求などの指示を制御ノード１００に通知する。
次に、各ノードのハードウェア構成を、ディスクノード２００を例に説明する。
【００４３】
図３は、ディスクノードのハードウェア構成例を示す図である。
ディスクノード２００は、ＣＰＵ（Central Processing Unit）２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０６を介してＲＡＭ（Random Access Memory）２０２、ＨＤＤ２０３、通信インタフェース２０４及びＨＤＤインタフェース２０５が接続されている。
【００４４】
ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。ＨＤＤ２０３には、ＯＳやアプリケーションのプログラムが格納される。通信インタフェース２０４は、ネットワーク６００に接続されている。通信インタフェース２０４は、ネットワーク６００を介して、他のディスクノード３００，４００、アクセスノード５００、制御ノード１００及び管理ノード７００など、マルチノードストレージシステムを構成する他のコンピュータとの間でデータの送受信を行う。ＨＤＤインタフェース２０５は、ディスク２０７を構成するＨＤＤへのアクセス処理を行う。
【００４５】
なお、図３には、ディスクノードのハードウェア構成を示したが、制御ノード及びアクセスノードのハードウェア構成も同様である。
次に、上記のマルチノードストレージシステムにおいて複製論理ディスク作成処理を行う各部について説明する。以下の各部の動作説明は、複製元の論理ディスクは、アクセスノード５００のキャッシュデータが同期済みで更新が禁止されているとして、行う。
【００４６】
図４は、マルチノードストレージシステムにおいて複製論理ディスク作成処理を行う各部のソフトウェア構成を示した図である。図２と同じものには同じ番号を付し、説明は省略する。図４ではディスクノード４００を省略しているが、そのソフトウェア構成は、ディスクノード２００，３００と同様である。
【００４７】
ディスクノード２００，３００は、スイッチ（ＳＷ）６０１を介して、制御ノード１００及びアクセスノード５００との間でデータ交換を行う。図の点線の矢印は、各装置間で交換されるデータを示している。ただし、ディスクノード３００と、制御ノード１００及びアクセスノード５００との間のデータ交換は、ディスクノード２００と同様であるので省略している。
【００４８】
制御ノード１００は、メタデータ記憶部１１０、論理ディスク生成部１２０、メタデータ照会部１３０及び再割当部１４０を有する。メタデータ記憶部１１０は、管理情報記憶手段１０ａとして機能し、スライスの種別や割り当てられたセグメントに関する情報などスライスの管理情報が記述されたメタデータを格納する。論理ディスク生成部１２０は、論理ボリューム生成手段１０ｂとして機能し、論理ディスク及び複製論理ディスクを生成する。メタデータ照会部１３０は、管理情報照会手段１０ｃとして機能し、ディスノード２００，３００，４００及びアクセスノード５００からの要求に応じてメタデータを照会する。再割当部１４０は、再割当手段１０ｄとして機能し、要求されたセグメントのスライス再割当を行う。
【００４９】
ディスクノード２００，３００は、メタデータ更新部２１０，３１０、リード・ライト処理部２２０，３２０、リード転送部２３０，３３０、データコピー部２４０，３４０を有する。メタデータ更新部２１０，３１０は、管理情報更新手段２０ａとして機能し、制御ノード１００からの指示で管理下のディスク２０７，３０７のスライスに関するメタデータを更新する。リード・ライト処理部２２０，３２０は、リード要求処理手段２０ｂ及びライト要求処理手段２０ｄとして機能し、ディスク２０７，３０７へのリード・ライト要求を処理する。リード転送部２３０，３３０は、リード転送手段２０ｃとして機能し、仮想スライスに対応する複製元スライスのデータを読み出し、アクセスノード５００へ転送する。データコピー部２４０，３４０は、データ複写手段２０ｅとして機能し、複製元スライスのデータを複製先スライスへコピーする。
【００５０】
アクセスノード５００は、リード・ライト要求部５１０を有す。リード・ライト要求部５１０は、図示しないメタデータ記憶部に格納されるメタデータに基づいて、アクセス要求を処理する。端末装置８０１，８０２，８０３などからアクセス要求のあった論理ディスクに割り当てられたスライスを管理するディスクノード２００，３００，４００へアクセス要求を行う。複製論理ディスクへのリード要求は、複製論理ディスクに割り当てられたスライスを管理するディスクノード２００，３００，４００に送信し、応答として得られたリードデータをリード要求元に送信する。複製論理ディスクへのライト要求は、複製論理ディスクに割り当てられたスライスを管理するディスクノード２００，３００，４００に送信する。ディスクノード２００，３００，４００から未割当エラーの応答を取得したときは、制御ノード１００へスライスの再割当を要求する。
【００５１】
このような構成のマルチノードストレージシステムのデータの流れを説明する。
複製論理ディスクの作成が指示されると、論理ディスク生成部１２０が複製論理ディスクのセグメントにディスクノード２００，３００の未割当の仮想スライスを割り当て、メタデータを更新する。この更新メタデータは、少なくとも管理下のスライスのメタデータが更新されたディスクノード２００，３００のメタデータ更新部２１０，３１０に送信される。メタデータ更新部２１０，３１０は、取得した更新メタデータを対象のスライスのメタデータ記憶領域に書き込む。こうして、関連するメタデータが更新されて、複製論理ディスクの生成が終了する。
【００５２】
生成された複製論理ディスクへのアクセス処理について説明する。上述のように、複製論理ディスクへのアクセス要求は、アクセスノード５００がメタデータに基づき、複製論理ディスクに割り当てられた仮想スライスを管理するディスクノード２００，３００，４００へ送信する。
【００５３】
リード要求を受けたアクセスノード５００のリード・ライト要求部５１０は、メタデータに基づいて要求先のスライスを特定し、これを管理するディスクノード２００，３００にリード要求を行う。ディスクノード２００，３００のリード・ライト処理部２２０は、リード要求を受けるが、リード要求先の仮想スライスにはデータがないので、処理をリード転送部２３０，３３０に引き継ぐ。リード転送部２３０，３３０は、制御ノード１００のメタデータ照会部１３０から、複製元のスライスの情報を取得する。例えば、ディスクノード２００のリード転送部２３０が、メタデータ照会部１３０からディスクノード３００に複製元スライスがあるという情報を取得したとする。リード転送部２３０は、ディスクノード３００のリード・ライト処理部３２０に複製元スライスのリード要求を行う。そして、得られたデータをアクセスノード５００に転送する。
【００５４】
ライト要求を受けたアクセスノード５００のリード・ライト要求部５１０は、メタデータに基づいて要求先のスライスを特定し、これを管理するディスクノード２００，３００にライト要求を行う。ディスクノード２００，３００のリード・ライト処理部２２０は、ライト要求を受けるが、ライト要求先の仮想スライスにはデータがないので、未割当エラーを返す。未割当エラーを取得したリード・ライト要求部５１０は、制御ノード１００に対し、対象セグメントへの実スライスの再割当を依頼する。制御ノード１００では、再割当部１４０が、仮想スライスに割り当てられているセグメントを実スライスに再割当し、メタデータを更新する。さらに、ライト要求先のセグメントに対応する複製元のセグメントに割り当てられている実スライスを管理するディスクノード２００，３００に、複製元のセグメントデータのコピーを依頼する。例えば、ライト要求された複製論理ボリュームのセグメントに、ディスクノード３００の実スライスに再割当したときは、この実スライスとセグメントとを関連付けたメタデータをディスクノード３００に送信する。これを取得したメタデータ更新部３１０は、メタデータを更新する。また、複製元のディスクノード（例えば、ディスクノード２００）に、複製元のスライスのデータコピーを依頼する。データコピー部２４０は、複製元のスライスのデータを読み出し、複製先のディスクノード３００に送信する。これを取得したディスクノード３００のデータコピー部３４０は、再割当されたスライスに受信したデータを書き込み、コピーを終了する。こうして再割当が終了し、以降は、リード・ライト処理部３２０によるライト処理が可能となる。こうして、複製論理ディスクのセグメントが実スライスに割り当てられた以降は、この実スライスに対し、そのままリード・ライト処理が行われる。
【００５５】
以下、具体例を挙げて動作を詳細に説明する。
まず、論理ディスクとディスクノード２００，３００，４００が管理するスライスとの関係について説明する。図５は、論理ディスクに対するディスクノードのスライス割当状態を示した図である。
【００５６】
論理ディスク（ＩＤ＝ＬＶＯＬ１）１０７０は、複製元の論理ディスクであり、８個のセグメントから構成される。それぞれのセグメントの先頭アドレスを、Ａ１，Ａ２，Ａ３，Ａ４，Ａ５，Ａ６，Ａ７，Ａ８とし、各セグメントを論理ディスクＩＤと、先頭アドレスとによって識別する。例えば、論理ディスク１０７０の最もアドレスの若いセグメントは、ＬＶＯＬ１−Ａ１となる。
【００５７】
ディスクノード２００は、ディスクノードＩＤが「ＤＰ１」であり、スライスＳ１〜１００と、スライスＳ１０１〜ｎの２種類のスライスを管理する。スライスＳ１〜１００は、メタデータを格納するメタデータ領域２０７０ａと、セグメントのデータを格納するデータ領域２０７０ｂとを有する実スライスである。スライスＳ１０１〜ｎは、メタデータを格納するメタデータ領域２０７０ｃのみでデータ領域のない仮想スライスである。ディスクノード３００は、ディスクノードＩＤが「ＤＰ２」であり、構成はディスク２００と同様である。ディスクノード４００は、ディスクノードＩＤが「ＤＰ３」であり、構成はディスク２００と同様である。
【００５８】
ここで、図５のスライス割当（ＤＰ１）２０００は、ディスクノード（ＤＰ１）２００の各スライスに論理ディスク（ＬＶＯＬ１）１０７０のセグメントが割り当てられた状態を示している。同様に、スライス割当（ＤＰ２）３０００はディスクノード（ＤＰ２）３００、スライス割当（ＤＰ３）４０００はディスクノード（ＤＰ３）４００の各スライスへのセグメントの割当状態を示している。
【００５９】
例えば、セグメントＬＶＯＬ１−Ａ１は、ディスクノード（ＤＰ１）２００のスライスＳ１に割り当てられている。同様に、セグメントＬＶＯＬ１−Ａ２はディスクノード（ＤＰ２）３００のスライスＳ１、セグメントＬＶＯＬ１−Ａ３はディスクノード（ＤＰ３）４００のスライスＳ１、セグメントＬＶＯＬ１−Ａ４はディスクノード（ＤＰ１）２００のスライスＳ２、セグメントＬＶＯＬ１−Ａ５はディスクノード（ＤＰ２）３００のスライスＳ２、セグメントＬＶＯＬ１−Ａ６はディスクノード（ＤＰ３）４００のスライスＳ２、セグメントＬＶＯＬ１−Ａ７はディスクノード（ＤＰ１）２００のスライスＳ３、セグメントＬＶＯＬ１−Ａ８はディスクノード（ＤＰ２）３００のスライスＳ３、に割り当てられている。なお、各ディスクノードの仮想スライスＳ１０１〜ｎには、セグメントは割り当てられていない。
【００６０】
次に、メタデータについて説明する。図６は、図５の状態を示したメタデータの一例を示した図である。
メタデータ５０００には、スライスアクセス情報のディスクノードＩＤ５０１０及びスライスＩＤ５０２０と、データ領域フラグ５０３０と、論理ディスク割当フラグ５０４０と、複製スライスフラグ５０５０と、論理ディスク情報の論理ディスクＩＤ５０６０及び先頭アドレス５０７０と、複製元論理ディスク情報の論理ディスクＩＤ５０８０及び先頭アドレス５０９０と、が設定される。
【００６１】
スライスアクセス情報には、スライスを識別する識別情報が設定される。スライスは、このスライスを管理するディスクノードのディスクノードＩＤ５０１０と、スライスＩＤ５０２０によって識別される。例えば、ディスクノードＩＤが「ＤＰ１」、スライスＩＤが「１」であれば、図５のディスクノード（ＤＰ１）のスライスＳ１を表す。
【００６２】
データ領域フラグ５０３０には、スライスアクセス情報に設定されるスライスが、データ領域を有しているか否かが設定される。実スライスでデータ領域を有している場合には「ＴＲＵＥ」、仮想スライスでデータ領域を有していない場合には「ＦＡＬＳＥ」が設定される。ここでは、スライスのＩＤが１〜１００であれば、実スライス（データ領域有）で「ＴＲＵＥ」が設定される。また、スライスのＩＤが１０１〜ｎであれば、仮想スライス（データ領域無）で「ＦＡＬＳＥ」が設定される。
【００６３】
論理ディスク割当フラグ５０４０には、スライスアクセス情報に設定されるスライスに、論理ディスクが割り当てられているか否かが設定される。論理ディスクが割り当てられているときは「ＴＲＵＥ」、割り当てられていないときは「ＦＡＬＳＥ」が設定される。なお、ここでの論理ディスクには、複製論理ディスクも含まれる。
【００６４】
複製スライスフラグ５０５０には、スライスアクセス情報に設定されるスライスが、複製元が存在する複製スライスであるか否かが設定される。複製スライスであるときは「ＴＲＵＥ」、複製スライスでないときは「ＦＡＬＳＥ」、セグメントが割り当てられておらず未定のときは「ＮＵＬＬ」が設定される。なお、複製元が存在するとは、このスライスには割り当てられたセグメントのデータが格納されていないことを表す。したがって、実スライスであるスライスＩＤが１〜１００のスライスは、データ領域を持ち、セグメントのデータが格納されることから、常に「ＦＡＬＳＥ」になる。割り当てられたセグメントが複製論理ディスクのセグメントであっても、同様である。一方、仮想スライスであるスライスＩＤが１０１〜ｎのスライスは、セグメントが割り当てられていないときは「ＮＵＬＬ」、割り当てられたときは「ＴＲＵＥ」になる。また、複製スライスフラグが「ＴＲＵＥ」のときには、対応する複製元論理ディスクの情報が、複製元論理ディスク情報（論理ディスクＩＤ５０８０と先頭アドレス５０９０）に登録される。
【００６５】
論理ディスク情報には、スライスアクセス情報に設定されるスライスに割り当てられたセグメントの論理ディスク情報（論理ディスクＩＤ５０６０、先頭アドレス５０７０）が設定される。論理ディスク割当フラグ５０４０が「ＴＲＵＥ」のとき、該当する論理ディスク（複製論理ディスクも含む）の論理ディスクＩＤと先頭アドレスが登録される。
【００６６】
複製元論理ディスク情報には、スライスアクセス情報に設定されるスライスが複製スライスのとき、対応する複製元の論理ディスクのセグメントを識別する複製元論理ディスク情報（論理ディスクＩＤ５０８０、先頭アドレス５０９０）が設定される。複製スライスフラグ５０５０が「ＴＲＵＥ」のとき、スライスに割り当てられた複製論理ディスクのセグメントに対応する複製元の論理ディスクのセグメントの識別情報が登録される。
【００６７】
例えば、１行目のディスクノードＩＤが「ＤＰ１」、スライスＩＤが「１」のスライスは、データ領域フラグが「ＴＲＵＥ」、論理ディスクが「ＴＲＵＥ」、複製スライスフラグが「ＦＡＬＳＥ」である。すなわち、スライスＤＰ１−１は、実スライスであり、論理ディスクのセグメントＬＶＯＬ１−Ａ１が割り当てられていることを示している。同様に、スライスＤＰ１−２は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ４が割り当てられていることを示している。スライスＤＰ１−３は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ７が割り当てられていることを示している。スライスＤＰ２−１は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ２が割り当てられていることを示している。スライスＤＰ２−２は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ５が割り当てられていることを示している。スライスＤＰ２−３は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ８が割り当てられていることを示している。スライスＤＰ３−１は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ３が割り当てられていることを示している。そして、スライスＤＰ３−２は実スライスで、論理ディスクのセグメントＬＶＯＬ１−Ａ６が割り当てられていることを示している。他のスライスは、すべて未割当である。
【００６８】
以下、上記の構成のマルチノードストレージシステムにおける複製論理ディスク生成の処理手順について、詳細に説明する。
まず、クライアントからの複製要求に応じて、複製論理ディスクが生成される。図７は、複製論理ディスクの生成処理を示したシーケンス図である。
【００６９】
クライアントからの要求を受け、管理ノード７００が制御ノード１００に対し、論理ディスクの複製要求を発行する［Ｐ０１］。論理ディスクの複製要求を取得した制御ノード１００は、複製論理ディスク生成処理を行う［Ｐ０２］。以下、論理ディスクのセグメントを論理セグメント、複製論理ディスクのセグメントを複製論理セグメントとする。
【００７０】
複製論理ディスク生成処理では、メタデータを解析し、セグメントが未割当の仮想スライス（スライスＩＤが１０１〜ｎ）を検出する。そして検出された仮想スライスを、複製論理セグメントに割り当て、メタデータを更新する。更新されたメタデータは、関連するディスクノード２００，３００，４００に対し、メタデータの変更指示とともに配布される［Ｐ０３］。
【００７１】
メタデータと、メタデータ変更指示を受けた各ディスクノードは、自身が保有するメタデータを指示されたメタデータに更新する。ディスクノード（ＤＰ１）２００は、メタデータ変更処理で自身のスライスに格納されるメタデータを更新し［Ｐ０４ａ］、正常応答を返す［Ｐ０５］。ディスクノード（ＤＰ２）３００は、メタデータ変更処理で自身のスライスに格納されるメタデータを更新し［Ｐ０４ｂ］、正常応答を返す［Ｐ０５］。そして、ディスクノード（ＤＰ３）４００も、メタデータ変更処理で自身のスライスに格納されるメタデータを更新し［Ｐ０４ｃ］、正常応答を返す［Ｐ０５］。
【００７２】
制御ノード１００は、メタデータ変更を指示した各ディスクノードからの正常終了応答を受信し［Ｐ０６］、すべてのディスクノードから正常応答が得られたときは、管理ノード７００に完了応答を返す［Ｐ０７］。
【００７３】
以上の処理手順が実行され、複製論理ディスクが生成される。複製論理ディスク生成後のディスクノードの状態を説明する。図８は、複製論理ディスクが生成された後のディスクノードのスライス割当状態の一例を示した図である。
【００７４】
論理ディスク（ＬＶＯＬ１）１０７０の複製である複製論理ディスク（ＬＶＯＬ２）１０７１は、論理ディスク（ＬＶＯＬ１）１０７０と同様のセグメント構成をとる。
スライス割当（ＤＰ１）２００１、スライス割当（ＤＰ２）３００１及びスライス割当（ＤＰ３）４００１は、複製論理ディスクが生成された後のディスクノード（ＤＰ１）２００、ディスクノード（ＤＰ２）３００及びディスクノード（ＤＰ３）４００それぞれのスライス状態を示している。図では、図５に示した前の状態から変更された部分が斜線で示されている。
【００７５】
図に示したように、複製論理ディスク（ＬＶＯＬ２）１０７１のセグメントは、各ディスクノードの仮想スライスに割り当てられる。例えば、複製論理セグメントＬＶＯＬ２−Ａ１は、ディスクノード（ＤＰ１）２００のスライスＤＰ１−１０１に割り当てられている。同様に、複製論理セグメントＬＶＯＬ２−Ａ２はスライスＤＰ１−１０２、複製論理セグメントＬＶＯＬ２−Ａ３はスライスＤＰ１−１０３、複製論理セグメントＬＶＯＬ２−Ａ４はスライスＤＰ２−１０１、セグメントＬＶＯＬ２−Ａ５はスライスＤＰ２−１０２、複製論理セグメントＬＶＯＬ２−Ａ６はスライスＤＰ２−１０３、複製論理セグメントＬＶＯＬ２−Ａ７はスライスＤＰ３−１０１、複製論理セグメントＬＶＯＬ２−Ａ８はスライスＤＰ３−１０２、に割り当てられている。なお、論理ディスク（ＬＶＯＬ１）１０７０のスライス割当の変更はない。
【００７６】
次に、このときのメタデータについて説明する。図９は、図８の状態を示したメタデータの一例を示した図である。
図９のメタデータ５００１は、図６に示したメタデータ５０００が、複製論理ディスク生成処理（Ｐ０２）によって更新された状態を示している。各項目は、メタデータ５０００と同様である。
【００７７】
更新された仮想スライスのメタデータについて説明する。
ディスクノード（ＤＰ１）２００の仮想スライス（スライスＩＤ＝１０１）のメタデータ５００１ａは、論理ディスク割当フラグが「ＴＲＵＥ」、複製スライスフラグが「ＴＲＵＥ」、論理ディスク情報の論理ディスクＩＤが「ＬＶＯＬ２」で先頭アドレスが「Ａ１」、複製元論理ディスク情報の論理ディスクＩＤが「ＬＶＯＬ１」で先頭アドレスが「Ａ１」に更新されている。これは、仮想スライスＤＰ１−１０１に、複製論理セグメントＬＶＯＬ２−Ａ１が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ１であることを示している。次の仮想スライスＤＰ１−１０２には、複製論理セグメントＬＶＯＬ２−Ａ２が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ２であることを示している。次の仮想スライスＤＰ１−１０３には、複製論理セグメントＬＶＯＬ２−Ａ３が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ３であることを示している。
【００７８】
このディスクノード（ＤＰ１）２００について新たに更新されたメタデータは、メタデータ変更指示［Ｐ０３］でディスクノード（ＤＰ１）２００に送信される。このように、制御ノード１００から各ディスクノードへのメタデータ変更指示は、更新された部分のみ抽出して行われる。ディスクノード（ＤＰ１）２００は、受信したメタデータを該当するスライス領域に書き込む。ここでは、ディスクノード（ＤＰ１）２００の仮想スライス（ＩＤ＝１０１，１０２，１０３）のメタデータ格納領域が更新される。
【００７９】
ディスクノード（ＤＰ２）３００の仮想スライス（スライスＩＤ＝１０１）のメタデータ５００１ｂは、論理ディスク割当フラグが「ＴＲＵＥ」、複製スライスフラグが「ＴＲＵＥ」、論理ディスク情報の論理ディスクＩＤが「ＬＶＯＬ２」で先頭アドレスが「Ａ４」、複製元論理ディスク情報の論理ディスクＩＤが「ＬＶＯＬ１」で先頭アドレスが「Ａ４」に更新されている。これは、仮想スライスＤＰ２−１０１に、複製論理セグメントＬＶＯＬ２−Ａ４が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ４であることを示している。次の仮想スライスＤＰ２−１０２には、複製論理セグメントＬＶＯＬ２−Ａ５が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ５であることを示している。次の仮想スライスＤＰ２−１０３には、複製論理セグメントＬＶＯＬ２−Ａ６が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ６であることを示している。
【００８０】
さらに、ディスクノード（ＤＰ３）４００の仮想スライス（スライスＩＤ＝１０１）のメタデータ５００１ｃは、論理ディスク割当フラグが「ＴＲＵＥ」、複製スライスフラグが「ＴＲＵＥ」、論理ディスク情報の論理ディスクＩＤが「ＬＶＯＬ２」で先頭アドレスが「Ａ７」、複製元論理ディスク情報の論理ディスクＩＤが「ＬＶＯＬ１」で先頭アドレスが「Ａ７」に更新されている。これは、仮想スライスＤＰ３−１０１に、複製論理セグメントＬＶＯＬ２−Ａ７が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ７であることを示している。次の仮想スライスＤＰ３−１０２には、複製論理セグメントＬＶＯＬ２−Ａ８が割り当てられ、その複製元が論理セグメントＬＶＯＬ１−Ａ８であることを示している。
【００８１】
次に、この状態でデータのリード要求があったときの処理手順について説明する。ここでは、データの読み出し先として、複製論理ディスク（ＬＶＯＬ２）のセグメント（ＬＶＯＬ２−Ａ２）が指定されたとする。
【００８２】
図１０は、複製論理ディスクのリード処理を示したシーケンス図である。
アクセスノード５００から複製論理セグメントＬＶＯＬ２−Ａ２からデータを読み出すリード要求が、ディスクノード２００に送信される［Ｐ１１］。アクセスノード５００は、メタデータを持っており、図９に示したメタデータ５００１の論理ディスク情報を検索し、該当する複製論理セグメントＬＶＯＬ２−Ａ２を検出する。そして、検出された複製論理セグメントＬＶＯＬ２−Ａ２に対応するスライスアクセス情報に基づいて、読み出し先のディスクノードとスライスＩＤを特定する。ここでは、ディスクノード（ＤＰ１）２００の仮想スライスＤＰ１−１０２が特定される。こうして、ディスクノード（ＤＰ１）２００に対し、リード要求（ＬＶＯＬ２−Ａ２）が送信される。
【００８３】
リード要求（ＬＶＯＬ２−Ａ２）を受けたディスクノード（ＤＰ１）２００は、対応するスライスＤＰ１−１０２のメタデータをチェックし、このスライスが実スライスであるか仮想スライスであるかを判別する［Ｐ１２］。スライスＤＰ１−１０２のメタデータのデータ領域フラグを読み出し、実スライス（ＴＲＵＥ）か、仮想スライス（ＦＡＬＳＥ）かを判定する。ここでは、仮想スライス（ＦＡＬＳＥ）となるので、メタデータから対応する複製元論理ディスク情報を読み出し、メタデータ照会を行う［Ｐ１３］。図の例では、複製元ディスク情報として、論理セグメントＬＶＯＬ１−Ａ２が抽出され、メタデータ照会依頼とともに制御ノード１００に送信される。制御ノード１００は、メタデータ照会部１３０がメタデータ照会処理を行い、論理セグメントＬＶＯＬ１−Ａ２に対応するメタデータを抽出する［Ｐ１４］。メタデータ照会処理では、図９に示したメタデータ５００１の論理ディスク情報を検索し、該当するセグメントＬＶＯＬ１−Ａ２を照会する。そして、論理セグメントＬＶＯＬ１−Ａ２に関するメタデータを抽出し、これをディスクノード（ＤＰ１）２００に返す［Ｐ１５］。なお、送信されるメタデータは、全項目が含まれる必要がなく、少なくともセグメントのデータを格納するスライスを特定するスライスアクセス情報が含まれていればよい。この場合、スライスアクセス情報から抽出されるディスクノード（ＤＰ２）３００のスライスＤＰ２−１が送信される。
【００８４】
メタデータを受信したディスクノード（ＤＰ１）２００は、メタデータから複製元セグメントのデータが格納されるディスクノード（ＤＰ２）３００のスライスＤＰ２−１を特定することができる。そこで、リード転送部２３０がリード転送処理を開始し［Ｐ１６］、メタデータに基づいて論理セグメントＬＶＯＬ１−Ａ２のデータを格納するディスクノード（ＤＰ２）３００に対し、スライスＤＰ２−１のリード要求を行う［Ｐ１７］。リード要求を受信したディスクノード（ＤＰ２）３００は、該当するスライスＤＰ２−１のデータ領域からデータを読み出し、ディスクノード２００に送信する［Ｐ１８］。これにより、データがディスクノード（ＤＰ１）２００に送られる［Ｐ１９］。
【００８５】
ディスクノード（ＤＰ２）２００は、要求された複製論理ディスクＬＶＯＬ２の複製論理セグメントＬＶＯＬ２−Ａ２の複製元となる論理セグメントＬＶＯＬ１−Ａ２のデータを取得し、このデータをアクセスノード５００に転送する［Ｐ２０］。こうして、複製元のデータがアクセスノード５００に送られ［Ｐ２１］、リード処理が終了する。
【００８６】
上記の処理手順によれば、複製論理ディスクへのリード要求に対しては、リード要求先に対応する複製元の論理ディスクのデータが格納されるスライスが検出され、このスライスから読み出されたデータがリードデータとして転送される。このように、複製論理ディスクの更新されていないデータは複製元と共有されるため、構成が冗長とならない。
【００８７】
なお、制御ノード１００へのメタデータ照会［Ｐ１３］は、対象のスライスについて１回行っておけば、複製元スライスが変更されない限り、再度行う必要はない。そこで、制御ノード１００へのメタデータ照会［Ｐ１３］によって取得したメタデータ、または複製元のスライスアクセス情報を複製元スライス情報として記憶手段に蓄積しておき、利用するとしてもよい。詳細は後述する。
【００８８】
図１０のシーケンス図の各処理でアクセスされるディスクのデータ領域について説明する。図１１は、図１０の各処理でアクセスされるデータ領域を示した図である。図１０と同じものには、同じ番号を付し、説明は省略する。
【００８９】
端末装置８０１などから、複製論理ディスク（ＬＶＯＬ２）１０７１の複製論理セグメントＬＶＯＬ２−Ａ２をアクセス先とするリード要求が発行される［Ｐ１０］。アクセスノード５００は、自身が保有するメタデータに基づいて、リード要求先の複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられたスライスは、ディスクノード（ＤＰ１）２００のスライスＤＰ１−１０２であることを検出する。そこで、スライスＤＰ１−１０２をアクセス先とするリード要求を出力する［Ｐ１１］。
【００９０】
リード要求を受けたディスクノード（ＤＰ１）２００は、自身が保有するメタデータに基づいて、スライスＤＰ１−１０２が仮想スライスであることを検出し、複製元の論理セグメントを特定する。そして、制御ノード１００に対してメタデータ照会を行って、複製元の論理セグメントＬＶＯＬ１−Ａ２に関するメタデータを取得する。
【００９１】
続いて、取得したメタデータに基づき、複製元の論理セグメントＬＶＯＬ１−Ａ２のデータを格納する複製元のスライスＤＰ２−１を特定する。この複製元のスライスＤＰ２−１を管理するディスクノード（ＤＰ２）３００に対し、リード要求を行う［Ｐ１７］。そして、取得したデータを、アクセスノード５００に転送する［Ｐ２１］。
【００９２】
このように、仮想スライスに対するリード要求があったときは、複製元のデータが格納される複製元スライスが特定され、複製元スライスからデータの読み出しが行われる。
図１２は、複製元スライス情報の一例を示した図である。
【００９３】
複製元スライス情報６０００は、メタデータ照会［Ｐ１３］によって制御ノード１００から取得したメタデータから抽出されるスライスアクセス情報６００１と、論理ディスク情報６００２と、から構成される。スライスアクセス情報６００１には、複製元論理ディスクのセグメントのデータを格納するスライスを特定するディスクノードＩＤと、スライスＩＤとが格納される。また、論理ディスク情報６００２には、複製元論理ディスクのセグメントを特定する論理ディスクＩＤと、先頭アドレスとが格納される。
【００９４】
メタデータ照会［Ｐ１３］では、制御ノード１００によって、リード要求のあった仮想スライスのメタデータにおいて複製元論理ディスク情報に設定されるセグメントが、論理ディスク情報に設定されるメタデータが抽出される。こうして抽出されたメタデータのスライスアクセス情報には、複製元論理ディスクのセグメントのデータを格納するスライスの識別情報が設定されている。
【００９５】
このスライスアクセス情報６００１と、論理ディスク情報６００２は、メタデータ照会［Ｐ１３］によってメタデータが取得されるごとに、取得したメタデータから抽出されて記憶される。また、スライスアクセス情報６００１の登録に基づいて行ったリード転送処理でメタデータエラーとなったときは、このスライスアクセス情報が現状と一致していないと判断し、削除する。
【００９６】
次に、複製元スライス情報を用いたリード要求の処理手順について説明する。図１３は、複製元スライス情報を用いたリード処理を示したシーケンス図である。図１０と同じ処理には同じ番号を付し、説明は省略する。
【００９７】
図１０に示したリード要求手順と同様に、リード要求（ＬＶＯＬ２−Ａ２）を受信した［Ｐ１１］後、メタデータチェックによってリード要求されたセグメントのデータを格納するスライスが仮想スライスであるか実スライスであるかが判定される［Ｐ１２］。ここでは、メタデータに基づいて、リード要求されたセグメントＬＶＯＬ２−Ａ２は、仮想スライスであったとする。続いて、複製元スライス情報６０００に、この仮想スライスに対応する複製元のスライスアクセス情報が存在するかどうかを調べ、存在するときはこれを読み出す［Ｐ２２］。図１２に示した複製元スライス情報６０００の論理ディスク情報と、メタデータチェックで抽出された該当スライスのメタデータの複製元論理ディスク情報とを照合し、一致するものを検出する。一致すれば、このスライスアクセス情報で指定されるスライスを複製元のスライスとする。一致するものがないときは、図１０に示したメタデータ照会［Ｐ１３］以降の処理を行う。
【００９８】
図１３の例では、複製元スライス情報６０００に該当するスライスアクセス情報が存在し、このスライスアクセス情報に基づいてリード転送処理が行われる［Ｐ１６］。リード転送処理以降の処理は、図１０と同様であるので説明は省略する。
【００９９】
このように、照会されたメタデータを複製元スライス情報として記憶しておき、次回以降のリード要求処理で参照することにより、メタデータ照会の手間を省き、処理時間を短縮することができる。
【０１００】
しかし、照会されたメタデータは、制御ノード１００によって更新されることがある。この場合、更新前のメタデータに基づいてリード転送処理を行うと、データを読み出すことができず、エラーとなってしまう。このようなケースでの処理手順について説明する。
【０１０１】
図１４は、複製元のスライスに関するメタデータが更新されていた場合のリード要求処理の手順を示した図である。図１０、図１３と同じものには同じ番号を付し、説明は省略する。
【０１０２】
ここでは、図１３の手順と同様に、複製元スライス情報読み出し［Ｐ２２］によって、読み出された複製元スライス情報６０００のスライスアクセス情報に基づいてリード転送処理が行われる［Ｐ１６］。しかし、複製元スライス情報は、制御ノード１００がディスクノード（ＤＰ２）３００に関するスライス割当を更新する前の情報である。このため、ディスクノード（ＤＰ２）３００によるリード処理は、メタデータエラーを検出し［Ｐ１８］、メタデータエラーの応答がディスクノード（ＤＰ１）２００に返る［Ｐ２３］。ディスクノード（ＤＰ１）は、メタデータエラーを受け取ったので、メタデータが更新されていることを検知する。そこで、制御ノード１００に対してメタデータ照会を行い［Ｐ２４］、複製元論理ディスク情報に基づくメタデータ照会依頼を送信する［Ｐ２５］。メタデータ照会以降の処理は、図１０と同様であるので説明は省略する。
【０１０３】
このように、複製元スライス情報の内容が現状と一致しなくなり、リード要求が失敗したときは、再度メタデータの照会依頼を行う。そして、照会されたメタデータに基づいてリード転送処理を行うことができる。
【０１０４】
なお、リード要求処理では、複製論理ディスクに対する仮想スライスの割り当ては更新されない。仮想スライスはデータ領域を持たないが、複製元のセグメントのデータが格納される複製元スライスを特定し、そのデータを転送することにより、データ領域を持ったときと同様に機能させることができる。
【０１０５】
次に、ライト要求を受信したときの処理について説明する。ここでは、データの書き込み先として、複製論理ディスク（ＬＶＯＬ２）の複製論理セグメントＬＶＯＬ２−Ａ２が指定されたとする。
【０１０６】
図１５は、複製論理ディスクのライト処理を示したシーケンス図である。
アクセスノード５００からデータのライト要求（ＬＶＯＬ２−Ａ２）が、ディスクノード（ＤＰ１）２００に送信される（Ｐ３１）。アクセスノード５００は、図９に示したメタデータ５００１の論理ディスク情報を検索し、ライト要求のアクセス先として複製論理セグメントＬＶＯＬ２−Ａ２を検出する。そして、検出された複製論理セグメントＬＶＯＬ２−Ａ２に対応するスライスアクセス情報に基づいて、書き込み先のディスクノード（ＤＰ１）２００と、スライスＤＰ１−１０２を特定する。こうして、アクセスノード５００からディスクノード（ＤＰ１）２００に対し、ライト要求が送信される［Ｐ３１］。
【０１０７】
ライト要求（ＬＶＯＬ２−Ａ２）を受けたディスクノード（ＤＰ１）２００は、ライト要求で指定されたスライスＤＰ１−１０２に関するメタデータをチェックし、このスライスが実スライスであるか仮想スライスであるかを判別する［Ｐ３２］。スライスＩＤが１０２のメタデータのデータ領域フラグを読み出し、実スライス（ＴＲＵＥ）か、仮想スライス（ＦＡＬＳＥ）かを判定する。ここでは、仮想スライス（ＦＡＬＳＥ）となるので、未割当エラーをアクセスノード５００に返す［Ｐ３３］。
【０１０８】
ディスクノード（ＤＰ１）２００から未割当エラーを取得したアクセスノード５００は、制御ノード１００に対し、このセグメントを実スライスに割り当てるように割当要求を行う［Ｐ３４］。
【０１０９】
アクセスノード５００から割当要求［Ｐ３４］を取得した制御ノード１００は、対応するセグメントを実スライスに再割当する再割当処理を行う［Ｐ３５］。制御ノード１００の割当処理では、メタデータを検索し、セグメントに未割当の実スライスを検出する。そして、セグメントに、検出された実スライスを割り当て、複製先スライスとする。ここでは、ディスクノード（ＤＰ３）４００の実スライスＤＰ３−３が検出されたとする。同様に、メタデータ５００１に基づいて、複製元の論理セグメントのデータを保有する複製元スライスを特定する。メタデータ５００１から、未割当エラーが発生した複製論理セグメントＬＶＯＬ２−Ａ２の複製元論理ディスク情報に基づき、複製元のセグメントを特定する。ここでは、論理セグメントＬＶＯＬ１−Ａ２が特定される。さらに、論理セグメントＬＶＯＬ１−Ａ２が論理ディスク情報に登録されるメタデータを検索し、そのスライスアクセス情報を抽出する。ここでは、スライスＤＰ２−１が特定される。こうして、複製元スライスＤＰ２−１と、複製先スライスＤＰ３−３とを特定し、複製元スライスＤＰ２−１を管理するディスクノード（ＤＰ２）３００にスライスコピー指示を出力する［Ｐ３６］。
【０１１０】
スライスコピー指示を受け取ったディスクノード（ＤＰ２）３００は、複製元スライスＤＰ２−１のデータを順次読み出し、ディスクノード（ＤＰ３）４００の複製先スライスＤＰ３−３にコピーするスライスコピー処理を行う［Ｐ３７］。これにより、ディスクノード（ＤＰ２）３００からディスクノード（ＤＰ３）４００に向けて、スライスコピーのデータが送信される［Ｐ３８］。スライスコピー・データを受け取った複製先スライスＤＰ３−３を管理するディスクノード（ＤＰ３）４００は、このデータを複製先スライスＤＰ３−３に書き込むスライスコピー処理を行う［Ｐ３９］。そしてスライスコピー処理終了後、正常応答をディスクノード（ＤＰ２）３００に返す［Ｐ４０］。ディスクノード（ＤＰ２）３００は、複製先スライスへのデータ正常書き込み完了を確認し、正常応答を制御ノード１００に返す［Ｐ４１］。
【０１１１】
続いて、再割当終了後の処理について説明する。図１６は、再割当終了後の複製論理ディスクのライト処理を示したシーケンス図である。
制御ノード１００は、再割当が終了し、複製元スライスＤＰ２−１から複製先スライスＤＰ３−３へのスライスコピーが正常終了した後、再割当後の状態に合わせてメタデータを更新する［Ｐ４２］。ここでは、再割当により複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられた実スライスＤＰ３−３のメタデータと、再割当前に複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられていた仮想スライスＤＰ２−１０２のメタデータが更新される。再割当で割り当てられた実スライスＤＰ３−３は、論理ディスク割当フラグを「ＴＲＵＥ」、複製スライスフラグを「ＴＲＵＥ」、論理ディスク情報を「ＬＶＯＬ２−Ａ２」、複製元論理ディスク情報を「ＬＶＯＬ１」とする。また、元々割り当てられていた仮想スライスＤＰ２−１０２は、割当を解除する。仮想スライスＤＰ２−１０２のメタデータの論理ディスク割当フラグを「ＮＵＬＬ」にし、関連する情報項目をリセットする。そして、更新されたメタデータを、それぞれディスクノード（ＤＰ１）２００と、ディスクノード（ＤＰ３）４００に送信し、メタデータ変更依頼を行う［Ｐ４３］。
【０１１２】
メタデータ変更依頼を受けたディスクノード（ＤＰ１）２００は、メタデータ変更処理［Ｐ４４ａ］、ディスクノード（ＤＰ３）４００はメタデータ変更処理［Ｐ４４ｂ］をそれぞれ実行し、メタデータを更新する。その後、正常応答［Ｐ４５］を制御ノード１００に返す。制御ノード１００は、スライスコピーが正常に終了したときは、アクセスノード５００にメタデータを送信し［Ｐ４６］、再割当が正常に終了したことを通知する正常応答を返す［Ｐ４７］。アクセスノード５００は、正常応答を受け、自装置内に格納されるメタデータを受信したメタデータに変更する［Ｐ４８］。以降、アクセス先を再割当された実スライスＤＰ３−３とし、ライト処理が可能となる。
【０１１３】
アクセスノード５００は、再割当されたスライスＤＰ３−３を管理するディスクノード（ＤＰ３）４００に対し、ライト要求を再度行う［Ｐ４９］。ディスクノード（ＤＰ３）４００は、取得したライト要求に基づいてライト処理し［Ｐ５０］、正常応答をアクセスノード５００に返す［Ｐ５１］。
【０１１４】
図１５，１６のシーケンス図の各処理でアクセスされるディスクのデータ領域について説明する。図１７は、図１５，１６の各処理でアクセスされるデータ領域を示した図である。図１５，１６と同じものには、同じ番号を付し、説明は省略する。
【０１１５】
スライス割当（ＤＰ１）２００２、スライス割当（ＤＰ２）３００２及びスライス割当（ＤＰ３）４００２は、スライスが再割当された後のディスクノード（ＤＰ１）２００、ディスクノード（ＤＰ２）３００及びディスクノード（ＤＰ３）４００が管理するスライス状態を示している。
【０１１６】
端末装置８０１などから、複製論理ディスク１０７１の複製論理セグメントＬＶＯＬ２−Ａ２にライト要求が発行される［Ｐ３０］。アクセスノード５００は、自身が保有するメタデータに基づいて、論理セグメントＬＶＯＬ２−Ａ２に割り当てられたスライスは、ディスクノード（ＤＰ１）２００が管理するスライスＤＰ１−１０２であることを検出する。そこで、スライスＤＰ１−１０２を管理するディスクノード（ＤＰ１）２００に対し、スライスＤＰ１−１０２をアクセス先とするライト要求を出力する［Ｐ３１］。
【０１１７】
ライト要求を受けたディスクノード（ＤＰ１）２００は、自身が保有するメタデータに基づいて、要求されたスライスＤＰ１−１０２が仮想スライスであることを検出し、未割当エラーをアクセスノード５００に返す［Ｐ３３］。
【０１１８】
未割当エラーを受信したアクセスノード５００は、制御ノード１００にスライスの割当依頼を行う。制御ノード１００の再割当処理によって、実スライスであるスライスＤＰ３−３にセグメントが再割当される［Ｐ３５］。そして、複製元の論理セグメントのデータが格納される複製元スライスＤＰ２−１から、複製論理セグメントＬＶＯＬ２−Ａ２に再割当された複製先スライスＤＰ３−３へのスライスコピーが行われる［Ｐ３７］。その後、複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられていた元の仮想スライスＤＰ１−１０２への割当は解除される［Ｐ４２］。
【０１１９】
このように、仮想スライスが割り当てられているセグメントへライト要求があった時点で、新たに実スライスへの再割当が行われ、複製元のデータが再割当された実スライスにコピーされる。これにより、複製論理ディスクの生成時のコピー処理を省くことができる。また、必要のない（更新されない）セグメントについては、仮想スライスが割り当てられ、データコピーが生じないため、冗長な構成となることを防止できる。
【０１２０】
ここで、再割当処理によって更新されるメタデータについて説明する。図１８は、再割当処理の前と後のメタデータを示した図である。
実スライス割当前のメタデータ５００３は、再割当処理の前のメタデータである。また、実スライス割当後のメタデータ５００４は、再割当処理の後のメタデータである。
【０１２１】
実スライス割当前のメタデータ５００３は、複製論理ディスク生成時のメタデータ５００１から、最初に複製論理セグメントに割り当てられた仮想スライスと、再割当後に割り当てられた実スライスのメタデータを抽出したものである。メタデータ５００３ａは、複製論理ディスクＬＶＯＬ２−Ａ２生成時に、複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられた、仮想スライスＤＰ１−１０２のメタデータである。メタデータ５００３ｂは、再割当前でセグメントが割り当てられていない実スライスＤＰ３−３のメタデータである。
【０１２２】
仮想スライスＤＰ１−１０２のメタデータ５００３ａは、データ領域フラグが「ＦＡＬＳＥ」、論理ディスク割当フラグが「ＴＲＵＥ」、複製スライスフラグが「ＴＲＵＥ」、論理ディスク情報が「ＬＶＯＬ２，Ａ２」、複製元論理ディスク情報が「ＬＶＯＬ１，Ａ２」と設定されている。これは、仮想スライスＤＰ１−１０２がデータ領域を持たず、論理セグメントＬＶＯＬ２−Ａ２に割り当てられていることを表している。また、論理セグメントＬＶＯＬ２−Ａ２は、論理セグメントＬＶＯＬ１−Ａ２の複製であることも設定されている。実スライスＤＰ３−３のメタデータ５００３ｂは、データ領域フラグが「ＴＲＵＥ」、論理ディスクフラグが「ＦＡＬＳＥ」である。これは、実スライスＤＰ３−３が、データ領域を持っており、この時点では、論理セグメントが割り当てられていないことを表している。
【０１２３】
この状態で、再割当処理が行われ、複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられるスライスが、仮想スライスＤＰ１−１０２から実スライスＤＰ３−３に変わる。
実スライス割当後のメタデータ５００４は、再割当処理後のメタデータから、仮想スライスＤＰ１−１０２のメタデータ５００４ａと、実スライスＤＰ３−３のメタデータ５００４ｂとを抽出したデータである。割当が解除された仮想スライスＤＰ１−１０２のメタデータ５００４ａは、論理ディスク割当フラグが「ＦＡＬＳＥ」に更新され、未割当となったことが示されている。実スライスＤＰ３−３のメタデータ５００４ｂは、データ領域フラグが「ＴＲＵＥ」、論理ディスクフラグが「ＴＲＵＥ」、複製スライスフラグが「ＦＡＬＳＥ」、論理ディスク情報が「ＬＶＯＬ２，Ａ２」、複製元論理ディスク情報が「ＮＵＬＬ，ＮＵＬＬ」と設定されている。これは、実スライスＤＰ３−３が、複製論理セグメントＬＶＯＬ２−Ａ２に割り当てられたことを表している。なお、再割当処理時に、複製元の論理セグメントＬＶＯＬ１−Ａ２に対応するスライスＤＰ２−１のデータは、実スライスＤＰ３−３にコピーされ、その後更新されている。このため、以降のリード要求時には、複製元の論理セグメントＬＶＯＬ１−Ａ２のデータではなく、複製論理セグメントＬＶＯＬ２−Ａ２のデータを読み出す。したがって、複製スライスフラグと、複製元論理ディスク情報には、「ＮＵＬＬ」が登録される。
【０１２４】
上記のようにして実スライスへの再割当処理が行われ、実スライス割当前のメタデータ５００３が、実スライス割当後のメタデータ５００４に更新される。この更新メタデータは、図１６に示したようにアクセスノード５００に送信される。
【０１２５】
図１９は、再割当後にアクセスノードに送信されるメタデータの一例を示した図である。
アクセスノード５００は、指定された論理セグメントのアクセス先として、この論理セグメントに割り当てられたスライスを特定し、特定されたスライスに対してアクセス要求を行う。そこで、割当先が変更になったときは、更新されたメタデータがアクセスノード５００に送信される。
【０１２６】
アクセスノード５００へ送信される送信メタデータ７０００には、新たに論理セグメントに割り当てられたスライスを特定するスライスアクセス情報７００１と、この論理セグメントを特定する論理ディスク情報７００２と、が含まれる。これは、実スライス割当後のメタデータ５００４から、新たにセグメントが割り当てられた実スライス（ＤＰ３−３）に関するメタデータ５００４ｂのスライスアクセス情報と、論理ディスク情報とを抽出したものである。
【０１２７】
このように、ライト要求があったときに、仮想スライスに割り当てられたセグメントが実スライスに再割当され、複製元のスライスに格納されるデータが再割当された実スライスのデータ領域にコピーされる。すなわち、実際にデータを更新する必要が生じるまで、複製論理セグメントには仮想スライスが割り当てられる。
【０１２８】
次に、制御ノード１００及びディスクノード２００，３００，４００が実行する複製論理ディスクの割当制御方法の処理手順を、フローチャートを用いて説明する。
図２０は、制御ノードの複製論理ディスクの作成処理の手順を示したフローチャートである。管理ノード７００から、複製論理ディスクの作成要求を取得し、処理が開始される。なお、以下の説明で、（）内の処理は、ディスクノード２００，３００，４００が実行する処理である。
【０１２９】
［ステップＳ１０１］  複製論理ディスク生成処理を行う。複製論理ディスク生成処理では、複製論理ディスクのセグメントが、ディスクノード２００，３００，４００の仮想スライスに割り当てられる。そして、セグメントが割り当てられた仮想スライスについて、その論理ディスク情報及び複製元論理ディスク情報を含むメタデータが生成される。詳細は後述する。
【０１３０】
［ステップＳ１０２］  ステップＳ１０１において、複製論理ディスクのセグメントが割り当てられた仮想スライスを管理するディスクノード２００，３００，４００に対し、該当する仮想スライスのメタデータを送信し、メタデータの変更を指示する。
【０１３１】
（メタデータを取得したディスクノード２００，３００，４００は、取得したメタデータをメタデータ記憶領域に格納し、メタデータを更新する。そして、制御ノード１００に対し正常応答を返す。）
［ステップＳ１０３］  ステップＳ１０２でメタデータの変更指示を行ったディスクノード２００，３００，４００からの応答を待つ。すべてのディスクノード２００，３００，４００から応答を受け取るか、応答待ち時間が一定時間経過したときは、次ステップへ処理を進める。
【０１３２】
［ステップＳ１０４］  ディスクノード２００，３００，４００のすべてから応答を受け取り、かつ、受け取った応答が、正常応答であるかどうかを判定する。すべて正常応答であったときは、処理をステップＳ１０５に進める。応答なし、あるいは、正常応答でない応答があったときは、処理をステップＳ１０６に進める。
【０１３３】
［ステップＳ１０５］  すべてのディスクノードから正常応答を受け取ったときは、複製論理ディスク生成が終了したと判断し、複製論理ディスク作成終了通知を管理ノード７００に返し、処理を終了する。
【０１３４】
［ステップＳ１０６］  すべてのディスクノードから正常応答を受け取ることができなかったときは、エラー処理を行い、処理を終了する。再度、ステップＳ１０１に戻って、複製論理ディスク生成処理からの手順を行うとしてもよい。
【０１３５】
以上の処理手順が実行されることにより、複製論理ディスクが生成され、その複製論理セグメントには仮想スライスが割り当てられる。
ここで、複製論理ディスク生成処理について説明する。図２１は、複製論理ディスク生成処理の手順を示したフローチャートである。
【０１３６】
［ステップＳ１０１１］  作成する複製論理ディスクを識別するＩＤを生成する。生成されたＩＤは、この複製論理ディスクの複製論理セグメントに割り当てたスライスに関するメタデータの論理ディスク情報の論理ディスクＩＤに設定される。
【０１３７】
［ステップＳ１０１２］  複製元の論理ディスクの先頭アドレスが最も小さいセグメントに割り当てられ、そのセグメントのデータが格納される先頭スライスをＸとする。こうして、複製元の論理ディスクのアドレスが小さいスライスから順に複製処理を行う。なお、ここでの複製処理は、複製論理ディスクの全領域に仮想スライスを割り当てる処理を言う。この先頭スライスに指定されたスライスに関するメタデータを読み出す。
【０１３８】
［ステップＳ１０１３］  複製元の論理ディスクの全領域に対応するすべてのスライスについての複製処理が終了したかどうかを判定する。複製が終了していないものがあれば、処理をステップＳ１０１４に進める。すべてのスライスの複製が終了していれば、処理を終了する。
【０１３９】
［ステップＳ１０１４］  すべてのスライスの複製が終了していないときは、複製論理ディスクに割り当てるスライスとして、データ領域のない仮想スライスのうち、論理ディスク及び複製論理ディスクが未割当の仮想スライスを検索する。メタデータを照合し、データ領域フラグが「ＦＡＬＳＥ」、論理ディスク割当フラグが「ＮＵＬＬ」のものを検索する。そうして、検索された未割当の仮想スライスの１つを選択し、この仮想スライスをＹとする。
【０１４０】
［ステップＳ１０１５］  ステップＳ１０１４で選択された仮想スライスＹのメタデータを更新する。具体的には、仮想スライスＹがスライスアクセス情報に登録されるメタデータについて、論理ディスク割当フラグを「ＴＲＵＥ」、複製スライスフラグを「ＴＲＵＥ」にする。これにより、複製論理ディスクの未割当の領域に、この仮想スライスＹが割り当てられる。次に、論理ディスク情報の論理ディスクＩＤに、ステップＳ１０１１で設定した複製論理ディスクを識別するＩＤを設定する。先頭アドレスには、スライスＸのアドレスを設定する。複製元論理ディスク情報に、スライスＸの論理ディスク情報を設定する。
【０１４１】
［ステップＳ１０１６］  複製元の論理ディスクのスライスＸを、次のアドレスのスライスに設定する。そして、このスライスに関するメタデータを読み出し、処理をステップＳ１０１３に進める。
【０１４２】
こうして、複製論理ディスクにこの時点で未割当の仮想スライスが割り当てられ、メタデータが生成される。上記の複製論理ディスク生成処理では、メタデータのみが更新され、論理ディスクのデータのコピーは行われない。
【０１４３】
次に、制御ノード１００による複製論理ディスクのスライス再割当処理について説明する。図２２は、制御ノードの再割当処理の手順を示したフローチャートである。
アクセスノード５００からスライスの再割当要求を受信し、処理が開始される。
【０１４４】
［ステップＳ１１１］  制御ノード１００が保有するメタデータ５００１に基づいて、論理ディスク及び複製論理ディスクに未割当の実スライスを検索する。具体的には、データ領域フラグが「ＴＲＵＥ」（実スライス）、論理ディスク割当フラグが「ＮＵＬＬ」（未割当）であるスライスを検索する。そして、検出された実スライスを割当候補とする。複数の実スライスが検出されるときは、例えば、同じ複製論理ディスクに属するセグメントに割り当てられたスライスの少ないもの、などの条件により候補を決定する。例えば、メタデータ５００１から、実スライスＤＰ３−３が特定されたとする。
【０１４５】
［ステップＳ１１２］  メタデータ５００１に基づいて、複製元のデータが格納されるスライスを特定する。図１５の例であれば、未割当エラーが発生した複製論理セグメントＬＶＯＬ２−Ａ２の複製元論理ディスク情報に基づき、複製元の論理セグメントＬＶＯＬ１−Ａ２が特定される。さらに、メタデータ５００１を検索して論理ディスク情報に、この論理セグメントＬＶＯＬ１−Ａ２が登録されるメタデータを抽出する。そして、抽出されたメタデータのスライスアクセス情報に基づいて、この論理セグメントＬＶＯＬ１−Ａ２のデータを格納する複製元スライスを特定する。図１５の例では、スライスＤＰ２−１が特定される。
【０１４６】
［ステップＳ１１３］  ステップＳ１１２で検出された複製元スライスＤＰ２−１を管理するディスクノード（ＤＰ２）３００に対し、スライスコピーを依頼する。スライスコピーは、ステップＳ１１１で再割当された実スライスＤＰ３−３を複製先として依頼される。
【０１４７】
（依頼を受けた複製元スライスＤＰ２−１を管理するディスクノード（ＤＰ２）３００では、実スライスＤＰ２−１に格納されるデータを、複製先の実スライスＤＰ３−３へ転送し、書き込みを依頼する。正常終了で、制御ノード１００に対して正常応答を返す。）
制御ノード１００の処理の説明に戻る。
【０１４８】
［ステップＳ１１４］  ステップＳ１１３で複製元スライス（ＤＰ２−１）を管理するディスクノード（ＤＰ２）３００から、スライスコピーに対する応答を待つ。応答が得られ、正常終了であれば、処理をステップＳ１１５に進める。応答が得られたが正常終了でないとき、または、一定時間が経過しても応答を得られなかったときは、処理をステップＳ１１１に進め、次の再割当候補の検索からの処理を行う。
【０１４９】
［ステップＳ１１５］  スライスコピーが正常に終了したときは、メタデータを変更する。複製先の実スライスＤＰ３−３のメタデータの論理ディスク割当フラグを「ＴＲＵＥ」、複製スライスフラグを「ＴＲＵＥ」、論理ディスク情報を「ＬＶＯＬ２−Ａ２」、複製元論理ディスク情報を「ＬＶＯＬ１−Ａ２」とする。また、元々割り当てられていた仮想スライスの割当を解除する。仮想スライスのメタデータの論理ディスク割当フラグを「ＮＵＬＬ」にし、関連する情報項目をリセットする。
【０１５０】
［ステップＳ１１６］  ステップＳ１１５で変更したメタデータを、関連するスライスを管理するディスクノード２００，３００，４００に送信し、メタデータの更新を依頼する。ここでは、ディスクノード（ＤＰ３）４００に対し、スライスＤＰ３−３を複製論理セグメントＬＶＯＬ２−Ａ２に割り当てたメタデータを送信し、更新を依頼する。また、ディスクノード（ＤＰ１）２００に対し、スライスＤＰ１−１０２の割当を解除したメタデータを送信し、更新を依頼する。さらに、アクセスノード５００に対し、再割当が終了したことを通知する応答とともに、更新メタデータを送信する。
【０１５１】
以上の処理手順が行われ、データの仮想スライスへの新規書き込み時、対応するセグメントが実スライスに再割当され、複製元のデータが再割当された実スライスにコピーされた後、データの書き込みが可能となる。
【０１５２】
次に、ディスクノード側の処理について説明する。
図２３は、ディスクノードのリード処理の手順を示したフローチャートである。
アクセスノード５００からのリード要求を受信して、処理が開始される。
【０１５３】
［ステップＳ２０１］  アクセスノード５００からリード要求のあったデータ領域に対応するスライスが、仮想スライスであるか否かを判定する。データ領域が含まれるスライスのメタデータを抽出し、データ領域フラグを確認する。データ領域フラグが「ＦＡＬＳＥ」であれば仮想スライス、「ＴＲＵＥ」であれば実スライスになる。実スライスであれば、処理をステップＳ２０２に進める。仮想スライスであれば、処理をステップＳ２０３に進める。
【０１５４】
［ステップＳ２０２］  リード要求の対象のスライスが実スライスであれば、該当データ領域からデータを読み出し、ステップＳ２０７に処理を進める。
［ステップＳ２０３］  リード要求の対象スライスが仮想スライスであれば、複製元のスライスに関する複製元スライス情報が存在するか否かをチェックする。存在しなければ、処理をステップＳ２０４に進める。存在するときは、処理をステップＳ２０５に進める。
【０１５５】
［ステップＳ２０４］  複製元スライス情報が存在しないときは、メタデータからこのスライスに関する複製元論理ディスク情報を読み出す。そして、制御ノード１００に対し、複製元論理ディスクを指示してメタデータを照会する。制御ノード１００からは、照会した複製元論理ディスクのデータが格納されるスライスのスライスアクセス情報を含むメタデータが取得される。そこで、取得したメタデータからスライスアクセス情報を抽出し、複製元スライス情報として記憶手段に格納する。
【０１５６】
［ステップＳ２０５］  複製元スライス情報に登録される複製元スライスを管理するスライスノードに対し、データのリード要求を行う。スライスノードからの応答を受信するか、応答待ち時間が経過するまで待ち、次ステップへ処理を進める。
【０１５７】
［ステップＳ２０６］  ステップＳ２０５でリード要求を行った対象の複製元スライスからデータを正常に受信できたかどうかを判定する。正常に受信できたときは、処理をステップＳ２０７に進める。データを受信できなかったときは、複製元の論理セグメントのデータを格納するスライスが変更になったことが想定される。そこで、ステップＳ２０４に戻って制御ノード１００への複製元のスライスに関するメタデータ照会からの処理を行う。
【０１５８】
［ステップＳ２０７］  該当データ領域から読み出されたデータ、または、複製元スライスから読み出されたデータを、アクセスノード５００に送信し、処理を終了する。
以上の処理手順が実行されることにより、アクセスノード５００からのリード要求に対し、該当するデータ領域のデータが読み出され、送信される。このとき、リード要求されたデータ領域が実スライスにあるときは、そのまま実スライスからデータが読み出される。そして、リード要求されたデータ領域が仮想スライスにあるときは、メタデータに基づいて複製元スライスを管理するストレージノードにデータ読み出しを転送し、得られたデータを読み出しデータとする。このように、アクセスノード５００は、要求先が仮想スライスまたは実スライスであるかを確認することなく、リード要求を行うことができる。
【０１５９】
次に、ライト関連処理の手順について説明する。ライト関連処理とは、ライト要求があったときの処理と、ライト処理に関連し、再割当されたスライスに対するデータのコピーが要求されたときの処理を言う。
【０１６０】
図２４は、ディスクノードのライト関連処理の手順を示したフローチャートである。
ライト関連の処理要求を受信し、処理が開始される。
［ステップＳ２１１］  受信された要求がライト要求であるかどうかを判定する。ライト要求であれば、処理をステップＳ２１２に進める。ライト要求でなければ、処理をステップＳ２１６に進める。
【０１６１】
［ステップＳ２１２］  受信された要求がライト要求であったときは、ライト要求の対象のデータ領域に対応するスライスが、仮想スライスであるか否かを判定する。データ領域が含まれるスライスのメタデータを抽出し、データ領域フラグを確認する。データ領域フラグが「ＦＡＬＳＥ」であれば仮想スライス、「ＴＲＵＥ」であれば実スライスになる。実スライスであれば、処理をステップＳ２１３に進める。仮想スライスであれば、処理をステップＳ２１４に進める。
【０１６２】
［ステップＳ２１３］  ライト要求の対象のスライスが実スライスであれば、該当データ領域へデータを書き込み、ステップＳ２１５に処理を進める。
［ステップＳ２１４］  ライト要求の対象スライスが仮想スライスであれば、未割当を設定する。
【０１６３】
［ステップＳ２１５］  ライト要求を行ったアクセスノードに対し応答を返し、処理を終了する。書き込み対象のデータ領域が実スライスのときは、データの書き込みが行われ、その結果（正常終了またはエラー）を応答として返す。書き込み対象のデータ領域が仮想スライスのときは、データ領域が割り当てられていないという未割当エラーを応答として返す。
【０１６４】
［ステップＳ２１６］  受信された要求がライト要求でないときは、要求がスライスコピー要求であるかどうかを判定する。スライスコピー要求であれば、処理をステップＳ２１７に進める。スライスコピー要求でなければ、ライト関連処理を終了する。
【０１６５】
［ステップＳ２１７］  複製元スライスとして指示されたスライスのデータを読み出し、複製先スライスに転送するデータ転送処理を行う。
［ステップＳ２１８］  スライスコピーを要求した制御ノード１００に対し、スライスコピーが終了したことを通知する応答を返す。
【０１６６】
以上の処理手順が実行されることにより、仮想スライスにライト要求があったときは、対応する論理セグメントに実スライスを再割当し、複製元のスライスのデータが複製先にコピーされる。
【０１６７】
以上の処理手順が実行されることにより、アクセスノード５００からのライト要求に対し、該当するデータ領域にデータが書き込まれる。このとき、ライト要求されたデータ領域が実スライスにあるときは、そのまま実スライスにデータが書き込まれる。ライト要求されたデータ領域が仮想スライスにあるときは、一旦未割当エラーが発生するが、未割当エラーにより、対応する論理セグメントは実スライスに再割当される。このとき、複製元スライスを管理するスライスノードは、再割当された複製先の実スライスに、データをコピーするスライスコピーを実行し、複製先の実スライスのデータを複製元スライスに一致させる。
【０１６８】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理内容を記述した割当制御プログラムが提供される。その割当制御プログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現され、割当制御装置として機能する。この割当制御処理の内容を記述した割当制御プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【０１６９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１７０】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１７１】
以上の実施の形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）  論理ボリュームを複数のストレージ装置に分散配置する処理のための割当制御プログラムにおいて、
コンピュータを、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段、
として機能させることを特徴とする割当制御プログラム。
【０１７２】
（付記２）  前記再割当手段は、前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を管理する前記ストレージ管理装置に対し、前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域を通知して複写要求を行い、前記複製元論理ボリューム分割領域に対応する前記実記憶領域から前記複製論理ボリューム分割領域に対応する前記実記憶領域へのデータ複写処理を実行させる、
ことを特徴とする付記１記載の割当制御プログラム。
【０１７３】
（付記３）  前記再割当手段は、前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求を行ったアクセス装置が、前記複製論理ボリュー分割領域に前記実記憶領域が割り当てられていないことを通知するエラーを取得したときに送信する前記実記憶領域の再割当要求を取得したとき、前記再割当要求に応じて前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったことを検知する、
ことを特徴とする付記１または２記載の割当制御プログラム。
【０１７４】
（付記４）  前記再割当手段は、前記実記憶領域への再割当が行われた前記複製論理ボリューム分割領域に再割当前に割り当てられていた前記仮想記憶領域への割り当てを解除して前記管理情報を更新し、更新された前記管理情報を、割り当てを解除した前記仮想記憶領域を管理する前記ストレージ管理装置に送信する、
ことを特徴とする付記１〜３のいずれか１項に記載の割当制御プログラム。
【０１７５】
（付記５）  前記コンピュータを、さらに、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域のデータ読み出し要求に応じて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域に格納されるデータを読み出し、読み出したデータをデータ読み出し要求元に転送する前記ストレージ管理装置から、前記複製元論理ボリューム分割領域に関する前記管理情報の照会要求を受けたときは、前記記憶手段に格納される前記管理情報を検索して、照会要求を受けた前記複製元論理ボリュームの識別情報に関連付けて前記管理情報に設定される前記複製元論理ボリューム分割領域に割り当てられた複製元実記憶領域の識別情報を抽出し、前記複製元実記憶領域の識別情報を前記ストレージ管理装置に送信する管理情報照会手段、
として機能させることを特徴とする付記１〜４のいずれか１項に記載の割当制御プログラム。
【０１７６】
（付記６）  論理ボリュームを複数のストレージ装置に分散配置して管理する割当制御装置において、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する論理ボリューム生成手段と、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する再割当手段と、
を有することを特徴とする割当制御装置。
【０１７７】
（付記７）  論理ボリュームを複数のストレージ装置に分散配置する割当制御方法において、
割当制御装置が、
論理ボリュームを分割した論理ボリューム分割領域をストレージ装置群の物理記憶領域にデータ記憶領域を備えた実記憶領域に割り当て、割り当てられた前記実記憶領域と前記論理ボリューム分割領域の識別情報を関連付けた管理情報を設定して記憶手段に格納するとともに、前記論理ボリュームの複製時は、生成する複製論理ボリュームを分割した複製論理ボリューム分割領域を前記ストレージ装置群の物理記憶領域に前記データ記憶領域を持たない仮想記憶領域に割り当て、割り当てた前記仮想記憶領域、前記複製論理ボリューム分割領域及び前記複製論理ボリューム分割領域に対応する複製元論理ボリューム分割領域それぞれの識別情報を関連付けて前記管理情報に設定し、割り当てた前記仮想記憶領域を管理するストレージ管理装置に前記管理情報を送信する手順と、
前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域へのデータ書き込み要求があったときは、前記記憶手段に格納される前記管理情報に基づいて前記論理ボリューム分割領域または前記複製論理ボリューム分割領域に未割当の前記実記憶領域を検出し、該実記憶領域を書き込み要求のあった前記複製論理ボリューム分割領域に再割当して前記管理情報を更新するとともに、前記管理情報に基づいて前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に割り当てられた前記実記憶領域を特定し、該実記憶領域に格納されるデータを前記複製論理ボリューム分割領域に割り当てられた前記実記憶領域に複写する手順と、
を行うことを特徴とする割当制御方法。
【０１７８】
（付記８）  前記ストレージ管理装置が、前記仮想記憶領域が割り当てられている前記複製論理ボリューム分割領域のデータ読み出し要求に応じて、前記複製論理ボリューム分割領域に対応する前記複製元論理ボリューム分割領域に関する前記管理情報を前記割当制御装置に要求する手順と、
前記割当制御装置が、前記複製元論理ボリューム分割領域に関する前記管理情報の照会要求を受けたときは、前記記憶手段に格納される前記管理情報を検索して、照会要求を受けた前記複製元論理ボリュームの識別情報に関連付けて前記管理情報に設定される前記複製元論理ボリューム分割領域に割り当てられた複製元実記憶領域の識別情報を抽出し、前記複製元実記憶領域の識別情報を前記ストレージ管理装置に送信する手順と、
前記ストレージ管理装置が、前記複製元実記憶領域の識別情報に基づいて、前記複製元実記憶領域を管理するストレージ管理装置に要求して前記複製元実記憶領域に格納されるデータを読み出し、読み出したデータをデータ読み出し要求元に転送する手順と、
を有することを特徴とする付記７記載の割当制御方法。
【０１７９】
（付記９）  前記ストレージ管理装置が、前記割当制御装置から取得した前記複製元実記憶領域の識別情報と、前記複製元論理ボリューム分割領域とを関連付けた複製元情報を生成して記憶手段に記憶しておく手順をさらに有し、
前記ストレージ管理装置が、前記複製元論理ボリューム分割領域に関する前記管理情報を前記割当制御装置に要求する手順は、前記データ読み出し要求を取得したときは、前記記憶手段に格納される前記複製元情報を検索し、前記複製元論理ボリューム分割領域に関する前記複製元情報が検出されたときは該複製元情報に基づいて前記複製元実記憶領域を特定し、検出されないときは前記割当制御装置へ前記管理情報の照会を行うことを特徴とする付記８記載の割当制御方法。
【符号の説明】
【０１８０】
１０  制御ノード
１０ａ  管理情報記憶手段
１０ｂ  論理ボリューム生成手段
１０ｃ  管理情報照会手段
１０ｄ  再割当手段
２０  ストレージノード
２０ａ  管理情報更新手段
２０ｂ  リード要求処理手段
２０ｃ  リード転送手段
２０ｄ  ライト要求処理手段
２０ｅ  データ複写手段
２１  ストレージ装置
２１ａ  実スライス領域
２１ｂ  仮想スライス領域
【図１】
2010176189.tif 000003
【図２】
2010176189.tif 000004
【図３】
2010176189.tif 000005
【図４】
2010176189.tif 000006
【図５】
2010176189.tif 000007
【図６】
2010176189.tif 000008
【図７】
2010176189.tif 000009
【図８】
2010176189.tif 000010
【図９】
2010176189.tif 000011
【図１０】
2010176189.tif 000012
【図１１】
2010176189.tif 000013
【図１２】
2010176189.tif 000014
【図１３】
2010176189.tif 000015
【図１４】
2010176189.tif 000016
【図１５】
2010176189.tif 000017
【図１６】
2010176189.tif 000018
【図１７】
2010176189.tif 000019
【図１８】
2010176189.tif 000020
【図１９】
2010176189.tif 000021
【図２０】
2010176189.tif 000022
【図２１】
2010176189.tif 000023
【図２２】
2010176189.tif 000024
【図２３】
2010176189.tif 000025
【図２４】
2010176189.tif 000026