以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の第1の実施の形態の計算機システムの構成を示すブロック図である。
本実施の形態の計算機システムは、業務クライアント100〜103、運用管理クライアント104、ホストサーバ110〜112、構成情報収集サーバ120〜121、運用管理サーバ122、ストレージサブシステム170〜173及びストレージエリアネットワーク(SAN)スイッチ130〜135を備える。上記の各装置は、ローカルエリアネットワーク(LAN)105によって相互に接続されている。
業務クライアント100〜103は、業務システムのユーザインターフェース機能を提供するパソコン、ワークステーション又はシンクライアント端末等の装置である。業務クライアント100〜103は、LAN105を経由して、ホストサーバ110〜112の業務アプリケーション113等と通信する。
ホストサーバ110〜112は、LAN105を経由して業務クライアント100〜103から受信した要求に応じて種々の処理を実行する計算機である。ホストサーバ110〜112のハードウェア構成については、後で図2Aを参照して説明する。
ホストサーバ110〜112は、少なくとも、業務アプリケーション113、オペレーティングシステム(OS)114、アプリケーション情報収集エージェント115及びホスト情報収集エージェント131等のソフトウェアを保持する。
業務アプリケーション113は、業務システムの業務論理機能を提供するソフトウェアである。具体的には、業務アプリケーション113は、業務クライアント100〜103からの処理要求に応答し、必要に応じてデータの参照又は更新を要求する。ホストサーバ110〜112は、複数の業務アプリケーション113を保持してもよい。
業務アプリケーション113からストレージサブシステム170へのデータアクセスは、OS114、ホストバスアダプタ(HBA)205(図2A参照)のポート136〜138、SANスイッチ130〜132のホスト側ポート139〜142、SANスイッチ130〜132のストレージ側ポート143〜145、及び、ストレージサブシステム170のポート153〜155を経由して実行される。
運用管理クライアント104、構成情報収集サーバ120〜121、運用管理サーバ122及び階層管理サーバ123は、計算機システムの運用を管理するために設けられる計算機である。構成情報収集サーバ120〜121、運用管理サーバ122及び階層管理サーバ123のハードウェア構成については、後で図2Bから図2Eを参照して説明する。
構成情報収集サーバ120が保持するSANスイッチ情報収集エージェント124、構成情報収集サーバ121が保持するサブシステム情報収集エージェント125、運用管理サーバ122が保持するマイグレーション実行制御プログラム126、階層管理サーバ123が保持する階層管理プログラム127、ホストサーバ110〜112が保持するアプリケーション情報収集エージェント115及びホスト情報収集エージェント116は、計算機システムの運用を管理するためのソフトウェアである。
運用管理クライアント104は、マイグレーション実行制御プログラム126のユーザインターフェース機能を提供する装置である。運用管理クライアント104は、LAN105を経由して、運用管理サーバ122が実行するマイグレーション実行制御プログラム126と通信する。
アプリケーション情報収集エージェント115は、業務アプリケーション113に関する情報を取得するためのソフトウェアである。具体的には、アプリケーション情報収集エージェント115は、業務アプリケーション113とファイル(後述)とボリューム(後述)との間の割り当ての関係を示す情報を取得する。そして、アプリケーション情報収集エージェント115は、取得した情報を、要求に応じてマイグレーション実行制御プログラム126に送信する。業務アプリケーションとファイルとボリュームとの間の割り当てについては、後で図4を参照して詳細に説明する。さらに、アプリケーション情報収集エージェント115は、業務アプリケーションの性能を示す情報を取得する。
ホスト情報収集エージェント116は、ホストサーバ110〜112、OS114及びポート136〜138に関する情報を取得するためのソフトウェアである。具体的には、ホスト情報収集エージェント116は、ボリュームとポート136〜138との間の割り当ての関係を示す情報を取得する。そして、ホスト情報収集エージェント116は、取得した情報を、要求に応じてマイグレーション実行制御プログラム126に送信する。ボリュームとポート136〜138との間の割り当てについては、後で図4を参照して詳細に説明する。
SANスイッチ情報収集エージェント124は、LAN105を経由して、SANスイッチ130〜135、及び、SANスイッチ130〜135が備えるポート139〜152に関する情報を取得するためのソフトウェアである。具体的には、SANスイッチ情報収集エージェント124は、ホストサーバ110〜112とストレージサブシステム170〜173との間でやり取りされるデータが経由するポート139〜152を示す情報を取得する。そして、SANスイッチ情報収集エージェント124は、取得した情報を、要求に応じてマイグレーション実行制御プログラム126に送信する。ホストサーバ110〜112とストレージサブシステム170〜173との間のデータ経路については、後で図4を参照して詳細に説明する。
サブシステム情報収集エージェント125は、ポート163〜164及びSANスイッチ130〜135を経由して、ストレージサブシステム170〜173、及び、ストレージサブシステム170〜173が備えるポート153〜162に関する情報を取得する。具体的には、サブシステム情報収集エージェント125は、ポート153〜162と、プロセッサ(後述)と、RAIDグループ(後述)と、論理ボリューム(LDEV)(後述)との間の割り当ての関係を示す情報を取得する。そして、サブシステム情報収集エージェント125は、取得した情報を、要求に応じてマイグレーション実行制御プログラム126に送信する。ポート153〜162と、プロセッサと、RAIDグループと、LDEVとの間の割り当てについては、後で図4を参照して詳細に説明する。
マイグレーション実行制御プログラム126は、計算機システムにおけるマイグレーションの実行を制御するソフトウェアである。マイグレーションとは、論理ボリュームに格納されたデータを別の論理ボリュームに移動させる処理である。マイグレーション実行制御プログラム126は、マイグレーションの実行を制御するために、アプリケーション情報収集エージェント115、ホスト情報収集エージェント116、SANスイッチ情報収集エージェント124及びサブシステム情報収集エージェント125から取得した情報を参照する。マイグレーション実行制御プログラム126の詳細な構成については、後で図3A及び図3Bを参照して詳細に説明する。
階層管理プログラム127は、ストレージサブシステム170〜173の階層(ティア)を管理するソフトウェアである。ストレージサブシステム170〜173の階層について、及び、階層管理プログラム127が実行する処理については、後で詳細に説明する。
図1には、例として、SANスイッチ情報収集エージェント124、サブシステム情報収集エージェント125、マイグレーション実行制御プログラム126及び階層管理プログラム127がそれぞれ物理的に独立した計算機によって実行される場合を示す。しかし、これらのエージェント及びプログラムは、単一の計算機によって実行されてもよい。あるいは、これらのエージェント及びプログラムは、ホストサーバ110〜112によって実行されてもよい。
ストレージサブシステム170〜173は、ホストサーバ110〜112にデータ記憶領域を提供するデータ記憶装置である。図1の例では、ストレージサブシステム170は、データの書き込み対象となる論理ボリューム(LDEV)174〜176を含む。さらに、ストレージサブシステム170は、マイグレーション実行プログラム180を保持する。ストレージサブシステム171は、LDEV177を含む。ストレージサブシステム172は、LDEV178を含む。ストレージサブシステム173は、LDEV179を含む。
本実施の形態のストレージサブシステム171〜173は、ストレージサブシステム170に外部接続されている。ここで、ストレージサブシステムの外部接続について説明する。
最初に、ストレージサブシステム170にストレージサブシステム171〜173が外部接続されていない場合について説明する。
ホストサーバ110〜112は、ストレージサブシステム170のLDEV174〜176を対象とするデータ書き込み要求を発行する。LDEV174〜176には、それぞれ、ストレージサブシステム170内の物理的なデータ記憶領域が割り当てられている。ストレージサブシステム170内の物理的なデータ記憶領域とは、例えば、ストレージサブシステム170が備える物理ディスク(後述)内の記憶領域である。
この場合、LDEV174〜176に書き込まれるデータは、実際には、LDEV174〜176に割り当てられたストレージサブシステム170内の物理的なデータ記憶領域に格納される。LDEV174〜176を対象とするデータ読み出し要求が発行された場合も、同様に、LDEV174〜176に割り当てられたストレージサブシステム170内の物理的なデータ記憶領域からデータが読み出される。
次に、ストレージサブシステム170にストレージサブシステム171〜173が外部接続されている場合について説明する。
ここでは例として、ストレージサブシステム170のLDEV174〜176に、それぞれストレージサブシステム171〜173のLDEV177〜179が割り当てられている場合について説明する。この場合、LDEV174〜176には、ストレージサブシステム170内の物理的なデータ記憶領域が割り当てられない。
この場合、ストレージサブシステム170は、LDEV174を対象とするデータ書き込み要求を受けると、その要求の対象のデータをLDEV177に書き込むためのデータ書き込み要求をストレージサブシステム171に対して送信する。ストレージサブシステム171は、書き込み要求の対象のデータを、LDEV177に割り当てられたストレージサブシステム171内の物理的なデータ記憶領域に格納する。
同様にして、LDEV175及び176を対象とするデータ書き込み要求を受けたストレージサブシステム170は、それらの要求の対象のデータをLDEV178及び179に書き込むためのデータ書き込み要求をストレージサブシステム172及び173に対して送信する。
一方、ストレージサブシステム170は、LDEV174を対象とするデータ読み出し要求を受けると、その要求の対象のデータをLDEV177から読み出すためのデータ読み出し要求をストレージサブシステム171に対して送信する。ストレージサブシステム171は、読み出し要求の対象のデータを、LDEV177に割り当てられたストレージサブシステム171内の物理的なデータ記憶領域から読み出して、そのデータをストレージサブシステム170に送信する。ストレージサブシステム170は、ストレージサブシステム171から送信されたデータを、読み出し要求の発行元に送信する。
同様にして、LDEV175及び176を対象とするデータ読み出し要求を受けたストレージサブシステム170は、それらの要求の対象のデータをLDEV178及び179から読み出すためのデータ読み出し要求をストレージサブシステム172及び173に対して送信する。
ストレージサブシステム170は、ストレージエリアネットワーク(SAN)を介してホストサーバ110〜112に接続される。一方、ストレージサブシステム171〜173は、SANを介してストレージサブシステム170に外部接続される。図1の例では、複数のSANスイッチ130〜135が一つ以上のSANを構成する。
図1の例では、ストレージサブシステム170は三つのLDEV174〜176を含むが、ストレージサブシステム170はさらに多くのLDEVを含んでもよい。それらのLDEVのうち少なくとも一つには、ストレージサブシステム170内の物理的なデータ記憶領域が割り当てられてもよい。
ストレージサブシステム170〜173のハードウェア構成については、後で図2Fを参照して説明する。
次に、図1に示す計算機システムを構成する各装置のハードウェア構成について、図2A〜図2Fを参照して説明する。
図2Aは、本発明の第1の実施の形態のホストサーバ110のハードウェア構成を示すブロック図である。
ホストサーバ111及び112のハードウェア構成は、ホストサーバ110と同様であるため、説明を省略する。
本実施の形態のホストサーバ110は、相互に接続されたI/F201、プロセッサ202、メモリ203、ディスクドライブ204及びホストバスアダプタ(HBA)205を備える。
プロセッサ202は、メモリ203に格納されたソフトウェアを実行する。
メモリ203は、例えば半導体メモリであり、プロセッサ202によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ204は、例えばハードディスクドライブ(HDD)であり、プロセッサ202によって実行されるソフトウェア及びその他のデータを格納する。図2Aの例では、ディスクドライブ204には、業務アプリケーション113、OS114、アプリケーション情報収集エージェント115及びホスト情報収集エージェント116が格納される。これらのソフトウェアは、必要に応じてメモリ203に複写され、プロセッサ202によって実行される。
なお、ディスクドライブ204は、例えば光ディスクドライブ等、HDD以外のいかなる種類のディスクドライブであってもよい。あるいは、ディスクドライブ204は、例えばフラッシュメモリのような半導体メモリによって置き換えられてもよい。
I/F201は、LAN105に接続されるインターフェースである。I/F201は、LAN105に接続された他の計算機等と通信する。
HBA206は、SANスイッチ130〜132の少なくとも一つと接続されるインターフェースである。HBA206は、SANスイッチ130〜132と接続される一つ以上のポート136を備える。HBA206は、SANスイッチ130〜132を介して、ストレージサブシステム170に書き込まれるデータ、又は、ストレージサブシステム170から読み出されたデータを通信する。HBA206は、例えばファイバーチャネル(FC)プロトコルによる通信を実行するが、その他のいかなるプロトコルが適用されてもよい。
図2Bは、本発明の第1の実施の形態の構成情報収集サーバ120のハードウェア構成を示すブロック図である。
本実施の形態の構成情報収集サーバ120は、相互に接続されたI/F211、プロセッサ212、メモリ213及びディスクドライブ214を備える。
プロセッサ212は、メモリ213に格納されたソフトウェアを実行する。
メモリ213は、例えば半導体メモリであり、プロセッサ212によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ214は、例えばHDDであり、プロセッサ212によって実行されるソフトウェア及びその他のデータを格納する。図2Bの例では、ディスクドライブ214には、SANスイッチ情報収集エージェント124が格納される。SANスイッチ情報収集エージェント124は、必要に応じてメモリ213に複写され、プロセッサ212によって実行される。ディスクドライブ214は、ディスクドライブ204と同様、いかなる種類のディスクドライブ又は半導体メモリであってもよい。
I/F211は、LAN105に接続されるインターフェースである。I/F211は、LAN105に接続された他の計算機等と通信する。
図2Cは、本発明の第1の実施の形態の構成情報収集サーバ121のハードウェア構成を示すブロック図である。
本実施の形態の構成情報収集サーバ121は、相互に接続されたI/F221、プロセッサ222、メモリ223、ディスクドライブ224及びHBA225を備える。
プロセッサ222は、メモリ223に格納されたソフトウェアを実行する。
メモリ223は、例えば半導体メモリであり、プロセッサ222によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ224は、例えばHDDであり、プロセッサ222によって実行されるソフトウェア及びその他のデータを格納する。図2Cの例では、ディスクドライブ224には、サブシステム情報収集エージェント125が格納される。サブシステム情報収集エージェント125は、必要に応じてメモリ223に複写され、プロセッサ222によって実行される。ディスクドライブ224は、ディスクドライブ204と同様、いかなる種類のディスクドライブ又は半導体メモリであってもよい。
I/F221は、LAN105に接続されるインターフェースである。I/F221は、LAN105に接続された他の計算機等と通信する。
HBA225は、SANスイッチ130〜135の少なくとも一つと接続されるインターフェースである。HBA225は、SANスイッチ130〜135と接続される一つ以上のポート163〜164を備える。HBA225は、SANスイッチ130〜135を介してストレージサブシステム170〜173と通信することによって、ストレージサブシステム170〜173に関する性能情報を取得する。HBA225は、例えばファイバーチャネル(FC)プロトコルを使用するが、その他のいかなるプロトコルを使用してもよい。
図2Dは、本発明の第1の実施の形態の運用管理サーバ122のハードウェア構成を示すブロック図である。
本実施の形態の運用管理サーバ122は、相互に接続されたI/F231、プロセッサ232、メモリ233及びディスクドライブ234を備える。
プロセッサ232は、メモリ233に格納されたソフトウェアを実行する。
メモリ233は、例えば半導体メモリであり、プロセッサ232によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ234は、例えばHDDであり、プロセッサ232によって実行されるソフトウェア及びその他のデータを格納する。図2Dの例では、ディスクドライブ234には、マイグレーション実行制御プログラム126が格納される。マイグレーション実行制御プログラム126は、必要に応じてメモリ233に複写され、プロセッサ232によって実行される。ディスクドライブ234は、ディスクドライブ204と同様、いかなる種類のディスクドライブ又は半導体メモリであってもよい。
I/F231は、LAN105に接続されるインターフェースである。I/F231は、LAN105に接続された他の計算機等と通信する。
図2Eは、本発明の第1の実施の形態の階層管理サーバ123のハードウェア構成を示すブロック図である。
本実施の形態の階層管理サーバ123は、相互に接続されたI/F241、プロセッサ242、メモリ243及びディスクドライブ244を備える。
プロセッサ242は、メモリ243に格納されたソフトウェアを実行する。
メモリ243は、例えば半導体メモリであり、プロセッサ242によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ244は、例えばHDDであり、プロセッサ242によって実行されるソフトウェア及びその他のデータを格納する。図2Eの例では、ディスクドライブ244には、階層管理プログラム127が格納される。階層管理プログラム127は、必要に応じてメモリ243に複写され、プロセッサ242によって実行される。ディスクドライブ244は、ディスクドライブ204と同様、いかなる種類のディスクドライブ又は半導体メモリであってもよい。
I/F241は、LAN105に接続されるインターフェースである。I/F241は、LAN105に接続された他の計算機等と通信する。
図2Fは、本発明の第1の実施の形態のストレージサブシステム170〜173のハードウェア構成を示すブロック図である。
本実施の形態のストレージサブシステム170〜173は、相互に接続されたプロセッサ251、メモリ252、ディスクドライブ253、物理ディスク254〜256及びポート257〜258を備える。
プロセッサ251は、メモリ252に格納されたソフトウェアを実行する。図2Fには一つのプロセッサ251のみを示すが、ストレージサブシステム170〜173は、複数のプロセッサ251を備えてもよい。
メモリ252は、例えば半導体メモリであり、プロセッサ251によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ253は、例えばHDDであり、プロセッサ251によって実行されるソフトウェア及びその他のデータを格納する。図2Fの例では、ディスクドライブ253には、マイグレーション実行プログラム180が格納される。マイグレーション実行プログラム180は、必要に応じてメモリ252に複写され、プロセッサ251によって実行される。ディスクドライブ253は、ディスクドライブ204と同様、いかなる種類のディスクドライブ又は半導体メモリであってもよい。
マイグレーション実行プログラム180は、ストレージサブシステム170〜173の管理プログラムの一種である。具体的には、マイグレーション実行プログラム180は、いずれかのLDEV174〜179に格納されたデータを別のLDEV174〜179にマイグレーションするために実行される。
本実施の形態では、例えば、ストレージサブシステム170のプロセッサ251がマイグレーション実行プログラム180を実行することによって、LDEV174〜176の一つに格納されたデータを、それらの別の一つにマイグレーションする。外部接続によってLDEV174〜176にLDEV177〜179が割り当てられている場合、上記のマイグレーションによって、ストレージサブシステム171〜173のLDEV177〜179の一つに格納されたデータが別の一つにマイグレーションされる。このように、ストレージサブシステム170にストレージサブシステム171〜173が外部接続されている場合、ストレージサブシステム171〜173のディスクドライブ253には、マイグレーション実行プログラム180が格納されなくてもよい。
物理ディスク254〜256は、例えばHDDであり、ホストサーバ110〜112の業務アプリケーション113が使用するデータを格納する。物理ディスク254〜256内の物理的なデータ記憶領域は、LDEV174〜179に割り当てられる。ストレージサブシステム170〜173は、複数の物理ディスク254〜256を備えてもよい。複数の物理ディスク254〜256がRedundant Arrays of Inexpensive Disks(RAID)を構成してもよい。
なお、図1において説明したように、LDEV174〜179には、物理的なデータ記憶領域が直接割り当てられる代わりに、他のLDEV174〜179が割り当てられる場合がある。その場合、LDEV174〜179には、他のLDEV174〜179を介して間接的に物理的なデータ記憶領域が割り当てられる。その結果、図1において説明したように、一つのストレージサブシステム170〜173内のLDEVに、別のストレージサブシステム170〜173内の物理的なデータ記憶領域が割り当てられる場合がある。ストレージサブシステム170〜173内のいずれのLDEVにも、そのストレージサブシステム170〜173内の物理的なデータ記憶領域が割り当てられない場合、そのストレージサブシステム170〜173は物理ディスク254〜256を備えなくてもよい。例えば、ストレージサブシステム170が三つのLDEV174〜176のみを備え、LDEV174〜176にそれぞれLDEV177〜179が割り当てられる場合、ストレージサブシステム170は、物理ディスク254〜256を備えなくてもよい。
各ポート257〜258は、SANスイッチ130〜135のいずれかに接続される。ストレージサブシステム170〜173は、任意の数のポート257〜258を備えることができる。ストレージサブシステム170〜173は、ポート257〜258を介してホストサーバ110〜112又は他のストレージサブシステム170〜173と通信する。ストレージサブシステム170〜173が複数のプロセッサ251を備える場合、各ポート257〜258は少なくとも一つのプロセッサ251に割り当てられる。各プロセッサ251は、割り当てられたポート257〜258を制御して、ホストサーバ110〜112等との通信を実行する。
図2Gは、本発明の第1の実施の形態の運用管理クライアント104のハードウェア構成を示すブロック図である。
本実施の形態の運用管理クライアント104は、相互に接続されたI/F261、プロセッサ262、メモリ263、ディスクドライブ264、入力装置266及び表示装置267を備える。
プロセッサ262は、メモリ263に格納されたソフトウェアを実行する。
メモリ263は、例えば半導体メモリであり、プロセッサ262によって実行されるソフトウェア及びその他のデータを格納する。
ディスクドライブ264は、例えばHDDであり、プロセッサ262によって実行されるソフトウェア及びその他のデータを格納する。図2Gの例では、ディスクドライブ264には、管理クライアントプログラム265が格納される。管理クライアントプログラム265は、必要に応じてメモリ263に複写され、プロセッサ262によって実行される。ディスクドライブ264は、ディスクドライブ204と同様、いかなる種類のディスクドライブ又は半導体メモリであってもよい。
I/F261は、LAN105に接続されるインターフェースである。I/F261は、LAN105に接続された他の計算機等(特に、運用管理サーバ122)と通信する。
入力装置266は、例えばキーボード及びポインティングデバイス等である。ユーザは、入力装置266を操作することによって、種々の情報を運用管理クライアント104に入力することができる。
表示装置267は、例えば、CRT又は液晶表示装置等の画像表示装置である。表示装置267は、文字又は図形を表示することによって、ユーザに種々の情報を提供することができる。
管理クライアントプログラム265は、マイグレーション実行制御プログラム126に対する設定を実行するためのプログラムである。管理クライアントプログラム265を実行するプロセッサ262は、例えば、ユーザが入力装置266を操作することによって入力した情報を、I/F261を介して運用管理サーバ122に送信することができる。運用管理サーバ122のマイグレーション実行制御プログラム126は、運用管理クライアント104から受信した情報を、後述するテーブルに設定することができる。
さらに、管理クライアントプログラム265を実行するプロセッサ262は、運用管理サーバ122から受信した情報を表示装置267に表示することができる。例えば、表示装置267には、マイグレーション実行制御プログラム126から表示を要求された情報が表示される。
次に、図3A及び図3Bを参照して、本実施の形態の計算機システムの機能について説明する。図3A及び図3Bのうち、既に図1から図2Fにおいて説明した部分の説明は省略する。
図3Aは、本発明の第1の実施の形態の計算機システムの機能ブロック図である。
図3Bは、本発明の第1の実施の形態の計算機システムに含まれるマイグレーション実行制御プログラム126の機能ブロック図である。
外部接続されたストレージサブシステム171〜173の記憶領域は、階層(ティア)によって分類される。ティアは、例えば、ストレージサブシステム171〜173の性能等によって定められてもよい。一般に、高い性能を求められる業務アプリケーション113は高ティアの記憶領域を使用し、高い性能を求められない業務アプリケーション113は低ティアの記憶領域を使用する。例えば、アクセス頻度の高いデータ及び高速にアクセスする必要があるデータが高ティアの記憶領域に格納され、それ以外のデータ(例えば、バックアップデータ)が低ティアの記憶領域に格納されてもよい。
計算機システム内の任意の記憶領域がティアによって分類され得る。例えば、各ストレージサブシステム170〜173がティアによって分類されてもよいし、各LDEV174〜179がティアによって分類されてもよい。各ストレージサブシステム170〜173がティアによって分類される場合、一つのストレージサブシステム170〜173に属する全ての各LDEV174〜179に同一のティアが設定される。
第1の実施の形態では、図3Aに示すように、ストレージサブシステム171が高ティア、ストレージサブシステム172〜173が低ティアに分類される。この場合、ストレージサブシステム171に属する全てのLDEV177が高ティアに分類され、ストレージサブシステム172〜173に属する全てのLDEV178〜179が低ティアに分類される。この場合、例えば、ストレージサブシステム171は高性能なストレージサブシステムであり、ストレージサブシステム172〜173は、性能は高くないが安価なストレージサブシステムであってもよい。
一方、各LDEV174〜179がティアによって分類される場合、一つのストレージサブシステム170〜173の中に高ティアのLDEV174〜179と低ティアのLDEV174〜179とが混在する場合がある。その場合、高ティアのLDEV174〜179には、高性能な物理ディスク254〜256が割り当てられ、低ティアのLDEV174〜179には、高性能ではないが安価な物理ディスク254〜256が割り当てられてもよい(第2の実施の形態参照)。
運用管理サーバ122が保持するマイグレーション実行制御プログラム126は、アプリケーション性能データ収集部301、アプリケーション構成データ収集部302、データベース(DB)303、ティア優先度取得部311、性能分析部312、性能劣化一時テーブル313、性能回復一時テーブル314、マイグレーション制御部315、ストレージリソース関連情報収集部316及びマイグレーション情報収集部317を含む。
アプリケーション性能データ収集部301、アプリケーション構成データ収集部302、ティア優先度取得部311、性能分析部312、マイグレーション制御部315、ストレージリソース関連情報収集部316及びマイグレーション情報収集部317は、マイグレーション実行制御プログラム126の一部を構成するサブプログラムである。
DB303、性能劣化一時テーブル313及び性能回復一時テーブル314は、運用管理サーバ122のメモリ233又はディスクドライブ234内の記憶領域の一部に相当する。
DB303には、アプリケーションの優先度情報304、アプリケーションの性能目標値情報305、アプリケーションの性能情報306、アプリケーションのI/Oパス情報307、ティア優先度情報308、jobとマイグレーションパスの関係情報309及びストレージネットワークの構成情報310が格納される。
運用管理クライアント104は、ユーザによって入力された情報をアプリケーションの優先度情報304及びアプリケーションの性能目標値情報305としてDB303に格納する(図8及び図10参照)。
アプリケーション性能データ収集部301は、アプリケーション情報収集エージェント115から取得した情報をアプリケーションの性能情報306としてDB303に格納する(図6及び図24参照)。
アプリケーション構成データ収集部302は、アプリケーション情報収集エージェント115から取得した情報をアプリケーションのI/Oパス情報307としてDB303に格納する(図5及び図23参照)。
ティア優先度取得部311は、階層管理プログラム127から取得した情報をティア優先度情報308としてDB303に格納する(図9及び図22参照)。
マイグレーション情報収集部317は、マイグレーション実行プログラム180から取得した情報をjobとマイグレーションパスの関係情報309としてDB303に格納する(図7及び図20参照)。
ストレージリソース関連情報収集部316は、アプリケーション情報収集エージェント115、ホスト情報収集エージェント116、SANスイッチ情報収集エージェント124及びサブシステム情報収集エージェント125から取得した情報をストレージネットワークの構成情報310としてDB303に格納する(図11〜図17及び図21参照)。SANスイッチ情報収集エージェント124は、ストレージリソース関連情報収集部316に送信する情報を、SANスイッチ130〜135から取得する。サブシステム情報収集エージェント125は、ストレージリソース関連情報収集部316に送信する情報を、ストレージサブシステム170〜173から取得する。
性能分析部312は、DB303から取得した情報に基づいて、性能劣化一時テーブル313及び性能回復一時テーブル314を作成する(図18、図19及び図25参照)。
マイグレーション制御部315は、性能劣化一時テーブル313及び性能回復一時テーブル314に基づいて、マイグレーション実行プログラム180によるマイグレーションの実行を制御する(図26〜図33参照)。
ここで、図3A及び図3Bを参照して、第1の実施の形態の概要を説明する。
業務アプリケーション113は、OS114を介して、ストレージサブシステム170のLDEV174〜176を対象とするデータI/Oを実行する。
一方、マイグレーション実行プログラム180は、必要に応じて、LDEV177〜179の一つに格納されたデータを、別の一つにマイグレーションする。マイグレーションは、業務アプリケーション113によるデータI/Oの負荷が計算機システム内のいずれかのリソースに集中したときに、集中した負荷を分散することによって性能を改善させるために実行されてもよい。あるいは、マイグレーションは、ストレージサブシステム171〜173に格納されたデータを管理するために実行されてもよい。
例えば、比較的重要なデータ(例えば、アクセス頻度の高いデータ又は高速にアクセスする必要があるデータ)は、高ティアのストレージサブシステム171内のLDEV177に格納され、比較的重要でないデータは、低ティアのストレージサブシステム172〜173内のLDEV178〜179に格納されてもよい。しかし、LDEV177に格納されたデータの重要性が時間経過とともに低下する場合がある。その場合、マイグレーション実行プログラム180は、LDEV177に格納されたデータをLDEV178〜179にマイグレーションすることができる。低ティアのストレージサブシステム172〜173が高ティアのストレージサブシステム171より安価な装置である場合、このようなマイグレーションによってデータ保管コストを削減することができる。
マイグレーション実行プログラム180は、マイグレーションジョブを投入されると、複数のコピージョブを作成し、それらのコピージョブを実行する。例えば、LDEV177に格納されたデータをLDEV178にマイグレーションするためのマイグレーションジョブが投入された場合、LDEV177に格納されたデータをLDEV178にコピーする複数のコピージョブが作成される。各コピージョブは、LDEV177に格納されたデータの一部をLDEV178にコピーする。すなわち、各コピージョブによって、LDEVに対するデータI/Oが発生する。
マイグレーション実行プログラム180を実行するプロセッサ251は、複数のコピージョブを並列に実行することができる。並列に実行されるコピージョブの数が多いほど、マイグレーションの実行は高速になるが、そのかわり、マイグレーションジョブによるデータI/Oがリソースに与える負荷が高くなる。
あるリソースが、業務アプリケーション113によるデータI/Oと、コピージョブによるデータI/Oの両方に使用される場合、そのリソースにデータI/Oの負荷が集中することによってボトルネックが発生し、その結果、業務アプリケーション113の性能が低下する場合がある。この場合、並列コピージョブ数を制限すれば、マイグレーションによる負荷が緩和されるため、業務アプリケーション113の性能の回復が期待される。しかし、並列コピージョブ数を制限すれば、マイグレーションが終了するまでにより多くの時間を要することとなる。このため、業務アプリケーション113の性能を回復させることと、マイグレーションを早く終了させることのどちらを優先させるかを判断する必要がある。
本発明の第1の実施の形態のマイグレーション実行制御プログラム126は、業務アプリケーション113によるデータI/Oの負荷と、コピージョブによるデータI/Oの負荷とが集中することによって業務アプリケーション113の性能が低下した場合、負荷の集中が発生しているリソースを特定する。そして、マイグレーション実行制御プログラム126は、業務アプリケーションに設定された優先度情報と、データ記憶領域のティアの情報とに基づいて、マイグレーションの実行を制限するか否か(すなわち、並列コピージョブ数を制限するか否か)を判定する。以下、そのための処理について詳細に説明する。
図4は、本発明の第1の実施の形態の計算機システムにおけるリソースの関係を示す説明図である。
ここで、リソースとは、計算機システムの物理的又は論理的な構成要素を指す。例えば、ストレージサブシステム170〜173のプロセッサ251は物理的なリソースであり、ストレージサブシステム170〜173のLDEV174〜179は論理的なリソースである。
図4には、本実施の形態の計算機システムのリソースのうち、ホストサーバ110〜112によるストレージサブシステム170〜173に対するデータI/Oのために使用されるリソースを示す。データI/Oのために使用されるリソースとは、言い換えると、データI/Oを実行することによる負荷がかかるリソースである。
図4の例において、計算機システムを構成するハードウェアは、ホストサーバA401、ホストサーバB402、SANスイッチA421、SANスイッチB422、SANスイッチC423、SANスイッチD424、SANスイッチE425、SANスイッチF426、ストレージサブシステムA449、ストレージサブシステムB450及びストレージサブシステムC451を含む。図4の例において、リソースの名前の後に付与されたアルファベット(例えば、「ホストサーバA401」の「A」)は、リソースの識別子である。
なお、図4に示すリソースの数は、図1から図3Bに示すリソースの数と必ずしも一致しない。これは、それぞれの図において、説明のために必要でない部分が省略されているためである。
ホストサーバA401及びホストサーバB402は、それぞれ、図1のホストサーバ110〜112のいずれかに相当する。ホストサーバA401では、業務アプリケーションA403、業務アプリケーションB404及び業務アプリケーションC405が稼動している。ホストサーバB402では、業務アプリケーションD406が稼動している。これらの業務アプリケーションは、図1の業務アプリケーション113に相当する。業務アプリケーションA403から業務アプリケーションD406は、データI/Oのために使用されるリソースである。
ファイルA407〜ファイルJ416は、OS114がデータの入出力サービスを提供する単位である。図4の例では、ファイルA407〜ファイルC409は、業務アプリケーションA403に割り当てられている。ファイルD410〜ファイルE411は、業務アプリケーションB404に割り当てられている。ファイルF412〜ファイルG413は、業務アプリケーションC405に割り当てられている。ファイルH414〜ファイルJ416は、業務アプリケーションD406に割り当てられている。各ファイルA407〜J416には、それぞれが割り当てられた業務アプリケーションによって読み書きされるデータが格納される。
ボリュームA417〜ボリュームD420は、ファイルA407〜ファイルJ416を外部記憶装置(例えば、ストレージサブシステム170)に格納するための領域としてOS114によって管理される。
上記のように、ファイルA407〜ファイルJ416、ボリュームA417〜ボリュームD420及びポートA427〜ポートB428は、データI/Oのために使用されるリソースである。
図4の例では、ファイルA407〜ファイルC409は、ボリュームA417に格納される。ファイルD410〜ファイルE411は、ボリュームB418に格納される。ファイルF412〜ファイルG413は、ボリュームC419に格納される。ファイルH414〜ファイルJ416は、ボリュームD420に格納される。
SANスイッチA421〜F426は、図1のSANスイッチ130〜135に相当する。SANスイッチA421〜F426は、ホストサーバA401〜B402、ストレージサブシステムA449〜C451又は他のSANスイッチA421〜F426と接続されるポートC429〜R444を備える。SANスイッチA421〜F426及びポートC429〜R444も、データI/Oのために使用されるリソースである。ポートC429〜R444は、図1のポート139〜152に相当する。
ストレージサブシステムA449〜C451は、図1のストレージサブシステム170〜173に相当する。ストレージサブシステムA449〜C451は、データI/Oのために使用されるリソースとして、ポートS445〜V448、プロセッサA452〜F457、RAIDグループA458〜J467及びLDEV_A468〜P483を含む。
プロセッサA452〜F457は、図2Fに示すストレージサブシステム170〜173のプロセッサ251に相当する。
各RAIDグループA458〜J467は、ストレージサブシステムA449〜C451の機能によって複数の物理ディスク254〜256から生成された、論理的に一つの高性能かつ高信頼のディスクドライブである。
LDEV_A468〜P483は、ストレージサブシステムA449〜C451の機能がRAIDグループA458〜J467を分割することによって生成された論理的なディスクドライブである。LDEV_A468〜P483は、図1のLDEV174〜179に相当する。ストレージサブシステムA449〜C451は、ホストサーバA401〜B402の用途に適したサイズのLDEV_A468〜P483を生成することができる。
ホストサーバA401〜B402のボリュームA417〜D420は、それぞれ、LDEV_A468〜P483のいずれかに割り当てられる。LDEV_A468〜P483は、それぞれ、RAIDグループA458〜J467のいずれかに割り当てられる。ストレージサブシステムA449〜C451の機能は、プロセッサA452〜F457によって実現される。ストレージサブシステムA449〜C451のポートS445〜V448による通信は、プロセッサA452〜F457によって制御される。プロセッサA452〜F457、RAIDグループA458〜J467及びLDEV_A468〜P483は、データI/Oのために使用されるリソースである。
LDEV_A468〜P483と、それらに割り当てられるボリュームA417〜D420との対応関係が定まると、それらの間でやり取りされるデータの経路、言い換えると、それらの間でやり取りされるデータが経由するポートA427〜V448が決定される。
図4の例では、ボリュームA417は、LDEV_B469に割り当てられている。この場合、例えば、ボリュームA417に書き込まれたデータは、ポートA427、ポートC429、ポートE431、ポートK437、ポートL438及びポートT446を経由してストレージサブシステムA449に到達する。そして、到達したデータは、プロセッサA452によって、RAIDグループA458内のLDEV_B469に書き込まれる(後述する図5参照)。LDEV_B469に書き込まれるデータは、LDEV_B469に割り当てられた物理記憶領域に格納される。
次に、マイグレーション実行制御プログラム126のデータベース(DB)303に格納される情報について、図5から図17を参照して説明する。なお、図5から図17に示すリソース名及びリソースの識別子は、図4に示すものと対応する。
図5は、本発明の第1の実施の形態のデータベース303に格納されるアプリケーションのI/Oパス情報307の説明図である。
図5に示すアプリケーションのI/Oパス情報テーブル500が、アプリケーションのI/Oパス情報307としてデータベース303に格納される。アプリケーションのI/Oパス情報テーブル500は、業務アプリケーションA403〜D406から、それらの業務アプリケーションA403〜D406によって書き込まれたデータが格納されるLDEV_A468〜P483に至るデータ経路を示す情報を保持する。言い換えると、アプリケーションのI/Oパス情報テーブル500は、各業務アプリケーションA403〜D406が実行するデータI/Oのために使用されるリソースを示す情報を保持する。
アプリケーションのI/Oパス情報テーブル500は、アプリケーション501、ファイル502、ボリューム503、ホスト側ポート504、スイッチ側ポート505、ストレージ側ポート506、プロセッサ507、RAIDグループ508及びLDEV509の9個のカラムからなる。
アプリケーション501には、業務アプリケーションA403〜D406の識別子が登録される。
ファイル502には、業務アプリケーションA403〜D406がアクセスするファイルA407〜J416の識別子が登録される。
ボリューム503には、ファイルA407〜J416を格納するために管理されるボリュームA417〜D420の識別子が登録される。
ホスト側ポート504、スイッチ側ポート505及びストレージ側ポート506には、ボリュームA417〜D420と、ボリュームA417〜D420に割り当てられたLDEV_A468〜P483との間で送受信されるデータが経由するポートA427〜V448の識別子が登録される。
より詳細には、ホスト側ポート504には、ホストサーバA401〜B402が備えるポートA427〜B428の識別子が登録される。以下、これらのポートはホスト側ポートとも記載される。スイッチ側ポート505には、SANスイッチA421〜F426が備えるポートC429〜R444の識別子が登録される。以下、これらのポートはスイッチ側ポートとも記載される。ストレージ側ポート506には、ストレージサブシステムA449〜C451が備えるポートS445〜V448の識別子が登録される。以下、これらのポートはストレージ側ポートとも記載される。
プロセッサ507には、ストレージ側ポートS445〜V448が受信したデータI/O要求に従ってLDEV_A468〜P483に対するデータの書き込み及び読み出しを制御するプロセッサA452〜F457の識別子が登録される。
RAIDグループ508には、LDEV_A468〜P483を含むRAIDグループA458〜J467の識別子が登録される。
LDEV509には、ボリュームA417〜D420に割り当てられたLDEV_A468〜P483の識別子が登録される。
例えば、図5によれば、業務アプリケーションA403は、ファイルA407、ファイルB408及びファイルC409にアクセスする。ファイルA407〜C409は、ボリュームA417に格納される。ボリュームA417には、RAIDグループA458内のLDEV_B469が割り当てられる。プロセッサA452は、ポートT446が受信したデータI/O要求に従って、LDEV_B469に対するデータの書き込み及び読み出しを制御する。ボリュームA417からLDEV_B469に至るデータは、ポートA427、ポートC429、ポートE431、ポートK437、ポートL438及びポートT446を経由する。
この場合、業務アプリケーションA403、ファイルA407〜C409、ボリュームA417、LDEV_B469、RAIDグループA458、プロセッサA452、ポートA427、ポートC429、ポートE431、ポートK437、ポートL438及びポートT446は、業務アプリケーションA403によるデータI/Oのために使用されるリソースである。
図6は、本発明の第1の実施の形態のデータベース303に格納されるアプリケーションの性能情報306の説明図である。
図6に示すアプリケーションの性能情報テーブル600が、アプリケーションの性能情報306としてデータベース303に格納される。アプリケーションの性能情報テーブル600は、実測された各業務アプリケーションA403〜D406の性能を示す情報を保持する。
アプリケーションの性能情報テーブル600は、アプリケーション601及び性能値602の二つのカラムからなる。
アプリケーション601には、業務アプリケーションA403〜D406の識別子が登録される。
性能値602には、各業務アプリケーションA403〜D406について実測された性能を示す値が登録される。以下、本実施の形態では、性能値602としてレスポンス時間が登録される例を示す。しかし、例えばスループット又はトランザクション等、いかなる性能指標が性能値602として登録されてもよい。なお、性能値602としてレスポンス時間が登録される場合、登録された値が小さいほど性能が高い。一方、性能値602としてスループットが登録される場合、登録された値が大きいほど性能が高い。
例えば、図6によれば、業務アプリケーションA403の性能値602として「2.5」が登録され、業務アプリケーションB404の性能値602として「1」が登録されている。これは、業務アプリケーションB404の性能が業務アプリケーションA403の性能より高いことを示す。
図7は、本発明の第1の実施の形態のデータベース303に格納されるjobとマイグレーションパスの関係情報309の説明図である。
図7に示すjobとマイグレーションパスの関係情報テーブル700が、jobとマイグレーションパスの関係情報309としてデータベース303に格納される。jobとマイグレーションパスの関係情報テーブル700は、ストレージサブシステム170〜173において実行されるマイグレーションのために使用されるリソースを示す情報を保持する。マイグレーションのために使用されるリソースとは、マイグレーションを実行することによる負荷がかかるリソースである。
jobとマイグレーションパスの関係情報テーブル700は、ID701、使用するストレージリソース702、マイグレーション元LDEV情報703、マイグレーション先LDEV情報704、状態705及び並列コピージョブ数706の六つのカラムからなる。
ID701には、マイグレーションジョブの識別子が登録される。
使用するストレージリソース702には、マイグレーションジョブによって使用されるリソースの識別子が登録される。
マイグレーション元LDEV情報703には、マイグレーション元となるLDEV_A468〜P483の識別子が登録される。
マイグレーション先LDEV情報704には、マイグレーション先となるLDEV_A468〜P483の識別子が登録される。
状態705には、マイグレーションジョブの状態を示す情報が登録される。具体的には、状態705には、例えば「制限中」又は「実行中」等が登録される。「実行中」は、マイグレーションジョブが実行されていることを示す。「制限中」は、並列に実行されるコピージョブ数が制限された状態でマイグレーションジョブが実行されていることを示す。
並列コピージョブ数706には、マイグレーションジョブにおいて並列に実行されるコピージョブの数が登録される。
例えば、図7によれば、識別子「10」によって識別されるマイグレーションジョブのマイグレーション元はLDEV_B469であり、マイグレーション先はLDEV_K478である。すなわち、このマイグレーションジョブによって、LDEV_B469に格納されているデータがLDEV_K478に移動する。LDEV_B469からLDEV_K478へのデータの移動のために、LDEV_B469をコピー元、LDEV_K478をコピー先とする複数のコピージョブが実行される。ただし、並列に実行されるコピージョブの数は、12に制限されている。
LDEV_B469からLDEV_K478へコピーされるデータは、ポートT446、ポートL438、ポートK437、ポートE431、ポートC429、ポートD430、ポートI435、ポートJ436及びポートS445を経由する。LDEV_B469は、RAIDグループA458に含まれる。LDEV_B469に対するデータI/Oは、プロセッサA452によって制御される。LDEV_K478は、RAIDグループG464に含まれる。LDEV_K478に対するデータI/Oは、プロセッサE456によって制御される。
結局、識別子「10」によって識別されるマイグレーションジョブを実行するために、ポートT446、ポートL438、ポートK437、ポートE431、ポートC429、ポートD430、ポートI435、ポートJ436、ポートS445、RAIDグループA458、プロセッサA452、RAIDグループG464及びプロセッサE456が使用される。言い換えると、これらのリソースには、識別子「10」によって識別されるマイグレーションジョブによる負荷がかかる。
図8は、本発明の第1の実施の形態のデータベース303に格納されるアプリケーションの優先度情報304の説明図である。
図8に示すアプリケーションの優先度情報テーブル800が、アプリケーションの優先度情報304としてデータベース303に格納される。アプリケーションの優先度情報テーブル800は、各業務アプリケーションA403〜D406に設定された優先度を示す情報を保持する。
アプリケーションの優先度情報テーブル800は、アプリケーション801及び優先度802の二つのカラムからなる。
アプリケーション801には、業務アプリケーションA403〜D406の識別子が登録される。
優先度802には、業務アプリケーションA403〜D406に設定された優先度が登録される。計算機システムのユーザは、運用管理クライアント104を操作することによって、各業務アプリケーションA403〜D406に任意の優先度802を設定することができる。例えば、ユーザは、最も性能を低下させたくない業務アプリケーションA403〜D406に、最も高い優先度を設定することができる。
例えば、図8によれば、業務アプリケーションA403〜C405の優先度802として「1」が登録され、業務アプリケーションD406の優先度802として「2」が登録されている。これは、業務アプリケーションA403〜C405に、業務アプリケーションD406より高い優先度が設定されていることを示す。後で説明するように、高い優先度が設定された業務アプリケーションA403〜C405の性能を、低い優先度が設定された業務アプリケーションD406の性能より優先的に回復させるように所定の処理が実行される。
図9は、本発明の第1の実施の形態のデータベース303に格納されるティア優先度情報308の説明図である。
図9に示すティア優先度情報テーブル900が、ティア優先度情報308としてデータベース303に格納される。ティア優先度情報テーブル900は、各ストレージサブシステムA449〜C451の階層(ティア)を示す情報、すなわち、各ストレージサブシステムA449〜C451に設定された優先度を示す情報を保持する。
ティア優先度情報テーブル900は、ストレージサブシステム901及びティア902の二つのカラムからなる。
ストレージサブシステム901には、ストレージサブシステムA449〜C451の識別子が登録される。
ティア902には、ストレージサブシステムA449〜C451に設定されたティアが登録される。ティアは、階層管理サーバの階層管理プログラムによって設定される。例えば、最も高性能なハードウェアによって構成されたストレージサブシステムA449〜C451に、最も高いティアが設定されてもよい。あるいは、ユーザが最も性能を低下させたくないと考えるストレージサブシステムA449〜C451に、最も高いティアが設定されてもよい。
例えば、図9によれば、ストレージサブシステムA449〜B450のティア902として「1」が登録され、ストレージサブシステムC451のティア902として「2」が登録されている。これは、ストレージサブシステムA449〜B450に、ストレージサブシステムC451より高いティア(すなわち、高い優先度)が設定されていることを示す。言い換えると、ストレージサブシステムA449〜B450に属する全てのLDEV_A468〜M480に高いティア902「1」が設定され、ストレージサブシステムC451に属する全てのLDEV_N481〜P483に低いティア902「2」が設定されている。
図10は、本発明の第1の実施の形態のデータベース303に格納されるアプリケーションの性能目標値情報305の説明図である。
図10に示すアプリケーションの性能目標値情報テーブル1000が、アプリケーションの性能目標値情報305としてデータベース303に格納される。アプリケーションの性能目標値情報テーブル1000は、各業務アプリケーションA403〜D406の性能が劣化したか否か、及び、それらの性能が回復したか否かを判定するために使用される境界値(閾値)を保持する。
アプリケーションの性能目標値情報テーブル1000は、アプリケーション1001、性能劣化の境界値1002及び性能回復の境界値1003の三つのカラムからなる。
アプリケーション1001には、業務アプリケーションA403〜D406の識別子が登録される。
性能劣化の境界値1002には、各業務アプリケーションA403〜D406の性能が劣化したか否かを判定するために使用される閾値が登録される。マイグレーション実行制御プログラム126は、各業務アプリケーションA403〜D406の性能が、性能劣化の境界値1002に登録された値より低くなったとき、性能が劣化したと判定する。
性能回復の境界値1003には、各業務アプリケーションA403〜D406の性能が回復したか否かを判定するために使用される閾値が登録される。マイグレーション実行制御プログラム126は、各業務アプリケーションA403〜D406の性能が、性能回復の境界値1003に登録された値より高くなったとき、性能が回復したと判定する。
一つの業務アプリケーションA403〜D406に対応する性能劣化の境界値1002及び性能回復の境界値1003には、同じ値が登録されてもよいし、互いに異なる値が登録されてもよい。ただし、後者の場合、性能回復の境界値1003には、性能劣化の境界値1002に登録された値より高い性能を示す値を登録しなければならない。
ここで、性能劣化の境界値1002及び性能回復の境界値1003に、互いに異なる値を登録する理由について説明する。
後で詳細に説明するように、マイグレーション実行制御プログラム126は、業務アプリケーションA403〜D406の性能が劣化したと判定したとき、性能を回復させるための処理の実行を開始する。その結果、業務アプリケーションA403〜D406の性能が回復したと判定されると、マイグレーション実行制御プログラム126は、性能を回復させるための処理の実行を終了する。性能が劣化したか否かを判定するための閾値と、性能が回復したか否かを判定するための閾値が同じ値である場合、性能を回復させるための処理が開始された直後に、性能が回復したと判定される可能性がある。その結果、性能を回復させるための処理が終了すると、すぐに、再び性能が劣化したと判定される可能性がある。
このように、二つの閾値が同じであると、性能を回復させるための処理の開始及び終了が短い間隔で繰り返され、そのことが他の処理の実行に影響を与えるおそれがある。
一方、性能劣化の境界値1002に登録された値より高い性能を示す値を性能回復の境界値1003に登録すれば、性能を回復させるための処理の開始及び終了の間隔を適切に調整することができる。
例えば、図10によれば、業務アプリケーションB404に対応する性能劣化の境界値1002及び性能回復の境界値1003として、それぞれ、「2」及び「1.8」が登録されている。これらの値はレスポンス時間を示すため、「1.8」は「2」より高い性能を示す。この場合、業務アプリケーションB404の性能が「2」より低くなったときに、マイグレーション実行制御プログラム126が、性能を回復させる処理を開始する。そして、業務アプリケーションB404の性能が「1.8」より高くなったときに、性能を回復させる処理が終了する。
次に、本発明の第1の実施の形態のデータベース303に格納されるストレージネットワークの構成情報310について、図11から図17を参照して説明する。ストレージネットワークの構成情報310は、図11から図17に示すテーブルからなる。それらのテーブルは、計算機システム内のリソース間の関連を示す情報、すなわち、リソースの割り当てを示す情報を保持する。
マイグレーション実行制御プログラム126内のストレージリソース関連情報収集部316は、アプリケーション情報収集エージェント115、ホスト情報収集エージェント116、SANスイッチ情報収集エージェント124及びサブシステム情報収集エージェント125からリソース間の関連を示す情報を取得し、取得した情報をストレージネットワークの構成情報310として格納する。アプリケーション構成データ収集部302は、ストレージネットワークの構成情報310に基づいて、アプリケーションのI/Oパス情報テーブル500を生成する。
図11は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるアプリケーション・ファイル間関連情報テーブルの説明図である。
アプリケーション・ファイル間関連情報テーブル1100は、ストレージネットワークの構成情報310の一部であるアプリケーション・ファイル間関連情報を保持する。アプリケーション・ファイル間関連情報は、業務アプリケーションA403〜D406と、業務アプリケーションA403〜D406がアクセスするファイルA407〜J416との関係を示す。アプリケーション・ファイル間関連情報は、ホスト情報収集エージェント116によって取得される。ストレージリソース関連情報収集部316が、ホスト情報収集エージェント116からアプリケーション・ファイル間関連情報を取得して、取得した情報をアプリケーション・ファイル間関連情報テーブル1100に登録する。
アプリケーション・ファイル間関連情報テーブル1100は、アプリケーション1101及びファイル1102の二つのカラムからなる。
アプリケーション1101には、業務アプリケーションA403〜D406の識別子が登録される。
ファイル1102には、業務アプリケーションA403〜D406がアクセスするファイルA407〜J416の識別子が登録される。
例えば、図11によれば、業務アプリケーションA403は、ファイルA407〜C409にアクセスする。
図11に示すアプリケーション1101及びファイル1102の対応関係は、アプリケーション構成データ収集部302によって、アプリケーションのI/Oパス情報テーブル500のアプリケーション501及びファイル502に反映される。
図12は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるファイル・ボリューム間関連情報テーブルの説明図である。
ファイル・ボリューム間関連情報テーブル1200は、ストレージネットワークの構成情報310の一部であるファイル・ボリューム間関連情報を保持する。ファイル・ボリューム間関連情報は、ファイルA407〜J416と、ファイルA407〜J416を論理的に格納するボリュームA417〜D420との関係を示す。ファイル・ボリューム間関連情報は、ホスト情報収集エージェント116によって取得される。ストレージリソース関連情報収集部316が、ホスト情報収集エージェント116からファイル・ボリューム間関連情報を取得して、取得した情報をファイル・ボリューム間関連情報テーブル1200に登録する。
ファイル・ボリューム間関連情報テーブル1200は、ファイル1201及びボリューム1202の二つのカラムからなる。
ファイル1201には、ファイルA407〜J416の識別子が登録される。
ボリューム1202には、ファイルA407〜J416を論理的に格納するボリュームA417〜D420の識別子が登録される。
例えば、図12によれば、ファイルA407〜C409は、ボリュームA417に論理的に格納される。
図12に示すファイル1201及びボリューム1202の対応関係は、アプリケーション構成データ収集部302によって、アプリケーションのI/Oパス情報テーブル500のファイル502及びボリューム503に反映される。
図13は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるボリューム・LDEV・ポート間関連情報テーブルの説明図である。
ボリューム・LDEV・ポート間関連情報テーブル1300は、ストレージネットワークの構成情報310の一部であるボリューム・LDEV・ポート間関連情報を保持する。ボリューム・LDEV・ポート間関連情報は、ボリュームA417〜D420と、ボリュームA417〜D420に割り当てられたLDEV_A468〜P483と、ボリュームA417〜D420からLDEV_A468〜P483に至るデータが経由するホスト側ポートA427〜B428及びストレージ側ポートS445〜V448との関係を示す。
ボリューム・LDEV・ポート間関連情報は、ホスト情報収集エージェント116によって取得される。ストレージリソース関連情報収集部316が、ホスト情報収集エージェント116からボリューム・LDEV・ポート間関連情報を取得して、取得した情報をボリューム・LDEV・ポート間関連情報テーブル1300に登録する。
ボリューム・LDEV・ポート間関連情報テーブル1300は、ボリューム1301、LDEV1302、ホスト側ポート1303及びストレージ側ポート1304の四つのカラムからなる。
ボリューム1301には、ボリュームA417〜D420の識別子が登録される。
LDEV1302には、ボリュームA417〜D420に割り当てられたLDEV_A468〜P483の識別子が登録される。
ホスト側ポート1303及びストレージ側ポート1304には、それぞれ、ボリュームA417〜D420からLDEV_A468〜P483に至るデータが経由するホスト側ポートA427〜B428の識別子及びストレージ側ポートS445〜V448の識別子が登録される。
例えば、図13によれば、ボリュームA417にLDEV_B469が割り当てられる。ボリュームA417に格納されるデータは、ポートA427及びポートT446を経由してLDEV_B469に格納される。
図13に示すボリューム1301、LDEV1302、ホスト側ポート1303及びストレージ側ポート1304の対応関係は、アプリケーション構成データ収集部302によって、アプリケーションのI/Oパス情報テーブル500のボリューム503、LDEV509、ホスト側ポート504及びストレージ側ポート506に反映される。
図14は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるポート間関連情報テーブルの説明図である。
ポート間関連情報テーブル1400は、ストレージネットワークの構成情報310の一部であるポート間関連情報を保持する。ポート間関連情報は、ホスト側ポートA427〜B428と、ストレージ側ポートS445〜V448と、ホスト側ポートA427〜B428からストレージ側ポートS445〜V448に至るデータが経由するスイッチ側ポートC429〜R444との関係を示す。ポート間関連情報は、SANスイッチ情報収集エージェント124によって取得される。ストレージリソース関連情報収集部316が、SANスイッチ情報収集エージェント124からポート間関連情報を取得して、取得した情報をポート間関連情報テーブル1400に登録する。
ポート間関連情報テーブル1400は、ホスト側ポート1401、ストレージ側ポート1402及びスイッチ側ポートリスト1403の三つのカラムからなる。
ホスト側ポート1401及びストレージ側ポート1402には、それぞれ、ボリュームA417〜D420からLDEV_A468〜P483に至るデータが経由するホスト側ポートA427〜B428の識別子及びストレージ側ポートS445〜V448の識別子が登録される。
スイッチ側ポートリスト1403には、ホスト側ポートA427〜B428からストレージ側ポートS445〜V448に至るデータが経由する全てのスイッチ側ポートC429〜R444の識別子が登録される。
例えば、図14によれば、ポートA427からポートT446に至るデータは、ポートC、ポートE、ポートK及びポートLを経由する。
図14に示すホスト側ポート1401、ストレージ側ポート1402及びスイッチ側ポートリスト1403の対応関係は、アプリケーション構成データ収集部302によって、アプリケーションのI/Oパス情報テーブル500のホスト側ポート504、ストレージ側ポート506及びスイッチ側ポート505に反映される。
図15は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるLDEV・RAIDグループ間関連情報テーブルの説明図である。
LDEV・RAIDグループ間関連情報テーブル1500は、ストレージネットワークの構成情報310の一部であるLDEV・RAIDグループ間関連情報を保持する。LDEV・RAIDグループ間関連情報は、LDEV_A468〜P483と、LDEV_A468〜P483を含むRAIDグループA458〜J467との関係を示す。LDEV・RAIDグループ間関連情報は、サブシステム情報収集エージェント125によって取得される。ストレージリソース関連情報収集部316が、サブシステム情報収集エージェント125からLDEV・RAIDグループ間関連情報を取得して、取得した情報をLDEV・RAIDグループ間関連情報テーブル1500に登録する。
LDEV・RAIDグループ間関連情報テーブル1500は、LDEV1501及びRAIDグループ1502の二つのカラムからなる。
LDEV1501には、LDEV_A468〜P483の識別子が登録される。
RAIDグループ1502には、LDEV_A468〜P483を含むRAIDグループA458〜J467の識別子が登録される。
例えば、図15によれば、LDEV_A468は、RAIDグループA458に含まれる。すなわち、RAIDグループA458に含まれる物理的なデータ記憶領域がLDEV_A468に割り当てられる。
図15に示すLDEV1501及びRAIDグループ1502の対応関係は、アプリケーション構成データ収集部302によって、アプリケーションのI/Oパス情報テーブル500のLDEV509及びRAIDグループ508に反映される。
図16は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるストレージサブシステム・RAIDグループ間関連情報テーブルの説明図である。
ストレージサブシステム・RAIDグループ間関連情報テーブル1600は、ストレージネットワークの構成情報310の一部であるストレージサブシステム・RAIDグループ間関連情報を保持する。ストレージサブシステム・RAIDグループ間関連情報は、ストレージサブシステムA449〜C451と、ストレージサブシステムA449〜C451に含まれるRAIDグループA458〜J467との関係を示す。ストレージサブシステム・RAIDグループ間関連情報は、サブシステム情報収集エージェント125によって取得される。ストレージリソース関連情報収集部316が、サブシステム情報収集エージェント125からストレージサブシステム・RAIDグループ間関連情報を取得して、取得した情報をストレージサブシステム・RAIDグループ間関連情報テーブル1600に登録する。
ストレージサブシステム・RAIDグループ間関連情報テーブル1600は、ストレージサブシステム1601及びRAIDグループ1602の二つのカラムからなる。
ストレージサブシステム1601には、ストレージサブシステムA449〜C451の識別子が登録される。
RAIDグループ1602には、ストレージサブシステムA449〜C451に含まれるRAIDグループA458〜J467の識別子が登録される。
例えば、図16によれば、ストレージサブシステムA449は、RAIDグループA458〜F463を含む。
図17は、本発明の第1の実施の形態のデータベース303にストレージネットワークの構成情報310として格納されるポート・プロセッサ間関連情報テーブルの説明図である。
ポート・プロセッサ間関連情報テーブル1700は、ストレージネットワークの構成情報310の一部であるポート・プロセッサ間関連情報を保持する。ポート・プロセッサ間関連情報は、ストレージ側ポートS445〜V448と、ストレージ側ポートS445〜V448を制御するプロセッサA452〜F457との関係を示す。ポート・プロセッサ間関連情報は、サブシステム情報収集エージェント125によって取得される。ストレージリソース関連情報収集部316が、サブシステム情報収集エージェント125からポート・プロセッサ間関連情報を取得して、取得した情報をポート・プロセッサ間関連情報テーブル1700に登録する。
ポート・プロセッサ間関連情報テーブル1700は、ストレージ側ポート1701及びプロセッサ1702の二つのカラムからなる。
ストレージ側ポート1701には、ストレージ側ポートS445〜V448の識別子が登録される。
プロセッサ1702には、ストレージ側ポートS445〜V448を制御するプロセッサA452〜F457の識別子が登録される。
例えば、図17によれば、ポートS445は、プロセッサE456によって制御される。
図17に示すストレージ側ポート1701及びプロセッサ1702の対応関係は、アプリケーション構成データ収集部302によって、アプリケーションのI/Oパス情報テーブル500のストレージ側ポート506及びプロセッサ507に反映される。
図18は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が保持する性能劣化一時テーブル313の説明図である。
性能劣化一時テーブル313は、マイグレーション実行制御プログラム126によって性能が劣化したと判定された業務アプリケーションA403〜D406、及び、その性能劣化の原因となった可能性があるマイグレーションジョブに関する情報を一時的に保持する。
性能劣化一時テーブル313は、アプリケーション1801及びマイグレーションID1802の二つのカラムからなる。
アプリケーション1801には、性能が劣化したと判定された業務アプリケーションA403〜D406の識別子が登録される。
マイグレーションID1802には、性能が劣化したと判定された業務アプリケーションA403〜D406が使用するものと同じリソースを使用するマイグレーションジョブの識別子が登録される。業務アプリケーションA403〜D406とマイグレーションジョブが同じリソースを使用している場合、そのリソースにボトルネックが発生している可能性がある。すなわち、そのマイグレーションジョブの実行を制限することによって、業務アプリケーションA403〜D406の性能が回復する可能性がある。
図18の例では、アプリケーション1801に業務アプリケーションD406が登録されている。これは、業務アプリケーションD406の性能が劣化したと判定されたことを意味する。例えば、図6及び図10によれば、業務アプリケーションD406の性能値602「13」が、性能劣化の境界値1002「11.5」より低い性能を示している。この場合、業務アプリケーションD406の性能が劣化したと判定される。
さらに、例えば図5及び図7によれば、業務アプリケーションD406、及び、ID「11」によって識別されるマイグレーションジョブは、どちらも、ポートH434、ポートN440及びポートP442を使用している。このため、業務アプリケーションD406に対応するマイグレーションID1802として「11」が登録される。
図19は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が保持する性能回復一時テーブル314の説明図である。
性能回復一時テーブル314は、マイグレーション実行制御プログラム126によって性能が回復したと判定された業務アプリケーションA403〜D406、及び、それらの業務アプリケーションA403〜D406に関連するマイグレーションジョブに関する情報を一時的に保持する。
性能回復一時テーブル314は、アプリケーション1901及びマイグレーションID1902の二つのカラムからなる。
アプリケーション1901には、性能が回復したと判定された業務アプリケーションA403〜D406の識別子が登録される。性能が劣化したと判定された業務アプリケーションA403〜D406(すなわち、性能劣化一時テーブル313に登録されていた業務アプリケーションA403〜D406)の性能が、その後回復したと判定された場合、その業務アプリケーションA403〜D406の識別子がアプリケーション1801から削除され、アプリケーション1901に登録される。
マイグレーションID1902には、性能が回復したと判定された業務アプリケーションA403〜D406が使用するものと同じリソースを使用するマイグレーションジョブの識別子が登録される。
図19の例では、アプリケーション1901に業務アプリケーションC405が登録されている。これは、業務アプリケーションC405の性能が劣化したと判定された後、回復したと判定されたことを意味する。例えば、図6及び図10によれば、業務アプリケーションC405の性能値602「3.5」が、性能回復の境界値1003「4」より高い性能を示している。その時点で業務アプリケーションC405が性能劣化一時テーブル313に登録されていた場合、劣化していた業務アプリケーションD406の性能が回復したと判定される。
さらに、例えば図5及び図7によれば、業務アプリケーションC405、及び、ID「10」によって識別されるマイグレーションジョブは、どちらも、ポートC429及びポートE431を使用している。このため、業務アプリケーションC405に対応するマイグレーションID1902として「10」が登録される。
次に、本発明の第1の実施の形態において実行される処理について、フローチャートを参照して説明する。
図20は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するマイグレーション情報収集処理を示すフローチャートである。
図20に示すマイグレーション情報収集処理は、マイグレーション実行制御プログラム126内のマイグレーション情報収集部317によって実行される。
マイグレーション情報収集部317は、マイグレーション情報収集処理を開始すると、マイグレーション実行プログラム180にマイグレーションの詳細情報を要求する(2001)。この要求を受けたマイグレーション実行プログラム180は、現在実行しているマイグレーションジョブに関する情報をマイグレーション情報収集部317に送信する。送信される情報には、jobとマイグレーションパスの関係情報テーブル700の各カラムに対応する情報が含まれる。
次に、マイグレーション情報収集部317は、ステップ2001の要求に応じてマイグレーション実行プログラム180から送信された情報を取得する(2002)。
次に、マイグレーション情報収集部317は、データベース303にjobとマイグレーションパスの関係情報309が格納されているか否かを判定する(2003)。
ステップ2003において、jobとマイグレーションパスの関係情報309が格納されていないと判定された場合、マイグレーション情報収集部317は、ステップ2002において取得した情報をjobとマイグレーションパスの関係情報309としてデータベース303に格納する(2004)。具体的には、マイグレーション情報収集部317は、jobとマイグレーションパスの関係情報テーブル700を作成し、作成されたテーブルに、ステップ2002において取得した情報を登録する。
一方、ステップ2003において、jobとマイグレーションパスの関係情報309が格納されていると判定された場合、マイグレーション情報収集部317は、ステップ2002において取得した情報によってjobとマイグレーションパスの関係情報309を更新する(2005)。ステップ2004又は2005の実行によって、ステップ2002において取得された情報がデータベース303に反映される。
以上でマイグレーション情報収集処理が終了する。
図21は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するストレージリソース関連情報格納処理を示すフローチャートである。
図21に示すストレージリソース関連情報格納処理は、マイグレーション実行制御プログラム126内のストレージリソース関連情報収集部316によって実行される。
ストレージリソース関連情報収集部316は、ストレージリソース関連情報格納処理を開始すると、情報収集エージェントにリソース間の関連情報を要求する(2102)。情報収集エージェントとは、図1の例では、アプリケーション情報収集エージェント115、ホスト情報収集エージェント116、SANスイッチ情報収集エージェント124及びサブシステム情報収集エージェント125のいずれかである。この要求を受けた情報収集エージェントは、リソース間の関連情報をストレージリソース関連情報収集部316に送信する。送信される情報には、図11から図17に示すテーブルのいずれかに格納される情報が含まれる。
次に、ストレージリソース関連情報収集部316は、情報収集エージェントから送信された情報を取得する(2103)。
次に、ストレージリソース関連情報収集部316は、データベース303にストレージネットワークの構成情報310が格納されているか否かを判定する(2104)。
ステップ2104において、ストレージネットワークの構成情報310が格納されていないと判定された場合、ストレージリソース関連情報収集部316は、ステップ2103において取得した情報をストレージネットワークの構成情報310としてデータベース303に格納する(2105)。具体的には、ストレージリソース関連情報収集部316は、図11から図17に示すテーブルを作成し、作成されたテーブルに、ステップ2103において取得した情報を登録する。
一方、ステップ2104において、ストレージネットワークの構成情報310が格納されていると判定された場合、ストレージリソース関連情報収集部316は、格納されているストレージネットワークの構成情報310がステップ2103において取得された情報と一致するか否かを判定する(2106)。
ステップ2106において、格納されているストレージネットワークの構成情報310がステップ2103において取得された情報と一致しないと判定された場合、ストレージリソース関連情報収集部316は、ステップ2103において取得された情報によってストレージネットワークの構成情報310を更新する(2107)。
一方、ステップ2106において、格納されているストレージネットワークの構成情報310がステップ2103において取得された情報と一致すると判定された場合、ストレージリソース関連情報収集部316は、ストレージネットワークの構成情報310を更新しない。
ストレージリソース関連情報収集部316は、ステップ2102から2107までの処理を、全ての情報収集エージェントを対象として実行する(2102、2108)。
全ての情報収集エージェントについてステップ2102から2107までの処理が終了すると、ストレージリソース関連情報格納処理が終了する。ステップ2105又は2107の実行によって、ステップ2103において取得された情報がデータベース303に反映される。
図22は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するティア優先度取得処理を示すフローチャートである。
図22に示すティア優先度取得処理は、マイグレーション実行制御プログラム126内のティア優先度取得部311によって実行される。
ティア優先度取得部311は、ティア優先度取得処理を開始すると、階層管理プログラム127にティア優先度情報を要求する(2201)。この要求を受けた階層管理プログラム127は、ストレージサブシステムA449〜C451のティアを示す情報をティア優先度取得部311に送信する。送信される情報には、各ストレージサブシステムA449〜C451に設定されたティアを示す情報が含まれる。
次に、ティア優先度取得部311は、ステップ2201の要求に応じて階層管理プログラム127から送信された情報を取得する(2202)。
次に、ティア優先度取得部311は、データベース303にティア優先度情報308が格納されているか否かを判定する(2203)。
ステップ2203において、ティア優先度情報308が格納されていないと判定された場合、ティア優先度取得部311は、ステップ2202において取得した情報をティア優先度情報308としてデータベース303に格納する(2204)。具体的には、ティア優先度取得部311は、ティア優先度情報テーブル900を作成し、作成されたテーブルに、ステップ2202において取得した情報を登録する。
一方、ステップ2203において、ティア優先度情報308が格納されていると判定された場合、ティア優先度取得部311は、ステップ2202において取得した情報によってティア優先度情報308を更新する(2205)。ステップ2204又は2205の実行によって、ステップ2202において取得された情報がデータベース303に反映される。
以上でティア優先度取得処理が終了する。
図23は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するアプリケーション構成データ格納処理を示すフローチャートである。
図23に示すアプリケーション構成データ格納処理は、マイグレーション実行制御プログラム126内のアプリケーション構成データ収集部302によって実行される。
アプリケーション構成データ収集部302は、アプリケーション構成データ格納処理を開始すると、情報収集エージェントに業務アプリケーション名の送信を要求する(2302)。この要求を受けた情報収集エージェントは、業務アプリケーションA403〜D406の名前をアプリケーション構成データ収集部302に送信する。
次に、アプリケーション構成データ収集部302は、情報収集エージェントから送信された情報を取得する(2303)。
次に、アプリケーション構成データ収集部302は、ストレージネットワークの構成情報310及びステップ2303において取得した情報に基づいて、アプリケーションのI/Oパス情報307を作成する(2304)。具体的には、アプリケーション構成データ収集部302は、図11から図17に示すテーブル及びステップ2303において取得した情報を合成することによって、図5に示すアプリケーションのI/Oパス情報テーブル500を作成する。
次に、アプリケーション構成データ収集部302は、データベース303にアプリケーションのI/Oパス情報307が格納されているか否かを判定する(2305)。
ステップ2305において、アプリケーションのI/Oパス情報307が格納されていないと判定された場合、アプリケーション構成データ収集部302は、ステップ2304において作成されたアプリケーションのI/Oパス情報307をデータベース303に格納する(2306)。具体的には、アプリケーション構成データ収集部302は、ステップ2304において作成されたアプリケーションのI/Oパス情報テーブル500をアプリケーションのI/Oパス情報307として格納する。
一方、ステップ2305において、アプリケーションのI/Oパス情報307が格納されていると判定された場合、アプリケーション構成データ収集部302は、格納されているアプリケーションのI/Oパス情報307がステップ2304において作成された情報と一致するか否かを判定する(2307)。
ステップ2307において、格納されているアプリケーションのI/Oパス情報307がステップ2304において取得された情報と一致しないと判定された場合、アプリケーション構成データ収集部302は、ステップ2304において作成された情報によってアプリケーションのI/Oパス情報307を更新する(2308)。
一方、ステップ2307において、格納されているアプリケーションのI/Oパス情報307がステップ2304において取得された情報と一致すると判定された場合、アプリケーション構成データ収集部302は、アプリケーションのI/Oパス情報307を更新しない。
アプリケーション構成データ収集部302は、ステップ2302から2308までの処理を、全ての業務アプリケーションA403〜D406を対象として実行する(2302、2309)。
全ての業務アプリケーションA403〜D406についてステップ2302から2308までの処理が終了すると、アプリケーション構成データ格納処理が終了する。ステップ2306又は2308の実行によって、ステップ2304において取得された情報がデータベース303に反映される。
図24は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するアプリケーション性能データ格納処理を示すフローチャートである。
図24に示すアプリケーション性能データ格納処理は、マイグレーション実行制御プログラム126内のアプリケーション性能データ収集部301によって実行される。
アプリケーション性能データ収集部301は、アプリケーション性能データ格納処理を開始すると、情報収集エージェントから各業務アプリケーションA403〜D406の性能情報を取得する(2402)。取得される性能情報は、例えばレスポンス時間であるが、その他の性能指標であってもよい。
次に、アプリケーション性能データ収集部301は、ステップ2402において取得した性能情報をデータベース303に格納する(2403)。具体的には、アプリケーション性能データ収集部301は、ステップ2402において取得した性能情報をアプリケーションの性能情報テーブル600に登録する。
アプリケーション性能データ収集部301は、ステップ2402から2403までの処理を、全ての情報収集エージェントを対象として実行する(2401、2404)。
全ての情報収集エージェントについてステップ2402から2403までの処理が終了すると、アプリケーション性能データ格納処理が終了する。ステップ2403の実行によって、ステップ2402において取得された情報がデータベース303に反映される。
図25は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行する性能分析処理を示すフローチャートである。
図25に示す性能分析処理は、マイグレーション実行制御プログラム126内の性能分析部312によって実行される。性能分析処理は、いずれかの業務アプリケーションA403〜D406の性能が劣化したか否か、及び、それらの性能が回復したか否かを判定し、それらの判定の結果に基づいて、性能劣化一時テーブル313及び性能回復一時テーブル314を作成するために実行される。
性能分析部312は、性能分析処理を開始すると、性能劣化一時テーブル313及び性能回復一時テーブル314を初期化する(2501)。その結果、ステップ2501が実行された直後の性能劣化一時テーブル313及び性能回復一時テーブル314には、何も格納されていない。
次に、性能分析部312は、アプリケーションの性能情報テーブル600及びアプリケーションの性能目標値情報テーブル1000を参照して、各業務アプリケーションA403〜D406の性能値602が性能劣化の境界値1002より低い性能を示すか否かを判定する(2503)。
ステップ2503において、業務アプリケーションA403〜D406の性能値602が性能劣化の境界値1002より低い性能を示すと判定された場合、性能分析部312は、業務アプリケーションA403〜D406の性能が劣化したと判定する。この場合、性能分析部312は、マイグレーションのI/Oパス(経路)と、性能が劣化した業務アプリケーションA403〜D406のI/Oパスとの上に共通のリソースがあるか否かを判定する(2505)。言い換えると、性能が劣化した業務アプリケーションA403〜D406によるデータI/Oに使用されるリソースのうち少なくとも一つが、マイグレーションによるデータI/Oにも使用されているか否かが判定される。
ステップ2505の判定のために、性能分析部312は、アプリケーションのI/Oパス情報テーブル500及びjobとマイグレーションパスの関係情報テーブル700を参照する。アプリケーションのI/Oパス情報テーブル500の各行に、業務アプリケーションA403〜D406によるデータI/Oに使用されるリソースを示す情報が登録されている。一方、jobとマイグレーションパスの関係情報テーブル700の使用するストレージリソース702に、マイグレーションによるデータI/Oに使用されるリソースを示す情報が登録されている。すなわち、アプリケーションのI/Oパス情報テーブル500の各行に登録されたリソースと同じリソースがストレージリソース702に登録されている場合、業務アプリケーションA403〜D406によるデータI/Oに使用されるリソースのうち少なくとも一つが、マイグレーションによるデータI/Oにも使用されていると判定される。
ステップ2505において、性能が劣化した業務アプリケーションA403〜D406によるデータI/Oに使用されるリソースのうち少なくとも一つが、マイグレーションによるデータI/Oにも使用されていると判定された場合、そのリソースにおいて発生した性能のボトルネックが、業務アプリケーションA403〜D406の性能劣化の原因となっている可能性がある。この場合、マイグレーションの実行を制限することによって、業務アプリケーションA403〜D406の劣化した性能を回復させることができる可能性がある。このため、性能分析部312は、性能が劣化した業務アプリケーションA403〜D406の識別子と、その業務アプリケーションA403〜D406が使用するものと同じリソースを使用するマイグレーションジョブの識別子と、を性能劣化一時テーブル313に格納する(2506)。なお、以下の説明において、マイグレーションによるデータI/Oと、業務アプリケーションA403〜D406によるデータI/Oとが同一のリソースを使用することを、マイグレーションと業務アプリケーションA403〜D406とが関連すると記載する。
性能分析部312は、全てのマイグレーションジョブを対象としてステップ2505から2506までの処理が終了するまで、ステップ2505から2506までの処理を繰り返し実行する(2504、2507)。さらに、性能分析部312は、全ての業務アプリケーションA403〜D406を対象としてステップ2503から2507までの処理が終了するまで、ステップ2503から2507までの処理を繰り返し実行する(2502、2508)。
次に、性能分析部312は、運用管理クライアント104に、性能劣化一時テーブル313の内容を表示させる(2509)。具体的には、性能分析部312は、性能劣化一時テーブル313の内容を運用管理クライアント104に送信する。運用管理クライアント104は、性能分析部312から受信した性能劣化一時テーブル313の内容を、表示装置267によってユーザに表示する。ユーザは、表示された情報を参照することによって、どのマイグレーションジョブの実行を制限すれば、劣化した業務アプリケーションA403〜D406の性能が回復する可能性があるかを知ることができる。
なお、本実施の形態では、運用管理クライアント104が表示装置267を備える。しかし、運用管理クライアント104以外の装置(例えば、運用管理サーバ122等)が表示装置267を供えてもよい。その場合、性能分析部312は、性能劣化一時テーブル313の内容を表示する要求を、表示装置267を備える装置に対して送信する。
次に、性能分析部312は、jobとマイグレーションパスの関係情報テーブル700を参照して、状態705が「制限中」であるマイグレーションジョブを選択する。そして、性能分析部312は、選択されたマイグレーションジョブが性能劣化一時テーブル313に格納されているか否かを判定する(2511)。
ステップ2511において、選択されたマイグレーションジョブが性能劣化一時テーブル313に格納されていると判定された場合、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の性能がまだ回復していない。このため、性能分析部312は、選択されたマイグレーションジョブについて、後述するステップ2512〜2518の処理を実行しない。
一方、ステップ2511において、選択されたマイグレーションジョブが性能劣化一時テーブル313に格納されていないと判定された場合、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の性能が回復している可能性がある。この場合、性能分析部312は、いずれかの業務アプリケーションA403〜D406を選択し、選択された業務アプリケーションA403〜D406によるデータI/Oに使用されるリソースのうち少なくとも一つが、選択されたマイグレーションによるデータI/Oにも使用されているか否かを判定する(2513)。この判定は、ステップ2505と同様にして実行される。
ステップ2513において、選択された業務アプリケーションA403〜D406によるデータI/Oに使用されるリソースのうち少なくとも一つが、選択されたマイグレーションによるデータI/Oにも使用されていると判定された場合、選択されたマイグレーションジョブと選択された業務アプリケーションA403〜D406とが関連している。この場合、性能分析部312は、アプリケーションの性能情報テーブル600及びアプリケーションの性能目標値情報テーブル1000を参照して、選択された業務アプリケーションA403〜D406の性能値602が性能回復の境界値1003より高い性能を示すか否かを判定する(2514)。
ステップ2514において、選択された業務アプリケーションA403〜D406の性能値602が性能回復の境界値1003より高いと判定された場合、選択された業務アプリケーションA403〜D406(すなわち、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406)の性能が回復している。この場合、性能分析部312は、選択された業務アプリケーションA403〜D406の識別子と、選択されたマイグレーションジョブの識別子とを性能回復一時テーブル314に格納する(2515)。性能回復一時テーブル314に格納されたマイグレーションジョブに適用されているコピージョブ数の制限は、その後解除される(図26参照)。
一方、ステップ2514において、選択された業務アプリケーションA403〜D406の性能値602が性能回復の境界値1003より高くないと判定された場合、選択された業務アプリケーションA403〜D406の性能が回復していない。したがって、この場合、選択されたマイグレーションジョブに適用されているコピージョブ数の制限を解除することはできない。
しかし、選択されたマイグレーションジョブが既に性能回復一時テーブル314に格納されている場合がある。例えば、選択されたマイグレーションジョブが、複数の業務アプリケーションA403〜D406と関連しており、それらのうちの一つの業務アプリケーションA403〜D406の性能が回復している場合、選択されたマイグレーションジョブが既に性能回復一時テーブル314に格納されている可能性がある。この場合、性能分析部312は、選択されたマイグレーションジョブを性能回復一時テーブル314から削除する必要がある。このため、性能分析部312は、選択されたマイグレーションジョブの識別子が性能回復一時テーブル314に格納されているか否かを判定する(2516)。
ステップ2516において、選択されたマイグレーションジョブの識別子が性能回復一時テーブル314に格納されていると判定された場合、性能分析部312は、選択されたマイグレーションジョブの識別子、及び、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の識別子を性能回復一時テーブル314から削除する(2517)。
性能分析部312は、全ての業務アプリケーションA403〜D406についてステップ2513〜2517の処理を終了するまで、ステップ2513〜2517の処理を繰り返し実行する(2512、2518)。さらに、性能分析部312は、制限中の全てのマイグレーションジョブについてステップ2511〜2518の処理を終了するまで、ステップ2511〜2518の処理を繰り返し実行する(2510、2519)。制限中の全てのマイグレーションジョブについてステップ2511〜2518の処理が終了すると、性能分析部312は、性能分析処理を終了する。
図26は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するマイグレーション制御処理を示すフローチャートである。
図26に示すマイグレーション制御処理は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって実行される。マイグレーション制御処理は、性能劣化一時テーブル313及び性能回復一時テーブル314に登録された情報に従って、マイグレーションの実行を制御するために実行される。
最初に、マイグレーション制御部315は、性能劣化一時テーブル313に登録されたマイグレーションジョブのうち一つを選択する。そして、選択されたマイグレーションジョブを対象として、アプリケーション優先度処理を実行する(2602)。アプリケーション優先度処理については、後で図29を参照して詳細に説明する。
次に、マイグレーション制御部315は、選択されたマイグレーションジョブが、ステップ2602のアプリケーション優先度処理によって制限されたか否かを判定する(2603)。
ステップ2603において、選択されたマイグレーションジョブが制限されたと判定された場合、その制限によって、劣化した業務アプリケーションA403〜D406の性能が回復する可能性がある。この場合、マイグレーション制御部315は、次にステップ2612を実行する(後述)。
一方、ステップ2603において、選択されたマイグレーションジョブが制限されていないと判定された場合、劣化した業務アプリケーションA403〜D406の性能がまだ回復しないと考えられる。この場合、マイグレーション制御部315は、次に、選択されたマイグレーションジョブを対象として、ティア優先度処理を実行する(2604)。ティア優先度処理については、後で図27を参照して詳細に説明する。
次に、マイグレーション制御部315は、選択されたマイグレーションジョブが、ステップ2604のティア優先度処理によって制限されたか否かを判定する(2605)。
ステップ2605において、選択されたマイグレーションジョブが制限されたと判定された場合、その制限によって、劣化した業務アプリケーションA403〜D406の性能が回復する可能性がある。この場合、マイグレーション制御部315は、次にステップ2612を実行する(後述)。
一方、ステップ2605において、選択されたマイグレーションジョブが制限されていないと判定された場合、劣化した業務アプリケーションA403〜D406の性能がまだ回復しないと考えられる。この場合、マイグレーション制御部315は、次に、優先度の高い業務アプリケーションに影響がある場合にユーザに通知するか否かを判定する(2606)。
具体的には、例えば、ユーザは、性能が劣化した業務アプリケーションA403〜D406の優先度が高い場合にマイグレーション制御部315がユーザに通知を送信するように予め設定することができる。このような設定がされている場合、ステップ2606において「通知する」(すなわちYES)と判定される。
ステップ2606において、「通知する」と判定された場合、マイグレーション制御部315は、選択されたマイグレーションジョブを対象として、アプリケーション優先度処理2を実行する(2607)。アプリケーション優先度処理2については、後で図30を参照して詳細に説明する。
次に、マイグレーション制御部315は、選択されたマイグレーションを制限するための処理を中止するか否かを判定する(2608)。具体的には、ユーザは、ステップ2607において送信された通知(図30のステップ3002参照)を受けると、選択されたマイグレーションを制限するための処理を続行又は中止させる指示を、運用管理クライアント104を介してマイグレーション制御部315に送信してもよい。マイグレーション制御部315は、ユーザから中止の指示を受けた場合、ステップ2608において「中止する」(すなわち、YES)と判定する。
ステップ2608において「中止する」と判定された場合、マイグレーション制御部315は、選択されたマイグレーションを制限するための処理をさらに実行せずに、ステップ2612を実行する(後述)。
一方、ステップ2608において「中止しない」(すなわち続行する)と判定された場合、マイグレーション制御部315は、選択されたマイグレーションジョブを対象としてティア優先度処理2を実行する(2609)。ティア優先度処理2については、後で図28を参照して詳細に説明する。
なお、ステップ2606において「通知する」と判定されなかった場合も、選択されたマイグレーションジョブを対象としてティア優先度処理2が実行される(2609)。
次に、マイグレーション制御部315は、ステップ2609のティア優先度処理2において、業務アプリケーションA403〜D406の性能を回復させるために有効な処理が実行されたか否かを判定する(2610)。例えば、ステップ2609において図28に示す処理が実行される場合、ステップ2802及び2804に示す処理が「有効な処理」に相当する。
ステップ2610において、有効な処理が実行されたと判定された場合、その処理によって、劣化した業務アプリケーションA403〜D406の性能が回復する可能性がある。この場合、マイグレーション制御部315は、次にステップ2612を実行する(後述)。
一方、ステップ2610において、有効な処理が実行されていないと判定された場合、劣化した業務アプリケーションA403〜D406の性能がまだ回復しないと考えられる。この場合、マイグレーション制御部315は、次に、選択されたマイグレーションジョブを対象として、アプリケーション・マイグレーション優先度処理を実行する(2611)。アプリケーション・マイグレーション優先度処理については、後で図31を参照して詳細に説明する。
マイグレーション実行プログラム180は、ステップ2611までの処理によってマイグレーションを制限した場合、その制限に関する通知をマイグレーション実行制御プログラム126に送信する(2612)。この通知には、少なくとも、制限されたマイグレーションジョブの識別子と、制限後の並列コピージョブ数とを示す情報が含まれる。マイグレーション実行制御プログラム126は、マイグレーション実行プログラム180から受信した情報に従って、DB303を更新する。具体的には、マイグレーション実行制御プログラム126は、jobとマイグレーションパスの関係情報テーブル700の並列コピージョブ数706を、マイグレーション制限後の値に更新する。
次に、マイグレーション制御部315は、性能劣化一時テーブル313に登録された次のマイグレーションジョブを選択して、ステップ2602から2612までの処理を繰り返す。性能劣化一時テーブル313に登録された全てのマイグレーションジョブを対象としてステップ2602から2612までの処理が終了するまで、ステップ2602から2612までの処理が繰り返し実行される(2601、2613)。
次に、マイグレーション制御部315は、性能回復一時テーブル314に登録されたマイグレーションジョブを選択する。そして、マイグレーション制御部315は、選択されたマイグレーションジョブを再開する方法としてユーザが選択した方法を判定する(2615)。マイグレーションジョブの再開とは、マイグレーションジョブの制限の解除を意味する。ここで、マイグレーションジョブの再開方法について説明する。
業務アプリケーションA403〜D406の性能が回復したとしても、その業務アプリケーションA403〜D406に関連する制限中のマイグレーションジョブの制限を直ちに完全に解除してしまえば、再び業務アプリケーションA403〜D406の性能が劣化するおそれがある。したがって、業務アプリケーションA403〜D406の性能が回復したときに、すぐにマイグレーションジョブの制限を完全に解除することは望ましくない。このため、マイグレーション制御部315は、業務アプリケーションA403〜D406の性能が再び劣化しないような方法で、マイグレーションジョブの制限を解除する必要がある。
このような解除の方法として、種々の方法が考えられる。本実施の形態には、二つの方法を示す。第1の方法によれば、マイグレーションジョブの制限が段階的に解除される(ステップ2616参照)。第2の方法によれば、他のマイグレーションジョブの実行が終了した後で、マイグレーションジョブの制限が解除される(ステップ2617参照)。
ステップ2615において、マイグレーションジョブの制限を段階的に解除することをユーザが選択したと判定された場合、マイグレーション制御部315は、マイグレーション再開処理1を実行する(2616)。一方、ステップ2615において、マイグレーションジョブの制限を段階的に解除することをユーザが選択しないと判定された場合、マイグレーション制御部315は、マイグレーション再開処理2を実行する(2617)。マイグレーション再開処理1及びマイグレーション再開処理2については、後で、それぞれ図32及び図33を参照して詳細に説明する。
マイグレーション実行プログラム180は、ステップ2616又は2617の処理によってマイグレーションを再開した場合、その再開に関する通知をマイグレーション実行制御プログラム126に送信する(2618)。この通知には、少なくとも、再開されたマイグレーションジョブの識別子と、再開後の並列コピージョブ数とを示す情報が含まれる。マイグレーション実行制御プログラム126は、マイグレーション実行プログラム180から受信した情報に従って、DB303を更新する。具体的には、マイグレーション実行制御プログラム126は、jobとマイグレーションパスの関係情報テーブル700の並列コピージョブ数706を、マイグレーション再開後の値に更新する。
次に、マイグレーション制御部315は、性能回復一時テーブル314に登録された次のマイグレーションジョブを選択して、ステップ2615から2618までの処理を繰り返す。性能回復一時テーブル314に登録された全てのマイグレーションジョブを対象としてステップ2615から2618までの処理が終了するまで、ステップ2615から2618までの処理が繰り返し実行される(2614、2619)。
以上で、マイグレーション制御処理が終了する。
図27は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するティア優先度処理を示すフローチャートである。
図27に示すティア優先度処理は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2604において実行される。ティア優先度処理は、各マイグレーションジョブにおける並列コピージョブ数を制限するか否かを、ティアの優先度に従って判定するために実行される。
最初に、マイグレーション制御部315は、選択されたマイグレーションジョブのマイグレーション元のLDEV_A468〜P483と、マイグレーション先のLDEV_A468〜P483とがいずれも低ティアであるか否かを判定する(2701)。具体的には、マイグレーション制御部315は、マイグレーション元のLDEV_A468〜P483を格納するストレージサブシステムA449〜C451と、マイグレーション先のLDEV_A468〜P483を格納するストレージサブシステムA449〜C451とがいずれも低ティアであるか否かを判定する。
例えば、マイグレーション制御部315は、jobとマイグレーションパスの関係情報テーブル700を参照して、マイグレーション元及びマイグレーション先のLDEVの識別子を取得する。さらに、マイグレーション制御部315は、LDEV・RAIDグループ間関連情報テーブル1500及びストレージサブシステム・RAIDグループ間関連情報テーブル1600を参照して、各LDEV_A468〜P483が属するストレージサブシステムA449〜C451を特定する。そして、マイグレーション制御部315は、ティア優先度情報テーブル900を参照して、各ストレージサブシステムA449〜C451に設定されたティア902の値が所定の閾値より高いか否かを判定してもよい。ティア902の値が所定の閾値より高くない場合、その値に対応するストレージサブシステムA449〜C451が低ティアであると判定される。
ステップ2701において、マイグレーション元とマイグレーション先とがいずれも低ティアであると判定された場合、マイグレーション元からマイグレーション先にコピーされるデータの重要性は低いままであると考えられる。この場合、マイグレーションの遅延は許容されると考えられる。このため、マイグレーション制御部315は、並列コピージョブ数を制限する(2702)。具体的には、マイグレーション制御部315は、jobとマイグレーションパスの関係情報テーブル700において、選択されたマイグレーションジョブのID701に対応する並列コピージョブ数706の値を低下させる。例えば、選択されたマイグレーションジョブのID701に対応する並列コピージョブ数706が「24」であった場合、マイグレーション制御部315は、その値を「12」に低下させてもよい。
ステップ2702が実行されると、マイグレーション制御部315は、ティア優先度処理を終了する。
一方、ステップ2701において、マイグレーション元とマイグレーション先との少なくとも一方が高ティアであると判定された場合、マイグレーション制御部315は、ステップ2702を実行せずにティア優先度処理を終了する。
上記のように、図27に示すティア優先度処理によれば、重要性が低いデータのマイグレーションが優先的に制限される。
図28は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するティア優先度処理2を示すフローチャートである。
図28に示すティア優先度処理2は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2609において実行される。ティア優先度処理2は、各マイグレーションジョブにおける並列コピージョブ数を制限するか否かを、ティアの優先度に従って判定するために実行される。
最初に、マイグレーション制御部315は、高ティアのマイグレーション元から低ティアのマイグレーション先へのマイグレーションジョブが実行されているか否かを判定する(2801)。マイグレーション元及びマイグレーション先が高ティアであるか低ティアであるかの判定は、図27のステップ2701と同様の方法によって実行されてもよい。
ステップ2801において、高ティアのマイグレーション元から低ティアのマイグレーション先へのマイグレーションジョブが一つでも実行されていると判定された場合、そのマイグレーションジョブによってコピーされるデータの重要性が低くなったと考えられる。この場合、マイグレーションの遅延は許容されると考えられる。このため、マイグレーション制御部315は、高ティアのマイグレーション元から低ティアのマイグレーション先へのマイグレーションジョブにおける並列コピージョブ数を制限する(2802)。この制限は、例えば、図27のステップ2702と同様にして実行されてもよい。
ステップ2802が終了すると、マイグレーション制御部315は、ティア優先度処理2を終了する。
一方、ステップ2801において、高ティアのマイグレーション元から低ティアのマイグレーション先へのマイグレーションジョブが一つも実行されていないと判定された場合、マイグレーション制御部315は、低ティアのマイグレーション元から高ティアのマイグレーション先へのマイグレーションジョブが実行されているか否かを判定する(2803)。
ステップ2803において、低ティアのマイグレーション元から高ティアのマイグレーション先へのマイグレーションジョブが一つでも実行されていると判定された場合、そのマイグレーションジョブによってコピーされるデータの重要性が高くなったと考えられる。この場合、マイグレーション制御部315は、低ティアのマイグレーション元から高ティアのマイグレーション先へのマイグレーションジョブにおける並列コピージョブ数を制限する(2804)。
ステップ2804が終了すると、マイグレーション制御部315は、ティア優先度処理2を終了する。
一方、ステップ2803において、低ティアのマイグレーション元から高ティアのマイグレーション先へのマイグレーションジョブが一つも実行されていないと判定された場合、マイグレーション制御部315は、どのマイグレーションジョブにおける並列コピージョブ数も制限せずに、ティア優先度処理2を終了する。
上記のティア優先度処理2(図28)は、ティア優先度処理(図27)より後に実行される(図26のステップ2604及び2609)。したがって、低ティアのマイグレーション元から低ティアのマイグレーション先へのマイグレーションが最も優先的に制限される(図27)。高ティアのマイグレーション元から低ティアのマイグレーション先へのマイグレーションと、低ティアのマイグレーション元から高ティアのマイグレーション先へのマイグレーションの両方が実行されている場合、前者のマイグレーションが優先的に実行される(図28)。このように、重要性の低いデータのマイグレーションを優先的に制限することによって、重要性の高いデータのマイグレーションが遅延することを防ぐことができる。
図29は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するアプリケーション優先度処理を示すフローチャートである。
図29に示すアプリケーション優先度処理は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2602において実行される。アプリケーション優先度処理は、各マイグレーションジョブにおける並列コピージョブ数を制限するか否かを、業務アプリケーションA403〜D406の優先度に従って判定するために実行される。
最初に、マイグレーション制御部315は、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の中に、選択されたマイグレーションジョブ(図29における「当該マイグレーション」)より優先されるものが存在するか否かを判定する(2901)。
具体的には、例えば、マイグレーション制御部315は、性能劣化一時テーブル313において、選択されたマイグレーションジョブのマイグレーションID1802に対応するアプリケーション1801を参照する。ここで参照されたアプリケーション1801が示す業務アプリケーションA403〜D406が、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406である。図18の例では、業務アプリケーションD406が、選択されたマイグレーションジョブに関連する。
そして、マイグレーション制御部315は、アプリケーションの優先度情報テーブル800を参照して、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406について設定されている優先度802が所定の閾値より高いか否かを判定する。選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406のうち少なくとも一つの優先度802の値が所定の閾値より高い場合、選択されたマイグレーションジョブより優先される業務アプリケーションA403〜D406が存在すると判定される(2901)。
ステップ2901において、選択されたマイグレーションジョブより優先される業務アプリケーションA403〜D406が存在すると判定された場合、マイグレーション制御部315は、選択されたマイグレーションジョブの並列コピージョブ数を制限する(2902)。この制限は、例えば、図27のステップ2702と同様にして実行されてもよい。
マイグレーション制御部315は、ステップ2902を実行すると、アプリケーション優先度処理を終了する。
一方、ステップ2901において、選択されたマイグレーションジョブより優先される業務アプリケーションA403〜D406が存在しないと判定された場合、マイグレーション制御部315は、ステップ2902を実行せずに、アプリケーション優先度処理を終了する。
図30は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するアプリケーション優先度処理2を示すフローチャートである。
図30に示すアプリケーション優先度処理2は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2607において実行される。アプリケーション優先度処理2は、各マイグレーションジョブにおける並列コピージョブ数を制限するか否かを、業務アプリケーションA403〜D406の優先度に従って判定するために実行される。
最初に、マイグレーション制御部315は、選択されたマイグレーションジョブが、その選択されたマイグレーションジョブに関連するいずれの業務アプリケーションA403〜D406よりも優先されるか否かを判定する(3001)。具体的には、例えば、マイグレーション制御部315は、図29のステップ2901と同様の方法によって、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406に設定されている優先度802が所定の閾値より高いか否かを判定する。
選択されたマイグレーションジョブに関連するいずれの業務アプリケーションA403〜D406に設定されている優先度802も所定の閾値より高くない場合、選択されたマイグレーションジョブが、その選択されたマイグレーションジョブに関連するいずれの業務アプリケーションA403〜D406よりも優先されると判定される(3001)。
ステップ3001において、選択されたマイグレーションジョブに関連する少なくとも一つの業務アプリケーションA403〜D406が、選択されたマイグレーションジョブより優先されると判定された場合、マイグレーション制御部315は、選択されたマイグレーションジョブの並列コピージョブ数を制限する(3002)。この制限は、例えば、図27のステップ2702と同様にして実行されてもよい。
一方、ステップ3001において、選択されたマイグレーションジョブが、その選択されたマイグレーションジョブに関連するいずれの業務アプリケーションA403〜D406よりも優先されると判定された場合、マイグレーション制御部315は、並列コピージョブ数を制限することができない。このため、マイグレーション制御部315は、並列コピージョブ数を制限することができない旨の通知を運用管理クライアント104に送信して(3003)、アプリケーション優先度処理2を終了する。
図29及び図30に示す処理によって、優先度が所定の閾値より高い業務アプリケーションA403〜D406に関連するマイグレーションが制限される。図8において説明したように、ユーザは、性能を低下させたくない業務アプリケーションA403〜D406に、高い優先度を設定する。図29及び図30に示す処理によって、高い優先度が設定された業務アプリケーションA403〜D406に関連するマイグレーションが制限される。このようにマイグレーションが制限されると、高い優先度が設定された業務アプリケーションA403〜D406が使用するリソースのボトルネックが緩和される。その結果、ユーザが性能を低下させたくないと考えている業務アプリケーションA403〜D406(すなわち、高い性能が要求される業務アプリケーションA403〜D406)の性能が優先的に回復する。
図31は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するアプリケーション・マイグレーション優先度処理を示すフローチャートである。
図31に示すアプリケーション・マイグレーション優先度処理は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2611において実行される。アプリケーション・マイグレーション優先度処理は、業務アプリケーションA403〜D406の優先度及びマイグレーションジョブの優先度のいずれもが高い場合に、各マイグレーションジョブにおける並列コピージョブ数を制限するか否かを判定するために実行される。
最初に、マイグレーション制御部315は、選択されたマイグレーションジョブの優先度と、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の優先度とがいずれも高いか否かを判定する(3101)。
例えば、選択されたマイグレーションジョブにおけるマイグレーション先のティア902及びマイグレーション元のティア902の少なくとも一方が所定の閾値より高い場合、選択されたマイグレーションジョブの優先度が高いと判定されてもよい。一方、業務アプリケーションA403〜D406に設定されている優先度802が所定の閾値より高い場合、業務アプリケーションA403〜D406の優先度が高いと判定されてもよい。
ステップ3101において、選択されたマイグレーションジョブの優先度と、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の優先度とのうち少なくとも一方が低いと判定された場合、マイグレーション制御部315は、後述するステップ3103及び3104のいずれも実行せずに処理を終了する。
一方、ステップ3101において、選択されたマイグレーションジョブの優先度と、選択されたマイグレーションジョブに関連する業務アプリケーションA403〜D406の優先度とがいずれも高いと判定された場合、マイグレーション制御部315は、ユーザが、選択されたマイグレーションジョブを業務アプリケーションA403〜D406より優先させているか否かを判定する(3102)。
例えば、ユーザは、マイグレーションジョブと、業務アプリケーションA403〜D406のいずれを優先させるかを予め任意に判定し、その判定の結果を、運用管理クライアント104を介して運用管理サーバ122に設定しておくことができる。その場合、マイグレーション制御部315は、ユーザによって設定された判定の結果に従って、ステップ3102の判定を実行する。
ステップ3102において、ユーザが、選択されたマイグレーションジョブを業務アプリケーションA403〜D406より優先させていると判定された場合、選択されたマイグレーションジョブの並列コピージョブ数を制限することができない。このため、マイグレーション制御部315は、業務アプリケーションA403〜D406によるI/Oを制限する何らかの処理を実行する(3104)。
一方、ステップ3102において、ユーザが、選択されたマイグレーションジョブを業務アプリケーションA403〜D406より優先させていないと判定された場合、マイグレーション制御部315は、業務アプリケーションA403〜D406の性能を回復させるために、マイグレーションジョブを制限する。具体的には、マイグレーション制御部315は、選択されたマイグレーションジョブの並列コピージョブ数を制限する(3103)。
ステップ3103又は3104が終了すると、マイグレーション制御部315は、アプリケーション・マイグレーション優先度処理を終了する。
図31に示すアプリケーション・マイグレーション優先度処理によれば、業務アプリケーションA403〜D406の優先度及びマイグレーションジョブの優先度のいずれもが高い場合、原則としてマイグレーションジョブの実行が優先される。(3102、3104)。しかし、ユーザが、業務アプリケーションA403〜D406の実行を優先させるように予め設定していた場合、業務アプリケーションA403〜D406の実行が優先される(3102、3103)。
図32は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するマイグレーション再開処理1を示すフローチャートである。
図32に示すマイグレーション再開処理1は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2616において実行される。マイグレーション再開処理1は、業務アプリケーションA403〜D406の性能が回復したときに、その業務アプリケーションA403〜D406に関連するマイグレーションの制限を解除するために実行される。
最初に、マイグレーション制御部315は、選択されたマイグレーションジョブが制限されているか否かを判定する(3201)。具体的には、マイグレーション制御部315は、jobとマイグレーションパスの関係情報テーブル700を参照して、選択されたマイグレーションジョブに対応する状態705に「制限中」が登録されている場合、選択されたマイグレーションジョブが制限されていると判定する。
ステップ3201において、選択されたマイグレーションジョブが制限されていると判定された場合、マイグレーション制御部315は、選択されたマイグレーションジョブの制限を段階的に解除する(3202)。その結果、現在設定されている並列コピージョブ数より大きく、マイグレーションジョブの制限が開始される前の並列コピージョブ数よりは小さい値が、新たな並列コピージョブ数として設定される。
図32には、例として、制限されているコピージョブ数(例えば「12」)が、制限されていないコピージョブ数(例えば「24」)の半分である場合を示す。この場合、現在設定されている並列コピージョブ数にその並列コピージョブ数の半分を加算した値を新たな並列コピージョブ数として設定して、マイグレーションが再開される。
例えば、図7に示すように、制限中のマイグレーションジョブ10と、制限されていないマイグレーションジョブ11とが実行されている場合について説明する。ここで、マイグレーションジョブ10及び11は、それぞれ、ID701の値「10」及び「11」によって識別されるマイグレーションジョブである。
ステップ3202において、マイグレーションジョブ10の制限が段階的に解除される場合、例えば、現在のマイグレーションジョブ10の並列コピージョブ数706の値「12」にその値の半分を加算した値「18」が、マイグレーションジョブ10の新たな並列コピージョブ数706として設定される。「18」は、制限された並列コピージョブ数「12」より大きく、制限される前のコピージョブ数「24」より小さい値である。以後、その新たな設定に従ってマイグレーションジョブが実行される。
ステップ3202が終了すると、マイグレーション制御部315は、マイグレーション再開処理1を終了する。
一方、ステップ3201において、選択されたマイグレーションジョブが制限されていないと判定された場合、マイグレーション制御部315は、マイグレーションジョブの制限を解除せずにマイグレーション再開処理1を終了する。
図33は、本発明の第1の実施の形態のマイグレーション実行制御プログラム126が実行するマイグレーション再開処理2を示すフローチャートである。
図33に示すマイグレーション再開処理2は、マイグレーション実行制御プログラム126内のマイグレーション制御部315によって、図26のステップ2617において実行される。マイグレーション再開処理2は、業務アプリケーションA403〜D406の性能が回復したときに、その業務アプリケーションA403〜D406に関連するマイグレーションの制限を解除するために実行される。
最初に、マイグレーション制御部315は、選択されたマイグレーションジョブが制限されているか否かを判定する(3301)。この判定は、図32のステップ3201と同様にして実行される。
ステップ3301において、選択されたマイグレーションジョブが制限されていると判定された場合、マイグレーション制御部315は、他の実行中のマイグレーションジョブが終了した後で、選択されたマイグレーションジョブの制限を解除する(3302)。
例えば、図7に示すように、制限中のマイグレーションジョブ10と、制限されていないマイグレーションジョブ11とが実行されている場合について説明する。ステップ3302においてマイグレーションジョブ10の制限が解除される場合、マイグレーション制御部315は、制限されていないマイグレーションジョブ11の実行が終了するのを待つ。マイグレーションジョブ11の実行が終了するまでの間、マイグレーションジョブ10は、並列コピージョブ数706が「12」に制限されたままで実行される。その後、マイグレーションジョブ11の実行が終了すると、マイグレーション制御部315は、マイグレーションジョブ10の並列コピージョブ数706を、制限が開始される前の並列コピージョブ数706の値「24」に変更する。以後、変更された並列コピージョブ数706に従ってマイグレーションジョブ10が実行される。
以上、本発明の第1の実施の形態によれば、業務アプリケーションA403〜D406の性能が低下すると、性能低下の原因となっている可能性があるマイグレーションが特定される。さらに、特定されたマイグレーションを制限するか否かが判定される。この判定は、各業務アプリケーションA403〜D406に設定された優先度、及び、各ストレージサブシステムA449〜C451に設定されたティアの優先度に基づいて実行される。そして、マイグレーションを制限すると判定された場合、制限が実行される。その結果、高い優先度が設定された各業務アプリケーションA403〜D406から優先的に性能が回復する。このように、本発明の第1の実施の形態によれば、業務アプリケーションA403〜D406の性能に与える影響が最小限に抑えられるようにマイグレーションの実行が制御される。このため、ユーザは、マイグレーションの実行を手動で設定する作業から解放される。
次に、本発明の第2の実施の形態について説明する。
本発明の第1の実施の形態においては、ストレージサブシステム170〜173の間でマイグレーションが実行される。しかし、第2の実施の形態に示すように、いずれか一つのストレージサブシステム170〜173の内部でマイグレーションが実行される場合にも、本発明を適用することができる。
図34は、本発明の第2の実施の形態の計算機システムの構成を示すブロック図である。
第2の実施の形態の計算機システムのうち、第1の実施の形態の計算機システムと同様の部分については、説明を省略する。
図34に示す業務クライアント100〜103、運用管理クライアント104、ホストサーバ110〜112、構成情報収集サーバ120〜121、運用管理サーバ122、ストレージサブシステム170及びSANスイッチ130〜132は、それぞれ、図1に示すものと同様である。ただし、第2の実施の形態のマイグレーション実行制御プログラム126は、後述するように、ティア優先度情報308として、ティア優先度情報テーブル3500を保持する(図35参照)。
第2の実施の形態のストレージサブシステム170のハードウェア構成は、図2Fに示す通りである。ただし、第2の実施の形態では、ストレージサブシステム170が保持するLDEV174〜176に、ストレージサブシステム170内の物理ディスク254〜256の物理的なデータ記憶領域が割り当てられている。マイグレーション実行プログラム180は、ストレージサブシステム170が保持するLDEV174〜176の一つから別の一つへのマイグレーションを実行する。
なお、図34には例として一つのストレージサブシステム170のみを示すが、第2の実施の形態の計算機システムは、SANスイッチ130〜132を介してホストサーバ110〜112に接続される複数のストレージサブシステムを備えてもよい。
図4に示すリソースの関係は、第2の実施の形態にも適用される。以下、第2の実施の形態のストレージサブシステム170がストレージサブシステムA449に相当する場合を例として説明する。この場合、図34のLDEV174〜176が、図4のLDEV_A468〜J477に相当する。図示されたLDEVの数が一致しないのは、それぞれの図において、説明に必要のない部分が省略されているためである。
第2の実施の形態では、LDEV_A468〜J477がティアによって分類される。例えば、各LDEV_A468〜J477に割り当てられた物理ディスク254〜256の性能に基づいて、各LDEV_A468〜J477のティアが決定されてもよい。具体的には、例えば、高性能な物理ディスク254〜256が割り当てられたLDEV_A468〜J477は高ティアに分類され、性能は高くないが安価な物理ディスク254〜256が割り当てられたLDEV_A468〜J477は低ティアに分類されてもよい。この場合、例えば、アクセス頻度の高いデータ及び高速にアクセスする必要があるデータが高ティアのLDEV_A468〜J477に格納され、それ以外のデータ(例えば、バックアップデータ)が低ティアのLDEV_A468〜J477に格納されてもよい。
図35は、本発明の第2の実施の形態のデータベース303に格納されるティア優先度情報308の説明図である。
第2の実施の形態では、図35に示すティア優先度情報テーブル3500が、ティア優先度情報308としてデータベース303に格納される。ティア優先度情報テーブル3500は、各LDEV_A468〜J477の階層(ティア)を示す情報、すなわち、各LDEV_A468〜J477に設定された優先度を示す情報を保持する。
ティア優先度情報テーブル3500は、LDEV3501及びティア3502の二つのカラムからなる。
LDEV3501には、LDEV_A468〜J477の識別子が登録される。
ティア3502には、LDEV_A468〜J477に設定されたティアが登録される。ティアは、階層管理サーバの階層管理プログラムによって設定される。例えば、最も高性能な物理ディスクが割り当てられたLDEV_A468〜J477に、最も高いティアが設定されてもよい。あるいは、ユーザが最も性能を低下させたくないと考えるLDEV_A468〜J477に、最も高いティアが設定されてもよい。
例えば、図35によれば、LDEV_A468〜E472のティア3502として「1」が登録され、LDEV_F473〜J477のティア3502として「2」が登録されている。これは、LDEV_A468〜E472に、LDEV_F473〜J477より高いティア(すなわち、高い優先度)が設定されていることを示す。
第2の実施の形態のマイグレーション実行制御プログラム126は、第1の実施の形態と同様、図20から図33に示す処理を実行する。その結果、第2の実施の形態においても、第1の実施の形態と同様、業務アプリケーションA403〜D406の性能に与える影響が最小限に抑えられるようにマイグレーションの実行が制御される。
次に、本発明の第3の実施の形態について説明する。
本発明の第1及び第2の実施の形態においては、ストレージサブシステム170〜173においてマイグレーションが実行される。しかし、第3の実施の形態に示すように、ストレージサブシステム170〜173の間でいわゆるリモートコピーが実行される場合にも、本発明を適用することができる。
図36は、本発明の第3の実施の形態の計算機システムの構成を示すブロック図である。
第3の実施の形態の計算機システムのうち、第1の実施の形態の計算機システムと同様の部分については、説明を省略する。
図36に示す業務クライアント100〜103、運用管理クライアント104、ホストサーバ110〜112、構成情報収集サーバ120〜121、運用管理サーバ122、ストレージサブシステム170及びSANスイッチ130〜132は、それぞれ、図1に示すものと同様である。ただし、第3の実施の形態の運用管理サーバ122は、リモートコピー実行制御プログラム3601を保持する。リモートコピー実行制御プログラム3601は、ディスクドライブ234に格納され、必要に応じてメモリ233にコピーされ、プロセッサ232によって実行される。
また、第3の実施の形態のストレージサブシステム170は、リモートコピー実行プログラム3602を保持する。リモートコピー実行プログラム3602は、ディスクドライブ253に格納され、必要に応じてメモリ252にコピーされ、プロセッサ251によって実行される。リモートコピー実行プログラム3602は、ストレージサブシステム170〜173の管理プログラムの一種である。具体的には、リモートコピー実行プログラム3602は、リモートコピー実行制御プログラム3601の制御を受けて、リモートコピーを実行する。
図4に示すリソースの関係は、第3の実施の形態にも適用される。例えば、第2の実施の形態のストレージサブシステム170がストレージサブシステムA449に相当し、ストレージサブシステム3603がストレージサブシステムB450又はC451のいずれかに相当してもよい。
リモートコピーは、ストレージサブシステムに格納されたデータをシステム障害又は災害等から保護し、業務を継続するために実行される。リモートコピーによって、例えば、ストレージサブシステム170のLDEV174〜176のいずれかに格納されたデータが、ストレージサブシステム3603内のLDEV3604にコピーされる。このため、リモートコピーは、第1及び第2の実施の形態のマイグレーションと同様、コピージョブを発生させる。発生したコピージョブによるデータI/Oは、計算機システムのリソースを使用する。
リモートコピーは、コピージョブによってデータがコピーされた後、コピー元のデータが削除されずに残る点において、マイグレーションと異なる。マイグレーションによれば、リモートコピーの場合と同様にコピージョブによってデータがコピーされるが、その後、コピー元のデータが削除される。すなわち、リモートコピーのために実行されるコピージョブは、マイグレーションのために実行されるコピージョブと同じである。したがって、第1及び第2の実施の形態において説明した処理を、第3の実施の形態にも適用することができる。
具体的には、第3の実施の形態の計算機システムの各部のハードウェア構成は、図2Aから図2Fに示す通りである。第3の実施の形態の計算機システムの機能ブロック図は、図3A及び図3Bに示す通りである。第3の実施の形態の計算機システムは、図5から図19に示したものと同様のテーブルを保持する。ただし、これらのテーブルにおいて、「マイグレーション」は「リモートコピー」によって置き換えられる。さらに、第3の実施の形態の運用管理サーバ122が保持するリモートコピー実行制御プログラム3601は、図20から図33に示したものと同様の処理を実行する。ただし、図2Aから図33において、「マイグレーション」は「リモートコピー」によって置き換えられる。その結果、第3の実施の形態によれば、業務アプリケーションA403〜D406の性能に与える影響が最小限に抑えられるようにリモートコピーの実行が制御される。
以上の本発明の第1から第3の実施の形態では、ストレージサブシステム170〜173においてマイグレーション又はリモートコピーが実行される場合を例として説明した。しかし、本発明は、上記の例によって限定されない。一つ以上の資源が、ホストサーバ110〜112によるデータI/Oと、ストレージサブシステム170〜173が実行する処理によって発生するデータI/Oとの両方に使用される場合に、本発明を適用することができる。ここで、ストレージサブシステム170〜173が実行する処理とは、マイグレーション又はリモートコピー以外の処理であってもよい。例えば、ストレージサブシステム170内のLDEV174〜176の一つから別の一つにデータをコピーする、いわゆるローカルコピーが実行される場合にも本発明を適用することができる。
以上の本発明の実施の形態によれば、一つ以上の資源が、ホストサーバ110〜112によるデータI/Oと、ストレージサブシステム170〜173が実行する処理によって発生するデータI/Oとの両方に使用されたことによってボトルネックが発生し、その結果、ホストサーバ110〜112の業務アプリケーション113の性能が劣化した場合に、ボトルネックが発生したリソースが特定され、特定されたリソースを示す情報がユーザに通知される。このため、ユーザは、業務アプリケーション113の性能を改善するための処理を実行することができる。
さらに、本発明の実施の形態によれば、運用管理サーバ122は、発生したボトルネックを解消するために、ボトルネックが発生したリソースを使用する処理を自動的に制御することができる。その結果、業務アプリケーション113の性能が回復する。このとき、運用管理サーバ122は、業務アプリケーション113に設定された優先度と、ストレージサブシステム170〜173の記憶領域に設定された優先度とに基づいて処理を制御することによって、高い性能が要求される業務アプリケーション113の性能を優先的に回復させることができる。