幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。これらの図面において、複数の図を通じて同一の符号は同一の構成要素を示している。なお、以後の説明では「aaaテーブル」等の表現にて本発明の情報を説明するが、これら情報はテーブル等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」等について「aaa情報」と呼ぶことがある。さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名称」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信デバイス、管理I/F、データI/F)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ(管理計算機)等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。
以後、計算機システムを管理し、本発明の表示用情報を表示する一つ以上の計算機の集合を管理システムと呼ぶことがある。管理サーバが表示用情報を表示する場合は管理サーバが管理システムである。また、管理サーバと表示用計算機との組み合わせも管理システムである。また、管理処理の高速化や高信頼化のために複数の計算機で管理サーバと同等の処理を実現してもよく、この場合は当該複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含め)が管理システムである。
本実施例に係る計算機システムについて説明する。
図1は、実施例1による計算機システムの概略を説明するための図である。ここで説明する動作は主に設定変更内容決定プログラム1180により実行される。
(1)設定変更内容決定プログラム1180は、まず、予測式テーブル1150及び構成情報テーブル1130を参照し、予測式のパラメータのうち計算機システムの構成を示す構成情報にあたるパラメータを抽出する。(2)続いて、設定変更内容決定プログラム1180は、予測式元情報テーブル1140を参照し、抽出したパラメータの構成上取り得る範囲内で、学習データの情報が不足している範囲を特定する。(3)続いて、設定変更内容決定プログラム1180は、抽出したパラメータを、特定した範囲に設定するようにパラメータの値を決定し、パラメータの設定変更を行う。(4)設定を変更した状態で計算機システムを運用することにより、不足していた学習データを取得することができる。
図2は、実施例1に係る計算機システムの一例の構成図である。本実施例に係る計算機システムは、1台以上の管理サーバ1000、1台以上のストレージ装置2000、及び1台以上のサーバ3000を備える。サーバ3000及びストレージ装置2000は、SAN(Storage Area Network)4000を介して互いに接続される。SANの具体例としてファイバチャネルがある。管理サーバ1000、ストレージ装置2000、およびサーバ3000は、管理用ネットワーク5000を介して互いに接続される。
管理サーバ1000は、メモリ1100、通信デバイス1200、プロセッサ1300、出力デバイス1400、入力デバイス1500、および記憶デバイス1600を備えている。これらは管理サーバ1000内の内部バス1700を介して互いに接続される。
メモリ1100には、関連情報テーブル1110、性能履歴情報テーブル1120、構成情報テーブル1130、予測式元情報テーブル1140、予測式テーブル1150、情報収集プログラム1160、予測式生成プログラム1170、設定変更内容決定プログラム1180、構成変更プログラム1190が格納される。
通信デバイス1200は、管理サーバ1000を管理用ネットワーク5000に接続するためのデバイスである。管理サーバ1000は、管理用ネットワーク5000を通して、サーバ3000上で動作するプログラムと通信できる。プロセッサ1300は、メモリ1100上に展開されている各種プログラムを実行する。出力デバイス1400は、管理サーバ1000が実行した処理結果を出力するデバイスであり、例えばディスプレイ等である。入力デバイス1500は、管理者が管理サーバ1000に指示を入力するためのデバイスであり、例えばキーボード等である。記憶デバイス1600は、情報を格納するHDD(Hard Disk Drive)、SSD(Solid State Drive)等である。
なお、図2に示す例では、各種プログラム及びテーブルは、メモリ1100に格納されているが、記憶デバイス1600または他の記憶媒体(図示しない)に格納されても良い。この場合、プロセッサ1300は、プログラム実行時にメモリ1100上に対象のプログラムを読みだし、読みだしたプログラムを実行する。
また、ストレージ装置2000のメモリ2100に、前述のプログラム及びテーブルが格納され、ストレージ装置2000または物理サーバ3000が、格納されたプログラムを実行しても良い。また、他のサーバ3000またはスイッチ(図示しない)等の他の装置が、前述のプログラム及びテーブルを格納し、実行しても良い。
ストレージ装置2000は、メモリ2100、論理ボリューム提供部2200、ディスクI/Fコントローラ2300、管理I/F 2400、プロセッサ2500、及びデータI/F 2600を備えている。これらはストレージ装置2000内の内部バス等の通信路2700を介して接続される。メモリ2100は、ディスクキャッシュ2110を有する。また、メモリ2100は、構成性能情報収集プログラム2120を格納する。ディスクキャッシュ2110は、情報を一時格納するための記憶領域である。構成性能情報収集プログラム2120は、ストレージ装置2000の管理情報及び性能情報等を管理サーバ1000との間で送受信するためのプログラムである。構成変更プログラム2130は、管理サーバ1000の構成変更プログラム1190から呼び出され、ストレージ装置2000の構成変更をおこなうためのプログラムである。
論理ボリューム提供部2200は、物理領域2230によって構成されるディスクプール2220を備え、ディスクプール2220の記憶領域を論理的に分割し、当該論理的に分割された記憶領域をボリューム2210として提供する。ここで物理領域2230は、物理ディスクや複数の物理ディスクから構成されるパリティグループなどである。当該ストレージ装置2000外の装置からはボリューム2210経由で物理領域にアクセスすることが可能である。
なお、物理領域2230には物理領域番号が付され、ディスクプール2220にはディスクプール番号が付され、ボリューム2210にはボリューム番号が付される。これによって、ストレージ装置2000は、物理領域2230、ディスクプール2220及びボリューム2210をそれぞれ一意に識別することができる。
図2に示す例では、1つの物理領域(パリティグループPG1)から構成されるディスクプール2220(POOL1)が論理的に分割され、1つのボリューム2210(Vol1)がストレージ装置2000外の装置、例えばサーバ3000に提供される。
ディスクI/Fコントローラ2300は、論理ボリューム提供部2200に接続するためのインタフェースデバイスである。管理I/F 2400は管理用ネットワーク5000に接続するためのインタフェースデバイスである。プロセッサ2500は、メモリ2100上に展開されたプログラムを実行する。
データI/F2600は、SAN4000に接続するためのインタフェースデバイスである。図2示す例では、構成性能情報収集プログラム2120は、及び構成変更プログラム2130はメモリ2100に格納されているが、他の記憶装置(図示しない)または、他の記憶媒体(図示しない)に格納されても良い。この場合、プロセッサ2500は、処理実行時にメモリ2100上に構成性能情報収集プログラム2120及び構成変更プログラム2130を読みだし、読みだしたプログラムを実行する。
また、論理ボリューム提供部2200は、1つのディスクプール2220の全記憶領域を1つのボリューム2210として作成しても良い。また、論理ボリューム提供部2200は、物理領域2230としてパリティグループ以外、例えば物理ディスクそのものや、フラッシュメモリ等の記憶媒体でも良い。
サーバ3000は、メモリ3100、データI/F 3200、プロセッサ3300、及び管理I/F 3400を備えた物理サーバである。これらはサーバ3000の内部バス等の通信路3500を介して互いに接続される。
メモリ3100は、構成情報収集プログラム3110、業務プログラム3120、構成変更プログラム3130を格納する。構成情報収集プログラム3110は、サーバ3000の管理情報、性能情報等を管理サーバ1000との間で送受信するためのプログラムである。業務プログラム3120は、3000が実行する業務を実現するためのプログラムであり、例えば、DBMS(Data Base Management System)やファイルシステム等である。構成変更プログラム3130は、管理サーバ1000の構成変更プログラム1190から予備だされ、サーバ3000の構成変更をおこなうためのプログラムである。
サーバ3000は、ストレージ装置2000から提供されたボリューム2210を用いて、各種業務を実行する。図2に示す例では、各種プログラムはメモリ3100上に格納されているが、他の記憶装置(図示しない)に格納されていても良い。この場合、プロセッサ3300は、処理実行時にメモリ3100上の対象のプログラムを読みだし、読みだしたプログラムを実行する。図2に示す例では、サーバAとストレージ装置Aとは、SAN4000を介して互いに接続される。ストレージ装置2000と物理サーバ3000との間の接続は、ファイバチャネルを介して直接接続されるものに限定されず、1台以上のファイバチャネルスイッチ等のネットワーク機器を介して接続されても良い。また、ストレージ装置2000と物理サーバ3000との間の接続は、データ通信用のネットワークであれば良く、IP(Internet Protocol)ネットワークでも良い。
図3は、実施例1に係る関連情報テーブルの一例を示す図である。関連情報テーブルには、その性能を目的情報とする管理対象オブジェクトと、それに論理的に関連づけられた管理対象オブジェクトとを示す関連情報が格納される。オブジェクトは計算機システムの構成要素である。なお、構成要素には、物理的に存在する構成要素と、論理的に定義された構成要素が含まれる。一例として、関連情報テーブル1110は、サーバ3000上で動作している業務プログラム3120から、サーバ3000が使用しているボリュームを構成する物理領域までのI/O(入出力)経路上に存在する物理/仮想の装置、デバイスを示す情報、すなわち、I/O経路に基づく装置及びデバイスの論理的な関係を示す情報を管理する。ここで、論理的な関係は、「ボリューム」と「ボリュームを構成するプール」、「ボリューム」と「ボリュームへのI/O処理を担当するプロセッサ」、「ボリューム」と「ボリュームへのI/Oを一時的に格納するキャッシュ」など、設定に基づいて格納される。
関連情報テーブル1110には、装置ID 1111、ボリュームID 1112、プロセッサID 1113、キャッシュID 1114、プールID 1115、物理領域ID 1116のフィールドがある。
装置ID 1111にはストレージ2000を一意に識別するための識別子が格納される。ボリュームID 1112には、ボリューム2210を一意に識別するための識別子が格納される。プロセッサID 1113には、ボリュームID 1112で示されるボリュームへの処理を担当するプロセッサ2500の識別子が格納される。キャッシュID 1114には、ボリュームID 1112で示されるボリュームへの処理がキャッシュされるディスクキャッシュ2110を一意に示す識別子が格納される。プールID 1115には、ボリューム2210が作成されているディスクプール2220を一意に識別するための識別子が格納される。物理領域ID 1116には、ディスクプールを構成する物理領域2230、例えばパリティグループやディスク等を一意に識別するための識別子が格納される。以上の各カラムのフィールドには計算機システムから収集された情報が格納される。情報の収集および格納の方法は特に限定されない。
ここで、本実施例に係る関連情報テーブル1110は、装置ID 1111とボリュームID 1112とボリュームに係る管理対象オブジェクトとして、プロセッサ2500、ディスクキャッシュ2110、ディスクプール2220、物理領域2230の情報を含んでいるが、本発明がこれに限定されることは無い。ITシステムにおける如何なる管理対象オブジェクトであっても同様に扱うことができる。
他の例として、業務アクセスの際に利用される管理対象オブジェクトである、サーバ3000のマウントポイントをサーバ内で一意に識別するためのドライブ、サーバ3000がボリュームID 1136によって示されるボリューム2210にアクセスする際に利用されるサーバ3000のデータI/F 3200を一意に識別するためのサーバデータI/F、などの物理、仮想含むその他の管理対象オブジェクトを識別するための識別子などが格納されても良い。
また、スイッチのデータI/F等の情報を含んでもよく、また、業務サーバであるサーバ3000上の業務プログラム(DBMS等)の情報等を関連付けて格納してもよい。また、業務プログラムの実行する処理単位の情報等を関連付けて格納しても良く、例えば、業務プログラムにおける処理Aと、当該処理の実行に利用されるサーバ、当該サーバのCPU、メモリなどを関連付けて格納しても良い。
図4は、実施例1に係る性能履歴情報テーブル1120の一例を示す図である。性能履歴情報テーブル1120計算機システムの運用により各管理対象オブジェクトから取得された性能の履歴が格納される。性能履歴情報テーブル1120は、管理対象オブジェクトの性能、例えばストレージ装置2000におけるボリューム2210、ディスクプール2220等に関する性能の情報を管理する。性能履歴情報テーブル1120にはエントリを追加するができる。
性能履歴情報テーブル1120は、時刻1121、装置ID 1122、デバイスID 1123、メトリック1124、性能値1125のフィールドを含む。
時刻1121には、情報を管理対象オブジェクトから収集した日時のデータが格納される。装置ID 1122には、装置を一意に特定する識別子(装置ID)が格納される。デバイスID 1123には、性能情報の取得対象となるデバイスを一意に特定するための識別子(デバイスID)が格納される。
メトリック1124には、CPU使用率、記憶装置に対する単位時間(例えば1秒)あたりのI/O回数(IOPS)、リクエストに対するレスポンスの時間等の、性能情報の種類を示す情報が格納される。性能値1125には、デバイスID 1123によって示されたデバイスの、メトリック1124によって示された種類の性能情報の値が、デバイスを含む装置から取得されて格納される。
ここで、図4に示す性能履歴情報テーブル1120では、装置ID 1122とデバイスID 1123によって示される、性能情報の取得対象のデバイスとして、ストレージのボリューム2210、プロセッサ2500、ディスクキャッシュ2110をあげたが、これらに限定されない。VM(図示しない)、ストレージのデータI/F 2600、サーバのデータI/F 3200や、スイッチやスイッチのポート(図示しない)等でもよい。
また、図4には、メトリックの一例として、リクエストに対する応答性能、CPU使用率、キャッシュ使用率、IOPS、リクエストに対するレスポンスの時間等を示したが、これらに限定されることはない。I/Oビジー率、転送レート、スループット、データベース管理ソフトのバッファヒット率、挿入、更新、あるいは削除されたレコード数、Webサーバのレスポンスの時間、ファイルシステムあるいはディスクの空き容量あるいは利用率、入出力データ量、ネットワークインタフェースのエラー回数、バッファのオーバーフロー、及びフレームのエラー等の他の性能指標がメトリックとして用いられてもよい。
図5A、図5B、図5Cは、実施例1に係る構成情報テーブル1130の一例を示す図である。図5A、図5Bには、後述する図10のステップ301における構成変更プログラム1190による操作実行前の状態が示されている。図5Cには、図10のステップ301における構成変更プログラム1190による操作実行後の状態が示されている。
構成情報テーブル1130には、管理対象オブジェクトの構成情報が格納される。例えば、管理対象オブジェクトであるストレージ装置2000についての構成情報であるディスクキャッシュ2110のキャッシュサイズが格納される。また、物理領域(パリティグループ)2230のディスク構成が格納される。構成情報テーブル1130には一般的な手段によりエントリが追加される。
構成情報テーブル1130には、装置ID 1131、デバイスID 1132、メトリック1133、値1134のフィールドが含まれている。装置ID 1131には装置を一意に特定するための識別子が格納される。デバイスID 1132には、構成情報の取得対象となるデバイスを一意に特定するための識別子が格納される。メトリック1133には、記憶容量や処理能力など構成情報の種類を示す情報が格納される。値1134には、デバイスID 1132によって示されたデバイスの、メトリック1133によって示された種類の構成情報についての値が格納される。この値はデバイスを含む装置から取得されたものである。
ここで、図5A〜図5Cに示す構成情報テーブル1130において装置ID 1131およびデバイスID 1132によって示されているデバイスが構成情報を取得する対象となる。ここでは、構成情報の取得対象のデバイスとして、ストレージ2000のディスクキャッシュ2110(Cache1)、物理領域2230(PG1、PG5)をあげたが、これらに限定されることはない。その他の管理対象オブジェクトの構成情報を保持しても良い。また、ここではメトリックの一例として、キャッシュのサイズ、パリティグループのRAIDレベル、およびディスク種別を挙げたが、これに限定されない。
図6は、実施例1に係る予測式元情報テーブル1140の一例を示す図である。予測式元情報テーブル1140は、予測式を生成するための元になる情報を管理するためのテーブルである。予測式元情報テーブル1140には、予測したい管理対象オブジェクトおよびそのパラメータと、その予測したい管理対象オブジェクトとI/Oパス上において関連を持つ他の管理対象オブジェクトおよびそのパラメータとが管理される。予測したい管理対象オブジェクトおよびそのパラメータが予測式の目的情報となり、関連する管理対象オブジェクトおよびそのパラメータが説明情報となる。
予測式元情報テーブル1140には、時刻情報1141、目的情報11411、および関連情報11412のフィールドが含まれる。時刻情報1141には、情報を管理対象オブジェクトから収集した日時のデータが格納される。目的情報11411には、予測したい管理対象オブジェクト識別情報と、当該管理対象オブジェクトのパラメータの値が格納される。関連情報11412には、予測したい管理対象オブジェクトとI/Oパス上において関連を持つ、他管理対象オブジェクトのパラメータの値の情報が格納される。本実施例では、目的情報11411として、装置ID 1142、ボリュームID 1143、およびボリューム応答性能1144が格納される。関連情報11412には、Processor Busy1145、Cache Usage1146、Cache Size1147、Pool Busy1148、PG数1149のフィールドが含まれている。
装置ID 1142には、装置を一意に特定する識別子(装置ID)が格納される。ボリュームID 1143には、管理対象オブジェクトを一意に特定するための識別子が格納される。ボリューム応答性能1144には、ボリュームでのI/O要求受信から処理完了までにかかる時間情報が格納される。ここでは、目的情報11411の一例としてボリュームの応答性能を挙げ、関連情報の一例として、Processor Busy1145、Cache Usage1146等を挙げたが、これに限定されない。
図6に示したテーブルに格納されている値および情報のうち、時刻情報1141が10:01の情報および10:02の情報は、後述する図10のステップ301における構成変更プログラム1190による操作実行前の状態を示し、時刻情報1141が15:10の情報および15:11の情報は、図10のステップ301における構成変更プログラム1190による操作実行後の状態を示す。
図7は、実施例1に係る予測式テーブル1150の一例を示す図である。予測式テーブル1150は、予測式を表す情報を管理するためのテーブルである。予測式テーブル1150には、予測式で用いられるメトリック、及び各メトリックにかかる係数などが格納される。予測式h、具体的には、目的情報=説明情報1+説明情報2+説明情報3+説明情報4・・・と表すことができる。より具体的には、ストレージAのボリューム1の応答性能=係数1×Processor Busy+係数2×Cache Size+係数3×Pool Busy+係数4×PG数という学習により得られる関数の情報である。
予測式テーブル1150は、目的情報11511と説明情報11512のフィールドを含む。目的情報11511には、予測したい管理対象オブジェクトの識別情報と、当該管理対象オブジェクトのパラメータの値が格納される。説明情報11512には、予測したい管理対象オブジェクトのパラメータの値を説明可能なその他管理対象オブジェクトのパラメータおよびその値の情報が格納される。本実施例には、目的情報11511として、装置ID1151、デバイスID1152、メトリック1153が管理され、説明情報11512として、Processor Busy1154、Cache Size1155、Pool Busy1156、PG数1157、及び各メトリックに対する係数を表すフィールドを含む。ここでは、目的情報11411の一例としてボリュームの応答性能を、関連情報の一例として、Processor Busy1154、Cache Size1155等を挙げたが、これに限定されない。
また、ここでは予測式は線形関係を表す式であるものとし、予測式テーブル1150は、データに最も良くあてはまる線形関係を特定するための回帰分析の式を表すものとしたが、これに限定されない。他の例として、予測式は多項式であるものとし、予測式テーブル1150は多項式を表す情報を管理することにしても良い。
次に、管理サーバ1000が実行する各処理について説明する。
図8は、実施例1に係わる予測式を生成する処理のフローチャートである。予測式の生成とは、各オブジェクトにおける各種情報を学習データとして収集し、学習することで、目的とする要素とそれ以外の要素との関連について、学習データに最も良くあてはまる関数を特定することである。本予測式生成処理は、管理サーバ1000のプロセッサ1300が、メモリ1100上に展開された予測式生成プログラム1170を実行することによっておこなわれる。以下、本フローチャートの具体例を示す。
まず、予測式生成プログラム1170は、図3に例示した関連情報テーブル1110を参照し、予測式生成対象とする構成要素と、それに関連する構成要素とを特定する(ステップ101)。ここで、予測式生成対象の構成要素は、ユーザにより選択される、あるいは予測式生成プログラムにより自動的に選定される(例えば全てのボリューム応答性能について実行するなど)など、どのような方法によって選択され、指定されても良い。また、予測式生成プログラム1170が起動するタイミングは、定期的な実行、ユーザが指定した任意のタイミングで実行など任意である。
ここでは具体例として、ユーザによりボリュームID“Vol1”で表されるボリュームが予測式を生成する対象として選択されたとする。この場合、予測式生成プログラム1170は、図3の関連情報テーブル1110に格納されている情報から、Vol1(Volume1)に関連する構成要素として、Processor1、Cache1、Pool1、およびPG1が特定される。
図8に戻り、次に、予測式生成プログラム1170は、図4に例示した性能履歴情報テーブル1120を参照し、予測式を生成する対象の構成要素、及び、それに関連するものとして、ステップ101で特定した構成要素の性能履歴情報を取得する(ステップ102)。例えば、時刻10:01に取得されたVolume1の応答時間が10.2msec、Processor1の使用率(Busy%)が40%、Cache1の使用率(Usage%)が80%、Pool1の単位時間当たりのI/O回数が700IOPSで使用率(Busy%)が35%であったという性能の情報が取得される。
次に、予測式生成プログラム1170は、図5A、図5Bに例示した構成情報テーブル1130を参照し、予測式生成対象の構成要素、およびステップ101で特定した構成要素の構成情報を取得する(ステップ103)。例えば、図5Aからは、ストレージAのCache1のサイズが8GBであるという構成情報が取得される。また、図5Bから、例えば、ストレージAの物理領域PG1のRAIDレベルがRAID5(3D+1P)である等の構成情報が取得される。
次に、予測式生成プログラム1170は、ステップ102およびステップ103で取得した予測式生成に関連する情報を、図6に例示した予測式元情報テーブル1140に格納する(ステップ104)。図6を参照すると、Volume1の予測式元情報テーブル1140に、例えば、時刻10:01に取得された性能情報が格納されている。
最後に、予測式生成プログラム1170は、ステップ104で生成した予測式元情報テーブル1140の情報から予測式を生成し、図7に例示した予測式テーブル1150に格納する(ステップ105)。例えば、図7の予測式テーブル1150には、(ストレージAのVolume1の応答性能)=33.76(係数1)×プロセッサ使用率+7.27(係数2)×キャッシュサイズ+5.1(係数3)×Poolの使用率+0.80(係数4)×物理領域PG数という予測式が格納されている。
ステップ105にて予測式を生成する手法は特に限定されず、回帰分析などの一般的な手法を含め、どのような手法であってもよい。回帰分析の場合、例えば、予測式元情報テーブル1140に示された関連情報11412の全てを説明変数として設定した上で、目的情報との関連性の低い変数を説明変数から外していくなどの方法で予測式を生成すればよい。本実施例では、図6に示した予測式元情報テーブル1140に格納された関連情報のうちCache Usage1146は説明変数から外され、図7に示した予測式テーブル1150に格納された情報には含まれていない。
図9は、実施例1に係わる学習データを取得するための設定変更内容を決定する処理のフローチャートである。本設定変更内容決定処理200は、例えば、図8に示した予測式を生成する処理の後に実施される。本処理は、管理サーバ1000のプロセッサ1300が、メモリ1100上に展開された設定変更内容決定プログラム1180を実行することによっておこなわれる。
以下、本フローチャートの具体例を示す。
はじめに、設定変更内容決定プログラム1180は、図7に例示した予測式テーブル1150における説明情報11512のメトリックを抽出し、メトリックごとに以下の処理を実施する。
まず、設定変更内容決定プログラム1180は、メトリックが構成情報テーブル1130に含まれているかどうかをチェックする(ステップ201)。メトリックが構成情報テーブル1130に含まれていない場合、設定変更内容決定プログラム1180は、予測式テーブル1150における次のメトリックに対する処理に進む。メトリックが構成情報テーブル1130に含まれている場合、設定変更内容決定プログラム1180は、メトリックの取り得る範囲の情報を取得する(ステップ202)。メトリックがストレージのキャッシュサイズの場合、例えば、ハードウェアスペック上、キャッシュサイズとして取り得る値の範囲の情報を取得する。例えば、キャッシュサイズが1GB〜72GBの範囲であるといった情報が取得される。また、メトリックがストレージのパリティグループの場合、RAIDレベルの範囲の情報を取得する。例えば、取り得るRAIDレベルが、RAID0(2D)、RAID1(1D+1P)、RAID5(3D+1P)であるといった情報が取得される。これらメトリックの取り得る範囲を取得する方法は特に限定されない。例えば、各メトリックの取り得る範囲の情報をあらかじめテーブル(図示しない)に格納しておき、設定変更内容決定プログラム1180が適宜そのテーブルから必要な情報を取得することにしてもよい。あるいは、設定変更内容決定プログラム1180がストレージなどのハードウェアに要求を出して取得することにしてもよい。
次に、設定変更内容決定プログラム1180は、ステップ202で取得した範囲の中で、データの不足している定義域を探索する(ステップ203)。次に、データの不足している定義域が存在するかどうかを判定し(ステップ204)、存在しない場合、予測式テーブル1150における次のメトリックに対する処理に進む。ステップ204において不足している定義域が存在する場合、設定変更内容決定プログラム1180は、不足している定義域のデータの取得が可能となる設定変更操作のためのパラメータを生成する(ステップ205)。
例えば、メトリックであるキャッシュサイズに着目すると、図6に示した予測式元情報テーブル1140のCache Size1147として8GB設定時以外のデータが存在しないとする。その場合、設定変更内容決定プログラム1180は、8GB以外に設定したときのデータを取得しようと試みる。例えば、設定変更内容決定プログラム1180は、キャッシュサイズを16GBに設定変更するパラメータを生成する。
ここで、設定変更内容決定プログラム1180は、ステップ205で生成したパラメータの設定を変更した場合に、SLA(Service Level Agreement)を満たすかどうかチェックし、変更後のパラメータがSLAを満たさなくなる場合にはそのパラメータの設定範囲から除外するなどしても良い。例えば、キャッシュサイズの8GBを4GBに変更した場合に、ボリュームの性能や、そのボリュームを利用するサーバ3000上で動作している業務アプリケーションの性能として、あらかじめ定められた要件(応答時間1秒以内など)を満たさなくなる場合には、パラメータの設定を4GBへ変更することを実施しないことにしてもよい。
次に、設定変更内容決定プログラム1180は、学習データ取得用設定変更処理を実行する(ステップ206)。ステップ206については図10を参照して詳細に説明する。
図10は、学習データ取得用設定変更を実行する処理のフローチャートである。本学習データ取得要設定変更処理300(図9の学習データ取得要設定変更処理206)は、管理サーバ1000のプロセッサ1300が、メモリ1100上に展開された設定変更内容決定プログラム1180を実行することによっておこなわれる。以下、本フローチャートの具体例を示す。
まず、設定変更内容決定プログラム1180は、構成変更プログラム1190に設定変更の操作実行を要求し、実行結果を取得する(ステップ301)。次に、設定変更内容決定プログラム1180は、予測式元情報テーブル1140に新規時刻のエントリが追加されたかどうかを確認する(ステップ302)。
新規時刻のエントリが追加されている場合、設定変更内容決定プログラム1180は、予測式元情報テーブル1140における対象定義域の取得データ数を取得し(ステップ303)、データを十分に取得できたかどうかをチェックする(ステップ304)。
ここで、学習データが十分に取得できたかどうかの判定に、あらかじめデータ数の閾値を設定しておく、予測式テーブルに示す説明情報の個数を閾値として設定しておくなど、どのような方法にておいても良い。学習データを十分に取得できている場合には、設定変更内容決定プログラム1180は、次のステップ305へ進む。学習データを十分に取得できていない場合には、設定変更内容決定プログラム1180は、ステップ302から再び処理を実行する。
ステップ305では、設定変更内容決定プログラム1180は、ステップ301実行前に戻す設定変更操作の実行を構成変更プログラム1190に要求し、実行結果を取得する。ステップ301、ステップ305において要求した設定変更操作が成功しなかった場合は、本処理を中断する。
図10を実行して十分な学習データを取得した後に、図8に示した予測式生成処理100を実行することで、新しい構成において、学習データの不足が無い状態の予測式元情報テーブル1140から、高い精度の予測式を示す予測式テーブル1150を生成することができる。
本実施例では、図9に示した設定変更内容決定処理200のステップ201〜ステップ204において、構成上取り得る範囲からデータが不足している定義域を全て抽出し、その後、図10に示した学習データ取得用設定変更処理により、データが不足している定義域のデータを取得し、更にその後、図8に示した予測式生成処理100で予測式を生成している。しかし、これに限定されることはない。他の例として、データが不足している定義域を1つ抽出するごとにその定義域のデータを取得しデータが取得できたらその段階で予測式を生成するという処理を、データが不足している定義域の個数だけ繰り返すことにしてもよい。
具体例を示す。ここではキャッシュサイズの取り得る範囲が1GBから72GBであるとする。例えば、キャッシュサイズの取り得る範囲のうちデータが不足している定義域を例えば1GB単位で抽出し、抽出した全ての定義域のデータを取得しきってから予測式を生成してもよい。あるいは他の例として、1GB単位で抽出したデータが不足している各定義域について、データを取得して予測式を生成し次の定義域に進むという処理を繰り返すことにしてもよい。
また、本実施例では、図9に示した設定変更内容決定処理200において、予測式テーブル1150に含まれる項目のうち、構成情報テーブル1130に含まれている全ての項目に対して、データが不足している定義域を抽出した後、学習データ取得用設定変更処理206を実行している。そのため、予測式テーブル1150および構成情報テーブル1130に含まれる全ての項目についてデータを収集した後に予測式を生成することとなる。しかし、これに限定されることは無い。他の例として、予測式テーブル1150および構成情報テーブル1130に含まれる1つの項目に対して学習データ取得用設定変更処理および予測式生成処理を実行して次の項目に進むという処理を繰り返すことにしてもよい。
以上、本実施例によれば、計算機システムが構成上取り得る範囲において不足している学習データを予め能動的に収集しておくことにより、構成変更が行われたとき早期に精度の高い予測式を得ることができ、学習時間を短縮し、構成変更後すぐに機械学習技術に基づく効率の良い管理を実施可能とする。
例えば、関数を予兆監視に利用する場合、構成変更直後や新規構築された構成であっても、ITシステムから取得した実測値が、関数で示される関係とかけ離れている場合、ITシステムに問題が発生したと判断することが可能となる。
また、関数を障害原因切り分けに利用する場合、構成変更直後や新規構築された構成であっても、ITシステムから取得した実測値が、関数で示される関係とかけ離れている場合、各説明情報の中で最も変動幅が大きい説明情報に問題が発生した可能性が高いとして、根本原因と判断することが可能となる。また、これにより、障害発生時に即座に根本原因特定を自動でおこなうことが可能となる。
また、関数をWhat−if分析に利用する場合、構成変更直後や新規構築された構成であっても、試行したい値を関数に代入することによって、代入した値の状況での、関数に現れる他のメトリックの値をシミュレートすることが可能となる。
このように、本発明により、構成変更直後や新規構築された構成であっても、障害発生、あるいは管理要件を満たせなくなるなどの未然防止や、障害発生時の迅速な障害回復といった効果を得ることが可能となる。本発明は、前述の各種クラウド形態にも適用可能であり、管理ソフトのSaaSや運用管理業務をサービスとして請け負う形態においても適用可能である。
実施例2に係る計算機システムは基本的には実施例1のものと同様の構成を有し、同様の動作を行う。ただし、実施例2は、目的情報に関連する関連情報だけでなく、目的情報が対象とする業務と類似する特性を有する業務の計算機システムにおいて取得された情報を予測式の生成に利用する点で実施例1と異なる。
図11は、実施例2に係る業務特性管理テーブル1800の一例を示す図である。業務特性管理テーブル1800は、業務単位の業務特性情報を管理する。
業務特性管理テーブル1800には、業務単位18011と業務特性18012のデータが格納される。本実施例では、業務単位をボリュームに対応づけ、業務特性として、各業務についてI/O回数および各I/Oパタンの割合などI/Oに関する情報を管理している例を示している。図11を参照すると、業務特性管理テーブル1800には業務単位18011と業務特性18012のフィールドが対応づけられている。業務単位18011にはボリュームID1801が含まれている。業務特性18012には、I/O数1802、I/O増減率1803、高頻度のアクセス1804、I/Oパタン1805のフィールドが含まれている。
ボリュームID1801には、ボリューム2210を一意に識別するための識別子が格納される。I/O数1802には、I/O数が記録される。例えば、前月のIOPSの平均値や中間値などを記録する。I/O増減率1803には、過去一定期間にIOPSがどれだけ変化したかの割合を記録する。例えば、半年間あるいは1年間において、IOPSの1か月の平均を算出し、各月の平均値の前月の平均値に対する増減率を算出する。I/Oパタン1805には、Random Read、Random Write、Sequential Read、Sequential Writeの各I/Oパタンの発生割合が記録される。その中で最も割合が高かったI/Oパタンが高頻度のアクセス1804に記録される。なお、ここでは業務単位がボリュームに対応する例を挙げたが、これに限定されない。他の例として、業務単位をVMにしてもよく、サーバ3000上の業務プログラムにしてもよく、あるいは業務プログラムの実行する処理単位の情報などにしても良い。
図12は、実施例2に係る学習用データ共有を実行する処理のフローチャートである。本学習要データ共有処理400は、実施例1における図8の予測式生成処理100のステップ105に相当する実施例2における処理である。本処理は、管理サーバ1000のプロセッサ1300が、メモリ1100上に展開された予測式生成プログラム1170を実行することによっておこなわれる。以下、本フローチャートの具体例を示す。
予測式生成プログラム1170は、まず、業務特性管理テーブル1800の情報を取得する(ステップ401)。次に、予測式生成プログラム1170は、予測式を生成する対象の業務と類似する類似業務で利用されている予測式生成対象の構成要素が存在するか否かをチェックする(ステップ402)。ここで、類似業務で利用しているかどうかの判定には、ステップ401で取得した業務特性管理テーブル1800の情報が利用される。類似する業務を予めグループ化しておき、同じグループに属する業務で利用されている構成要素の有無をチェックすればよい。
グループ化の例として、高頻度アクセス情報が同一な業務を業務類似グループとしてもよい。あるいは、I/O増減率に関して、5%以上の減少率、プラスマイナス5%以内の増減率、5%以上の増加率等をそれぞれ業務類似グループとすることにしてもよい。あるいは、k平均法を用いて、業務をいくつのグループに分類しておいてもよい。あるいは、予めグループ数を入力しておきソノグループ数に適切にグループ分けすることにしてもよい。あるいは、上記グループ分けの方法を組み合わせて業務をグループ化してもよい。このようにグループ分けはどのような方法によっても良く、特に限定されない。
図11に例示した業務特性管理テーブル1800の場合、Volume1とVolume3は高頻度アクセス1804が「RW」で同一であり、I/O増減率1803が「5%以上」で同一であり、かつI/O数1802が「10000以上」で同一である。Volume1とVolume3が同じ業務類似グループと判断されるように業務をグループ化をしておいてもよい。
ステップ402において、類似業務で利用している構成要素が存在する場合、予測式生成プログラム1170は、類似業務で利用している各構成要素の予測式元情報テーブル1140の情報を利用して予測式を生成し、予測式テーブル1150に格納する(ステップ403)。ステップ402において、類似業務で利用している構成要素が存在しない場合、予測式生成プログラム1170は、構成要素単位で予測式元情報テーブルの情報から、予測式を生成し、予測式テーブルに格納する(ステップ404)。
以上のように、業務の類似しているグループ間で学習データを共有することで、学習時間を短縮し、迅速に機械学習技術に基づく精度の高い効率の管理を実施可能とする。例えば、新しく環境を作成する場合に、通常であれば長期間、例えば数カ月にわたる性能情報および容量情報などの各種履歴情報を取得する必要がある。しかし、新たに作成する業務の環境に類似する環境の業務があれば、その類似業務グループのデータを活用し、短期間、例えば3日間で類似業務グループの判定をおこなうだけで、機械学習技術に基づく効率の良い管理を実施可能となる。また、図9に示した設定変更内容決定処理200のステップ203においても、類似業務グループそれぞれで取ったことのある構成に基づき、不足している定義域を探索できるため、不足しているデータの収集にかかる時間を短縮することが可能となり、機械学習技術に基づく効率の良い管理を実施可能となる。
以上説明した各実施例による計算機システムは以下のような態様に整理することもできる。
(態様1)
対象システムが運用される間に前記対象システムの構成要素から学習データを取得する情報収集部と、前記学習データに基づいて前記対象システムの構成要素間の関係を目的情報と説明情報の関係により表現した予測式を生成する予測式生成部と、前記対象システムの構成を変更する設定内容を決定する設定変更内容決定部と、前記対象システムの構成を変更する構成変更部と、を有し、前記設定変更内容決定部が、前記対象システムの構成を変更する場合に取り得る前記構成要素の状態の範囲において、前記学習データが十分に取得されていない状態をデータ不足状態として抽出し、前記構成要素が前記データ不足状態となるように前記対象システムの構成を変更する設定内容を決定し、前記構成変更部が、前記決定された設定内容に従って前記対象システムの構成を変更し、前記情報収集部が、前記対象システムの前記構成要素から前記データ不足状態のときの学習データを取得する、学習データ処理装置。
将来の対象システムの構成変更時に不足となる学習データを、予め対象システムの構成を一時的に変更して取得しておくことができるので、実際に構成が変更されたときに生じる学習データの不足が低減され、機械学習の精度が早期に向上する。これを構成の変更が比較的頻繁に行われる対象システムにおける機械学習を適用した場合、構成が変更されたときに生じる機械学習の精度低下を抑制することができる。
(態様2)
前記設定変更内容決定部は、前記対象システムが取り得る前記構成要素の状態の範囲のうち、学習データが所定データ量以上に取得されていない構成を抽出し、該構成に相当する設定変更を決定する、態様1に記載の学習データ処理装置。
対象システムが取りうる構成のうち学習データが十分でない構成を一時的に設定し、学習データを収集しておくことが可能となり、対象システムの取り得る構成の学習データを網羅することができる。
(態様3)
前記設定変更内容決定部は、前記構成要素が前記データ不足状態となるように前記対象システムの構成を一時的に変更し、前記構成変更部が、前記決定された設定内容に従って前記対象システムの構成を変更し、前記情報収集部が、前記対象システムの前記構成要素から前記データ不足状態のときの学習データを取得して蓄積し、前記対象システムの構成が変更されたとき、前記予測式生成部は、前記構成要素が前記データ不足状態となる構成においては前記情報収集部により蓄積された学習データを用いて前記予測式を生成する、態様1に記載の学習データ処理装置。
対象システムの構成が変更されたとき、変更後の構成での学習データを予め取得しておきその変更後の構成での学習データで予測式を生成するので、構成が変更されたとき短期間で精度の高い予測式を得ることができる。
(請求項4)
前記予測式は、該予測式の対象となる構成要素である対象構成要素の性能を目的情報とし、前記対象構成要素と論理的に関連づけられた1つ以上の関連構成要素の性能を説明情報とし、前記目的情報を前記説明情報の関数で示すものであり、前記情報収集部は、前記対象システムの構成要素が発揮した性能を性能履歴情報として蓄積し、前記予測式生成部は、前記性能履歴情報を前記学習データとして前記関数を算出する、態様1に記載の学習データ処理装置。
測定して蓄積した性能履歴情報に基づいて予測式を生成するので、十分な性能履歴情報を蓄積しておくことにより、良好な予測式を生成することが可能になる。
(態様5)
前記目的情報がストレージにおけるボリュームの応答時間であり、前記説明情報には、前記ボリュームへのアクセスに用いられるプロセッサの使用率およびキャッシュのサイズが含まれる、態様4に記載の学習データ処理装置。
(態様6)
前記予測式は、前記目的情報を、前記説明情報と係数の積の和で示すものであり、前記予測式生成部は、前記性能履歴情報を前記学習データとして、前記関連構成要素毎の係数を算出する、態様4に記載の学習データ処理装置。
予測式を説明情報と係数の積和で表わし、その係数を算出するので、目的情報と説明情報の関係を示す関数を容易に算出することができる。
(態様7)
前記予測式生成部は、前記対象システムに対して所定の類似条件を満たす類似システムにて取得された学習データを用いて前記予測式を生成する、態様1に記載の学習データ処理装置。
対象システムに類似システムがある場合には類似システムの学習データを利用して予測式を生成するので、利用できる学習データを増やして構成変更後に早期の段階から精度の高い機械学習が可能となる。
(態様8)
前記目的情報が前記ストレージのボリュームの性能であり、前記類似条件は、前記ボリュームに対するランダムリード、ランダムライト、シーケンシャルリード、およびシーケンシャルライトを含むI/Oパタンの類似度合いで定められる、態様7に記載の学習データ処理装置。
I/Oパタンの類似度で類似判断を行うので、I/Oパタンが類似する業務で収集された学習データを他の業務の構成変更あるいは新規構築にて利用することが可能である。
(態様9)
前記設定変更内容決定部は、前記キャッシュサイズの取りうる範囲のうち、十分な学習データが得られていないサイズに変更することを決定する、態様5に記載の学習データ処理装置。
説明情報にキャッシュサイズがある場合、キャッシュサイズの取りうる範囲の学習データを予め網羅しておくことができるので、対象システムのキャッシュサイズを変更しても学習データ不足で予測式の精度を高く維持することができる。