以下、図面を参照して本発明の実施形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。本発明が本実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。特に限定しない限り、各構成要素は複数でも単数でも構わない。
以下の説明では、例えば、「xxx表」の表現にて各種情報を説明することがあるが、各種情報は表以外のデータ構造で表現されていてもよい。各種情報がデータ構造に依存しないことを示すために、「xxx表」を「xxx情報」と呼ぶことがある。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号(又は参照符号における共通部分)を使用し、同種の要素を区別して説明する場合は、要素のID(又は要素の参照符号)を使用することがある。
また、以下の説明では、「計算機システム」は、1以上の計算機を含むシステムである。このため、「計算機システム」は、1つの計算機であってもよいし、複数の計算機であってもよいし、計算機の他に計算機以外のデバイスを含んでいてもよい。その1以上の計算機は、典型的には、少なくとも1つの物理計算機を含む。
その1以上の計算機は、少なくとも1つの仮想計算機を含んでもよい。
また、以下の説明では、「ストレージ管理装置」は、一以上の計算機で構成されてよい。具体的には、例えば、管理計算機が表示デバイスを有していて管理計算機が自分の表示デバイスに情報を表示する場合、管理計算機が管理システムでよい。また、例えば、管理計算機(例えばサーバ)が表示用情報を遠隔の表示用計算機(例えばクライアント)に送信し表示用計算機がその情報を表示する場合(管理計算機が表示用計算機に情報を表示する場合)、管理計算機と表示用計算機とのうちの少なくとも管理計算機を含んだシステムがストレージ管理装置でよい。
以下の説明では、「プログラム」あるいはそのプロセスを主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えば、CPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えば、メモリ)及び/又は通信インタフェース装置(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサであってもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
また、以下の説明では、「ドライブ」は、物理的な記憶デバイスを意味し、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)でよい。ドライブは、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。ストレージシステムに異なる種類のドライブが混在していてもよい。
[第1の実施形態]
以下、本発明の第1の実施形態について説明する。
図1は、本発明の一実施形態に係る計算機システムの構成を示すブロック図である。計算機システム400は、ストレージ装置410、ストレージ管理装置430、ホスト装置450を含んで構成される。
ストレージ装置410は、データ記憶装置である複数のドライブ416を有する。ドライブ416は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を用いて構成される。また、ストレージ装置410は、ホスト装置450に接続されるH-I/F(ホストインタフェースデバイス)413、ストレージ管理装置430に接続されるM-I/F(管理インタフェースデバイス)414、複数のドライブ416に接続されるD-I/F(ドライブインタフェースデバイス)415、メモリ412、及び、これらの要素に接続されるプロセッサ411を有する。
H-I/F413は、ストレージ装置410とホスト装置450の間で入出力されるデータのインタフェース処理を行うものであり、例えばHBA(Host Bus Adapter)でよい。M-I/F414は、ストレージ装置410とストレージ管理装置430の間で入出力されるデータのインタフェース処理を行うものであり、例えばNIC(Network Interface Card)でよい。ホスト装置450とH-I/F413は、ネットワーク421を介して接続される。ストレージ管理装置430とM-I/F414は、ネットワーク422を介して接続される。なお、ネットワーク421及び422は同一でもよい。ネットワーク421,422は、例えば、FC SAN(Fibre Channel Storage Area Network)、IP SAN(Internet Protocol Storage Area Network)、LAN(Local Area Network)、及びWAN(Wide Area Network)のいずれでもよい。
D-I/F415は、ホスト装置450からH-I/F413を介して入力されるライトコマンドやリードコマンドに応じて、複数のドライブ416の中で対応するドライブ416を制御する。これにより、指定された論理ボリューム内の当該ライトコマンド又はリードコマンドにおいて指定されたアドレス位置にデータを読み書きする。プロセッサ411は、メモリ412に記憶された各種プログラムやデータを用いて所定の処理を実行することで、H-I/F413、M-I/F414及びD-I/F415の動作を制御するとともに、ストレージ装置410の全体制御を行う。
このように、ストレージ装置410は、ドライブ416、H-I/F413、M-I/F414、D-I/F415、メモリ412及びプロセッサ411を含んだ物理的な計算機リソースを有する。これらの計算機リソースにより、ストレージ装置410は、データを読み書き可能な1つまたは複数の論理ボリュームをホスト装置450に提供する。ストレージ装置410は、ホスト装置450から、論理ボリュームを指定したI/Oコマンド(例えば、ライトコマンド又はリードコマンド)を受信し、そのI/Oコマンドを処理する。
ストレージ管理装置430は、NIC433、ドライブ434、メモリ432、及び、これらの要素に接続されるプロセッサ431を有する。NIC433は、ストレージ装置410のM-I/F414と同様に、ストレージ管理装置430とストレージ装置410の間で入出力されるデータのインタフェース処理を行うものである。ストレージ装置410とNIC433は、ネットワーク422を介して接続される。プロセッサ431は、メモリ432やドライブ434に記憶された各種プログラムやデータを用いて所定の処理を実行することで、NIC433の動作を制御するとともに、ストレージ管理装置430の全体制御を行う。
このように、ストレージ管理装置430は、NIC433、ドライブ434、メモリ432及びプロセッサ431を含んだ物理的な計算機リソースを有する。これらの計算機リソースにより、ストレージ管理装置430は、ストレージ装置410がホスト装置450に提供する論理ボリュームを管理する。
図2は、ストレージ装置410のメモリ412内のプログラムおよびデータと、ストレージ装置410のプロセッサ411により実現される機能ブロックとを示すブロック図である。メモリ412には、スループット制限通知プログラム501、通信プログラム502、構成変更プログラム503、稼働情報送信プログラム504およびI/O処理プログラム505の各プログラムと、構成情報格納表520、稼働情報格納表521及びスループット状態管理表522の各情報とが記録されている。各プログラムはプロセッサ411によりメモリ412から読み出されて実行され、各情報はこれらのプログラムをプロセッサ411が実行する際に利用される。
スループット制限通知プログラム501は、プロセッサ411により定期的に起動して実行される。スループット制限通知プログラム501は、構成情報格納表520を参照し、スループット状態管理表522を定期的に更新するとともに、いずれかの論理ボリュームのスループットが設定されたスループット上限値に到達すると、そのことを検知してストレージ管理装置430に通知する。構成情報格納表520には、ストレージ装置410における論理ボリュームの構成と、各論理ボリュームに対して設定されているスループット上限値の情報が格納されている。スループット状態管理表522には、設定されたスループット上限値に対して各論理ボリュームのスループットがどの程度余裕があるかを表す情報が格納されている。プロセッサ411は、スループット制限通知プログラム501を実行することにより、論理ボリュームのスループットが設定されたスループット上限値に到達したことを検知するスループット制限検知部511として機能する。
通信プログラム502は、他のプログラムから呼び出されて実行され、ストレージ管理装置430との通信処理を行う。プロセッサ411は、通信プログラム502を実行することにより、M-I/F414の動作を制御してストレージ管理装置430との通信を行う通信制御部512として機能する。
構成変更プログラム503は、ストレージ管理装置430からの指示を受領し、ストレージ装置410の論理ボリュームの構成を変更する。そして、変更後の論理ボリュームの構成に応じて構成情報格納表520を更新する。プロセッサ411は、構成変更プログラム503を実行することにより、論理ボリュームの構成を変更する構成変更部513として機能する。
稼働情報送信プログラム504は、各論理ボリュームの稼働情報を稼働情報格納表521から取得し、通信プログラム502を用いてストレージ管理装置430に送信する。稼働情報格納表521には、ストレージ装置410の各論理ボリュームの稼働状況を表す稼働情報として、例えば各論理ボリュームのスループット等の情報が格納されている。プロセッサ411は、稼働情報送信プログラム504を実行することにより、論理ボリュームの稼働情報をストレージ管理装置430に提供する稼働情報提供部514として機能する。
I/O処理プログラム505は、ホスト装置450への論理ボリュームの提供を実現する処理を行う。I/O処理プログラム505は、ホスト装置450からH-I/F413を介して任意の論理ボリュームへのI/O処理要求を受信すると、これに応じてD-I/F415を制御し、設定されたスループット上限値の範囲内で、当該論理ボリュームに対応するドライブ416からのデータの読み出し処理や、当該ドライブ416への書き込み処理を実施する。また、I/O処理時の情報を用いて、稼働情報格納表521やスループット状態管理表522を逐次更新する。プロセッサ411は、I/O処理プログラム505を実行することにより、論理ボリュームへのI/O要求に応じて、論理ボリュームへのデータの書き込みおよび論理ボリュームからのデータの読み出しを、論理ボリュームごとに設定されたスループット上限値内で行うI/O処理部515として機能する。
図3は、ストレージ管理装置430のメモリ432内のプログラムおよびデータと、ストレージ管理装置430のプロセッサ431により実現される機能ブロックとを示すブロック図である。メモリ432には、スループット上限値設定管理プログラム601、稼働情報収集プログラム602、ボリューム操作処理プログラム603及び通信プログラム604の各プログラムと、スループット上限値設定管理表621、スループット上限値更新条件管理表622、契約情報管理表623、限界性能管理表624および稼働情報管理表625の各情報とが記録されている。各プログラムはプロセッサ431によりメモリ432から読み出されて実行され、各情報はこれらのプログラムをプロセッサ431が実行する際に利用される。なお、これらのプログラムの一部または全部をメモリ432ではなくドライブ434に記録してもよい。
スループット上限値設定管理プログラム601は、ストレージ装置410の各論理ボリュームに対するスループット上限値の設定状態を管理する。スループット上限値設定管理プログラム601は、スループット上限値設定管理表621、スループット上限値更新条件管理表622、契約情報管理表623、限界性能管理表624および稼働情報管理表625から情報をそれぞれ取得し、これらの情報に基づいて、各論理ボリュームに対するスループット上限値の変更可否を判定する。その結果、スループット上限値の変更が可能と判定した場合には、ストレージ装置410に対して、当該論理ボリュームに対するスループット上限値の変更指示を、通信プログラム604を用いて送信する。プロセッサ431は、スループット上限値設定管理プログラム601を実行することにより、論理ボリュームごとに設定されるスループット上限値を管理する管理部611として機能する。
稼働情報収集プログラム602は、ストレージ装置410から送信される各論理ボリュームの稼働情報を、通信プログラム604を用いて受信することで、各論理ボリュームの稼働情報を収集する。収集した稼働情報は、稼働情報管理表625に記録される。プロセッサ431は、稼働情報収集プログラム602を実行することにより、論理ボリュームの稼働情報を収集する稼働情報収集部612として機能する。
ボリューム操作処理プログラム603は、ユーザからの指示を受け、通信プログラム604を用いて、ストレージ装置410にボリューム作成やボリューム削除の指示を送信する。この指示に応じてストレージ装置410の構成変更プログラム503が行う処理により、ストレージ装置410において新たな論理ボリュームが作成・追加されたり、作成済みの論理ボリュームが削除されたりすることで、論理ボリュームの構成が変更される。また、ボリューム操作処理プログラム603は、変更後の論理ボリュームの構成に合わせて、スループット上限値設定管理表621、契約情報管理表623および限界性能管理表624を更新する。プロセッサ431は、ボリューム操作処理プログラム603を実行することにより、ストレージ装置410における論理ボリュームの構成を操作するボリューム操作部613として機能する。
通信プログラム604は、他のプログラムから呼び出されて実行され、ストレージ装置410との通信処理を行う。プロセッサ431は、通信プログラム604を実行することにより、NIC433の動作を制御してストレージ装置410との通信を行う通信制御部614として機能する。
続いて、計算機システム400が行う処理の概要について説明する。計算機システム400は、前述のような構成により、ストレージ装置410へのデータの入出力のターゲットとして論理ボリュームを提供することができる。このとき、ストレージ装置410が提供する各論理ボリュームに対してスループット上限値を設定し、各論理ボリュームのスループットが設定されたスループット上限値内となるように、各論理ボリュームを対象として行われるデータの書き込みと読み出しを制限するスループット制限を行う。さらに、論理ボリュームごとに設定された所定の条件を満たす場合には、当該論理ボリュームのスループット上限値を緩和し、本来のスループット上限値よりも多くのデータ量での書き込みと読み出しを許可する。これにより、ボリュームのスループットを制限しつつ、必要に応じてスループットを追加で割り当てるようにしている。こうした処理を実現するため、本実施形態の計算機システム400では、スループット上限値の設定処理と、スループット上限値の更新処理と、スループット上限値の再更新処理とが実行される。以下では、これらの処理の概要を説明する。
図4は、スループット上限値の設定処理の概要を示す模式図である。スループット上限値の設定処理とは、ストレージ装置410の論理ボリューム構成が変更されたときに、各論理ボリュームに対してスループット上限値を設定する処理である。この処理は、ユーザが論理ボリュームを作成する契機や、ユーザがスループット上限値の設定機能を有効にした契機で、次のようにして行われる。
ストレージ管理装置430において、スループット上限値設定管理プログラム601は、限界性能管理表624および契約情報管理表623から、ストレージ装置410が処理可能なスループットの最大値に関する情報と、スループット上限値の設定対象とする論理ボリュームの契約情報に関する情報とをそれぞれ取得する(図4(1)、(2))。これらの情報に基づいてストレージ装置410の余力の有無を確認し、余力有りと判断した場合は、当該論理ボリュームのスループット上限値を計算する。
次に、スループット上限値設定管理プログラム601は、スループット上限値の計算結果を用いて、スループット上限値設定管理表621と限界性能管理表624を更新する(図4(3)、(4))。その後、スループット上限値設定管理プログラム601は、通信プログラム604を用いて、ストレージ装置410にスループット上限値の設定指示を送信する(図4(6)、(7))。
ストレージ装置410では、通信プログラム502がストレージ管理装置430からのスループット上限値の設定指示を受け取り、構成変更プログラム503へ出力する(図4(8))。構成変更プログラム503は、このスループット上限値の設定指示に応じて、対象とする論理ボリュームにスループット上限値を設定し、構成情報格納表520を更新する(図4(9))。これにより、構成変更後の各論理ボリュームに対してスループット上限値が設定される。
図5は、スループット上限値の更新処理の概要を示す模式図である。スループット上限値の更新処理とは、ストレージ装置410が提供する複数の論理ボリュームのうち、ある論理ボリュームのスループットがあらかじめ設定されたスループット上限値へ到達した際に、スループット上限値をより大きな値に更新することでスループット制限を緩和する処理である。この処理は、次のようにして行われる。
ストレージ装置410において、I/O処理プログラム505は、各論理ボリュームのスループット(単位時間当たりのI/O処理回数)をカウントし、スループットが設定されたスループット上限値に到達したかどうかを、スループット状態管理表522の情報を元に論理ボリュームごとに判断する(図5(1))。そして、ある論理ボリュームのスループットがスループット上限値に到達した場合には、その旨をスループット制限通知プログラム501に通知する(図5(2))。この通知を受けると、スループット制限通知プログラム501は、当該論理ボリュームのスループットがスループット上限値に到達するのを検知し、通信プログラム502を用いて、当該論理ボリュームのスループットが設定されているスループット上限値に到達したことをストレージ管理装置430に通知する(図5(3)、(4))。
ストレージ管理装置430では、通信プログラム604がストレージ装置410からの通知を受け取り、スループット上限値設定管理プログラム601へ出力する(図5(5))。スループット上限値設定管理プログラム601は、この通知に応じて、スループット上限値更新条件管理表622の情報を参照し(図5(6))、スループット上限値を更新するかどうかを判断する。その結果、更新すると判断した場合は、スループット上限値設定管理表621から更新後のスループット上限値を取得し(図5(7))、通信プログラム604を用いて、ストレージ装置410にスループット上限値の更新指示を送信する(図5(8)、(9))。
ストレージ装置410では、通信プログラム502がストレージ管理装置430からのスループット上限値の更新指示を受け取り、構成変更プログラム503へ出力する(図5(10))。構成変更プログラム503は、このスループット上限値の更新指示に応じて、構成情報格納表520を更新し、スループット上限値の値を切り替える(図5(11))。スループット制限通知プログラム501は、更新後の構成情報格納表520を参照し(図5(12))、スループット状態管理表522を更新する(図5(13))。その後、I/O処理プログラム505は、更新後のスループット上限値を用いて、当該論理ボリュームのスループットがスループット上限値に到達したか否かの判断を行う。
図6は、スループット上限値の再更新処理の概要を示す模式図である。スループット上限値の再更新処理とは、図5の処理によってスループット上限値を更新したストレージ装置410の論理ボリュームにおけるスループットが、更新前のスループット上限値未満になった際に、スループット上限値を再度更新してスループット制限を元の状態に戻す処理である。この処理は、次のようにして行われる。
ストレージ装置410において、稼働情報送信プログラム504は、通信プログラム502を用いて、各論理ボリュームの稼働情報を定期的にストレージ管理装置430に送信する(図6(1)、(2))。
ストレージ管理装置430では、通信プログラム604がストレージ装置410から送信された稼働情報を受け取り、稼働情報収集プログラム602へ出力する(図6(3))。稼働情報収集プログラム602は、受け取った稼働情報を収集し、稼働情報管理表625に格納する(図6(4))。スループット上限値設定管理プログラム601は、稼働情報管理表625に格納されている各論理ボリュームの稼働情報と、スループット上限値更新条件管理表622に格納されている情報とを参照し(図6(5)、(6))、スループット上限値を更新済みの全ての論理ボリュームに対して、スループット上限値を元に戻すかどうかを判断する。その結果、元に戻すと判断した場合は、スループット上限値設定管理表621から元のスループット上限値を再更新後のスループット上限値として取得し(図6(7))、通信プログラム604を用いて、ストレージ装置410にスループット上限値の更新指示を送信する(図6(8)、(9))。
ストレージ装置410では、通信プログラム502がストレージ管理装置430からのスループット上限値の更新指示を受け取り、構成変更プログラム503へ出力する(図6(10))。構成変更プログラム503は、このスループット上限値の更新指示に応じて、構成情報格納表520を再更新し、スループット上限値の値を再び切り替える(図6(11))。
図7は、ストレージ装置410内のメモリ412に記憶されるスループット状態管理表522の模式図である。スループット状態管理表522は、ストレージ装置410で定義されている論理ボリュームのIDに関するデータと、各論理ボリュームに対してI/O処理プログラム505が処理可能なI/O要求の残数のデータとを保持する。I/O処理プログラム505が処理可能なI/O要求の残数は、I/O処理プログラム505がI/O処理を行うたびに減算され、0になるとそれ以上のI/O処理の実行が制限される。また、単位時間(例えば1秒間)が経過すると、論理ボリュームごとに設定されているスループット上限値に応じた初期値にリセットされる。これにより、ストレージ装置410において、各論理ボリュームのスループットが設定されたスループット上限値内に制限される。なお、I/O処理プログラム505が処理可能なI/O要求の残数は、要求種別ごとに分かれていてもよいし、それぞれ異なる値を設定してもよい。
図8は、ストレージ装置410内のメモリ412に記憶される構成情報格納表520の模式図である。構成情報格納表520は、ストレージ装置410で定義されている論理ボリュームのID、容量、使用量に関するデータと、各論理ボリュームに対してI/O処理プログラム505が1秒間に処理可能なスループット上限値のデータとを保持する。これらのデータは、構成変更プログラム503によって更新されるとともに、スループット制限通知プログラム501によって参照される。なお、I/O処理プログラム505が1秒間に処理可能なスループット上限値は、スループット状態管理表522のI/O要求残数と論理ボリュームごとに対応付けて設定されており、要求種別ごとに分かれていてもよいし、それぞれ異なる値を設定してもよい。
図9は、ストレージ装置410内のメモリ412に記憶される稼働情報格納表521の模式図である。稼働情報格納表521は、ストレージ装置410で定義されている論理ボリュームのIDに関するデータと、各論理ボリュームのスループットおよびレスポンス時間と、当該データを採取した時間のデータとを保持する。これらのデータは、所定時間ごとに記録されるとともに、稼働情報送信プログラム504によって所定時間ごとにストレージ管理装置430へ送信される。
図10は、ストレージ管理装置430内のメモリ432に記憶されるスループット上限値設定管理表621の模式図である。スループット上限値設定管理表621は、ストレージ装置410のIDに関するデータと、当該IDを持つストレージ装置410で定義されている各論理ボリュームのIDに関するデータと、各論理ボリュームのスループット上限値に関するデータと、各論理ボリュームに対してどのスループット上限値が現在適用されているかを示すデータとを保持する。これらのデータは、スループット上限値設定管理プログラム601によって参照および更新される。なお、図10の模式図では、各論理ボリュームに2つのスループット上限値(上限値1、上限値2)が設定される場合の例を示しているが、各論理ボリュームに設定されるスループット上限値の数は2つに限らず、3つ以上であってもよい。以降では、各論理ボリュームに設定されるスループット上限値が2つの場合の例を説明するが、3つ以上のスループット上限値が設定される場合にも、それに応じたデータ形式を適用することで同様の処理が可能である。
図11は、ストレージ管理装置430内のメモリ432に記憶されるスループット上限値更新条件管理表622の模式図である。スループット上限値更新条件管理表622は、ストレージ装置410のIDに関するデータと、当該IDを持つストレージ装置410で定義されている各論理ボリュームのIDに関するデータと、各論理ボリュームのスループット上限値の切り替え条件に関するデータとを保持する。これらのデータは、スループット上限値設定管理プログラム601によって参照および更新される。スループット上限値更新条件管理表622において、スループット上限値の切り替え条件は、2つのスループット上限値の一方(上限値1)から他方(上限値2)に切り替える場合と、他方(上限値2)から一方(上限値1)に切り替える場合とで、それぞれ別々に設定される。上限値2から上限値1に切り替える場合は、切り替え条件を省略してもよい。また、切り替え条件はユーザが任意に入力可能としてもよいし、あらかじめ決められた複数の切り替え条件からユーザが選択可能としてもよいし、自動で設定してもよい。
図12は、ストレージ管理装置430内のメモリ432に記憶される契約情報管理表623の模式図である。契約情報管理表623は、ストレージ装置410のIDに関するデータと、当該IDを持つストレージ装置410で定義されている各論理ボリュームのID、容量、使用量に関するデータと、各論理ボリュームのスループット上限値を規定する契約情報に関するデータとを保持する。契約情報に関するデータにおいて、スループット上限値は、例えば図12のような性能と容量の比率(単位容量当たりのスループット上限値)で表されてもよいし、性能の絶対値(任意容量でのスループット上限値)で表されてもよい。また図12で示すように、スループット上限値を性能と容量の比率で表す場合には、その最低値、すなわち論理ボリュームの容量に関わらず最低限保証されるスループット上限値を、契約情報に関するデータに含めてもよい。なお、ここで表されるスループット上限値は、前述の上限値1に相当するものである。これらのデータは、スループット上限値設定管理プログラム601によって参照および更新される。
図13は、ストレージ管理装置430内のメモリ432に記憶される限界性能管理表624の模式図である。限界性能管理表624は、ストレージ装置410のIDに関するデータと、当該IDを持つストレージ装置410の部位ごとの性能情報に関するデータと、当該ストレージ装置410の限界性能に関するデータと、当該ストレージ装置410に定義されている各論理ボリュームのスループット上限値の合計値に関するデータとを保持する。部位ごとの性能情報に関するデータは、例えばプロセッサ(CPU)411、ドライブ416、ネットワーク421の各部位について、当該部位の現在使用中の構成により1秒間にI/O処理可能なデータ数を表す使用中性能と、当該部位に搭載されており現状では未使用の構成を使用した場合に追加で1秒間にI/O処理可能なデータ数を表す未使用性能と、当該部位に搭載可能な構成を増設した場合に追加で1秒間にI/O処理可能なデータ数を表す増設可能量とを含んで構成される。また、ストレージ装置410の限界性能は、例えば以下の式(1)~(3)でそれぞれ求められる使用中限界性能、未使用限界性能および増設可能限界性能を含んで構成される。式(1)~(3)において、min{(A),(B),(C)}は、(A)、(B)、(C)のうち最小値を表す関数である。なお、(A)、(B)、(C)は、プロセッサ411、ドライブ416、ネットワーク421における任意の性能値をそれぞれ表す。
使用中限界性能=min{(CPUの使用中性能),(ドライブの使用中性能),(ネットワークの使用中性能)}・・・(1)
未使用限界性能=min{(CPUの使用中性能+未使用性能),(ドライブの使用中性能+未使用性能),(ネットワークの使用中性能+未使用性能)}-使用中限界性能・・・(2)
増設可能限界性能=min{(CPUの使用中性能+未使用性能+増設可能量),(ドライブの使用中性能+未使用性能+増設可能量),(ネットワークの使用中性能+未使用性能+増設可能量)}-未使用限界性能・・・(3)
図13に示す限界性能管理表624の各データは、スループット上限値設定管理プログラム601によって参照および更新される。
図14は、ストレージ管理装置430内のメモリ432に記憶される稼働情報管理表625の模式図である。稼働情報管理表625は、ストレージ装置410のIDに関するデータと、当該IDを持つストレージ装置410で定義されている各論理ボリュームのIDに関するデータと、各論理ボリュームの稼働情報に関するスループット、レスポンス時間および取得時間のデータとを保持する。これらのデータは、スループット上限値設定管理プログラム601によって参照される。
続いて、計算機システム400が行う処理の詳細について、フローチャートを参照して以下に説明する。
図15は、ストレージ管理装置430のボリューム操作処理プログラム603によって実行されるボリューム作成処理のフローチャートである。本処理は、ユーザが不図示の入出力装置を用いて、ストレージ装置410の論理ボリューム作成指示をストレージ管理装置430に対して行った際に実行される。
ボリューム操作処理プログラム603は、通信プログラム604を介して、ユーザからのボリューム作成依頼を受信する(S15010)。ここで受信されるボリューム作成依頼は、論理ボリュームの作成対象であるストレージ装置410のIDに関するデータと、作成する論理ボリュームの容量に関するデータとを含む。その後、スループット上限値設定管理プログラム601を呼び出して、図16に示すストレージ装置余力有無判定処理を実行させる(S15015)。この処理では、新規に論理ボリュームを作成してスループット上限値を設定した際に、既存の論理ボリュームを含めたスループット上限値の合計がストレージ装置410の限界性能未満であるか否かを判定することで、ストレージ装置410における余力の有無の判定が行われる。すなわち、新規の論理ボリュームを合わせたスループット上限値の合計がストレージ装置410の限界性能に到達しなければ、ストレージ装置410において新規にボリュームを作成できるということになる。
その後、ボリューム操作処理プログラム603は、スループット上限値設定管理プログラム601からS15015の処理結果を取得し、ストレージ装置410における余力の有無を判定する(S15020)。その結果、余力ありと判定された場合(S15020:Y)、すなわちストレージ装置410において論理ボリュームの追加が可能と判定された場合は、作成する論理ボリュームのデータを契約情報管理表623に追加して契約情報管理表623を更新した後、通信プログラム604を用いて、ストレージ装置410に対するボリューム作成指令を送信する(S15025)。このボリューム作成指令に応じて、ストレージ装置410が新たに論理ボリュームを作成することにより、計算機システム400において論理ボリュームの追加が行われる。
続いて、ボリューム操作処理プログラム603は、スループット上限値設定管理プログラム601を呼び出し、図17、図18にそれぞれ示すスループット上限値1の計算処理およびスループット上限値2の計算処理を実行させる(S15030、S15035)。そして、これらの処理結果を用いて、図19に示すスループット上限値の設定処理を実行させる(S15040)。その後、通信プログラム604を用いて、論理ボリュームの作成完了応答をユーザに送信し(S15045)、図15の処理フローを終了する。
一方、S15020で余力なしと判定された場合(S15020:N)、ボリューム操作処理プログラム603は、スループット上限値設定管理プログラム601を呼び出して、図20に示すストレージ装置余力拡張処理を実行させる(S15021)。この処理では、計算機システム400においてストレージ装置410や他の装置に未使用のハードウェア資源があり、そのハードウェア資源を使用することでストレージ装置410の余力を拡張できるか否かの判定が行われる。そして、ストレージ装置410の余力を拡張できると判定された場合には、当該ハードウェア資源を計算機システム400内に組み入れてストレージ装置410の余力が拡張される。これにより、ストレージ装置410において論理ボリュームの追加が可能となる。
その後、ボリューム操作処理プログラム603は、S15021のストレージ装置余力拡張処理においてストレージ装置410の余力を拡張できたか否かを判定する(S15022)。S15022でストレージ装置410の余力を拡張できたと判定された場合(S15022:Y)、S15020でストレージ装置410の余力ありと判定された場合と同様に、S15025に進んでストレージ装置410に対するボリューム作成指示を行う。このボリューム作成指令に応じて、ストレージ装置410が新たに論理ボリュームを作成することにより、計算機システム400において、これまでに未使用であった資源を活用した論理ボリュームの追加が行われる。
S15022でストレージ装置410の余力を拡張できなかったと判定された場合(S15022:N)、すなわち、S15021のストレージ装置余力拡張処理において、ストレージ装置410には論理ボリュームの追加に耐えうる余力を拡張できるハードウェア資源が存在せず、そのため論理ボリュームの追加が不可能と判定された場合、ボリューム操作処理プログラム603は、指定されたストレージ装置410の他にもユーザが利用可能なストレージ装置があるかどうかを判断する(S15050)。その結果、利用可能なストレージ装置が他にある場合(S15050:Y)は、別のストレージ装置での論理ボリューム作成を推薦する情報を、通信プログラム604を用いてユーザに送信する(S15055)。ここでは、例えばユーザに対する所定のメッセージを出力することで、指定されたストレージ装置410はスループット上限値に余力がないことをユーザに伝えて、他のストレージ装置で論理ボリュームを作成するようにユーザに促す。一方、利用可能なストレージ装置が他にない場合(S15050:N)は、論理ボリュームの作成が不可能であることを通知する作成不可応答を、通信プログラム604を用いてユーザに送信する(S15060)。
このように、本実施形態の計算機システム400では、ストレージ管理装置430のボリューム操作処理プログラム603が図15のボリューム作成処理を実行することにより、ストレージ装置410における余力の有無を判定し、余力ありと判定された場合、または、未使用の資源を活用してストレージ装置410の余力を拡張することでストレージ装置410のスループットの限界値を更新した場合に、論理ボリュームを作成するためのボリューム作成指令をストレージ装置410へ送信する。ストレージ装置410では、このボリューム作成指令に応じて論理ボリュームを追加する。これにより、常にストレージ装置410に余力を持たせるように、つまり、スループット制限を緩和する前の上限値1だけでストレージ装置410の性能を使い切らないように、ストレージ装置410の論理ボリュームを構成することができる。したがって、ある論理ボリュームのスループットが急激に増加した際には必要に応じて、他の論理ボリュームに影響を与えることなく、当該論理ボリュームに対して追加のスループットを割り当てるスループット制限緩和の実施可能性を保証できる。
図16は、図15のS15015でスループット上限値設定管理プログラム601によって実行される、本発明の第1の実施形態に係るストレージ装置余力有無判定処理のフローチャートである。
スループット上限値設定管理プログラム601は、限界性能管理表624から、論理ボリュームの作成対象に指定されたストレージ装置410の限界性能における使用中性能の値と、当該ストレージ装置410において作成済みの各論理ボリュームのスループット上限値1の合計値とを取得する(S16010)。続いて、図17に示すスループット上限値1の計算処理を実行し、新規に作成する論理ボリュームのスループット上限値1を算出する(S16015)。
次に、スループット上限値設定管理プログラム601は、S16010で取得した既存の論理ボリュームのスループット上限値1の合計値と、S16015で算出した新規論理ボリュームのスループット上限値1との和を算出し、その和の値が、S16010で取得したストレージ装置410の限界性能における使用中性能の値を超えていないかどうか判定する(S16020)。その結果、和の値がストレージ装置410の限界性能における使用中性能の値未満である場合(S16020:Y)は、余力ありとの判定結果を下し(S16025)、そうでない場合(S16020:N)は、余力なしとの判定結果を下す(S16030)。余力あり、または余力なしのいずれかの判定結果が得られたら、図16の処理フローを終了する。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図16のストレージ装置余力有無判定処理を実行することにより、ユーザからの論理ボリュームの追加指示に応じて、限界性能管理表624が表すストレージ装置410のスループットの限界値およびストレージ装置410において作成済みの論理ボリュームに対して設定されているスループット上限値1と、未作成の論理ボリュームに対して設定されるスループット上限値1とに基づいて、論理ボリュームの追加が可能か否かを判定することができる。その結果、論理ボリュームの追加が可能と判定した場合には、図15のS15025が実行されることで、論理ボリュームを作成するためのボリューム作成指令をストレージ装置410へ出力し、これに応じてストレージ装置410において論理ボリュームを追加する一方で、論理ボリュームの追加が不可能と判定した場合には、ボリューム作成指令の出力を行わず、ストレージ装置410において論理ボリュームが追加されないようにすることができる。
図17は、図15のS15030、図16のS16015でスループット上限値設定管理プログラム601によって実行される、本発明の第1の実施形態に係るスループット上限値1の計算処理のフローチャートである。
スループット上限値設定管理プログラム601は、契約情報管理表623から、新規作成する論理ボリュームの契約情報とボリュームサイズ(定義容量)の情報を取得し(S17010、S17015)、これらの情報に基づいて、スループット上限値1を算出する(S17020)。具体的には、例えば、契約情報に含まれる性能と容量の比率にボリュームサイズを乗算することで、スループット上限値1を算出することができる。
次に、スループット上限値設定管理プログラム601は、S17020で算出したスループット上限値1と、S17010で取得した契約情報に含まれるスループット上限値の最低値とを比較し、スループット上限値1が最低値以上であるか否かを判定する(S17025)。このS17025の判定処理は、算出したスループット上限値1が契約上設定可能な最低値以上かどうかを判断するための処理である。その結果、スループット上限値1が最低値以上の場合(S17025:Y)は、S17020の算出結果を新規作成する論理ボリュームのスループット上限値1として採用し(S17030)、その値を用いて、スループット上限値設定管理表621および限界性能管理表624を更新する(S17040)。その後、図17の処理フローを終了する。
一方、算出したスループット上限値1が最低値未満の場合(S17025:N)、スループット上限値設定管理プログラム601は、その最低値を新規作成する論理ボリュームのスループット上限値1として採用し(S17035)、スループット上限値設定管理表621および限界性能管理表624を更新する(S17040)。その後、図17の処理フローを終了する。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図17のスループット上限値1の計算処理を実行することにより、メモリ432に記憶された契約情報管理表623に含まれる契約情報で規定された論理ボリュームの単位容量ごとのスループット上限値と容量との乗算値に基づいて、新規作成する論理ボリュームのスループットに対して設定される上限値1を算出することができる。
図18は、図15のS15035でスループット上限値設定管理プログラム601によって実行されるスループット上限値2の計算処理のフローチャートである。
スループット上限値設定管理プログラム601は、限界性能管理表624から、ストレージ装置410の限界性能における使用中性能の値と、各論理ボリュームのスループット上限値1の合計値とを取得し、前者から後者を減算してこれらの差分を計算する(S18010)。この差分は、スループット制限を緩和する前のストレージ装置410のスループットの余力に相当する。そして、計算した差分をストレージ装置410の論理ボリューム数で除算した商を求め、図17の処理によって計算したスループット上限値1にその商を加えた値を、スループット上限値2として設定する(S18015)。その後、設定したスループット上限値2を用いてスループット上限値設定管理表621および限界性能管理表624を更新したら(S18020)、図18の処理フローを終了する。
なお、上記では2つのスループット上限値を上限値1、上限値2として各論理ボリュームに設定する場合に、ストレージ装置410のスループットの余力を各論理ボリュームに対して均等に配分することで、スループット上限値2を計算する方法を説明したが、他の計算方法を採用してもよい。例えば、S18010で算出した差分からさらに所定のスループット量を減算した値をストレージ装置410の論理ボリューム数で除算した商と、S18010で算出した差分をストレージ装置410の論理ボリューム数で除算した商とをそれぞれ求め、各論理ボリュームのスループット上限値1にこれらの商を加えた値を、スループット上限値2,3として設定してもよい。このようにすれば、ストレージ装置410の限界性能の範囲内で、各論理ボリュームのスループット上限値を3つずつ設定することができる。なお、4つ以上のスループット上限値を設定する場合も同様である。また、各論理ボリュームに対して優先度を定義し、その優先度に従って、S18010で算出した差分を論理ボリュームごとに傾斜配分してもよい。これ以外にも任意の方法で、各論理ボリュームに対して設定するスループット制限緩和後のスループット上限値を計算することができる。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図18のスループット上限値2の計算処理を実行することにより、ストレージ装置410のスループットの限界値と、各論理ボリュームのスループット上限値1とに基づいて、ストレージ装置410のスループットの余力を算出し、算出した余力を各論理ボリュームに対して配分した場合の配分値を決定し、決定した配分値に基づいてスループット上限値2を算出することができる。
図19は、図15のS15040でスループット上限値設定管理プログラム601によって実行されるスループット上限値の設定処理のフローチャートである。
スループット上限値設定管理プログラム601は、ストレージ装置410において定義されている全ての論理ボリュームについてループ処理を行う(S19010、S19030)。このループ処理では、スループット上限値設定管理表621を参照し、論理ボリュームごとにスループット上限値1を使用中か否かの判定を行う(S19015)。その結果、スループット上限値1を使用中の場合(S19015:Y)は、通信プログラム604を用いて、当該論理ボリュームのスループット上限値を上限値1に設定するコマンドを、ストレージ装置410に送信する(S19020)。一方、スループット上限値2を使用中の場合(S19015:N)は、通信プログラム604を用いて、当該論理ボリュームのスループット上限値を上限値2に設定するコマンドを、ストレージ装置410に送信する(S19025)。全ての論理ボリュームについてS19020またはS19025で上限値1または上限値2の設定コマンドを送信したら、図19の処理フローを終了する。
なお、上記では各論理ボリュームに対して2つのスループット上限値が設定されている場合の例を説明したが、前述のように各論理ボリュームに対して3つ以上のスループット上限値が設定されている場合にも、図19と同様の処理を行うことにより、全ての論理ボリュームについて使用中の上限値の設定コマンドを送信することができる。その場合は、論理ボリュームごとにスループット上限値1、2、3・・・と順番に使用中か否かを判定し、使用中の上限値が判定できたら、その上限値の設定コマンドを発行してストレージ装置410に送信すればよい。
図20は、図15のS15021でスループット上限値設定管理プログラム601によって実行されるストレージ装置余力拡張処理のフローチャートである。
スループット上限値設定管理プログラム601は、限界性能管理表624を参照し、ストレージ装置410の余力を拡張可能かどうかを判定する(S19110)。ここでは、限界性能管理表624からストレージ装置410の未使用限界性能の値を取得し、この値が0より大きければストレージ装置410の余力を拡張可能と判定し、0であれば拡張不可能と判定する。
S19110でストレージ装置410の余力を拡張可能と判定した場合(S19110:Y)、スループット上限値設定管理プログラム601は、限界性能管理表624を参照し、ストレージ装置410の余力を拡張することでストレージ装置410の性能が論理ボリュームの追加に足りるか否かを判定する(S19115)。ここでは、図15のS15015で実行されたストレージ装置余力有無判定処理において、図16のS16020の判定に用いられたスループット上限値1の和、すなわち、既存の論理ボリュームのスループット上限値1の合計値と、新規論理ボリュームのスループット上限値1との和を、ストレージ装置410の余力拡張時の必要性能として取得する。また、限界性能管理表624から、ストレージ装置410の使用中限界性能と未使用限界性能の値を取得し、これらの値を合計することで、ストレージ装置410の余力拡張時の限界性能を計算する。そして、取得した必要性能と限界性能を比較し、必要性能が限界性能以下であれば、ストレージ装置410の余力を拡張することで、ストレージ装置410の性能が論理ボリュームの追加に足りると判定する。一方、必要性能が限界性能よりも大きければ、ストレージ装置410の余力を拡張しても、ストレージ装置410の性能が論理ボリュームの追加に足りないと判定する。
S19115でストレージ装置410の余力を拡張すればストレージ装置410の性能が論理ボリュームの追加に足りると判定した場合(S19115:Y)、スループット上限値設定管理プログラム601は、通信プログラム604を用いて、ストレージ装置410に対する構成変更の指示を行う(S19120)。この指示に応じて、ストレージ装置410が未使用の資源を組み入れてそのハードウェア構成を変更することにより、ストレージ装置410の余力が拡張され、ストレージ装置410においてスループットの限界値が更新される。その後、図20の処理フローを終了する。
一方、S19110でストレージ装置410の余力を拡張不可能と判定した場合(S19110:N)、または、S19115でストレージ装置410の余力を拡張してもストレージ装置410の性能が論理ボリュームの追加に足りないと判定した場合(S19115:N)、スループット上限値設定管理プログラム601は、限界性能管理表624を参照し、ストレージ装置410においてハードウェア資源を増設可能か否かを判定する(S19130)。ここでは、限界性能管理表624からストレージ装置410の増設可能限界性能の値を取得し、この値が0より大きければストレージ装置410においてハードウェア資源を増設可能と判定し、0であれば増設不可能と判定する。
S19130でストレージ装置410のハードウェア資源を増設可能と判定した場合(S19130:Y)、スループット上限値設定管理プログラム601は、ストレージ装置410におけるハードウェア資源の増設を推薦する情報を、通信プログラム604を用いてユーザに送信する(S19140)。ここでは、例えばユーザに対する所定のメッセージを出力することで、指定されたストレージ装置410はハードウェア資源を増設すればスループット上限値の余力を拡張して論理ボリュームを追加できることをユーザに伝えて、ハードウェア資源の増設をユーザに促す。その後、図20の処理フローを終了する。一方、ハードウェア資源の増設が不可能と判定した場合(S19130:N)は、そのまま図20の処理フローを終了する。これらの場合のいずれにおいても、ストレージ装置410の余力は拡張されず、ストレージ装置410においてスループットの限界値の更新が行われない。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図20のストレージ装置余力拡張処理を実行することにより、計算機システム400に未使用の資源があり、その資源を活用してストレージ装置410の余力を拡張することで、論理ボリュームを追加可能とすることができる。
図21は、ストレージ管理装置430のボリューム操作処理プログラム603によって実行されるボリューム削除処理のフローチャートである。本処理は、ユーザが不図示の入出力装置を用いて、ストレージ装置410の論理ボリューム削除要求をストレージ管理装置430に対して行った際に実行される。
ボリューム操作処理プログラム603は、通信プログラム604を用いて、ユーザからのボリューム削除要求を受信する(S20010)。ここで受信されるボリューム削除要求は、論理ボリュームの削除対象であるストレージ装置410のIDに関するデータと、削除する論理ボリュームのIDに関するデータとを含む。次に、スループット上限値設定管理プログラム601を呼び出し、受信したボリューム削除要求に基づいて、スループット上限値設定管理表621、スループット上限値更新条件管理表622および契約情報管理表623から、削除対象に指定された論理ボリュームに関するデータをそれぞれ削除させるとともに、限界性能管理表624におけるスループット上限値1、上限値2の合計値から削除対象に指定された論理ボリュームの分をそれぞれ減算させて、これらの情報を更新する(S20015)。
続いて、ボリューム操作処理プログラム603は、通信プログラム604を用いて、当該論理ボリュームの削除要求をストレージ装置410に送信する(S20020)。この削除要求を受信すると、ストレージ装置410は、構成変更プログラム503により、構成情報格納表520から当該論理ボリュームの情報を削除する。
次に、ボリューム操作処理プログラム603は、スループット上限値設定管理プログラム601を呼び出し、S20015で更新された限界性能管理表624を参照して、図18で説明したスループット上限値2の計算処理と、図19で説明したスループット上限値の設定処理とを実行させる(S20025、S20030)。これにより、ユーザから指示された論理ボリュームを削除した後のストレージ装置410の論理ボリューム構成に合わせて、スループット上限値設定管理表621および限界性能管理表624を更新するとともに、各論理ボリュームに対して更新後のスループット上限値を設定する。最後に、通信プログラム604を用いて、処理完了応答をユーザに送信し(S20035)、図21の処理フローを終了する。
図22は、ストレージ管理装置430のスループット上限値設定管理プログラム601によって実行されるスループット上限値有効化処理のフローチャートである。本処理は、ユーザがストレージ装置410の運用中に不図示の入出力装置を用いて、ストレージ装置410の各論理ボリュームに対するスループット上限値を無効から有効に切り替えた際に実行される。
スループット上限値設定管理プログラム601は、通信プログラム604を用いて、ユーザからのスループット上限値の有効化指示を受信する(S21010)。次に、ストレージ装置410において定義されている全ての論理ボリュームについてループ処理を行う(S21015、S21025)。このループ処理では、論理ボリュームごとに図17で説明したスループット上限値1の計算処理を実行する(S21020)ことで、スループット上限値1を算出して、スループット上限値設定管理表621および限界性能管理表624を更新する。
続いて、スループット上限値設定管理プログラム601は、更新後の限界性能管理表624を用いて、図16で説明したストレージ装置余力有無判定処理を実行する(S21030)。そして、S21030の処理結果に基づいて、ストレージ装置410における余力の有無を判定する(S21035)。その結果、余力ありと判定された場合(S21035:Y)は、計算機システム400においてスループット上限値の設定が可能と判定して、図18で説明したスループット上限値2の計算処理を実行する(S21040)。これにより、スループット上限値2を算出して、スループット上限値設定管理表621および限界性能管理表624を更新する。
その後、スループット上限値設定管理プログラム601は、図19で説明したスループット上限値の設定処理を実行する(S21045)ことで、ストレージ装置410に対して、各論理ボリュームのスループット上限値を設定するコマンドを発行する。このコマンドに応じて、ストレージ装置410が各論理ボリュームのスループット上限値を設定することにより、計算機システム400においてスループット上限値の設定が有効化される。最後に、通信プログラム604を用いて、スループット上限値の設定完了応答をユーザに送信し(S21050)、図22の処理フローを終了する。
一方、S21035で余力なしと判定された場合(S21035:N)、スループット上限値設定管理プログラム601は、図20で説明したストレージ装置余力拡張処理を実行する(S21036)。そして、S21036の処理結果に基づいて、ストレージ装置410の余力を拡張できたか否かを判定する(S21037)。その結果、ストレージ装置410の余力を拡張できたと判定された場合(S21037:Y)、S21035でストレージ装置410の余力ありと判定された場合と同様に、S21040でスループット上限値2の計算処理を実行し、その後、S21045でスループット上限値の設定処理を実行する。これにより、未使用の資源を使用することでストレージ装置410のスループットの限界値を更新した上で、ストレージ装置410に対して、各論理ボリュームのスループット上限値を設定するコマンドを発行する。このコマンドに応じて、ストレージ装置410が各論理ボリュームのスループット上限値を設定することにより、計算機システム400においてスループット上限値の設定が有効化される。その後は、S21050でスループット上限値の設定完了応答をユーザに送信してから、図22の処理フローを終了する。
また、ストレージ装置410の余力を拡張できなかったと判定された場合(S21037:N)、スループット上限値設定管理プログラム601は、限界性能管理表624を参照し、指定されたストレージ装置410の他にもユーザが利用可能なストレージ装置があるかどうかを判断する(S21055)。その結果、利用可能なストレージ装置が他にある場合(S21055:Y)は、ストレージ装置410の論理ボリュームの一部について、別のストレージ装置への移動(マイグレーション)を推薦する情報を、通信プログラム604を用いてユーザに送信する(S21060)。ここでは、例えばユーザに対する所定のメッセージを出力することで、指定されたストレージ装置410はスループット上限値に余力がないことをユーザに通知して、論理ボリュームの一部を別のストレージ装置に移動させるようにユーザに促す。このとき、ストレージ装置410においてスループット上限値の最も大きい論理ボリュームをマイグレーションの推薦対象としてもよいし、他の公知の推薦アルゴリズムを使用して、マイグレーションの推薦対象とする論理ボリュームを決定してもよい。これは、マイグレーションによってストレージ装置410に生じる余力を利用することで、各論理ボリュームへのスループット上限値を設定可能にする目的で行われるものである。なお、マイグレーションではなく、一部の論理ボリュームの削除を推薦する情報をユーザに送信するようにしてもよい。一方、利用可能なストレージ装置が他にない場合(S21055:N)は、スループット上限値を有効化して各論理ボリュームに設定することが不可能であることを通知する設定不可応答を、通信プログラム604を用いてユーザに送信する(S21065)。
このように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図22のスループット上限値有効化処理を実行することにより、ユーザからのスループット上限値の有効化指示に応じて、スループット上限値の設定が可能か否かを判定する。その結果、スループット上限値の設定が可能と判定した場合、または、未使用の資源を活用してストレージ装置410の余力を拡張することでストレージ装置410のスループットの限界値を更新した場合には、スループット上限値の設定を有効化するためのコマンドをストレージ装置410へ送信する。また、スループット上限値の設定が不可能と判定し、かつ、未使用の資源を活用してストレージ装置410の余力を拡張できなかった場合には、コマンドの出力を行わずに、論理ボリュームの移動または削除をユーザに推薦する。これにより、ストレージ装置410の運用中であっても、スループット制限を緩和する前の上限値1だけでストレージ装置410の性能を使い切らないように、各論理ボリュームに対してスループット上限値の設定を行うことができる。
図23は、ストレージ装置410のI/O処理プログラム505によって実行されるI/O処理のフローチャートである。本処理は、ホスト装置450からH-I/F413を介して任意の論理ボリュームに対するI/O要求を受け取った際に実行される。
I/O処理プログラム505は、通信プログラム502を用いて、ホスト装置450からのI/O要求を受信する(S22010)。次に、スループット状態管理表522を参照し、当該論理ボリュームに対して処理可能なI/O要求の残数が0より大きいかどうかを判定する(S22015)。その結果、I/O要求の残数が0より大きい場合(S22015:Y)は、スループット状態管理表522における当該論理ボリュームのI/O要求の残数を1減算し(S22020)、その後、要求されたI/O処理を行う(S22025)。
一方、処理可能なI/O要求の残数が0の場合(S22015:N)は、スループット制限通知プログラム501に対して、スループット上限値を超過したことを通知する(S22030)。この通知を受けると、スループット制限通知プログラム501は、当該論理ボリュームのスループットが設定されているスループット上限値に到達したことを検知し、通信プログラム502を用いて、そのことをストレージ管理装置430に通知する。
S22030でスループット制限通知プログラム501への通知を行った後、I/O処理プログラム505は、要求されたI/O処理の実行を保留し、I/O要求の残数が回復するまで待機する(S22035)。I/O要求の残数が回復したら、S22020、S22025の各処理を行う。
このように、本実施形態の計算機システム400では、ストレージ装置410のI/O処理プログラム505が図23のI/O処理を実行することにより、ホスト装置450からの要求に応じて、各論理ボリュームへのデータの書き込みおよび各論理ボリュームからのデータの読み出しを、設定されたスループット上限値内で行う。また、いずれかの論理ボリュームのスループットが設定されたスループット上限値に到達すると、I/O処理の実行を制限するとともに、スループット制限通知プログラム501により、そのことをストレージ管理装置430へ通知する。
図24は、ストレージ管理装置430のスループット上限値設定管理プログラム601によって実行されるスループット制限緩和処理のフローチャートである。本処理は、図23のS22030の通知に応じて、ある論理ボリュームのスループットがスループット上限値に到達したことを示すスループット上限値の超過通知を、ストレージ装置410がストレージ管理装置430へ送信した際に実行される。
スループット上限値設定管理プログラム601は、通信プログラム604を用いて、ストレージ装置410からのスループット上限値の超過通知を受信する(S23010)。その後、スループット上限値更新条件管理表622を参照して、スループット上限値1からスループット上限値2への更新条件を満たすか否かを判定することで、スループット上限値の切り替えの可否を判定する(S23015)。その結果、切り替え可と判定した場合(S23015:Y)は、スループット上限値の超過通知を送信したストレージ装置410に対し、通信プログラム604を用いて、当該論理ボリュームのスループット上限値を上限値2に設定するコマンド(以下、「第1切替指令」と称する)を送信する(S23020)。このコマンドをストレージ装置410が受信すると、ストレージ装置410において構成変更プログラム503は、構成情報格納表520における当該論理ボリュームのスループット上限値の値を更新する。これにより、当該論理ボリュームのスループット上限値を上限値1から上限値2へ切り替える。一方、切り替え不可と判定した場合(S23015:N)は、第1切替指令を出力せずに図24の処理フローを終了する。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図24のスループット制限緩和処理を実行することにより、メモリ432に記憶されたスループット上限値更新条件管理表622の情報に基づいて、スループット上限値を上限値1から上限値2へ切り替えるか否かを判定する。その結果、切り替えると判定した場合には、スループット上限値を切り替えるためのコマンドである第1切替指令を出力して、スループット上限値の上限値1から上限値2への切り替えを実行し、切り替えないと判定した場合には、第1切替指令を出力せずに、スループット上限値の上限値1から上限値2への切り替えを行わない。このように、スループット上限値1を超過したら、より高いスループット上限値2に常に切り替えるのではなく、設定された条件を満たす場合にのみ切り替える理由は、論理ボリュームのスループットの増加が常に意図したものとは限らないためである。例えば、データベースソフトウェアなど、論理ボリュームを利用するソフトウェアによっては、当該ソフトウェアの操作ミス等の意図せぬ原因によってスループットが急増するケースがある。このように、ユーザの本来の意図とは異なる突発的な原因によってスループットの増加が生じた場合には、同じストレージ装置が提供する他の論理ボリュームの性能への影響が出ないように、スループット制限を緩和せずにスループットの増加を一定値以下に抑えることが必要となる。
図25は、ストレージ管理装置430のスループット上限値設定管理プログラム601によって実行されるスループット制限再強化処理のフローチャートである。本処理は、例えば定期的に実行される。
スループット上限値設定管理プログラム601は、ストレージ装置410において定義されている全ての論理ボリュームについてループ処理を行う(S24010、S24040)。このループ処理では、スループット上限値設定管理表621を参照し、論理ボリュームごとにスループット上限値2を使用中か否かの判定を行う(S24015)。その結果、スループット上限値2を使用中の場合(S24015:Y)は、稼働情報管理表625を参照し、当該論理ボリュームの性能情報を集計する(S24020)。この集計結果に基づき、スループット上限値更新条件管理表622を参照して、スループット上限値2からスループット上限値1への変更条件を満たすかどうかを判定する(S24025)。その結果、変更条件を満たす場合(S24025:Y)は、スループット上限値設定管理表621を更新し(S24030)、ストレージ装置410に対して、当該論理ボリュームのスループット上限値を上限値1に設定するコマンド(以下、「第2切替指令」と称する)を送信する(S24035)。これにより、スループット上限値の上限値2から上限値1への切り替えを実行する。一方、変更条件を満たさないと判定した場合(S24025:N)は、第2切替指令を出力せずに次のループ処理に移行する。この場合、スループット上限値の切り替えは行われない。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図25のスループット制限再強化処理を実行することにより、稼働情報収集プログラム602が収集してメモリ432に記憶された稼働情報管理表625が表す稼働情報に基づいて、スループット上限値を上限値2から上限値1へ切り替えるか否かを判定する。その結果、切り替えると判定した場合には、スループット上限値を切り替えるためのコマンドである第2切替指令を出力し、切り替えないと判定した場合には第2切替指令の出力を行わない。
図26は、スループット上限値更新条件管理表622の設定用ユーザインタフェースの例を示す模式図である。ユーザは、不図示の入出力装置に表示される図26の入力画面2500を用いて、スループット上限値1からスループット上限値2への変更条件や、スループット上限値2からスループット上限値1への変更条件を、論理ボリュームごとに設定することで、スループット上限値更新条件管理表622を更新することができる。なお、スループット上限値の設定には、入力画面2500のようなGUI(グラフィカルユーザインタフェース)ではなく、CUI(キャラクターユーザインタフェース)を用いてもよい。また、入力値を保持したデータを入出力装置からストレージ管理装置430へ送信することで、スループット上限値を設定できるようにしてもよい。これ以外にも、任意の方法でスループット上限値を設定し、スループット上限値更新条件管理表622を更新することができる。
以上説明した本発明の第1の実施形態によれば、以下の作用効果を奏する。
(1)計算機システム400は、ストレージ装置410と、ストレージ装置410を管理するストレージ管理装置430とを備え、ストレージ装置410は、プロセッサ411、メモリ412および記憶装置であるドライブ416を有し、ストレージ管理装置430は、プロセッサ431およびメモリ432を有する。計算機システム400は、ドライブ416へのデータの入出力のターゲットとして論理ボリュームを提供するものであり、プロセッサ431がスループット上限値設定管理プログラム601を実行することで、管理部611を有する。また、プロセッサ411がI/O処理プログラム505を実行することで、ホスト装置450からの論理ボリュームへのI/O要求に応じて、論理ボリュームへのデータの書き込みおよび論理ボリュームからのデータの読み出しを、論理ボリュームごとに設定されたスループット上限値内で行うI/O処理部515を有する。さらに、プロセッサ411がスループット制限通知プログラム501を実行することで、論理ボリュームのスループットが設定されたスループット上限値に到達したことを検知するスループット制限検知部511を有する。管理部611は、上限値1と上限値1よりも大きい上限値2とを少なくとも含む複数のスループット上限値に基づいて、論理ボリュームに対して設定されるスループット上限値を管理する。この計算機システム400において、スループット上限値が上限値1に設定されている場合に、論理ボリュームのスループットが上限値1に到達するのをスループット制限検知部511が検知すると(S22030)、管理部611は、スループット上限値を上限値1から上限値2へ切り替える(S23020)。このようにしたので、ボリュームのスループットを制限しつつ、必要に応じてスループットを追加で割り当てることが可能となる。
(2)計算機システム400は、メモリ432に記憶された情報として、スループット上限値の切替条件に関する情報を表すスループット上限値更新条件管理表622を有する。管理部611は、このスループット上限値更新条件管理表622の情報に基づいて、スループット上限値を上限値1から上限値2へ切り替えるか否かを判定し(S23015)、切り替えると判定した場合(S23015:Y)にはS23020でスループット上限値の上限値1から上限値2へ切り替えを実行し、切り替えないと判定した場合(S23015:N)にはスループット上限値の切り替えを行わない。このようにしたので、ユーザの本来の意図とは異なる突発的な原因によってスループットの増加が生じた場合には、追加のスループット割り当てを行わずに、スループットの増加を一定値以下に抑えることができる。したがって、不要なスループット制限の緩和によって他の論理ボリュームの性能に悪影響が生じるのを回避できる。
(3)管理部611は、例えば入力画面2500を用いたユーザからの入力に基づいて、スループット上限値更新条件管理表622の情報を更新することができる。このようにしたので、スループット制限を緩和するための条件を常に最適な状態に保つことができる。
(4)管理部611は、スループット上限値が上限値2に設定されている場合(S24015:Y)に、スループット上限値を上限値2から上限値1へ切り替えるか否かを判定し(S24025)、切り替えると判定した場合(S24025:Y)には、スループット上限値の上限値2から上限値1への切り替えを実行し(S24035)、切り替えないと判定した場合(S24025:N)にはスループット上限値の切り替えを行わない。このようにしたので、スループット制限の緩和が不要となった場合には、スループット上限値を元の状態に戻すことができる。
(5)計算機システム400は、プロセッサ431が稼働情報収集プログラム602を実行することで、論理ボリュームの稼働情報を収集する稼働情報収集部612を有する。管理部611は、S24025において、稼働情報収集部612が収集した稼働情報(稼働情報管理表625)に基づいて、スループット上限値を上限値2から上限値1へ切り替えるか否かを判定する。このようにしたので、論理ボリュームのスループット状態を考慮して、上限値2から上限値1への切り替えの可否を適切に判断することができる。
(6)計算機システム400は、ストレージ装置410により、それぞれにスループット上限値が設定された複数の論理ボリュームを提供可能である。複数の論理ボリュームのうちいずれかの論理ボリュームについて、スループット上限値が上限値1に設定されている場合に、論理ボリュームのスループットが上限値1に到達するのをスループット制限検知部511が検知すると(S22030)、管理部611は、当該論理ボリュームのスループット上限値を上限値1から上限値2へ切り替え(S23020)。このようにしたので、計算機システム400において複数の論理ボリュームが定義されている場合にも、必要に応じて論理ボリュームごとにスループットを追加で割り当てることができる。
(7)計算機システム400は、プロセッサ411が構成変更プログラム503を実行することで、論理ボリュームの構成を変更する構成変更部513を有する。管理部611は、ユーザからの論理ボリュームの追加指示に応じて(S15010)、限界性能管理表624が表すスループットの限界値と、作成済みの論理ボリュームに対して設定されている上限値1と、未作成の論理ボリュームに対して設定される上限値1とに基づいて、論理ボリュームの追加が可能か否かを判定する(S16020~S16030,S15020)。その結果、論理ボリュームの追加が可能と判定した場合(S15020:Y)には、論理ボリュームを追加し(S15025)、論理ボリュームの追加が不可能と判定した場合(S15020:N)には、計算機システム400に未使用の資源があり、その資源を使用することでスループットの限界値を更新しスループット上限値の設定が可能かどうかを判定する(S19110,S19115)。その結果、可能と判定した場合(S19110,S19115:Y)は、当該資源を使用することでスループットの限界値を更新して(S19120)、スループット上限値の設定を有効化し(S15025~S15040)、不可能と判定した場合(S19110:NまたはS19115:N)はスループットの限界値の更新を行わない。このようにしたので、常にシステムに余力を持たせ、必要に応じて任意の論理ボリュームにスループットを追加で割り当てることができるように、計算機システム400の論理ボリュームを構成することができる。
(8)計算機システム400は、ドライブ416をそれぞれ備えたストレージ装置410を複数有することができる。この場合、管理部611は、複数のストレージ装置410のうちいずれかのストレージ装置410について論理ボリュームの追加が不可能と判定した場合(S15020,S15022:N)には、当該ストレージ装置410とは別のストレージ装置での論理ボリュームの作成をユーザに推薦するための所定のメッセージを出力する(S15055)。このようにしたので、論理ボリュームの作成対象に指定されたストレージ装置410はスループット上限値に余力がない場合でも、他のストレージ装置で論理ボリュームを作成するようにユーザに促すことができる。
(9)管理部611は、ユーザからのスループット上限値の有効化指示に応じて(S21010)、限界性能管理表624が表すスループットの限界値と、各論理ボリュームに対して設定されている上限値1とに基づいて、スループット上限値の設定が可能か否かを判定する(S21035)。その結果、スループット上限値の設定が可能と判定した場合(S21035:Y)には、スループット上限値の設定を有効化し(S21045)、スループット上限値の設定が不可能と判定した場合(S21035:N)には、計算機システム400に未使用の資源があり、その資源を使用することでスループット上限値の設定が可能かどうかを判定する(S19110,S19115)。その結果、可能と判定した場合(S19110,S19115:Y)は、当該資源を使用することでスループットの限界値を更新して(S19120)、スループット上限値の設定を有効化し(S21045)、不可能と判定した場合(S19110:NまたはS19115:N)は資源の追加を行わずに、論理ボリュームの移動または削除をユーザに推薦するための所定のメッセージを出力する(S21060)。このようにしたので、スループット上限値を有効化する対象に指定されたストレージ装置410はスループット上限値に余力がない場合でも、他のストレージ装置に論理ボリュームの一部を移動させることで、スループット上限値の有効化が可能であることをユーザに知らせることができる。
(10)計算機システム400は、メモリ432に記憶された情報として、論理ボリュームの契約条件に関する契約情報を表す契約情報管理表623を有する。管理部611は、この契約情報管理表623に基づいて上限値1を算出する(S17020)。具体的には、例えば契約情報管理表623は、論理ボリュームの単位容量ごとのスループット上限値の情報と、論理ボリュームに対して割り当てられた容量の情報とを含み、管理部611は、単位容量ごとのスループット上限値と容量との乗算値に基づいて上限値1を算出する。このようにしたので、各論理ボリュームに対して個々の契約条件に応じた適切なスループット上限値1を算出することができる。
(11)計算機システム400は、ストレージ装置410により、複数の論理ボリュームを提供可能である。管理部611は、スループットの限界値と、各論理ボリュームの上限値1とに基づいて、スループットの余力を算出し(S18010)、算出した余力を各論理ボリュームに対して配分した場合の配分値を決定し、決定した配分値に基づいて上限値2を算出する(S18015)。このようにしたので、各論理ボリュームに対してスループットの余力に応じた適切なスループット上限値2を算出することができる。
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。以下では、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については、特に必要のない限りは、その説明を省略または簡略する。
第1の実施形態では、上述のスループット上限値1の計算処理において、契約情報と、各論理ボリュームの定義された容量とを用いていた。ただし、契約によっては、論理ボリュームの使用容量に比例して料金が決まることもあるため、スループット上限値1に関しても、この契約に従って設定されるようにしてもよい。そこで本実施形態では、論理ボリュームの使用容量に応じてスループット上限値1を設定する場合について説明する。
図27は、ストレージ管理装置430のスループット上限値設定管理プログラム601によって実行されるボリュームの使用容量に応じたスループット上限値の計算・設定処理のフローチャートである。本処理は、例えば定期的に実行される。
スループット上限値設定管理プログラム601は、ストレージ装置410において現在定義されている全ての論理ボリュームについてループ処理を行う(S25010、S25020)。このループ処理では、論理ボリュームごとに、図28に示すスループット上限値1の計算処理を実行する(S25015)ことで、スループット上限値1を算出して、スループット上限値設定管理表621および限界性能管理表624を更新する。
続いて、スループット上限値設定管理プログラム601は、更新後の限界性能管理表624を用いて、図16で説明したストレージ装置余力有無判定処理を実行する(S25030)。そして、S25030の処理結果に基づいて、ストレージ装置410における余力の有無を判定する(S25040)。その結果、余力ありと判定された場合(S25040:Y)は、図18で説明したスループット上限値2の計算処理を実行する(S25045)ことで、スループット上限値2を算出して、スループット上限値設定管理表621および限界性能管理表624を更新する。その後、図19で説明したスループット上限値の設定処理を実行する(S25050)ことで、ストレージ装置410に対して、各論理ボリュームのスループット上限値を設定するコマンドを発行する。
一方、S25040で余力なしと判定された場合(S25040:N)、スループット上限値設定管理プログラム601は、ストレージ装置410において各論理ボリュームにスループット上限値を複数個設けることができないと判断し、スループット上限値1の設定をスループット上限値設定管理表621から消去する(S25055)。その後は、図18で説明したスループット上限値2の計算処理を実行する(S25060)ことで、スループット上限値2を算出し、スループット上限値設定管理表621および限界性能管理表624を更新して、スループット上限値2のみを設定する(S25065)。さらに、このままだとストレージ装置410に余力がなく、スループット上限値の制御ができないため、ストレージ装置410に既存の論理ボリュームの一部について、別のストレージ装置への移動(マイグレーション)を推薦する情報を、通信プログラム604を用いてユーザに送信する(S25070)。ここでは、例えばユーザに対する所定のメッセージを出力することで、ストレージ装置410はスループット上限値に余力がなく、そのためスループット制限の緩和を必要に応じて実施できないことをユーザに通知して、論理ボリュームの一部を別のストレージ装置に移動させるようにユーザに促す。ユーザがこれに応じてマイグレーションを行い、ストレージ装置410に余力が発生した場合は、再度本処理を行うことで、スループット上限値が複数設定できるようになる。
図28は、ストレージ管理装置430のスループット上限値設定管理プログラム601によって実行される、本発明の第2の実施形態に係るスループット上限値1の計算処理のフローチャートである。
スループット上限値設定管理プログラム601は、契約情報管理表623から、当該論理ボリュームの契約情報と使用容量の情報を取得し(S26010、S26015)、これらの情報に基づいて、スループット上限値1を算出する(S26020)。具体的には、例えば、契約情報に含まれる性能と容量の比率に使用容量を乗算することで、スループット上限値1を算出することができる。
次に、スループット上限値設定管理プログラム601は、S26020で算出したスループット上限値1と、S26010で取得した契約情報に含まれるスループット上限値の最低値とを比較し、スループット上限値1が最低値以上であるか否かを判定する(S26025)。その結果、スループット上限値1が最低値以上の場合(S26025:Y)は、S26020の算出結果を当該論理ボリュームのスループット上限値1として設定し(S26030)、スループット上限値設定管理表621および限界性能管理表624を更新する(S26040)。一方、算出したスループット上限値1が最低値未満の場合(S26025:N)、スループット上限値設定管理プログラム601は、その最低値を当該論理ボリュームのスループット上限値1として設定し(S26035)、スループット上限値設定管理表621および限界性能管理表624を更新する(S26040)。
以上説明したように、本実施形態の計算機システム400では、ストレージ管理装置430のスループット上限値設定管理プログラム601が図28のスループット上限値1の計算処理を実行することにより、論理ボリュームの使用容量に基づいて、各論理ボリュームのスループットに対して設定される上限値1を算出する。このようにしたので、論理ボリュームの使用容量に比例して料金が決まるような契約形態においても、適切な値でスループット上限値1を算出することができる。
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。以下では、第1の実施形態との相違点を主に説明し、第1の実施形態との共通点については、特に必要のない限りは、その説明を省略または簡略する。
第1の実施形態では、上述のスループット上限値2の計算処理において、ストレージ装置410の余力を全ての論理ボリュームに対して均等に分配していた。ただし、契約によっては、論理ボリュームごとに追加可能なスループット量があらかじめ決まっていることもあるため、スループット上限値2に関しても、この契約に従って設定されるようにしてもよい。そこで本実施形態では、契約に応じてスループット上限値2を設定する場合について説明する。
図29は、ストレージ管理装置430内のメモリ432に記憶される契約情報管理表623Aの模式図である。本実施形態のストレージ管理装置430では、第1の実施形態で説明した契約情報管理表623に替えて、図29に示す契約情報管理表623Aがメモリ432に記憶されている。この契約情報管理表623Aは、図12に示した契約情報管理表623の各データに加えて、各論理ボリュームに対して追加可能なスループット上限値に関するデータをさらに保持する。
図30は、ストレージ管理装置430のスループット上限値設定管理プログラム601によって実行される、本発明の第3の実施形態に係るストレージ装置余力有無判定処理のフローチャートである。本処理は、第1の実施形態で説明した図16の処理と同様に、ボリューム操作処理プログラム603が実行するボリューム作成処理や、スループット上限値設定管理プログラム601が実行するスループット上限値有効化処理において実行される。あるいは、第2の実施形態で説明した、ボリュームの使用容量に応じたスループット上限値の計算・設定処理において実行される。
スループット上限値設定管理プログラム601は、第1の実施形態で説明した図17に示すスループット上限値1の計算処理、または、第2の実施形態で説明した図28に示すスループット上限値1の計算処理を実行し、新規に作成する論理ボリュームのスループット上限値1を算出する(S28010)。次に、契約情報管理表623Aを参照し、新規に作成する論理ボリュームに対して契約上規定されている追加可能なスループット上限値を取得して、S28010で算出したスループット上限値1に加えることで、新規論理ボリュームのスループット上限値2を算出する(S28015)。また、限界性能管理表624を参照し、既存の論理ボリュームのスループット上限値2の合計値を取得する(S28020)。
次に、スループット上限値設定管理プログラム601は、S28020で取得した既存の論理ボリュームのスループット上限値2の合計値と、S28015で算出した新規論理ボリュームのスループット上限値2との和を算出し、その和の値が、限界性能管理表624に記載されているストレージ装置410の限界性能を超えていないかどうか判定する(S28025)。その結果、和の値がストレージ装置410の限界性能未満である場合(S28025:Y)は、余力ありとの判定結果を下し(S28030)、そうでない場合(S28025:N)は、余力なしとの判定結果を下す(S28035)。余力あり、または余力なしのいずれかの判定結果が得られたら、図30の処理フローを終了する。
以上説明したように、本実施形態の計算機システム400では、メモリ432は、論理ボリュームに対して追加可能な容量の情報を含む契約情報を表す契約情報管理表623Aを記憶する。スループット上限値設定管理プログラム601は、メモリ432に記憶された契約情報管理表623Aに基づいて、各論理ボリュームに対する上限値2を算出するための配分値を決定する(S28015)。このようにしたので、論理ボリュームごとに追加可能なスループット量があらかじめ決まっている場合においても、適切な値でスループット上限値2を算出することができる。
なお、本発明は上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、任意の構成要素を用いて実施可能である。例えば、ストレージ装置410とストレージ管理装置430を一体化し、同一のハードウェアにより構成してもよい。この場合、図2、図3に示した各プログラムや各データを同一のメモリ内に格納し、同一のプロセッサで実行することにより、当該プロセッサを図2、図3の各機能ブロックとして機能させることもできる。また、図2、図3の各機能ブロックの一部または全部を、FPGA(Field-Programmable Gate Array)等のハードウェアにより実現してもよい。
以上説明した実施形態や変形例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されるものではない。また、上記では種々の実施形態や変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。