(57)【要約】      （修正有）【課題】複数のホスト計算機がストレージシステム内の記憶領域を使用する場合、ホスト計算機の業務を継続し、ストレージシステムの処理性能の低減を防止する。【解決手段】ストレージシステムは、第１の計算機に提供される第１の論理記憶領域を構成する第１の物理記憶デバイスの容量がある閾値以下の場合、第１の計算機からのアクセス要求に応じてデータの格納領域を割当て、第１の論理記憶領域に対応する第１の物理記憶デバイスの容量がある閾値を越える場合、第１の論理記憶領域を、第１、および第２の計算機に提供される第２の論理記憶領域に対応する第１の物理記憶デバイスとは異なる、他の物理記憶デバイスに対応付け、当該他の物理記憶デバイスからデータの格納領域を割り当てる。【選択図】  図１
2007280319.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機に接続されるストレージシステムであって、
前記複数の計算機とネットワークを介して接続されるインタフェース部と、
前記インタフェース部に接続される制御部と、
前記複数の計算機が使用するデータを格納する複数の物理記憶デバイスとを有し、
前記制御部は、前記複数の物理記憶デバイスのうちの少なくとも一以上の第１の物理記憶デバイスを第１および第２の論理記憶領域と対応付け、前記複数の計算機のうちの第１の計算機に対して前記第１の論理記憶領域を提供し、前記複数の計算機のうちの第２の計算機に対して前記第２の論理記憶領域を提供し、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量がある閾値以下の場合、前記第１の計算機からの前記第１の論理記憶領域に対するアクセス要求に応じて、前記第１の計算機が使用するデータの格納領域を前記第１の物理記憶デバイスから割り当て、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記第１の論理記憶領域を、前記第２の論理記憶領域に対応する前記第１の物理記憶デバイスと異なる他の物理記憶デバイスに対応付け、前記第１の計算機が使用するデータの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とするストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記制御部は、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスに格納され、前記第１の計算機が使用するデータを、前記複数の物理記憶デバイスのうちの所定の容量を有する前記他の物理記憶デバイスに移行し、前記第１の計算機が使用するデータの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とするストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記他の物理記憶デバイスの前記所定の容量は、前記第１の計算機が認識する前記第１の論理記憶領域の容量と一致することを特徴とするストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記制御部は、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記第１の物理記憶デバイスのうちの前記第１および第２の論理記憶領域に対応する格納領域と異なる格納領域を、前記第１の物理記憶デバイスと異なる所定の容量を有する前記他の物理記憶デバイスから割り当てられるように変更し、該変更した格納領域に対して前記第１の論理記憶領域に対応するデータを移行し、前記第１の計算機が使用するデータの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とするストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、
前記制御部は、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記第１の物理記憶デバイスのうちの前記第１の論理記憶領域に対応する格納領域を所定の容量を有する第１のグループとして特定し、前記第２の論理記憶領域に対応する格納領域、および前記第１の物理記憶デバイスのうちの前記第１のグループに含まれない格納領域を第２のグループとして特定し、前記第１の計算機が使用するデータの格納領域を前記第１の物理記憶デバイスのうちの前記第１のグループから割り当て、前記アクセス要求に応答することを特徴とするストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記第１の物理記憶デバイスは記憶領域プールであって、前記制御部は、当該ストレージシステムに接続される前記複数の計算機に対してデータの格納領域を提供することを特徴とするストレージシステム。
【請求項７】
請求項１に記載のストレージシステムであって、
前記制御部は、前記第１の計算機が使用する前記第１の論理記憶領域、および前記第２の計算機が使用する前記第２の論理記憶領域に対し、それぞれ、該第１および前記第２の論理記憶領域に対応する前記第１の物理記憶デバイスの容量の前記ある閾値を設定することを特徴とするストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、
前記制御部は、前記第１の計算機からの前記アクセス要求に含まれる書き込みデータの容量の値、および前記第１の論理記憶領域の容量の値を用いて、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を越えるか否かを判定することを特徴とするストレージシステム。
【請求項９】
第１の計算機と、第２の計算機と、管理計算機と、前記第１の計算機、前記第２の計算機、および前記管理計算機に接続されるストレージシステムとを有する計算機システムであって、
前記ストレージシステムは、
複数の物理記憶デバイスと、
前記複数の物理記憶デバイスのうちの少なくとも一以上の第１の物理記憶デバイスを第１および第２の論理記憶領域と対応付け、前記複数の計算機のうちの第１の計算機に対して前記第１の論理記憶領域を提供し、前記複数の計算機のうちの第２の計算機に対して前記第２の論理記憶領域を提供する制御部とを有し、
前記管理計算機は、
前記ストレージシステム内の前記第１および第２の論理記憶領域に対応する、該第１および第２の論理記憶領域に格納されるデータの移行方法を特定する移行情報を有し、
前記制御部は、前記第１の計算機が使用する前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量がある閾値以下の場合、前記第１の計算機からの前記第１の論理記憶領域に対するアクセス要求に応じて、前記第１の計算機が使用するデータの格納領域を前記第１の物理記憶デバイスから割り当て、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記管理計算機に対して前記第１の論理記憶領域の移行方法を問い合わせ、
前記管理計算機は、前記移行情報に基づいて、前記第１の論理記憶領域を、前記第２の論理記憶領域に対応する前記第１の物理記憶デバイスと異なる他の物理記憶デバイスに対応付ける移行指示を、前記ストレージシステムに対して送信することを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、
前記管理計算機は、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスに格納され、前記第１の計算機が使用するデータを、前記複数の物理記憶デバイスのうちの所定の容量を有する前記他の物理記憶デバイスに移行する移行指示を、前記ストレージシステムに対して送信し、
前記制御部は、前記移行指示に基づいて前記第１の計算機が使用するデータを前記他の物理記憶デバイスに移行し、前記データの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とする計算機システム。
【請求項１１】
請求項１０に記載の計算機システムであって、
前記他の物理記憶デバイスの前記所定の容量は、前記第１の計算機が認識する前記第１の論理記憶領域の容量と一致することを特徴とする計算機システム。
【請求項１２】
請求項９に記載の計算機システムであって、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、
前記管理計算機は、前記第１の物理記憶デバイスのうち前記第１および第２の計算機に使用されていない格納領域を、前記第１の物理記憶デバイスと異なる所定の容量を有する前記他の物理記憶デバイスから割り当てられるように変更し、該変更した格納領域に対して前記第１の論理記憶領域に対応するデータを移行する移行指示を送信し、
前記制御部は、前記移行指示に基づいて前記第１の計算機が使用するデータを前記他の物理記憶デバイスに移行し、前記データの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とする計算機システム。
【請求項１３】
請求項９に記載の計算機システムであって、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、
前記管理計算機は、前記第１の物理記憶デバイスのうちの前記第１の論理記憶領域に対応する格納領域を所定の容量を有する第１のグループとして特定し、前記第２の論理記憶領域に対応する格納領域、および前記第１の物理記憶デバイスのうちの前記第１のグループに含まれない格納領域を第２のグループとして特定する移行指示を送信し、
前記制御部は、前記移行指示に基づいて前記第１の計算機が使用するデータを前記第１のグループとして特定し、前記第１の計算機が使用するデータの格納領域を前記第１の物理記憶デバイスのうちの前記第１のグループから割り当て、前記アクセス要求に応答することを特徴とする計算機システム。
【請求項１４】
請求項９に記載の計算機システムであって、
前記第１の物理記憶デバイスは記憶領域プールであって、前記制御部は、前記複数の第１の計算機に対してデータの格納領域を提供することを特徴とする計算機システム。
【請求項１５】
請求項９に記載の計算機システムであって、
前記制御部は、前記第１の計算機が使用する前記第１の論理記憶領域、および前記第２の計算機が使用する前記第２の論理記憶領域に対し、それぞれ、該第１および前記第２の論理記憶領域に対応する前記第１の物理記憶デバイスの容量の前記ある閾値を設定することを特徴とする計算機システム。
【請求項１６】
請求項９に記載の計算機システムであって、
前記制御部は、前記第１の計算機からの前記アクセス要求に含まれる書き込みデータの容量の値、および前記第１の論理記憶領域の容量の値を用いて、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を越えるか否かを判定することを特徴とする計算機システム。
【請求項１７】
請求項９に記載の計算機システムであって、
前記管理計算機は、前記第１および第２の計算機による前記ストレージシステム内の前記複数の物理記憶デバイスの使用状況を監視する監視部を有し、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記管理計算機は、前記ストレージシステム内の前記複数の物理記憶デバイスのうち、前記監視部が選定した前記第１の物理記憶デバイスと異なる他の物理記憶デバイスと前記第１の論理記憶領域とを対応付ける移行指示を、前記ストレージシステムに対して送信することを特徴とする計算機システム。
【請求項１８】
請求項１７に記載の計算機システムであって、
前記管理計算機は、前記ストレージシステム内に前記第１および第２の計算機が認識する前記第１および第２の論理記憶領域を作成する場合、前記第１および第２の論理記憶領域に対応する、該第１および第２の論理記憶領域に格納されるデータの移行先となる前記複数の物理記憶デバイスの識別情報を有する優先移行情報を保持し、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記管理計算機は、前記監視部が前記第１および第２の計算機に使用されていないと特定した前記物理記憶デバイスと、前記優先移行情報とに基づいて、前記第１の論理記憶領域を前記第１の物理記憶デバイスと異なる他の物理記憶デバイスに対応付ける移行指示を、前記ストレージシステムに対して送信することを特徴とする計算機システム。
【請求項１９】
第１および第２計算機に接続されるストレージシステムにおけるデータ制御方法であって、
前記第１および第２の計算機に対して、前記ストレージシステム内の複数の物理記憶デバイスのうちの少なくとも一以上の物理記憶デバイスから、それぞれ第１および第２の論理記憶領域を提供し、
前記第１の計算機から、前記第１の論理記憶領域にアクセス要求を受信し、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量がある閾値以下の場合、前記第１の計算機からの前記第１の論理記憶領域に対するアクセス要求に応じて、前記第１の計算機が使用するデータの格納領域を前記第１の物理記憶デバイスから割り当て、前記アクセス要求に応答し、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記第１の論理記憶領域を、前記第２の論理記憶領域に対応する前記第１の物理記憶デバイスと異なる他の物理記憶デバイスに対応付け、前記第１の計算機が使用するデータの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とするデータ制御方法。
【請求項２０】
請求項１９に記載のデータ制御方法であって、
前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスの容量が前記ある閾値を超える場合、前記第１の論理記憶領域に対応する前記第１の物理記憶デバイスに格納され、前記第１の計算機が使用するデータを、前記複数の物理記憶デバイスのうちの所定の容量を有する前記他の物理記憶デバイスに移行し、前記第１の計算機が使用するデータの格納領域を前記他の物理記憶デバイスから割り当て、前記アクセス要求に応答することを特徴とするデータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに用いられるストレージシステムに関する。特に本発明は、ホスト計算機からストレージシステムへのデータ書き込みの際にボリューム容量の拡張を行う方法に関する。
【背景技術】
【０００２】
一般にコンピュータシステムは、それぞれの業務を行うホスト計算機と、ホスト計算機の指示によりデータを読み書きするストレージシステムにより構成される。ストレージシステムは、データの格納および読み出しを行う複数のボリュームを提供する。
【０００３】
ホスト計算機のデータ書き込み量が増加すると、当該ホスト計算機に割り当てられていたボリュームの容量を増やす必要がある。これをボリューム容量の拡張と呼ぶ。
【０００４】
ボリューム容量の拡張方法の一例として、ストレージ管理者がホスト計算機の運用を停止して容量拡張作業を実施し、ホスト計算機の運用を再開する方法がある。しかし本方法では、ホスト計算機の運用を一旦停止するため、業務継続に課題がある。
【０００５】
特許文献１は、ストレージシステムにおけるボリューム容量自動拡張技術を開示する。ボリューム容量自動拡張技術とは、ストレージシステムに記憶領域プールを準備し、当該記憶領域プールから作成するボリュームは、ホスト計算機に対し仮想的な容量を見せながら、ホスト計算機のデータ書き込みに応じて必要な記憶領域を割り当てる技術である。
【０００６】
【特許文献１】米国特許6,823,442号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ボリューム容量自動拡張技術は、一つの記憶領域プールから多数のボリュームをホスト計算機に提供するほど、ボリュームの容量利用率は向上する。しかし、特定のボリュームに記憶領域が集中して割り当てされる状況では、他のボリュームへ利用可能な記憶領域プールの記憶領域は減少する。
【０００８】
特許文献1は、前記状況において、各ボリュームに対して、「これ以上記憶領域を割り当てない」閾値を開示する。具体的には、ホスト計算機からボリュームへのデータ書き込みに対して、記憶領域プールから必要な記憶領域を割り当てが必要なとき、ストレージシステムは、当該閾値を参照し、閾値を超過する場合は、ホスト計算機の書き込み要求をエラーで応答する。エラーで応答する際、記憶領域プールからの記憶領域の割り当ては行わない。
【０００９】
このように、当該閾値は、記憶領域プールの記憶領域の減少を抑制する効果を持つ。しかし、閾値超過時はホスト計算機の運用を一旦停止するため、業務継続に課題がある。
【課題を解決するための手段】
【００１０】
第１および第２の計算機に接続されるストレージシステムは、ストレージシステム内の第１の物理記憶デバイスから構成される第１および第２の論理記憶領域を、それぞれ、第１および第２の計算機に対応付けて提供する。ストレージシステムは、第１の論理記憶領域に対応する第１の物理記憶デバイスの容量がある閾値以下の場合、第１の計算機からのアクセス要求に応じてデータの格納領域を割当て、第１の論理記憶領域に対応する第１の物理記憶デバイスの容量がある閾値を越える場合、第１の論理記憶領域を、第１および第２の論理記憶領域に対応する第１の物理記憶デバイスとは異なる、他の物理記憶デバイスに対応付け、当該他の物理記憶デバイスからデータの格納領域を割り当てる。
【００１１】
例えば、第１の物理記憶デバイスは、記憶領域プール（以下、「仮想ボリュームプール」と呼ぶ）であり、ストレージシステムは、第１および第２の計算機にそれぞれ提供する、論理的なボリューム（以下、「仮想ボリューム」と呼ぶ）に対し、仮想ボリュームプールから記憶領域を割り当てる。
【発明の効果】
【００１２】
本発明によると、複数のホスト計算機がストレージシステム内の記憶領域を使用する場合、ホスト計算機の業務を継続し、ストレージシステムの処理性能の低減を防止することができる。
【発明を実施するための最良の形態】
【００１３】
以下に、図面を参照しながら本発明の実施形態を説明する。なお、これにより本発明が限定されるものではない。
【実施例１】
【００１４】
実施例1では、ストレージ装置内に仮想ボリューム移行プログラムを設け、特定の仮想ボリュームに記憶領域が集中して割り当てされる状況では、ストレージ装置が、閾値超過時に未使用のボリュームへデータを移行する方法について説明する。
【００１５】
まず、実施例1における計算機システム構成について説明する。図1から図4は計算機システムの構成および計算機システムに接続される装置の構成を、図5から図6は各装置に具備される管理情報を示す。
【００１６】
図1に、実施例1における計算機システムの構成を示す。1台以上のホスト計算機10000と、1台以上のストレージ装置20000が、ストレージネットワーク50000で互いに接続される。
【００１７】
ホスト計算機10000は、プロセッサ11000と、メモリ12000と、ストレージネットワーク50000に接続するための一つ以上のI/Oポート13000と、管理ネットワーク60000と接続するための管理ポート14000と、処理結果を出力するためのディスプレイ装置等の出力部15000と、キーボードやマウス等の入力部16000とを有し、これらは内部バス17000で互いに接続される。メモリ12000には、OS(図示せず)と、ストレージ装置へのデータアクセスを伴う処理を行うアプリケーション(図示せず)が存在する。これらのプログラムは、ハードディスク等の記憶媒体(図示せず)から読み込まれ、プロセッサ11000がこれらのプログラムを実行するものとする。
【００１８】
ストレージ装置20000は、仮想ボリューム制御プログラム(以降仮想VOL制御PG)22111と、仮想ボリューム移行プログラム(以降仮想VOL移行PG)22120と、実ボリューム(以降実VOL)25000と、仮想ボリューム(以降仮想VOL)26000と、プールボリューム(以降プールVOL)27000と、仮想ボリュームプール(以降仮想VOLプール)27500とを備える。詳細な構成は、後述する。
【００１９】
管理計算機40000は、仮想ボリューム構成管理プログラム(以降仮想VOL構成管理PG)42200を備える。詳細は後述する。
【００２０】
管理端末70000の詳細は後述する。
【００２１】
以降の説明の都合上、実施例1では、ホスト計算機H1がストレージネットワークを介してストレージ装置ST1に接続されるものとする。また、ストレージネットワーク50000はFC(Fibre Channel)プロトコルを用いたネットワークとする。管理ネットワーク60000は、TCP/IPプロトコルを用いたネットワークとする。
【００２２】
図2に、ストレージ装置20000の詳細な構成例を示す。ストレージ装置20000は、ストレージ装置内の制御を行うコントローラ21000と、メモリ22000と、ストレージネットワーク50000に接続するための一つ以上のI/Oポート23000と、ホスト計算機に記憶領域として提供する一つ以上の実VOL25000と、ホスト計算機に記憶領域として提供する一つ以上の仮想VOL26000と、仮想VOLを提供するためにデータを格納する記憶領域である一つ以上のプールVOL27000と、一つ以上のプールVOLから構成され、ある仮想VOLへ記憶領域を提供するプールVOLの範囲を定める、仮想VOLプール27500とを有し、これらはコントローラ21000を介して互いに接続される。
【００２３】
ここで、図26を用いて、実VOL25000、仮想VOL26000、プールVOL27000の違いを説明する。ホスト計算機10000は、ストレージ装置のI/Oポートに割り当てられたSCSIポートID（以下、「PID」と略す）と、論理的な記憶領域である論理ユニット（以下、「LU」（Logical Unit）と略す）に割り当てられたSCSIのLU番号（以下、「LUN」と略す）を用いて、LU28000に対してアクセスし、データの読み書きを行う。LU28000は、ホスト計算機10000ごとに設定してもよい。また、LU28000は、ホスト計算機10000が使用するアプリケーションごとに設定してもよい。
【００２４】
ストレージ装置20000は、このLU28000に、実VOL25000、または、仮想VOL26000を対応付けることにより、ホスト計算機10000から読み書きされるデータを、実VOL25000または仮想VOL26000に格納する。
【００２５】
LU28000に実VOL25000が対応付けられているとき、ストレージ装置20000は、実VOL25000が対応付けられている、ストレージ装置内に搭載された複数台のハードディスクによるRAID、または、1台のハードディスクから構成される物理的な記憶領域へ、データを格納する。本実施例では、実VOL25000は、ストレージ装置内に搭載された、パリティグループ29000と呼ばれる複数台のハードディスク(以下、「HDD」と略す)によるRAID構成であるものとする。
【００２６】
LU28000に仮想VOL26000が対応付けられているとき、ストレージ装置20000は、特許文献1で開示された技術を用いて、ホスト計算機10000のデータ書き込みに応じて必要な記憶領域を割り当てる。まず、ストレージ装置20000は、仮想VOL26000と、当該仮想VOLに対して記憶領域を提供する仮想VOLプール27500に属する一又は複数のプールVOL27000の記憶領域とを関連付ける。さらに、ストレージ装置20000は、プールVOL27000と、ストレージ装置内に搭載された複数台のハードディスクによるRAID、または、1台のハードディスクから構成される、物理的な記憶領域とを関連付け、データを格納する。本実施例では、プールVOL27000は、実VOL25000と同様に、ストレージ装置内に搭載された、パリティグループ29000と呼ばれる複数台のハードディスク(HDD)によるRAID構成であるものとする。
【００２７】
なお、後述するように、ストレージ装置20000が具備する実VOLテーブル22200は、LU28000と実VOL25000の対応関係を管理するテーブルである。また、仮想VOLテーブル22300は、LU28000と仮想VOL26000の対応関係を管理するテーブルである。また、仮想VOLアドレステーブル22500は、仮想VOL26000とプールVOL27000の対応関係を管理するテーブルである。また、仮想VOLプールテーブル22600は、プールVOL27000と仮想VOLプール27500の対応関係を管理するテーブルである。また、パリティグループテーブル22700は、実VOL25000およびプールVOL27000と、パリティグループ29000との対応関係を管理するテーブルである。
【００２８】
図2の説明に戻って、メモリ22000には、コントローラが実行する、ストレージ装置内の制御を行うマイクロプログラム(以降マイクロPG)22100が存在する。マイクロPG22100の一部として、後述する仮想VOL制御PG22111と、仮想VOL移行PG22120が存在する。仮想VOL制御PG22111の動作概要は後述する。また、メモリ22000には、ストレージ装置内の実VOL25000を管理する実VOLテーブル22200と、仮想VOL26000を管理する仮想VOLテーブル22300と、仮想VOL制御PG22111が参照し、仮想VOLへ格納されたデータのプールVOLでの配置先を示す仮想VOLアドレステーブル22500と、仮想VOL制御PG22111が参照し、仮想VOLプールを構成するプールVOLの構成を示す仮想VOLプールテーブル22600と、ストレージ装置内の実VOL25000やプールVOL27000がどのパリティグループ29000から構成されているかを示すパリティグループテーブル22700が格納される。これらのテーブルおよびプログラムは、ストレージ装置起動時に、ハードディスク等の記憶媒体(図示せず)から読み込まれる。
【００２９】
なお、本実施例においては、I/Oポート23000の個数と、実VOL25000、仮想VOL26000、プールVOL27000、仮想VOLプール27500の個数や容量は問わない。
【００３０】
図3に、実施例1における、管理計算機の構成例を示す。
【００３１】
管理計算機40000は、プロセッサ41000と、メモリ42000と、管理ネットワーク60000に接続するための管理ポート44000と、処理結果を出力するためのディスプレイ装置等の出力部45000と、キーボードやマウス等の入力部46000とを有し、これらは内部バス47000で互いに接続される。メモリ42000には、ストレージ装置20000に対して構成情報の収集や構成設定を実行するための構成収集プログラム42100(フロー詳細は図示せず)と、仮想VOLの設定を実行するための仮想VOL構成管理PG42200(フロー詳細は図示せず)と、管理計算機40000の入力部46000や出力部45000、及び管理端末70000と通信し、仮想VOL構成管理PGの入出力を司る、入出力プログラム42700(フロー詳細は図示せず)と、管理計算機40000が管理対象であるホスト計算機10000やストレージ装置20000を特定するための装置テーブル43100が格納される。これらプログラムおよびテーブルは、プロセッサ41000がハードディスク等の記憶媒体(図示せず)からメモリ42000に読み込んで実行することにより実現される。また、図示していないが、メモリ42000には、OS(オペレーティングシステム)が記憶媒体から読み込まれ、プロセッサ41000がこれらのプログラムを実行している。
【００３２】
図4に、実施例1における、管理端末の構成例を示す。  管理端末70000は、プロセッサ71000と、メモリ72000と、管理ネットワーク60000に接続するための管理ポート74000と、処理結果を出力するためのディスプレイ装置等の出力部75000と、キーボードやマウス等の入力部76000とを有し、これらは内部バス77000で互いに接続される。メモリ72000には、管理計算機60000上のプログラムを遠隔地から実行するための入出力を制御する入出力プログラム42400を格納する。本プログラムは、プロセッサ71000がハードディスク等の記憶媒体(図示せず)からメモリ72000に読み込んで実行することにより実現される。また、図示していないが、メモリ72000には、OS(オペレーティングシステム)がハードディスク等の記憶媒体(図示せず)から読み込まれ、プロセッサ71000がこれらのプログラムを実行している。
【００３３】
図5に、実施例１における、ストレージ装置が具備する各テーブルの例を示す。
【００３４】
図5Aは、ストレージ装置内の実VOL25000を管理する実VOLテーブル22200の一例である。実VOLテーブル22200は、ストレージ装置内で実VOLの一意の識別子となる実VOL  IDを登録する実VOL ID 22205と、実VOLのホスト計算機への割り当て状態を示すホスト割当状態22210と、実VOLの容量を示す容量22215より構成される。ホスト割当状態22210の値は、ホスト計算機に割当済であることを示す「Allocated」と、ホスト計算機に未割当であることを示す「Unallocated」が存在する。「Allocated」状態の場合は、ホスト計算機からアクセスされるための、I/Oポート23000のIDであるPIDと、SCSI LU番号であるLUNも合わせて格納される。
【００３５】
図5Bは、ストレージ装置内の仮想VOL26000を管理する仮想VOLテーブル22300の一例である。仮想VOL管理テーブル22300は、ストレージ装置内で仮想VOLの一意の識別子となる仮想VOL IDを登録する仮想VOL ID 22305と、仮想VOLのホスト計算機への割り当て状態を示すホスト割当状態22310と、仮想VOLの容量を示す仮想容量22315と、後述する閾値を示す閾値22320と、当該仮想VOLに対して実際に割当て済みの記憶領域の容量を示す割当済容量22325より構成される。ホスト割当状態22210の値は、図5Aと同様であるので、説明を省略する。
【００３６】
図5Cは、仮想VOL制御PG22111が参照し、仮想VOLへ格納されたデータのプールVOLでの配置先を示す仮想VOLアドレステーブル22500の一例である。仮想VOLアドレステーブル22500は、仮想VOLのIDを登録するVOL ID22505と、当該仮想VOLがデータ格納に用いる仮想VOLプールの識別情報を示す、ストレージ装置内で仮想VOLプールの一意の識別子となるプールIDを登録するプール22510と、当該仮想VOLがホスト計算機に対して提供する記憶領域空間のうち、実際に記憶領域を割当て済みの論理ブロックアドレス(以下、Logical Block Address、LBAと呼ぶ)を登録する割当済LBA22515と、前記LBAに対応した割当て済み記憶領域(以下、チャンクと呼ぶ)を、ストレージ装置内で一意に識別する識別子を登録する割当済チャンク22520より構成される。なお、割当済LBA22515における記号[xGB]は、あるボリュームの先頭からxGB目のアドレスを示す記号と定義する。
【００３７】
ここで、図5Cの各レコードが持つ意味を、VOL ID22505の値がv102のレコードを例に挙げて説明する。当該レコードにより、仮想VOL v102は、先頭から2GB目のアドレスを起点とし、先頭から4GB目のアドレスを終点とする、合計2GBの記憶領域は、データのリードライトをするためのチャンクch04を割り当て済みであることを示す。
【００３８】
図5Dは、仮想VOL制御PG22111が参照し、仮想VOLプールを構成するプールVOLの構成を示す、仮想VOLプールテーブル22600の一例である。仮想VOLプールテーブル22600は、プールIDを登録する、プールID22605と、当該仮想VOLプールに属するチャンクのチャンクIDを登録する、チャンク22610と、前記チャンクに対応した記憶領域を提供するプールVOLを示す、ストレージ装置内でプールVOLの一意の識別子となるプールVOL IDを登録する、プールVOL22615と、前記プールVOLが仮想VOLプールに対して提供する記憶領域空間とチャンクとの対応関係を示す、LBA22620と、当該チャンクの仮想VOLに対する割当状態を示す、仮想VOL割当状態22625より構成される。なお、プールVOL22615は、当該プールVOLの容量情報も格納する。また、仮想VOL割当状態22625は、当該チャンクが仮想VOLに割当済であることを示す「Allocated」状態と、未割当であることを示す「Unallocated」状態を持つ。「Allocated」状態においては、どの仮想VOLに割当済であるかを示す、仮想VOL IDの値も格納する。なお、LBA22620における記号[xGB]の意味は図5Cと同じである。
【００３９】
ここで、図5Dの各レコードが持つ意味を、チャンク22610の値がch01のレコードを例に挙げて説明する。当該レコードにより、チャンクch01は、容量10GBのプールVOL v201の、先頭から0GB目のアドレスを起点とし、先頭から2GB目のアドレスを終点とする、合計2GBの記憶領域から構成され、仮想VOL v101に割り当て済みであることを示す。
【００４０】
図5Eは、ストレージ装置内の実VOL25000やプールVOL27000がどのパリティグループ29000から構成されているかを示す、パリティグループテーブル22700の一例である。パリティグループテーブル22700は、ストレージ装置20000におけるパリティグループ29000の一意の識別子となるパルティグループIDを登録するパリティグループID(PG IDと略記)22705と、RAID構成を行う複数台のハードディスク(HDDと略記)を登録する対応HDD22710と、当該パリティグループで構成されるボリュームを、「実VOL」に用いるか、「プールVOL」に用いるかを示す値を登録する用途22715と、当該パリティグループから構成されるボリュームのIDを登録するVOL ID22720より構成される。
【００４１】
ここで、図5Eの各レコードが持つ意味を、PG ID22705の値がPG01のレコードを例に挙げて説明する。当該レコードにより、PG01は、a0,a1,a2,a3の四つのHDDからRAID構成される実ボリュームを構成できるパリティグループであり、実VOL v001を定義済であることを示す。
【００４２】
図6に、管理計算機40000が有する、装置テーブルの一例を示す。
【００４３】
装置テーブル43100は、管理計算機40000の仮想VOL構成管理プログラムの適用対象となるストレージ装置20000を特定するために用いる。本テーブルは、計算機システム内で装置を一意に識別するための装置IDを登録する、装置ID43110と、装置の種別を登録する、種別43120と、当該装置のベンダ名、モデル名、シリアル番号等の詳細情報を登録する、装置情報43130と、当該装置の管理ポートに対して通信するためのIPアドレスを登録する、IPアドレス43140により構成される。なお、これらの情報は、システム管理者によって管理計算機40000または管理端末70000から予め登録してもよい。また、ストレージネットワークや管理用ネットワーク上のネームサービスなどを用いて自動的に作成してもよい。
【００４４】
以上が実施例1における計算機システムの構成である。
【００４５】
次に、実施例1におけるストレージ装置の動作概要として、仮想VOLへのデータアクセス処理と、仮想VOLへのデータアクセスに伴う、仮想VOL移行処理について説明する。
【００４６】
データアクセス処理及び仮想VOL移行処理は、ストレージ装置20000内のコントローラ21000が、仮想VOL制御PG22111及び仮想VOL移行PG22120を実行することにより実現する。よって、以下では、仮想VOL制御PG22111によるコントローラ21000の動作と、仮想VOL移行PG22120によるコントローラ21000の動作を、順に説明する。
【００４７】
図7は、実施例1における、仮想VOL制御PG22111によるコントローラ21000の動作のフローチャートである。
【００４８】
まず初めに、コントローラ21000は、仮想VOLを作成する(ステップS10000)。
【００４９】
ここで、図8に進み、仮想VOL作成の一例を説明する。管理計算機40000のプロセッサ41000は、入出力PGにより、図8に示すような仮想VOL作成画面90000を表示する。仮想VOL作成画面90000は、仮想VOL作成先のストレージ装置名を入力する装置入力フィールド90010と、仮想VOLをホスト計算機からアクセスさせるための、I/Oポート23000のIDであるPIDを入力するPID入力フィールド90015と、SCSI LU番号であるLUNを入力するLUN入力フィールド90020と、仮想VOLの仮想容量を入力する容量入力フィールド90025と、後述するデータ移行閾値を入力する閾値入力フィールド90030と、前記装置入力フィールド90010、PID入力フィールド90015、LUN入力フィールド90020、容量入力フィールド90025、および閾値入力フィールド90030に入力された値をもとに、仮想VOL作成要求をストレージ装置に送信する、作成ボタン90040を備える。
【００５０】
これら入力フィールドおよびボタンは、全てストレージ管理者が入力およびボタン押下する。例えば、図8に示すパラメータをストレージ管理者が入力して仮想VOLを作成すると、管理計算機40000のプロセッサ41000は、ストレージ装置ST1に対して、仮想容量が10GB、データ移行閾値を仮想容量の60%である6GB、割当先のPIDをp1、割当先LUNを1とする、仮想VOLを作成する。
【００５１】
図7のステップS10000の説明に戻る。ストレージ装置20000のコントローラ21000は、管理計算機から、仮想VOL容量、割当先ホスト計算機、チャンク割当を停止する閾値等の設定情報を含む仮想VOL作成要求を受け取り、当該仮想VOL作成要求に従って、仮想VOLを作成する。
【００５２】
なお、ストレージ装置20000のコントローラ21000は、本ステップS10000を、仮想VOL作成時に実行する。ストレージ装置20000のコントローラ21000は、後述するステップS10010以降の処理を、ホスト計算機から仮想VOLに対するアクセス要求が発生する度に実行する。
【００５３】
次に、コントローラ21000は、ホスト計算機から仮想VOLに対するアクセス要求を受け取る。具体的には、コントローラ21000は、ホスト計算機が発行する、仮想VOLに対するデータの読み出しや書き込みのSCSIコマンドを受け取る。当該アクセス要求には、データの読み出しや書き込み先の仮想VOLとLBAの情報が含まれている(ステップS10010)。
【００５４】
次に、コントローラ21000は、ステップS10010で受け取ったアクセス要求先の記憶領域が割当済かどうか調べる。アクセス要求がリード要求である場合、コントローラ21000は、アクセス要求先の記憶領域が割当済であると判定する。アクセス要求がライト要求である場合、コントローラ21000は、ステップS100010で受け取った前記アクセス要求に含まれる書き込み先の仮想VOLとLBAの情報から、仮想VOLアドレステーブル22500において、当該仮想VOLの当該LBAエントリが存在するかどうかを調べる(ステップS10020)。
【００５５】
ステップS10020において、当該仮想VOLの当該LBAエントリが存在する場合は、記憶領域が割当済であるので、コントローラ21000は、ステップS10060に進む。    
ステップS10020において、当該仮想VOLの当該LBAエントリが存在しない場合は、記憶領域が未割当であるので、コントローラ21000は、仮想VOL移行PGを実行する閾値を超過するか否かを調べる。具体的には、割当済容量22325の容量の値に、新たにチャンクが割り当てられたときの合計容量が、閾値22320を超過しない場合は、閾値未達と見なし、コントローラ21000は、ステップS10040に進む。前記合計容量が、閾値22320を超過する場合は、閾値超過と見なし、コントローラ21000は、ステップS10080に進む(ステップS10030)。
【００５６】
ステップS10030において、閾値22320を超過する場合、コントローラ21000は、仮想VOLのデータを移行するため、仮想VOL移行PG22200を実行し(ステップS10080)、ステップS10060に進む。仮想VOL移行PG22200の詳細は後述する。
【００５７】
ステップS10030において、前記合計容量が閾値を超過しない場合、コントローラ21000は、仮想VOLプールに未割当チャンクが存在するかを調べる。具体的には、コントローラ21000は、仮想VOLアドレステーブル22500の、前記アクセス要求先の前記仮想VOLのエントリ中の、プール22510を調べ、当該仮想VOLがどの仮想VOLプールにデータを格納するか調べる。さらに、コントローラ21000は、前記仮想VOLプールのIDをもとに、仮想VOLプールテーブル22600に登録されたチャンクのエントリの、仮想VOL割当状態22625を調べ、仮想VOL未割当のチャンクを探す(ステップS10040)。
【００５８】
ステップS10040において、仮想VOL未割当チャンクが存在しない場合は、コントローラ21000は、仮想VOLプール内の全記憶領域が割当済のため、ホスト計算機に対して、ステップS10010で受け取った前記アクセス要求のエラーを返し(ステップS10070)、本プログラムを終了する。
【００５９】
ステップS10040において、仮想VOL未割当チャンクが存在する場合、コントローラ21000は、ステップS10040で検出した未割当チャンクを、仮想VOLに割り当てる。具体的には、コントローラ21000は、仮想VOLプールテーブル22600において、検出した未割当チャンクの仮想VOL割当状態22625を「Unallocated」から「Allocated」に変更し、さらに、割当先仮想VOLとして、ステップS10010で受け取った前記アクセス要求のアクセス先である仮想VOLを登録する。さらに、コントローラ21000は、仮想VOLアドレステーブル22500において、ステップS10010で受け取った前記アクセス要求のアクセス先である仮想VOLの割当済LBAを追加し、当該割当済LBAに対応する割当済チャンクとして、ステップS10040で検出した未割当チャンクを登録する。さらに、コントローラ21000は、仮想VOLテーブル22300において、ステップS10010で受け取った前記アクセス要求のアクセス先である仮想VOLの割当済容量を、当該割当済容量にステップS10040で検出した未割当チャンクの容量を加算した値に、更新する(ステップS10050)。
【００６０】
続いて、コントローラ21000は、ステップS10010で受け取った前記アクセス要求の応答を返す。具体的には、コントローラ21000は、ステップS10010で受け取った前記アクセス要求のアクセス先仮想VOLとLBAの情報をもとに、仮想VOLアドレステーブル22500を参照し、アクセス先仮想VOLとLBAに対応するプールと割当済チャンクを調べる。さらに、コントローラ21000は、前記プールと前記割当済チャンクをもとに、仮想VOLプールテーブル22600を参照し、前記プールと前記割当済チャンクに対応するプールVOLとLBAを調べる。さらに、コントローラ21000は、前記プールVOLと前記LBAに対して、ステップS10010で受け取った前記アクセス要求に基づき、データの読み出しまたは書き込みを行う。最後に、コントローラ21000は、前記データの読み出しまたは書き込みの結果を、前記アクセス要求の応答として返す(ステップS10060)。その後、コントローラ21000は、処理を終了する。
【００６１】
以上が、仮想VOL制御PG22111による、コントローラ21000の動作である。
【００６２】
図9に、実施例1における、仮想VOL移行PG22120によるコントローラ21000の動作を示す。なお、以降では、仮想VOL制御PG22111のステップS10080において、移行対象となった仮想VOLを、移行元仮想VOLと呼ぶ。
【００６３】
まず初めに、コントローラ21000は、実VOL25000から、仮想VOLの移行候補を探す。具体的には、コントローラ21000は、実VOLテーブル22200を用いて、移行元仮想VOL26000の仮想容量以上の容量を備え、かつ、ホスト計算機に未割当の実VOLを探す。移行元仮想VOL26000の仮想容量以上の容量を備えるか否かは、容量22215の値と、移行元仮想VOLの仮想容量の値を比較すればよい。また、ホスト計算機に未割当であることは、ホスト割当状態22210の値が、「Unallocated」であればよい。本ステップにおいて、移行元仮想VOL26000の仮想容量以上の容量を備え、かつ、ホスト計算機に未割当の実VOL候補が複数存在した場合は、任意の方法を用いて、実VOL候補を一つに絞り込むこととする。例えば、管理計算機や管理端末の出力部に複数候補を出力し、ストレージ管理者が候補を選択してもよい。また、コントローラ21000が最初に検出した実VOLを実VOL候補としてもよい。なお、以降では、本ステップで移行先として選ばれた一つの実VOLを、移行先実VOLと呼ぶ(ステップS20000)。
【００６４】
次に、コントローラ21000は、移行元仮想VOL、および、ステップS20000で決定された移行先実VOLを移行状態に遷移させる。具体的には、コントローラ21000は、実VOLテーブル22200において、移行先実VOLのホスト割当状態22210の値を、仮想VOLテーブル22300における、移行元仮想VOLのホスト割当状態22310からコピーして格納する。次に、仮想VOLテーブル22300における、移行元仮想VOLのホスト割当状態22310を、移行状態であることを示す新たな値「In Migration」に変更する。このとき、移行先実VOLのIDもあわせて格納する(ステップS20010)。
【００６５】
次に、コントローラ21000は、移行元仮想VOLから移行先実VOLへデータを移行する。具体的には、コントローラ21000は、仮想VOLアドレステーブル22500を用いて、移行元仮想VOLに割当済のLBAおよび割当済LBAに対応するチャンクの組を一つ抽出する。ここで、割当済LBAをX、割当済LBAに対応するチャンクをYと呼ぶ。次に、コントローラ21000は、前記(X,Y)の組と、仮想VOLプールテーブル22600を用いて、YがどのプールVOLのどのLBAに対応するかを調べ、(X,Y, Yに対応するプールVOL, Yに対応するLBA)の組を作成する。次に、コントローラ21000は、(X,Y, Yに対応するプールVOL, Yに対応するLBA)の組に対して、Yに対応するプールVOLのYに対応するLBAのデータを、実VOLのLBA Xにコピーする。次に、コントローラ21000は、仮想VOLプールテーブル22600を用いて、コピーが完了したYに対応するプールVOLのYに対応するLBAの、仮想VOL割当状態を、「Unallocated」に更新する。最後に、コントローラ21000は、仮想VOLアドレステーブル22500を用いて、(X,Y)のエントリを削除する。以上の処理を、移行元仮想VOLに割当済のLBAおよび割当済LBAに対応するチャンクの組が抽出できなくなるまで繰り返す(ステップS20020)。
【００６６】
最後に、コントローラ21000は、データ移行が終了した移行元仮想VOLを削除する。具体的には、ステップS20010において移行状態とした移行元仮想VOLのエントリを削除する(ステップS20030)。
【００６７】
以上が、仮想VOL移行PG22120による、コントローラ21000の動作である。図9の処理フローにより、コントローラ21000は、仮想VOLのデータを実VOLへ移行する構成変更を実施し、閾値を超過した仮想VOLへのデータアクセスを停止させない。
【００６８】
次に、図7の仮想VOL制御PG22111および図9の仮想VOL移行PG22120による、コントローラ21000の動作を具体的に説明するため、図5、図10、図11、図12を用いて、ストレージ装置20000が具備する管理情報の状態遷移を示す。
【００６９】
図5において、ホスト計算機10000から、ストレージ装置20000に対して、仮想VOL v101のLBA「8GBから10GB」の範囲内にアクセス要求があったとき、ストレージ装置20000のコントローラ21000は、図7の仮想VOL制御PG22111を実行する。
【００７０】
コントローラ21000は、ステップS10010でアクセス要求を受け取る。
【００７１】
次に、コントローラ21000は、ステップS10020で、仮想VOL v101へのアクセス要求先の領域がLBA「8GBから10GB」の範囲内であることから、アクセス領域への記憶領域は未割当てであると判断し、ステップS10030へジャンプする。
【００７２】
次に、コントローラ21000は、ステップS10030で、仮想VOL v101へのこれ以上の領域割り当ては、閾値を超過すると判断し、ステップS10080へジャンプする。
【００７３】
次に、コントローラ21000は、ステップS10080において、仮想VOL移行PG22120を実行する。
【００７４】
次に、コントローラ21000は、仮想VOL移行PG22120のフローに従い、ステップS20000において、移行先実VOLにv001を決定する。さらに、ステップS20010において、コントローラ21000は、移行元仮想VOL v101と移行先実VOL v001を移行状態に遷移させる。この結果、ストレージ装置20000が具備する、五つのテーブル(実VOLテーブル22200, 仮想VOLテーブル22300, 仮想VOLアドレステーブル22500, 仮想VOLプールテーブル22600, パリティグループテーブル22700)の状態は、(図5A, 図5B, 図5C, 図5D, 図5E)から、(図10A, 図10B, 図5C, 図5D, 図5E)に遷移する。具体的には、コントローラ21000は、実VOLテーブル22200を、図10Aに示すように、仮想VOL v101のホスト割り当て状態を実VOL v001にコピーする。これにより、ホスト計算機10000に対して、アクセス先を示すI/Oポート23000のIDであるPIDと、SCSI LU番号であるLUNを変更を要求することなく、アクセス先を切り替えることができる。さらに、コントローラ21000は、仮想VOLテーブル22300を、図10Bに示すように、仮想VOL v101のホスト割り当て状態を移行中に更新する。
【００７５】
次に、ステップS20020において、コントローラ21000は、移行元仮想VOL v101から移行先実VOL v001へのデータ移行を行う。例えば移行元仮想VOL v101のLBA「4GBから6GB」の範囲のデータを移行すると、ストレージ装置20000が具備する、五つのテーブル(実VOLテーブル22200, 仮想VOLテーブル22300, 仮想VOLアドレステーブル22500, 仮想VOLプールテーブル22600, パリティグループテーブル22700)の状態は、(図10A, 図10B, 図5C, 図5D, 図5E)から、(図10A, 図11A, 図11B, 図11C, 図5E)に遷移する。具体的には、コントローラ21000は、移行元仮想VOL v101のLBA「4GBから6GB」を移行したのち、コントローラ21000は、仮想VOLテーブル22300を図11Aに示すように更新し、仮想VOLアドレステーブル22500のLBA「4GBから6GB」を削除して図11Bに示すように更新し、仮想VOLプールテーブル22600を図11Cに示すように更新する。以降、コントローラ21000は、移行元仮想VOL v101のLBA「0GBから2GB」と、「2GBから4GB」のデータを移行する。
【００７６】
次に、コントローラ21000は、ステップS20020において全てのデータ移行が完了すると、ステップS20030において、移行元仮想VOL v101を削除する。この結果、ストレージ装置20000が具備する、五つのテーブル(実VOLテーブル22200, 仮想VOLテーブル22300, 仮想VOLアドレステーブル22500, 仮想VOLプールテーブル22600, パリティグループテーブル22700)の状態は、 (図10A, 図11A, 図11B, 図11C, 図5E)から、(図10A, 図12A, 図12B, 図12C, 図5E)に遷移する。具体的には、コントローラ21000は、仮想VOLテーブル22300の仮想VOL v101のエントリを削除し、図12Aに示すように更新する。また、コントローラ21000は、仮想VOLアドレステーブル22500の、全ての仮想VOL v101のエントリを削除し、図12Bに示すように更新する。また、コントローラ21000は、仮想VOLプールテーブル22600の、全ての仮想VOL v101のエントリを削除し、図12Cに示すように更新する。
【００７７】
次に、コントローラ21000は、仮想VOL移行PG22120のフローを終了し、仮想VOL制御PG22111のフローに戻り、ステップS10060にジャンプする。
【００７８】
次に、コントローラ21000は、ステップS10060において、ホスト計算機10000から、ストレージ装置20000に対する、仮想VOL v101のLBA「8GBから10GB」の範囲内へのアクセス要求を、実VOL v001のLBA「8GBから10GB」の範囲内へのアクセス要求として応答する。以上で、仮想VOL制御PG22111のフローを終了する。
【００７９】
以上の動作概要によれば、ストレージ装置は、閾値超過した仮想VOLを実VOLにデータ移行することで、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【００８０】
なお、本実施例では、ストレージ装置20000のコントローラ21000は、仮想VOL制御PG22111から仮想VOL移行PG22120を呼び出し実行したとき、仮想VOL移行PG22120でのステップS20020での移行元仮想VOLから移行先実VOLへのデータ移行、および、ステップS20030での移行元仮想VOL削除が完了した後で、仮想VOL制御PG22111のステップS10060のアクセス要求応答を実施した。しかし、仮想VOL移行PG22120でのステップS20020およびステップS20030は、仮想VOL制御PG22111と並行に実行されてもよい。
【００８１】
つまり、ストレージ装置20000のコントローラ21000は、仮想VOL制御PG22111から仮想VOL移行PG22120を呼び出し実行したとき、ステップS20000とステップS20010によって、ホスト計算機のアクセス先を実VOLに切り替える準備を行う。準備が完了したら、コントローラ21000は、仮想VOL移行PG22120でのステップS20020のデータ移行処理とステップS20030の仮想VOL削除処理を実行する子プロセスを起動する。さらに、コントローラ21000は、仮想VOL制御PG22111のステップS10060に戻り、アクセス要求応答を実施する。こうすることで、コントローラ21000は、仮想VOLから実VOLへのデータ移行や仮想VOL削除の実行完了をまたずに、ホスト計算機からボリュームへのアクセス応答を継続することができる。
【００８２】
（変形例１）
次に、実施例1の第一の変形例におけるストレージ装置の動作概要を説明する。
【００８３】
実施例1と異なる点は、仮想VOL移行PG22120により、コントローラ21000は、プールVOLから移行先候補を探し、移行先候補となったプールVOLを実VOLに構成変更し、移行元仮想VOLを当該実VOLにデータ移行する点である。
【００８４】
図13に、実施例1の第一の変形例における、仮想VOL移行PG22120によるコントローラ21000の動作を示す。
【００８５】
まず初めに、コントローラ21000は、プールVOL27000から、仮想VOLの移行候補を探す。具体的には、コントローラ21000は、仮想VOLプールテーブル22600を用いて、移行元仮想VOL26000の仮想容量以上の容量を備えるプールVOLを探す。移行元仮想VOL26000の仮想容量以上の容量を備えるか否かは、プールVOL22615のプールVOL容量の値と、移行元仮想VOLの仮想容量の値を比較すればよい。本ステップにおいて、移行元仮想VOL26000の仮想容量以上の容量を備えるプールVOL候補が複数存在した場合は、任意の方法を用いて、プールVOL候補を一つに絞り込むこととする。例えば、管理計算機や管理端末の出力部に複数候補を出力し、ストレージ管理者が候補を選択してもよい。また、コントローラ21000が最初に検出したプールVOLをプールVOL候補としてもよい。また、コントローラ21000が、後述するプール内のデータ移行を最少で処理できるプールVOLをプールVOL候補としてもよい。以降では、本ステップで移行先として選ばれた一つのプールVOLを、移行先プールVOLと呼ぶ(ステップS21000)。
【００８６】
次に、コントローラ21000は、移行先プールVOLのデータを移行する。具体的には、コントローラ21000は、仮想VOLプールテーブル22600を用いて、仮想VOL割当済の移行先プールVOLのLBAを一つ探す。このLBAをXとする。コントローラ21000は、仮想VOLプールテーブル22600を用いて、移行先プールVOLとは異なるプールVOLに属し、仮想VOL未割当のLBAを探す。このLBAをYとする。コントローラ21000は、XのデータをYにコピーする。コピーが完了したら、コントローラ21000は、XとYの仮想VOL割当状態を入れ替える。さらにコントローラ21000は、仮想VOLプールテーブル22600から、XとYに対応するチャンクIDを探し、仮想VOLアドレステーブル22500において、Xに対応するチャンクIDが格納されたチャンク22520を、Yに対応するチャンクIDに更新する。以上の処理を、コントローラ21000は、仮想VOLプールテーブル22600を用いて、仮想VOL割当済の移行先プールVOLのLBAが無くなるまで繰り返す(ステップS21010)。
【００８７】
次に、コントローラ21000は、移行先プールVOLを実VOLに構成変更する。具体的には、コントローラ21000は、実VOLテーブル22200に、移行先プールVOLの新規エントリを作成し、仮想VOLプールテーブル22600から、移行先プールVOLのエントリを削除する。さらに、パリティグループテーブル22700において、移行先プールVOLが属するパリティグループの用途22715を、実VOLに変更する。本ステップにおいて、移行先プールVOLは、移行先実VOLになる(ステップS21020)。
【００８８】
次に、コントローラ21000は、移行元仮想VOLから移行先実VOLへデータを移行し(ステップS20020)、移行元仮想VOLを削除する(ステップS20030)。これらのステップは、図9の仮想VOL移行PGのフローに同様である。よって説明を省略する。
【００８９】
以上が、仮想VOL移行PG22120による、コントローラ21000の動作である。図13の処理フローにより、コントローラ21000は、プールVOLから移行対象を探し、移行対象となるプールVOLを実VOLに構成変更し、仮想VOLのデータを実VOLへ移行する構成変更を実施し、閾値を超過した仮想VOLへのデータアクセスを停止させない。
【００９０】
次に、図13の仮想VOL移行PG22120による、コントローラ21000の動作を具体的に説明するため、図5、図14を用いて、ストレージ装置20000が具備する管理情報の状態遷移を示す。
【００９１】
仮想VOL移行PG22120のフローに従い、コントローラ21000は、ステップS21000において、移行先プールVOLにv203を決定する。
【００９２】
次に、ステップS21010において、コントローラ21000は、移行先プールVOL v203のデータ移行を行うが、今回は移行対象のデータが存在しないため、移行は行わない。
【００９３】
次に、ステップS21020において、コントローラ21000は、移行先プールVOL v203を実VOLに構成変更する。
【００９４】
最後に、コントローラ21000は、ステップS20020およびステップS20030において、移行元仮想VOL v101から移行先実VOL v203にデータを移行し、全てのデータ移行が完了すると、移行元仮想VOL v101を削除する。
【００９５】
この結果、ストレージ装置20000が具備する、五つのテーブル(実VOLテーブル22200, 仮想VOLテーブル22300, 仮想VOLアドレステーブル22500, 仮想VOLプールテーブル22600, パリティグループテーブル22700)の状態は、 (図5A, 図5B, 図5C, 図５D, 図5E)から、(図14A, 図14B, 図14C, 図14D, 図14E)に遷移する。具体的には、コントローラ21000は、実VOLテーブル22200に実VOL v203のエントリを新規作成して仮想VOL v101のデータを移行し、図14Aに示すように更新する。さらに、コントローラ21000は、仮想VOLテーブル22300から仮想VOL v101のエントリを削除し、図14Bに示すように更新する。さらに、コントローラ21000は、仮想VOLアドレステーブル22500から、仮想VOL v101のエントリを削除し、図14Cに示すように更新する。さらに、コントローラ21000は、仮想VOLプールテーブル22600から、プールVOL v203のエントリを削除し、図14Dに示すように更新する。さらに、コントローラ21000は、パリティグループテーブル22700において、ボリュームv203が属するパリティグループPGｘｘの用途を実VOLに変更し、図14Eに示すように更新する。
【００９６】
以上が、 実施例1の第一の変形例におけるストレージ装置の動作概要である。
【００９７】
以上の動作概要によれば、ストレージ装置は、未割当の実VOLが十分に存在しない場合でも、プールVOLを実VOLに構成変更することで、閾値超過した仮想VOLを実VOLにデータ移行し、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【００９８】
なお、本変形例では、ストレージ装置20000のコントローラ21000は、仮想VOL制御PG22111から仮想VOL移行PG22120を呼び出し実行したとき、仮想VOL移行PG22120でのステップS20020での移行元仮想VOLから移行先実VOLへのデータ移行、および、ステップS20030での移行元仮想VOL削除が完了した後で、仮想VOL制御PG22111のステップS10060のアクセス要求応答を実施した。しかし、仮想VOL移行PG22120でのステップS20020およびステップS20030は、仮想VOL制御PG22111と並行に実行されてもよい。つまり、ストレージ装置20000のコントローラ21000は、仮想VOL制御PG22111から仮想VOL移行PG22120を呼び出し実行したとき、ステップS21000と、ステップS21010と、ステップS21020によって、ホスト計算機のアクセス先を実VOLに切り替える準備を行う。準備が完了したら、コントローラ21000は、仮想VOL移行PG22120でのステップS20020のデータ移行処理とステップS20030の仮想VOL削除処理を実行する子プロセスを起動する。さらに、コントローラ21000は、仮想VOL制御PG22111のステップS10060に戻り、アクセス要求応答を実施する。こうすることで、コントローラ21000は、仮想VOLから実VOLへのデータ移行や仮想VOL削除の実行完了をまたずに、ホスト計算機からボリュームへのアクセス応答を継続することができる。
【００９９】
（変形例２）
次に、実施例1の第二の変形例におけるストレージ装置の動作概要を説明する。
【０１００】
実施例1と異なる点は、仮想VOL移行PG22120により、コントローラ21000は、仮想VOLが移行前に属する仮想VOLプール(第一の仮想VOLプールと呼ぶ)内のプールVOLから移行先候補を探し、移行先候補となったプールVOLで、第二の仮想VOLプールを新たに作成するよう構成変更し、仮想VOLのまま運用を続ける点である。
【０１０１】
図15に、実施例1の第二の変形例における、仮想VOL移行PG22120によるコントローラ21000の動作を示す。
【０１０２】
まず初めに、コントローラ21000は、プールVOL27000から、仮想VOLの移行候補を探す。具体的には、コントローラ21000は、仮想VOLプールテーブル22600を用いて、後述するプール内のデータ移行を最少で処理できるプールVOLをプールVOL候補とする。なお、プールVOL候補の選択方法として、最初に検出したプールVOLをプールVOL候補としてもよい、また、例えば、管理計算機や管理端末の出力部に複数候補を出力し、ストレージ管理者が候補を選択してもよい。ここで、第一の変形例における仮想VOLの移行候補選択の違いは、移行元仮想VOL26000の仮想容量をプールVOL候補の選択方法としない点である。以降では、本ステップで移行先として選ばれた一つのプールVOLを、移行先プールVOLと呼ぶ(ステップS22000)。
【０１０３】
次に、コントローラ21000は、移行先プールVOLのデータを移行する。本ステップにおいて、コントローラ21000は、移行先プールVOLに格納された仮想VOLデータのうち、移行元仮想VOLのデータ以外のデータを、他のプールVOLに移行し、さらに、移行先プールVOL以外のプールVOLに格納された移行元仮想VOLデータを、移行先プールVOLに移行する。コントローラ21000のデータの移行時の動作は、第一の変形例におけるステップS21010に同様である。よって、詳細の説明を省略する(ステップS22010)。
【０１０４】
最後に、コントローラ21000は、移行先プールVOLで、第二の仮想VOLプールを新設する。具体的には、コントローラ21000は、仮想VOLプールテーブル22600に対して、第二の仮想VOLプールのエントリを設け、当該第二の仮想VOLプールに属するプールVOLに、移行先プールVOLを登録し、第一の仮想VOLプールのプールVOLエントリから、移行先プールVOLを削除する。さらに、仮想VOLアドレステーブル22500に対して、移行元仮想VOLの属するプールを、第二の仮想VOLプールに変更する(ステップS22020)。
【０１０５】
以上が、仮想VOL移行PG22120による、コントローラ21000の動作である。図15の処理フローにより、コントローラ21000は、仮想VOLのままホスト計算機からのデータアクセスを継続する。
【０１０６】
次に、図15の仮想VOL移行PG22120による、コントローラ21000の動作を具体的に説明するため、図5、図16、図17を用いて、ストレージ装置20000が具備する管理情報の状態遷移を示す。
【０１０７】
仮想VOL移行PG22120のフローに従い、コントローラ21000は、ステップS22000において、移行先プールVOLにv201を決定する。
【０１０８】
次に、ステップS22010において、コントローラ21000は、移行先プールVOL v201に存在する仮想VOLデータのうち、移行元仮想VOL v101のデータ以外のデータを、他のプールVOLに移行し、さらに、移行先プールVOL v201以外のプールVOLに格納された移行元仮想VOL v101のデータを、移行先プールVOL v201に移行する。
【０１０９】
この結果、ストレージ装置20000が具備する、五つのテーブル(実VOLテーブル22200, 仮想VOLテーブル22300, 仮想VOLアドレステーブル22500, 仮想VOLプールテーブル22600, パリティグループテーブル22700)の状態は、 (図5A, 図5B, 図5C, 図５D, 図5E)から、(図5A, 図5B, 図16A, 図16B, 図5E)に遷移する。具体的には、コントローラ21000は、仮想VOLプールテーブル22600において、移行先プールVOL v201に存在するチャンクch04のデータをチャンクch08に移行し、チャンクch05のデータをチャンクch09に移行する。その結果が図16Bである。さらに、コントローラ21000は、仮想VOLアドレステーブル22500において、仮想VOL v102の割当済チャンクをch08に更新し、仮想VOL v103の割当済チャンクをch09に更新する。その結果が図16Aである。
【０１１０】
最後に、ステップS22020において、コントローラ21000は、移行先プールVOL v201で、第二の仮想VOLプール p2を新設する。
【０１１１】
この結果、ストレージ装置20000が具備する、五つのテーブル(実VOLテーブル22200, 仮想VOLテーブル22300, 仮想VOLアドレステーブル22500, 仮想VOLプールテーブル22600, パリティグループテーブル22700)の状態は、 (図5A, 図5B, 図16A, 図16B, 図5E)から、(図5A, 図5B, 図17A, 図17B, 図5E)に遷移する。具体的には、コントローラ21000は、仮想VOLプールテーブル22600に対して、第二の仮想VOLプールのp2のエントリを設け、p2に属するプールVOLに、移行先プールVOL v201を登録し、第一の仮想VOLプールp1のプールVOLエントリから、移行先プールVOL v201を削除する。この結果が図17Bである。さらに、コントローラ21000は、仮想VOLアドレステーブル22500に対して、移行元仮想VOL v101の属するプールを、第二の仮想VOLプールp2に変更する。この結果が図17Aである。
【０１１２】
以上が、 実施例1の第二の変形例におけるストレージ装置の動作概要である。
【０１１３】
以上の動作概要によれば、ストレージ装置は、未割当の実VOL、プールVOLが十分に存在しない場合でも、第二の仮想VOLプールを新設することにより、閾値超過した仮想VOLを仮想VOLのまま運用し、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【０１１４】
以上が、実施例1の説明である。
【０１１５】
以上実施例1によれば、ストレージ装置は、閾値超過した仮想VOLをデータ移行することで、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【実施例２】
【０１１６】
実施例2では、実施例1の構成に加え、管理計算機内に仮想ボリューム構成管理プログラムを設け、ストレージ管理者が仮想ボリューム作成時に設定したデータ移行方法をもとに、管理計算機のプロセッサが、仮想ボリューム構成管理プログラムを実行し、前記複数のデータ移行方法を選択する方法について説明する。
【０１１７】
まず、実施例2における、計算機システムの構成、および、ストレージ装置の動作概要を説明する。
【０１１８】
実施例2における計算機システム構成について説明する。図18から図20は計算機システムの構成および計算機システムに接続される装置の構成を示す。なお、実施例2における計算機システム構成の説明は、実施例1との違いのみ説明する。特に説明のない構成については、従来例と同様である。
【０１１９】
図18に、実施例2における、計算機システムの構成例を示す。実施例1と異なる点は、ストレージ装置20000が、実施例1とは異なる処理を行う仮想VOL制御PG22112を備える点と、管理計算機40000が、実施例1とは異なる処理を行う仮想VOL構成管理PG42201を備える点である。詳細は後述する。
【０１２０】
図19に、実施例2における、ストレージ装置の構成例を示す。  実施例1と異なり、メモリ22000の中に、マイクロPG22100の一部として、実施例2の仮想VOL制御PG22112と、仮想VOL移行PG22120を備える。これら仮想VOL制御PG22112と、仮想VOL移行PG22120も、ストレージ装置起動時に、ハードディスク等の記憶媒体(図示せず)から読み込まれる。
【０１２１】
図20に、実施例2における、管理計算機の構成例を示す。
【０１２２】
実施例1と異なり、メモリ42000の中に、仮想VOLの設定、および、仮想VOL移行条件を決定するための仮想VOL構成管理PG42201と、入力された仮想VOL移行方法を管理する、仮想VOL移行方法管理テーブル43200を備える点である。仮想VOL構成管理PG42201は、プロセッサ41000がハードディスク等の記憶媒体(図示せず)からメモリ42000に読み込んで実行することにより実現される。また、仮想VOL構成管理PG42201において、仮想VOLの設定処理は実施例1に同様である。よってフロー詳細は説明を省略する。また、仮想VOL移行方法管理テーブル43200は、後述する。さらに、仮想VOL移行方法を決定する処理は、後述する。
【０１２３】
以上が実施例2における計算機システムの構成である。
【０１２４】
次に、実施例2における計算機システムの動作概要として、仮想VOLへのデータアクセス処理について説明する。
【０１２５】
データアクセス処理は、ストレージ装置20000内のコントローラ21000が、仮想VOL制御PG22112を実行することにより実現する。よって、以下では、仮想VOL制御PG22112によるコントローラ21000の動作を説明する。
【０１２６】
図21は、実施例2における、仮想VOL制御PG22112によるコントローラ21000の動作のフローチャートである。なお、実施例2における仮想VOL制御PG22112の説明は、実施例1の仮想VOL制御PG22111との違いのみ説明する。特に説明のない構成については、実施例1の仮想VOL制御PG22111と同様である。
【０１２７】
まず初めに、コントローラ21000は、仮想VOLを作成する。具体例を、図22を用いて説明する。管理計算機40000のプロセッサ41000は、仮想VOL構成管理PGにより、図22Aに示すような仮想VOL作成画面90000を表示する。実施例1における仮想VOL作成画面90000との違いは、仮想VOLのデータ移行方法を入力する移行方法入力フィールド90035が追加された点である。なお、移行方法入力フィールド90035に入力されたデータ移行方法は、例えば図22Bのように、仮想VOLごとに移行方法を管理できることとする。例えば図22Aに示すパラメータをストレージ管理者が入力して仮想VOLを作成すると、管理計算機40000のプロセッサ41000は、ストレージ装置ST1に対して、仮想容量が10GB、データ移行閾値を仮想容量の60%である6GB、割当先のPIDをp1、割当先LUNを1とする、仮想VOLを作成し、当該仮想VOLを移行するときは、実VOLへデータを移行する移行方法を選択するものとする(ステップS10000)。
【０１２８】
ステップS10010、ステップS10020、ステップS10030、ステップS10050、ステップS10060、ステップS10070、ステップS10080は、実施例1に同様である。説明を省略する。
【０１２９】
ステップS10030において、閾値22320を超過する場合、コントローラ21000は、仮想VOLのデータ移行方法を決定するため、管理計算機40000の仮想VOL構成管理PGに、データ移行方法を問い合わせる。ここでデータ移行方法とは、実施例1、実施例1の第一の変形例、実施例1の第二の変形例における、仮想VOL移行PGのいずれかであるとする(ステップS10090)。
【０１３０】
続いて、管理計算機40000から応答である、仮想VOLのデータ移行方法にもとづき、仮想VOL移行PGを実行する（ステップS10080）。
【０１３１】
以上が、仮想VOL制御PG22112による、コントローラ21000の動作である。
【０１３２】
図23は、実施例2における、仮想VOL構成管理PG42201による、管理計算機40000のプロセッサ41000の動作のフローチャートである。
【０１３３】
はじめに、プロセッサ41000は、ストレージ装置20000から、移行元仮想VOL情報を受け取る(ステップS30010)。
【０１３４】
次に、プロセッサ41000は、ステップS30010で取得した移行元仮想VOLの移行方法を決定する。具体的には、プロセッサ41000は、移行元仮想VOL作成時の仮想VOL制御PG22112のステップS10000で取得した、図22Bに示す仮想VOLのデータ移行方法を、移行元仮想VOLの移行方法とする(ステップS30020)。
【０１３５】
ステップS30020において、移行元仮想VOL作成時の移行方法入力フィールド90035に対する入力が「実VOLへ移行」であったときは、実施例1で述べた、未使用実VOLへのデータ移行を選択し(ステップS30030)、その内容を、ストレージ装置20000に応答して(ステップS30060)、プログラムを終了する。
【０１３６】
ステップS30020において、移行元仮想VOL作成時の移行方法入力フィールド90035に対する入力が「プールVOLを未使用実VOLに変更して移行」であったときは、実施例１の第一の変形例で述べた、プールVOLを未使用実VOLに構成変更してデータ移行する方法を選択し(ステップS30040)、その内容を、ストレージ装置20000に応答して(ステップS30060)、プログラムを終了する。
【０１３７】
ステップS30020において、移行元仮想VOL作成時の移行方法入力フィールド90035に対する入力が「プールの新設」であったときは、実施例１の第二の変形例で述べた、プールを新設してデータ移行する方法を選択し(ステップS30050)、その内容を、ストレージ装置20000に応答して(ステップS30060)、プログラムを終了する。
【０１３８】
以上の動作概要によれば、管理計算機は、閾値超過した仮想VOLを、ストレージ管理者が予め指定した移行方法でデータ移行を指示することで、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【０１３９】
（変形例１）
次に、実施例2における計算機システムの動作の変形例を説明する。
【０１４０】
実施例2と異なる点は、管理計算機のプロセッサ41000が、仮想VOL移行方法を決定するとき、移行方法決定時点での未割当実VOLの容量と仮想VOLプール内のプールVOL容量を用いる点である。
【０１４１】
本変形例における、仮想VOL制御PG22112によるコントローラ21000の動作は、実施例2と同様である。説明を省略する。ただし、ステップS10000において、管理計算機のプロセッサ41000は、図24Aに示すような、仮想VOL作成画面90000を表示する。図24Aの仮想VOL作成画面の図22Aとの違いは、ストレージ管理者が、仮想VOLのデータ移行方法を入力する移行方法入力フィールド90035への入力として、未割当実VOLへの移行を優先する「実VOL優先」か、仮想VOLプール内のプールVOLへの移行を優先する「プールVOL優先」か、入力する点である。なお、移行方法入力フィールド90035に入力されたデータ移行方法は、例えば図24Bのように、仮想VOLごとに移行方法を管理できることとする。例えば図24Aに示すパラメータをストレージ管理者が入力して仮想VOLを作成すると、管理計算機40000のプロセッサ41000は、ストレージ装置ST1に対して、仮想容量が10GB、データ移行閾値を仮想容量の60%である6GB、割当先のPIDをp1、割当先LUNを1とする、仮想VOLを作成し、当該仮想VOLを移行するときは、実VOLへデータ移行を優先する。
【０１４２】
以上が、仮想VOL制御PG22112による、コントローラ21000の動作である。
【０１４３】
図25は、本変形例における、仮想VOL構成管理PG42201による、管理計算機40000のプロセッサ41000の動作のフローチャートである。
【０１４４】
はじめに、プロセッサ41000は、定期的に、ストレージ装置20000の、未使用実VOLと、未使用プール領域を監視する。具体的には、ストレージ装置20000から、実VOLテーブル22200に存在する未使用実VOLの一覧と、仮想VOLプールテーブル22600に存在するプールVOLの一覧と、仮想ボリュームテーブル22300に存在する仮想VOLの一覧を取得する(ステップS31005)。なお、本ステップで取得した情報は、後述するステップS31020,S31030,S31040,S31050において用いる。  
プロセッサ41000は、ストレージ装置20000から、移行元仮想VOL情報を受け取る。(ステップS30010)。
【０１４５】
次に、プロセッサ41000は、ステップS30010で取得した移行元仮想VOLの移行にあたり、優先評価対象を決定する。具体的には、プロセッサ41000は、移行元仮想VOL作成時の仮想VOL制御PG22112のステップS10000で取得した、図24Bに示す仮想VOLのデータ移行方法を、優先評価対象とする(ステップS31010)。
【０１４６】
ステップS31010において、優先評価対象が「実VOL」であったとき、プロセッサ41000は、ストレージ装置20000の未使用実VOLでデータ移行可能かどうか判断し(ステップS31020)、移行可能であれば、ステップS30030へ進む。ここで、プロセッサ41000は、ステップS31005で定期的に取得する未使用実VOLの一覧から、移行先実VOLが選択できたとき、移行可能と判断する。また、他の判断方法として、プロセッサ41000は、未使用実VOLの総容量が、ある閾値を上回るとき、移行可能と判断してもよい。
【０１４７】
ステップS31020において、未使用実VOLでデータ移行可能でなければ、プロセッサ41000は、プールVOLで移行可能かどうか判断し(ステップS31030)、移行可能であれば、ステップS30040に進み、移行可能でなければ、ステップS30050に進む。ここで、プロセッサ41000は、ステップS31005で定期的に取得するプールVOLの一覧から、移行元仮想VOLの仮想容量を上回る移行先プールVOLが選択できたとき、移行可能と判断する。また、プロセッサ41000は、ステップS31005で定期的に取得するプールVOLの一覧から、移行元仮想VOLの仮想容量を上回る移行先プールVOLが選択できないとき、移行可能でないと判断する。
【０１４８】
ステップS31010において、優先評価対象が「プールVOL」であったとき、プロセッサ41000は、プールVOLで移行可能かどうか判断し(ステップS31040)、移行可能であれば、ステップS30040へ進む。なお、ステップS31040において、プロセッサ41000が移行可能か否か判断する方法は、ステップS31030に同様であるので、説明を省略する。
【０１４９】
ステップS31040において、プールVOLでデータ移行可能でなければ、プロセッサ41000は、実VOLで移行可能かどうか判断し(ステップS31050)、移行可能であれば、ステップS30030に進み、移行可能でなければ、ステップS30050に進む。なお、ステップS31050において、プロセッサ41000が移行可能か否か判断する方法は、ステップS31020に同様であるので、説明を省略する。
【０１５０】
ステップS30030、ステップS30040、ステップS30050、ステップS30060は、図23と同様であるので説明を省略する。
【０１５１】
以上の動作概要によれば、管理計算機は、未割当の実VOL容量とプールVOL容量を定期的に監視し、仮想VOLが閾値超過したとき、未割当の実VOL容量とプールVOL容量とストレージ管理者が予め設定した移行条件に基づき、データ移行することで、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【０１５２】
上述した実施例2によれば、ストレージ装置は、閾値超過した仮想VOLを、ストレージ管理者が予め定めたデータ移行条件に従ってデータ移行し、ホスト計算機からのデータアクセスを停止させず、計算機システムの業務を継続することができる。
【０１５３】
上述した実施例１および２によると、、大規模なデータセンタのような計算機システムにおいても、多数のボリュームを容易に管理することができる。
【図面の簡単な説明】
【０１５４】
【図１】実施例1における、計算機システムの構成例を示す図である。
【図２】実施例1における、ストレージ装置の構成例を示す図である。
【図３】実施例1における、管理計算機の構成例を示す図である。
【図４】実施例1における、管理端末の構成例を示す図である。
【図５Ａ】実施例１における、実VOLテーブルの一例を示す図である。
【図５Ｂ】実施例１における、仮想VOLテーブルの一例を示す図である。
【図５Ｃ】実施例１における、仮想VOLアドレステーブルの一例を示す図である。
【図５Ｄ】実施例１における、仮想VOLプールテーブルの一例を示す図である。
【図５Ｅ】実施例１における、パリティグループテーブルの一例を示す図である。
【図６】実施例1における、管理計算機が具備するテーブルの例を示す図である。
【図７】実施例1における、仮想VOL制御PGのフローチャートである。
【図８】実施例1における、仮想VOL作成画面例を示す図である。
【図９】実施例1における、仮想VOL移行PGのフローチャートである。
【図１０Ａ】実施例1における、移行状態に遷移した実VOLテーブルの一例を示す図である。
【図１０Ｂ】実施例1における、移行状態に遷移した仮想VOLテーブルの一例を示す図である。
【図１１Ａ】実施例1における、データ移行中の仮想VOLテーブルの一例を示す図である。
【図１１Ｂ】実施例1における、データ移行中の仮想VOLアドレステーブルの一例を示す図である。
【図１１Ｃ】実施例1における、データ移行中の仮想VOLプールテーブルの一例を示す図である。
【図１２Ａ】実施例1における、データ移行後の仮想VOLテーブルの一例を示す図である。
【図１２Ｂ】実施例1における、データ移行後の仮想VOLアドレステーブルの一例を示す図である。
【図１２Ｃ】実施例1における、データ移行後の仮想VOLプールテーブルの一例を示す図である。
【図１３】実施例1の第一の変形例における、仮想VOL移行PGのフローチャートである。
【図１４Ａ】実施例1の第一の変形例における、実VOLテーブルの一例を示す図である。
【図１４Ｂ】実施例1の第一の変形例における、仮想VOLテーブルの一例を示す図である。
【図１４Ｃ】実施例1の第一の変形例における、仮想VOLアドレステーブルの一例を示す図である。
【図１４Ｄ】実施例1の第一の変形例における、仮想VOLプールテーブルの一例を示す図である。
【図１４Ｅ】実施例1の第一の変形例における、パリティグループテーブルの一例を示す図である。
【図１５】実施例1の第二の変形例における、仮想VOL移行PGのフローチャートである。
【図１６Ａ】実施例1の第二の変形例における、データ移行後の仮想VOLアドレステーブルの一例を示す図である。
【図１６Ｂ】実施例1の第二の変形例における、データ移行後の仮想VOLプールテーブルの一例を示す図である。
【図１７Ａ】実施例1の第二の変形例における、プール分割後の仮想VOLアドレステーブルの一例を示す図である。
【図１７Ｂ】実施例1の第二の変形例における、プール分割後の仮想VOLプールテーブルの一例を示す図である。
【図１８】実施例2における、計算機システムの構成例を示す図である。
【図１９】実施例2における、ストレージ装置の構成例を示す図である。
【図２０】実施例2における、管理計算機の構成例を示す図である。
【図２１】実施例2における、仮想VOL制御PGのフローチャートである。
【図２２Ａ】実施例2における、仮想VOL作成画面例を示す図である。
【図２２Ｂ】実施例2における、仮想VOL移行方法管理テーブルの一例を示す図である。
【図２３】実施例2における、仮想VOL構成管理PGのフローチャートである。
【図２４Ａ】実施例2の第一の変形例における、仮想VOL作成画面例を示す図である。
【図２４Ｂ】実施例2の第一の変形例における、仮想VOL移行方法管理テーブルの一例を示す図である。
【図２５】実施例2の第一の変形例における、仮想VOL構成管理PGのフローチャートである。
【図２６】本実施例における、LU、実VOL、仮想VOL、プールVOL、パリティグループの概念を説明する図である。
【符号の説明】
【０１５５】
10000…ホスト計算機
20000…ストレージ装置
22111, 22112…仮想ボリューム制御プログラム(仮想VOL制御PG)
22120…仮想ボリューム移行プログラム(仮想VOL移行PG)
25000…実ボリューム(実VOL)
26000…仮想ボリューム(仮想VOL)
27000…プールボリューム(プールVOL)
28000…論理ユニット(LU)
29000…パリティグループ
40000…管理計算機
42200, 42201…仮想ボリューム構成管理プログラム(仮想VOL構成管理PG)
50000…ストレージネットワーク
60000…管理ネットワーク
70000…管理端末
【図１】
2007280319.tif 000003
【図２】
2007280319.tif 000004
【図３】
2007280319.tif 000005
【図４】
2007280319.tif 000006
【図５Ａ】
2007280319.tif 000007
【図５Ｂ】
2007280319.tif 000008
【図５Ｃ】
2007280319.tif 000009
【図５Ｄ】
2007280319.tif 000010
【図５Ｅ】
2007280319.tif 000011
【図６】
2007280319.tif 000012
【図７】
2007280319.tif 000013
【図８】
2007280319.tif 000014
【図９】
2007280319.tif 000015
【図１０Ａ】
2007280319.tif 000016
【図１０Ｂ】
2007280319.tif 000017
【図１１Ａ】
2007280319.tif 000018
【図１１Ｂ】
2007280319.tif 000019
【図１１Ｃ】
2007280319.tif 000020
【図１２Ａ】
2007280319.tif 000021
【図１２Ｂ】
2007280319.tif 000022
【図１２Ｃ】
2007280319.tif 000023
【図１３】
2007280319.tif 000024
【図１４Ａ】
2007280319.tif 000025
【図１４Ｂ】
2007280319.tif 000026
【図１４Ｃ】
2007280319.tif 000027
【図１４Ｄ】
2007280319.tif 000028
【図１４Ｅ】
2007280319.tif 000029
【図１５】
2007280319.tif 000030
【図１６Ａ】
2007280319.tif 000031
【図１６Ｂ】
2007280319.tif 000032
【図１７Ａ】
2007280319.tif 000033
【図１７Ｂ】
2007280319.tif 000034
【図１８】
2007280319.tif 000035
【図１９】
2007280319.tif 000036
【図２０】
2007280319.tif 000037
【図２１】
2007280319.tif 000038
【図２２Ａ】
2007280319.tif 000039
【図２２Ｂ】
2007280319.tif 000040
【図２３】
2007280319.tif 000041
【図２４Ａ】
2007280319.tif 000042
【図２４Ｂ】
2007280319.tif 000043
【図２５】
2007280319.tif 000044
【図２６】
2007280319.tif 000045