(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
一般に、クラウドサービスに要求される可用性、及び性能は、SLA(Service Level Agreement)で定められている。SLAは、サービスを提供する事業者がサービスの提供品質をお客様に約束するものである。SLAにより、可用性や、平均応答時間等の性能等が保証される。なお、性能の保証についても可用性の場合と同様に、クラウドサービスの種類によって、その保証品質はさまざまである。
【0017】
SLAは、その保証の程度によって二つに大別することができる。ギャランティ型とベストエフォート型である。ギャランティ型は、要求された品質を約束する。ベストエフォート型は、品質の向上に最大の努力をすることを約束する。一般に、性能にギャランティ型の保証を必要とするサービスは、可用性においてもギャランティ型の保証を必要とする場合が多いと考えられる。
【0018】
ギャランティ型のサービスを提供するためは、最悪ケースを想定して余裕を持ってコンピュータ資源を割り当てておく必要があるため、コンピュータ資源の総合的な利用率が下がる傾向がある。一方、ベストエフォート型のサービスは、物理的なコンピュータ資源の総量を超えてコンピュータ資源を割り当てるオーバーコミットを行うことにより、コンピュータ資源の総合的な利用率を上げることが可能である。
【0019】
以下、実施形態のクラウドシステム管理装置、クラウドシステム、及びプログラムについて説明する。
図1は、実施形態のクラウドシステム100の構成の一例を示す図である。本実施形態のクラウドシステム100は、クラウドシステム管理装置10、サーバ装置31a〜31n、及びサーバ装置32a〜32nを備える。サーバ装置31a〜31nは、クラウドシステム100の運用開始時点では、第1クラスタ33に使用されているものとする。また、サーバ装置32a〜32nは、クラウドシステム100の運用開始時点では、第2クラスタ34に使用されているものとする。第1クラスタ33、及び第2クラスタ34の詳細については後述する。
【0020】
なお、サーバ装置31a〜31nを区別しない場合は、サーバ装置31という。また、サーバ装置32a〜32nを区別しない場合は、サーバ装置32という。サーバ装置31、及びサーバ装置32は、任意の台数でよい。また、クラウドシステム100は、クラウドサービス事業者が営利目的でクラウドサービスを提供するものであっても、プライベートクラウドシステムでもよい。
【0021】
クラウドシステム管理装置10、サーバ装置31a〜31n、及びサーバ装置32a〜32nは、LAN(Local Area Network)20を介して互いに接続されている。また、クラウドシステム管理装置10、サーバ装置31a〜31n、及びサーバ装置32a〜32nは、LAN20、及びネットワーク40を介して、クライアント装置51a〜51nに接続されている。なお、クライアント装置51a〜51nを区別しない場合は、クライアント装置51という。
【0022】
クライアント装置51は、ユーザがクラウドシステム100のサービスを受けるために使用する装置である。クライアント装置51は任意の装置でよい。例えば、クライアント装置51は、PC(Personal Computer)や、携帯端末等である。
【0023】
また、ネットワーク40は、例えば、インターネットである。また、クラウドシステム管理装置10、サーバ装置31a〜31n、及びサーバ装置32a〜32nの一部が、他の拠点にある等の場合は、LAN20は、インターネットやVPN(Virtual Private Network)等でもよい。
【0024】
クラウドシステム管理装置10は、検出部1、記憶部2、見積部3、決定部4、及び再配置部5を備える。検出部1は、サーバ装置31a〜31n、及びサーバ装置32a〜32nの故障を検出する。
【0025】
記憶部2は、状況データ6、及び見積データ7を記憶する。
図2は、実施形態のクラウドシステム管理装置10の品質達成状況データの一例を示す図である。状況データ6は、サービスプロセス名、品質情報、累積動作不能時間、及び違約情報を含む。サービスプロセス名は、サーバ装置31(32)で動作するサービスプロセスの名称である。品質情報は、サービスプロセスが保証する品質である。品質情報は、例えば、SLAにより定められる。当該品質は、サービスプロセスに適用される可用性や、性能等である。当該性能は、サービスプロセスの平均応答時間等である。累積動作不能時間は、サービスプロセスが動作不能になった時間の総和である。違約情報は、品質情報が達成できない程度を表す情報である。
図2の例では、違約情報は違約金である。違約金は、例えば、品質情報で許される動作不能時間を越えた時間(以下「違約時間」という。)に、時間単価を乗じた分の料金で生成する。
【0026】
図2の具体例について説明する。サービスプロセスAの品質情報は、サービスプロセスAの累積動作不能時間が、1年間で52分以内であることを示す。すなわち、見積部3は、累積動作不能時間が52分を超えると違約情報を生成する。なお、サービスプロセスAの累積動作不能時間は0分である。そのため、見積部3は、まだ違約情報を生成しない。
【0027】
サービスプロセスBの品質情報は、サービスプロセスBの累積動作不能時間が、1年間で30分以内であることを示す。すなわち、見積部3は、累積動作不能時間が30分を超えると違約情報を生成する。なお、サービスプロセスBの累積動作不能時間は29分である。そのため、見積部3は、まだ違約情報を生成しない。しかしながら、違約金が発生するまで、サービスプロセスBを動作不能にできる時間は、あと1分である。
【0028】
サービスプロセスNの品質情報は、サービスプロセスNの累積動作不能時間が、1年間で40分以内であることを示す。すなわち、見積部3は、累積動作不能時間が40分を超えると違約情報を生成する。なお、サービスプロセスNの累積動作不能時間は42分である。そのため、見積部3は、違約時間(2分)に、違約時間の時間単価を乗じてXXX円の違約情報(違約金)を生成している。
【0029】
このように、クラウドシステム管理装置10は、品質情報(例えばSLA)の達成状況を、状況データ6として定量化する。品質情報の達成状況の定量化は、サービスプロセス毎にする。サービスプロセス毎の達成状況は、サービスプロセス毎に随時、記憶部2に記録される。
【0030】
なお、違約情報の生成方法は、上述の方法に限られない。また、
図2の品質情報は、サービスプロセスの可用性に関して定められているが、当該品質情報は、サービスプロセスの可用性に関するものに限られない。当該品質情報は、サーバ装置のリソースを使用できる割合等に応じて算出される処理時間(平均応答時間)等のサービスプロセスの性能に関する情報であってもよい。
【0031】
図3は、実施形態のクラウドシステム管理装置10の見積データ7の一例を示す図である。見積データ7は、サービスプロセス名、及び予想違約情報を含む。サービスプロセス名は、サービスプロセスの名称である。予想違約情報は、サービスプロセスの累積動作不能時間に、サービスプロセスを再配置した場合の動作不能時間を加算して見積もられている。予想違約情報は、サービスプロセスを停止させてよいか否かの1つの指標として利用することができる。なお、予想違約情報の算出方法は、サービスプロセスの品質情報にあわせて任意に定めてよい。
【0032】
図1に戻り、見積部3は、サービスプロセスが保証する品質を表す品質情報に基づいて、サービスプロセスが、当該品質を達成できない程度を表す違約情報を見積もる。決定部4は、サーバ装置31の故障等の理由によりサービスプロセスの再配置が必要になった場合に、再配置先となるサーバ装置を、再配置先のサーバ装置で動作する少なくとも1つのサービスプロセスの違約情報の総和が最小になるようにして決定する。
【0033】
再配置部5は、開始部8、及び停止部9を備える。再配置部5は、停止部9によりサービスプロセスを停止し、開始部8によりサービスプロセスを開始することにより、サービスプロセスを再配置する。一例として、サービスプロセスAを、サーバ装置31aからサーバ装置32aに再配置する場合について説明する。まず、停止部9は、サーバ装置31aのサービスプロセスAを停止する。次に、開始部8は、サーバ装置32aでサービスプロセスAを開始する。これにより、再配置部5は、サービスプロセスAを、サーバ装置31aからサーバ装置32aに移す(再配置する)。このとき、停止から開始までの間に経過した時間が、累積動作不能時間に加算されて記憶部2に記録される。なお、サーバ装置31aの故障に伴う再配置の場合は、停止部9はサービスプロセスAの停止を実際には行わないが、停止に要した時間のかわりに、サーバ装置31aの故障検出に要した時間(たとえば、ハートビートのタイムアウト時間)を、累積動作不能時間に加算する。
【0034】
図4は、実施形態のクラウドシステム100の第1クラスタ33の一例を説明するための図である。第1クラスタ33では、性能、又は可用性等が、品質情報で保証されるサービスプロセス(以下「第1サービスプロセス」という。)が動作する。
【0035】
第1クラスタ33は、クラウドシステム100を構成する複数のサーバ装置31を論理的にひとまとめにした単位である。サーバ装置31で動作する少なくとも1つのサービスプロセスは、クラウドシステム管理装置10により固定的に配置される。すなわち、サーバ装置31で動作する少なくとも1つのサービスプロセスは、所定の性能用件等の品質情報を必ず保証するようにして決定されたシステム設計に基づいたハードウェア、及びソフトウェア構成で動作する。
【0036】
第1クラスタ33に含まれるサーバ装置31が故障によって停止した場合、最初にホットスワップを行う。本実施形態のホットスワップは、第2クラスタ34のサーバ装置32の資源を開放して当該サーバ装置32を未使用の状態にし、当該未使用のサーバ装置32を第1クラスタ33の故障サーバ装置31と入れ替える。
【0037】
ホットスワップ対象のサーバ装置32は、決定部4により決定される。決定部4は、第2クラスタ32内でホットスワップの対象となるサーバ装置32を、以下の2つの条件を満たすようにして決定する。第1の条件は、サーバ装置32を故障したサーバ装置31と入れ替えても、十分な性能を発揮できるようなコンピュータ資源を備えていることである。第2の条件は、サーバ装置32を停止させた結果、サーバ装置32で動作していたサービスプロセスで発生する違約情報が、最も小さいことである。
【0038】
このホットスワップによって、あたかも故障したサーバ装置31が復旧し、代わりに第2クラスタ34内のサーバ装置32が故障したかのようにみなすことができる。つまり、ホットスワップ後、第1クラスタ33では、元の配置と全く同じ配置でサービスプロセスが再開する。また、第2クラスタ34では、サーバ装置32が故障によって停止した場合と同様にして、サーバ装置32で動作していたサービスプロセスの再配置を行う。
【0039】
図4の例では、サーバ装置31aでは、サービスプロセスA、及びサービスプロセスBが動作している。サービスプロセスA、及びサービスプロセスBを、同じホストで動作させることにより、サービスプロセスA、及びサービスプロセスBとの間の通信速度を向上させている。これにより、クラウドシステム100は、サービスプロセスA、及びサービスプロセスBの性能を保証している。また、サービスプロセスCは、サーバ装置31bで単独で動作している。そのため、サービスプロセスCは、サーバ装置31bのCPU(Central Processing Unit)、メモリ、及び通信I/F等のリソースを占有することができる。これにより、クラウドシステム100は、サービスプロセスCの性能を保証している。
【0040】
図5は、実施形態のクラウドシステム100の第2クラスタ34の一例を説明するための図である。第2クラスタ34では、性能、又は可用性等が、品質情報で保証されないサービスプロセス(以下「第2サービスプロセス」という。)が動作する。第2サービスプロセスは、性能、又は可用性等が、可能な限り最大に発揮できるような環境で動作する。そのため、第2クラスタ34のサーバ装置32では、積極的にオーバーコミットを行い、コンピュータ資源の利用率を高めてもよい。すなわち、サーバ装置32では、物理リソースよりも多い論理リソースを割り当ててもよい。
【0041】
第2クラスタ34は、クラウドシステム100を構成する複数のサーバ装置32を、論理的にひとまとめにした単位である。サーバ装置32で動作する少なくとも1つのサービスプロセスは、クラウドシステム管理装置10により動的に配置される。クラウドシステム管理装置10は、特定のアルゴリズムによって、動的にサービスプロセスを配置する。当該アルゴリズムは、サービスプロセスが使用するサーバ装置32のリソース、負荷、及び余剰資源、並びに、サービスプロセスの品質情報(例えばSLA)、当該サービスプロセスが提供するサービスのコスト(価格等)、サービスプロセスの配置状況等の情報に基づいて決定される。クラウドシステム管理装置10は、第2クラスタに含まれるサーバ装置32が故障した場合、そのサーバ装置32で動作していたサービスプロセスを、第2クラスタ34の他のサーバ装置32に再配置する。
【0042】
例えば、サービスプロセスAが、第2サービスプロセスであるとする。そして、サービスプロセスAが動作していたサーバ装置32が故障したと仮定する。サーバ装置32aでは、サービスプロセスBが動作している。サーバ装置32bでは、サービスプロセスC、及びサービスプロセスDが動作している。サーバ装置32cでは、サービスプロセスE、及びサービスプロセスFが動作している。このとき、再配置部5は、サービスプロセスAを、その他のサービスプロセスの性能、又は可用性等への影響ができる限り少なくなるようにして再配置する。また、再配置部5は、サービスプロセスA自身の性能、又は可用性等が、可能な限り最大に発揮できるように再配置する。
図5の例では、サービスプロセスAの再配置先に、サービスプロセスBのみが起動しているサーバ装置32aが選択されている。すなわち、この例の決定部4は、第2サービスプロセスが均等にサーバ装置32に配置されるように、サービスプロセスAの再配置先を決定している。なお、
図5では、サービスプロセスをサービスプロセスA〜Fとして区別して説明しているが、ここでのサービスプロセスA〜Cは、
図4のサービスプロセスA〜Cとは関係しない。以下、
図6、及び8〜11においても同様である。
【0043】
図6は、実施形態のクラウドシステム100の第2クラスタのサービスプロセスの再配置方法の一例を説明するための図である。
図6の例では、サーバ装置32aでは、サービスプロセスA、及びサービスプロセスBが動作している。サーバ装置32bは、故障したことを示す。なお、サーバ装置32bでは、サービスプロセスC、及びサービスプロセスDが動作していたものとする。サーバ装置32cは、サービスプロセスE、及びサービスプロセスFが動作している。
【0044】
図6の例では、再配置部5は、サーバ装置32bで動作していたサービスプロセスCを、サーバ装置32cに再配置する。また、再配置部5は、サーバ装置32bで動作していたサービスプロセスDを、サーバ装置32aに再配置する。すなわち、
図6の例では、再配置部5は、サーバ装置32bで動作していたサービスプロセスを、他のサーバ装置32に均等に再配置している。これにより、第2クラスタで動作するサービスプロセスの性能、又は可用性等が、可能な限り最大に発揮できるようにしている。
【0045】
次に、実施形態のクラウドシステム管理装置10の第1クラスタ33のサービスプロセスの再配置方法について説明する。
図7は、実施形態のクラウドシステム管理装置10の第1クラスタ33のサービスプロセスの再配置方法の一例を説明するためのフローチャートである。また、
図8〜10は、実施形態のクラウドシステム100の第1クラスタ33のサービスプロセスの再配置方法の一例を説明するための図である。
【0046】
まず、検出部1が、第1クラスタ33内のサーバ装置31の故障を検出する(ステップS1)。
図8の場合を例にして説明する。
図8の例では、第1クラスタ33は、サーバ装置31a、及びサーバ装置31bを備える。また、第2クラスタ34は、サーバ装置32a、サーバ装置32b、及びサーバ装置32cを備える。
【0047】
図8の例では、サーバ装置31aでは、サービスプロセスA、及びサービスプロセスBが動作している。サーバ装置31bは、故障したことを示す。検出部1は、サーバ装置31bの故障を検出する。なお、サーバ装置31bでは、サービスプロセスC、及びサービスプロセスDが動作していたものとする。また、サーバ装置32aでは、サービスプロセスGが動作している。サーバ装置32bでは、サービスプロセスH、及びサービスプロセスEが動作している。サーバ装置32cでは、サービスプロセスJ、及びサービスプロセスKが動作している。
【0048】
図7に戻り、決定部4が、故障が検出されたサーバ装置31と、ホットスワップするサーバ装置32(再配置先のサーバ装置32)を決定する(ステップS2)。
図9の場合を例にして説明する。
図9の例は、決定部4が、サーバ装置31bのサービスプロセスの再配置先のサーバ装置32を、サーバ装置32bに決定した場合の例である。なお、決定部4による再配置先のサーバ装置32の決定方法(ステップS2)の詳細は後述する。
【0049】
クラウドシステム100は、ホットスワップの対象となった第1クラスタ33のサーバ装置31を、ホットスワップ後、第2クラスタ34のサーバ装置32として認識する。また、クラウドシステム100は、ホットスワップの対象となった第2クラスタ34のサーバ装置32を、ホットスワップ後、第1クラスタ33のサーバ装置31として認識する。
図10は、クラスタシステム100が、再配置先のサーバ装置32bを、第1クラスタとして利用することを示している。また、クラスタシステム100が、故障したサーバ装置31bを、第2クラスタとして認識することを示している。なお、故障したサーバ装置31bは、軽微な故障である等の理由で復旧可能であれば、復旧後に第2クラスタで利用される。
【0050】
図7に戻り、再配置部5は、再配置先のサーバ装置32のサービスプロセス(第2サービスプロセス)を停止する(ステップS3)。再配置部5は、再配置されたサービスプロセス(第1サービスプロセス、及び第2サービスプロセス)を開始する(ステップS4)。
図11の場合を例にして説明する。
図11の例では、再配置部5が、再配置が必要になった第1サービスプロセス(サービスプロセスC、及びサービスプロセスD)を、決定部4により決定されたサーバ装置32bに移している。また、再配置部5が、再配置先のサーバ装置32bで動作していた第2サービスプロセス(サービスプロセスH)を、サーバ装置32aに移している。また、再配置部5が、再配置先のサーバ装置32bで動作していた第2サービスプロセス(サービスプロセスE)を、サーバ装置32cに移している。
【0051】
図11の例では、再配置が必要になった第1サービスプロセス(サービスプロセスC、及びサービスプロセスD)が動作していたサーバ装置31bが、第2クラスタが使用していたサーバ装置32bにホットスワップされている。これにより、クラウドシステム管理装置10は、第1クラスタの第1サービスプロセスの品質(可用性、又は性能等)を保ちながら、第1サービスプロセスを再配置することができる。
【0052】
なお、本実施形態のクラウドシステム100は、品質を必ず保証することが品質情報で定められている第1サービスプロセスが動作するサーバ装置31で構成される第1クラスタと、品質を必ず保証することが品質情報で定められていない第2サービスプロセスが動作するサーバ装置32で構成される第2クラスタを含んでいる。しかしながら、クラウドシステム100は、このような区別をせずにクラスタを1つにしてもよい。この場合は、クラウドシステム管理装置10は、各サーバ装置31(32)で動作するサービスプロセスの品質情報に応じて、クラスタの種類によらずにサーバ装置31(32)単位で個別に判定してサービスプロセスを再配置する。
【0053】
また、逆に、クラスタシステム100は、より詳細にクラスタを区別してもよい。例えば、第2サービスプロセスが動作する第2クラスタ34を、サービスプロセスが保証する品質を表す品質情報に応じて、第2クラスタ34と第3クラスタに分けてもよい。すなわち、クラウドシステム管理装置10に、サービスプロセスに要求される品質を、閾値等により定量的に判定する機能を追加する。そして、クラウドシステム管理装置10は、当該閾値が所定の値以上のサービスプロセスは、第2クラスタ34のサーバ装置32に割り当てる。また、クラウドシステム管理装置10は、当該閾値が所定の値より小さいサービスプロセスは、第3クラスタのサーバ装置に割り当てる。当該機能は、例えば、見積部3に追加してもよい。また、クラウドシステム管理装置10は、第3クラスタのリソースのオーバーコミット率(割り当て済み論理リソース/物理リソース)の上限を、第2クラスタのリソースのオーバーコミット率の上限よりも大きくしてもよい。また、クラウドシステム管理装置10は、第2クラスタの利用料金を、第3クラスタの利用料金よりも高くしてもよい。決定部4が、ホットスワップの対象として、どちらのクラスタを選ぶかは、その時点でのオーバーコミット率が、オーバーコミット率の上限にどの程度到達しているかを比較することによって、決定してもよい。
【0054】
また、再配置部5は、再配置先のサーバ装置31(32)で動作しているサービスプロセスを、他のサーバ装置31(32)に移さなくてもよい。このような場合としては、例えば、品質情報が、サービスプロセスの処理時間等である場合がある。違約情報は、当該処理時間に応じて決定される。再配置先のサーバ装置31(32)にリソースに余裕がある場合は、再配置先のサーバ装置31(32)に、サービスプロセスが追加されても、違約情報を生成する必要がない。このような場合は、再配置部5は、再配置先のサーバ装置31(32)で動作しているサービスプロセスを、他のサーバ装置31(32)に移さなくてもよい。
【0055】
図12は、実施形態のクラウドシステム管理装置10の第1クラスタ33のサービスプロセスを再配置先するサーバ装置32を決定する方法の一例を説明するためのフローチャートである。
【0056】
見積部3は、第2クラスタ34内のサーバ装置32から、サーバ装置hを1つ選択する(ステップS11)。見積部3は、サーバ装置hのサービスプロセスSを1つ選択する(ステップS12)。見積部3は、サービスプロセスSを再配置した場合の違約情報を見積もる(ステップS13)。見積部3は、サーバ装置hのサービスプロセスSを全て選択したか否かを判定する(ステップS14)。サーバ装置hのサービスプロセスSを全て選択した場合は、見積部3は、当該見積もりの合計G
hを算出する(ステップS15)。サーバ装置hのサービスプロセスSを全て選択していない場合は、ステップS12に戻る。見積部3は、第2クラスタ34内のサーバ装置32を全て選択したか否かを判定する(ステップS16)。第2クラスタ34内のサーバ装置32を全て選択した場合は、決定部4は、合計G
hが最小となるサーバ装置hを選択する(ステップS17)。なお、ステップS17において、決定部4は、必ずしも合計G
hが最小となるサーバ装置hを選択しなくてもよい。例えば、決定部4は、他の指標も鑑みて、合計G
hが小さいサーバ装置hを優先するに留めてもよい。第2クラスタ34内のサーバ装置32を全て選択していない場合は、ステップS11に戻る。
【0057】
次に、違約情報の見積方法の一例について説明する。サービスプロセス毎の違約情報の見積もりは、例えば、過去1年間の動作不能時間に、再配置にかかる予想処理時間を加えた値、及び品質情報(例えば、SLA)に基づいて計算することができる。ここで、再配置にかかる予想処理時間は、過去の実績値の平均により見積もる。具体的には、再配置にかかる処理時間の過去の実績値の平均は、サービスプロセス毎に記憶部2に記録されている動作不能時間を、再配置回数で割ることによって得ることができる。なお、過去に一度も再配置が行われていない場合には、再配置の実績値は無いので、事前に評価しておいた結果等を使ってもよい。または、再配置対象のサービスプロセスと同様の他のサービスの実績値を使ってもよい。
【0058】
なお、再配置後の違約情報の見積もりが最小となるサーバ装置32(ホットスワップ対象のサーバ装置32)が複数あった場合(例えば、違約情報が0で並ぶ等)は、その中から最適な対象サーバ装置32を選択するために、再配置後にサーバ装置32が更に故障した場合の違約情報の期待値も見積もる。このようにしてサーバ装置32を選べば、再配置後の違約情報が最小となるだけでなく、再配置後にサーバ装置32が、更に故障した場合が考慮された違約情報の期待値も最小となるようにして、サーバ装置32を選ぶことができる。
【0059】
以下では、違約情報の見積もりが最小のサーバ装置32(再配置先のサーバ装置32の候補)が複数あった場合に、更に違約情報の期待値を見積もる方法の一例について説明する。
【0060】
第2クラスタ34内のサーバ装置32の総数をNとし、各サーバ装置32には1からNの番号が振られているとする。各サーバ装置h
k(1≦k≦N)が、再配置先のサーバ装置32に選ばれた後、第2クラスタ34内のサーバ装置32が故障した場合の違約情報の期待値を算出する。
【0061】
なお、以下の説明では、各サーバ装置h
k(1≦k≦N)が、故障する確率は、同一であると仮定する。また、各サーバ装置h
k(1≦k≦N)が故障する確率は、十分に小さいと考えることができるとして、同時に複数台のサーバ装置h
kが故障する場合の違約情報の期待値を0とみなす。すなわち、二点故障の確率は相当小さいので、一点故障までの違約情報の期待値が、違約情報の期待値の主要部であるとみなす。決定部4は、当該主要部が最小であるサーバ装置h
kを再配置先に決定する。
【0062】
まず、使用する記号について説明する。sを第2クラスタ34のサーバ装置32で動作しているサービスプロセスとする。g(n,s)を、サービスプロセスsを見積もり基準時からn回再配置したときの違約情報の見積もり値とする。具体的には、例えば、過去1年間の動作不能時間に、n回分の再配置の予想処理時間を加えた値から、品質情報で約束された値(例えば52分)を引いて違約時間を見積もる。次に、この違約時間に応じた違約情報(例えば違約金)を算出し、当該違約情報をg(n,s)とする。なお、g(0,s)は、サービスプロセスsの見積もり基準時の違約情報であることを示す。
【0063】
n回再配置したときの違約情報の増加分G(n,s)を、次式(1)により定義する。
【0065】
ここでは、計算を簡易的に行うため、サーバ装置h
kは全て同一機種であるとする。すなわち、G(n,s)は、サービスプロセスが配置されるサーバ装置h
kに関係なく見積もれるものとする。
【0066】
サーバ装置h
kのサービスプロセスsを、他のサーバ装置32に移した後(1回再配置した後)の全てのサービスプロセスsの違約情報は、次式(2)で表すことができる。
【0068】
ここでH
kは、サーバ装置h
kで動いていたサービスプロセスの集合である。なお、式(2)の第1項は、サーバ装置h
kで動作していたサービスプロセスsの違約情報の総和を示す。また、式(2)の第2項は、サーバ装置h
k以外のサーバ装置32で動作しているサービスプロセスsの違約情報の総和を示す。式(2)は、以下のようにして式(3)に変形することができる。
【0070】
つまり、サーバ装置h
kのサービスプロセスsを、他のサーバ装置32に移した後の全てのサーバ装置32のサービスプロセスsの違約情報は、見積もり基準時の違約情報(第1項)と、サーバ装置h
k上のサービスプロセスsを1回再配置することによる違約情報の増加分(第2項)の和である。式(3)のkに依存する項は、第2項のみであることがわかる。
【0071】
再配置後の違約情報の見積もりが最小となるサーバ装置32が複数ある場合(例えば、違約情報が0で並ぶ等)は、式(3)の第2項が最小(同一)となるサーバ装置h
kが複数あることを示す。したがって、更に違約情報の見積もりの期待値を算出する場合は、次式(4)が同一であると仮定してよい。
【0073】
各サーバ装置h
k(1≦k≦N)について、サーバ装置h
kが再配置先のサーバ装置32に選ばれた後、第2クラスタ34内のサーバ装置32が故障した場合の違約情報の期待値を算出する。当該違約情報の期待値は、サーバ装置h
i(1≦i≦N)のいずれか1台の故障により発生するサービスプロセスsの違約金の増加分の期待値を、式(1)に加算した次式(5)により算出できる。
【0075】
ここで、pはサーバ装置h
iの故障確率とする(サーバ装置h
iの故障確率を全て同一であると仮定している。)。/H
i(ただし、“/”は上線であることを示す。)は、再配置後(ホットスワップを一回した後)にサーバ装置h
iで動いていたサービスプロセスの集合である。/G(s)(ただし、“/”は上線であることを示す。)は、サービスsの違約情報の増加分である。
【0076】
/G(s)は、次式(6)で表すことができる。
【0078】
式(5)は、次のようにして式(7)に変形することができる。
【0080】
式(7)の第3項(式(4))は、違約情報の期待値の評価対象となっているサーバ装置h
kの間で同じである。したがって、kに依存する項は、式(7)の第1項のみである。すなわち、決定部4は、次式(8)により算出された値が、最小となるサーバ装置h
kを決定すればよい。
【0082】
式(8)は、故障確率pや、各サービスプロセスsの再配置先のサーバ装置32に関係なく、値が確定できるため、実際に計算可能である。上記の計算を踏まえると、再配置後に2回(2台)以上サーバ装置h
kが故障する場合にも、次式(9)を、違約情報の期待値の見積もりの値の評価に利用できることがわかる。
【0084】
すなわち、式(8)が同一の値となる場合(例えば、0で並ぶ場合)は、式(9)でn=3として、更にもう1回、見積もり基準時のサーバ装置h
k(1≦k≦N)で動作していたサービスプロセスsが再配置の対象となった場合を評価する。見積部3は、このようにして、nの値を増やして式(9)を評価することにより、違約情報の期待値を見積もる。決定部4は、当該違約情報の期待値により、ホットスワップの対象となるサーバ装置h
kを決定する。
【0085】
本実施形態のクラウドシステム管理装置10によれば、クラウドシステム100内のサーバ装置31(32)が故障したとき、見積部3、決定部4、及び再配置部5により、サービスプロセスが保証する品質に応じて、使用できるサーバ装置31(32)を、サービスプロセスに効率的に割り当てることができる。
【0086】
また、本実施形態のクラウドシステム管理装置10によれば、品質の要求レベルの異なる品質情報(例えばSLA)を有するサービスプロセスを、クラウドシステム100により効率的に運用することができる。
【0087】
(その他の実施形態)
その他の実施形態のクラウドシステム管理装置10、及びクラウドシステム100について説明する。上述の実施形態のクラウドシステム100は、サーバ装置31(32)は、全て使用されていた。その他の実施形態のクラウドシステム100として、余剰リソースとして予備サーバ装置がある場合について説明する。
【0088】
予備サーバ装置は、第2クラスタ34のサーバ装置として利用される。ただし、予備サーバ装置で動作するサービスプロセス(以下「予備サービスプロセス」という。)が保証する品質は、第2クラスタ34のサーバ装置32よりも更に低いものとする。例えば、予備サービスプロセスは、サーバ装置31(32)で故障が発生したら、すぐに停止しても差し支えのないサービスプロセスである。したがって、決定部4が、予備サーバ装置31を、ホットスワップの対象に決定しても、予備サービスプロセスは、他のサーバ装置31(32)や、他の予備サーバ装置に移さなくてもよい。決定部4は、第1クラスタのサーバ装置31が故障した際には、まず、予備サーバ装置を、ホットスワップの対象に決定する。
【0089】
本実施形態のクラウドシステム管理装置10、及びクラウドシステム100は、クラウドシステム100のリソースに余裕がある場合でも、サービスプロセスが保証する品質に応じて、クラウドシステム100のリソースを効率的に割り当てることができる。
【0090】
次に、実施形態のクラウドシステム100のクラウドシステム管理装置10、及びサーバ装置31(32)のハードウェアの構成の一例について説明する。
図13は、実施形態のクラウドシステムのクラウドシステム管理装置、及びサーバ装置のハードウェアの構成の一例を示す図である。以下では、クラウドシステム管理装置10の場合を例にして説明する。
【0091】
本実施形態のクラウドシステム管理装置10は、制御部61、主記憶部62、補助記憶部63、表示部64、入力部65、及び通信I/F部66を備える。制御部61、主記憶部62、補助記憶部63、表示部64、入力部65、及び通信I/F部66は、バス67を介して互いに接続されている。
【0092】
制御部61は、補助記憶部63から主記憶部62に読み出されたプログラムを実行する。主記憶部63は、ROM(Read Only Memory)やRAM(Random Access Memory)等のメモリである。補助記憶部63は、HDD(Hard Disk Drive)や光学ドライブ等である。表示部64は、クラウドシステム管理装置10の状態等を表示する画面である。表示部6は、例えば液晶ディスプレイである。入力部65は、クラウドシステム管理装置10を操作するためのインタフェースである。入力部65は、例えばキーボードやマウス等である。通信I/F部66は、ネットワークに接続するためのインタフェースである。
【0093】
本実施形態のクラウドシステム管理装置10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータ・プログラム・プロダクトとして提供される。
【0094】
また、本実施形態のクラウドシステム管理装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態のクラウドシステム管理装置10で実行されるプログラムをインターネット等のネットワーク経由で提供、又は配布するように構成してもよい。
【0095】
また、本実施の形態のクラウドシステム管理装置10のプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0096】
本実施形態のクラウドシステム管理装置10で実行されるプログラムは、上述した各機能ブロック(検出部1、見積部3、決定部4、及び再配置部5)を含むモジュール構成となっている。当該各機能ブロックは、実際のハードウェアとしては、制御部61が上記補助記憶部63等からプログラムを読み出して実行することにより、上記各機能ブロックが主記憶部62上にロードされる。すなわち、上記各機能ブロックは、主記憶部62上に生成される。
【0097】
なお、上述した各部(検出部1、見積部3、決定部4、及び再配置部5)の一部、又は全部を、ソフトウェアにより実現せずに、IC等のハードウェアにより実現してもよい。また、記憶部2は、例えば、補助記憶部63である。なお、補助記憶部63により実現する記憶部2のデータを、主記憶部62に展開してもよい。
【0098】
以上説明したとおり、実施形態のクラウドシステム管理装置10によれば、クラウドシステム100内のサーバ装置31(32)が故障したとき、見積部3、決定部4、及び再配置部5により、サービスプロセスが保証する品質に応じて、使用できるサーバ装置31(32)を、サービスプロセスに効率的に割り当てることができる。
【0099】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。