(57)【要約】【課題】冗長構成の仮想化装置を有するストレージシステムにおいて、システムの稼動中にデータ破壊や入出力障害を回避して、ストレージ仮想化装置の構成情報を変更する。【解決手段】ストレージ装置が持つある記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置を有するストレージシステムにおいて、複数の仮想化装置に対し、ホストプロセッサからの受け付けている処理中の入出力を全て完了させ、以降受け付ける入出力の処理を一時保留させるための要求を発行し、この要求に対する処理中の入出力の処理の完了報告を複数の仮想化装置から受け、要求を発した全ての仮想化装置から完了報告を受けた場合、全ての仮想化装置に対してストレージ装置の記憶領域の割り当て変更の指示を送り、全ての仮想化装置からの割当ての変更の完了報告を受けた場合、一時保留された入出力の状態を解除するための指示を全ての仮想化装置に送ることにより仮想ボリュームに対してストレージ装置の記憶領域の割り当てる。【選択図】図１
2005115506.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置が持つある記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置を有するストレージシステムにおける仮想ボリュームに対するストレージ装置の記憶領域の割り当て方法であって、
複数の仮想化装置に対し、ホストプロセッサから受け付けている処理中の入出力を全て完了させ、以降受け付ける入出力の処理を一時保留させるための要求を発行するステップと、
該要求に対する処理中の入出力の処理の完了報告を、複数の仮想化装置から受けるステップと、
該要求を発した全ての仮想化装置から該完了報告を受けた場合、全ての仮想化装置に対してストレージ装置の記憶領域の割り当て変更の指示を送るステップと、
全ての仮想化装置からの該割当ての変更の完了報告を受けるステップと、
一時保留にされた該入出力の状態を解除するための指示を全ての仮想化装置に送るステップと、
を有することを特徴とする記憶領域の割り当て方法。
【請求項２】
前記仮想ボリュームと、該ストレージ装置の実領域となる記憶領域を対応付けする構成情報を格納するテーブルを予めメモリに用意し、
前記記憶領域の割当て変更の指示を送るに際して、構成情報の差分情報を送信し、該仮想化装置は、該テーブルの該当するエントリの構成情報を変更することを特徴とする請求項１記載の記憶領域の割り当て方法。
【請求項３】
前記入出力処理の完了報告を受取らなかった仮想化装置を制御の対象から外して、記憶領域の割当て変更を行わないことを特徴とする請求項１記載の記憶領域の割り当て方法。
【請求項４】
該仮想ボリューム上で割り当てが変更される箇所を含むアドレス範囲を対象として、該入出力を一時保留するか否かを制御することを特徴とする請求項１記載の記憶領域の割り当て方法。
【請求項５】
該記憶領域の割り当て変更の指示を送る前に、既に仮想ボリュームが割当てられたストレージ装置の記憶領域から、新たに仮想ボリュームが割当てられるストレージ装置の記憶領域へデータをコピーするステップと有することを特徴とする請求項１記載の記憶領域の割り当て方法。
【請求項６】
複数の記憶領域が規定され得るストレージ装置と、該ストレージ装置が持つある記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置と、該仮想ボリュームに対する該ストレージ装置の記憶領域の割り当ての構成を変更するための構成変更制御装置とを有し、
該構成変更制御装置は、全ての仮想化装置に対して、該入出力の一時保留を要求する手段と、
該要求を受けた該仮想化装置は処理中の入出力を完了すると共に、以降ホストプロセッサからの入出力要求を一時保留する状態にして、該構成変更制御装置に該入出力の処理の完了報告を返す手段と、
該構成変更制御装置は、要求を発した先の全ての仮想化装置からの該完了報告を受けた場合に、該仮想化装置に対して、仮想ボリュームに対するストレージ装置の記憶領域の割り当ての変更を指示する手段と、
を有することを特徴とするストレージシステム。
【請求項７】
前記構成変更制御装置は、
前記要求手段、該仮想化装置からの完了報告を受領する手段、及び該変更指示手段を有する構成変更制御プログラムと、
該構成変更制御プログラムを実行するプロセッサと、
該仮想ボリュームと該ストレージ装置の実領域となる記憶領域を対応付けする構成情報を登録する構成情報テーブルと、該構成情報の変更前後の差分を記録する差分情報テーブルを格納するメモリとを有し、
前記仮想化装置は、
構成変更の処理を行う構成管理プログラムと、
該構成管理プログラムを実行するプロセッサと、
該仮想ボリュームと該ストレージ装置の実領域となる記憶領域を対応付けする構成情報を登録する構成情報テーブルと、該構成情報の変更前後の差分を記録する差分情報テーブルを格納するメモリを有し、
該構成変更制御装置は、記憶領域の割当て変更の指示を送るに際して、該差分情報テーブルを参照して構成情報の差分情報を該仮想化装置に送信し、該仮想化装置は、該構成管理プログラムを該プロセッサで実行して、受信した差分情報に従って自らの該構成情報テーブルの該当するエントリの構成情報を変更することを特徴とする請求項６記載のストレージシステム。
【請求項８】
更に、該構成変更制御装置に対して構成情報の変更の要求を入力する入力部及び構成変更の状況を表示する表示部を有する管理コンソールを含むことを特徴とする請求項６記載のストレージシステム。
【請求項９】
ストレージ装置が有するある記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置において、
仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けの構成を変更するための構成変更制御プログラムと、
該構成変更制御プログラムを実行する第一のプロセッサとを有し、
該プログラムは、
仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けの構成を変更する前に、入出力の一時保留を他の仮想化装置に対して要求する手段と、
該要求を受けた他の仮想化装置は処理中の入出力の完了すると共に、以降ホストプロセッサからの入出力要求を一時保留する状態に遷移して、完了報告を返す手段と、
他の仮想化装置からの完了報告を受けた場合に、該他の仮想化装置に対して、仮想ボリュームに対するストレージ装置の記憶領域の割り当ての変更を指示する手段と、
他の仮想化装置からの割当ての変更の完了報告を受ける手段と、
一時保留にされた該入出力の状態を解除するための指示を他の仮想化装置に送る手段と、を有することを特徴とする仮想化装置。
【請求項１０】
更に、仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けする構成情報を登録する構成情報テーブル、及び該構成情報の変更前後の差分を記録する差分情報テーブルを格納するメモリと、
該構成変更制御プログラムをからの要求を受けて、入出力の一時保留、構成情報の変更を行うための構成管理プログラムと、
該構成管理プログラムを実行する第二のプロセッサを有し、
該第二のプロセッサで構成管理プログラムの実行することにより、該構成情報テーブルの内容を更新することを特徴とする請求項９記載の仮想化装置。
【請求項１１】
前記第一のプロセッサと該第二のプロセッサとは、同じプロセッサにより構成されることを特徴とする請求項１０記載の仮想化装置。
【請求項１２】
前記構成変更制御プログラムは、更に前記構成変更制御プログラムの各手段を実行させる該第一のプロセッサを限定するための調停処理を行う手段を有する請求項９記載の仮想化装置。
【請求項１３】
複数面から成る前記構成情報テーブルが用意され、夫々の面のテーブルが切替えられて使用されることを特徴とする請求項１０記載の仮想化装置。
【請求項１４】
更に、該仮想ボリュームが対応するある記憶領域から他の記憶領域に構成の変更をする場合、該他の記憶領域にデータをコピー処理するためのコピー処理プログラムと、該コピー処理プログラムによるデータのコピー処理の進捗状況を管理するコピー進捗テーブルを有することを特徴とする請求項９乃至１３のいずれかに記載の仮想化装置。
【請求項１５】
実記憶領域を提供するための複数の記憶領域と、該記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する仮想化装置を有するストレージ装置であって、該仮想化装置は、
仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けの構成を変更する前に、入出力の一時保留を他の仮想化装置に対して要求する手段と、
該要求を受けた他の仮想化装置は処理中の入出力の完了すると共に、以降ホストプロセッサからの入出力要求を一時保留する状態に遷移して、完了報告を返す手段と、
他の仮想化装置からの完了報告を受けた場合に、該他の仮想化装置に対して、仮想ボリュームに対する記憶領域の割り当ての変更を指示する手段と、
他の仮想化装置からの割当ての変更の完了報告を受ける手段と、
一時保留にされた該入出力の状態を解除するための指示を他の仮想化装置に送る手段と、を有することを特徴とするストレージ装置。
【請求項１６】
上記各手段を実現するための構成変更制御プログラムと、該プログラムを実行するプロセッサを有することを特徴とする請求項１５記載のストレージ装置。
【請求項１７】
該仮想ボリュームに対する割当ての対象となるある記憶領域から他の記憶領域に構成の変更をする場合、ある記憶領域から他の記憶領域にデータをコピーするためのコピー制御部を有することを特徴とする請求項１５又は１６記載のストレージ装置。
【請求項１８】
仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置における仮想ボリュームに対するストレージ装置の記憶領域の割り当てを変更する方法において、
複数の仮想化装置に対し、ある時点以降ホストプロセッサから受け付ける入出力の処理を一時保留させるための要求を発し、
該要求に対して処理中の入出力の処理が完了した旨の報告を各仮想化装置から受けたことを条件に、各仮想化装置に対してストレージ装置の記憶領域の割り当て変更を行わせ、
各仮想化装置からの割当ての変更の完了報告を受けた後、一時保留させていた該入出力の状態を解除することを特徴とする変更方法。
【請求項１９】
管理コンソールから構成変更の指示を入力するステップを含み、該入力指示に従って前記一時保留させるための要求が発せられることを特徴とする請求項１８記載の変更方法。
【請求項２０】
ストレージ装置が持つある記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置を含むストレージシステムにおける仮想ボリュームに対するストレージ装置の記憶領域の割り当ての変更を行うプログラムにおいて、
複数の仮想化装置に対し、ホストプロセッサからの受け付けている処理中の入出力を完了させ、以降受け付ける入出力の処理を一時保留させるための要求を発行する手段と、
該要求に対する処理中の入出力の処理が完了した旨の報告を、複数の仮想化装置から受ける手段と、
該要求を発した先の全ての仮想化装置から該完了報告を受けた場合、全ての仮想化装置に対してストレージ装置の記憶領域の割り当て変更を指示する手段と、
全ての仮想化装置からの該割当ての変更の完了報告を受ける手段と、
一時保留にされた該入出力の状態を解除するための指示を全ての仮想化装置に送る手段と、を有する構成変更のためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムに係り、特に冗長構成の仮想化装置を有するストレージシステムにおける仮想ボリュームに対する実ストレージ領域の割り当ての変更に関する。
【背景技術】
【０００２】
所謂ＳＡＮ（Storage Area Network）において、ストレージ装置の記憶領域に関連して仮想的な複数のボリュームを設定し、ホストプロセッサからネットワークを介してそれらのボリュームを使用するシステムが知られている。
【０００３】
ネットワークを介して接続されたストレージ装置を仮想化してホストプロセッサからの入出力を可能にするストレージ仮想化装置に関しては、例えば特開２０００−２４２４３４号公報（特許文献１）に開示されているようなシステムがある。この技術によれば、記憶装置システム１とホスト３０との間にスイッチ装置２０を設け、このスイッチ装置２０でホスト３０に提供される仮想的な記憶装置システムの仮想化の設定を変更することにより、ホストに提供される仮想的な記憶領域が割り当てられているストレージ装置を変更する。
【０００４】
【特許文献１】特開２０００−２４２４３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に示されるストレージ仮想化装置（例えばディスクアレイスイッチ）群の構成情報は、各ストレージ仮想化装置ごとに独立に管理されている。
【０００６】
このようなストレージ仮想化システムにおいて、システムの稼動中に構成情報を変更することは、入出力の処理中にその宛先が変更されることとなり、データの破壊や入出力障害を招く。そのために、構成変更中に同時に稼動するストレージ仮想化装置を１台のみに縮退する方法も考えられるが、負荷の集中や耐障害性が低下するという問題が生じる。上記特許文献１には、記憶装置システムが稼動中に、あるボリュームを他のボリュームに移行すると言った構成情報の変更については言及されていない。
【０００７】
本発明の目的は、冗長構成の仮想化装置を有するストレージシステムにおいて、システムの稼動中にデータ破壊や入出力障害を回避して、ストレージ仮想化装置の構成情報を変更することにある。
【課題を解決するための手段】
【０００８】
本発明は、仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置において、複数の仮想化装置に対し、ある時点以降ホストプロセッサから受け付ける入出力の処理を一時保留させるための要求を発し、この要求に対して処理中の入出力の処理が完了した旨の報告を各仮想化装置から受けたことを条件に、各仮想化装置に対してストレージ装置の記憶領域の割り当て変更を行わせ、各仮想化装置からの割当ての変更の完了報告を受けた後、一時保留させていた入出力の状態を解除するように構成する。
【０００９】
ストレージシステムに関する好ましい例では、複数の記憶領域が規定され得るストレージ装置と、このストレージ装置が持つある記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する複数の仮想化装置とを有するストレージシステムにおいて、仮想ボリュームに対するストレージ装置の記憶領域の割り当ての構成を変更するための構成変更制御装置とを有し、構成変更制御装置は、全ての仮想化装置に対し、構成変更の前に入出力の一時保留を要求する手段と、この要求を受けた全ての仮想化装置は処理中の入出力の完了すると共に、以降ホストプロセッサからの入出力要求を一時保留する状態に遷移して、構成変更制御装置に完了報告を返す手段と、構成変更制御装置は、要求を発した先の複数の仮想化装置からの完了報告を受けた場合に、その仮想化装置に対して、仮想ボリュームに対するストレージ装置の記憶領域の割り当ての変更を指示する手段とを有して構成される。
【００１０】
更に、複数の仮想化装置に関する好ましい例としては、仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けの構成を変更するための構成変更制御プログラムと、構成変更制御プログラムを実行する第一のプロセッサとを有し、この構成変更制御プログラムは、仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けの構成を変更する前に、入出力の一時保留を他の仮想化装置に対して要求する手段と、要求を受けた他の仮想化装置は処理中の入出力の完了すると共に、以降ホストプロセッサからの入出力要求を一時保留する状態に遷移して、完了報告を返す手段と、他の仮想化装置からの完了報告を受けた場合に、他の仮想化装置に対して、仮想ボリュームに対するストレージ装置の記憶領域の割り当ての変更を指示する手段と、他の仮想化装置からの割当ての変更の完了報告を受ける手段と、一時保留にされた該入出力の状態を解除するための指示を他の仮想化装置に送る手段とを有して構成される。
【００１１】
更にまた、ストレージ装置に関する構成の例として、実記憶領域を提供するための複数の記憶領域と、この記憶領域を割当てて複数の仮想ボリュームを形成すると共に、ある仮想ボリュームに対するホストプロセッサからの入出力を処理する仮想化装置を有するストレージ装置であって、この仮想化装置は、仮想ボリュームとストレージ装置の実領域となる記憶領域を対応付けの構成を変更する前に、入出力の一時保留を他の仮想化装置に対して要求する手段と、要求を受けた他の仮想化装置は処理中の入出力の完了すると共に、以降ホストプロセッサからの入出力要求を一時保留する状態に遷移して、完了報告を返す手段と、他の仮想化装置からの完了報告を受けた場合に、該他の仮想化装置に対して、仮想ボリュームに対する記憶領域の割り当ての変更を指示する手段と、他の仮想化装置からの割当ての変更の完了報告を受ける手段と、一時保留にされた該入出力の状態を解除するための指示を他の仮想化装置に送る手段とを有するストレージ装置として構成される。
【００１２】
更に好ましい例では、構成情報の変更と同期して、ストレージ装置間でデータのコピーを行うことにより、システムの稼動中に一方のストレージ装置から他方のストレージ装置にデータを移行することができる。また、構成変更制御の機能および上記コピー処理機能をストレージ装置で行うことにより、コピー機能を持たない仮想化装置でもデータ移行を可能にする。
【発明の効果】
【００１３】
本発明によれば、システムの稼動中に、入出力の一時保留の影響を極力回避して、仮想ボリュームの構成情報の変更を行うことができる。これより、システムの稼動中に一方のストレージ装置のデータを他方のストレージ装置にデータを移行することができる。さらにコピー機能を持たない仮想化装置でもデータ移行が可能になる。冗長構成で稼動中に、仮想ボリュームの割当て先を変更可能なストレージ装置を実現できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を、図面を用いて説明する。
まず、図１から図８を用いて第一の実施形態について説明する。
【００１５】
図１は、ストレージシステムの全体の構成を示す図である。
システムは、少なくとも１台のホストプロセッサ１２、複数のストレージ装置１３、複数の仮想化スイッチ１１、構成変更制御装置１６及び管理コンソール１４が、ＬＡＮのようなネットワーク１５に接続されて構成される。
ホストプロセッサ１２は、ストレージ装置１３に格納されるデータを使用する計算機である。ホストプロセッサ１２は、仮想化スイッチ１１が提供する記憶領域を仮想化スイッチ１１に接続されていない他の計算機に提供する機能を有するファイルサーバでも良い。
【００１６】
ストレージ装置１３は、記憶装置13a又は記憶装置システム13bにより構成される。ここで、記憶装置13aは、例えばハードディスクドライブやDVDドライブ等の単体の記憶装置であり、記憶装置システム13bは、複数の記憶装置13a及びこれらを制御する制御装置１３０１を有するストレージサブシステムである。記憶装置１３１は、記憶装置13aの記憶領域を論理ユニット（以下「ＬＵ」と言う）１３１として構成する。ＬＵ１３１は、論理的な記憶領域であり、ホストプロセッサ１２などストレージ装置１３に接続される装置には、論理的に独立した１つのストレージ装置として認識される。
【００１７】
また、論理ユニット１３１は、複数の部分的な論理的記憶領域（以下「実領域」）１３２から構成される。各実領域１３２も、ストレージ装置１３が有する物理的な記憶領域に対応する。実領域１３２のサイズは任意であり、その範囲は、連続したアドレスをもつ領域である。
【００１８】
仮想化スイッチ１１は、図示するように通信線やスイッチによって他の装置と接続されており、他の装置と通信することができる装置である。また、仮想化スイッチ１１は、仮想化スイッチ１１自身に接続されている複数のストレージ装置１３が有する記憶領域をまとめて一つまたは複数の記憶領域とする（所謂、仮想化する）仮想化装置である。そして、仮想化スイッチ１１は、仮想化した記憶領域を、仮想化スイッチ１１に接続されるホストプロセッサ１２に提供する。仮想化スイッチ１１がホストプロセッサ１２に対して提供する仮想的な記憶領域を以下、仮想ボリューム１００と称する。
【００１９】
仮想化スイッチ１１とホストプロセッサ１２との間および仮想化スイッチ１１とストレージ装置１３との間で使用される通信線やスイッチでは、ファイバチャネル等のプロトコルが使用される。ここで、使用される通信線やプロトコルはローカルエリアネットワーク等で使用される通信線やプロトコルでも良い。仮想化スイッチ１１は、ホストプロセッサ１２とストレージ装置１３との間に接続され、ホストプロセッサ１２が発行するコマンドをストレージ装置１３側に転送する機能を有する。
【００２０】
仮想ボリューム１００は、少なくとも１つの実領域１３２から構成される仮想化された記憶領域である。仮想化スイッチ１１は、少なくとも１つの仮想ボリューム１００をホストプロセッサ１２に提供することができる。各々の仮想ボリューム１００には、仮想ボリュームを特定するための仮想化スイッチ１１内で一意の識別子（以下「仮想ボリューム識別子」）が付与される。また、個々の仮想ボリューム１００の記憶領域には連続したアドレスが付されている。ホストプロセッサ１２は、ストレージ装置１３のＬＵ１３１内の実領域１３２を直接指定しないで、仮想ボリューム識別子及び仮想ボリューム１００内の場所を示すアドレスを指定して、ストレージ装置１３に格納されたデータをアクセスする。
【００２１】
管理コンソール１４は、仮想ボリューム１００を作成するためにシステム管理者によって使用されるパーソナルコンピュータＰＣのような計算機であり、表示装置や入力装置、及びメモリ等を備える。管理コンソール１４は、ＬＡＮ１５を介して仮想化スイッチ１１と接続され、互いに通信することができる。
【００２２】
構成変更制御装置１６は、仮想化スイッチ１１を制御して構成情報、即ち仮想ボリューム１００と実領域１３２との対応付けの変更を制御する装置である。構成変更制御装置１６は、例えば、ＰＣやサーバによって構成することができ、ＬＡＮ１５を介して仮想化スイッチ１１と接続され、互いに通信することができる。
【００２３】
図２は、図１の仮想化スイッチ１１の内部構成を示す。
仮想化スイッチ１１は、入力ポート２４０、出力ポート２５０、転送部２３０、プロセッサ２１０、メモリ２２０、バス２７０および通信部２６０から構成される。転送部２３０、プロセッサ２１０、メモリ２２０および通信部２６０は全てバス２７０に接続され、互いにデータを送受信する。
【００２４】
入力ポート２４０は、仮想化スイッチ１１がホストプロセッサ１２と通信するための通信線を接続するポートである。出力ポート２５０は、仮想化スイッチ１１がストレージ装置１３と通信するための通信線を接続するポートである。尚、入力ポート２４０及び出力ポート２５０を構成する要素は、共通の場所にあっても良い。この場合、どのポートを入力ポートあるいは出力ポートとして使用するかは、使用者が選択する。
【００２５】
転送部２３０は内部メモリを有し、そのメモリに転送情報テーブル２３１を保持する。転送情報テーブル２３１には、各入力ポート２４０を介して仮想化スイッチ１１と通信可能なホストプロセッサ１２、及び各出力ポート２５０を介して仮想化スイッチ１１と通信可能なストレージ装置１３との間の対応関係についての情報が格納される。
【００２６】
転送部２３０は、転送情報テーブル２３１を参照し、入力ポート２４０でホストプロセッサ１２から受信した入出力要求を、要求先のストレージ装置１３と仮想化スイッチ１１との間の通信に使用される出力ポート２５０へ転送する。また、転送部２３０は、出力ポート２５０でストレージ装置１３から受信した応答情報やデータを、受信すべきホストプロセッサ１２と仮想化スイッチ１１の間の通信に使用される入力ポート２４０へ転送する。ただし、ホストプロセッサ１２から受け取った入出力要求が仮想ボリューム１００に対する入出力要求である場合には、転送部２３０は、後述する入力キュー２４１にその入出力要求をエンキューし、プロセッサ２１０にその処理を依頼する。また、後述する出力キュー２５１に積まれた入出力要求を、出力ポートを介してストレージ装置１３へ転送する。
【００２７】
プロセッサ２１０はメモリ２２０上に格納されたプログラムを実行し、ホストプロセッサ１２から仮想ボリューム１００宛ての入出力の処理や構成情報の変更処理を行う。
【００２８】
メモリ２２０は、プロセッサ２１０が実行するプログラムやその実行に必要な情報を格納する。メモリ２２０が格納するプログラムおよびデータには、構成管理プログラム２１１、ＩＯ処理プログラム２１３、入力キュー２４１、出力キュー２５１、保留中キュー２４２、処理中キュー２５２、構成情報２２１および構成情報差分２２２が含まれる。
【００２９】
構成管理プログラム２１１は、構成変更制御装置１６からの要求を受けて、入出力の一時保留および再開処理や構成情報の変更処理を行うためのプログラムである。
ＩＯ処理プログラム２１３は、ホストプロセッサ１２からの仮想ボリューム１００宛ての入出力の処理、即ち入出力をストレージ装置１３宛ての入出力へ変換して転送する処理のためのプログラムである。
【００３０】
入力キュー２４１は転送部２３０が仮想ボリューム１００宛ての入出力要求を積むためのキューである。出力キュー２５１はＩＯ処理プログラム２１３が処理したストレージ装置宛ての入出力要求を積むためのキューである。入力キュー２４１および出力キュー２５１の数は任意である。
【００３１】
保留中キュー２４２は、仮想化スイッチ１１が入出力の処理を一時的に保留している状態（ＩＯ一時保留状態）のときに受け付けた仮想ボリューム１００宛ての入出力要求を記憶しておくためのキューである。処理中キュー２５２は、仮想スイッチ１１が処理してストレージ装置１３宛てに転送した仮想ボリューム１００宛ての入出力要求を、該入出力が完了するまで記憶しておくためのキューである。
【００３２】
構成情報２２１とは、仮想ボリューム１００と実領域１３２との対応付けの表である。構成情報差分２２２とは、構成情報２２１を変更する際の変更前後の差分を記録するバッファである。
【００３３】
なお本実施形態では、保留中キュー２４２、処理中キュー２５２、構成情報２２１および構成情報差分２２２は仮想化スイッチ１１ごとに１個づつである。
通信部２６０はプロセッサ２１０がＬＡＮ１５を介して、構成変更制御装置１６および管理コンソール１４と通信可能にする。
【００３４】
図３は、図１の構成変更制御装置１６の内部構成を示す。
構成変更制御装置１６は、例えば管理サーバのような装置であり、プロセッサ１６１、メモリ１６２、バス２７０および通信部２６０から構成される。プロセッサ１６１、メモリ１６２および通信部２６０は全てバス２７０に接続され、互いにデータを送受信する。
プロセッサ１６１はメモリ１６２上に格納されたプログラムを実行し、仮想化スイッチ１１の構成変更を制御する。
【００３５】
メモリ１６２は、プロセッサ１６１が実行するプログラムやその実行に必要な情報を格納する。メモリ１６２が格納するプログラムおよびデータには、構成変更制御プログラム２１２、構成情報２２１および構成情報差分２２２が含まれる。
構成変更制御プログラム２１２は、仮想化スイッチ１１の構成変更を制御するためのプログラムである。
【００３６】
図４は、ストレージシステムにおける構成情報２２１のテーブルを示す図である。構成情報のテーブル２２１は、仮想化スイッチ１１及び構成変更制御装置１６内に備えられる。
構成情報２２１は、仮想ボリュームのアドレス４１、オフセット４２、サイズ４３、ＬＵのアドレス４４、及びオフセット４５を含むエントリにより構成される。各エントリは、実領域１３２および実領域１３２が割当てられている仮想ボリューム１００上の部分領域に対応付けられている。ＬＵのアドレス４はエントリと対応する実領域１３２が含まれるＬＵ１３１を仮想化スイッチ１１が識別するための情報を示し、オフセット４５は実領域１３２のＬＵ１３１上の開始アドレスを示し、サイズ４３は実領域１３２のサイズを示す。
【００３７】
仮想ボリュームのアドレス４１は、ホストプロセッサ１２が仮想ボリューム１００を識別するための情報、オフセット４２は、そのエントリに対応する部分領域の仮想ボリューム１００上の開始アドレスを示す。なお、仮想ボリュームのアドレス４１およびＬＵのアドレス４４は、具体的にはファイバチャネルのＷＷＮ（World Wide Name）またはポートＩＤ、およびＬＵＮ（logical Unit Number）との組を使用する。
【００３８】
次に、図５を参照して、このストレージシステムにおける構成変更について概略説明する。図５は、ストレージシステムおける構成変更制御装置１６と仮想化スイッチ１１との通信手順を示す図である。
【００３９】
管理コンソール１４から構成情報の変更要求の指示が入力されると、それは構成変更制御装置１６に伝えられる（５０１）。そしてステップ５０２から５０５の処理を実行して、ホストプロセッサ１２が発行した入出力の処理を一時保留する。これは構成変更の前後で処理中の入出力が存在すると矛盾が生じるためである。もしこのように入出力処理中に構成情報が変更されると、その入出力は正しい実領域１３２と対応付けが出来なくなり、データ破壊を生じる可能性がある。このデータ破壊は以下の処理により防止される。
【００４０】
すなわち、構成変更の指示を受けた構成変更制御装置１６は、全仮想化スイッチ１１に対して入出力処理を一時保留する要求（ＩＯ一時保留要求）を発行する（５０２）。この保留要求を受けた仮想化スイッチ１１は、処理中の入出力及び以後の入出力処理を一時保留して、処理中の入出力の実行完了を待つ（５０３）。実行完了後、構成変更制御装置１６に対し、ステップ５０３の完了の報告（ＩＯ一時保留完了報告）をする（５０４）。その後、構成変更制御装置１６は全ての仮想化スイッチ１１からの完了報告を待つ（５０５）。
【００４１】
以上の処理で構成情報の変更が可能になった。そして次に、ステップ５０６から５０９が実行され、全ての仮想化スイッチ１１の構成情報を一括して変更する。これは仮想化スイッチ１１が持つ構成情報の一貫性が取れていないと、処理する仮想化スイッチ１１により、同じ仮想ボリュームに対応する入出力が異なる実領域１３２と対応付けられることでデータ破壊を生じる可能性があるためである。
【００４２】
構成変更制御装置１６は、全ての仮想化スイッチ１１に構成情報の差分とその差分を用いた構成情報の変更要求を送信する（５０６）。要求を受けた仮想化スイッチ１１は、構成情報を変更する（５０７）。そして構成変更が完了した後、構成変更制御装置１６に対し、構成情報変更の完了を報告する（５０８）。その後構成変更制御装置１６は全ての仮想化スイッチ１１からの完了報告を待つ（５０９）。
【００４３】
最後にステップ５１０から５１３を実行し、ステップ５０３で一時保留した入出力を再開する。
構成変更制御装置１６は、全ての仮想化スイッチ１１に対し一時保留している入出力の処理を再開する要求（ＩＯ再開要求）を発行する（５１０）。要求を受けた仮想化スイッチ１１は、一時保留中の入出力を再開する（５１１）。そして構成変更制御装置１６に対し、再開処理の完了を報告する（５１２）。その後、構成変更制御装置１６は全ての仮想化スイッチ１１からの完了報告を待ち（５１３）、管理コンソールへ完了報告を行う（５１４）。
このようにして、入出力処理中（即ちシステムの稼動中）の構成情報の矛盾や複数の仮想化スイッチ１１の間での構成情報の矛盾を発生させずに、構成変更が可能になる。
【００４４】
次に、図６を参照して、構成変更制御装置１６における構成変更制御プログラム２１２の処理動作について説明する。
【００４５】
まず、プロセッサ１６１は、全ての仮想化スイッチ１１に対し、ＩＯ一時保留要求を発行し、全ての仮想化スイッチ１１からの完了報告を待つ（６０１）。待ち合わせが正常に完了した場合（６０２“Ｙ”）、構成情報２２１の変更が可能になる。この場合、プロセッサ１６１は全ての仮想化スイッチ１１に対し、構成変更要求と構成情報差分２２２を送信して構成情報２２１を変更させる。そして全ての仮想化スイッチ１１からの完了報告を待つ（６０３）。待ち合わせが正常に完了した場合（６０４“Ｙ”）、構成情報２２１が正常に変更されたので、保留中の入出力を再開するために、プロセッサ１６１は全ての仮想化スイッチ１１に対し、ＩＯ再開要求を送信し、全ての仮想化スイッチ１１からの完了報告を待つ（６０５）。待ち合わせが正常に完了した場合（６０６“Ｙ”）、全ての変更処理が成功したと判断して、管理コンソール１４に成功した旨を示すメッセージを返す（６０７）。以上が構成変更制御プログラム２１２の正常処理の流れである。
【００４６】
一方、仮想化スイッチ１１がＩＯ一時保留要求を正常に完了しなかった場合（６０２“Ｎ”）、以後の処理を続行するか否かを判断する（６０８）。
本実施形態では、成功の応答を返した仮想化スイッチ１１が２台以上ある場合、処理を続行し（６０８“Ｙ”）、成功の応答を返さなかった仮想化スイッチ１１は使用しないようにするために、制御対象から外し（６１１）、ステップ６０３から処理を継続する。なおステップ６１１で、仮想化スイッチ１１のいくつかを制御対象から外した場合、これらの仮想化スイッチ１１の入出力を誤って再開してしまうと不正な構成情報２２１で運用されてしまうことになるので、プロセッサ１６１はステップ６０７で、管理コンソール１４に対して制御対象から外した仮想化スイッチ１１を報告し、「構成変更の際に入出力の一時保留の同期に失敗して構成を変更できなかったため仮想化スイッチのいくつかを停止した」旨のメッセージを管理コンソール１４の表示装置に表示する。
【００４７】
また、処理を続行しない場合（６０８“Ｎ”）、プロセッサ１６１はまず全ての仮想化スイッチ１１に対してＩＯ再開要求を送信し、全ての仮想化スイッチ１１からの完了報告を待ち（６０９）、ステップ６０１以降を再試行するか否かを判定する（６１０）。ここで、ステップ６０２における異常がタイムアウトであった場合、このタイムアウトは仮想化スイッチ１１が多数の入出力を処理中のためにそれらの完了を待ちきれないことに起因すると考えられる。従って、再試行によりこの完了待ちが成功する可能性があるため、他に異常がない場合は、本実施形態では一定回数に限り再試行する（６１０“Ｙ”）。ステップ６１０“Ｙ”以降、プロセッサ１６１はステップ６０１から処理を繰り返す。
【００４８】
一方、再試行しない場合（６１０“Ｎ”）には、ステップ６０９で成功が返らなかった仮想化スイッチ１１が有れば、これを制御対象から外す（６１７）。そして、管理コンソール１４に対してエラーの発生とその要因を報告し、「仮想化スイッチの入出力完了待ちに失敗した」旨のメッセージを表示する（６１６）。より望ましくは、管理コンソール１４は、「ホストプロセッサ１２から仮想ボリューム１００への入出力頻度が低いときに構成変更の再試行せよ」と、管理者に促す旨のメッセージを表示する。
【００４９】
さらに、ステップ６０４で異常検出、即ち構成情報２２１の変更に失敗した場合は、プロセッサ１６１は元の構成情報２２１に戻して（６１２、６１３）入出力を再開させた（６１４、６１５）後に、管理コンソール１４に対してエラーの発生とその要因を報告し、例えば「管理者が指定した構成情報への変更に失敗した」という旨のメッセージを表示する（６１６）。
【００５０】
なお、ステップ６１３および６１５で異常を検出した場合（“Ｎ”の場合）は、以降の処理を続行できないので、プロセッサ１６１は成功の応答が返らなかった仮想化スイッチ１１を制御の対象から外し（６１７）、ステップ６１６の処理を行い、例えば「管理者が指定した構成情報への変更に失敗しリカバリ処理にも失敗した」旨のメッセージを表示する。以上の様に、プロセッサ１６１は構成情報２２１の変更を制御する。
【００５１】
次に、図７を参照して、仮想化スイッチ１１における構成管理プログラム２１１の処理動作について説明する。
構成管理プログラム２１１が呼び出される要因は、仮想化スイッチ１１が構成変更制御装置１６から、ＩＯ一時保留要求、ＩＯ再開要求、構成情報変更要求のいずれかを受領した場合である。まず、ＩＯ一時保留要求を受領した場合（７０１“Ｙ”）、プロセッサ２１０は、ＩＯ処理プログラム２１３を呼び出してＩＯ一時保留状態にする（７０２）。そして一時保留状態への遷移に成功した場合（７０３“Ｙ”）、プロセッサ２１０は、構成変更プログラム２１２を実行するプロセッサ１６１に対して成功の応答を返す（７０４）。
【００５２】
次に、構成情報変更要求を受領した場合（７０５“Ｙ”）、プロセッサ２１０は、ＩＯ一時保留状態であることを確認する（７０６）。これは誤って入出力の処理中に構成情報２２１を変更しないためである。さらにプロセッサ２１０は構成情報２２１を変更する（７０７）。その結果、正常に変更できた場合には（７０８“Ｙ”）、ステップ７０４を実行する。
【００５３】
また、ＩＯ再開要求を受領した場合（７０９“Ｙ”）、プロセッサ２１０は、ＩＯ一時保留状態であることを確認する（７１０）。その結果、保留状態であれば（７１０“Ｙ”）、ＩＯ処理プログラム２１３を呼び出してＩＯ一時保留状態を解除して入出力を再開する（７１１）。正常に変更できた場合（７１２“Ｙ”）、ステップ７０４を実行する。以上が構成管理プログラム２１１の正常パスである。
【００５４】
一方、異常パスは、ステップ７０３、７０６、７０８、７１０、７１２で、否（“Ｎ”）になった場合であり、いずれの場合もエラーとその要因をプロセッサ１６１に返す（７１３）。
このように、プロセッサ２１０は構成管理プログラム２１１を実行することで、構成変更制御装置１６の指示に従って構成情報２２１を変更できる。
【００５５】
次に、図８を参照して、仮想化スイッチ１１におけるＩＯ処理プログラム２１３の処理動作について説明する。
ＩＯ処理プログラム２１３が呼び出される要因は、入力キュー２４１に入出力要求がエンキューされたとき、処理中キュー２５２の入出力要求が完了したとき、構成管理プログラム２１１の処理により、ＩＯ一時保留状態に遷移するときおよびＩＯ再開要求により、ＩＯ一時保留状態を解除するときである。
【００５６】
入力キュー２４１に入出力要求がエンキューされたとき（８０１）は、プロセッサ２１０は、ＩＯ一時保留状態でない場合（８０２“Ｎ”）、その入出力要求を処理する。即ち構成情報２２１を参照して仮想ボリューム１００のアドレスからＬＵ１３１のアドレスへの変換を行って、出力キュー２５１にエンキュー（以下、入出力要求を処理したと言う）した後、その入出力要求を処理中キュー２５２にエンキューする（８０３）。その後プロセッサ２１０はイベント待ち（８０４）を実行し、次の起動要因を待つ。
一方、ＩＯ一時保留状態にある場合（８０２“Ｙ”）、プロセッサ２１０はその入出力要求を保留中キュー２４２にエンキューし（８０５）、ステップ８０４以降の処理を実行する。
【００５７】
処理中キュー２５２の入出力要求が完了したとき（８０７“Ｙ”）、プロセッサ２１０は、処理中キュー２５２から入出力要求をデキューする（８０８）。そしてＩＯ一時保留状態か否かを確認する（８０９）。もし、ＩＯ一時保留状態でない場合は（８０９“Ｎ”）、プロセッサ２１０はステップ８０４以降の処理を実行する。
一方、ＩＯ一時保留状態である場合は（８０９“Ｙ”）、プロセッサ２１０は処理中キュー２５２を検査ずる（８１０）。検査の結果、空になっていた場合（８１０“Ｙ”）には、構成管理プログラム２１１にＩＯ保留状態への遷移完了を報告し（８１１）、処理を完了する。これに対して処理中キュー２５２が空でない場合（８１０“Ｎ”）には、プロセッサ２１０はステップ８０４からの処理を繰り返す。
【００５８】
ＩＯ一時保留状態に遷移するとき（８１２“Ｙ”）は、プロセッサ２１０はＩＯ一時保留状態になったことを記憶し（８１３，８１４）、ステップ８１０から処理を継続する。
【００５９】
また、ＩＯ再開要求を受けた場合には（８１５“Ｙ”）、ＩＯ一時保留状態にあるか否かを確認する（８１６）。確認の結果、保留状態にあれば、ＩＯ一時保留状態を解除し、保留中キュー２４２の入出力要求を処理して、処理中キュー２５２へエンキューする（８１７）。そして正常にエンキューできた場合には(８１８“Ｙ”)、ステップ８１１の処理（即ち完了報告）を実行する。以上が、ＩＯ処理プログラム２１３が正常に実行された場合の処理である。
【００６０】
これに対して、ＩＯ処理プログラム２１３の処理が正常でない場合には、ステップ８１４、８１６、８１８で否（“Ｎ”）となった場合である。これらの場合には、何れも処理を継続できないので構成管理プログラム２１１にエラーとその要因を返す（８１９）。
【００６１】
この実施形態においては、構成変更制御プログラム２１２の実行時のステップ６１０によりデータ破壊の原因となる構成情報２２１の変更中の入出力処理を回避し、さらにステップ６０３により同様にデータ破壊の原因となる仮想化スイッチ１１間の構成情報２２１の矛盾を回避する。
【００６２】
次に、図９から図１１を用いて第二の実施形態について説明する。
図９は、ストレージシステムにおける仮想化スイッチ１１の内部構成を示す。
図２に示す仮想化スイッチ１１と相違する点は、バス２７０に接続されたプロセッサ１６１を備え、メモリ２２０に構成変更制御プログラム２１２が格納され、この構成変更制御プログラム２１２をプロセッサ１６１が実行することである。ここでプロセッサ１６１はタイマ１６５を備え、このタイマ１６５によりプロセッサ１６１で構成変更制御プログラム２１２の処理が周期的に起動される。なお、タイマ１６５はソフトウェアで実現したタイマであっても良い。
【００６３】
本実施形態によれば、仮想化スイッチ１１に構成変更制御プログラム２１２及びプロセッサ１６１を内蔵することにより、仮想化スイッチ１１を構成変更制御装置１６として機能させることができる（以下、このように機能付けられ仮想化スイッチ１１も構成変更制御装置１６と呼ぶ）。仮想化スイッチ１１が複数在る場合、それら全てに上記のような構成を備えて、構成変更制御装置１６としての機能付けを行うことができる。この様に全ての仮想化スイッチ１１に構成変更制御プログラム２１２及びプロセッサ１６１が備えられれば、図１に示すシステムにおける構成変更制御装置１６は不要となる。
なお、仮想化スイッチ１１に設けられるプロセッサ２１０に、プロセッサ１６１の機能を兼用させることもできる。
【００６４】
図１０は、第二の実施形態における構成変更制御プログラム２１２の処理を示す。図１０の処理動作で、調停処理６００を含む点が、図６と相違する。その調停処理６００の詳細な処理フローを図１１に示す。
調停処理６００は、複数の仮想化スイッチ１１に対応する複数のプロセッサ１６１のうち、ステップ６０１以降の処理を実行するプロセッサ（以下、マスタ権を持つプロセッサという）を１個に限定させる役目をする。本実施形態では、構成変更制御プログラム２１２は、管理コンソール１４からの構成変更の要求以外に、他の構成変更制御装置（仮想化スイッチ１１に内臓の）１６からの監視パケットの受信およびタイマ１６５によっても起動される。
【００６５】
図１１のフローチャートにおいて、まず、プロセッサ１６１は、監視パケットを受信した場合（１１０１“Ｙ”）、この監視パケットを送信した構成変更制御装置１６へ応答パケットを返し（１１０２）、調停処理を完了し、構成変更制御プログラム２１２の処理も完了する（１１１０）。
【００６６】
監視パケットおよび応答パケットは、送信した構成変更制御装置１６のＩＤ、マスタ権を持つプロセッサを内蔵する構成変更制御装置１６のＩＤ（以下、マスタ権を持つ装置のＩＤ）を含む。これらのＩＤは、構成変更制御装置１６を識別するための識別子であり、例えば通信部２６０が持つＩＰアドレスである。プロセッサ１６１が管理コンソールから構成変更の要求を受けた場合（１１０３“Ｙ”）、プロセッサ１６１は他の構成変更制御装置１６にマスタ権を主張する、即ち、自装置１６のＩＤを、マスタ権を持つ装置のＩＤとして記録した監視パケットを全ての構成変更制御装置１６に送信して応答を待つ（１１０４）。正常終了、即ち自装置１６以外のＩＤを、マスタ権を持つ装置のＩＤとして持つ応答パケットを受信しなかった場合（１１０５“Ｙ”）、処理を完了して構成変更制御プログラム２１２のステップ６０１に移る（１１０６）。
【００６７】
ステップ１１０３において、タイマ１６５の契機で呼び出された場合、プロセッサ１６１は他の構成変更制御装置１６を監視する、即ち監視パケットを、マスタ権を持つ装置に送信する（１１０７）。正常終了、即ちマスタ権を持つ装置からその装置のＩＤを、マスタ権を持つ装置のＩＤとして持つ応答パケットを受信した場合（１１０８“Ｙ”）、ステップ１１１０へ進み、処理を完了する。以上が調停処理の正常な場合である。
【００６８】
これに対して、異常な処理の場合、即ちステップ１１０５、１１０８で否（“Ｎ”）の場合には、マスタ権を持つ装置が他にあるため、管理コンソール１４にその旨を報告して（１１０９）、ステップ１１１０へ進み、処理を完了する。
その他の処理動作は、前述した第一の実施形態と同様なので、説明を省略する。
【００６９】
このように、第二の実施形態によれば、ステップ１１０４、１１０２の処理動作により、マスタ権を持つ装置が、最初に管理コンソール１４から構成変更の要求を受けた装置１６のみに限定される。即ち、システム中で複数のプロセッサ１６１が構成変更制御プログラム２１２を実行しても矛盾を生じさせずに構成情報２２１を変更することができる。
なお、ステップ１１０７、１１０２により、システムの管理者はマスタ権を持つ装置１６に障害が発生した場合に、管理コンソール１４を通じてこれを知ることができる。
【００７０】
次に、図１２から図１８を用いて第三の実施形態を説明する。
図１２は、ストレージシステムにおける仮想化スイッチ１１の内部構成を示す。
図９に示す仮想化スイッチ１１と比べて、一時保留制御表２２３を備える点、複数の処理中キュー２５２を持つ点、及び２面の構成情報２２１a,２２１bを持つ点が相違する。尚、プロセッサ２１０はタイマ２１５を備える。
【００７１】
一時保留制御表２２３は、構成情報２２１の各エントリと処理中キュー２５２との対応付けを記憶することで、入出力を一時保留するか否かを制御する。複数の処理中キュー２５２を持つ理由は、入出力の宛先のアドレスにより処理中キュー２５２を分けることにより、完了待ちおよび一時保留する入出力を限定するためである。構成情報２２１を二面持つのは、構成情報２２１の面の切替えを行うことにより、ＩＯ一時保留状態での処理時間を短縮するためである。また、タイマ２１５はＩＯ処理プログラム２１３の処理でプロセッサ２１０がセットし、ＩＯ一時保留状態のタイムアウトを検出するために設けられる。
【００７２】
図１３は、第三の実施形態における、構成変更制御装置１６と仮想化スイッチ１１との通信手順を示す。
【００７３】
この実施形態では、複数の仮想化スイッチ１１の中で構成変更制御の機能が有効となる仮想化スイッチは１台のみであるので、構成変更制御機能が有効である仮想化スイッチ１１と、その機能が有効でない仮想化スイッチ１１との間で通信が必要となる。その通信の手順が図１３に示す例である。また、同じ仮想化スイッチ１１の中でも同様の通信が行われる。そこで、図１３に示す「構成変更制御機能」は、図１２のプロセッサ１６１又はそこで実行される構成変更制御プログラム２１２を指し、「仮想化スイッチ１１」は自他の仮想化スイッチ１１におけるプロセッサ２１０又はそこで実行される構成管理プログラム２１１を指すもの想定して参照願いたい。
【００７４】
図１３について図５に示す通信手順との相違点は、ステップ５０１と５０２の間に、ステップ５３１〜５３３が追加されている。また、図５のステップ５０６〜５０８で、構成情報変更要求を送信することに代わり、構成情報切替要求を送信する。
【００７５】
さて、ステップ５３０で、プロセッサ１６１は全ての仮想化スイッチ１１に構成情報差分２２２を送信する（５３０）。全仮想化スイッチ１１では構成情報の差分を格納し、構成情報２２１を作成する（５３１）。仮想化スイッチ１１は構成情報２２１のうち、ＩＯ処理プログラム２１３で使用していない面（ここでは２２１ｂとする）を作成する。その後、仮想化スイッチ１１は構成情報差分受信完了報告を構成変更制御装置１６へ返す（５３２，５３３）。
またステップ５０７´で、仮想化スイッチ１１は構成情報２２１ａから構成情報２２１ｂへの切替を行う。このようにＩＯ一時保留状態の間（ステップ５０３から５１１の間）での処理が、ステップ５０７´による構成情報２２１の面切替えだけで済むようになるため、処理時間を短縮できる。
【００７６】
図１４は、図１２における一時保留制御表２２３の一例を示す。
一時保留制御表２２３は複数のエントリからなり、それぞれのエントリは一時保留の状態２２３１および処理中キューＩＤの２２３２を持つ。一時保留の状態２２３１と処理中キューのＩＤ２２３２は、共に完了待ちおよび一時保留する入出力を限定するために備えられる。なお、一時保留の状態２２３１および処理中キューのＩＤ２２３２の初期値は、仮想化スイッチ１１の初期化時または仮想ボリューム１００の作成時にプロセッサ２１０が、それぞれ一時保留でない状態および空いている（一時保留制御表２２３と対応付けられていない）処理中キュー２５２のＩＤを格納することにより行う。なお、空いている処理中キュー２５２が無い場合には、プロセッサ２１０が新規に処理中キュー２５２を作成し、そのＩＤをＩＤ２２３２に格納する。
【００７７】
図１５は、図１２における構成情報２２１を示す図である。
図１５は、図４に示すテーブルに比べ、制御表２２３のインデクス４１１を備えたことが相違する。インデクス４１１は一時保留制御表２２３のエントリを指している。構成情報２２１のエントリ即ち仮想ボリューム１００上のアドレス範囲が、一時保留制御表２２３のエントリを通して、一時保留の状態２２３１と処理中キュー２５２と対応付けられていることにより、アドレス範囲ごとに入出力を一時保留するか否かを制御することができる。
【００７８】
図１６は、図１２に示す仮想化スイッチ１１における構成変更制御プログラム２１２の処理を示す。
図１０に比べて相違する点は、調停処理（ステップ６００）の後に、ステップ６２５及び６２６が挿入され、ステップ６０２の後にステップ６２７が挿入されている。また、ステップ６０３及び６１２の代わりにステップ６０３´及び６１２´を含んでいる。
【００７９】
ステップ６２５とステップ６２６の処理は、図１３の手順５３０、５３３と同じである。ステップ６２７において、プロセッサ１６１は、プロセッサ２１０がＩＯ処理プログラム２１３の処理中にＩＯ一時保留状態のタイムアウトを検出した場合（６２７“Ｙ”）に、一旦ＩＯ再開要求を出し（６０９）、ステップ６０１以降を再試行させる。
【００８０】
このステップ６２７により、ホストプロセッサ１２による入出力のタイムアウトに先んじてＩＯ一時保留状態を解除することができる。またステップ６０３´および６１２´は構成情報２２１を書き換える代わりに、構成情報を２２１ａから２２１ｂへ切り替える処理を仮想化スイッチ１１に依頼する。構成情報２２１の切り替え処理は、メモリに構成情報を書き換えるよりも短時間で済むため、結果ＩＯ一時保留状態の時間を短縮する事が可能になる。
【００８１】
図１７は、図１２の仮想化スイッチ１１における構成管理プログラム２１１の処理を示す。
図７に示すフローチャートとの相違する点は、ステップ７０９“Ｎ”の後にステップ７１４から７１８が加わったことである。ステップ７０７では構成情報２２１のうち、ＩＯ処理プログラム２１３が使っていない面（２２１ｂとする）の更新を行っている。ステップ７１４“Ｙ”から７０４までの処理は、図１３の手順５０７´、５０８´と同じである。
【００８２】
構成管理プログラム２１１が呼び出される要因は、ＩＯ一時保留要求・再開要求、構成情報更新要求・構成情報切替要求の他に、ＩＯ処理プログラム２１３からの要求があり、この要求がある場合ステップ６０１“Ｎ”へ進む。次にプロセッサ２１０は、ＩＯ処理プログラム２１３の要求を構成変更制御装置１６へ伝える（７１８）。この処理により、ＩＯ一時停止状態のタイムアウトを契機に、構成変更制御プログラム２１２での処理を再試行することができる。
さらにステップ７０５からステップ７０４の処理は、図１３の手順５３１、５３２と同じである。
【００８３】
図１８は、図１２におけるＩＯ処理プログラム２１３の処理を示す。
図１８は図８のフローチャートに比べて、ステップ８０２、８０３、８０５，８０８，８０９，８１０，８１３，８１６，８１７の処理内容が相違する。
【００８４】
ステップ８０２´、８０９´、８１６´では、プロセッサ２１０はＩＯ一時保留状態であるか否かの判定に、構成情報２２１中のインデクス４１１が指すエントリの一時保留の状態２２３１を検査することで行う。これにより、入出力の宛先となっている仮想ボリューム１００のアドレス範囲ごとに入出力を一時保留するか否かを制御することができる。
【００８５】
さらに、ステップ８０３´および８０８´では、プロセッサ２１０は処理中キュー２５２として、構成情報２２１中のインデクス４１１が指すエントリの処理中キューのＩＤ２２３２で特定される処理中キュー２５２を使用する。
【００８６】
また、ステップ８１３´において、プロセッサ２１０は、構成情報差分２２２の内容により定義されている仮想ボリューム１００上の領域に対する入出力に限り、ＩＯ一時保留状態になるように状態を変更する。具体的には、プロセッサ２１０は構成情報差分２２２に登録されている全エントリに対応する、構成情報２２１ａのインデクス４１１をリストアップし、これらのインデクス４１１に対応するエントリの一時保留の状態２２３１を全て一時保留中に変更する。既に述べたように、ステップ８０２´ではこの一時保留の状態２２３１を検査している。従って、この一時保留の状態２２３１に対応する入出力要求、即ち構成情報差分２２２により影響を受ける入出力要求のみが保留されることになる。
【００８７】
ステップ８１０´において、プロセッサ２１０は、構成情報差分２２２に登録されている全エントリに対応する、構成情報２２１ａのインデクス４１１をリストアップし、これらのインデクス４１１に対応するエントリの処理中キューのＩＤ２２３２が指す処理中キュー２５２を全て検査し、空になっているか否かを判定する。
【００８８】
ステップ８０５´において、プロセッサ２１０は、処理中キューＩＤ２２３２に示された処理中キュー２５２にエンキューし、タイマ２１５をセットし、ステップ８１７´において、プロセッサ２１０はタイマ２１５をリセットして、ステップ８１３´で保留中にした一時保留の状態２２３１を一時保留でない状態にリセットし、保留中キュー２４２にエンキューされている入出力を処理し、処理中キューＩＤ２２３２に示された処理中キュー２５２にエンキューする。
【００８９】
ステップ８２０“Ｙ”では、プロセッサ２１０が、タイマ２１５のタイムアウトを契機にＩＯ処理プログラム２１３の処理を開始する場合である。この場合、プロセッサ２１０はステップ８１９を実行して、構成管理プログラムへエラーを返し、プロセッサ２１０はステップ８１８を処理する。
その他は第二の実施形態と同様なので説明を省略する。
【００９０】
このように第三の実施形態では、ステップ６２５と６０´により、ＩＯ一時保留状態の時間を短縮することができ、ステップ８０５´、８２０、６２７により、ＩＯ一時保留状態を解除し再試行することでＩＯ一時保留状態の時間を限定できる。これにより、ホストプロセッサ１２における入出力のタイムアウトまたは性能低下を防止できる。
【００９１】
さらに本実施形態では、ステップ８１３´と８０２´により一時保留する入出力を構成変更の影響を受ける範囲に限定することができる。これにより構成変更による性能低下を防止できる。
【００９２】
なお、本実施形態の変形例として、上記した２面の構成情報２２１を持たず、ステップ６２５を実行しない方法もある。例えば、ステップ６０３´即ち構成情報２２１を切り替える処理の代わりにステップ６０３の処理（第一の実施形態における構成情報２２１の書き換え）を行っても良い。その場合、ＩＯ一時保留状態の時間は長くなるが、メモリ２２０の容量を小さく抑えることができる。
【００９３】
次に、図１９から図２６を用いて第四の実施形態を説明する。
図１９は、第四の実施形態における仮想化スイッチ１１の内部構成を示す。
図１２に示す構成と比べて、コピー処理プログラム２１４とコピー進捗表２２４が追加され、１面から成る構成情報２２１を持つ点が異なる。
【００９４】
コピー処理プログラム２１４は、プロセッサ２１０で実行され、仮想ボリューム１００が対応するＬＵ１３１１を別のＬＵ１３１２へ変更するときに、ＬＵ１３１１からＬＵ１３１２へデータをコピーする処理を行う。コピー進捗表２２４は、コピー処理プログラム２１４の中で、コピー処理がどこまで進んだかを管理するために使用する表であり、複数のエントリからなる。各エントリはＬＵ１３１を構成する実領域１３２に対応する。本実施形態では、ＩＯ一時停止中に構成情報差分２２２を生成する。そのため構成情報２２１は1面しか持たない。その他の構成は図１２と同様である。
【００９５】
図２０は、図１９の仮想化スイッチ１１における構成情報２２１の例を示す。
図１５に比較して、ＬＵのアドレスとオフセットの組は、Ｒｅａｄコマンド用に４４と４５、Ｗｒｉｔｅコマンド用に４６と４７、及び４８と４９の２組からなる、計３組を持つ。本実施形態ではコピー処理プログラム２１４の進捗により、仮想ボリューム１００の対応がＲｅａｄ及びＷｒｉｔｅで異なる。さらに、Ｗｒｉｔｅの場合、ＬＵ１３１１とＬＵ１３１２へ二重書きをする場合もあるため、Ｗｒｉｔｅ用のアドレスとオフセットの組は２組用意する。
【００９６】
図２１は、図１９の仮想化スイッチ１１における構成変更制御プログラム２１２の処理を示す。
図１６のフローチャートに比べて、ステップ６２７と６０３の間に、ステップ６３１〜６３３および６３５が追加され、ステップ６０６と６０７の間にステップ６３４が追加されている。また、ステップ６０３´、６１２´の代わりにステップ６０３、６１２の処理が行われる。
【００９７】
コピー処理６３１において、プロセッサ１６１は、コピー処理プログラム２１４の起動を行う。コピーが異常無しに行われた場合（６３２“Ｙ”）、プロセッサ２１０はコピー進捗表２２４を参照して、構成情報差分２２２を作成する。尚、差分の作成についての詳細は図２６を参照して後で説明する。
【００９８】
ステップ６３４において、プロセッサ１６１はＬＵ１３１１からＬＵ１２１２へのコピーが全て完了したか否かを、コピー進捗表２２４を検査して判断する。コピーが完了している場合（６３４“Ｙ”）、ステップ６０７を実行して処理を完了する。一方、コピーが完了していない場合（６３４“Ｎ”）には、プロセッサ１６１はステップ６０１から処理を繰り返す。
【００９９】
コピーが異常終了した場合（６３２“Ｎ”）、プロセッサ１６１は回復処理を行う（６３５）。具体的には、構成変更制御プログラム２１２を実行する以前の構成情報２２１に戻すように差分２２２を作成し、全ての仮想化スイッチ１１に構成変更要求を発行して完了を待つ。さらにプロセッサ１６１はステップ６１４以降の処理を実行し、管理コンソールへエラーを報告して処理を完了する。
【０１００】
図２２は、図２１のフローチャートに示すコピー処理６３１の詳細な処理動作を示す。
まずプロセッサ１６１は、構成変更制御プログラム２１２を起動してから最初のコピー処理６３１１が起動された場合（６３１１“Ｙ”）、プロセッサ２１０に対しＣＯＰＹ開始要求を送信し、コピー処理プログラム２１４を起動する（６３１２）。ＣＯＰＹ開始要求に伴い、今回のコピー処理プログラム２１４の起動でコピーを行うアドレス範囲もプロセッサ２１０に指示する。
【０１０１】
一方、最初の起動でない場合（６３１１“Ｎ”）、プロセッサ２１０に対しＣＯＰＹ再起動要求を送信し、コピー処理プログラム２１４を起動する（６３１３）。この場合も今回のコピー処理プログラム２１４の起動でコピーを行うアドレス範囲をプロセッサ２１０に指示する。いずれの場合も、プロセッサ１６１は次にイベント待ち状態となる（６３１４）。ここで、プロセッサ１６１が待つイベントは、コピー処理プログラム２１４の完了、後述するステップ７１８による、コピー優先要求またはコピー中断要求の受信である。コピー処理プログラム２１４の処理が完了した場合（６３１５“Ｎ”、６３１６“Ｎ”）、プロセッサ１６１はステップ６３２へ移る。
【０１０２】
コピー中断要求の場合（６３１５“Ｙ”）、プロセッサ２１０に対しＣＯＰＹ中断要求を送信し、コピー処理プログラム２１４を起動する（６３１７）。コピー優先要求の場合は、一旦コピー中断としてステップ６３１５“Ｙ”から処理を行い、次にコピー処理を再起動する必要があるためプロセッサ１６１はステップ６３１６“Ｙ”を実行して、ステップ６３１３以降の処理を繰り返す。その際、優先してコピーするアドレスがプロセッサ２１０から渡されるため、そのアドレスを含む範囲をステップ６３１３で指定する。
ステップ６３１２および６３１３の通り、コピー処理プログラム２１４の起動は複数回に分けて行われる。さらにステップ６３１７ではコピーを一度中断させている。これにより入出力を一時保留する時間を短縮できる。
【０１０３】
図２３は、図１９の仮想化スイッチ１１における構成管理プログラム２１１の処理を示す。
本実施形態では、ＩＯ一時保留状態の間に構成情報２２１の面切替えを行わないため、構成管理プログラム２１１の処理は第一の実施形態に示したものに近い。そこで、図２３を図７のフローチャートと比較するに、図７と相違する点は、ステップ７１８を追加したところにある。
【０１０４】
本実施形態では、構成管理プログラム２１１が呼び出される契機は、図７の場合に加え、ＩＯ処理プログラム２１３からのコピー優先要求またはコピー中断要求による。いずれの場合も、プロセッサ２１０はステップ７０９Ｎと判断することになり、さらにプロセッサ１６１に対し、コピー優先要求またはコピー中断要求を行う（７１８）。ただし、コピー優先要求の場合、優先してコピーするアドレスがＩＯ処理プログラム２１３から渡されるので、そのアドレスもプロセッサ１６１に渡す。
このように、ステップ７１８の処理により構成管理プログラム２１１はＩＯ処理プログラム２１３の処理による要求を構成変更制御プログラム２１２の処理へ反映する働きをする。
【０１０５】
図２４は、図１９の仮想化スイッチ１１におけるＩＯ処理プログラム２１３の処理を示す。
図１８に示すフローチャートに比べて、ステップ８０５´の後にステップ８０６が追加され、ステップ８２０の後にステップ８２１が追加されている。
【０１０６】
ステップ８０６において、プロセッサ２１０は、構成管理プログラム２１１を呼び出し、受け付けた入出力がＷｒｉｔｅの場合はコピー優先要求を行う。その際、Ｗｒｉｔｅの場合は受け付けた入出力でＷｒｉｔｅされるアドレス範囲を構成管理プログラム２１１に渡す。
【０１０７】
本実施形態において、タイマ２１５のタイムアウト（８２０“Ｙ”）はコピー処理によるので、ステップ８２１において、プロセッサ２１０は構成管理プログラム２１１を呼び出してコピー中断要求を行う。
【０１０８】
ステップ８０６および８２１の処理によって、一時保留した入出力によるコピー処理を中断または優先させることで、その入出力が保留されている時間を短縮できる。
なお、ステップ８０６において、受け付けた入出力がＲｅａｄの場合はコピー中断要求を行うことにすると、さらに入出力を一時保留する時間を短縮することができる。（この場合、ステップ８２１は不要になる）。但し、その分コピー処理は遅くなる。
【０１０９】
図２５は、図１９の仮想化スイッチ１１におけるコピー処理プログラム２１４の処理を示す。
コピー処理プログラム２１４が起動する契機は、構成変更制御プログラム２１２からのＣＯＰＹ開始要求およびＣＯＰＹ再起動要求、ＣＯＰＹ中断要求と、データを実際にコピーする入出力の完了のタイミングである。コピー開始要求があった場合（９０１“Ｙ”）、プロセッサ２１０はコピー進捗表２２４の全エントリを、未コピー状態を示す値（この例では「０」）に初期化する（９０２）。そして構成変更制御プログラム２１２から渡されたアドレス範囲に対応するコピー進捗表のエントリを、コピー中を示す値（この例では「１」）にセットする（９０３）。
【０１１０】
さらに、プロセッサ２１０はコピー進捗表２２４で「１」（コピー中）にセットした領域に対するコピーを行う入出力命令（以下、ＣＯＰＹ  ＩＯ）を発行する（９０４）。具体的には、コピーを行う入出力要求を生成し、出力キュー２５１へエンキューする。さらにプロセッサ２１０はイベント待ちを行って（９０５）、コピー処理プログラム２１４の起動契機のうち、ＣＯＰＹ開始要求以外のものを待ち、ステップ９０６以降の処理を実行する。また、コピー再起動要求があった場合（９０６“Ｙ”）、プロセッサ２１０はステップ９０３以降の処理を繰り返す。
【０１１１】
ＣＯＰＹ  ＩＯが完了した時（９０７“Ｙ”）、プロセッサ２１０はこの入出力の結果が正常終了であることを確認し（９０８“Ｙ”）、コピー進捗表２２４を更新する（９０９）。具体的には、ＣＯＰＹ  ＩＯが終了した領域に対するエントリにコピー済みを示す値（この例では「４」）をセットし、コピー中断を示す値（この例では「２」）が格納されているエントリに「０」（未コピー）をセットする。さらに、コピー進捗表２２４のエントリで、「１」（コピー中）がセットされているエントリが無い場合（９１０“Ｙ”）、プロセッサ２１０は構成変更制御プログラム２１２成功を返して処理を完了する（９１１）。コピー中のエントリがある場合（９１０“Ｎ”）、プロセッサ２１０はステップ９０４から処理を繰り返す。
【０１１２】
ＣＯＰＹ中断要求を受けた場合（９１２“Ｙ”）、プロセッサ２１０は、コピー進捗表２２４の「１」（コピー中）がセットされている全エントリへ「２」（コピー中断）をセットし（９１３）、ステップ９０５から繰り返す。
ＣＯＰＹ  ＩＯが異常終了した場合には（９０８“Ｎ”）、プロセッサ２１０は、コピー進捗表２２４の「１」（コピー中）および「２」（コピー中断）がセットされている全エントリに「０」（未コピー）をセットする（９１４）。そして、構成変更制御プログラム２１２にエラーとその要因を返して、終了する（９１５）。
このように、コピー処理プログラム２１４ではステップ９０４のＣＯＰＹ  ＩＯの処理によってデータのコピーを行うことができる。
【０１１３】
図２６を参照して、第四の実施形態によるデータ移行の動作原理を説明する。
図２６(Ａ)は、コピー処理６３１中における仮想ボリューム１００と実領域１３２との対応関係、およびコピー進捗表２２４との対応関係を示す。
【０１１４】
実領域１３２から仮想ボリューム１００への矢印は、仮想ボリューム１００に対するＲｅａｄ要求での対応関係を表しており、仮想ボリューム１００から実領域１３２への矢印は、仮想ボリューム１００に対するＷｒｉｔｅ要求での対応関係を表している。点線になっている矢印は、これに対する入出力が保留されていることを示している。
【０１１５】
なお、仮想ボリューム上の領域１００１から実領域１３２１１と実領域１３２２１へ矢印が出ているが、これは１００１にＷｒｉｔｅ要求があったとき、２個の実領域１３２１１、１３２２１に同じデータが二重に書き込まれることを意味している。
さらに、実領域１３２１２、１３２１３から実領域１３２２２、１３２２３への矢印はこの方向でコピーが行われていることを示している。コピー進捗表の２２４１ａ、２２４２ａ、２２４３ａ、２２４４ａは、仮想ボリューム上の領域１００１、１００２、１００３、１００４に対応している。
【０１１６】
図２６(Ａ)では、２２４１ａはコピー済み「４」になっており、領域１００−１について実領域１３２１１から実領域１３２２１へのコピーが完了していることを示している。コピー済みの領域に関しては、Ｒｅａｄは、移行先即ち１３１１から、Ｗｒｉｔｅは移行元および移行先の両方、即ち１３１１と１３１２の両方へ書き込まれる。これは、ＬＵ１３１２への移行が途中で失敗した場合でも、最新のデータがＬＵ１３１１に残るようにするためである。
【０１１７】
また、２２４２ａ〜２２４４ａはコピー中「１」になっており、現在これらに対応する実領域１３２１２〜１３２１４から実領域１３２２２〜１３２２４へのデータのコピーが行われていることを示している。２２４５ａは未コピー「０」となっており、実領域１３２１５から実領域１３２２５へのコピーは未着手であることを示している。
【０１１８】
図２６(Ｂ)は、領域１００４に対し、ホストプロセッサ１２がＷｒｉｔｅ要求を発行した後のコピー進捗表２２４を示している。コピー中の領域に対するＷｒｉｔｅを受信すると、ＩＯ処理プログラム２１３のステップ８０６（図２４）によりプロセッサ２１０はコピー優先要求を行う。すると、プロセッサ１６１はまずコピー処理６３１のコピー中断処理６３１７を行うため、その結果プロセッサ２１０がコピー処理プログラム２１４のステップ９１２を実行することにより、コピー進捗表２２４のコピー中「１」の領域にコピー中断の印「２」をセットするため、表２２４ｂの状態になる。
【０１１９】
次にプロセッサ２１０はＣＯＰＹ  ＩＯの完了を待って、ステップ９０９を実行し、コピー進捗表２２４を更新する。ここで、実領域１３２２２へのコピーのみが完了しているとすると、これに対応するエントリ２２４２ｂはコピー中断「２」からコピー済み「４」へ、さらにその他のエントリはコピー中断の印「２」から未コピーの印「０」へ更新されることになる。さらにプロセッサ１６１はコピー処理６３１におけるステップ６３１３の処理を行い、領域１００４に対する実領域１３２１４のアドレスを指定してプロセッサ２１０がコピー処理プログラム２１３のステップ９０６以降の処理を行わせるため、領域１００４に対応する２２４４ｂにコピー中の印「１」をセットする。このようにして図２６(Ｃ)の状態になる。つまり、プロセッサ２１０は実領域１３２１４から１３２２４へのコピーを優先して行う。
尚、その他の処理は、第三の実施形態と同様なので説明を省略する。
【０１２０】
以上に述べたように、システムの稼動中に仮想ボリューム１００の割当て先を、一方のＬＵ１３１１から他方のＬＵ１３１２に移行することが可能になる。
【０１２１】
次に、図２７から図２８を用いて、第五の実施形態によるを説明する。
図２７はストレージシステムの全体構成を示す図である。
図１に示したシステムに比べて、独立した構成変更制御装置１６が無くなり、代わって各仮想化スイッチ１１内に構成変更制御プログラム１６´を備える。また、ストレージ装置１３５はコピー制御部１３６を備える。
【０１２２】
ストレージ装置１３５はストレージ装置１３と異なり、通信部２６０を備えてＬＡＮ１５と接続しており、さらにコピー制御部１３６を備える。これにより自装置１３５内のＬＵ１３１aから別のＬＵ１３１cへデータをコピーすることができる。ストレージ装置１３５にあるコピー制御部１３６は、コピー元ＬＵ１３１へのホストプロセッサ１２からの入出力を許可したままコピー処理を行えること（以下、オンライン中にコピー可能という）が望ましい。勿論オンライン中にコピー可能でなくても良い。このオンライン中にコピー可能でない場合、入出力を一時保留している時間が長くなることになる。
【０１２３】
なお、どのＬＵ１３１からどのＬＵ１３１へコピー処理を行うか、例えばＬＵ１３１ａからＬＵ１３１ｂへコピーする、の指定およびコピー処理の開始、完了の要求は、コピー制御部１３６が通信部２６０を経由して、構成変更制御装置１６または管理コンソール１４から受け取る。
【０１２４】
図２８は、第五の実施形態における構成変更制御プログラム２１２の処理を示すフローチャートである。
図１６に比べ、ステップ６２７の後に、ステップ６４０の処理が挿入されたことが相違する。
【０１２５】
ステップ６４０の処理で、プロセッサ１６１は、コピー制御部１３６に対し、ＬＵ１３１ａからＬＵ１３１ｂへのコピー処理の完了を依頼し、その完了報告を待つ。オンライン中にコピー可能な場合は、ステップ６４０の前なら任意の時点で、システム管理者がコピー開始の依頼を行うことができる。なお、オンライン中にコピー可能でない場合、ステップ６４０でプロセッサ１６１はコピー制御部１３６に対し、コピー処理の開始の依頼を、完了の依頼に先立ち行う。コピー開始の依頼を早めておくことで、ステップ６４０で待つ完了報告が早く返ってくることが期待できる。
【０１２６】
尚、プロセッサ１６１及び２１０は第三の実施形態と同様の処理を行い、仮想ボリューム１００を、ＬＵ１３１ａからＬＵ１３１ｂに対応するように構成を変更する。その他の処理は第三の実施形態と同様なので説明を省略する。
【０１２７】
第五の実施形態によれば、ストレージ装置１３５が持つコピー機能を利用することにより、仮想化スイッチ１１にＬＵ１３１をコピーする機能がなくても、システムの稼動中に仮想ボリューム１００の割当て先を、一方のＬＵ１３１aから他方のＬＵ１３１ｂに移行することができる。
【０１２８】
次に、図２９を用いてストレージシステムの更に他の例（第六の実施形態）を説明する。
この例は、ストレージ装置１３７が仮想化機能を備えたものである。各ストレージ装置１３７は、図２７に示すストレージ装置１３、及びコピー制御部１３６、通信部２６０を有し、更に仮想化スイッチ１１を備えている。各仮想化スイッチ１１は、前述の図２７と同様に構成変更制御プログラム１６´を内蔵して、構成変更制御の機能を実現している。その他の構成は、前記第五の実施形態と同様であるので、説明を省略する。
【０１２９】
この例によれば、冗長構成の仮想化スイッチによるシステムの稼動中に、仮想ボリューム１００の割当て先を、一方のＬＵ１３１aから他方のＬＵ１３１ｂに移行することが可能なストレージ装置を実現できる。
【０１３０】
以上、いくつかの実施形態について説明したが、本発明は上記の例に限定されずに、種々変形して実施し得る。例えば、図１２及び図１９の例において、プロセッサ１６１または２１０のいずれか一方を省略し、残る他方のプロセッサで、プログラムの処理等を兼用することができる。
【図面の簡単な説明】
【０１３１】
【図１】第一の実施形態によるストレージシステム全体の構成を示す図。
【図２】図１の仮想化スイッチ１１の内部構成を示す図。
【図３】図１の構成変更制御装置１６の内部構成を示す図。
【図４】ストレージシステムにおける構成情報２２１のテーブルを示す図。
【図５】図１のストレージシステムにおける構成変更制御装置１６と仮想化スイッチ１１との通信手順を示す図。
【図６】構成変更制御装置１６における構成変更制御プログラム２１２の処理を示すフローチャート。
【図７】仮想化スイッチ１１における構成管理プログラム２１１の処理を示すフローチャート。
【図８】仮想化スイッチ１１におけるＩＯ処理プログラム２１３の処理を示すフローチャート。
【図９】第二の実施形態による仮想化スイッチ１１の内部構成を示す図。
【図１０】第二の実施形態における構成変更制御プログラム２１２の処理を示すフローチャート。
【図１１】図１０における調停処理６００の処理動作を示すフローチャート。
【図１２】第三の実施形態による仮想化スイッチ１１の内部構成を示す図。
【図１３】第三の実施形態における構成変更制御装置１６と仮想化スイッチ１１との通信手順を示す図。
【図１４】図１２における一時保留制御表２２３の一例を示す図。
【図１５】図１２における構成情報２２１のテーブルを示す図。
【図１６】図１２における構成変更制御プログラム２１２の処理を示すフローチャート。
【図１７】図１２における構成管理プログラム２１１の処理を示すフローチャート。
【図１８】図１２におけるＩＯ処理プログラム２１３の処理を示すフローチャート。
【図１９】第四の実施形態における仮想化スイッチ１１の内部構成を示す図。
【図２０】図１９における構成情報２２１のテーブルを示す図。
【図２１】図１９における構成変更制御プログラム２１２の処理を示すフローチャート。
【図２２】図２１のフローチャートにおけるコピー処理６３１の詳細を示すフローチャート。
【図２３】図１９における構成管理プログラム２１１の処理を示すフローチャート。
【図２４】図１９におけるＩＯ処理プログラム２１３の処理を示すフローチャート。
【図２５】図１９におけるコピー処理プログラム２１４の処理を示すフローチャート。
【図２６】第四の実施形態におけるデータ移行の動作原理を説明する図。
【図２７】第五の実施形態によるストレージシステムの全体構成を示す図。
【図２８】第五の実施形態における構成変更制御プログラム２１２の処理を示すフローチャート。
【図２９】第六の実施形態によるストレージシステムの全体構成を示す図。
【符号の説明】
【０１３２】
１１  仮想化スイッチ、              １２  ホストプロセッサ
１３  ストレージ装置、              １３１  ＬＵ
１４  管理コンソール、              １６  構成変更制御装置
１６１、２１０  プロセッサ、        ２１１  構成管理プログラム
２１２  構成変更制御プログラム、    ２１３  ＩＯ処理プログラム
２１４  コピー処理プログラム、      ２２１  構成情報
２４２  保留中キュー、              ２５２  処理中キュー
【図１】
2005115506.tif 000003
【図２】
2005115506.tif 000004
【図３】
2005115506.tif 000005
【図４】
2005115506.tif 000006
【図５】
2005115506.tif 000007
【図６】
2005115506.tif 000008
【図７】
2005115506.tif 000009
【図８】
2005115506.tif 000010
【図９】
2005115506.tif 000011
【図１０】
2005115506.tif 000012
【図１１】
2005115506.tif 000013
【図１２】
2005115506.tif 000014
【図１３】
2005115506.tif 000015
【図１４】
2005115506.tif 000016
【図１５】
2005115506.tif 000017
【図１６】
2005115506.tif 000018
【図１７】
2005115506.tif 000019
【図１８】
2005115506.tif 000020
【図１９】
2005115506.tif 000021
【図２０】
2005115506.tif 000022
【図２１】
2005115506.tif 000023
【図２２】
2005115506.tif 000024
【図２３】
2005115506.tif 000025
【図２４】
2005115506.tif 000026
【図２５】
2005115506.tif 000027
【図２６】
2005115506.tif 000028
【図２７】
2005115506.tif 000029
【図２８】
2005115506.tif 000030
【図２９】
2005115506.tif 000031