以下図面について、本発明の一実施の形態を詳述する。
(1)本実施の形態による計算機システムの構成
図1において、1は全体として本実施の形態による計算機システムを示す。この計算機システム1は、ホスト計算機2、複数の物理ストレージ装置3及び管理計算機4を備えて構成される。ホスト計算機2及び複数の物理ストレージ装置3は、ホスト通信用ネットワーク5を介して接続されると共に、物理ストレージ装置3間は装置間通信用ネットワーク6を介して相互に通信自在に接続されている。また管理計算機4は、ホスト計算機2及び複数の物理ストレージ装置3と管理用ネットワーク7を介して接続されている。
ホスト通信用ネットワーク5は、SAN(Storage Area Network)から構成される。ホスト計算機2は、このホスト通信用ネットワーク5を介して物理ストレージ装置3に対してI/O要求等のコマンドや各種データを送受する。装置間通信用ネットワーク6もSANから構成される。各物理ストレージ装置3は、この装置間通信用ネットワーク6を介して、ホスト計算機2からのI/O要求を他の物理ストレージ装置3に転送したり、物理ストレージ装置3間でデータを送受したりする。なお、ホスト通信用ネットワーク5及び装置間通信用ネットワーク6は、図1のように別々のネットワークであっても、また同一のネットワークでも良い。
管理用ネットワーク7は、LAN(Local Area Network)から構成される。管理計算機4は、この管理用ネットワーク7を介してホスト計算機2や各物理ストレージ装置3から情報を収集し、これらホスト計算機2や各物理ストレージ装置3に対する各種設定を行う。
図2は、ホスト計算機2の概略構成を示す。ホスト計算機2は、CPU(Central Processing Unit)10及びメモリ11と、それぞれ1又は複数のSANポート12及びLANポート13と、これらCPU10、メモリ11、SANポート12及びLANポート13間を相互に接続する内部バス14とを備えて構成される。
CPU10は、ホスト計算機2全体の動作制御を司るプロセッサである。またメモリ11は、各種プログラム及び各種データを保持するために利用される。このメモリ11には、1以上のアプリケーションプログラム15に加え、後述するマルチパス管理プログラム16及びパス管理テーブル17も格納される。
SANポート12は、ホスト通信用ネットワーク5に対するポートであり、ホスト通信用ネットワーク5上で固有のネットワークアドレス(例えばWWN(World Wide Name))が付与される。またLANポート13は、管理用ネットワーク7に対するポートであり、管理用ネットワーク7上で固有のネットワークアドレス(例えばIP(Internet Protocol address)アドレス)が付与される。
図3は、物理ストレージ装置3の内部構成を示す。物理ストレージ装置3は、CPU20、メモリ21、キャッシュメモリ22、1又は複数の物理記憶デバイス23、第1及び第2のSANポート24A,24B並びにLANポート25を備え、これらが内部バス26を介して相互に接続される。
CPU20は、物理ストレージ装置3全体の動作制御を司るプロセッサであり、物理記憶デバイス23に格納されたプログラムをメモリ21に読み込み、読み込んだプログラムを必要に応じて実行する。
メモリ21は、物理記憶デバイス23から読み込まれた各種プログラムを記憶するために用いられるほか、CPU20のワークメモリとしても利用される。後述するストレージ制御プログラム30、物理ページ管理テーブル32、論理ページ管理テーブル33、パス管理テーブル34、仮想ストレージ装置構成管理テーブル35、レスポンスタイム測定結果管理テーブル36、性能メトリック測定結果管理テーブル37、ポート性能値測定結果管理テーブル38及びポート管理テーブル39もこのメモリ21に記憶される。ただし、これらの管理テーブル32〜39については、他の補助記憶装置において保持するようにしても良い。キャッシュメモリ22は、主として物理記憶デバイス23に読み書きされるデータを一時的に記憶するために利用される。
第1のSANポート24Aは、ホスト通信用ネットワーク5に対するポートであり、第2のSANポート24Bは、装置間通信用ネットワーク6に対するポートである。さらに、LANポート25は、管理用ネットワーク7に対するポートである。これらのポートには、各ネットワーク中で固有の識別子(例えばWWNやIPアドレス)が付与される。
物理記憶デバイス23は、例えばSCSI(Small Computer System Interface)ディスク等の高価なディスクデバイス、又はSATA(Serial AT Attachment)ディスクや光ディスク等の安価なディスクデバイスなどから構成される。これらの物理記憶デバイス23が提供する記憶領域上にそれぞれ1又は複数の論理ボリュームVOL(図5参照)が設定される。
なお、物理記憶デバイス23は、RAID(Redundant Arrays of Inexpensive Disks)グループに置き換えることができる。RAIDグループとは、ディスク回転数などの物理的な特性が同種である複数の記憶デバイスの集合体を指す。この場合CPU20は、1つのRAIDグループを構成する複数の物理記憶デバイス23が提供する記憶領域を1つの物理記憶デバイス23が提供する記憶領域として管理し、当該記憶領域上に1又は複数の論理ボリュームVOLを設定する。
図4は、管理計算機4の概略構成を示す。管理計算機4は、CPU40、メモリ41及びLANポート42を備えて構成される。
CPU40は、管理計算機4全体の動作制御を司る。またメモリ41は、主として各種プログラムや各種データを記憶する。このメモリ41には、後述するストレージ管理プログラム50及び各種管理テーブル62〜72もこのメモリ41に格納されて保持される。メモリ41に格納されたストレージ管理プログラム50をCPU40が実行することにより、管理計算機4全体としての後述のような各種処理が実行される。LANポート42は、管理用ネットワーク7に対するポートであり、管理用ネットワーク7上で固有のネットワークアドレス(例えばIPアドレス)が付与される。
図5は、計算機システム1の論理構成を示す。本計算機システム1においては、装置間通信用ネットワーク6を介して接続された複数の物理ストレージ装置3により1つの仮想ストレージ装置VSTが構築される。また仮想ストレージ装置VST内には、当該仮想ストレージ装置VSTを構成する複数の物理ストレージ装置3に跨った1又は複数の仮想ボリュームVVOLが定義され、この仮想ボリュームVVOLがホスト計算機2に提供される。
仮想ストレージ装置VSTでは、上述のように各物理ストレージ装置3内の物理記憶デバイス23がそれぞれ提供する記憶領域上に論理ボリュームVOLが作成され、これら物理ストレージ装置3内の論理ボリュームVOLが物理ストレージ装置3間を跨る1つの論理プール(装置横断プール)PLとして管理される。そしてこの装置横断プールPL上に仮想ボリュームVVOLが作成され、当該仮想ボリュームVVOLが装置横断プールPLに対応付けられる。
本計算機システム1では、ホスト計算機2は、装置間通信用ネットワーク6を介して接続された複数の物理ストレージ装置3を1つの仮想ストレージ装置VSTとして認識し、仮想ボリュームVVOLを当該仮想ストレージ装置VSTが提供する論理ボリュームとして認識する。この際、ホスト計算機2は、仮想ストレージ装置VSTを構成する複数の物理ストレージ装置3と間に設定された複数のパスの中からいずれか1つのパスをアクセスパスとして選択する。このアクセスパスを介して、ライト要求やリード要求等のコマンド、及びこれらの要求に対するデータが送受される。
仮想ストレージ装置VSTは、ホスト計算機2から仮想ボリュームVVOLに対するライト要求を受信した場合、装置横断プールPLを構成するいずれかの論理ボリュームVOLから所定大きさの論理的な記憶領域(以下、これを論理ページと呼ぶ)LPを割り当てる。論理ページLPは、当該論理ボリュームVOLが存在する物理ストレージ装置3中の所定の大きさの物理的な記憶領域(以下、これを物理ページと呼ぶ)PPに対応付けられる。物理ページPPは、ライト対象のデータのサイズに応じて、必要数分だけ仮想ボリュームVVOLに割り当てられ、この物理ページPPに対象データが格納される。
ホスト計算機2からのライト要求に対し、アクセスパスを介して接続された物理ストレージ装置3に物理ページPPが割り当てられた場合、当該物理ページPPに対象データが格納される。一方、アクセスパスがホスト計算機2から直接接続されていない物理ストレージ装置3に物理ページPPが割り当てられた場合には、当該ライト要求は、アクセスパスが接続された物理ストレージ装置3から当該物理ページPPが割り当てられた物理ストレージ装置3へ、装置間通信用ネットワーク6を介して転送され、当該物理ページPPに格納される。
リード対象のデータが、アクセスパスがホスト計算機2から直接接続されていない物理ストレージ装置3に存在する場合、装置間通信用ネットワーク6を介して、当該リード要求はアクセスパスが接続された物理ストレージ装置3から対象データが存在する物理ストレージ装置3へ転送される。そして、このリード要求に従って、その物理ストレージ装置3から読み出されたリード対象のデータは、装置間通信用ネットワーク6を介してアクセスパスが接続された物理ストレージ装置3に送信された後、アクセスパスを介してリード要求の発行元のホスト計算機2に送信される。
加えて、本計算機システム1の場合、管理計算機4には、アクセス頻度の高いデータをアクセスパスが接続された物理ストレージ装置3に移動させ、アクセス頻度の低いデータをアクセスパスが直接接続されていない物理ストレージ装置3に移動させるように仮想ストレージ装置VSTを構成する各物理ストレージ装置を制御する階層型データ管理機能が搭載されている。
管理計算機4は、各物理ストレージ装置3が保持するデータに対するアクセス頻度を常時監視しており、アクセスパスが接続されていない物理ストレージ装置3が保持するデータへのアクセス頻度が所定の閾値以上である場合には、そのデータをアクセスパスが接続された物理ストレージ装置3に移動させるようその物理ストレージ装置3を制御する一方、アクセスパスが接続された物理ストレージ装置3が保持するデータへのアクセス頻度が所定の閾値未満である場合には、そのデータを他の物理ストレージ装置3に移動させるようアクセスパスが接続された物理ストレージ装置3を制御する。
これにより本計算機システム1においては、物理ストレージ装置3間におけるデータ転送の発生を低減させながら、ホスト計算機2からのI/O要求に対する応答性能を向上させ得るようになされている。
(2)本実施の形態によるアクセスパス切替え機能
(2−1)本実施の形態によるアクセスパス自動切替え機能の概要
次に、本計算機システム1の管理計算機に搭載されたアクセスパス自動切替え機能について説明する。
管理計算機4には、仮想ストレージ装置VSTに新規の物理ストレージ装置3を追加する際、性能低下した仮想ボリュームVVOLを使用するアプリケーションが使用する仮想ボリュームVVOLへのアクセスパスを前記新規の物理ストレージ装置に自動的に切り替える機能が搭載されている。前記機能を実現するために、管理計算機4は、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの性能を監視し、いずれかの仮想ボリュームVVOLの性能低下を検知した場合、当該仮想ボリュームVVOLの識別子を記録する。
アクセスパスを切り替える仮想ボリュームVVOLは、アプリケーションのアクセス頻度に基づいて予め定められた頻度以上の仮想ボリュームVVOLへのアクセスパスを切り替えることにより効率良くアクセスパスの負荷を分散できる。
仮想ボリュームVVOLの性能低下の検知には、各仮想ボリュームVVOLの性能を示すメトリックの閾値(以下、これをメトリック閾値と呼ぶ)と、そのメトリックがそのメトリック閾値を超過することを許容する期間(以下、これをメトリック閾値超過許容期間と呼ぶ)とを用いる。仮想ボリュームVVOLのメトリック値がメトリック閾値を超過した期間がメトリック閾値超過許容期間を超えた場合、その仮想ボリュームVVOLの性能が低下したと判断する。本実施の形態においては、かかる仮想ボリュームVVOLの性能を示すメトリックとしてレスポンスタイムを用いることとするが、例えばスループットなどの指標を用いても良い。
本実施の形態においては、1時間ごとに、仮想ストレージ装置VST内に作成されたすべての仮想ボリュームVVOLについて、過去1時間に渡って所定期間(以下、これをモニタリング期間と呼び、1分とする)ごとに取得したレスポンスタイムの履歴情報に基づいて性能が低下しているか否かを判定する。
なお、仮想ボリュームVVOLの性能低下の判定条件として、仮想ボリュームVVOLのSLO(Service Level Objective)を適用することもできる。この場合、SLOに違反した仮想ボリュームVVOLを使用するアプリケーションに割り当てられた全ての仮想ボリュームVVOLのアクセスパスが、追加した物理ストレージ装置3に切り替わる。ここで、仮想ボリュームVVOLのSLOとは、仮想ボリュームVVOLの提供者から利用者に提示された仮想ボリュームVVOLの品質、特に性能に関する目標値を意味する。
本アクセスパス自動切り替え機能においては、上述のように、追加した物理ストレージ装置3にアクセスパスを切り替えた後、追加された物理ストレージの残りアクセスパス容量や残り記憶領域容量が他の既設ストレージ装置と同等となるか、予め設定された水準になるまで、仮想ストレージ装置VST中の全ての仮想ボリュームVVOLの性能を監視し、性能低下を検知した場合は、その性能低下の原因に応じた対処を実施する。
ここで、仮想ボリュームVVOLが性能低下する原因は、アクセスパスが接続された物理ストレージ装置3のフロントエンドでの処理性能の低下、物理ストレージ装置3間の装置間通信用ネットワーク6でのデータ転送性能の低下、仮想ストレージ装置VSTを構成するいずれかの物理ストレージ装置3のバックエンドでの処理性能の低下の3点である。上述の新規追加した物理ストレージ装置3へのアクセスパス切り替えによって、当該アクセスパス切り替えと関係のない仮想ボリュームVVOLの性能が低下した場合でも、当該仮想ボリュームVVOLの性能問題を改善することができる。
アクセスパスが設定されているストレージ装置に新たに書き込まれたデータを格納するための実領域であるページを割当てる設定とすることにより、参照する可能性が高い新しいデータをアクセスパスが設定されているストレージ装置に配置できるので、アプリケーションのレスポンスのレスポンス向上が期待できるだけでなく、追加されたストレージ装置は空き記憶容量も十分にある可能性が高いためアプリケーションのサービスを提供するシステムの長期安定的運用上好ましい。
(2−2)各種プログラム及び各種テーブル
本実施形態によるアクセスパス自動切替え機能を実現するための手段として、ホスト計算機2のメモリ11には、図2に示すように、マルチパス管理プログラム16及びパス管理テーブル17が格納される。
マルチパス管理プログラム16は、アプリケーションプログラム15が仮想ストレージ装置VSTにI/O要求を送信する際に利用可能なパスを管理するプログラムである。本プログラム16は、パス管理テーブル17を用いて、ホスト計算機2と仮想ストレージ装置VSTの間を接続する複数のパスを管理する。
パス管理テーブル17は、上述のマルチパス管理プログラム16がホスト計算機2及び物理ストレージ装置3間のパスを管理するために利用するテーブルである。パス管理テーブル17は、図6に示すように、ホスト計算機ポートID欄17A、物理ストレージ装置ID欄17B、物理ストレージ装置ポートID欄17C、LUN欄17D及びアクセスパス設定情報欄17Eから構成される。
ホスト計算機ポートID欄17Aには、仮想ストレージ装置VST(図5)を構成するいずれかの物理ストレージ装置3と、そのエントリと対応付けられたパス(以下、これを対応パスと呼ぶ)を介して接続された自ホスト計算機内の各SANポート12のポートIDが格納される。
物理ストレージ装置ID欄17Bには、対応するSANポート12と対応パスを介して接続された物理ストレージ装置3の識別子(物理ストレージ装置ID)が格納され、物理ストレージ装置ポートID欄17Cには、その物理ストレージ装置3内の対応パスに接続されたポートのポートIDが格納される。
LUN欄17Dには、ホスト計算機2が対応パスを介してアクセス可能な仮想ボリュームVVOLに物理ページPPを割り当てる記憶領域に付与された識別子(LUN:Logical Unit Number)が格納される。具体的には、例えば図5のように装置横断プールPLが3つの論理ボリュームVOLから構成され、この3つの論理ボリュームVOLから仮想ボリュームVVOLに対して物理ページPPを割り当てる場合、これら3つの論理ボリュームVOLを1つの記憶領域として、この記憶領域に付与された識別番号がLUNに相当する。
アクセスパス設定情報欄17Eには、対応パスがそのパス管理テーブル17と対応付けられた仮想ボリュームVVOLへのアクセスパスであるか否かを表す情報が格納される。具体的に、アクセスパス設定情報欄17Eには、対応パスがかかるアクセスパスである場合には「true」が格納され、対応パスがかかるアクセスパスでない場合には「false」が格納される。
各物理ストレージ装置3のメモリ21には、図3に示すように、ストレージ制御プログラム30と、物理ページ管理テーブル32、論理ページ管理テーブル33、パス管理テーブル34、仮想ストレージ装置構成管理テーブル35、レスポンスタイム測定結果管理テーブル36、性能メトリック測定結果管理テーブル37、ポート性能値測定結果管理テーブル38及びポート管理テーブル39とが格納されている。
ストレージ制御プログラム30は、物理ストレージ装置3の動作を制御するためのプログラムであり、ページ移動モジュール31を備えて構成される。ページ移動モジュール31は、仮想ボリュームVVOL内の論理ページLPのうち、管理計算機4から指示された論理ページLPと対応付けられた物理ページPPに格納されているデータを自物理ストレージ装置又は他の物理ストレージ装置3内の他の物理ページPPに移動させる機能を有するモジュールである。
物理ページ管理テーブル32は、各物理ストレージ装置3がそれぞれ自物理ストレージ装置内の物理記憶デバイス23が提供する各物理ページPPを管理するために利用するテーブルであり、図7に示すように、物理記憶デバイスID欄32A及び物理ページID欄32Bから構成される。
そして物理記憶デバイスID欄32Aには、その物理ストレージ装置3に搭載された各物理記憶デバイス23にそれぞれ付与された識別子(物理記憶デバイスID)が格納される。また物理ページID欄32Bには、対応する物理記憶デバイス23が提供する記憶領域に含まれる各物理ページPPに対してそれぞれ付与された識別子(物理ページID)が格納される。
また論理ページ管理テーブル33は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持する共通のテーブルであり、当該仮想ストレージ装置VSTに作成された各仮想ボリュームVVOL内の各論理ページLPを管理するために利用される。この論理ページ管理テーブル33は、図8に示すように、仮想ボリュームID欄33A、論理ページID欄33B、物理ストレージ装置ID欄33C及び物理ページID欄33Dから構成される。
そして仮想ボリュームID欄33Aには、その仮想ストレージ装置VST上に設定された各仮想ボリュームVVOLにそれぞれ付与された識別子(仮想ボリュームID)が格納され、論理ページID欄33Bには、対応する仮想ボリュームVVOL内の各論理ページLPにそれぞれ付与された識別子(論理ページID)が格納される。
また物理ページID欄33Dには、仮想ストレージ装置VSTの装置横断プールPLから対応する論理ページLPに割り当てられた物理ページPPの物理ページIDが格納され、物理ストレージ装置ID欄33Cには、その物理ページPPを提供する物理ストレージ装置3の物理ストレージ装置IDが格納される。
さらにパス管理テーブル34は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持する共通のテーブルであり、ホスト計算機2が仮想ストレージ装置VST内の各仮想ボリュームVVOLにアクセスする際に利用するアクセスパスを管理するために利用される。このパス管理テーブル34は、図9に示すように、仮想ボリュームID欄34A、LUN欄34B、物理ストレージ装置側ポートID欄34C及びホスト計算機側ポートID欄34Dから構成される。
そして仮想ボリュームID欄34Aには、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの仮想ボリュームIDが格納され、LUN欄34Bには、対応する仮想ボリュームVVOLに物理ページPP(図5)を付与する仮想ストレージ装置VST(図5)内の記憶領域に付与されたLUNが格納される。
また物理ストレージ装置側ポートID欄34Cには、対応する仮想ボリュームVVOLが接続された物理ストレージ装置3のSANポート24A,24B(図3)に付与された識別子(ポートID)が格納され、ホスト計算機ポートID欄34Dには、その仮想ボリュームVVOLと接続されたホスト計算機2のSANポート12(図2)に付与されたポートIDが格納される。
仮想ストレージ装置構成管理テーブル35は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持する共通のテーブルであり、その仮想ストレージ装置VSTを構成する物理ストレージ装置3を管理するために利用される。この仮想ストレージ装置構成管理テーブル35は、図10に示すように、物理ストレージ装置ID欄35Aのみから構成される。そして当該物理ストレージ装置ID欄35Aには、対応する仮想ストレージ装置VSTを構成するすべての物理ストレージ装置3の物理ストレージ装置IDがそれぞれ格納される。
レスポンスタイム測定結果管理テーブル36は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持するテーブルであり、各仮想ボリュームVVOLに対するレスポンスタイムの測定結果を管理するために利用される。このレスポンスタイム測定結果管理テーブル36は、図11に示すように、仮想ボリュームID欄36A、I/O数欄36B及び平均レスポンスタイム欄36Cから構成される。
そして仮想ボリュームID欄36Aには、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの仮想ボリュームIDがそれぞれ格納され、I/O数欄36Bには、その物理ストレージ装置3が1分間(モニタリング期間)に渡って計測したその仮想ボリュームVVOLへのI/O数が格納される。また平均レスポンスタイム欄36Cには、その仮想ボリュームVVOLについて当該物理ストレージ装置3が1分間(モニタリング期間)に渡って計測した、個々のI/O要求に対するレスポンスタイムの平均値(平均レスポンスタイム)が格納される。
なお、物理ストレージ装置3が各仮想ボリュームVVOLについて測定する平均レスポンスタイム及びI/O数はモニタリング期間(1分)単位であるため、このレスポンスタイム測定結果管理テーブル36も1分ごとに更新されることになる。
性能メトリック測定結果管理テーブル37は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持するテーブルであり、1分間(モニタリング期間)に渡って計測した自物理ストレージ装置の性能メトリック(CPUビジー率及びキャッシュメモリ利用率)を管理するために利用される。この性能メトリック測定結果管理テーブル37は、図12に示すように、CPUビジー率平均値欄37A及びキャッシュメモリ利用率平均値欄37Bから構成される。
そしてCPUビジー率平均値欄37Aには、1分間のモニタリング期間内に自物理ストレージ装置内のCPU20(図3)がビジー状態となった時間的割合の平均値(以下、これをCPUビジー率平均値と呼ぶ)が格納され、キャッシュメモリ利用率平均値欄には、1分間のモニタリング期間内における自物理ストレージ装置内のキャッシュメモリ22(図3)の利用率(キャッシュメモリの全容量に対する利用容量の割合)の平均値(以下、これをキャッシュメモリ利用率平均値と呼ぶ)が格納される。
なお、物理ストレージ装置3がCPUビジー率平均値及びキャッシュメモリ利用率平均値を算出するのはモニタリング期間(1分)単位であるため、この性能メトリック測定結果管理テーブル37も1分ごとに更新されることになる。
ポート性能値測定結果管理テーブル38は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持するテーブルであり、1分間(モニタリング期間)に渡って計測した自物理ストレージ装置内の各SANポート24A,24B(図3)の性能値の測定結果を管理するために利用される。このポート性能値測定結果管理テーブル38は、図13に示すように、ポートID欄38A、接続先ノードID欄38B、接続先ポートID欄38C及びデータ転送量平均値欄38Dから構成される。
そしてポートID欄38Aには、このポート性能値測定結果管理テーブル38を保持する物理ストレージ装置3内の各SANポート24A,24Bにそれぞれ付与されたポートIDが格納され、接続先ノードID欄に38Bは、対応するSANポート24A,24Bと接続されたノード(物理ストレージ装置3又はホスト計算機2)に付与された識別子が格納される。
また接続先ポートID欄38Cには、その物理ストレージ装置3における対応するSANポート24A,24Bと接続されたそのノードにおけるSANポートのポートIDが格納され、データ転送量平均値欄38Dには、1分間(モニタリング期間)に渡って計測された、その物理ストレージ装置3における対応するSANポート24A,24Bから対応するノードに転送される単位時間(1秒)当たりのデータ転送量の平均値が格納される。
なお、物理ストレージ装置3がかかるデータ転送量の平均値を算出するのは上述のモニタリング期間(1分)単位であるため、このポート性能値測定結果管理テーブル38も1分ごとに更新されることになる。
さらにポート管理テーブル39は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ保持するテーブルであり、自物理ストレージ装置内の各SANポート24A,24Bを管理するために利用される。このポート管理テーブル39は、図14に示すように、ポートID欄39A、ポート種別欄39B及び最大データ転送量理論値欄39Cから構成される。
そしてポートID欄39Aには、その物理ストレージ装置3内に存在するすべてのSANポート24A,24BのポートIDがそれぞれ格納され、ポート種別欄39Bには、対応するSANポート24A,24Bの種別(例えば4Gbps-FC(Fibre Channel)ポート)が格納される。さらに最大データ転送量理論値欄39Cには、対応するSANポート24A,24Bの単位時間(1秒)当たりに転送可能な最大のデータ量の理論値が格納される。なお、この理論値は、対応するSANポート24A,24Bのポート種別に依存する固有の値である。
他方、管理計算機4のメモリ41には、上述のアクセスパス自動切替え機能を実現するための手段として、図4に示すように、ストレージ管理プログラム50、仮想ストレージ装置構成管理テーブル62、追加装置設定値管理テーブル63、性能低下仮想ボリューム管理テーブル64、性能低下仮想ボリューム検出日時管理テーブル65、仮想ボリューム性能低下判定条件定義テーブル66、仮想ボリュームレスポンスタイム履歴テーブル67、パス管理テーブル68、物理ストレージ装置性能メトリック閾値定義テーブル69、物理ストレージ装置性能メトリック履歴テーブル70、装置間通信性能管理テーブル71及び装置間データ転送量履歴テーブル72が格納されている。
ストレージ管理プログラム50は、管理計算機4が計算機システム1内の物理ストレージ装置3を管理するために利用するプログラムであり、物理ストレージ装置追加処理モジュール51、レスポンスタイム測定結果取得モジュール52、仮想ボリューム性能低下判定モジュール53、性能低下原因特定モジュール54、装置間通信負荷低減モジュール55、バックエンド負荷分散モジュール56、フロントエンド負荷分散モジュール57、追加装置性能余力判定モジュール58、アクセスパス切替え先装置選択モジュール59及びアクセスパス切替え先ポート表示モジュール60を備えて構成される。
このうち物理ストレージ装置追加処理モジュール51は、物理ストレージ装置3が新規追加された場合に当該物理ストレージ装置3に関する情報を後述する追加装置設定値管理テーブル63(図16)に登録するモジュールであり、レスポンスタイム測定結果取得モジュール52は、モニタリング期間ごとに、仮想ストレージ装置VSTを構成する各物理ストレージ装置3がそれぞれ測定した各仮想ボリュームVVOLのI/O数と、レスポンスタイムの平均値(以下、これを平均レスポンスタイムと呼ぶ)とを取得し、得られたI/O数及び平均レスポンスタイムの各平均値を後述する仮想ボリュームレスポンスタイム履歴テーブル67(図20)に格納するモジュールである。
仮想ボリューム性能低下判定モジュール53は、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLについて、その性能が低下しているか否かを判定するモジュールであり、性能低下原因特定モジュール54は、仮想ボリューム性能低下判定モジュール53により性能が低下していると判定された仮想ボリュームVVOLについて、その性能低下の原因を特定するモジュールである。
装置間通信負荷低減モジュール55は、仮想ボリューム性能低下判定モジュール53により仮想ボリュームVVOLの性能低下の原因が物理ストレージ装置3間を接続する装置間通信パスにおけるデータ転送量の増大にあると判定された場合に、その仮想ボリュームVVOLの性能を向上させる所定の処理を実行するモジュールである。
またバックエンド負荷分散モジュール56は、仮想ボリューム性能低下判定モジュール53により仮想ボリュームVVOLの性能低下の原因が、特定の物理記憶デバイス23(図3)に対するI/O要求の集中に起因する物理ストレージ装置3のバックエンドの負荷増大であると判定された場合に、その仮想ボリュームVVOLの性能を向上させるための所定の処理を実行するモジュールである。なお、物理ストレージ装置3の「バックエンド」とは、物理ストレージ装置3における、物理記憶デバイス23へのI/O要求を処理する部分を指し、例えば物理記憶デバイス23及び当該物理記憶デバイス23へのI/Oを処理するプロセッサ(図示せず)などから構成される部分が該当する。
同様に、フロントエンド負荷分散モジュール57は、仮想ボリューム性能低下判定モジュール53により仮想ボリュームVVOLの性能低下の原因が、ホスト計算機2又は他の物理ストレージ装置3からのI/O要求の集中に起因するアクセスパスが接続された物理ストレージ装置3のフロントエンドの負荷増大であると判定された場合に、その仮想ボリュームVVOLの性能を向上させるための所定の処理を実行するモジュールである。なお、物理ストレージ装置3の「フロントエンド」とは、物理ストレージ装置3における、ホスト計算機2又は他の物理ストレージ装置3からのI/O要求の処理を行う部分を指し、例えばSANポート24A,24Bが有するプロセッサ(ポートプロセッサ)及びキャッシュメモリ22などから構成される部分が該当する。
なお、追加装置性能余力判定モジュール58、アクセスパス切替え先装置選択モジュール59及びアクセスパス切替え先ポート表示モジュール60の詳細については、後述する。
一方、仮想ストレージ装置構成管理テーブル62は、仮想ストレージ装置VSTを構成する物理ストレージ装置3を管理するために利用されるテーブルであり、図15に示すように、個々の物理ストレージ装置3について、その物理ストレージ装置3が追加の物理ストレージ装置であるか否かの判定結果を表す情報と、容量消費量をバランスする設定がなされているか否かを表す情報とが格納される。なお容量消費量をバランスするとは、物理ストレージ装置3に複数の物理記憶デバイス23が搭載されている場合に、各物理記憶デバイス23にそれぞれ格納されているデータのデータ量の比率がその物理記憶デバイス23の記憶容量の比率と同じ比率となるように物理記憶デバイス23間でデータの移動を行うことをいう。
追加装置設定値管理テーブル63は、追加された物理ストレージ装置3を「追加された物理ストレージ装置」と認識できるか否かの性能的な基準値を管理するために利用されるテーブルであり、図16に示すように、追加されたと判定された物理ストレージ装置3について、その物理ストレージ装置3を「追加された物理ストレージ装置」であると判定しても良いCPUビジー率の限界値(以下、これをCPUビジー率設定値と呼ぶ)と、キャッシュメモリ22の利用率の限界値(以下、これをキャッシュメモリ利用率設定値と呼ぶ)と、容量消費量の限界値(以下、これを容量消費量設定値と呼ぶ)とが格納される。
性能低下仮想ボリューム管理テーブル64は、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの性能状態を管理するために利用されるテーブルであり、図17に示すように、仮想ボリュームID欄64A、性能低下情報欄64B、レスポンスタイム閾値連続超過期間欄64C及びアクセスパス自動切替え設定情報欄64Dから構成される。
そして仮想ボリュームID欄64Aには、対応する仮想ストレージ装置VST内に作成されたすべての仮想ボリュームVVOLの仮想ボリュームIDがそれぞれ格納され、性能低下情報欄64Bには、対応する仮想ボリュームVVOLの性能が低下している場合に「true」、性能が低下していない場合に「false」が格納される。
レスポンスタイム閾値連続超過期間欄64Cには、対応する仮想ボリュームVVOLに対するI/O要求のレスポンスタイムが予め設定されたレスポンスタイムの閾値を超えた時間(以下、これをレスポンスタイム閾値連続超過期間と呼ぶ)が格納され、アクセスパス自動切替え設定情報欄64Dには、アクセスパスを自動で切り替える設定(以下、これをアクセスパス自動切替え設定と呼ぶ)がなされている場合に「true」が格納され、設定がなされていない場合に「false」が格納される。
性能低下仮想ボリューム検出日時管理テーブル65は、性能が低下した仮想ボリュームVVOLを検出した日時を管理するために利用されるテーブルであり、図18に示すように、仮想ボリュームID欄65A及び性能低下検出日時欄65Bから構成される。
そして仮想ボリュームID欄65Aには、性能が低下したと判定された仮想ボリュームVVOLの仮想ボリュームIDが格納され、性能低下検出日時欄65Bには、その仮想ボリュームVVOLの性能低下を検出した日時が格納される。
仮想ボリューム性能低下判定条件定義テーブル66は、仮想ストレージ装置VST内の個々の仮想ボリュームVVOLについて設定された、その仮想ボリュームVVOLの性能低下を判定する際の判定基準を管理するために利用されるテーブルであり、図19に示すように、仮想ボリュームID欄66A、レスポンスタイム閾値欄66B及びレスポンスタイム閾値連続超過許容期間欄66Cから構成される。
そして仮想ボリュームID欄66Aには、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの仮想ボリュームIDが格納される。またレスポンスタイム閾値欄66Bには、対応する仮想ボリュームVVOLについて設定されたレスポンスタイムの閾値(以下、これをレスポンスタイム閾値と呼ぶ)が格納され、レスポンスタイム閾値連続超過許容期間欄66Cには、その仮想ボリュームVVOLについて設定されたレスポンスタイム閾値を連続して超過することが許容されるレスポンスタイム閾値連続超過期間の閾値(以下、これをレスポンスタイム閾値連続超過許容期間と呼ぶ)が格納される。
仮想ボリュームレスポンスタイム履歴テーブル67は、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLについて、上述のモニタリング期間ごとに各物理ストレージ装置3から収集したレスポンスタイムの平均値を記憶し管理しておくために利用されるテーブルであり、図20に示すように、仮想ボリュームID欄67A、モニタリング期間欄67B及びレスポンスタイム欄67Cから構成される。
そして仮想ボリュームID欄67Aには、仮想ストレージ装置VST内に作成された個々の仮想ボリュームVVOLの仮想ボリュームIDが格納され、モニタリング期間欄67Bには、対応する仮想ボリュームVVOLについてレスポンスタイムのモニタリングを行った各モニタリング期間を表す情報がそれぞれ格納される。またレスポンスタイム欄67Cには、対応するモニタリング期間内における対応する仮想ボリュームVVOLの平均的なレスポンスタイムが格納される。
パス管理テーブル68は、仮想ストレージ装置VST内の各仮想ボリュームVVOLと、ホスト計算機2との間のパスを管理するために利用されるテーブルであり、図21に示すように、仮想ボリュームID欄68A、ホスト計算機ID欄68B、ホスト計算機ポートID欄68C、物理ストレージ装置ID欄68D、物理ストレージ装置ID欄68E及びアクセスパス設定情報欄68Fから構成される。
そして仮想ボリュームID欄68Aには、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの仮想ボリュームIDが格納される。またホスト計算機ID欄68Bには、その仮想ボリュームVVOLと接続された各ホスト計算機2のホスト計算機IDが格納され、ホスト計算機ポートID欄68Cには、対応するホスト計算機2における対応する仮想ボリュームVVOLと接続されたSANポート12(図2)のポートIDが格納される。
さらに物理ストレージ装置ID欄68Eには、仮想ストレージ装置VSTを構成する物理ストレージ装置3のうち、対応するホスト計算機2の対応するSANポート12と接続された物理ストレージ装置3の物理ストレージ装置IDが格納され、物理ストレージ装置ポートID欄68Eには、対応するホスト計算機2の対応するSANポート12と接続された対応する物理ストレージ装置3内の対応するSANポート24A(図3)のポートIDが格納される。
さらにアクセスパス設定情報欄68Fには、対応するホスト計算機2内の対応するSANポート12と、対応する物理ストレージ装置3内の対応するSANポート24Aとを接続するパスが、そのホスト計算機2が仮想ストレージ装置VSTにアクセスする際のアクセスパスに設定されている場合に「true」が格納され、設定されていない場合には「false」が格納される。
物理ストレージ装置性能メトリック閾値定義テーブル69は、仮想ストレージ装置VSTを構成する個々の物理ストレージ装置3についてそれぞれ予め設定された、その物理ストレージ装置3の性能メトリックの閾値を管理するために利用されるテーブルであり、図22に示すように、物理ストレージ装置ID欄69A、CPUビジー率閾値欄69B及びキャッシュメモリ利用率閾値欄69Cから構成される。
そして物理ストレージ装置ID欄69Aには、仮想ストレージ装置VSTを構成する各物理ストレージ装置3の物理ストレージ装置IDがそれぞれ格納される。またCPUビジー率閾値欄69Bには、上述の各モニタリング期間内に取得されたCPUビジー率に基づき、その物理ストレージ装置3の負荷が過大となっていると判断されるべきCPUビジー率閾値が格納される。さらにキャッシュメモリ利用率閾値欄69Cには、当該モニタリング期間内に取得されたキャッシュメモリ利用率に基づき、その物理ストレージ装置3の負荷が過大となっていると判断されるべきキャッシュメモリ利用率閾値が格納される。
物理ストレージ装置性能メトリック履歴テーブル70は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3について上述のモニタリング期間ごとに順次取得したCPUビジー率及びキャッシュメモリ利用率を管理するために利用されるテーブルであり、図23に示すように、物理ストレージ装置ID欄70A、測定日時欄70B、CPUビジー率欄70C及びキャッシュメモリ利用率欄70Dから構成される。
そして物理ストレージ装置ID欄70Aには、仮想ストレージ装置VSTを構成する各物理ストレージ装置3の物理ストレージ装置IDが格納され、測定日時欄70Bには、対応する物理ストレージ装置3について、性能メトリックを測定したすべての日時が古いものから順番に格納される。
またCPUビジー率欄70Cには、対応する物理ストレージ装置3について対応する測定日時に測定したCPUビジー率が格納され、キャッシュメモリ利用率欄70Dには、対応する物理ストレージ装置3について対応する測定日時に測定したキャッシュメモリ利用率が格納される。
なお、この物理ストレージ装置性能メトリック履歴テーブル70は、ストレージ管理プログラム50によりモニタリング期間(1分)ごとに更新される。
装置間通信性能管理テーブル71は、仮想ストレージ装置VSTを構成する各物理ストレージ装置3間の通信性能を管理するために利用されるテーブルであり、図24に示すように、各物理ストレージ装置3間のデータ転送に利用可能なパスのパス数と、装置間通信における最大のデータ転送量の論理値とが格納される。
装置間データ転送量履歴テーブル72は、装置間通信のデータ転送量の履歴を管理するために利用されるテーブルであり、図25に示すように、各物理ストレージ装置3間のモニタリング期間ごとのデータ転送量の平均値が格納される。
(2−3)アクセスパス自動切替え処理に関する各種処理
次に、上述のアクセスパス自動切替え機能に関連して実行される各種処理の具体的な処理内容について説明する。なお、以下においては、各種処理の処理主体を「プログラム」又は「モジュール」として説明するが、実際上は、そのプログラム又はモジュールに基づいて物理ストレージ装置3のCPU20(図3)や、管理計算機4のCPU40(図4)がその処理を実行することは言うまでもない。
(2−3−1)物理ストレージ装置追加処理
物理ストレージ装置追加処理モジュール51は、性能低下仮想ボリューム管理テーブル64を参照し、性能低下した仮想ボリュームの一覧を取得する。そして、管理計算機4が有する、仮想ボリュームVVOLとアプリケーションプログラム15(図2)の対応表(図示せず)を参照し、性能低下した各仮想ボリュームVVOLと、当該仮想ボリュームVVOLを利用するアプリケーションプログラム15とを対応付ける。さらに、物理ストレージ装置追加処理モジュール51は、前記対応表を参照し、前記アプリケーションが利用している全ての仮想ボリュームの一覧を取得する。
そして、物理ストレージ装置追加処理モジュール51は、性能低下した仮想ボリュームVVOLを使用するアプリケーションプログラム15が利用する全ての仮想ボリュームVVOLに対するアクセスパスとして利用可能な代替パスをパス管理テーブル68から取得する。各アプリケーションプログラム15が配置されたホスト計算機2へ対し、前記代替パスへのアクセスパス切り替えを指示する。
かくして、本モジュール51は、仮想ストレージ装置VSTにおいて、性能低下した仮想ボリュームVVOLを使用するアプリケーションプログラム15が利用する仮想ボリュームVVOLに対するアクセスパスを、追加する物理ストレージ装置3に切り替えるよう、ホスト計算機2に指示する。このとき、前記アクセスパス切り替えに伴い、パス管理テーブル68(図21)の内容が更新される。
かかる指示を受領したホスト計算機2は、仮想ストレージ装置VSTへのアクセスパスを追加する物理ストレージ装置3に切り替えるように、メモリ11(図2)に格納された対応するパス管理テーブル17(図6)を更新する。
(2−3−2)レスポンスタイム測定結果取得処理
一方、図26は、管理計算機のレスポンスタイム測定結果取得モジュール52(図4)によりモニタリング期間周期(1分周期)で実行されるレスポンスタイム測定結果取得処理の処理手順を示す。レスポンスタイム測定結果取得モジュール52は、この図26に示す処理手順に従って、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLのモニタリング期間ごとのレスポンスタイムの平均値を取得し、これを仮想ボリュームレスポンスタイム履歴テーブル67(図20)に登録する。
実際上、レスポンスタイム測定結果取得モジュール52は、レスポンスタイム測定結果取得処理を開始すると、まず、仮想ストレージ装置VST内に作成されたすべての仮想ボリュームVVOLの仮想ボリュームIDを性能低下仮想ボリューム管理テーブル64(図17)から取得する(SP10)。
続いて、レスポンスタイム測定結果取得モジュール52は、仮想ストレージ装置VSTを構成するすべての物理ストレージ装置3の物理ストレージ装置IDを仮想ストレージ装置構成管理テーブル62(図15)から取得する(SP11)。
次いで、レスポンスタイム測定結果取得モジュール52は、ステップSP10において取得した仮想ボリュームIDの中から1つの仮想ボリュームVVOLの仮想ボリュームIDを選択し(SP12)、さらにステップSP11において取得した物理ストレージ装置IDの中から1つの物理ストレージ装置3の物理ストレージ装置IDを取得する(SP13)。
この後、レスポンスタイム測定結果取得モジュール52は、ステップSP13において選択した物理ストレージ装置IDが付与された物理ストレージ装置(以下、これを選択物理ストレージ装置と呼ぶ)3に対して、ステップSP12において選択した仮想ボリュームIDが付与された仮想ボリューム(以下、これを選択仮想ボリュームと呼ぶ)VVOLについてのレスポンスタイムの測定結果の転送を求めるレスポンスタイム測定結果転送要求を送信する(SP14)。
かくして、このレスポンスタイム測定結果転送要求を受信した物理ストレージ装置3のCPU20(図3)は、レスポンスタイム測定結果転送要求において指定された仮想ボリュームIDが付与された仮想ボリュームVVOLのI/O数及び平均レスポンスタイムをレスポンスタイム測定結果管理テーブル36(図11)から読み出し、これらを管理計算機4に転送する。
続いて、レスポンスタイム測定結果取得モジュール52は、ステップSP11において取得したすべての物理ストレージ装置IDについてステップSP13及びステップSP14の処理を実行し終えたか否かを判断する(SP15)。
レスポンスタイム測定結果取得モジュール52は、この判断で否定結果を得るとステップS13Pに戻り、この後、ステップSP13において選択する物理ストレージ装置IDを未処理の他の物理ストレージ装置IDに順次切り替えながら、ステップSP13〜ステップSP15の処理を繰り返す。
そしてレスポンスタイム測定結果取得モジュール52は、やがてステップSP11において取得した各物理ストレージ装置IDがそれぞれ付与されたすべての物理ストレージ装置3から、選択仮想ボリュームVVOLについてのI/O数及び平均レスポンスタイムを取得し終えることによりステップSP15において肯定結果を得ると、選択仮想ボリュームVVOLについての平均レスポンスタイムの平均値(以下、これをレスポンスタイム平均値と呼ぶ)を算出する(SP16)。
具体的に、レスポンスタイム測定結果取得モジュール52は、i番目に取得した平均レスポンスタイムをri、同じi番目に取得したI/O数をNiとして、次式
により、選択仮想ボリュームVVOLのレスポンスタイム平均値Rを算出する。
なお、この(1)式のように、選択仮想ボリュームVVOLのレスポンスタイム平均値Rを、各物理ストレージ装置3においてそれぞれ取得した平均レスポンスタイムのI/O数Niによる加重平均として算出するようにしたのは、そのレスポンスタイム測定結果取得処理の実行期間中に、選択仮想ボリュームVVOLとアクセスパスを介して接続された物理ストレージ装置3が他の物理ストレージ装置3に切り替えられる場合があることを考慮したものである。
この後、レスポンスタイム測定結果取得モジュール52は、ステップSP16において算出した選択仮想ボリュームVVOLのレスポンスタイム平均値Rを仮想ボリュームレスポンスタイム履歴テーブル67(図20)に登録する(SP17)。具体的に、レスポンスタイム測定結果取得モジュール52は、選択仮想ボリュームVVOLに対応するエントリを仮想ボリュームレスポンスタイム履歴テーブル67内に確保し、そのエントリのモニタリング期間欄67B(図20)にそのときのモニタリング期間を表す日時を格納すると共に、そのエントリのレスポンスタイム欄67C(図20)にステップSP16において算出したレスポンスタイム平均値Rを格納する。
続いて、レスポンスタイム測定結果取得モジュール52は、ステップSP10において取得したすべての仮想ボリュームIDについてステップSP11〜ステップSP17の処理を実行し終えたか否かを判断する(SP18)。
レスポンスタイム測定結果取得モジュール52は、この判断で否定結果を得るとステップSP12に戻り、この後、ステップSP12において選択する仮想ボリュームIDを未処理の他の仮想ボリュームIDに順次切り替えながら、ステップSP12〜ステップSP18の処理を繰り返す。
そしてレスポンスタイム測定結果取得モジュール52は、やがてステップSP10において取得した各仮想ボリュームIDについての同じモニタリング期間におけるレスポンスタイム平均値を、仮想ボリュームレスポンスタイム履歴テーブル67に登録し終えることによりステップSP18において肯定結果を得ると、このレスポンスタイム測定結果取得処理を終了する。
(2−3−3)ストレージ管理に関する各種処理
(2−3−3−1)ストレージ管理処理
他方、図27は、ストレージ管理プログラム50(図4)により定期的(例えば毎正時)に実行されるストレージ管理処理の処理手順を示す。ストレージ管理プログラム50は、この図27に示す処理手順に従って、性能が低下している仮想ボリュームVVOLの有無を判定し、性能が低下している仮想ボリュームVVOLが存在する場合には、その仮想ボリュームVVOLの負荷を分散させる。
実際上、ストレージ管理プログラム50は、このストレージ管理処理を開始すると、まず、仮想ボリューム性能低下判定モジュール53(図4)を呼び出す。そしてストレージ管理プログラム50により呼び出された仮想ボリューム性能低下判定モジュール53は、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの性能がそれぞれ低下しているか否かを判定する仮想ボリューム性能低下判定処理を実行する(SP20)。
続いて、ストレージ管理プログラム50は、性能低下仮想ボリューム管理テーブル64(図17)から全エントリの情報を読み出し(SP21)、情報を読み出した全エントリの中から1つのエントリを選択する(SP22)。そしてストレージ管理プログラム50は、この後、ステップSP22において選択したエントリの性能低下情報欄64B(図17)に格納されている値が「true」であるか否かを判断する(SP23)。
ストレージ管理プログラム50は、この判断で否定結果を得るとステップSP29に進む。これに対してストレージ管理プログラム50は、ステップSP23の判断で肯定結果を得ると、ステップSP22において選択したエントリに対応する仮想ボリュームVVOLの仮想ボリュームIDと、現在の日時とを、それぞれ性能低下仮想ボリューム検出日時管理テーブル65(図18)の対応する仮想ボリュームID欄65A又は性能低下検出日時欄65Bに登録する。またストレージ管理プログラム50は、これと併せて性能低下原因特定モジュール54を呼び出し、対応する仮想ボリュームVVOLの性能が低下した原因を特定する性能低下原因特定処理をこの性能低下原因特定モジュール54に実行させる(SP24)。
そしてストレージ管理プログラム50は、ステップSP24の性能低減原因特定処理において特定された性能低下の原因が「装置間通信」であった場合には、装置間通信負荷低減モジュール55(図4)を呼び出し、この装置間通信負荷低減モジュール55に、仮想ボリュームVVOLに格納されたデータを当該仮想ボリュームVVOLとアクセスパスを介して接続されたアクセスパスが接続された物理ストレージ装置3にすべて移動させる装置間通信負荷低減処理を実行させる(SP26)。そしてストレージ管理プログラム50は、この後、ステップSP29に進む。
またストレージ管理プログラム50は、ステップSP24の性能低減原因特定処理において特定された性能低下の原因が「バックエンド」であった場合には、バックエンド負荷分散モジュール56(図4)を呼び出し、このバックエンド負荷分散モジュール56に、対応する仮想ボリュームVVOLに物理ページPP(図5)を割り当てているすべての物理ストレージ装置3について、当該物理ストレージ装置3内の各物理記憶デバイス23(図3)に格納されているデータのデータ量の比率が各物理記憶デバイス23の記憶容量の比率と同じ比率となるように物理記憶デバイス23間でデータを移動させるバックエンド負荷分散処理を実行させる(SP27)。そしてストレージ管理プログラム50は、この後、ステップSP29に進む。
さらにストレージ管理プログラム50は、ステップSP24の性能低減原因特定処理において特定された性能低下の原因が「フロントエンド」であった場合には、フロントエンド負荷分散モジュール57(図4)を呼び出し、このフロントエンド負荷分散モジュール57に、その仮想ボリュームVVOLとアクセスパスを介して接続されている物理ストレージ装置3を他の物理ストレージ装置3に切り替えるフロントエンド負荷分散処理を実行させる(SP28)。そしてストレージ管理プログラム50は、この後、ステップSP29に進む。
この後、ストレージ管理プログラム50は、ステップSP21において性能低下仮想ボリューム管理テーブル64(図17)から情報を取得したすべてのエントリについてステップSP22〜ステップSP28の処理を完了したか否かを判断する(SP29)。そしてストレージ管理プログラム50は、この判断で否定結果を得るとステップSP22に戻り、この後、ステップSP22において選択するエントリを未処理の他のエントリに順次切り替えながら、ステップSP22〜ステップSP29の処理を繰り返す。
そしてストレージ管理プログラム50は、やがて性能低下仮想ボリューム管理テーブル64のすべてのエントリ(仮想ストレージ装置VST内のすべての仮想ボリュームVVOL)についてステップSP22〜ステップSP28の処理を実行し終えることによりステップSP29において肯定結果を得ると、このストレージ管理処理を終了する。
(2−3−3−2)仮想ボリューム性能低下判定処理
図28A及び図28Bは、上述したストレージ管理処理(図27)のステップSP20において呼び出された仮想ボリューム性能低下判定モジュール53(図4)により実行される仮想ボリューム性能低下判定処理の具体的な処理手順を示す。
仮想ボリューム性能低下判定モジュール53は、ストレージ管理処理のステップSP20においてストレージ管理プログラム50により呼び出されると、この図28A及び図28Bに示す仮想ボリューム性能低下判定処理を開始し、まず、性能低下仮想ボリューム管理テーブル64(図17)から全エントリの情報を読み出し(SP30)、情報を読み出した全エントリの中から1つのエントリを選択する(SP31)。
続いて、仮想ボリューム性能低下判定モジュール53は、ステップSP31において選択したエントリの仮想ボリュームID欄64A及びレスポンスタイム閾値連続超過期間欄64Cにそれぞれ格納されている仮想ボリュームID及びレスポンスタイム閾値連続超過期間を取得する(SP32)。
また仮想ボリューム性能低下判定モジュール53は、仮想ボリューム性能低下判定条件定義テーブル66(図19)から、ステップSP31において選択したエントリに対応する仮想ボリューム(以下、これを対応仮想ボリュームと呼ぶ)VVOLについて設定されているレスポンスタイム閾値及びレスポンスタイム閾値連続超過許容期間を取得する(SP33)。具体的に、仮想ボリューム性能低下判定モジュール53は、このステップSP66において、仮想ボリューム性能低下判定条件定義テーブル66の対応仮想ボリュームVVOLと対応付けられたエントリのレスポンスタイム閾値欄66B(図19)に格納されている値(レスポンスタイム閾値)と、レスポンスタイム閾値連続超過許容期間欄66C(図19)に格納されている値(レスポンスタイム閾値連続超過許容期間)とを取得する。
次いで、仮想ボリューム性能低下判定モジュール53は、仮想ボリュームレスポンスタイム履歴テーブル67(図20)から、対応仮想ボリュームVVOLについての過去1時間分のモニタリング期間欄67B(図20)及びこれに対応するレスポンスタイム欄67C(以下、これらをまとめてレスポンスタイムエントリと呼ぶ)にそれぞれ格納された情報を取得する(SP34)。
次いで、仮想ボリューム性能低下判定モジュール53は、ステップSP34において情報を取得した各レスポンスタイムエントリの中からモニタリング期間が最も古いレスポンスタイムエントリを1つ選択し(SP35)、選択したレスポンスエントリのレスポンスタイム欄67C(図20)に格納されているレスポンスタイムがステップSP33において取得したレスポンスタイム閾値を超過しているか否かを判断する(SP36)。
仮想ボリューム性能低下判定モジュール53は、この判断で否定結果を得ると、性能低下仮想ボリューム管理テーブル64(図17)における対応仮想ボリュームVVOLと対応付けられたエントリのレスポンスタイム閾値連続超過期間欄64C(図17)に格納されたレスポンスタイム閾値連続超過期間を「0」に更新し(SP37)、この後、ステップSP40に進む。
これに対して仮想ボリューム性能低下判定モジュール53は、ステップSP36の判断で肯定結果を得ると、性能低下仮想ボリューム管理テーブル64(図17)における対応仮想ボリュームVVOLと対応付けられたエントリのレスポンスタイム閾値連続超過期間欄64C(図17)に格納されたレスポンスタイム閾値連続超過期間を、1モニタリング期間分の時間を加算した値に更新する(SP38)。
続いて、仮想ボリューム性能低下判定モジュール53は、ステップSP38において更新した後のレスポンスタイム閾値連続超過期間がステップSP33において取得したレスポンスタイム閾値連続超過許容期間を超過したか否かを判断する(SP39)。
仮想ボリューム性能低下判定モジュール53は、この判断で肯定結果を得ると、性能低下仮想ボリューム管理テーブル64(図17)における対応仮想ボリュームVVOLと対応付けられたエントリの性能低下情報欄64B(図17)に格納されている値を「true」に更新する(SP40)。さらに仮想ボリューム性能低下判定モジュール53は、性能低下仮想ボリューム管理テーブル64における対応仮想ボリュームVVOLに対応するエントリのレスポンスタイム閾値連続超過期間欄64C(図17)に格納されているレスポンスタイム閾値連続超過期間を「0」に更新し(SP41)、この後、ステップSP44に進む。
これに対して仮想ボリューム性能低下判定モジュール53は、ステップSP39の判断で否定結果を得ると、ステップSP34において情報を取得した過去1時間分のすべてのレスポンスタイムエントリについてステップSP35〜ステップSP43の処理を実行し終えたか否かを判断する(SP44)。
そして仮想ボリューム性能低下判定モジュール53は、この判断で否定結果を得るとステップSP35に戻り、この後、ステップSP35において選択するレスポンスタイムエントリを1つずつ新しいレスポンスタイムエントリに順次切り替えながら、ステップSP35〜ステップSP42の処理を繰り返す。
そして仮想ボリューム性能低下判定モジュール53は、やがてステップSP34において取得した過去1時間分のすべてのレスポンスタイムエントリについてステップSP35〜ステップSP41の処理を実行し終えることにより、ステップSP42において肯定結果を得ると、性能低下仮想ボリューム管理テーブル64における対応仮想ボリュームVVOLと対応付けられたエントリの性能低下情報欄64B(図17)に格納された値を「false」に更新し、さらにそのエントリのレスポンスタイム閾値連続超過期間欄64C(図17)に格納された値を、最後にステップSP38において得られた加算結果の値に更新する(SP43)。
この後、仮想ボリューム性能低下判定モジュール53は、ステップSP30において情報を取得したすべてのエントリ(仮想ストレージ装置VST内に作成されたすべての仮想ボリュームVVOL)についてステップSP31〜ステップSP43の処理を実行し終えたか否かを判断する(SP44)。
仮想ボリューム性能低下判定モジュール53は、この判断で否定結果を得るとステップSP31に戻り、この後ステップSP31において選択するエントリを未処理の他のエントリに順次切り替えながらステップSP31〜ステップSP44の処理を繰り返す。
そして仮想ボリューム性能低下判定モジュール53は、やがて仮想ストレージ装置VST内に作成されたすべての仮想ボリュームVVOLについてステップSP31〜ステップSP43の処理を実行し終えることによりステップSP44において肯定結果を得ると、この仮想ボリューム性能低下判定処理を終了する。
(2−3−3−3)性能低下原因特定処理
図29は、図27について上述したストレージ管理処理のステップSP24において性能低下原因特定モジュール54により実行される性能低下原因特定処理の具体的な処理手順を示す。
性能低下原因特定モジュール54は、ストレージ管理処理のステップSP24においてストレージ管理プログラム50により呼び出されたとき、図29に示す性能低下原因特定処理を開始する。まず、ストレージ管理処理のステップSP23において肯定結果が得られた仮想ボリューム(性能低下した仮想ボリューム)の仮想ボリュームIDをストレージ管理プログラム50から受け取る(SP50)。
続いて、性能低下原因特定モジュール54は、仮想ストレージ装置VSTを構成する物理ストレージ装置3のうちの性能低下仮想ボリュームVVOLのアクセスパスが接続された物理ストレージ装置3から最後に取得した性能メトリック値(CPUビジー率及びキャッシュメモリ利用率)を物理ストレージ装置性能メトリック履歴テーブル70(図24)から取得する(SP51)。
次いで、性能低下原因特定モジュール54は、物理ストレージ装置性能メトリック閾値定義テーブル69(図21)を参照して、ステップSP51において取得した性能メトリック値(CPUビジー率及びキャッシュメモリ利用率)のうち、少なくとも1つが、予め設定されているCPUビジー率閾値又はキャッシュメモリ利用率閾値よりも大きいか否かを判断する(SP52)。
そして性能低下原因特定モジュール54は、この判断で肯定結果を得ると、性能低下仮想ボリュームVVOLの性能低下の原因を、アクセスパスが接続された物理ストレージ装置3のフロントエンドの負荷増大によるもの、つまり「フロントエンド」と特定し(SP53)、この後、ステップSP58に進む。
これに対して、性能低下原因特定モジュール54は、ステップSP52の判断で否定結果を得ると、装置間通信性能管理テーブル71(図24)及び装置間データ転送量履歴テーブル72(図25)を参照して、仮想ストレージ装置VSTを構成する物理ストレージ装置3のうちの性能低下仮想ボリュームVVOLのアクセスパスが接続された物理ストレージ装置3から最後に取得した、当該アクセスパスが接続された物理ストレージ装置3をアクセス元とし、他の物理ストレージ装置3をアクセス先とする装置間通信のデータ転送平均量が、その装置間通信の最大データ転送量理論値を超えている期間が存在するか否かを判断する(SP55)。
そして性能低下原因特定モジュール54は、この判断で肯定結果を得ると、性能低下仮想ボリュームVVOLの性能低下の原因を、アクセスパスが接続された物理ストレージ装置3及び他の物理ストレージ装置3間におけるデータ転送負荷の増大によるもの、つまり「装置間通信」と特定し(SP56)、この後、ステップSP58に進む。これに対して性能低下原因特定モジュール54は、ステップSP55の判断で否定結果を得ると、性能低下仮想ボリュームVVOLの性能低下の原因を、物理ストレージ装置3のバックエンドの負荷増大によるもの、つまり「バックエンド」と特定し(SP57)、この後、ステップSP58に進む。
続いて、性能低下原因特定モジュール54は、上述のステップSP50〜ステップSP57の処理により特定した性能低下仮想ボリュームVVOLの性能低下の原因をストレージ管理プログラム50に返却し(SP58)、この後、この性能低下原因特定処理を終了する。
(2−3−3−4)装置間通信負荷低減処理及びページ移動処理
装置間通信負荷低減モジュール55は、ストレージ管理処理のステップSP26においてストレージ管理プログラム50により呼び出されると装置間通信負荷低減処理を開始し、まず、性能低下仮想ボリューム管理テーブル64(図17)内のそのとき対象としているエントリと対応付けられた性能低下仮想ボリュームVVOLの仮想ボリュームIDを、当該性能低下仮想ボリューム管理テーブル64から取得する。
続いて、装置間通信負荷低減モジュール55は、仮想ストレージ装置VSTを構成するすべての物理ストレージ装置3に対して、その物理ストレージ装置3から仮想ボリュームIDを取得した性能低下仮想ボリュームVVOLに対して、その物理ストレージ装置3からその性能低下仮想ボリュームVVOLに割り当てている物理ページPP(図5)に格納されているデータを、その性能低下仮想ボリュームVVOLとアクセスパスを介して接続された物理ストレージ装置3にすべて移動するページ移動処理の実行指示(以下、これをページ移動処理実行指示と呼ぶ)を送信する。
この際、装置間通信負荷低減モジュール55は、かかるページ移動処理実行指示に、取得した仮想ボリュームIDを格納する。そして、装置間通信負荷低減モジュール55は、この後、この装置間通信負荷低減処理を終了する。
物理ストレージ装置3のページ移動モジュール31は、かかるページ移動処理実行指示を受信するとページ移動処理を開始し、まず、ページ移動処理実行指示に格納された性能低下仮想ボリュームVVOLの仮想ボリュームIDを当該ページ移動処理実行指示から取り出す。
続いて、ページ移動モジュール31は、パス管理テーブル34(図9)を参照して、自物理ストレージ装置にアクセスパスが接続されているか否かを判断する。具体的に、ページ移動モジュール31は、パス管理テーブル34の物理ストレージ装置ポートID欄34Cに自物理ストレージ装置内のSANポート24AのポートIDが格納されているか否かを判断する。
ここで、この判断で肯定結果を得ることは、自物理ストレージ装置が性能低下仮想ボリュームVVOLとアクセスパスを介して接続されたアクセスパスが接続された物理ストレージ装置3であり、従って、自物理ストレージ装置内のデータを他の物理ストレージ装置3に移動する必要がないことを意味する。かくして、このときページ移動モジュール31は、このページ移動処理を終了する。
これに対して、自物理ストレージ装置が性能低下仮想ボリュームVVOLとアクセスパスを介して接続されたアクセスパスが接続された物理ストレージ装置3でなければ、自物理ストレージ装置内のデータをアクセスパスが接続された物理ストレージ装置3に移動する必要がある。かくして、このときページ移動モジュール31は、その性能低下仮想ボリュームVVOLとアクセスパスを介して接続されたアクセスパスが接続された物理ストレージ装置3の物理ストレージ装置IDをパス管理テーブル34(図9)から読み出す。
そしてページ移動モジュール31は、論理ページ管理テーブル33(図8)を参照して、自物理ストレージ装置から性能低下仮想ボリュームVVOLに割り当てているすべての物理ページPP(図5)を特定すると共に、アクセスパスが接続された物理ストレージ装置3にアクセスして、これらの物理ページPPにそれぞれ格納されているデータを、アクセスパスが接続された物理ストレージ装置3に移動させる。そしてページ移動モジュール31は、この後、このページ移動処理を終了する。
(2−3−3−5)バックエンド負荷分散処理
上述したストレージ管理処理(図27)のステップSP27においてバックエンド負荷分散モジュール56(図4)により実行されるバックエンド負荷分散処理の具体的な処理手順を説明する。
バックエンド負荷分散モジュール56は、ストレージ管理処理(図27)のステップSP27においてストレージ管理プログラム50により呼び出されるとバックエンド負荷分散処理を開始し、まず、そのとき対象としている仮想ボリュームVVOLに記憶領域を割り当てている物理ストレージ装置3を1つ選択し、その物理ストレージ装置3について各物理記憶デバイス23の消費容量の比率がその物理記憶デバイス23の容量の比率と同じとなるように物理記憶デバイス23間でデータを移動させるリバランス処理を実行可能であるか否かを判断する。
そしてバックエンド負荷分散モジュール56は、例えば利用している物理記憶デバイス23に障害が発生しているときなど、リバランス処理を実行不可能であるとした場合には、このバックエンド負荷分散処理を終了する。
これに対して、バックエンド負荷分散モジュール56は、リバランス処理を実行可能であるとした場合には、どの物理記憶デバイス23に格納されたデータをどの物理記憶デバイス23に移動させるかを決定するページマイグレーション前処理を実行する。
続いて、バックエンド負荷分散モジュール56は、データ移動させる物理ページのページ数を算出し、この後、ステップSP81及びステップSP82の結果に基づいて、対応する物理記憶デバイス23間でのデータ移動を実行させる。そしてバックエンド負荷分散モジュール56は、この後、このバックエンド負荷分散処理を終了する。
負荷分散処理においては装置間通信を伴うデータのアクセスが発生したときに当該データを格納する物理ストレージ装置3からホスト計算機2から直接アクセスパスが設定されているストレージ装置に当該データを含むページが転送されたときに直接アクセスパスが設定されている物理ストレージ装置3にページマイグレーションすることによりマイグレーションのオーバーヘッドを低減することが可能である。
また、ホスト計算機2で稼働するアプリケーションプログラム15(図2)と仮想ボリュームVVOLを対応付けて記憶し、装置間通信を伴うデータアクセスが予め定められた頻度よりも多いアプリケーションプログラム15を特定し、当該アプリケーションプログラム15に関連付けられた仮想ボリュームVVOLをページマイグレーションの対象とすることもシステム管理上有効である。
特に、アプリケーションプログラム15で使用する複数の仮想ボリュームVVOLのセットを追加した物理ストレージ装置3へ迅速に移動させて管理する場合は、アクセス頻度の比較的低いページもマイグレーションする必要があるため、システムの稼働状況をモニタし、装置間通信の予め定められた帯域幅の範囲でアプリケーションプログラム15が使用する仮想ボリュームVVOLのセットを通常業務に影響を与えること無く移動することができる。
(2−3−3−6)フロントエンド負荷分散処理
(2−3−3−6−1)フロントエンド負荷分散処理
図30は、上述したストレージ管理処理(図27)のステップSP28においてフロントエンド負荷分散モジュール57(図4)により実行されるフロントエンド負荷分散処理の具体的な処理手順を示す。
フロントエンド負荷分散モジュール57は、ストレージ管理処理のステップSP26においてストレージ管理プログラム50により呼び出されるとこの図30に示すフロントエンド負荷分散処理を開始し、まず、ストレージ管理処理のステップSP23において性能が低下したと判断された仮想ボリューム(性能低下仮想ボリューム)VVOLの仮想ボリュームIDをストレージ管理プログラム50から取得する(SP60)。
続いて、フロントエンド負荷分散モジュール57は、追加装置性能余力判定モジュール58(図4)を呼び出し、この追加装置性能余力判定モジュール58に、追加され、かつ十分な性能余力を有する物理ストレージ装置3が存在するかを判定する追加装置性能余力判定処理を実行させる(SP61)。
続いて、フロントエンド負荷分散モジュール57は、ステップSP60において追加装置性能余力判定モジュール58から送信される追加装置性能余力判定処理の処理結果に基づいて、追加され、かつ十分な性能余力を有する物理ストレージ装置3が存在すると判定されたか否かを判断する(SP62)。
フロントエンド負荷分散モジュール57は、この判断で肯定結果を得ると、追加され、かつ十分な性能余力を有すると判定された物理ストレージ装置3を、そのときステップSP60において仮想ボリュームIDを取得した性能低下仮想ボリュームVVOLとの間のアクセスパス切替え先の物理ストレージ装置3として設定する(SP63)。
これに対してフロントエンド負荷分散モジュール57は、ステップSP62の判断で否定結果を得ると、アクセスパス切替え先装置選択モジュール59(図4)を呼び出し、このアクセスパス切替え先装置選択モジュール59(図4)に、ステップSP60において仮想ボリュームIDを取得した性能低下仮想ボリュームVVOLとの間のアクセスパスの切替え先とすべき物理ストレージ装置3を選択させるアクセスパス切替え先装置選択処理を実行させる(SP64)。
かくしてフロントエンド負荷分散モジュール57により呼び出されたアクセスパス切替え先装置選択モジュール59は、後述するアクセスパス切替え先装置選択処理を実行することにより、アクセスパスの切替え先とすべき物理ストレージ装置3を選択し、その物理ストレージ装置IDをフロントエンド負荷分散モジュール57に返却する。
続いて、フロントエンド負荷分散モジュール57は、装置間通信性能管理テーブル71(図24)及び装置間データ転送量履歴テーブル72(図25)を参照して、ステップSP63において設定されたアクセスパスの切替え先とする物理ストレージ装置3、又は、ステップSP64においてアクセスパス切替え先装置選択モジュール59から返却された物理ストレージ装置IDが付与された物理ストレージ装置3と、他の各物理ストレージ装置3との間のデータ転送量が、いずれもステップSP63において設定されたアクセスパスの切替え先とする物理ストレージ装置3、又は、ステップSP64において返却された物理ストレージ装置IDが付与された物理ストレージ装置3と、当該他の物理ストレージ装置3との間の最大データ転送量の理論値を下回っているか否かを判断する(SP65)。
そしてフロントエンド負荷分散モジュール57は、この判断で肯定結果を得ると、図示しないアクセスパス切替えモジュールを呼び出し、このアクセスパス切替えモジュールに、ステップSP60において仮想ボリュームIDを取得した性能低下仮想ボリュームVVOLと、仮想ストレージ装置VSTとの間のアクセスパスを、テップSP63において設定されたアクセスパスの切替え先とする物理ストレージ装置3、又は、ステップSP64において返却された物理ストレージ装置IDが付与された物理ストレージ装置3に切り替えるアクセスパス切替え処理を実行させる(SP66)。そしてフロントエンド負荷分散モジュール57は、この後、このフロントエンド負荷分散処理を終了する。
かくして、フロントエンド負荷分散モジュール57により呼び出されたアクセスパス切替えモジュールは、指定された性能低下仮想ボリュームVVOLとの間のアクセスパスを、指定された物理ストレージ装置3に切り替えるようホスト計算機2に指示を与える。またアクセスパス切替えモジュールは、指定された性能低下仮想ボリュームVVOLとの間のアクセスパスを、指定された物理ストレージ装置3に切り替えるようパス管理テーブル68(図21)を更新する。具体的に、アクセスパス切替えモジュールは、パス管理テーブル68上の性能低下仮想ボリュームVVOLと対応付けられたエントリのうち、指定された物理ストレージ装置3と対応付けられたエントリのアクセスパス設定情報欄68F(図21)に格納されている情報を「true」に更新する。またホスト計算機2は、これと併せてそれまでアクセスパスが接続されていた物理ストレージ装置3と対応付けられたエントリのアクセスパス設定情報欄68Fに格納されている情報を「false」に更新する。
さらに、かかる指示を受領したホスト計算機2のCPU10は、その性能低下仮想ボリュームVVOLへのアクセスパスを指定された物理ストレージ装置3に切り替えるように、メモリ11(図2)に格納された対応するパス管理テーブル17(図6)を更新する。具体的に、CPU10は、性能低下仮想ボリュームVVOLに対応するパス管理テーブル17におけるその性能低下仮想ボリュームVVOLと対応付けられたエントリのアクセスパス設定情報欄17E(図6)に格納されている情報を「true」に更新する。またホスト計算機2は、これと併せてそれまでアクセスパスが接続されていた物理ストレージ装置3と対応付けられたエントリのアクセスパス設定情報欄17Eに格納されている情報を「false」に更新する。この結果、ホスト計算機2は、この後、かかる性能低下仮想ボリュームVVOLへのアクセスを、アクセスパス設定情報欄17Eに「true」が格納されているエントリと対応付けられた物理ストレージ装置3(つまりテップSP63において設定されたアクセスパスの切替え先とする物理ストレージ装置3、又は、ステップSP64において返却された物理ストレージ装置IDが付与された物理ストレージ装置3)を介して性能低下仮想ボリュームVVOLにアクセスすることになる。
一方、ステップSP65において否定結果を得た場合、そのとき対象としている性能低下仮想ボリュームVVOLとの間のアクセスパスを、テップSP63において設定されたアクセスパスの切替え先とする物理ストレージ装置3、又は、ステップSP64においてアクセスパス切替え先として選択された物理ストレージ装置3に切り替えると、その物理ストレージ装置3と、他の物理ストレージ装置3との間のデータ転送がボトルネックとなって、ホスト計算機2から見た仮想ボリュームの性能が低下するおそれがある。そこで、この場合、フロントエンド負荷分散モジュール57は、アクセスパス切替えモジュールを呼び出すことなく、このフロントエンド負荷分散処理を終了する。
(2−3−3−6−2)追加装置性能余力判定処理
追加装置性能余力判定モジュール58の処理について説明する。
まず、追加装置性能余力判定モジュール58は、仮想ストレージ装置構成管理テーブル62(図15)を参照し、仮想ストレージ装置VSTを構成する全ての物理ストレージ装置3のIDを取得する。
続いて、追加装置性能余力判定モジュール58は、取得した全ての物理ストレージ装置IDについて、物理ストレージ装置性能メトリック履歴テーブル70から、CPUビジー率及びキャッシュメモリ利用率を取得する。ここで取得するメトリック値は、最新の値のみであってもよいし、過去一定期間における値の平均値であってもよい。
次いで、追加装置性能余力判定モジュール58は、前記の取得したメトリック値が、追加装置設定値管理テーブル63(図16)に格納された設定値を上回っているか否かを判定する。前記判定で、肯定結果を得た場合、当該物理ストレージ装置3は、以後の処理において追加した物理ストレージ装置として扱わないよう追加装置設定値管理テーブル63の内容を書き換える。
(2−3−3−6−3)アクセスパス切替え先装置選択処理
フロントエンド負荷分散処理(図30)のステップSP64において呼び出されるアクセスパス切替え先装置選択モジュール59により実行されるアクセスパス切替え先装置選択処理について説明する。本モジュール59は、アクセスパスが接続された物理ストレージ装置以外の物理ストレージ装置の中から、最適なアクセスパス切り替え先となる物理ストレージ装置を選択する。
まず、アクセスパス切替え先装置選択モジュール59は、アクセスパスの切替え先となり得る物理ストレージ装置3の一覧として、仮想ストレージ装置構成管理テーブル62を参照し、当該アクセスパスの代替パスが接続されている物理ストレージ装置3の一覧を取得する。
次に、アクセスパス切替え先装置選択モジュール59は、取得した各物理ストレージ装置3について、物理ストレージ装置性能メトリック閾値定義テーブル69及び物理ストレージ装置性能メトリック履歴テーブル70を参照し、全ての性能メトリック値が性能メトリック閾値を下回っている物理ストレージ装置3のリストを作成する。
そして、アクセスパス切替え先装置選択モジュール59は、前記物理ストレージ装置リストの中から、現時点でアクセスパスが接続された物理ストレージ装置3と、装置間データ転送スループットが最良であるパスで接続された物理ストレージ装置3を決定する処理を実行する。この処理で決定された物理ストレージ装置3を、アクセスパス切り替え先の物理ストレージ装置3とする。
本実施の形態では、前記装置間データ転送スループットの指標として、装置間データ転送時間tを採用する。装置間データ転送時間tは、アクセスパスが接続された物理ストレージ装置3からアクセスパスの切替え先とする物理ストレージ装置3へ移動させる仮想ボリュームVVOLの論理ページ数をp、1論理ページ当たりのデータ量をv、単位時間当たりのデータ転送可能量をa、データ転送に利用可能なパス数をnとして、次式
で算出される。
移動する論理ページ数pは、性能低下した仮想ボリュームVVOLを構成する論理ページLPの中で、その時点で、当該仮想ボリュームVVOLのアクセスパスが接続された物理ストレージ装置3中に存在する物理ページPPの総数とする。これは、アクセスパスの切替え後、管理計算機4の階層型データ管理機能により、アクセスパスの切替え前にアクセスパスが接続されていた物理ストレージ装置3からアクセスパス切替え先とする物理ストレージ装置3へ、アクセス頻度が大きな論理ページLPのデータが移動するためである。
一方、データ転送可能量aとは、装置間データ転送量について、理論最大値から実測値を差し引いた値のことである。装置間データ転送量の理論最大値は装置間通信性能管理テーブル71を参照し、装置間データ転送量の実測値は装置間データ転送量履歴テーブル72を参照することで取得可能である。
(2−4)アクセスパス手動切替え機能
(2−4−1)アクセスパス手動切替え機能の概要
本実施の形態による管理計算機4には、上述のように性能低下を検知した仮想ボリュームVVOLから仮想ストレージ装置VSTへのアクセスパスを、現在のアクセスパスが接続された物理ストレージ装置3から他の物理ストレージ装置3に自動的に切り替えるアクセスパス自動切替え機能に加えて、システム管理者が手動によりアクセスパスを所望のパスに切り替え可能なアクセスパス手動切替え機能が搭載されている。
そしてストレージ管理プログラム50(図4)は、動作モードとして、上述のアクセスパス自動切替え機能に基づく動作モード(アクセスパス自動切替えモード)ではなく、アクセスパス手動切替え機能に基づく動作モード(アクセスパス手動切替えモード)が選択及び設定されている場合には、図28A及び図28Bについて上述した仮想ボリューム性能低下判定処理を仮想ボリューム性能低下判定モジュール53に実行させ、この後、アクセスパス切替え先ポート表示モジュール60を呼び出す。
アクセスパス切替え先ポート表示モジュール60は、ストレージ管理プログラム50により呼び出されると、仮想ボリューム性能低下判定モジュール53による仮想ボリューム性能低下判定処理(図28A及び図28B)の処理結果に基づいて、図31に示すような性能低下仮想ボリューム情報表示画面80を管理計算機4のモニタ(図示せず)に表示させる。
この性能低下仮想ボリューム情報表示画面80は、図31からも明らかなように、性能低下仮想ボリューム一覧81と、実行ボタン82とから構成される。そして性能低下仮想ボリューム一覧81内には、仮想ボリューム性能低下判定処理において性能が低下したと判定された仮想ボリューム(性能低下仮想ボリューム)VVOLの仮想ボリュームID、その性能低下仮想ボリュームVVOLの性能低下を検出した日時、その性能低下仮想ボリュームVVOLについて設定されたレスポンスタイム閾値及びレスポンスタイム閾値連続超過許容期間が表示される。
そして性能低下仮想ボリューム情報表示画面80では、性能低下仮想ボリューム一覧81に仮想ボリュームID等の情報が表示された性能低下仮想ボリュームVVOLの中からシステム管理者が所望する性能低下仮想ボリュームVVOLを、カーソル83により指定することができる。そしてシステム管理者は、かかるカーソル操作により所望する性能低下仮想ボリュームVVOLを指定した後、実行ボタン82をクリックすることにより、図32に示すようなアクセスパス切替え先表示画面90を管理計算機4のモニタに表示させることができる。
このアクセスパス切替え先表示画面90は、性能低下仮想ボリューム情報表示画面80の性能低下仮想ボリューム一覧81においてカーソル83により指定された性能低下仮想ボリューム(以下、これを指定性能低下仮想ボリュームと呼ぶ)VVOLについて、追加された物理ストレージ装置3に接続されたパスを新しいアクセスパスとして、システム管理者に提示する。
本アクセスパス切替え先表示画面90は、図32に示すように、使用中アプリケーション名91等の当該指定性能低下仮想ボリュームVVOLを使用するアプリケーションプログラム15(図2)に関連付けられた情報、性能要求レベル92、性能メトリックトレンドチャート93、性能改善情報欄94、装置間通信帯域使用率95、追加ストレージ装置容量消費率96、実行ボタン97及び閉じるボタン98から構成される。
ここで、本アクセスパス切替え先表示画面90には、運用中の物理ストレージ装置群の運用スケジュールとして、例えば、メンテナンス時期や繁忙期などを追加表示し、これらの時期における各性能メトリックのトレンドを確認できるようにしても構わない。
さらに、当該アクセスパス切り替えに伴う、他のアプリケーションプログラム15への影響をシステム管理者が知ることができるように、全てのアプリケーションプログラム15が利用する仮想ボリュームVVOLの容量消費量などを表示してもよい。
性能改善情報欄94には、かかる指定性能低下仮想ボリュームVVOLについて、現在利用中のアクセスパスの接続先に関する情報と、指定性能低下仮想ボリュームVVOL及び仮想ストレージ装置VST間を接続するパスのうちのアクセスパスに切り替えることにより指定性能低下仮想ボリュームVVOLの性能向上が見込まれるパスに関する情報とが表示される。
具体的に、性能改善情報欄94には、指定性能低下仮想ボリュームVVOL及び仮想ストレージ装置VST間を接続する現在使用中のアクセスパスが接続されたホスト計算機2側のSANポート12(図2)のポートID及び物理ストレージ装置3側のSANポート24A(図3)のポートIDと、アクセスパスとすることによって指定性能低下仮想ボリュームVVOLの性能向上が見込まれるパスが接続されたホスト計算機2側のSANポート12のポートID及び物理ストレージ装置3側のSANポート24AのポートIDとがそれぞれ表示される。
そしてアクセスパス切替え先表示画面90では、この後、実行ボタン92をクリックすることによって、指定性能低下仮想ボリュームVVOL及び仮想ストレージ装置VST間を接続するアクセスパスを、性能改善情報欄94に表示されたパスに切り替えることができる。
またアクセスパス切替え先表示画面90では、閉じるボタン98をクリックすることによって、指定性能低下仮想ボリュームVVOL及び仮想ストレージ装置VST間を接続するアクセスパスを、性能改善情報欄94に表示されたパスに切り替えることなく、このアクセスパス切替え先表示画面90を閉じさせることができる。
(2−4−2)アクセスパス手動切替えモード処理
動作モードとして、上述のアクセスパス手動切替えモードが選択及び設定されている場合、ストレージ管理プログラム50により定期的(例えば毎正時)に仮想ボリューム性能低下判定モジュール53(図4)を呼び出す。そして仮想ボリューム性能低下判定モジュール53は、ストレージ管理プログラム50により呼び出されると、仮想ストレージ装置VST内に作成された各仮想ボリュームVVOLの性能がそれぞれ低下しているか否かを判定する図28A及び図28Bについて上述した仮想ボリューム性能低下判定処理を実行する(SP150)。
続いて、ストレージ管理プログラム50は、アクセスパス切替え先ポート表示モジュール60(図4)を呼び出す。かくしてアクセス先ポート切替え先ポート表示モジュール61は、ストレージ管理プログラム50により呼び出されると、システム管理者の操作に応じて、図31及び図32について上述した性能低下仮想ボリューム情報表示画面80及びアクセスパス切替え先表示画面90を管理計算機4のモニタに順次表示するアクセスパス切替え先ポート表示処理を実行する。
図33は、上述のストレージ管理処理のステップSP151においてストレージ管理プログラム50により呼び出されたアクセスパス切替え先ポート表示モジュール60により実行されるアクセスパス切替え先ポート表示処理の具体的な処理内容を示す。
アクセスパス切替え先ポート表示モジュール60は、ストレージ管理プログラム50により呼び出されると、この図33に示すアクセスパス切替え先ポート表示処理を開始し、まず、性能低下仮想ボリューム管理テーブル64(図17)、性能低下仮想ボリューム検出日時管理テーブル65(図18)及び仮想ボリューム性能低下判定条件定義テーブル66(図19)を参照して、性能低下が発生している仮想ボリュームVVOLに関する必要な情報を収集し(SP70)、収集した情報に基づいて図31について上述した性能低下仮想ボリューム情報表示画面80を管理計算機4のモニタに表示させる(SP71)。
続いて、アクセスパス切替え先ポート表示モジュール60は、性能低下仮想ボリューム情報表示画面80の実行ボタン82がクリックされるのを待ち受け(SP72)、やがて当該実行ボタン82がクリックされると、性能低下仮想ボリューム情報表示画面80の性能低下仮想ボリューム一覧81において選択された指定性能低下仮想ボリュームVVOLの仮想ボリュームIDを取得する(SP73)。
次いで、アクセスパス切替え先ポート表示モジュール60は、指定性能低下仮想ボリュームVVOL及び仮想ストレージ装置VST間のアクセスパスが接続されているアクセスパスが接続された物理ストレージ装置3側のSANポート24AのポートIDと、ホスト計算機2側のSANポート12のポートIDとをパス管理テーブル68(図21)から取得する(SP74)。
この後、アクセスパス切替え先ポート表示モジュール60は、アクセスパス切替え先装置選択モジュール59(図4)に対して、ステップSP73において取得した仮想ボリュームIDを格納した上述のアクセスパス切替え先装置選択処理実行指示を与える(SP75)。
かくして、このアクセスパス切替え先装置選択処理実行指示を受け取ったアクセスパス切替え先装置選択モジュール59は、上述したアクセスパス切替え先装置選択処理を実行することにより、アクセスパスの切替え先とすべき物理ストレージ装置3を選択し、選択したアクセスパス切替え先とする物理ストレージ装置3の物理ストレージ装置IDをアクセスパス切替え先ポート表示モジュール60に返却する。
続いて、アクセスパス切替え先ポート表示モジュール60は、ステップSP75において取得したアクセスパスの切替え先とすべき物理ストレージ装置3の物理ストレージ装置IDを格納したアクセスパス切替え先ポート選択処理実行指示を、図示しないアクセスパス切替え先ポート選択モジュールに与える(SP76)。
かくして、このアクセスパス切替え先ポート選択処理実行指示を受け取ったアクセスパス切替え先ポート選択モジュールは、当該アクセスパス切替え先ポート選択処理実行指示に格納された物理ストレージ装置IDが付与された物理ストレージ装置3が有するSANポート24A(図3)の中から、データ転送量が最も少ないSANポート24Aを選択し、選択したSANポート24AのポートIDをアクセスパス切替え先ポート表示モジュール60に返却する。
さらにアクセスパス切替え先ポート表示モジュール60は、ステップSP76において取得した現在アクセスパスが接続されているアクセスパスが接続された物理ストレージ装置3側のSANポート24AのポートID、及び、当該アクセスパスが接続されているホスト計算機2側のSANポート12のポートIDと、ステップSP75において取得したアクセスパス切替え先とする物理ストレージ装置3の物理ストレージ装置ID、及び、ステップSP76において取得したポートIDとに基づいて、図32について上述したアクセスパス切替え先表示画面90を性能低下仮想ボリューム情報表示画面80に代えて管理計算機4のモニタに表示させる(SP77)。
この後、アクセスパス切替え先ポート表示モジュール60は、アクセスパス切替え先表示画面90の閉じるボタン98又は実行ボタン97がクリックされるのを待ち受ける(SP78,SP79)。
そしてアクセスパス切替え先ポート表示モジュール60は、アクセスパス切替え先表示画面90の閉じるボタン98がクリックされると(SP78:YES)、当該アクセスパス切替え先表示画面90を閉じさせ(SP80)、この後、このアクセスパス切替え先ポート表示処理を終了する。
これに対してアクセスパス切替え先ポート表示モジュール60は、アクセスパス切替え先表示画面90の実行ボタン97がクリックされると(SP79:YES)、図示しないアクセスパス切替えモジュールに対してアクセスパス切替え処理実行指示を与え(SP81)、この後、このアクセスパス切替え先ポート表示処理を終了する。
かくして、かかるアクセスパス切替え処理実行指示を受け取ったアクセスパス切替えモジュールは、アクセスパス切替え先表示画面90においてアクセスパスの切替え先として表示されたホスト計算機2側のポートIDが付与されたSANポート12と、物理ストレージ装置3側のポートIDが付与されたSANポート24Aとを接続するパスをアクセスパスに切り替えるアクセスパス切替え処理を実行する。
これにより性能低下仮想ボリューム情報表示画面80において指定された性能低下仮想ボリュームVVOL及び仮想ストレージ装置VST間を接続アクセスパスが、アクセスパス切替え先表示画面90においてアクセスパスの切替え先として表示されたホスト計算機2側のポートIDが付与されたSANポート12と、物理ストレージ装置3側のポートIDが付与されたSANポート24Aとを接続するパスに切り替えられることになる。
(3)本実施の形態の効果
以上のように本計算機システム1では、物理ストレージ装置3が追加された場合に、ホスト計算機2との間のアクセスパスをその物理ストレージ装置3に切り替えるため、既存の複数の物理ストレージ装置群のI/O負荷を追加された物理ストレージ装置3に短時間に分散することができる。かくするにつき、装置横断プールPLを構成する複数の物理ストレージ装置を早期に定常状態に移行させることができ、計算機システム1全体としての安定性と性能を向上させることができる。
(4)他の実施の形態
なお上述の実施の形態においては、図27について上述したストレージ管理処理を定期的に実行するようにした場合について述べたが、本発明はこれに限らず、かかるストレージ管理処理を不定期に実行するようにしても良い。
また上述の実施の形態においては、複数の物理ストレージ装置3に物理ストレージ装置3が追加された場合、追加された物理ストレージ装置3にアクセスパスを切り替えるようにホスト計算機2を制御する制御部と、仮想ボリュームVVOLの性能が低下しているか否かを判定する性能判定部と、性能判定部により性能が低下していると判定された仮想ボリュームVVOLについて、性能低下の原因を特定する原因特定部とを、いずれも管理計算機4のCPU40(図4)及びストレージ管理プログラム50(図4)により構成するようにした場合について述べたが、本発明はこれに限らず、これら制御部、性能判定部及び原因特定部をハードウェア構成としても良く、これら制御部、性能判定部及び原因特定部の構成としては、この他種々の構成を広く適用することができる。