(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以後の説明では「aaaテーブル」、「aaaリスト」、「aaaDB(Database)」、「aaaキュー」(aaaは任意の文字列)等の表現にて本実施例の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。
【0010】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID(IDentification)」という表現を用いるが、これらについてはお互いに置換が可能である。
【0011】
また、以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御デバイス)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【0012】
また、各種プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。この場合、プログラム配布サーバは、プロセッサと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶する。そして、配布プログラムをプロセッサが実行することで、プログラム配布サーバのプロセッサは、配布対象のプログラムを他の計算機に配布する。
【0013】
また、計算機は入出力デバイスを有する。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインタフェースやイーサーネットインタフェースを入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。
【0014】
以後、情報処理システムを管理し、本実施例の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理用の計算機(以下、管理計算機)が表示用情報を表示する場合は管理計算機が管理システムである、また、管理計算機と表示用計算機の組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含む)が管理システムである。
【0015】
<負荷分散案の提示例>
図1は、本実施例にかかる計算機システムにおける負荷分散案の提示例を示す説明図である。計算機システム100は、管理計算機101と、サーバ102と、ストレージ装置103と、表示用計算機104と、がネットワーク105を介して通信可能に接続されたシステムである。
【0016】
管理計算機101は、負荷平準化プログラム111と、システム構成情報112と、リソース性能情報113と、テナント契約情報114と、を記憶する。負荷平準化プログラム111は、システム構成情報112と、リソース性能情報113と、テナント契約情報114と、を用いて、負荷分散対象であるリソースの負荷を平準化するプログラムである。
【0017】
システム構成情報112は、どのストレージ装置103がどの論理記憶装置(以下、論理ボリューム)に接続されているかなど、計算機システム100のシステム構成を規定する情報である。システム構成情報112の詳細については
図3〜
図8で後述する。リソース性能情報113は、リソースの経時的な使用率など、リソースの性能を示す情報である。リソース性能情報113の詳細については
図9〜
図12で後述する。テナント契約情報114は、テナント400の契約内容を規定する情報である。テナント400は、顧客やサービスごとに用意されたサーバ102やソフトウェア、仮想マシンの集合である。テナント契約情報114の詳細については
図13および
図14で後述する。
【0018】
サーバ102は、テナント400を構成するコンピュータである。サーバ102は、テナント400を構成するソフトウェアや仮想マシンを実行する。サーバ102は、ストレージ装置103にアクセスして、ストレージ装置103からデータを読み出したり、ストレージ装置103へデータを書き込んだりする。具体的には、サーバ102は、論理ボリューム134を一意に特定する識別情報であるLUN(Logical Unit Number)により論理ボリュームを指定して、I/O処理要求をストレージ装置103に送信し、論理ボリュームにアクセスする。
【0019】
ストレージ装置103は、データを格納する。ストレージ装置103は、ポート131と、I/O(入出力:Input−Output)処理ユニット132と、論理ボリューム群133と、を有する。ポート131は、ネットワーク105に接続され、サーバ102からのI/O処理要求を入力したり、当該I/O処理要求に対する応答をサーバ102に出力する。
【0020】
I/O処理ユニット132は、内部に不図示のプロセッサおよびメモリを有する。メモリには、そのI/O処理ユニット132が担当する論理ボリュームの識別情報が格納される。負荷分散案により担当する論理ボリュームが変更される場合は、I/O処理ユニット132が担当する論理ボリュームの識別情報は、管理計算機101からの更新要求により更新される。I/O処理ユニット132は、担当する論理ボリュームに接続される。I/O処理ユニット132は、ポート131から入力されたI/O処理要求を受け付けて、担当する論理ボリュームにアクセスして、当該論理ボリュームからデータを読み出したり、当該論理ボリュームにデータを書き込んだりする。
【0021】
論理ボリューム群133は、論理ボリューム134の集合である。論理ボリューム134は、たとえば、1以上の記憶デバイスにより構成される。記憶デバイスは、データを記憶するデバイスであり、その種類の例は、SAS(Serial Attached SCSI(Small Computer System Interface))HDD、SATA(Serial Advanced Technology Attachment)HDD、FC(Fibre Channel)HDDといったHDDデバイスである。なお記憶デバイスは、フラッシュメモリやバックアップ機能を持つRAM(Random Access Memory)、FeRAM等の不揮発メモリを用いた記憶デバイスでもよい。以後はこうした不揮発メモリを用いた記憶デバイスの代表としてフラッシュSSD(以後は単にSSDと呼ぶ)を例として説明するが、各説明は他の不揮発メモリを用いた記憶デバイスであっても実現できることは言うまでも無い。なお、記憶デバイスは、どのI/O処理ユニット132にも接続可能である。
【0022】
表示用計算機104は、ネットワーク105を介して、管理計算機101からの計算結果の一例である負荷分散案106を表示する。
図1では、表示用計算機104は、ネットワーク105を介して管理用計算機と接続されるが、管理計算機101に直接接続されてもよい。また、表示用計算機104のかわりに、管理計算機101に接続された表示装置が用いられてもよい。
【0023】
つぎに、計算機システム100における負荷分散案106の提示例について説明する。負荷分散案106は、ある論理ボリューム134を担当するリソースを他のリソースに変更する割当変更プランである。ここでは、負荷分散対象となるリソースをI/O処理ユニット132内のプロセッサとする。管理計算機101は、計算機システム100を監視し、リソース使用率が閾値超過したI/O処理ユニット132を検出する。
【0024】
リソース使用率が閾値超過したI/O処理ユニット132が検出された場合、管理計算機101の負荷平準化プログラム111は、閾値超過した時間帯において最大使用率となるピーク時刻における各リソース使用率を特定する。そして、負荷平準化プログラム111は、割当変更対象の論理ボリューム134を論理ボリューム群133から特定する。割当変更対象の論理ボリューム134は、閾値との差分が許容範囲内の論理ボリューム134である。許容範囲外の論理ボリューム134は、閾値との差分が割当変更による悪影響が大きい、または、割当変更による負荷分散の効果が低いため採用されない。
【0025】
このようにして、負荷平準化プログラム111は、負荷分散案106を生成する。負荷標準化プログラムは、生成された負荷分散案106を表示用計算機104に出力する。これにより、管理計算機101は、割当変更前に、管理者に対し負荷分散案106を提示することができる。したがって、管理者は、事前に負荷分散案106の妥当性を確認することができる。またこれにより、管理者が負荷分散案106を妥当でないと判断した場合に、業務の優先度等の要件に応じて負荷分散案106を調整し、重要なシステムへの悪影響を回避することができる。
【0026】
<管理計算機101のハードウェア構成例>
図2は、管理計算機101のハードウェア構成例を示すブロック図である。
図2では、
図1に示した一部の構成が省略されている。管理計算機101は、プロセッサ201と、主記憶デバイス202と、補助記憶デバイス203と、入力デバイス204と、出力デバイス205と、ネットワークI/F206と、を有する。プロセッサ201、主記憶デバイス202、補助記憶デバイス203、入力デバイス204、出力デバイス205、およびネットワークI/F206は、バス207に接続される。
【0027】
プロセッサ201が、負荷平準化プログラム111を実行する。なお、負荷平準化プログラム111による処理は、プロセッサ201で実行される代わりに、例えば、集積回路等のハードウェアで実現してもよい。主記憶デバイス202は、負荷平準化プログラム111を記憶する。
【0028】
補助記憶デバイス203は、システム構成情報112と、リソース性能情報113と、テナント契約情報114と、を記憶する。システム構成情報112、リソース性能情報113、およびテナント契約情報114は、それぞれ異なる記憶デバイスに保存されていてもよい。
【0029】
補助記憶デバイス203は、管理計算機101の外部装置へのI/F(不図示)や、ネットワークI/F206を介して接続される記憶装置であってもよい。また、主記憶デバイス202と補助記憶デバイス203は、同一デバイスであってもよい。
【0030】
入力デバイス204は、管理者の操作によりデータを入力するデバイスである。出力デバイス205は、プロセッサ201の実行結果を表示するデバイスである。入力デバイス204と出力デバイス205は、一体型のデバイスでもよい。
【0031】
また、計算機システム100には、操作端末211が接続されていてもよい。操作端末211は、管理計算機101を操作するコンピュータである。操作端末211は、入力デバイス212と出力デバイス213とを有する。入力デバイス212は、管理者の操作によりデータを入力するデバイスである。入力データは、ネットワーク105を介して管理計算機101に送信される。出力デバイス213は、管理計算機101からのデータを表示するデバイスである。入力デバイス212と出力デバイス213は、一体型のデバイスでもよい。
【0032】
また、計算機システム100には、ネットワーク装置220が含まれる。ネットワーク装置220は、サーバ102とストレージ装置103との間のデータを中継する。
【0033】
図3は、ストレージシステムのシステム構成例を示すブロック図である。ストレージシステムは、サーバ102と、ストレージ装置103と、ネットワーク装置220と、がネットワーク105やSAN(Storage Area Network)を介して相互に通信可能に接続されるシステムである。
【0034】
サーバ102は、プロセッサ301と、メモリ302と、ネットワークI/F303と、主記憶デバイス304と、HBA(Host Bus Adapter)305と、を含むコンピュータである。サーバ102は、管理計算機101の管理対象装置である。サーバ102は、テナント400を構成するソフトウェアや仮想マシンを実行する。ネットワークI/F303は、他のネットワークI/F311,316、ネットワーク装置220の一例であるIP(Internet Protocol)スイッチ220A、ネットワーク105に接続される。HBA305は、ネットワーク装置220の一例であるFC(Fibre Channel)スイッチ220Bのポート
317に接続される。
【0035】
ストレージ装置103は、管理計算機101の管理対象装置であり、サーバ102上で動作するソフトウェアが使用する記憶容量を提供する。ストレージ装置103は、I/O処理ユニット132と、ネットワークI/F311と、I/Oポート312およびI/Oポート313と、論理ボリューム群133と、を有する。ネットワークI/F311は、例えばイーサネットによるLAN(Local Area Network)などのネットワーク105に接続するためのインタフェースであり、ポート131を含む。
【0036】
I/Oポート312およびI/Oポート313は、例えば、ファイバチャネルなどのようなSANに接続するインタフェースである。RAIDグループ315は、複数の記憶デバイスを1以上の論理ボリューム134としてサーバ102に提供する。また、ストレージ装置103はI/Oポート313を介して接続される外部のストレージ装置103A上に存在する論理ボリューム134を管理していてもよい。
【0037】
ネットワーク装置220には、IPスイッチ220AとFCスイッチ220Bがある。IPスイッチ220Aは、管理計算機101のネットワークI/F206、サーバ102のネットワークI/F303、ストレージ装置103のネットワークI/F311、FCスイッチ220BのネットワークI/F316に接続される。
【0038】
FCスイッチ220Bは、サーバ102とストレージ装置103との間でデータを転送する。FCスイッチ220Bは複数のポート317を有する。FCスイッチ220Bのポート317は、サーバ102のHBA305やストレージ装置103のI/Oポート312に接続される。ネットワーク装置220は、管理計算機101による管理対象装置であってもよい。
【0039】
<システム構成情報112>
つぎに、上述したシステム構成情報112の一例について
図4〜
図8を用いて説明する。
【0040】
図4は、システム構成情報112において規定されるテナント400とI/O処理ユニット132と論理ボリューム群との関係の一例を示す模式図である。テナント400は、それぞれサーバ102およびサーバ102上で動作するソフトウェアまたは仮想マシンの組み合わせにより構成される。テナント400は、顧客ごとに分けられてもよく、同一顧客内の業務やサービスごとに分けられてもよい。本例では、たとえば、テナントTaは本番環境であり、テナントTbは開発環境であり、テナントTcは最重要環境である。
【0041】
ストレージ装置103は、複数(例として3台)のI/O処理ユニット132を有する。論理ボリューム群133は、例として、論理ボリュームVol A〜Vol Gを含む。
【0042】
I/O処理ユニットP0は、論理ボリュームVol A〜Vol Cを担当する。I/O処理ユニットP1は、論理ボリュームVol D〜Vol Fを担当する。I/O処理ユニットP2は、論理ボリュームVol Gを担当する。
【0043】
図5は、システム構成情報112に含まれるテナント−ボリューム対応テーブル500の一例を示す説明図である。テナント−ボリューム対応テーブル500は、テナント400と論理ボリューム134とを対応付ける情報である。テナント−ボリューム対応テーブル500は、あらかじめ用意された情報である。テナント−ボリューム対応テーブル500は、テナントIDフィールド501とストレージ装置IDフィールド502とボリュームIDフィールド503を有する。
【0044】
テナントIDフィールド501は、テナントIDを格納する領域である。テナントIDは、テナント400を一意に特定する識別情報である。ストレージ装置IDフィールド502は、ストレージ装置IDを格納する領域である。ストレージ装置IDは、ストレージ装置103を一意に特定する識別情報である。
【0045】
ボリュームIDフィールド503は、ボリュームIDを格納する領域である。ボリュームIDは、論理ボリューム134を一意に特定する識別情報である。ボリュームIDは、たとえば、LUNである。
【0046】
なお、
図5の一行目のエントリは、テナントID:Taのテナント400は、ストレージ装置ID:ST1のストレージ装置103内のボリュームID:Vol Aの論理ボリューム134にアクセス可能であることを示す。
【0047】
図6は、システム構成情報112に含まれるI/O処理ユニット−ボリューム対応テーブル600の一例を示す説明図である。I/O処理ユニット−ボリューム対応テーブル600は、I/O処理ユニット132と論理ボリューム134とを対応付ける情報である。I/O処理ユニット−ボリューム対応テーブル600は、あらかじめ用意された情報であり、I/O処理ユニット132の割当変更により更新される。I/O処理ユニット−ボリューム対応テーブル600は、I/O処理ユニットIDフィールド601とボリュームIDフィールド602を有する。
【0048】
I/O処理ユニットIDフィールド601は、I/O処理ユニットIDを格納する領域である。I/O処理ユニットIDは、I/O処理ユニット132を一意に特定する識別情報である。ボリュームIDフィールド602は、
図5に示したボリュームIDフィールド503と同様、ボリュームIDを格納する領域である。
【0049】
なお、
図6の一行目のエントリは、I/O処理ユニットID:P0のI/O処理ユニット132が、ボリュームID:Vol A、Vol B,Vol Cの論理ボリューム134にアクセス可能であることを示す。
【0050】
図7は、負荷平準化許可ユニット管理テーブル700の一例を示す説明図である。負荷平準化許可ユニット管理テーブル700は、担当する論理ボリューム134の割当変更をしてもよいI/O処理ユニット132を規定する情報である。負荷平準化許可ユニット管理テーブル700は、あらかじめ用意され、管理計算機101の入力デバイス204または外部の入力デバイス212から任意に変更可能である。
【0051】
負荷平準化許可ユニット管理テーブル700は、I/O処理ユニットIDフィールド701と割当変更許可フィールド702とを有する。I/O処理ユニットIDフィールド701は、I/O処理ユニットIDを記憶する領域である。割当変更許可フィールド702は、I/O処理ユニット132が担当する論理ボリューム134について割当変更許可を示す情報(「可」または「不可」)を記憶する領域である。例えば、I/O処理ユニットP2では重要ホストとなるサーバ102のI/O処理を行うため、割当変更許可フィールド702の値が「不可」に設定されている。
【0052】
管理計算機101は、割当変更許可フィールド702の値が「可」であるI/O処理ユニット132の間で負荷平準化されるような割当変更プランの生成処理を行う。I/O処理ユニットP0、P1の割当変更許可フィールド702の値は「可」であるため、負荷平準化プログラム111は、たとえば、I/O処理ユニットP0が担当する論理ボリューム134をI/O処理ユニットP1に変更することができる。
【0053】
図8は、割当変更許可ボリューム管理テーブル800の一例を示す説明図である。割当変更許可ボリューム管理テーブル800は、割当変更されてもよい論理ボリューム134を規定する情報である。割当変更許可ボリューム管理テーブル800は、あらかじめ用意され、管理計算機101の入力デバイス204または外部の入力デバイス212から任意に変更可能である。割当変更許可ボリューム管理テーブル800は、ストレージ装置103ごとに分けられてもよい。
【0054】
割当変更許可ボリューム管理テーブル800は、ボリュームIDフィールド801と割当変更許可フィールド802とを有する。ボリュームIDフィールド801は、ボリュームIDを記憶する領域である。割当変更許可フィールド802は、ボリュームIDにより特定される論理ボリューム134について割当変更許可を示す情報(「可」または「不可」)を記憶する領域である。例えば、論理ボリュームVol Bでは、重要ホストとなるサーバ102のI/O処理に用いられるため、割当変更許可フィールド802の値が「不可」に設定されている。
【0055】
<リソース性能情報113>
つぎに、管理計算機101が記憶するリソース性能情報113の一例について
図9〜
図12を用いて説明する。
【0056】
図9は、運用品質−閾値対応テーブル900の一例を示す説明図である。運用品質−閾値対応テーブル900は、運用品質ごとに管理対象であるI/O処理ユニット132のリソース使用率の閾値を規定した情報である。運用品質−閾値対応テーブル900は、あらかじめ用意され、管理計算機101の入力デバイス204または外部の入力デバイス212から任意に変更可能である。運用品質−閾値対応テーブル900は、ストレージ装置103ごとに用意されていてもよく、I/O処理ユニット132ごとに用意されてもよい。
【0057】
運用品質−閾値対応テーブル900は、運用品質フィールド901と閾値フィールド902とを有する。運用品質フィールド901は、運用品質を格納する領域である。運用品質は、たとえば、ストレージ装置103の耐障害性の高さを示す指標である。運用品質の例として、「金」、「銀」、「銅」がある。「金」、「銀」、「銅」の中では、「金」が最も運用品質が高く、「銅」が最も品質運用が低い。なお、運用品質は、「金」、「銀」、「銅」の3種類に限定されない。閾値フィールド902は、管理対象であるI/O処理ユニット132のリソース使用率の閾値を格納する領域である。運用品質が高いほど閾値は低く設定される。
【0058】
図10は、閾値情報1000の一例を示す説明図である。閾値情報1000は、管理対象であるI/O処理ユニット132のリソース使用率の閾値を格納する。閾値情報1000は、あらかじめ用意され、管理計算機101の入力デバイス204または外部の入力デバイス212から任意に変更可能である。閾値情報1000は、ストレージ装置103ごとに用意されていてもよく、I/O処理ユニット132ごとに用意されてもよい。また、閾値情報1000には、時間帯ごとに閾値が格納されてもよい。
【0059】
図11は、I/O処理ユニット132のリソース使用率の時系列情報(以下、「第1のリソース使用率情報1100」)の一例を示す説明図である。第1のリソース使用率情報1100は、I/O処理ユニット132のリソース使用率の時間推移を格納する情報である。第1のリソース使用率情報1100は、ストレージ装置IDフィールド1101と、I/O処理ユニットIDフィールド1102と、リソース使用率フィールド1103と、を有する。
【0060】
ストレージ装置IDフィールド1101は、ストレージ装置IDを格納する領域である。I/O処理ユニットIDフィールド1102は、I/O処理ユニットIDを格納する領域である。リソース使用率フィールド1103は、所定時間間隔でI/O処理ユニット132のリソース使用率を格納する領域である。管理計算機101は、たとえば、所定時間ごとにI/O処理ユニット132からリソース使用率を受信することにより、受信したリソース使用率を第1のリソース使用率情報1100に格納する。
【0061】
図12は、論理ボリューム134ごとのI/O処理ユニット132のリソース使用率の時系列情報(以下、「第2のリソース使用率情報1200」)の一例を示す説明図である。第2のリソース使用率情報1200は、第1のリソース使用率情報1100を論理ボリューム134ごとにリソース使用率を分割した情報である。第2のリソース使用率情報1200は、ストレージ装置IDフィールド1201と、I/O処理ユニットIDフィールド1202と、ボリュームIDフィールド1203と、リソース使用率フィールド1204と、を有する。
【0062】
ストレージ装置IDフィールド1201は、ストレージ装置IDを格納する領域である。I/O処理ユニットIDフィールド1202は、I/O処理ユニットIDを格納する領域である。ボリュームIDフィールド1203は、ボリュームIDを格納する領域である。リソース使用率フィールド1204は、所定時間間隔でI/O処理ユニット132のリソース使用率を格納する領域である。管理計算機101は、たとえば、所定時間ごとにI/O処理ユニット132から論理ボリューム134ごとのリソース使用率を受信することにより、受信したリソース使用率を第2のリソース使用率情報1200に格納する。
【0063】
<テナント契約情報114>
つぎに、管理計算機101が記憶するテナント契約情報114の一例について
図13および
図14を用いて説明する。
【0064】
図13は、テナント重要度管理テーブルの一例を示す説明図である。テナント重要度管理テーブル1300は、テナント400の重要度を管理するテーブルである。テナント重要度管理テーブル1300は、あらかじめ用意され、管理計算機101の入力デバイス204または外部の入力デバイス212から任意に変更可能である。
【0065】
テナントIDフィールド1301は、テナントIDを格納する領域である。テナントIDは、テナント400を一意に特定する識別情報である。重要度フィールド1302は、テナントIDで特定されるテナント400の重要度を格納する領域である。
【0066】
図14は、ジョブ管理テーブル1400の一例を示す説明図である。ジョブ管理テーブル1400は、ストレージ装置103で実行される管理処理であるジョブの実行状態を管理するテーブルである。ジョブ管理テーブル1400は、ジョブIDフィールド1401と、ボリュームIDフィールド1402と、実行開始フィールド1403と、実行終了フィールド1404と、を有する。
【0067】
ジョブIDフィールド1401は、ジョブIDを格納する領域である。ジョブIDは、ジョブを一意に特定する識別情報である。ボリュームIDフィールド1402は、ボリュームIDを格納する領域である。実行開始フィールド1403は、実行開始時刻を格納する領域である。実行開始時刻は、ジョブIDで特定されるジョブの実行が、ボリュームIDで特定される論理ボリューム134を用いて開始される時刻である。実行終了フィールド1404は、実行終了時刻を格納する領域である。実行終了時刻は、ジョブIDで特定されるジョブの実行が終了した時刻である。まだジョブが終了していない場合は、空欄となる。
【0068】
<管理計算機101の負荷平準化処理>
つぎに、管理計算機101の負荷平準化処理について説明する。負荷平準化処理は、管理計算機101に記憶されている負荷平準化プログラム111をプロセッサ201に実行させることにより実行される処理である。
【0069】
図15は、管理計算機101の負荷平準化処理手順例を示すフローチャートである。まず、本フローチャートが実行される際のトリガについて説明する。
【0070】
本フローチャートによる負荷平準化処理は、管理計算機101の入力デバイス204から入力される管理者からの指示によって実行されてもよい。また、管理計算機101が、スケールアップを検知した場合に、実行されてもよい。
【0071】
例えば、サーバ102のスケールアップが検知された場合に、本フローチャートによる負荷平準化処理の実行が開始されてもよい。当該スケールアップの例としては、管理対象であるテナント400を構成するサーバ102上で動作する仮想マシンにおけるCPUリソースが向上した場合(たとえば、CPU使用率が閾値以下となった場合)がある。
【0072】
このほか、サーバ102のスケールアップの例としては、サーバ102内のプロセッサやHBA、メモリの増加があった場合、また、複数のサーバ102をクラスタ化しているのであれば、サーバ102をクラスタに追加することがある。いずれのスケールアップの場合も、サーバ102からのI/O処理要求が増加するため、関係するリソース(例えばI/O処理ユニット132)にさらなる負荷を与える契機となり得るためである。
【0073】
また、管理計算機101が論理ボリューム134のスケールアップを検知した場合に、本フローチャートによる負荷平準化処理の実行が開始されてもよい。当該スケールアップの例としては、論理ボリューム134を構成するRAIDグループ315が変更された場合である。こうした変更は論理ボリューム134の限界性能(性能の例としてはIOPS(Input/Output Per Second)がある)が向上し、その結果として他のリソース(例えばI/O処理ユニット132)にさらなる負荷を与える契機となり得るためである。なお、前述の「論理ボリューム134を構成するRAIDグループ
315の変更」は例えば、元々の構成元であった第1のRAIDグループ
315に、第2のRAIDグループが新規に追加(又は代替)される第1パターンや、第1のRAIDグループ
315自体の構成変更される第2パターンがある。
【0074】
第1パターンは例えば、階層制御によって所定の論理ボリューム134を構成するRAIDグループ
315が、FCやSASやSATA HDDといった比較的中位又は低位の階層の記憶デバイスで構成されたRAIDグループ
315から、SSDといった上位階層の記憶デバイスで構成されたRAIDグループ
315に代替された場合がある。なお、この時の代替する単位としては論理ボリュームを構成するRAIDグループ
315がそのまま代替される、論理ボリュームを単位とした場合のほか、論理ボリュームの記憶領域を複数の領域に分割し、当該分割領域毎にRAIDグループの代替を行う分割領域を単位とした場合がある。追加についても同様である。
【0075】
特にランダムリードにおいてヘッドシークが存在しないSSDのIOPS性能はHDDデバイスと比較して非常に優れている半面、他のリソースに負荷を与え得るため、こうした代替・追加は負荷平準化を行う重要な契機の一つである。なお、このような代替・追加の検知方法はこのような構成の変更を検知することが考えられる。また、プールを用いて論理ボリュームを作成する場合は、代替・追加の検知方法として、所定の論理ボリューム134を構成する記憶デバイスの種類毎の比率の変化を検知してもよい。
【0076】
第2パターンは例えば、RAIDグループ
315自体の構成変更によりRAIDレベルを変更したり、RAIDグループ
315を構成する記憶デバイスを増加させた場合である。
【0077】
また、サーバ102のスケールアップや論理ボリューム134のスケールアップにより、ストレージのI/O処理量が増加することでI/O処理ユニット132のリソース使用率が上昇することが想定される。このため、管理計算機101は、スケールアップが検知されたサーバ102が利用している論理ボリューム134に対するI/O処理ユニット132のリソース使用率を、例えば、1.2倍するなどして、所定量高く設定する。また、スケールアップが検知された論理ボリューム134に対するI/O処理ユニット132のリソース使用率を、例えば、1.2倍するなどして、所定量高く設定する。これにより、リソース使用率と閾値との間のマージンを持たせることができる。これにより、サーバ102のスケールアップや論理ボリューム134のスケールアップによりI/O処理ユニット132のリソース使用率が上昇してI/O処理ユニット132のリソース使用率が閾値超過することを事前に防ぐことができる。
【0078】
図15において、管理計算機101は、閾値超過判定処理(ステップS1501)、割当変更プラン生成処理(ステップS1502)、プラン実行時刻特定処理(ステップS1503)、レポート出力処理(ステップS1504)、負荷分散実行処理(ステップS1505)を実行する。なお、閾値超過判定処理(ステップS1501)、プラン実行時刻特定処理(ステップS1503)、レポート出力処理(ステップS1504)は必ずしも実行されなくてもよい。
【0079】
閾値超過判定処理(ステップS1501)は、I/O処理ユニット132のリソース使用率の閾値超過の有無を判定する処理である。閾値超過判定処理(ステップS1501)で閾値超過であると判定されなかった場合、管理計算機101は、以降の処理(S1502〜S1504)を実行しなくてもよい。閾値超過判定処理(ステップS1501)で閾値超過と判定された場合、管理計算機101は、以降の処理(S1502〜S1504)を実行する。なお、閾値超過判定処理(ステップS1501)では、運用品質−閾値対応テーブル900または閾値情報1000に格納されている閾値が用いられる。閾値超過判定処理(ステップS1501)の詳細は、
図16で後述する。
【0080】
割当変更プラン生成処理(ステップS1502)では、管理計算機101は、割当変更プランを生成し、主記憶デバイス202または補助記憶デバイス203に書き込む。ここで、割当変更プランとは、1回以上の論理ボリューム134の割当変更案(割当変更元のI/O処理ユニット132と割当変更させる論理ボリューム134と割当変更先のI/O処理ユニット132の組み合わせ)である。割当変更プラン生成処理(ステップS1502)は、の詳細は、
図17で後述する。
【0081】
プラン実行時刻特定処理(ステップS1503)では、管理計算機101は、割当変更プラン生成処理(ステップS1502)で生成された割当変更プランを実行する時刻を特定する。
【0082】
また、例えば、割当変更プランが、第1の割当変更案と第2の割当変更案を含む。第1の割当変更案は、たとえば、I/O処理ユニットP0からI/O処理ユニットP1への論理ボリュームVol Aの割当変更をするプランである。第2の割当変更案は、たとえば、I/O処理ユニットP2からI/O処理ユニットP1への論理ボリュームVol Bの割当変更をするプランである。この場合、第1の割当変更案と第2の割当変更案を同時刻に実行すると、I/O処理ユニットP0〜P2において割当変更処理の負荷が同時に高まり、ストレージ装置103のI/O処理性能に悪影響を与えることになる。
【0083】
そこで、プラン実行時刻特定処理(ステップS1503)では、管理計算機101は、割当変更が実行されるI/O処理ユニット132について負荷が低減する時間帯の中の時刻(たとえば、負荷が最低となる時刻)を、割当変更の実行時刻として特定する。また、割当変更プランが複数回の割当変更案を含んでいる場合は、管理計算機101は、それぞれの割当変更案が別の時刻に実行するように特定する。
【0084】
具体的には、たとえば、管理計算機101は、I/O処理ユニット132の過去一定期間のリソース使用率の統計情報からリソース使用率の推移の傾向を特定する。そして、例えば、管理計算機101は、「毎週土曜日と日曜日は負荷が所定値以下になる」、「毎日夜は負荷が所定値以下になる」等の負荷の傾向を特定する。管理計算機101は、直近の数日から数時間以内で、特定した負荷の傾向に該当する時間帯の中で最も負荷の下がる時刻を特定する。
【0085】
なお、プラン実行時刻特定処理(ステップS1503)を実行せずに、管理者が任意の実行時刻を設定しても良い。また、割当変更プラン生成処理(ステップS1502)にてI/O処理ユニット132の閾値超過状態を回復させる割当変更プランを生成できなかった場合、プラン実行時刻特定処理(ステップS1503)は実行されなくても良い。管理計算機101は、割当変更プランの実行時刻を、主記憶デバイス202または補助記憶デバイス203に書き込む。
【0086】
レポート出力処理(ステップS1504)では、管理計算機101は、割当変更プラン生成処理(ステップS1502)で生成された割当変更プランと、プラン実行時刻特定処理(ステップS1503)で特定された時刻とを、管理計算機101の
出力デバイス205または表示用計算機104に出力する。
【0087】
また、レポート出力処理(ステップS1504)では、管理計算機101は、第1のリソース使用率情報1100を用いて割当変更前のI/O処理ユニット132のリソース使用率をまとめたグラフを作成して表示してもよい。また、管理計算機101は、割当変更前と同一の条件下において、割当変更後のシステム構成でシミュレーションを実行し、その実行結果である割当変更後のI/O処理ユニット132のリソース使用率をまとめたグラフを作成して表示してもよい。また、管理計算機101は、両グラフを重ねて表示してもよい。これにより、管理者は、割当変更後のリソース使用率の変化を直感的に把握することができる。
【0088】
また、割当変更プラン生成処理(ステップS1502)にてI/O処理ユニット132の閾値超過状態を回復させる割当変更プランを生成できなかった場合、管理計算機101は、割当変更プラン以外の対処策を出力する。これにより、管理計算機101は、管理者の作業を促すことができる。例えば、I/O処理ユニット132のリソース使用率の閾値が80%よりも低く、閾値を緩和しても性能障害の発生に直結しないと判定できる場合には、管理計算機101は、閾値の緩和に関する提案情報を出力する。また、閾値超過している時刻にデータコピー処理などのI/O処理以外のジョブが実行されている場合、ジョブが実行されていることによりI/O処理ユニット132の使用率が閾値超過する。したがって、管理計算機101は、ジョブの実行時刻の変更に関する提案情報を出力してもよい。
【0089】
また、テナント400毎にテナント契約情報114の一部として、不図示のI/O処理の上限が保持されてもよい。この場合、I/O処理ユニット132のリソース使用率の閾値超過している時刻にI/O処理の上限を超えたI/O処理要求を出しているテナント400が存在する場合、管理計算機101は、I/O処理の上限を超えたI/O処理要求を制限する提案情報を出力してもよい。また、ストレージ装置103の要素を管理する情報が管理計算機101に保持されてもよい。この場合、例えば、I/O処理ユニット132をストレージ装置103に追加可能である場合、管理計算機101は、I/O処理ユニット132の追加に関する提案情報を出力してもよい。
【0090】
負荷分散実行処理(ステップS1505)では、管理計算機101は、割当変更プランに従って負荷分散処理を実行する。
【0091】
<閾値超過判定処理(ステップS1501)>
図16は、
図15に示した閾値超過判定処理(ステップS1501)の詳細な処理手順例を示すフローチャートである。
【0092】
ストレージ装置103は、サーバ102からのI/O処理要求の他に、ストレージ装置103の性能情報の管理計算機101への送信や、データコピーなどのジョブの実行のためにI/O処理ユニット132を使用することがある。サーバ102からのI/O処理要求以外のジョブによるI/O処理ユニット132の負荷が上昇しても、当該負荷は短期間で減少する。このような場合は、管理計算機101は、割当変更を実行させなくてもよい。したがって、閾値超過判定処理(ステップS1501)では、管理計算機101は、I/O処理要求の増加が原因となるI/O処理ユニット132の閾値超過を判定する。また、閾値超過判定処理(ステップS1501)は、I/O処理ユニット132ごとに実行される。
【0093】
図16において、管理計算機101は、閾値超過判定対象のI/O処理ユニット132のリソース使用率が閾値超過したか否かを判断する(ステップS1601)。閾値超過でない場合(ステップS1601:No)、管理計算機101は、閾値超過判定対象のI/O処理ユニット132についての閾値超過判定処理(ステップS1501)を終了する。
【0094】
一方、閾値超過である場合(ステップS1601:Yes)、管理計算機101は、I/O処理要求の増加が閾値超過の原因であるか否かを判断する(ステップS1602)。具体的には、たとえば、閾値超過判定対象のI/O処理ユニット132が担当する全論理ボリューム134へのI/O処理要求の数が、所定数以上であるか否かを判断する。所定数以上であれば、I/O処理要求の増加が、閾値超過判定対象のI/O処理ユニット132のリソース使用率の閾値超過の原因となる。
【0095】
管理計算機101は、I/O処理要求の増加が閾値超過の原因と判断した場合(ステップS1602:Yes)、閾値超過判定対象のI/O処理ユニット132のリソース使用率が閾値超過したと判定し、判定結果を主記憶デバイス202または補助記憶デバイス203に格納する(ステップS1603)。これにより、管理計算機101は、当該I/O処理ユニット132についての閾値超過判定処理(ステップS1501)を終了する。
【0096】
また、たとえば、閾値超過判定対象のI/O処理ユニット132が担当する全論理ボリューム134へのI/O処理要求の数が、所定数以上でない場合、I/O処理要求の増加が、閾値超過判定対象のI/O処理ユニット132のリソース使用率の閾値超過の原因ではない。この場合、閾値超過判定対象のI/O処理ユニット132でのバックエンド処理や集計処理といったI/O処理以外のジョブにより、閾値超過判定対象のI/O処理ユニット132のリソース使用率が閾値超過したことになる。すなわち、I/O処理によるリソース使用率の閾値超過が直接的な原因ではないため、ジョブの実行が終了すれば、閾値超過判定対象のI/O処理ユニット132のリソース使用率が閾値以下になる。
【0097】
このため、管理計算機101は、I/O処理要求の増加が閾値超過の原因ではないと判断した場合(ステップS1602:No)、閾値超過判定対象のI/O処理ユニット132のリソース使用率は実質的に閾値以下であると判定し、判定結果を主記憶デバイス202または補助記憶デバイス203に格納する(ステップS1604)。この場合、管理計算機101は、閾値超過判定対象のI/O処理ユニット132のリソース使用率を閾値未満の値に設定しておく。これにより、後述する割当変更プラン生成処理(ステップS1502)のステップS1702において、リソース使用率が閾値超過しているI/O処理ユニット132のみを特定することができる。以上により、管理計算機101は、当該I/O処理ユニット132についての閾値超過判定処理(ステップS1501)を終了する。
【0098】
<割当変更プラン生成処理(ステップS1502)>
図17は、
図15に示した割当変更プラン生成処理(ステップS1502)の詳細な処理手順例を示すフローチャートである。
【0099】
割当変更プラン生成処理(ステップS1502)では、管理計算機101は、I/O処理ユニット132と論理ボリューム134の全ての組合せをチェックすることなく、I/O処理ユニット132の閾値超過している状態を改善する割当変更プランを生成し、さらに、その割当変更プランの中から、割当変更回数の少ない割当変更プランを生成する。
【0100】
まず、管理計算機101は、割当変更回数が上限に達したか否かを判断する(ステップS1701)。割当変更回数とは、ステップS1705が実行された回数である。上限は、あらかじめ設定される。何回割当変更を繰り返しても閾値超過を解決できない場合も存在する場合があるため、上限が設定される。
【0101】
上限に達していない場合(ステップS1701:No)、ステップS1702に移行し、上限に達した場合(ステップS1701:Yes)、ステップS1708に移行する。
【0102】
上限に達していない場合(ステップS1701:No)、管理計算機101は、負荷平準化対象の未選択I/O処理ユニット132があるか否かを判断する(ステップS1702)。負荷平準化対象とは、閾値超過判定処理(ステップS1501)で閾値超過と判定され、かつ、負荷平準化許可ユニット管理テーブル700の割当変更許可フィールド702の値が「可」であるI/O処理ユニット132である。したがって、閾値超過判定処理(ステップS1501)で閾値超過と判定されたI/O処理ユニット132であっても、負荷平準化許可ユニット管理テーブル700の割当変更許可フィールド702の値が「不可」であるI/O処理ユニット132は、負荷平準化対象に該当しない。
【0103】
負荷平準化対象の未選択I/O処理ユニット132がない場合(ステップS1702:No)、ステップS1708に移行する。一方、負荷平準化対象の未選択I/O処理ユニット132がある場合(ステップS1702:Yes)、管理計算機101は、未選択I/O処理ユニット132を1つ選択して、割当変更対象選択処理を実行する(ステップS1703)。割当変更対象選択処理(ステップS1703)では、管理計算機101は、割当変更させる論理ボリューム134の候補を選択する。割当変更対象選択処理(ステップS1703)の詳細は、
図18で後述する。
【0104】
割当変更対象選択処理(ステップS1703)のあと、管理計算機101は、割当変更させる論理ボリューム134の処理を引き受ける割当変更先I/O処理ユニット132の候補を選択する(ステップS1704)。具体的には、たとえば、管理計算機101は、割当変更先I/O処理ユニット132を、過去一定期間のリソース使用率の平均使用率が低い順に選択する。ただし、管理計算機101は、負荷平準化許可ユニット管理テーブル700の割当変更許可フィールド702の値が「不可」であるI/O処理ユニット132を、割当変更先I/O処理ユニット132候補として選択しない。
【0105】
管理計算機101は、割当変更元のI/O処理ユニット132と同一のストレージ装置103に存在するI/O処理ユニット132の中から割当変更先のI/O処理ユニット132を選択してもよい。また、管理計算機101は、割当変更元のI/O処理ユニット132が存在するストレージ装置103とは異なるストレージ装置103の中から割当変更先のI/O処理ユニット132を選択してもよい。
【0106】
なお、割当変更先のI/O処理ユニット132と割当変更元のI/O処理ユニット132の限界性能(例えば、CPU動作周波数)が異なる場合は、管理計算機101は、I/O処理ユニット132の限界性能の差分に合わせて、第2のリソース使用率情報1200の値を修正して、ステップS
1705以降の処理を実行する。
【0107】
たとえば、割当変更元のI/O処理ユニット132のCPU動作周波数が4[GHz]で、割当変更先のI/O処理ユニット132のCPU動作周波数が8[GHz]の場合、割当変更先のI/O処理ユニット132のCPU性能が2倍優れており、I/O処理のリソース使用率に与える影響が0.5倍になる。したがって、管理計算機101は、第2のリソース使用率情報1200において、割当変更される論理ボリューム134のリソース使用率を0.5倍した値を用いて、ステップS1705以降の処理を実行する。
【0108】
つぎに、管理計算機101は、最適な割当変更案を選択する(ステップS1705)。具体的には、たとえば、管理計算機101は、割当変更対象選択処理(ステップS1703)で選択された論理ボリューム134と、ステップS1704で選択された割当変更先I/O処理ユニット132の候補との組み合わせである割当変更案の集合の中から、最も閾値超過の改善に効果的な割当変更案を選択し、割当変更プランの末尾に追加する。
【0109】
より具体的には、たとえば、管理計算機101は、まず、ステップS1702で選択された割当変更元となるI/O処理ユニット132と、割当変更対象選択処理(ステップS1703)で選択された論理ボリューム134と、ステップS1704で選択された割当変更先のI/O処理ユニット132の候補との組み合わせである割当変更案を作成する。
【0110】
つぎに、管理計算機101は、作成した割当変更案の全組み合わせについてシミュレーションを実行する。具体的には、たとえば、管理計算機101は、シミュレーション期間中の所定時間間隔で、作成した割当変更案ごとに、割当変更案を適用した場合の割当変更後における割当変更元のI/O処理ユニット132のリソース使用率(以下、リソース使用率Ra)と割当変更案を適用した場合の割当変更後における割当変更先のI/O処理ユニット132のリソース使用率(以下、リソース使用率Rb)とをそれぞれ算出する。
【0111】
リソース使用率Raは、ステップS1702で選択された割当変更元のI/O処理ユニット132のリソース使用率から、ステップS1703で選択された論理ボリューム134分のリソース使用率を引いた値である。
【0112】
リソース使用率Rbは、ステップS1704で選択された割当変更先のI/O処理ユニット132のリソース使用率から、ステップS1703で選択された論理ボリューム134分のリソース使用率を足した値である。
【0113】
これにより、シミュレーション期間中において、作成した割当変更案ごとに、所定時間間隔で計算されたリソース使用率Ra,Rbの時系列データが得られる。
【0114】
そして、管理計算機101は、リソース使用率Ra,Rbの時系列データの各々の閾値超過期間を算出し、両閾値超過期間の総和を求める。閾値は、運用品質−閾値対応テーブル900または閾値情報1000から選択される。
【0115】
また、管理計算機101は、リソース使用率Ra,Rbの時系列データの各々の閾値超過期間について、閾値超過量を算出し、両閾値超過量の総和を求める。リソース使用率Raの閾値超過量は、その閾値超過期間におけるリソース使用率Raの時系列データの各々から閾値を引いた値の合計である。同様に、リソース使用率Rbの閾値超過量は、その閾値超過期間におけるリソース使用率Rbの時系列データの各々から閾値を引いた値の合計である。
【0116】
そして、管理計算機101は、たとえば、閾値超過期間の総和が最短となる割当変更案を、最も効果のある割当変更として選択する。また、閾値超過期間の総和が最短となる割当変更案が複数存在する場合、管理計算機101は、閾値超過量の総和が最小となる割当変更案を選択する。選択された割当変更案は、主記憶デバイス内または補助記憶デバイス内の割当変更プランの末尾に追加される。追加後の割当変更プランが基底状態となる。
【0117】
なお、上記の例では、リソース使用率Ra,Rbを用いたが、管理計算機101は、リソース使用率Ra,Rbのうちいずれか一方のみ用いてもよい。なお、ステップS1705で割当変更が選択された場合は、管理計算機101は、ステップS1701で用いられる割当変更回数をインクリメントする。
【0118】
つぎに、管理計算機101は、ステップS1705で選択された割当変更案について、割当変更の振動の有無を検出する(ステップS1706)。ここで、割当変更の振動とは、ある割当変更案の変更元のリソースは、他の割当変更案の変更元のリソースに設定されていないが他の割当変更案のいずれかの変更先のリソースに設定されており、かつ、ある割当変更案の変更先のリソースは、他の割当変更案の変更先のリソースに設定されていないが他の割当変更案のいずれかの変更元のリソースに設定されている状態をいう。
【0119】
例えば、論理ボリュームVol XがI/O処理ユニットPaとI/O処理ユニットPbの間で割当変更が繰り返されている、論理ボリュームVol XがI/O処理ユニットPaとI/O処理ユニットPbとI/O処理ユニットPcの間で割当変更が繰り返されているというような、特定の論理ボリューム134が同じI/O処理ユニット132間で割当変更を繰り返しているような状態をいう。
【0120】
割当変更の振動が検出された場合(ステップS1706:Yes)、ステップS1707に移行し、振動が検出されなかった場合(ステップS1706:No)、ステップS1701に戻る。
【0121】
また、割当変更の振動が検出された場合(ステップS1706:Yes)、管理計算機101は、振動を回避する処理を行い(ステップS1707)、ステップS1701に戻る。具体的には、たとえば、管理計算機101は、割当変更プランの中から振動に該当する割当変更案のエントリを削除する。管理計算機101は、割当変更許可ボリューム管理テーブル800の振動に該当する論理ボリューム134のエントリにおいて、割当変更許可フィールド802の値を「不可」に更新する。なお、ステップ
S1701に進む場合は、振動に該当する割当変更案のエントリの削除後の割当変更プランが基底状態となる。
【0122】
また、管理計算機101は、割当変更プランの最適化処理を実行して(ステップS1708)、割当変更プラン生成処理(ステップS1502)を終了し、ステップS1503に移行する。割当変更プランの最適化処理(ステップS1708)の詳細については後述する。
【0123】
<割当変更対象選択処理(ステップS1703)>
図18は、
図17に示した割当変更対象選択処理(ステップS1703)の詳細な処理手順例を示すフローチャートである。割当変更対象選択処理(ステップS1703)では、ある時刻におけるI/O処理ユニット132のリソース使用率の閾値超過量に近いI/O処理ユニット132のリソース使用率である論理ボリューム134を選択する処理である。これにより、論理ボリューム134の処理を引き受けることになるI/O処理ユニット132の負荷の上昇を最小限に抑える論理ボリューム134を選択することができる。
【0124】
閾値超過量よりも小さいリソース使用率であるI/O処理ユニット132が担当する論理ボリューム134が選択されると、I/O処理ユニット132の閾値超過状態を解決するために割当変更回数が増加し、リスクをうける論理ボリューム134の数を増やすことになる。このため、割当変更対象選択処理(ステップS1703)では、管理計算機101は、割当変更先の悪影響を抑えつつ、少ない割当変更回数でI/O処理ユニット132の閾値超過状態を解決する割当変更対象を探索する。
【0125】
図18において、管理計算機101は、ステップS1702で選択されたI/O処理ユニット132を割当変更元のI/O処理ユニット132として、そのリソース使用率の閾値超過量を算出する(ステップS1801)。管理計算機101は、たとえば、割当変更元のI/O処理ユニット132のリソース使用率が閾値超過した期間の中の最大値から閾値を減算することにより、閾値超過量を算出する。閾値は、運用品質−閾値対応テーブル900または閾値情報1000から選択される。
【0126】
つぎに、管理計算機101は、割当変更元のI/O処理ユニット132の論理ボリューム134ごとのリソース使用率を、第2のリソース使用率情報1200から取得し、閾値超過量を超えている論理ボリューム134を、閾値超過量との差分が小さい順にソートする(ステップS1802)。閾値超過量を超えていない論理ボリューム134は、閾値超過量を超えているボリュームの次に、閾値超過量との差分が小さい順に並び替えられる。
【0127】
図19は、ステップS1
802のソート処理の一例を示す説明図である。
図19では、説明を単純化するため、第2のリソース使用率情報1200のボリュームIDフィールド
1203と、ある時刻のリソース使用率フィールド1204とを抜粋したテーブル1900を用いて説明する。
【0128】
ソート前のテーブル1900では、論理ボリュームVol Aのリソース使用率が1[%]、論理ボリュームVol Bは2[%]、論理ボリュームVol Cは3[%]、論理ボリュームVol Dは4[%]、論理ボリュームVol Eは5[%]、論理ボリュームVol Fは6[%]である。ここで、I/O処理ユニット132の閾値超過量が4[%]として、ソート処理(ステップS1802)が実行された場合、論理ボリュームVol D(4[%])、論理ボリュームVol E(5[%])、論理ボリュームVol F(6[%])、論理ボリュームVol C(3[%])、論理ボリュームVol B(2[%])、論理ボリュームVol A(1[%])の順にソートされる。
【0129】
図18に戻り、管理計算機101は、割当変更候補となる論理ボリューム134を複数個選択する(ステップS1803)。具体的には、たとえば、管理計算機101は、ステップS1802でソートした上位の論理ボリューム134の中から、テナント重要度管理テーブル1300の重要度フィールド1302の値である重要度が最も低い論理ボリューム134を優先して選択する。
【0130】
例えば、ソート結果において上位10個の論理ボリューム134の中から5個の論理ボリューム134を候補として選択する場合を例に挙げる。管理計算機101は、ソート処理(ステップS1802)でソートされた論理ボリューム群133の上位10件の中から重要度が「低」のテナント400がアクセス可能な論理ボリューム134を選択する。
【0131】
また、管理計算機101は、候補として選択した論理ボリューム134が5個に満たない場合、残余の論理ボリューム134の中から重要度が「低」の次に高い「中」のテナント400がアクセス可能な論理ボリューム134を、ソート結果が上位の論理ボリューム134から選択する。同様に、管理計算機101は、候補として選択した論理ボリューム134が5個に満たない場合、残余の論理ボリューム134の中から重要度が「中」よりも高い「高」の論理ボリューム134を、ソート結果が上位の論理ボリューム134から選択する。
【0132】
なお、論理ボリューム134が存在する記憶デバイスがI/Oポート313を介して外部のストレージ装置103上に存在する場合がある。この場合、実際のI/O処理は、外部のストレージ装置103のI/O処理ユニット132で行われる。外部のストレージ装置103のI/O処理ユニット132のリソース使用率は、割当変更元のI/O処理ユニット132のリソース使用率よりも高い場合があり、現在時点で大量のI/O処理が行われている可能性がある。このため、外部のストレージ装置103上の記憶デバイス上に存在する論理ボリューム134については、上位であっても、管理計算機101は、割当変更先ボリュームの選択対象外としてもよい。
【0133】
このように、割当変更対象選択処理(ステップS1703)は、ある時刻におけるI/O処理ユニット132のリソース使用率の閾値超過量に近いI/O処理ユニット132のリソース使用率である論理ボリューム134を選択する。これにより、論理ボリューム134の処理を引き受けることになるI/O処理ユニット132の負荷の上昇を最小限に抑える論理ボリューム134を選択することができる。
【0134】
一方、割当変更後では、論理ボリューム134が割当変更されたI/O処理ユニット132のリソース使用率と閾値との間のマージンが最小限に抑制される。このため、管理計算機101は、テナント重要度管理テーブル1300の重要度が高い(たとえば、「高」)テナント400が利用している論理ボリューム134を、テナント−ボリューム対応テーブル500から特定する。そして、管理計算機101は、第2のリソース使用率情報1200のうち重要度の高いテナント400が利用している論理ボリューム134のリソース使用率について、例えば、1.2倍した値を用いて、負荷平準化プログラム111を実行することとしてもよい。これにより、管理計算機101は、重要テナント400については、論理ボリューム134が割当変更されたI/O処理ユニット132のリソース使用率と閾値との間のマージンの拡大を図りつつ、当該マージンを最小限に抑制することができる。
【0135】
また、
図15で述べたように、サーバ102のスケールアップや論理ボリューム134のスケールアップを契機にして負荷平準化プログラム111の実行が開始される場合がある。スケールアップしたサーバ102が利用している論理ボリューム134または、スケールアップした論理ボリューム134のI/O処理ユニット132のリソース使用率を、例えば、1.2倍するなどして、所定量高く設定し、負荷平準化プログラム111を実行する。
【0136】
これにより、管理計算機101は、スケールアップにより所定量リソース使用率が高く設定された論理ボリューム134が割当変更された場合、当該論理ボリューム134に対するI/O処理ユニット132のリソース使用率と閾値との間のマージンの拡大を図りつつ、当該マージンを最小限に抑制することができる。
【0137】
サーバ102がスケールアップすると、ストレージ装置103へのアクセス量も増加するため、I/O処理ユニット132のリソース使用率が、サーバ102のスケールアップと連動して上昇する。マージンを持たないで負荷平準化プログラム111が実行される場合、スケールアップしたサーバ102が利用している論理ボリューム134の処理を行っているI/O処理ユニット132のリソース使用率が閾値超過し、ストレージ装置103の応答性能に悪影響をあたえる可能性がある。このため、論理ボリューム134に対するI/O処理ユニット132のリソース使用率をあらかじめゆとりをもたせて設定しておくことにより、ストレージ装置103の応答性能の悪化を抑制することができる。
【0138】
また、論理ボリューム134のスケールアップも同様であり、論理ボリューム134の限界性能が上昇することによりI/O処理量が増加し、スケールアップした論理ボリューム134のI/O処理を行っているI/O処理ユニット132のリソース使用率が閾値を超過して応答性能が悪化する可能性がある。このような場合でも、論理ボリューム134に対するI/O処理ユニット132のリソース使用率をあらかじめゆとりをもたせて設定しておくことにより、ストレージ装置103の応答性能の悪化を抑制することができる。
【0139】
<割当変更プランの最適化処理(ステップS1708)>
つぎに、
図17に示した割当変更プランの最適化処理(ステップS1708)について説明する。
図17のステップS1701からS1707までの処理の繰り返しにより作成された割当変更プランでは、I/O処理ユニット132のリソース使用率を最適化する処理の段階で、ある割当変更の組み合わせの割当変更先が他の割当変更の組み合わせの割当変更元になることが許容される。例えば、特定の論理ボリューム134の担当がI/O処理ユニットPaからI/O処理ユニットPbへ、I/O処理ユニットPbからI/O処理ユニットPcへ割当変更されるような場合を許容する。
【0140】
割当変更処理の実行によるリスクを最小化するために、このように複数回に分けて割当変更するよりは、I/O処理ユニットPaからI/O処理ユニットPcへ一度で割当変更する方が効率的である。そのための最低化が割当変更プランの最適化処理(ステップS1708)で実行される。
【0141】
図20は、割当変更プランの最適化処理(ステップS1708)の一例を示す説明図である。割当変更プラン2000は、番号フィールド2001と、変更元フィールド2002と、割当変更ボリュームフィールド2003と、変更先フィールド2004と、を有し、エントリごとに割当変更の組み合わせを規定する。
図20において、(A)が最適化前の割当変更プラン2000であり、(B)が最適化後の割当変更プラン2000である。
【0142】
割当変更プラン2000において、番号フィールド2001は、割当変更案に固有な番号を格納する領域である。変更元フィールド2002は、割当変更元のI/O処理ユニット132を一意に特定する識別情報を格納する領域である。割当変更ボリュームフィールド2003は、割当変更対象となる論理ボリューム134を一意に特定する識別情報を格納する領域である。変更先フィールド2004は、割当変更先のI/O処理ユニット132を一意に特定する識別情報を格納する領域である。
【0143】
(A)の割当変更プラン2000では、番号1のエントリの割当変更案において、論理ボリュームVol Aが、I/O処理ユニットP0からI/O処理ユニットP3に変更される。番号2のエントリの割当変更案において、論理ボリュームVol Aが、I/O処理ユニットP3からI/O処理ユニットP5に変更される。番号4のエントリの割当変更案において、論理ボリュームVol Aが、I/O処理ユニットP5からI/O処理ユニットP6に変更される。
【0144】
最適化後の(B)の割当変更プラン2000では、番号1のエントリの割当変更案において、論理ボリュームVol Aが、I/O処理ユニットP0からI/O処理ユニットP6に変更される。なお、番号2のエントリの割当変更案は、最適化前の(A)の割当変更プラン2000の番号3のエントリの割当変更案に対応する。このように、最適化前後では、エントリ数が削減され、割当変更回数が短縮化される。
【0145】
図21は、割当変更プラン2000の最適化処理(ステップS1708)の詳細な処理手順例を示すフローチャートである。管理計算機101は、同一論理ボリューム134の割当変更案をすべて探索する(ステップS2101)。
図20の(A)の割当変更プラン2000では、番号1、2、4のエントリの割当変更案が探索される。
【0146】
つぎに、管理計算機101は、ステップS2101で探索された割当変更案から論理ボリューム134が同一である未選択の割当変更案をすべて選択する(ステップS2102)。
図20の(A)の割当変更プラン2000では、番号1、2、4のエントリの割当変更案が選択される。
【0147】
そして、管理計算機101は、ステップS2102で選択されたエントリのうち、番号が最小のエントリの変更先フィールド2004の値を、番号が最大のエントリの変更先フィールド2004の値で上書きする(ステップS2103)。
図20の(A)の割当変更プラン2000では、管理計算機101は、番号1のエントリの変更先フィールド2004の値「P3」を、番号4のエントリの変更先フィールド2004の値「P6」に変更する。
【0148】
そして、管理計算機101は、ステップS2102で選択されたエントリのうち、番号が最小でないエントリを割当変更プラン2000から削除する(ステップS2104)。
図20の(A)では、番号2と番号4のエントリの割当変更案が削除される。削除後は、番号フィールド2001の番号は昇順に上書きされる。したがって、(A)の割当変更プラン2000の番号3のエントリの割当変更案は、(B)では番号2のエントリの割当変更案となる。
【0149】
このあと、管理計算機101は、ステップS2101で探索された割当変更案の中に論理ボリューム134が同一である未選択の割当変更案があるか否かを判断する(ステップS2105)。ある場合(ステップS2105:Yes)、ステップS2102に戻る。一方、ない場合(ステップS2105:No)、割当変更プラン2000の最適化処理(ステップS1708)が終了する。
【0150】
<出力画面例>
図22は、管理計算機101の負荷平準化処理によって得られる割当変更プラン2000の出力画面例を示す説明図である。
図22の出力画面2200は、レポート出力処理(ステップS1504)により表示される。管理計算機101が、生成した割当変更プラン2000と、割当変更される論理ボリューム134を利用しているテナント名とを合わせた負荷分散案2201を表示することにより、管理者は、悪影響を受けるテナント400を確認することができる。なお、負荷分散案2201は、少なくとも割当変更プラン2000が含まれていればよい。
【0151】
割当変更される論理ボリューム134をマウントしているストレージ装置名を表示するために、管理計算機101は、テナント−ボリューム対応テーブル500を参照してもよい。また、出力画面は、管理計算機101の出力装置に表示されてもよく、管理計算機101が出力画面に関する情報を表示用計算機104に送信し、表示用計算機104が出力画面2200を表示することとしてもよい。
【0152】
図22では、管理計算機101は、負荷分散案2201と併せて割当変更の効果を示すグラフ情報2202を表示する。グラフ情報2202のうち、第1のグラフ2210は、割当変更プラン2000の実行前でI/O処理ユニット132のリソース使用率のばらつきがどのように変化するかを示す。管理計算機101は、第1のリソース使用率情報1100を用いて第1のグラフ2210を作成し、表示する。
【0153】
第2のグラフ2220は、割当変更プラン2000の実行後でI/O処理ユニット132のリソース使用率のばらつきがどのように変化するかを示す。具体的には、たとえば、管理計算機101は、割当変更前と同一の条件下において、割当変更後のシステム構成でシミュレーションを実行し、その実行結果である割当変更後のI/O処理ユニット132のリソース使用率をまとめたグラフを作成して表示する。第1のグラフ2210および第2のグラフ2220はともに、各I/O処理ユニット132のリソース使用率の各時刻の最大値を通る線2211,2221と最小値を通る線2212,2222で囲まれる領域を示す。
【0154】
グラフの幅が狭いほど、I/O処理ユニット132間のリソース使用率のばらつきが小さく、グラフの幅が広いほど、I/O処理ユニット132間のリソース使用率のばらつきが大きいことを示す。
図22の例では、第1のグラフ2210のほうが第2のグラフ2220よりも幅が広いため、I/O処理ユニット132間のリソース使用率のばらつきが大きいことを示す。管理計算機101が割当変更プラン2000の効果をグラフとして表示することにより、管理者は視覚的に割当変更プラン2000の実行によるリソース使用率のばらつきの収まりや閾値超過の改善度合いを確認することができる。
【0155】
なお、編集ボタン2203の押下により、管理者は、負荷分散案2201を変更することができる。そして、変更があった場合、管理計算機101は、変更後の負荷分散案2201により再度シミュレーションを実行し、変更後の第2のグラフ2220を作成して表示する。
【0156】
また、OKボタン2204の押下により、管理計算機101は、負荷分散案2201にしたがって、システム構成を変更する。
図22の例では、論理ボリュームVol Aの担当がI/O処理ユニットP0からI/O処理ユニットP6に変更され、論理ボリュームVol Bの担当がI/O処理ユニットP2からI/O処理ユニットP4に変更される。すなわち、管理計算機101は、I/O処理ユニットP0、P2に更新指示を送り、I/O処理ユニットP0、P2は、その内部メモリに格納されている論理ボリューム134の管理情報から、それぞれ「Vol A」、「Vol B」を削除する。同様に、管理計算機101は、I/O処理ユニットP6、P4に更新指示を送り、I/O処理ユニットP6、P4は、その内部メモリに格納されている論理ボリューム134の割当情報に、それぞれ「Vol A」、「Vol B」を追加する。また、管理計算機101は、同様に、I/O処理ユニット−ボリューム対応テーブル600を更新する。これにより、更新処理が完了する。
【0157】
図23は、各I/O処理ユニット132のリソース使用率の内訳の変化を示す出力画面例を示す説明図である。
図22の出力画面2200も、レポート出力処理(ステップS1504)により表示される。出力画面2300は、管理計算機101の出力装置に表示されてもよく、管理計算機101が出力画面2300に関する情報を表示用計算機104に送信し、表示用計算機104が出力画面2300を表示することとしてもよい。
【0158】
出力画面2300は、負荷平準化処理によって生成された割当変更プラン2000の効果の確認するための画面例である。任意のI/O処理ユニット132のリソース使用率の論理ボリューム134毎または論理ボリューム群133ごとの内訳が積み上げられた面グラフが、割当変更プラン2000の効果の確認のために表示される。
【0159】
例えば、変更元のI/O処理ユニット132から、割当変更される論理ボリューム134のI/O処理に裂いていたリソース使用率が削減される。
図23の出力画面2300を管理者が見ることにより、管理計算機101は、削減されるリソース使用率が時系列でどのように影響を与えているかを出力画面2300に表示することができる。
【0160】
また、例えば、変更先のI/O処理ユニット132のリソース使用率は、割当変更される論理ボリューム134のI/O処理に必要な分だけ増加する。管理計算機101は、この増加分のリソース使用率がI/O処理ユニット132のリソース使用率に対し時系列でどのような影響を与えているかを出力画面2300に表示することができる。たとえば、
図23の出力画面2300は、I/O処理ユニットP0のリソース使用率の割当変更プラン2000の実行前後の変化を示す。論理ボリュームVol Aのリソース使用率が減少しているため、管理者は、I/O処理ユニットP0について閾値超過している状態を改善できていることを確認することができる。
【0161】
以上の通り、本実施例によれば、ストレージ装置103のI/O処理ユニット132に負荷の片寄りが生じた場合に、管理計算機101が負荷を平準化させる割当変更プラン2000を算出し、算出した割当変更プラン2000を管理者に提示する。これにより、管理者は事前に割当変更プラン2000の妥当性を判断することができる。
【0162】
なお、本実施例ではI/O処理ユニット132負荷平準化処理を管理計算機101上で実行したが、この負荷平準化処理は、ストレージ装置103上で実行されてもよい。また、その際ストレージ装置103が保持していない情報に関しては、ストレージ装置103が管理計算機101に問い合わせればよい。また、管理者からの事前承認が得られている場合、負荷平準化処理は自動実行されてもよい。
【0163】
また、本実施例では、I/O処理ユニット132について割当変更プラン2000を生成する処理を説明したが、同様の手法を用いて、管理計算機101は、I/O処理ユニット132に替えてI/Oポート131やネットワークI/F303のリソース使用率を平準化する割当変更プラン2000を生成してもよい。この場合のリソース使用率は、たとえば、1秒あたりのI/O処理要求の数を、限界IOPSで割った値が用いられる。なお、リソース使用率は1秒単位に限定されず、あらかじめ設定された所定時間単位でもよい。
【0164】
また、本実施例では、I/O処理ユニット132について割当変更プラン2000を生成する処理を説明したが、同様の手法を用いて、管理計算機101は、I/O処理ユニット132のリソース使用率に替えて、論理ボリューム134を構成する論理デバイスやRAIDグループ315、論理ボリューム134のリソース使用量を平準化する割当変更プラン2000を生成してもよい。
【0165】
このように、ストレージ装置103において、I/O処理ユニット132の負荷は、その担当する記憶デバイスの種類や数により決まる。通常は、適切な負荷で運用されていても、突発的なアクセスの増加により、あるI/O処理ユニット132に負荷が集中する場合がある。また、記憶デバイスの種類により限界IOPS(I/O per Second)が異なるため、たとえば、HDDデバイスよりも高速なSSDが記憶デバイスに採用された場合には、SSDの限界性能が向上し、SSDを担当するI/O処理ユニット132の限界性能がボトルネックになる。また、サーバ102の仮想化や記憶デバイス群の階層制御により、ストレージ装置103の中に複数あるI/O処理ユニット132の負荷の片寄りが発生し、ストレージ装置103の応答時間が悪化する性能障害が発生しやすくなる。
【0166】
しかしながら、本実施例により、管理計算機101は、割当変更回数を最小限に抑制することにより、I/O処理ユニット132の負荷を平準化する割当変更プラン2000を生成し、管理者に提案することができる。これにより、動的にシステム構成に変化が起こりストレージ装置103への負荷の変動が激しい環境においても、管理計算機101は、重要なサーバ102への悪影響を抑えながら、容易にI/O処理ユニット132の負荷を平準化することができる。
【0167】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0168】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0169】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0170】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。