(57)【要約】【課題】ボリュームを削除した後の記憶領域の利用効率を向上させる。【解決手段】管理装置３は、ストレージ装置１の記憶領域１ａに設定されたボリュームＶＯＬ２の削除が要求されたとき、管理情報３ｃに基づいて、記憶領域１ａにおけるボリュームＶＯＬ２の例えば下位アドレス側にボリュームＶＯＬ３が設定されていることを判定し、管理情報３ｃに基づいて、記憶領域１ａ，１ｂ，２ａの中からボリュームＶＯＬ３と同じ大きさ以上の連続した空き領域２ａ１を検出し、ボリュームＶＯＬ２を削除する削除処理と、ボリュームＶＯＬ３のデータを、空き領域２ａ１に退避させた後、記憶領域１ａにおけるボリュームＶＯＬ２が削除された領域を含む移動先領域に書き戻すことで、ボリュームＶＯＬ３を移動させる移動処理とを、ストレージ装置１に実行させる。【選択図】図１
2020004186.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ１以上の記憶領域を有する複数のストレージ装置であって、前記複数のストレージ装置の前記記憶領域のそれぞれに対して１以上のボリュームを設定可能であり、設定されたボリュームは、前記複数のストレージ装置の前記記憶領域のうち当該ボリュームの設定先の記憶領域における当該ボリュームの設定領域と同じアドレス空間を有する、前記複数のストレージ装置と、管理装置とを有し、
前記管理装置は、
前記複数のストレージ装置の前記記憶領域のうち、第１のストレージ装置の第１の記憶領域に設定された第１のボリュームの削除が要求されたとき、前記複数のストレージ装置の前記記憶領域のそれぞれにおけるボリュームの設定状態を管理する管理情報に基づいて、前記第１の記憶領域に他のボリュームが設定されているかを判定し、
前記他のボリュームとして第２のボリュームが設定されていた場合、前記管理情報に基づいて、前記複数のストレージ装置の前記記憶領域の中から、前記第２のボリュームと同じ大きさ以上の連続した空き領域を検出し、
前記第１のボリュームを前記第１の記憶領域から削除する削除処理と、前記第２のボリュームのデータを、検出された前記空き領域に退避させた後、前記第１の記憶領域における前記第１のボリュームが削除された領域を含む移動先領域に書き戻すことで、前記第２のボリュームを移動させる移動処理を、前記第１のストレージ装置に実行させ、
前記第１のボリュームが削除され、前記第２のボリュームが移動したことを示すように前記管理情報を更新する、
情報処理システム。
【請求項２】
前記記憶領域のそれぞれに対しては、上位アドレス側から順に前記１以上のボリュームを設定可能であり、
前記管理装置は、
前記第１のボリュームの削除が要求されたとき、前記第１の記憶領域における前記第１のボリュームの下位アドレス側に前記他のボリュームが設定されているかを判定し、
前記移動処理では、前記第２のボリュームのデータを、前記第１の記憶領域における前記第１のボリュームが削除された領域の先頭を起点とした前記移動先領域に書き戻す、
請求項１記載の情報処理システム。
【請求項３】
前記記憶領域のそれぞれに対しては、下位アドレス側から順に前記１以上のボリュームを設定可能であり、
前記管理装置は、
前記第１のボリュームの削除が要求されたとき、前記第１の記憶領域における前記第１のボリュームの上位アドレス側に前記他のボリュームが設定されているかを判定し、
前記移動処理では、前記第２のボリュームのデータを、前記第１の記憶領域における前記第１のボリュームが削除された領域の末尾を後端とした前記移動先領域に書き戻す、
請求項１記載の情報処理システム。
【請求項４】
前記移動処理は、検出された前記空き領域に前記第２のボリュームをコピーして第３のボリュームを生成し、前記第２のボリュームを削除し、前記移動先領域に前記第３のボリュームをコピーして移動後の前記第２のボリュームを生成し、前記第３のボリュームを前記空き領域から削除する処理を含む、
請求項１乃至３のいずれか１項に記載の情報処理システム。
【請求項５】
前記情報処理システムは、前記複数のストレージ装置にアクセス可能な複数のサーバ装置をさらに有し、
前記管理情報には、前記第２のボリュームに対して、前記複数のサーバ装置のうち前記第２のボリュームにアクセス可能な第１のサーバ装置が対応付けて登録され、
前記移動処理は、前記第３のボリュームの生成と前記第２のボリュームの削除との間に、前記第１のサーバ装置から前記第２のボリュームへのアクセスパスを前記第３のボリュームへのアクセスパスに切り替える第１の切り替え処理と、移動後の前記第２のボリュームの生成と前記第３のボリュームの削除との間に、前記第１のサーバ装置から前記第３のボリュームへのアクセスパスを移動後の前記第２のボリュームへのアクセスパスに切り替える第２の切り替え処理とを含み、
前記管理装置は、前記管理情報に基づいて前記第１の切り替え処理と前記第２の切り替え処理を前記第１のストレージ装置に実行させる、
請求項４記載の情報処理システム。
【請求項６】
前記第３のボリュームの生成処理は、前記第１のサーバ装置から前記第２のボリュームへのアクセスを許容した状態のまま実行され、
移動後の前記第２のボリュームの生成処理は、前記第１のサーバ装置から前記第３のボリュームへのアクセスを許容した状態のまま実行される、
請求項５記載の情報処理システム。
【請求項７】
前記第１のボリュームは、前記複数のサーバ装置のいずれかにおいて動作する仮想マシンに接続された仮想ディスクの記憶領域として使用され、
前記管理情報には、前記第１のボリュームと前記仮想ディスクとが対応付けて登録され、
前記管理装置は、前記仮想ディスクの削除が要求されたとき、前記管理情報に基づいて、前記仮想ディスクに対応付けられた前記第１のボリュームの削除が要求されたことを認識する、
請求項５または６記載の情報処理システム。
【請求項８】
前記管理装置は、
前記移動処理を前記第１のストレージ装置に実行させる前に、検出された前記空き領域が予約されたことを示すように前記管理情報を更新し、
前記移動処理が完了すると、前記空き領域の予約が解除されたことを示すように前記管理情報を更新する、
請求項１乃至７のいずれか１項に記載の情報処理システム。
【請求項９】
それぞれ１以上の記憶領域を有する複数のストレージ装置と通信する通信部であって、前記複数のストレージ装置の前記記憶領域のそれぞれに対して１以上のボリュームを設定可能であり、設定されたボリュームは、前記複数のストレージ装置の前記記憶領域のうち当該ボリュームの設定先の記憶領域における当該ボリュームの設定領域と同じアドレス空間を有する、前記通信部と、制御部とを有し、
前記制御部は、
前記複数のストレージ装置の前記記憶領域のうち、第１のストレージ装置の第１の記憶領域に設定された第１のボリュームの削除が要求されたとき、前記複数のストレージ装置の前記記憶領域のそれぞれにおけるボリュームの設定状態を管理する管理情報に基づいて、前記第１の記憶領域に他のボリュームが設定されているかを判定し、
前記他のボリュームとして第２のボリュームが設定されていた場合、前記管理情報に基づいて、前記複数のストレージ装置の前記記憶領域の中から、前記第２のボリュームと同じ大きさ以上の連続した空き領域を検出し、
前記第１のボリュームを前記第１の記憶領域から削除する削除処理と、前記第２のボリュームのデータを、検出された前記空き領域に退避させた後、前記第１の記憶領域における前記第１のボリュームが削除された領域を含む移動先領域に書き戻すことで、前記第２のボリュームを移動させる移動処理とを、前記第１のストレージ装置に実行させ、
前記第１のボリュームが削除され、前記第２のボリュームが移動したことを示すように前記管理情報を更新する、
管理装置。
【請求項１０】
コンピュータが、
それぞれ１以上の記憶領域を有する複数のストレージ装置と接続し、前記複数のストレージ装置の前記記憶領域のそれぞれに対して１以上のボリュームを設定可能であり、設定されたボリュームは、前記複数のストレージ装置の前記記憶領域のうち当該ボリュームの設定先の記憶領域における当該ボリュームの設定領域と同じアドレス空間を有し、
前記複数のストレージ装置の前記記憶領域のうち、第１のストレージ装置の第１の記憶領域に設定された第１のボリュームの削除が要求されたとき、前記複数のストレージ装置の前記記憶領域のそれぞれにおけるボリュームの設定状態を管理する管理情報に基づいて、前記第１の記憶領域に他のボリュームが設定されているかを判定し、
前記他のボリュームとして第２のボリュームが設定されていた場合、前記管理情報に基づいて、前記複数のストレージ装置の前記記憶領域の中から、前記第２のボリュームと同じ大きさ以上の連続した空き領域を検出し、
前記第１のボリュームを前記第１の記憶領域から削除する削除処理と、前記第２のボリュームのデータを、検出された前記空き領域に退避させた後、前記第１の記憶領域における前記第１のボリュームが削除された領域を含む移動先領域に書き戻すことで、前記第２のボリュームを移動させる移動処理を、前記第１のストレージ装置に実行させ、
前記第１のボリュームが削除され、前記第２のボリュームが移動したことを示すように前記管理情報を更新する、
制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、管理装置および制御方法に関する。
【背景技術】
【０００２】
ストレージシステムの一例として、ストレージ装置の記憶領域に対して複数の論理ボリュームが設定されて運用されるものがある。このようなストレージシステムでは、例えば、各論理ボリュームが個別のユーザに使用される、あるいは、各論理ボリュームに対して個別のサーバ装置からアクセスがなされる、といった運用を行うことができる。これにより、ストレージ装置の記憶領域を複数のユーザや複数のサーバ装置によって効率的に使用できる。
【０００３】
また、複数の物理ディスクによって実現される論理記憶領域であるＲＡＩＤ（Redundant Arrays of Independent Disks）グループ上に、論理ボリュームが設定される場合もある。例えば、ＲＡＩＤグループ上に複数の論理ボリュームが設定された状態から、格納されたデータを破壊することなく、物理ディスクの追加によって容量を拡張できるようにしたストレージ装置が提案されている。
【０００４】
また、データ記憶に関連する技術として、記憶領域において断片化されたデータを連続領域に移動させる「デフラグメンテーション」と呼ばれる処理が知られている。例えば、ＨＤＤ（Hard Disk Drive）がその内部の磁気ディスクについてのデフラグメンテーションを自律的に実行するようにした記録再生システムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３８５７号公報
【特許文献２】特開２００５−１６５７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ある記憶領域にボリュームを設定する際に、そのボリューム上のアドレスを設定先の記憶領域上のアドレスと同一にする方法がある。この方法では、ボリュームのデータにアクセスする際に、そのデータのボリューム上のアドレスを、ボリュームが設定された記憶領域のアドレスに変換しなくてよい。このため、例えば、ボリュームのアドレスとして仮想アドレスを用いる場合と比較して、アクセスのための処理負荷が小さいという利点がある。
【０００７】
その一方で、この方法を用いた場合には次のような問題がある。例えば、記憶領域の先頭から順に第１のボリューム、第２のボリュームが設定された状態から、第１のボリュームが削除されて、その分の空き領域が形成されたとする。この状態で、形成された空き領域に新たなボリュームを設定しようとする場合、削除された第１のボリュームの容量以下のボリュームしか新たに設定することはできず、削除された第１のボリュームの容量を超える容量のボリュームを新たに設定することはできない。このような制約により、記憶領域の利用効率が高いとはいえないという問題がある。
【０００８】
１つの側面では、本発明は、ボリュームを削除した後の記憶領域の利用効率を向上させることが可能な情報処理システム、管理装置および制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、複数のストレージ装置と、管理装置とを有する次のような情報処理システムが提供される。複数のストレージ装置は、それぞれ１以上の記憶領域を有する。また、複数のストレージ装置の記憶領域のそれぞれに対して１以上のボリュームを設定可能であり、設定されたボリュームは、複数のストレージ装置の記憶領域のうち当該ボリュームの設定先の記憶領域における当該ボリュームの設定領域と同じアドレス空間を有する。管理装置は、複数のストレージ装置の記憶領域のうち、第１のストレージ装置の第１の記憶領域に設定された第１のボリュームの削除が要求されたとき、複数のストレージ装置の記憶領域のそれぞれにおけるボリュームの設定状態を管理する管理情報に基づいて、第１の記憶領域に他のボリュームが設定されているかを判定し、他のボリュームとして第２のボリュームが設定されていた場合、管理情報に基づいて、複数のストレージ装置の記憶領域の中から、第２のボリュームと同じ大きさ以上の連続した空き領域を検出し、第１のボリュームを第１の記憶領域から削除する削除処理と、第２のボリュームのデータを、検出された空き領域に退避させた後、第１の記憶領域における第１のボリュームが削除された領域を含む移動先領域に書き戻すことで、第２のボリュームを移動させる移動処理とを、第１のストレージ装置に実行させ、第１のボリュームが削除され、第２のボリュームが移動したことを示すように管理情報を更新する。
【００１０】
また、１つの案では、上記情報処理システムの管理装置と同様の処理を実行する管理装置が提供される。
さらに、１つの案では、上記情報処理システムの管理装置と同様の処理をコンピュータが実行する制御方法が提供される。
【発明の効果】
【００１１】
１つの側面では、ボリュームを削除した後の記憶領域の利用効率を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る情報処理システムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るクラウド基盤システムの構成例を示す図である。
【図３】管理サーバのハードウェア構成例を示す図である。
【図４】サーバ装置およびストレージ装置の処理機能の構成例を示す図である。
【図５】仮想ディスクとボリュームとの関係を説明するための図である。
【図６】ボリュームの削除時の処理例を示す図である。
【図７】データベースサーバおよび管理サーバの処理機能の構成例を示す図である。
【図８】ユーザテーブルの構成例を示す図である。
【図９】仮想サーバテーブルの構成例を示す図である。
【図１０】仮想ディスクテーブルの構成例を示す図である。
【図１１】ボリュームテーブルの構成例を示す図である。
【図１２】ストレージ領域管理テーブルの構成例を示す図である。
【図１３】予約データ管理テーブルの構成例を示す図である。
【図１４】収集データ管理テーブルの構成例を示す図である。
【図１５】ボリューム削除および再配置の処理例を示す図（その１）である。
【図１６】ボリューム削除および再配置の処理例を示す図（その２）である。
【図１７】ボリューム削除および再配置の処理例を示す図（その３）である。
【図１８】ボリューム操作指示の受け付け処理の手順を示すフローチャートの例である。
【図１９】ボリューム削除処理の手順を示すフローチャートの例（その１）である。
【図２０】ボリューム削除処理の手順を示すフローチャートの例（その２）である。
【図２１】ボリューム削除処理の手順を示すフローチャートの例（その３）である。
【図２２】ボリューム削除処理の手順を示すフローチャートの例（その４）である。
【図２３】ボリューム削除処理の手順を示すフローチャートの例（その５）である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図１に示す情報処理システムは、ストレージ装置１，２と管理装置３を含む。なお、情報処理システムに含まれるストレージ装置は、図１のようにストレージ装置１，２の２台に限定されるものではなく、３台以上であってもよい。
【００１４】
ストレージ装置１，２は、それぞれ１以上の記憶領域を有する。図１の例では、ストレージ装置１は記憶領域１ａ，１ｂを有し、ストレージ装置２は記憶領域２ａを有しているものとする。記憶領域１ａ，１ｂ，２ａは、それぞれ個別の記憶装置によって実現される物理記憶領域であってもよいし、１以上の記憶装置によって実現される論理記憶領域であってもよい。
【００１５】
また、記憶領域１ａ，１ｂ，２ａのそれぞれに対しては、１以上のボリュームを設定可能になっている。図１の例では、記憶領域１ａには、その先頭アドレス側から順にボリュームＶＯＬ１，ＶＯＬ２，ＶＯＬ３が設定されている。記憶領域１ｂには、その先頭アドレス側から順にボリュームＶＯＬ４，ＶＯＬ５が設定されている。記憶領域２ａには、その先頭アドレス側にボリュームＶＯＬ６が設定されている。なお、図１において「Ｆｒｅｅ」と記載された領域は、ボリュームが設定されていない空き領域を示す。
【００１６】
記憶領域１ａ，１ｂ，２ａのそれぞれに設定されたボリュームは、その設定先の記憶領域におけるそのボリュームの設定領域と同じアドレス空間を有する。例えば、記憶領域１ａのアドレス「０」からアドレス「Ａ１」までの領域にボリュームＶＯＬ１が設定されている場合、ボリュームＶＯＬ１の先頭アドレスは「０」となり、末尾のアドレスは「Ａ１」となる。また、記憶領域１ａのアドレス「Ａ１＋１」からアドレス「Ａ２」までの領域にボリュームＶＯＬ２が設定されている場合、ボリュームＶＯＬ２の先頭アドレスは「Ａ１＋１」となり、末尾のアドレスは「Ａ２」となる。
【００１７】
このようなボリュームに対するアドレスの割り当て方法が用いられることで、ボリュームにアクセスする際に、ボリュームに固有の論理アドレスをその設定先の記憶領域のアドレスに変換する必要がなくなる。このため、データアクセスのための処理負荷が軽減され、そのアクセス速度を向上させることができる。
【００１８】
ただし、上記のようなアドレスの割り当て方法が用いられることで、１つのボリュームは、記憶領域１ａ，１ｂ，２ａにおける連続する空き領域に設定されなければならない。例えば、１つのボリュームを分割し、それらを離散した複数の空き領域に設定することはできない。また、離散した複数の空き領域に設定されたボリュームを１つのボリュームとして使用することはできない。
【００１９】
管理装置３は、通信部３ａと制御部３ｂを有する。
通信部３ａは、例えば、通信インタフェース回路として実現される。通信部３ａは、ストレージ装置１，２との間で通信を行う。
【００２０】
制御部３ｂは、例えば、プロセッサとして実現される。制御部３ｂは、通信部３ａを介してストレージ装置１，２と通信可能になっている。また、制御部３ｂは、管理情報３ｃを参照可能になっている。管理情報３ｃは、記憶領域１ａ，１ｂ，２ａにおけるボリュームの設定状態を管理するための情報である。管理情報３ｃは、例えば、管理装置３の内部に搭載された記憶装置に記憶されていてもよいし、管理情報３ｃとは別の装置に記憶されていてもよい。
【００２１】
制御部３ｂは、設定されたボリュームの削除が要求されたとき、次のような処理を実行する。ここでは例として、記憶領域１ａに設定されたボリュームＶＯＬ２の削除が要求されたとする。
【００２２】
制御部３ｂは、管理情報３ｃに基づいて、記憶領域１ａに他のボリュームが設定されているかを判定する。他のボリュームが設定されている場合、制御部３ｂは、管理情報３ｃに基づいて、記憶領域１ａ，１ｂ，２ａの中から、設定されている他のボリュームと同じ大きさ以上の連続した空き領域を検出する。
【００２３】
上記で判定される他のボリュームとは、削除が要求されたボリュームＶＯＬ２の前側または後側に存在するボリュームである。例えば、記憶領域１ａに対して順にボリュームが設定される際に、記憶領域１ａの先頭アドレス側から順にボリュームが設定されるとする。この場合、制御部３ｂは上記判定において、記憶領域１ａにおけるボリュームＶＯＬ２の下位アドレス側に他のボリュームが設定されているかを判定する。図１の例では、ボリュームＶＯＬ２の下位アドレス側にボリュームＶＯＬ３が設定されていると判定される。この場合、制御部３ｂは、管理情報３ｃに基づいて、記憶領域１ａ，１ｂ，２ａの中から、ボリュームＶＯＬ３と同じ大きさ以上の連続した空き領域を検出する。図１の例では、記憶領域２ａから、条件を満たす空き領域２ａ１が検出されたとする。
【００２４】
制御部３ｂは次に、ボリュームＶＯＬ２を記憶領域１ａから削除する削除処理を、ストレージ装置１に実行させる（ステップＳ１）。これとともに、制御部３ｂは、ボリュームＶＯＬ３を移動させる移動処理を、ストレージ装置１に実行させる。移動処理では、次のような処理が実行される。
【００２５】
ストレージ装置１は、ボリュームＶＯＬ３のデータを検出された空き領域２ａ１に退避させる（ステップＳ２）。図１では、この退避によって、ボリュームＶＯＬ３と同一内容のボリュームＶＯＬ３ａが記憶領域２ａに設定されている。そして、ストレージ装置１は、退避されたボリュームＶＯＬ３ａのデータを、記憶領域１ａにおけるボリュームＶＯＬ２が削除された領域を含む移動先領域に書き戻す（ステップＳ３）。
【００２６】
例えば、上記のように記憶領域１ａの先頭アドレス側から順にボリュームが設定される場合、ストレージ装置１は、記憶領域１ａにおけるボリュームＶＯＬ２が削除された領域の先頭を起点とした移動先領域に、ボリュームＶＯＬ３ａのデータを書き戻す。図１では、この書き戻しによって、ボリュームＶＯＬ３ａと同一内容のボリュームＶＯＬ３ｂが記憶領域１ａに設定されている。
【００２７】
このような移動処理により、ボリュームＶＯＬ３は、記憶領域１ａにおいてボリュームＶＯＬ２が削除されたことで形成される空き領域の上位アドレス側に詰めて再配置される。その結果、記憶領域１ａには、ボリュームＶＯＬ２より大きな連続する空き領域１ａ１が形成される。
【００２８】
この後、制御部３ｂは、記憶領域１ａからボリュームＶＯＬ２が削除され、記憶領域１ａにおいてボリュームＶＯＬ３が移動したことを示すように、管理情報３ｃを更新する。
ここで、例えば、単にボリュームＶＯＬ３が削除されて、ボリュームＶＯＬ３と同じ大きさの空き領域が形成された場合、この空き領域は、ボリュームＶＯＬ３の大きさ以下のボリュームを設定するためにしか利用できなくなる。このため、記憶領域１ａの利用効率が悪化してしまう。
【００２９】
これに対して、上記の移動処理によって記憶領域１ａにボリュームＶＯＬ２より大きな連続する空き領域１ａ１が形成されることで、この空き領域１ａ１に対してボリュームＶＯＬ２より大きなボリュームを新たに設定できるようになる。その結果、ボリュームＶＯＬ２を削除した後の記憶領域１ａの利用効率を向上させることができる。
【００３０】
また、ボリュームの削除に伴う他のボリュームの移動の要否判定や、他のボリュームの退避先領域の検出は、ストレージ装置ではなく管理装置３の制御部３ｂによって、管理情報３ｃを参照しながら一元的に実行される。さらに、ストレージ装置における上記の削除処理および移動処理は、管理装置３の制御部３ｂの制御の下で実行される。これにより、ボリュームの移動処理を正確に実行できる。また、ストレージ装置の処理負荷を軽減でき、ストレージ装置に設定されたボリュームに対するアクセス速度の低下を抑制できる。
【００３１】
〔第２の実施の形態〕
次に、図１に示した情報処理システムの例として、クラウド基盤システムについて説明する。このクラウド基盤システムは、ユーザに対してクラウド基盤サービス（Infrastructure as a Service：ＩａａＳ）を提供する。
【００３２】
図２は、第２の実施の形態に係るクラウド基盤システムの構成例を示す図である。図２に示すクラウド基盤システムは、サーバ装置１１０，１２０、ストレージ装置２１０，２２０、データベースサーバ３１０、管理サーバ３２０および操作端末３３０を有する。サーバ装置１１０，１２０、ストレージ装置２１０，２２０、データベースサーバ３１０および管理サーバ３２０は、ネットワーク４００を介して相互に接続されている。また、管理サーバ３２０には、管理者によって操作される操作端末３３０が接続されている。
【００３３】
なお、ストレージ装置２１０，２２０は、図１に示したストレージ装置１，２の一例であり、管理サーバ３２０は、図１に示した管理装置３の一例である。
サーバ装置１１０，１２０のそれぞれでは、１以上の仮想マシンが動作する。これらの仮想マシンは、ユーザによって例えば仮想サーバとして利用される。ユーザは、例えば、仮想マシン上でアプリケーションプログラムを実行させることができる。
【００３４】
ストレージ装置２１０，２２０は、サーバ装置１１０，１２０上で動作する仮想マシンに接続される仮想ディスクの実記憶領域を実現する。ストレージ装置２１０は、コントローラ２１１とストレージ部２１２を備える。ストレージ装置２２０は、コントローラ２２１とストレージ部２２２を備える。
【００３５】
ストレージ部２１２，２２２のそれぞれには、ＨＤＤやＳＳＤ（Solid State Drive）など、仮想ディスクの実記憶領域を実現する複数台の記憶装置が搭載されている。コントローラ２１１は、サーバ装置１１０，１２０からの要求に応じて、ストレージ部２１２内の記憶装置にアクセスする。コントローラ２２１は、サーバ装置１１０，１２０からの要求に応じて、ストレージ部２２２内の記憶装置にアクセスする。
【００３６】
コントローラ２１１，２２１は、それぞれストレージ部２１２，２２２に搭載された記憶装置に対するデータの書き込みを、ＲＡＩＤを用いて制御する。ストレージ部２１２，２２２のそれぞれには、１以上のＲＡＩＤグループが設定される。ＲＡＩＤグループとは、ＲＡＩＤによって書き込みが制御される複数の記憶装置を用いて実現される論理記憶領域である。そして、ＲＡＩＤグループに対して、各仮想ディスクに対応するボリューム（論理記憶領域）が割り当てられる。
【００３７】
データベースサーバ３１０は、クラウド基盤システムに含まれる各種リソースの使用状況を管理するための情報を保持するサーバ装置である。例えば、データベースサーバ３１０は、クラウド基盤サービスを利用するユーザの情報、ユーザが利用する仮想マシンとサーバ装置１１０，１２０との対応関係を示す情報、仮想ディスクとボリュームおよびＲＡＩＤグループとの対応関係を示す情報などを保持する。
【００３８】
管理サーバ３２０は、データベースサーバ３１０に保持された情報を参照しながら、クラウド基盤システムを管理するサーバ装置である。例えば、管理サーバ３２０は、操作端末３３０を用いた管理者による入力操作に応じて、仮想マシン、仮想ディスク、ＲＡＩＤグループ、ボリュームなどの設定処理を行う。また、管理サーバ３２０は、これらの設定に変更が生じた場合、その変更内容をデータベースサーバ３１０が保持する情報に反映させる。
【００３９】
図３は、管理サーバのハードウェア構成例を示す図である。管理サーバ３２０は、例えば、図３に示すようなコンピュータとして実現される。
図３に示す管理サーバ３２０は、プロセッサ３２０ａ、ＲＡＭ（Random Access Memory）３２０ｂ、ＨＤＤ３２０ｃ、グラフィック処理装置３２０ｄ、入力インタフェース３２０ｅ、読み取り装置３２０ｆおよび通信インタフェース３２０ｇを有する。なお、プロセッサ３２０ａは、図１に示した制御部３ｂの一例であり、通信インタフェース３２０ｇは、図１に示した通信部３ａの一例である。
【００４０】
プロセッサ３２０ａは、管理サーバ３２０全体を統括的に制御する。プロセッサ３２０ａは、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ３２０ａは、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００４１】
ＲＡＭ３２０ｂは、管理サーバ３２０の主記憶装置として使用される。ＲＡＭ３２０ｂには、プロセッサ３２０ａに実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ３２０ｂには、プロセッサ３２０ａによる処理に必要な各種データが格納される。
【００４２】
ＨＤＤ３２０ｃは、管理サーバ３２０の補助記憶装置として使用される。ＨＤＤ３２０ｃには、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤなどの他の種類の不揮発性記憶装置を使用することもできる。
【００４３】
グラフィック処理装置３２０ｄには、表示装置３２０ｄ１が接続されている。グラフィック処理装置３２０ｄは、プロセッサ３２０ａからの命令にしたがって、画像を表示装置３２０ｄ１に表示させる。表示装置としては、液晶ディスプレイや有機ＥＬ（Electroluminescence）ディスプレイなどがある。
【００４４】
入力インタフェース３２０ｅには、入力装置３２０ｅ１が接続されている。入力インタフェース３２０ｅは、入力装置３２０ｅ１から出力される信号をプロセッサ３２０ａに送信する。入力装置３２０ｅ１としては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００４５】
読み取り装置３２０ｆには、可搬型記録媒体３２０ｆ１が脱着される。読み取り装置３２０ｆは、可搬型記録媒体３２０ｆ１に記録されたデータを読み取ってプロセッサ３２０ａに送信する。可搬型記録媒体３２０ｆ１としては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００４６】
通信インタフェース３２０ｇは、ネットワーク４００を介して、データベースサーバ３１０などの他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、管理サーバ３２０の処理機能を実現することができる。なお、データベースサーバ３１０、サーバ装置１１０，１２０、コントローラ２１１，２２１も、図３に示すようなコンピュータとして実現可能である。
【００４７】
図４は、サーバ装置およびストレージ装置の処理機能の構成例を示す図である。
サーバ装置１１０は、ハイパーバイザ１１１を有する。ハイパーバイザ１１１の処理は、例えば、サーバ装置１１０が備える図示しないプロセッサが所定のプログラムを実行することで実現される。ハイパーバイザ１１１は、サーバ装置１１０上に仮想マシンを構築し、構築された仮想マシンの動作を管理する。図４の例では、サーバ装置１１０では、ハイパーバイザ１１１の管理の下で仮想マシンＶＭ１，ＶＭ２が動作している。
【００４８】
サーバ装置１２０も同様に、ハイパーバイザ１２１を有する。ハイパーバイザ１２１の処理は、例えば、サーバ装置１２０が備える図示しないプロセッサが所定のプログラムを実行することで実現される。ハイパーバイザ１２１は、サーバ装置１２０上に仮想マシンを構築し、構築された仮想マシンの動作を管理する。図４の例では、サーバ装置１２０では、ハイパーバイザ１２１の管理の下で仮想マシンＶＭ３，ＶＭ４が動作している。
【００４９】
ストレージ装置２１０のコントローラ２１１は、ＲＡＩＤ制御部２１１ａを有する。ＲＡＩＤ制御部２１１ａの処理は、例えば、コントローラ２１１が備える図示しないプロセッサが所定のプログラムを実行することで実現される。ＲＡＩＤ制御部２１１ａは、サーバ装置１１０，１２０からの要求に応じて、ストレージ部２１２内の記憶装置に対するアクセスを、ＲＡＩＤを用いて制御する。また、ＲＡＩＤ制御部２１１ａは、管理サーバ３２０からの命令にしたがい、ＲＡＩＤグループやボリュームの設定、後述するボリュームの再配置などの処理を実行する。
【００５０】
ストレージ装置２２０のコントローラ２２１も同様に、ＲＡＩＤ制御部２２１ａを有する。ＲＡＩＤ制御部２２１ａの処理は、例えば、コントローラ２２１が備える図示しないプロセッサが所定のプログラムを実行することで実現される。ＲＡＩＤ制御部２２１ａは、サーバ装置１１０，１２０からの要求に応じて、ストレージ部２２２内の記憶装置に対するアクセスを、ＲＡＩＤを用いて制御する。また、ＲＡＩＤ制御部２２１ａは、管理サーバ３２０からの命令にしたがい、ＲＡＩＤグループやボリュームの設定、後述するボリュームの再配置などの処理を実行する。
【００５１】
なお、図４の例では、ストレージ装置２１０には、ストレージ部２１２内の記憶装置を用いてＲＡＩＤグループＲＧ１，ＲＧ２，ＲＧ３が設定されている。また、ストレージ装置２２０には、ストレージ部２２２内の記憶装置を用いてＲＡＩＤグループＲＧ４，ＲＧ５，ＲＧ６が設定されている。
【００５２】
図５は、仮想ディスクとボリュームとの関係を説明するための図である。
前述のように、ストレージ装置２１０，２２０に設定されたＲＡＩＤグループには、ボリュームが割り当てられる。そして、ボリュームは、サーバ装置１１０，１２０で動作する仮想マシンに接続（マウント）された仮想ディスクに対応する記憶領域として利用される。
【００５３】
図５の例では、サーバ装置１１０において仮想マシンＶＭ１，ＶＭ２が動作し、仮想マシンＶＭ１には仮想ディスクＶＤ１，ＶＤ２が接続され、仮想マシンＶＭ２には仮想ディスクＶＤ３が接続されている。また、サーバ装置１２０において仮想マシンＶＭ３，ＶＭ４が動作し、仮想マシンＶＭ３には仮想ディスクＶＤ４，ＶＤ５が接続され、仮想マシンＶＭ４には仮想ディスクＶＤ６が接続されている。
【００５４】
一方、ストレージ装置２１０には、ストレージ部２１２内の記憶装置を用いてＲＡＩＤグループＲＧ１，ＲＧ２，ＲＧ３が設定されている。また、ストレージ装置２２０には、ストレージ部２２２内の記憶装置を用いてＲＡＩＤグループＲＧ４，ＲＧ５，ＲＧ６が設定されている。
【００５５】
ＲＡＩＤグループＲＧ１には、ボリュームＶＯＬ１１〜ＶＯＬ１４が割り当てられている。ＲＡＩＤグループＲＧ２には、ボリュームＶＯＬ２１，ＶＯＬ２２が割り当てられている。ＲＡＩＤグループＲＧ３には、ボリュームＶＯＬ３１，ＶＯＬ３２が割り当てられている。ＲＡＩＤグループＲＧ４には、ボリュームＶＯＬ４１，ＶＯＬ４２が割り当てられている。ＲＡＩＤグループＲＧ５には、ボリュームＶＯＬ５１，ＶＯＬ５２が割り当てられている。ＲＡＩＤグループＲＧ６には、ボリュームＶＯＬ６１が割り当てられている。
【００５６】
そして、ボリュームＶＯＬ１１が仮想ディスクＶＤ１に対応付けられ、ボリュームＶＯＬ１２が仮想ディスクＶＤ３に対応付けられ、ボリュームＶＯＬ１３が仮想ディスクＶＤ２に対応付けられ、ボリュームＶＯＬ１４が仮想ディスクＶＤ４に対応付けられている。さらに、ボリュームＶＯＬ４１が仮想ディスクＶＤ５に対応付けられ、ボリュームＶＯＬ４２が仮想ディスクＶＤ６に対応付けられている。
【００５７】
なお、図５に記載された「Ｆｒｅｅ」とは、ＲＡＩＤグループの論理記憶領域のうち、ボリュームが割り当てられていない空き領域を示す。
また、ＲＡＩＤグループに対してボリュームが割り当てられる際には、ＲＡＩＤグループの論理記憶領域の先頭側から順に、ボリュームが詰めて割り当てられる。したがって、通常、ボリュームが１つ以上割り当てられたＲＡＩＤグループでは、論理記憶領域の末端側には空き領域が存在し得るが、先頭側には空き領域が存在しない。
【００５８】
仮想ディスクと、その仮想ディスクに対応付けられたボリュームとの間では、次のような制御が行われる。例えば、仮想マシンＶＭ１により仮想ディスクＶＤ１に対するデータの書き込みが行われると、サーバ装置１１０からストレージ装置２１０のＲＡＩＤ制御部２１１ａに対して書き込み要求が送信される。この書き込み要求では、仮想マシンＶＭ１上の書き込みアドレスが書き込み先として指定される。ＲＡＩＤ制御部２１１ａは、指定された書き込みアドレスをボリュームＶＯＬ１１上のアドレスに変換して、書き込みが要求されたデータをボリュームＶＯＬ１に書き込む。このとき、ストレージ部２１２に搭載された、ＲＡＩＤグループＲＧ１に属する複数の記憶装置に対し、所定のＲＡＩＤレベルにしたがってデータの書き込み処理が実行される。
【００５９】
このように、本実施の形態に係るクラウド基盤システムでは、ある仮想マシンに仮想ディスクが新たに接続されると、その仮想ディスクに対応するボリュームがいずれかのＲＡＩＤグループに割り当てられる。そして、仮想ディスクに対応するボリュームに対してアクセスが行われることで、仮想ディスクに対するアクセス処理が仮想的に実現される。
【００６０】
また、クラウド基盤システムでは、管理サーバ３２０の制御の下で、ユーザの要求に応じた容量やアクセス性能を有する記憶領域を、仮想ディスクに対して割り当てることが可能となっている。
【００６１】
例えば、ＲＡＩＤグループＲＧ１に属する記憶装置より、ＲＡＩＤグループＲＧ２，ＲＧ３に属する記憶装置の方が、アクセス性能が高いものとする。また、仮想マシンＶＭ１を利用するユーザにより、当初は、仮想ディスクＶＤ１の仕様としてアクセス性能が低く、利用料金が低い仕様が要求されたとする。この場合、管理サーバ３２０は、ユーザの要求にしたがって、仮想ディスクＶＤ１に対応するボリュームＶＯＬ１１を、例えば図５のようにＲＡＩＤグループＲＧ１に割り当てる。
【００６２】
その後、ユーザから仮想ディスクＶＤ１のアクセス性能を高めたい旨が要求されると、管理サーバ３２０は例えば、ボリュームＶＯＬ１１の割り当て先をＲＡＩＤグループＲＧ１からＲＡＩＤグループＲＧ２に移動させることができる。さらに、ユーザから仮想ディスクＶＤ１の容量を拡張したい旨が要求されると、管理サーバ３２０は例えば、ボリュームＶＯＬ１１の割り当て先を、ＲＡＩＤグループＲＧ２からより大きな空き領域を有するＲＡＩＤグループＲＧ３に移動させることもできる。
【００６３】
ところで、前述のように、ＲＡＩＤグループは、ＲＡＩＤによって書き込みが制御される複数の記憶装置を用いて実現される論理記憶領域である。ＲＡＩＤグループの論理記憶領域には論理アドレス（Logical Block Address：ＬＢＡ）が付与されている。そして、ＲＡＩＤグループ上のある論理アドレスに対してデータの書き込みが要求されると、そのＲＡＩＤグループに属する複数の記憶装置に対して所定のＲＡＩＤレベルにしたがってデータの書き込みが行われる。
【００６４】
これに加えて、本実施の形態のストレージ装置２１０，２２０では、ＲＡＩＤグループに設定されたボリュームには、そのボリューム固有の論理アドレス（仮想アドレス）ではなく、ＲＡＩＤグループと同じ論理アドレスが付与される。したがって、１つのボリュームは、ＲＡＩＤグループの論理記憶領域のうち、論理アドレスが連続するひとまとめの領域に設定される。そして、設定されたボリュームは、ＲＡＩＤグループの論理記憶領域のうち、このボリュームが設定された領域と同じアドレス空間を有する。
【００６５】
例えば、ＲＡＩＤグループＲＧ１の論理記憶領域における先頭領域に、ボリュームＶＯＬ１１が設定されるとする。このとき、ＲＡＩＤグループＲＧ１の論理記憶領域における論理アドレス「０」から論理アドレス「Ｘ」までの領域にボリュームＶＯＬ１１が設定されたとすると、ボリュームＶＯＬ１１の先頭の論理アドレスは「０」となり、末尾の論理アドレスは「Ｘ」となる。さらに、ＲＡＩＤグループＲＧ１に対して続けてボリュームＶＯＬ１２が設定されるとする。このとき、ボリュームＶＯＬ１２の先頭の論理アドレスは「Ｘ＋１」となる。なお、このようなボリューム設定方法が用いられるストレージ装置は、「物理ブロックストレージ」と呼ばれる場合もある。
【００６６】
上記のようなボリューム設定方法が用いられることで、ＲＡＩＤ制御部２１１ａ，２２１ａは、ボリューム内のデータにアクセスする際に、ボリュームに固有の論理アドレスをＲＡＩＤグループの論理記憶領域の論理アドレスに変換する必要がなくなる。このため、データアクセスのための処理負荷が軽減され、そのアクセス速度を向上させることができる。
【００６７】
その一方で、上記のようなボリューム設定方法を用いてボリュームの削除が行われる場合には、次の図６に示すような課題がある。
図６は、ボリュームの削除時の処理例を示す図である。
【００６８】
図６の状態１では、ＲＡＩＤグループＲＧ１の論理記憶領域の先頭から順に、ボリュームＶＯＬ１１，ＶＯＬ１２，ＶＯＬ１３，ＶＯＬ１４が設定されているとする。さらに、ボリュームＶＯＬ１４より末端側（下位アドレス側）には空き領域ＦＲ１が形成されている。
【００６９】
そして、この状態１から、ボリュームＶＯＬ１２が削除されるものとする。この場合、図６の状態２に示すように、ボリュームＶＯＬ１１とボリュームＶＯＬ１３との間に空き領域ＦＲ２が形成される。なお、空き領域ＦＲ２は、空き領域ＦＲ１より大きいものとする。
【００７０】
この状態２では、ＲＡＩＤグループＲＧ１の論理記憶領域には、空き領域ＦＲ１と空き領域ＦＲ２とが存在している。状態２では、例えば、空き領域ＦＲ２の容量以下の新規のボリュームを、ボリュームＶＯＬ１１とボリュームＶＯＬ１３との間に追加設定できる。しかしながら、ボリュームの記憶領域が仮想化されない物理ブロックストレージでは、状態２では、ＲＡＩＤグループＲＧ１に対して、空き領域ＦＲ２より大きい容量のボリュームを追加設定できない。例えば、この後に空き領域ＦＲ２より大きい容量のボリュームの追加が要求され続けると、空き領域ＦＲ２（および空き領域ＦＲ１）は利用されないままになってしまう。このように、物理ブロックストレージでは、ボリュームが削除されると、記憶領域の利用効率が低下する可能性がある、という課題がある。
【００７１】
そこで、本実施の形態では、管理サーバ３２０の制御の下で、あるボリュームより先頭側に空き領域が生じた場合に、その空き領域が埋まるようにボリュームを先頭側（上位アドレス側）に詰める「再配置」が実行される。図６の例では、ボリュームＶＯＬ１２が削除されると、状態３に示すように、ボリュームＶＯＬ１３，ＶＯＬ１４がボリュームＶＯＬ１１の隣接領域に再配置される。これにより、利用効率の低い空き領域ＦＲ２がなくなるとともに、末端側の空き領域ＦＲ１が拡張されて、連続するひとまとめのより大きな空き領域ＦＲ１が形成されて、状態２より大きなボリュームを追加設定できるようになる。
【００７２】
ところで、実際の再配置では、ボリュームＶＯＬ１３，ＶＯＬ１４のデータは、他のＲＡＩＤグループに対して一旦退避された後、ＲＡＩＤグループＲＧ１に書き戻される。この一連の処理には、例えば、退避先の他のＲＡＩＤグループの探索、探索された他のＲＡＩＤグループへのボリュームＶＯＬ１３，ＶＯＬ１４のデータコピー、元のボリュームＶＯＬ１３，ＶＯＬ１４の削除、退避先からＲＡＩＤグループＲＧ１へのボリュームＶＯＬ１３，ＶＯＬ１４のデータコピー、退避先のボリュームＶＯＬ１３，ＶＯＬ１４の削除といった処理が含まれる。
【００７３】
また、サーバ装置１１０，１２０からそれぞれボリュームＶＯＬ１３，ＶＯＬ１４へのアクセスをできる限り継続したままで（活性状態で）、これら一連の処理が実行される。このため、一連の処理には、退避先のボリュームＶＯＬ１３，ＶＯＬ１４へのパスの変更や、ＲＡＩＤグループＲＧ１上の再配置後のボリュームＶＯＬ１３，ＶＯＬ１４へのパスの変更も含まれる。
【００７４】
このように、ボリューム再配置のためには複雑な処理が必要となる。このため、このような一連の処理をストレージ装置２１０のコントローラ２１１だけに実行させた場合、コントローラ２１１の処理負荷が大きく、サーバ装置１１０，ｌ２０からストレージ装置２１０内のボリュームへのアクセス性能が低下する可能性がある。
【００７５】
また、このクラウド基盤システムでは、複数のサーバ装置や複数のストレージ装置のリソースが複数のユーザによって共用されるため、リソースの使用状況が複雑である。さらに、予測できない突発的な使用状況の変更が生じ得るなど、リソースの使用状況が流動的である。このため、ストレージ装置２１０のコントローラ２１１だけに上記の一連の処理を実行させた場合、その実行中に、退避先のＲＡＩＤグループにおける容量不足、通信断、データ破壊などの様々な障害が発生する可能性がある。特に、活性状態のままボリュームを再配置する処理の難度は非常に高いと言える。
【００７６】
そこで、本実施の形態では、クラウド基盤システムの使用状況を一元的に管理する管理サーバ３２０により、上記の一連の処理を実行するための命令を生成し、それらの命令をストレージ装置２１０に送信する。ストレージ装置２１０のコントローラ２１１は、単に受信した命令にしたがって処理を実行する。これにより、コントローラ２１１の処理負荷を軽減できるとともに、ボリューム再配置の実行中における障害発生の確率を低減できる。
【００７７】
図７は、データベースサーバおよび管理サーバの処理機能の構成例を示す図である。データベースサーバ３１０は、記憶部３１１と入出力部３１２を有する。
記憶部３１１は、例えば、データベースサーバ３１０が備える図示しない記憶装置の記憶領域によって実現される。記憶部３１１には、ユーザテーブル３１１ａ、仮想サーバテーブル３１１ｂ、仮想ディスクテーブル３１１ｃ、ボリュームテーブル３１１ｄおよびストレージ領域管理テーブル３１１ｅが記憶される。以下、図８〜図１２を用いてこれらのテーブル情報について説明する。
【００７８】
図８は、ユーザテーブルの構成例を示す図である。ユーザテーブル３１１ａは、ユーザの情報を管理するための管理テーブルである。ユーザテーブル３１１ａには、会社名など、ユーザの名称を示すユーザ名と、ユーザを識別するユーザＩＤ（IDentification）とが対応付けて登録されている。
【００７９】
図９は、仮想サーバテーブルの構成例を示す図である。仮想サーバテーブル３１１ｂは、ユーザが使用する仮想サーバ（仮想マシン）に関する情報を管理するための管理テーブルである。仮想サーバテーブル３１１ｂは、ユーザ名、ホスト名、仮想サーバ名、物理サーバ名、クラスタグループ、タイプ、マシンタイプ、ＯＳタイプの各項目を有する。
【００８０】
ユーザ名は、仮想サーバを使用するユーザの名称を示す。ホスト名は、仮想サーバに対応するホストの名称を示す。仮想サーバ名は、仮想サーバ（仮想マシン）を識別するための名称を示す。物理サーバ名は、仮想サーバが動作するサーバ装置（サーバ装置１１０，１２０）を識別するための名称を示す。クラスタグループは、仮想サーバが属するクラスタグループを識別するための情報を示す。
【００８１】
タイプは、仮想サーバのタイプを示す。例えば、仮想サーバが単独で運用される場合、タイプとして「１」が登録される。また、仮想サーバが他の仮想サーバと冗長化されて運用される場合（例えば、一方が他方の予備機として運用される場合）、タイプとして「冗長」が登録される。マシンタイプは、仮想マシンの性能や構成などの仕様を識別するための情報を示す。ＯＳタイプは、仮想マシンで実行されるＯＳプログラムを識別するための情報を示す。
【００８２】
図１０は、仮想ディスクテーブルの構成例を示す図である。仮想ディスクテーブル３１１ｃは、仮想サーバ（仮想マシン）に接続された仮想ディスクに関する情報を管理するための管理テーブルである。仮想ディスクテーブル３１１ｃは、仮想サーバ名、ＬＵＮ（Logical Unit Number）番号、仮想ディスクＩＤ、ボリューム名、ディスクタイプの各項目を有する。
【００８３】
仮想サーバ名は、仮想ディスクが接続された仮想サーバを識別するための名称を示す。ＬＵＮ番号は、仮想ディスクに対応するボリュームを識別するための情報を示す。仮想ディスクＩＤは、仮想ディスクを識別するための情報を示す。ボリューム名は、仮想ディスクに対応するボリュームを識別するための情報を示す。例えば、ＬＵＮ番号がユーザ側でボリュームを識別するために使用されるのに対し、ボリューム名はクラウド基盤システム側でボリュームを識別するために使用される。ディスクタイプは、仮想ディスクの仕様に関する情報を示す。例えば、仮想ディスクが単独の仮想サーバに接続される場合、ディスクタイプとして「シングル」が登録され、仮想ディスクが複数の仮想サーバに接続されてこれらの間で共有される場合、ディスクタイプとして「共有」が登録される。
【００８４】
図１１は、ボリュームテーブルの構成例を示す図である。ボリュームテーブル３１１ｄは、ＲＡＩＤグループに設定されたボリュームに関する情報を管理するための管理テーブルである。ボリュームテーブル３１１ｄは、ストレージ装置名、ＲＡＩＤグループ名、ボリューム番号、ボリューム名、サイズの各項目を有する。
【００８５】
ストレージ装置名は、ボリュームが設定されるストレージ装置（ストレージ装置２１０，２２０）を識別するための名称を示す。ＲＡＩＤグループ名は、ボリュームが設定されるＲＡＩＤグループを識別するための名称を示す。ボリューム番号は、ボリュームの識別番号を示す。ボリューム名は、ボリュームを識別するための名称を示す。サイズは、ボリュームの容量を示す。
【００８６】
図１２は、ストレージ領域管理テーブルの構成例を示す図である。ストレージ領域管理テーブル３１１ｅは、ストレージ装置２１０，２２０のストレージ部２１２，２２２の記憶領域における使用状況を管理するための管理テーブルである。ストレージ領域管理テーブル３１１ｅは、ストレージ装置名、ＲＡＩＤグループ名、ＲＡＩＤサイズ、ボリューム名、サイズ、ステータスの各項目を有する。
【００８７】
ストレージ装置名は、ＲＡＩＤグループが設定されたストレージ装置（ストレージ装置２１０，２２０）を識別するための名称を示す。ＲＡＩＤグループ名は、設定されたＲＡＩＤグループを識別するための名称を示す。ＲＡＩＤサイズは、ＲＡＩＤグループの論理記憶領域の総容量を示す。ボリューム名は、ＲＡＩＤグループに設定されたボリュームを識別するための名称を示す。サイズは、ＲＡＩＤグループに設定されたボリュームの容量を示す。
【００８８】
ステータスは、ＲＡＩＤグループの論理記憶領域における該当領域の状態を示す。例えば、該当領域がボリュームとして使用中の場合、ステータスとして「Ｕｓｅｄ」が登録される。また、該当領域がボリュームとして使用するように予約されている場合、ステータスとして「Ｒｅｓｅｒｖｅｄ」が登録される。ステータスが「Ｒｅｓｅｒｖｅｄ」の記憶領域は、未使用状態であっても空き領域ではないと認識されるため、ボリュームの退避先などとして誤って使用されなくなる。なお、ステータスが「Ｆｒｅｅ」の場合、ボリューム名とサイズの各項目には、情報が登録されない。
【００８９】
以上のストレージ領域管理テーブル３１１ｅにより、ＲＡＩＤグループ上にどのようなボリュームが設定され、どれだけ空き領域があるかが管理される。なお、図１２の例では、ＲＡＩＤグループ「ＲＧ０００」に対してその上位アドレス側から順に、３００ギガバイトのボリューム「ｖｄ−１１０１」と、１２０ギガバイトのボリューム「ｖｄ−１１０２」とが設定されていることが示されている。また、ＲＡＩＤグループ「ＲＧ０００」におけるそれより下位アドレス側の領域が空き領域であることが示されている。
【００９０】
以下、図７に戻って説明を続ける。
入出力部３１２の処理は、例えば、データベースサーバ３１０が備える図示しないプロセッサが所定のプログラムを実行することで実現される。入出力部３１２は、管理サーバ３２０からの要求に応じて、記憶部３１１内のテーブル情報に対するデータの登録や、テーブル情報からのデータの読み出しを行う。
【００９１】
次に、管理サーバ３２０は、記憶部３２１、管理部３２２および制御部３２３を有する。
記憶部３２１は、例えば、ＲＡＭ３２０ｂ、ＨＤＤ３２０ｃなど、管理サーバ３２０が備える記憶装置の記憶領域によって実現される。管理部３２２および制御部３２３の処理は、例えば、プロセッサ３２０ａが所定のプログラムを実行することで実現される。
【００９２】
記憶部３２１には、予約データ管理テーブル３２１ａと収集データ管理テーブル３２１ｂが記憶される。
ここで、図１３は、予約データ管理テーブルの構成例を示す図である。予約データ管理テーブル３２１ａは、ボリューム操作予約に関する情報を管理するための管理テーブルである。
【００９３】
ボリューム操作予約は、仮想ディスクの追加や削除、あるいは仮想ディスクの仕様変更など、ボリュームの操作が必要となる処理がユーザから要求された場合に発生する。ボリューム操作予約が発生すると、それに対応する予約データが生成される。なお、仮想ディスクの仕様変更の例としては、仮想ディスクのアクセス速度の変更があり、その場合、対応するボリュームがよりアクセス速度の高い記憶装置によって実現されるＲＡＩＤグループに移動される。
【００９４】
予約データ管理テーブル３２１ａの１つのレコードが、１つのボリューム操作予約に関する予約データを示す。予約データは、ユーザ情報、仮想サーバ名、物理サーバ名、操作種別、ボリューム番号を含む。
【００９５】
ユーザ情報は、ユーザ名とユーザＩＤを含む。ユーザ名は、ボリューム操作を予約したユーザの名称を示し、ユーザＩＤは、そのユーザを識別するための識別番号を示す。仮想サーバ名は、操作対象のボリュームに対応付けられた仮想ディスクに接続する仮想サーバ（仮想マシン）を識別するための名称を示す。物理サーバ名は、その仮想サーバが動作するサーバ装置（サーバ装置１１０，１２０）を識別するための名称を示す。操作種別は、操作内容の種別を示す。操作種別としては、例えば、ボリュームの削除、ボリュームの追加、ボリュームの移動などがある。なお、図示しないが、例えば仮想ディスクの仕様変更の要求に応じてボリュームの移動を行う場合、変更後の仕様を示す情報が予約データに登録される。ボリューム番号は、操作対象のボリュームを識別するための識別番号を示す。
【００９６】
図７に戻り、管理部３２２は、仮想ディスクの追加や削除、仮想ディスクの仕様変更の要求を操作端末３３０から受け付ける。管理部３２２は、このようなボリュームの操作が必要となる処理が要求されると、上記の予約データを生成して、ボリューム操作予約を行う。管理部３２２は、ボリューム操作予約が発生するたびに、そのボリューム操作予約に対応する予約データを予約データ管理テーブル３２１ａに登録する。
【００９７】
また、管理部３２２は、予約データ管理テーブル３２１ａから予約データを登録順に読み出し、読み出した予約データに基づいて、操作対象のボリュームに関する情報をデータベースサーバ３１０から収集する。管理部３２２は、データベースサーバ３１０から収集したデータを収集データとして結合し、収集データ管理テーブル３２１ｂに登録する。
【００９８】
ここで、図１４は、収集データ管理テーブルの構成例を示す図である。収集データ管理テーブル３２１ｂは、収集データを一時的に保持するための管理テーブルである。収集データ管理テーブル３２１ｂの１つのレコードが、１つのボリューム操作予約に関する収集データを示す。収集データは、予約データに含まれていたユーザ情報、仮想サーバ名、物理サーバ名、操作種別、ボリューム番号に加えて、ストレージ装置名、ＬＵＮ番号、ボリューム情報を含んでいる。なお、予約データ中のボリューム番号は、ボリューム情報内に格納される。
【００９９】
ストレージ装置名は、操作対象のボリュームが設定されているストレージ装置（ストレージ装置２１０，２２０）を識別するための名称を示す。ＬＵＮ番号は、操作対象のボリュームを識別するための番号を示す。ＲＡＩＤグループ名は、操作対象のボリュームが設定されているＲＡＩＤグループを識別するための名称を示す。ボリューム名は、操作対象のボリュームを識別するための名称を示す。サイズは、操作対象のボリュームの容量を示す。ディスクタイプは、操作対象のボリュームに対応する仮想ディスクの仕様に関する情報を示す。ステータスは、操作対象のボリュームの状態を示す。
【０１００】
図７に戻り、管理部３２２は、収集データに対応するボリューム操作を実行するための制御情報を生成する。例えば、ボリュームの再配置を伴うボリューム削除が実行される場合、削除対象および再配置対象の各ボリューム、再配置対象のボリュームの退避先のＲＡＩＤグループを示すＲＡＩＤグループ名などを含む制御情報が生成される。管理部３２２は、生成した制御情報を制御部３２３に受け渡す。
【０１０１】
制御部３２３は、管理部３２２から受け渡された制御情報に基づいて、ボリューム操作を実行するための命令を生成し、生成した命令を記述した命令情報を生成する。制御部３２３は、生成した命令情報を、操作対象のボリュームが設定されたストレージ装置に送信して、命令情報に基づくボリューム操作を実行させる。制御部３２３は、命令情報に基づくボリューム操作の完了通知をストレージ装置から受信すると、ボリューム操作に応じた管理テーブルの更新を管理部３２２に依頼する。
【０１０２】
管理部３２２は、この依頼に応じて、ボリューム操作に応じたリソース使用状況の変化を、データベースサーバ３１０に登録された管理テーブルに反映させる。そして、管理部３２２は、完了したボリューム操作に対応する予約データおよび収集データを、それぞれ予約データ管理テーブル３２１ａ、収集データ管理テーブル３２１ｂから削除する。
【０１０３】
次に、図１５〜図１７を用いて、ボリュームの再配置を伴うボリューム削除の処理例について説明する。
図１５〜図１７は、ボリューム削除および再配置の処理例を示す図である。図１５〜図１７では、図５に示した状態から、ボリュームＶＯＬ１２を削除するボリューム操作が要求された場合の処理について例示する。
【０１０４】
管理サーバ３２０の管理部３２２は、ボリュームＶＯＬ１２を削除するボリューム操作が要求されると、ＲＡＩＤグループＲＧ１の論理記憶領域におけるボリュームＶＯＬ１２の下位アドレス側に他のボリュームが設定されているかを判定する。管理部３２２は、下位アドレス側にボリュームＶＯＬ１３，ＶＯＬ１４が設定されていることを判定すると、これらのボリュームＶＯＬ１３，ＶＯＬ１４の再配置が必要と判定する（ステップＳ１１）。
【０１０５】
また、管理部３２２は、ストレージ装置２１０，２２０に設定されたＲＡＩＤグループＲＧ１〜ＲＧ６の中から、ボリュームＶＯＬ１３，ＶＯＬ１４の退避先を決定する（ステップＳ１２）。この処理では、ＲＡＩＤグループＲＧ１〜ＲＧ６の中から、ボリュームＶＯＬ１３，ＶＯＬ１４の合計容量以上の連続する空き領域を有するＲＡＩＤグループが退避先として決定される。図１５では例として、ＲＡＩＤグループＲＧ１と同一のストレージ装置２１０に設定されたＲＡＩＤグループＲＧ３が、退避先として決定されたとする。なお、ボリュームＶＯＬ１３の退避先とボリュームＶＯＬ１４の退避先とが、異なるＲＡＩＤグループに決定されてもよい。
【０１０６】
次に、管理部３２２は、ボリュームＶＯＬ１２の削除およびボリュームＶＯＬ１３，ＶＯＬ１４の再配置を実行するための制御情報を生成し、制御部３２３に受け渡す。制御部３２３は、これらの処理の実行のための命令情報を生成し、生成した命令情報をストレージ装置２１０のコントローラ２１１に送信して、命令情報に基づく処理の実行を要求する。
【０１０７】
コントローラ２１１のＲＡＩＤ制御部２１１ａは、受信した命令情報にしたがって以下のような処理を実行する。まず、ＲＡＩＤ制御部２１１ａは、ボリュームＶＯＬ１２を削除する（ステップＳ１３）。この時点では、ＲＡＩＤグループＲＧ１には、ボリュームＶＯＬ１１とボリュームＶＯＬ１３との間に空き領域ＦＲ３が形成される。次に、ＲＡＩＤ制御部２１１ａは、ボリュームＶＯＬ１３，ＶＯＬ１４を退避先のＲＡＩＤグループＲＧ３の空き領域にコピー（ミラーリング）する（ステップＳ１４）。
【０１０８】
このコピー処理では、仮想マシンＶＭ３，ＶＭ１からそれぞれＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３，ＶＯＬ１４に対するアクセスが許容された状態（活性状態）のまま、ボリュームＶＯＬ１３，ＶＯＬ１４のコピーが実行される。例えば、ＲＡＩＤ制御部２１１ａは、ボリュームＶＯＬ１３，ＶＯＬ１４にそれぞれ対応するビットマップを生成する。各ビットマップは、ボリュームＶＯＬ１３，ＶＯＬ１４上の論理ブロックごとのビットを有し、初期状態では全ビットの値が「１」に設定される。
【０１０９】
ボリュームＶＯＬ１３のコピー処理は、例えば、対応するビットマップを用いて次のように実行される。ＲＡＩＤ制御部２１１ａは、ボリュームＶＯＬ１３におけるビットの値が「１」の論理ブロックのデータを退避先にコピーし、そのデータのコピーが完了するとビットの値を「０」に更新する。これとともに、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ３からボリュームＶＯＬ１３に対するデータの書き込みが要求されると、データをボリュームＶＯＬ１３に書き込むとともに、書き込み先の論理ブロックに対応するビットの値を「１」に更新する。ＲＡＩＤ制御部２１１ａは、ビットマップの全ビットの値が「０」になるまで、退避先へのデータのコピーと、仮想マシンＶＭ３からの書き込み要求の受け付けとを継続する。ビットマップの全ビットの値が「０」になったとき、コピー処理は終了する。ボリュームＶＯＬ１４についても、対応するビットマップを用いて同様の処理が実行される。
【０１１０】
退避先へのコピー処理が終了すると、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ３からＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３への接続パスを、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３への接続パスに切り替える。また、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ１からＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１４への接続パスを、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１４への接続パスに切り替える（ステップＳ１５）。
【０１１１】
パス切り替えが完了すると、ＲＡＩＤ制御部２１１ａは、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３，ＶＯＬ１４に対するアクセスの受け付けを開始する。これにより、これ以後の仮想マシンＶＭ３，ＶＭ１からそれぞれボリュームＶＯＬ１３，ＶＯＬ１４へのアクセスは、退避先のボリュームＶＯＬ１３，ＶＯＬ１４に対して行われるようになる。
【０１１２】
ステップＳ１５のパス切り替えにより、仮想ディスクＶＤ４，ＶＤ２に対応するアクセス先のボリュームは、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３，ＶＯＬ１４にそれぞれ切り替えられている。このため、ＲＡＩＤ制御部２１１ａは、仮想ディスクＶＤ４上のアドレスを指定したアクセス要求を受信すると、指定されたアドレスを、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３の論理アドレスではなく、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３の論理アドレスに変換する。同様に、ＲＡＩＤ制御部２１１ａは、仮想ディスクＶＤ２上のアドレスを指定したアクセス要求を受信すると、指定されたアドレスを、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１４の論理アドレスではなく、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１４の論理アドレスに変換する。
【０１１３】
また、上記のパス切り替えの完了後、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ３，ＶＭ１からそれぞれＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３，ＶＯＬ１４への接続パスを閉塞する。そして、ＲＡＩＤ制御部２１１ａは、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３，ＶＯＬ１４を削除する（ステップＳ１６）。
【０１１４】
次に、ＲＡＩＤ制御部２１１ａは、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３，ＶＯＬ１４を、ＲＡＩＤグループＲＧ１におけるボリュームＶＯＬ１１に続く位置にコピー（ミラーリング）する（ステップＳ１７）。このコピー処理では、上記のステップＳ１４の処理と同様に、仮想マシンＶＭ３，ＶＭ１からそれぞれＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３，ＶＯＬ１４に対するアクセスが許容された状態（活性状態）のまま、コピーが実行される。
【０１１５】
コピー処理が完了すると、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ３からＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３への接続パスを、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３への接続パスに切り替える。また、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ１からＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１４への接続パスを、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１４への接続パスに切り替える（ステップＳ１８）。
【０１１６】
パス切り替えが完了すると、ＲＡＩＤ制御部２１１ａは、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３，ＶＯＬ１４に対するアクセスの受け付けを開始する。このとき、ＲＡＩＤ制御部２１１ａは、仮想ディスクＶＤ４上のアドレスを指定したアクセス要求を受信すると、指定されたアドレスを、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３の論理アドレスではなく、ＲＡＩＤグループＲＧ１上の移動後のボリュームＶＯＬ１３の論理アドレスに変換する。同様に、ＲＡＩＤ制御部２１１ａは、仮想ディスクＶＤ２上のアドレスを指定したアクセス要求を受信すると、指定されたアドレスを、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１４の論理アドレスではなく、ＲＡＩＤグループＲＧ１上の移動後のボリュームＶＯＬ１４の論理アドレスに変換する。これにより、これ以後の仮想マシンＶＭ３，ＶＭ１からそれぞれボリュームＶＯＬ１３，ＶＯＬ１４へのアクセスは、ＲＡＩＤグループＲＧ１上のボリュームＶＯＬ１３，ＶＯＬ１４に対して行われるようになる。
【０１１７】
また、上記のパス切り替えの完了後、ＲＡＩＤ制御部２１１ａは、仮想マシンＶＭ３，ＶＭ１からそれぞれＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３，ＶＯＬ１４への接続パスを閉塞する。そして、ＲＡＩＤ制御部２１１ａは、ＲＡＩＤグループＲＧ３上のボリュームＶＯＬ１３，ＶＯＬ１４を削除する（ステップＳ１９）。
【０１１８】
以上の処理により、ＲＡＩＤグループＲＧ１には、図１５に示した空き領域ＦＲ３より大きな連続する空き領域ＦＲ４が形成される。これにより、ＲＡＩＤグループＲＧ１に対して空き領域ＦＲ３より大きなボリュームを新たに設定できるようになり、その結果、ＲＡＩＤグループＲＧ１に対応する記憶領域の利用効率が向上する。
【０１１９】
また、上記の処理では、パス切り替えの処理中を除き、仮想マシンＶＭ３，ＶＭ１からそれぞれボリュームＶＯＬ１３，ＶＯＬ１４に対するアクセスの受け付けが継続される。このため、再配置処理によりボリュームＶＯＬ１３，ＶＯＬ１４にアクセスできなくなる期間が最小限に抑えられ、再配置処理が仮想マシンＶＭ３，ＶＭ１の動作に与える影響を小さくすることができる。
【０１２０】
上記の処理が完了すると、ＲＡＩＤ制御部２１１ａは、完了通知を管理サーバ３２０に送信する。管理サーバ３２０では、制御部３２３によって完了通知が受信されると、管理部３２２は、ボリューム操作に応じたリソース使用状況の変化を、データベースサーバ３１０に登録された管理テーブルに反映させる。
【０１２１】
具体的には、管理部３２２は、仮想ディスクテーブル３１１ｃ、ボリュームテーブル３１１ｄおよびストレージ領域管理テーブル３１１ｅから、ボリュームＶＯＬ１２が登録されたレコードを削除する。なお、ストレージ領域管理テーブル３１１ｅでは、ボリュームＶＯＬ１２が登録されたレコードが削除されることで、ＲＡＩＤグループＲＧ１に対してボリュームＶＯＬ１１，ＶＯＬ１３，ＶＯＬ１４にそれぞれ対応するレコードが順に登録された状態となる。これにより、ボリュームＶＯＬ１１とボリュームＶＯＬ１３との間に空き領域が存在しないことが示されるようになるので、ストレージ領域管理テーブル３１１ｅについては、ボリュームＶＯＬ１２が登録されたレコードの削除のみが行われればよい。
【０１２２】
なお、前述のように、本実施の形態では、ＲＡＩＤグループに対するボリュームの割り当ては、ＲＡＩＤグループの論理記憶領域の先頭側から順に、ボリュームが詰めて割り当てられる、というルールにしたがって行われる。上記の図１５〜図１７でも、このルールが用いられている場合の処理例を示している。しかし、他の方法として、ＲＡＩＤグループの論理記憶領域の末端側から順に、ボリュームが詰めて割り当てられる、というルールが用いられる場合もある。
【０１２３】
後者の方法が用いられる場合には、図１５のステップＳ１１においてボリュームＶＯＬ１２の削除が要求されたとき、管理部３２２は、ボリュームＶＯＬ１２より上位アドレス側に他のボリュームが設定されているかを判定する。そして、管理部３２２は、上位アドレス側に他のボリュームが設定されている場合に、他のボリュームの再配置が必要と判定する。図１５の例では、ボリュームＶＯＬ１１が再配置の対象となる。
【０１２４】
この後の再配置の処理過程では、図１７のステップＳ１７のように退避されたボリュームがＲＡＩＤグループＲＧ１に書き戻される際に、そのボリュームのデータは、ＲＡＩＤグループの論理記憶領域の先頭側でなく、末端側に詰めて書き込まれる。これにより、ＲＡＩＤグループの論理記憶領域における先頭側の空き領域が拡張される。
【０１２５】
次に、管理サーバの処理について、図１８〜図２３のフローチャートを用いて説明する。
図１８は、ボリューム操作指示の受け付け処理の手順を示すフローチャートの例である。
【０１２６】
［ステップＳ１０１］管理部３２２は、仮想ディスクの追加や削除、仮想ディスクの仕様変更など、ボリュームの操作が必要となる処理の指示を、操作端末３３０から受け付ける。このとき、管理部３２２は、追加、削除、使用変更などの対象の仮想ディスクを示す仮想ディスクＩＤや、その要求元のユーザ名を受け付ける。管理部３２２は、受け付けた仮想ディスクＩＤに対応付けられたボリュームのボリューム番号、仮想ディスクＩＤが示す仮想ディスクが接続された仮想サーバ（仮想マシン）を示す仮想サーバ名、その仮想サーバが動作するサーバ装置を示す物理サーバ名を、データベースサーバ３１０に問い合わせる。データベースサーバ３１０の入出力部３１２は、問い合わせに応じて、ユーザテーブル３１１ａ、仮想サーバテーブル３１１ｂおよび仮想ディスクテーブル３１１ｃを参照して上記各情報を抽出し、管理サーバ３２０に返信する。
【０１２７】
［ステップＳ１０２］管理部３２２は、受け付けた仮想ディスクＩＤおよびユーザ名と、データベースサーバ３１０から返信された情報とに基づいて、指示された処理内容に対応するボリューム操作予約を示す予約データを生成し、予約データ管理テーブル３２１ａに登録する。
【０１２８】
管理部３２２は、以上の図１８の手順により予約データを予約データ管理テーブル３２１ａに登録する。この登録処理と並行して、管理部３２２は、予約データ管理テーブル３２１ａから予約データを登録順に読み込み、予約データに対応する処理を実行する。次の図１９〜図２３では、管理部３２２が、ボリューム削除を指示する予約データを予約データ管理テーブル３２１ａから読み込んだ場合の処理の例を示す。
【０１２９】
図１９〜図２３は、ボリューム削除処理の手順を示すフローチャートの例である。
［ステップＳ１１１］管理部３２２は、ボリューム削除を指示する予約データを予約データ管理テーブル３２１ａから読み込む。
【０１３０】
［ステップＳ１１２］管理部３２２は、読み込んだ予約データに基づいて、操作対象のボリュームに関する情報をデータベースサーバ３１０から収集する。管理部３２２は、データベースサーバ３１０から収集したデータを収集データとして結合し、収集データ管理テーブル３２１ｂに登録する。
【０１３１】
続いて、管理部３２２は、ボリューム設定状況の確認処理（ステップＳ１１３，Ｓ１１４，Ｓ１１６）を実行する。
［ステップＳ１１３］管理部３２２は、削除対象のボリュームが設定されたＲＡＩＤグループにおけるボリュームの設定状況を、データベースサーバ３１０に問い合わせる。データベースサーバ３１０の入出力部３１２は、ストレージ領域管理テーブル３１１ｅを参照して、該当するＲＡＩＤグループにおけるボリュームの設定状況を管理サーバ３２０に返信する。
【０１３２】
管理部３２２は、データベースサーバ３１０から返信された情報に基づき、削除対象のボリュームが設定されたＲＡＩＤグループにおいて、このボリュームより下位アドレス側に別のボリュームが設定されているかを判定する。管理部３２２は、下位アドレス側に別のボリュームが設定されている場合、ステップＳ１１４の処理を実行する。この場合、下位アドレス側のボリュームについての再配置が必要と判定される。一方、管理部３２２は、下位アドレス側にボリュームが設定されていない場合、図２２のステップＳ１４１の処理を実行する。この場合、ボリューム再配置の必要はなく、削除対象のボリュームの削除処理のみが実行されることになる。
【０１３３】
［ステップＳ１１４］管理部３２２は、削除対象のボリュームが設定された同一のストレージ装置内の各ＲＡＩＤグループにおける空き領域を、データベースサーバ３１０に問い合わせる。データベースサーバ３１０の入出力部３１２は、ストレージ領域管理テーブル３１１ｅを参照して、該当ストレージ装置内の各ＲＡＩＤグループにおける空き領域を管理サーバ３２０に返信する。
【０１３４】
管理部３２２は、データベースサーバ３１０から返信された情報に基づき、該当ストレージ装置内のＲＡＩＤグループの中に、退避先となる空き領域があるかを判定する。退避先の空き領域とは、再配置対象のボリュームの容量以上の連続した空き領域である。管理部３２２は、空き領域がある場合、ステップＳ１１５の処理を実行し、空き領域がない場合、ステップＳ１１６の処理を実行する。
【０１３５】
［ステップＳ１１５］管理部３２２は、削除対象のボリュームが設定された同一のストレージ装置内のＲＡＩＤグループを、再配置対象のボリュームの退避先に決定する。このとき、管理部３２２は、退避先のＲＡＩＤグループと、そのＲＡＩＤグループ上の退避先領域とを決定する。退避先領域は、再配置対象のボリュームと同じ大きさの領域である。再配置対象のボリュームが複数存在する場合、それらの合計の大きさの領域が退避先領域となる。
【０１３６】
管理部３２２は、退避先のＲＡＩＤグループ上の退避先領域を予約するようにデータベースサーバ３１０に依頼する。データベースサーバ３１０の入出力部３１２は、この依頼に応じてストレージ領域管理テーブル３１１ｅにアクセスし、退避先領域のステータスを「Ｒｅｓｅｒｖｅｄ」に設定する。これにより、ボリュームの再配置が完了するまで、退避先領域が他の用途で誤って使用されなくなり、再配置を確実に実行できるようになる。この後、処理は図２０のステップＳ１２１に進められる。
【０１３７】
［ステップＳ１１６］管理部３２２は、他のストレージ装置内の各ＲＡＩＤグループにおける空き領域を、データベースサーバ３１０に問い合わせる。他のストレージ装置とは、削除対象のボリュームが設定されたストレージ装置以外のストレージ装置である。データベースサーバ３１０の入出力部３１２は、ストレージ領域管理テーブル３１１ｅを参照して、該当ストレージ装置内の各ＲＡＩＤグループにおける空き領域を管理サーバ３２０に返信する。
【０１３８】
管理部３２２は、データベースサーバ３１０から返信された情報に基づき、他のストレージ装置内のＲＡＩＤグループの中に、退避先となる空き領域があるかを判定する。上記と同様に、退避先の空き領域とは、再配置対象のボリュームの容量以上の連続した空き領域である。管理部３２２は、空き領域がある場合、ステップＳ１１７の処理を実行し、空き領域がない場合、図２２のステップＳ１４１の処理を実行する。後者の場合、ボリュームの退避が不可能なので、ボリューム再配置は実行されず、削除対象のボリュームの削除処理のみが実行されることになる。
【０１３９】
［ステップＳ１１７］管理部３２２は、他のストレージ装置内のＲＡＩＤグループを、再配置対象のボリュームの退避先に決定する。このとき、管理部３２２は、退避先のストレージ装置およびＲＡＩＤグループと、そのＲＡＩＤグループ上の退避先領域とを決定する。
【０１４０】
ステップＳ１１５と同様に、管理部３２２は、退避先のＲＡＩＤグループ上の退避先領域を予約するようにデータベースサーバ３１０に依頼する。データベースサーバ３１０の入出力部３１２は、この依頼に応じてストレージ領域管理テーブル３１１ｅにアクセスし、退避先領域のステータスを「Ｒｅｓｅｒｖｅｄ」に設定する。これにより、ボリュームの再配置が完了するまで、退避先領域が他の用途で誤って使用されなくなり、再配置を確実に実行できるようになる。この後、処理は図２０のステップＳ１２１に進められる。
【０１４１】
以上の図１９の処理では、ステップＳ１１４またはステップＳ１１６でボリュームの退避先となる空き領域があると判定されると、ボリュームの再配置が可能と判定される。この場合、管理部３２２は次に、図２０に示す手順により、ステップＳ１１２で登録した収集データに対応するボリューム操作（ボリューム削除および再配置）を実行するための制御情報を生成する。
【０１４２】
以下、図２０を用いて説明を続ける。
［ステップＳ１２１］管理部３２２は、収集データに基づき、操作対象（削除対象および再配置対象）のボリュームが設定されたストレージ装置を示すストレージ装置名を、制御情報に指定する。
【０１４３】
［ステップＳ１２２］管理部３２２は、収集データに基づき、操作対象のボリュームが設定されたＲＡＩＤグループを示すＲＡＩＤグループ名を、制御情報に指定する。
［ステップＳ１２３］管理部３２２は、収集データに基づき、削除対象のボリュームを示すボリューム名を制御情報に指定する。
【０１４４】
［ステップＳ１２４］管理部３２２は、再配置対象のボリュームを示すボリューム名を制御情報に指定する。再配置対象のボリュームは、図１９のステップＳ１１３で削除対象のボリュームより下位アドレス側に設定されていると判定されたボリュームである。
【０１４５】
［ステップＳ１２５］管理部３２２は、再配置対象のボリュームの退避先となるＲＡＩＤグループを示すＲＡＩＤグループ名を、制御情報に指定する。退避先のＲＡＩＤグループは、図１９のステップＳ１１５またはステップＳ１１７で決定されたＲＡＩＤグループである。
【０１４６】
［ステップＳ１２６］管理部３２２は、生成された制御情報を制御部３２３に受け渡す。この後、図２１のステップＳ１３１の処理が実行される。
以下、図２１を用いて説明を続ける。まず、図２１のステップＳ１３１〜Ｓ１３８では、制御情報に基づき、ボリュームの削除および再配置を実行するための命令情報が生成される。
【０１４７】
［ステップＳ１３１］制御部３２３は、制御情報に基づき、削除対象のボリュームを削除するための削除命令を生成する。
［ステップＳ１３２］制御部３２３は、制御情報に基づき、再配置対象のボリュームを退避先領域へコピーするためのボリュームコピー命令を生成する。以下、この命令によって退避先領域に生成されるボリュームを「退避先ボリューム」と記載する。
【０１４８】
［ステップＳ１３３］制御部３２３は、制御情報に基づき、元のＲＡＩＤグループ上の再配置対象のボリュームにアクセスするためのパスを退避先ボリュームへのパスに切り替えるためのパス切り替え命令と、切り替え前のボリュームへのパスを閉塞するためのパス閉塞命令とを生成する。なお、退避先ボリュームが設定されたストレージ装置が、コピー元のボリュームが設定されたストレージ装置と異なる場合がある。この場合、パス切り替え命令には、ボリュームへのアクセス元の仮想マシンが動作するサーバ装置から、退避先ボリュームが設定されたストレージ装置に対してアクセスパスを切り替えるための命令も含まれる。
【０１４９】
［ステップＳ１３４］制御部３２３は、制御情報に基づき、コピー元のボリュームを削除するための削除命令を生成する。
［ステップＳ１３５］制御部３２３は、制御情報に基づき、退避先ボリュームを元のＲＡＩＤグループにおける空き領域の上位アドレス側に詰めてコピーする（書き戻す）ためのボリュームコピー命令を生成する。以下、この命令によって元のＲＡＩＤグループ上のコピー先領域に生成されるボリュームを「再配置先ボリューム」と記載する。
【０１５０】
［ステップＳ１３６］制御部３２３は、制御情報に基づき、退避先ボリュームにアクセスするためのパスを再配置先ボリュームへのパスに切り替えるためのパス切り替え命令と、退避先ボリュームへのパスを閉塞するためのパス閉塞命令とを生成する。なお、再配置先ボリュームが設定されたストレージ装置が、退避先ボリュームが設定されたストレージ装置と異なる場合がある。この場合、パス切り替え命令には、ボリュームへのアクセス元の仮想マシンが動作するサーバ装置から、再配置先ボリュームが設定されたストレージ装置に対してアクセスパスを切り替えるための命令も含まれる。
【０１５１】
［ステップＳ１３７］制御部３２３は、制御情報に基づき、退避先ボリュームを削除するための削除命令を生成する。
［ステップＳ１３８］制御部３２３は、ステップＳ１３１〜Ｓ１３７で生成された命令の実行シーケンスを生成し、各命令が実行シーケンスにしたがって実行されるように記述された命令情報を生成する。
【０１５２】
［ステップＳ１３９］制御部３２３は、削除対象および再配置対象のボリュームが設定されたストレージ装置のコントローラに対して、生成された命令情報を発行（送信）する。この後、処理は図２３のステップＳ１５１に進められる。
【０１５３】
命令情報を受信したコントローラのＲＡＩＤ制御部（ＲＡＩＤ制御部２１１ａ，２２１ａのいずれか）は、受信した命令情報にしたがってボリュームの削除および再配置の処理を実行する。すなわち、ＲＡＩＤ制御部は、命令情報にしたがい、削除対象のボリュームの削除、再配置対象のボリュームの退避先領域へのコピー、パス切り替えおよび閉塞、コピー元のボリュームの削除、退避先ボリュームの元のＲＡＩＤグループへのコピー（書き戻し）、パス切り替えおよび閉塞、退避先ボリュームの削除を実行する。これらの実行が完了すると、ＲＡＩＤ制御部は、完了通知を管理サーバ３２０に送信する。
【０１５４】
次に、図２２を用いて説明を続ける。
図２２に示す処理は、上記の図１９のステップＳ１１３においてボリュームの再配置の必要がないと判定された場合、または、ステップＳ１１６でボリュームの退避先となる空き領域がなく、再配置が不可能と判定された場合に実行される。
【０１５５】
［ステップＳ１４１］管理部３２２は、収集データに基づき、操作対象（削除対象）のボリュームが設定されたストレージ装置を示すストレージ装置名を、制御情報に指定する。
【０１５６】
［ステップＳ１４２］管理部３２２は、収集データに基づき、操作対象のボリュームが設定されたＲＡＩＤグループを示すＲＡＩＤグループ名を、制御情報に指定する。
［ステップＳ１４３］管理部３２２は、収集データに基づき、削除対象のボリュームを示すボリューム名を制御情報に指定する。
【０１５７】
［ステップＳ１４４］管理部３２２は、生成された制御情報を制御部３２３に受け渡す。
［ステップＳ１４５］制御部３２３は、制御情報に基づき、削除対象のボリュームを削除するための削除命令を生成する。
【０１５８】
［ステップＳ１４６］制御部３２３は、生成された命令の実行シーケンスを生成し、この実行シーケンスにしたがって実行されるように記述された命令情報を生成する。
［ステップＳ１４７］制御部３２３は、削除対象のボリュームが設定されたストレージ装置のコントローラに対して、生成された命令情報を発行（送信）する。この後、処理は図２３のステップＳ１５１に進められる。
【０１５９】
命令情報を受信したコントローラのＲＡＩＤ制御部（ＲＡＩＤ制御部２１１ａ，２２１ａのいずれか）は、受信した命令情報にしたがってボリュームの削除処理を実行する。この処理の実行が完了すると、ＲＡＩＤ制御部は、完了通知を管理サーバ３２０に送信する。
【０１６０】
以下、図２３を用いて説明を続ける。
［ステップＳ１５１］制御部３２３は、図２１のステップＳ１３９または図２２のステップＳ１４７で発行した命令情報に対応する完了通知を受信するまで、待機状態となる。そして、制御部３２３は、完了通知を受信すると、ステップＳ１５２の処理を実行する。
【０１６１】
［ステップＳ１５２］制御部３２３は、図２０のステップＳ１２６または図２２のステップＳ１４４で受け渡された制御情報に基づくボリューム操作が完了したことを管理部３２２に通知する。管理部３２２は、データベースサーバ３１０に管理テーブルの更新を依頼して、ボリューム操作に応じたリソース使用状況の変化を管理テーブルに反映させる。
【０１６２】
データベースサーバ３１０の入出力部３１２は、管理部３２２からの依頼に応じて、仮想ディスクテーブル３１１ｃ、ボリュームテーブル３１１ｄおよびストレージ領域管理テーブル３１１ｅから、削除対象のボリュームが登録されたレコードを削除する。また、ボリュームの再配置が実行された場合、入出力部３１２は、管理部３２２からの依頼に応じて、図１９のステップＳ１１５またはステップＳ１１７で予約された退避先領域について、予約が解除されるようにストレージ領域管理テーブル３１１ｅを更新する。これにより、ストレージ領域管理テーブル３１１ｅにおける退避先領域のステータスは、「Ｒｅｓｅｒｖｅｄ」から「Ｆｒｅｅ」に変更される。
【０１６３】
［ステップＳ１５３］管理部３２２は、図１９のステップＳ１１１で読み込んだ予約データを予約データ管理テーブル３２１ｅから削除する。また、管理部３２２は、ステップＳ１１２で収集データ管理テーブル３２１ｂに登録した収集データを削除する。
【０１６４】
以上の図１９〜図２３の処理によれば、削除対象のボリュームが設定されたＲＡＩＤグループにおいて、そのボリュームより下位アドレス側に他のボリュームが存在する場合、下位アドレス側のボリュームの再配置が実行される。これにより、ＲＡＩＤグループの論理記憶領域において、削除されたボリュームより大きな連続する空き領域が形成される。そのため、そのＲＡＩＤグループに対して、削除されたボリュームより大きなボリュームを新たに設定できるようになり、その結果、そのＲＡＩＤグループに対応する記憶領域の利用効率を向上させることができる。
【０１６５】
また、ボリューム削除および再配置のための前処理（例えば、再配置の要否判定や退避先の決定）や、ボリューム削除および再配置のための一連の命令の生成処理は、ボリューム操作が行われる個々のストレージ装置でなく、管理サーバ３２０によって、データベースサーバ３１０に登録された管理テーブルに基づいて一元的に実行される。そして、生成された命令がストレージ装置に発行され、ストレージ装置は発行された命令にしたがってボリューム操作を実行する。このような処理により、ボリュームの削除や退避、書き戻し、パス変更を含む一連の処理を、ストレージ装置に正確に実行させることができる。特に、上記のボリューム操作を、再配置対象のボリュームに対する仮想マシンからのアクセスを可能にした状態のまま正確に実行できる。例えば、ボリューム操作の間、ボリュームの退避先領域の容量不足、意図しない通信断、データ破壊などの事態の発生を防止できる。
【０１６６】
また、上記の前処理や命令生成処理が不要になる分、ストレージ装置２１０，２２０のコントローラ２１１，２２１の処理負荷を軽減できる。そのため、ボリューム操作のための処理が、各仮想マシンから各仮想ディスクに対するアクセス速度に与える影響を低減できる。
【０１６７】
なお、上記の各実施の形態に示した装置（例えば、管理装置３、サーバ装置１１０，１２０、コントローラ２１１，２２１、データベースサーバ３１０、管理サーバ３２０）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク（Blu-ray Disc：ＢＤ、登録商標）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１６８】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６９】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１７０】
１，２  ストレージ装置
１ａ，１ｂ，２ａ  記憶領域
１ａ１，２ａ１  空き領域
３  管理装置
３ａ  通信部
３ｂ  制御部
３ｃ  管理情報
ＶＯＬ１〜ＶＯＬ３，ＶＯＬ３ａ，ＶｏＬ３ｂ，ＶＯＬ４〜ＶＯＬ６  ボリューム
【図１】
2020004186.tif 000003
【図２】
2020004186.tif 000004
【図３】
2020004186.tif 000005
【図４】
2020004186.tif 000006
【図５】
2020004186.tif 000007
【図６】
2020004186.tif 000008
【図７】
2020004186.tif 000009
【図８】
2020004186.tif 000010
【図９】
2020004186.tif 000011
【図１０】
2020004186.tif 000012
【図１１】
2020004186.tif 000013
【図１２】
2020004186.tif 000014
【図１３】
2020004186.tif 000015
【図１４】
2020004186.tif 000016
【図１５】
2020004186.tif 000017
【図１６】
2020004186.tif 000018
【図１７】
2020004186.tif 000019
【図１８】
2020004186.tif 000020
【図１９】
2020004186.tif 000021
【図２０】
2020004186.tif 000022
【図２１】
2020004186.tif 000023
【図２２】
2020004186.tif 000024
【図２３】
2020004186.tif 000025