説明

動作不能なマスタ作業負荷管理プロセスを代替するシステムおよび方法

【課題】作業負荷管理機能により、コンピューティング資源をより効率的に使用可能とする。
【解決手段】本発明にかかる方法は、複数のコンピューティング区画内の各作業負荷管理プロセスを実行し、少なくともプロセッサ資源を複数のコンピューティング区画内で実行されるアプリケーションに割り振り、作業負荷管理プロセスからの追加資源受け取り要求に応答して、プロセッサ資源を複数のコンピューティング区画に再割り振りし、マスタ作業負荷管理プロセスの動作を他の作業負荷管理プロセスにより監視し、他の作業負荷管理プロセスにより、マスタ作業負荷管理プロセスが動作不能になったときを検出し、検出することに応答して、他の作業負荷管理プロセスにより代替マスタ作業負荷管理プロセスを選択する。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本願は、同時係属中であり、本願と同じ譲受人に譲渡された米国特許出願第10/206,594号、名称「DYNAMIC MANAGEMENT OF VIRTUAL PARTITION COMPUTER WORKLOADS THROUGH SERVICE LEVEL OPTIMIZATION」、2002年7月26日出願に関連する。
【0002】
本願は、包括的には動作不能なマスタ作業負荷管理プロセスの代替に関する。
【背景技術】
【0003】
多くの企業が、組織内でのコンピュータ数およびアプリケーション数の劇的な増加を経験した。
企業内のビジネスグループが新規アプリケーションを配備する場合には通常、1つまたは複数の専用サーバプラットフォームが新規アプリケーションをホストするために追加される。
このタイプの環境は、時に「ワンアプリケーションパーボックス(one-app-per-box)」と呼ばれることがある。
デジタル化されるビジネスプロセスが多くなるにつれて、「ワンアプリケーションパーボックス」環境は過度な数のサーバプラットフォームに繋がる。
その結果として、サーバプラットフォームの管理コストが大幅に上昇する。
さらに、サーバプラットフォーム資源が実際に使用される時間の割合(利用率)はかなり低くなり得る。
【0004】
こういった問題に対処するために、多くの企業は複数のアプリケーションを共通サーバプラットフォームに統合して、プラットフォーム数を削減するとともに、システムの利用率を上げている。
このような統合が行われる場合には、複数のアプリケーション間のプラットフォームの資源の調整が適切である。
たとえば、サポートされるアプリケーションの各種スレッドによるプロセッサ資源へのアクセスを制御するスケジューリングメカニズムを提供することが望ましい。
スケジューリングメカニズムによっては(たとえば、「作業負荷管理」機能)、プロセスのスケジューリングを制御するために分け前、規則、優先度、サービスレベル目標等の一式を提供するものがある。
【0005】
作業負荷管理の一例には、共有資源ドメインに複数の仮想パーティションを作成することが挙げられる。
各種資源(プロセッサ、メモリ、入出力(I/O)資源等)が通常、各仮想パーティションに割り当てられる。
また、各オペレーティングシステムを各仮想パーティション内で実行することができる。
関連するアプリケーションの各グループを各仮想パーティション内で実行することができる。
仮想パーティションの構成は、各仮想パーティションのアプリケーション群間で或る程度の区分けを提供する。
さらに、作業負荷管理プロセスを各仮想パーティション内で実行して、仮想パーティション内の資源へのアクセスを制御することができる。
具体的には、特定の仮想パーティション内で、作業負荷管理プロセスは、仮想パーティションに割り当てられたグループのアプリケーション間でのプロセッサ資源へのアクセスをスケジュールすることができる。
【0006】
仮想パーティション内の作業負荷管理に加えて、資源を仮想パーティション間に再割り振りすることによって別のレベルの資源管理が行われる。
具体的には、仮想パーティション内の作業負荷管理プロセスにより、サービスレベル目標をアプリケーショングループで満たすことができないと判断される場合、作業負荷管理プロセスは、「大域的」作業負荷管理プロセスからの資源の追加を要求することができる。
規則、分け前、優先度、サービスレベル目標等に基づいて、大域的作業負荷管理プロセスは、別の仮想パーティションから要求を行っているパーティションに資源をシフトすることができる。
たとえば、他のパーティションに過剰資源がある場合、そういった資源を、要求を行っている仮想パーティションに再割り当てすることができる。
作業負荷管理機能の使用により、コンピューティング資源に関連する利用率を向上させることが可能になる。
したがって、作業負荷管理機能により、コンピューティング資源をより効率的に使用することが可能になる。
【発明の開示】
【課題を解決するための手段】
【0007】
一実施形態において、方法は、複数のコンピューティング区画内の各作業負荷管理プロセスを実行することであって、それによって少なくともプロセッサ資源を複数のコンピューティング区画内で実行されるアプリケーションに割り振る、実行すること、マスタ作業負荷管理プロセスを選択することであって、それにより、作業負荷管理プロセスからの追加資源受け取り要求に応答して、プロセッサ資源を複数のコンピューティング区画に再割り振りする、選択すること、マスタ作業負荷管理プロセスの動作を他の作業負荷管理プロセスにより監視すること、他の作業負荷管理プロセスにより、マスタ作業負荷管理プロセスが動作不能になったときを検出すること、検出することに応答して、他の作業負荷管理プロセスにより代替マスタ作業負荷管理プロセスを選択すること、とを含む。
【発明を実施するための最良の形態】
【0008】
既知の作業負荷管理機能は、従来技術によるコンピューティング環境と比較して多くの利点を提供するが、既知の作業負荷管理機能にはいくつかの制約がある。
具体的には、大域的作業負荷管理プロセスに影響するシステム故障が発生した場合、仮想パーティション間の資源の共有が停止することになる。
したがって、資源の利用率は、システムリセットが管理者の介入に従って行われるまで、実現可能な利用率よりも低くなり得る。
【0009】
代表的ないくつかの実施形態では、コンピューティングパーティションまたはノード(コンピューティング資源および関連するソフトウェアの区分けされたドメイン)がクラスタ編成に構成される。
各作業負荷管理プロセスは「マスタ」プロセスとして選択されて、その他のノードの作業負荷管理プロセスに応答して資源を各メンバノードに再割り振りする。
【0010】
クラスタの動作中、「ハートビート」を使用して、マスタ作業負荷管理プロセスが適宜機能していることを通信する。
たとえば、明示的な信号をマスタ作業負荷管理プロセスからその他の各作業負荷管理プロセスに通信することができる。
その他の作業負荷管理プロセスが信号を受け取っている限り、動作は通常通りに続いている。
【0011】
しかし、信号を受け取らない場合、各非マスタ作業負荷管理プロセスは、マスタプロセスと通信することができないことにより非メンバ状態になる。
一実施形態では、その他のすべてのプロセスが非メンバ状態になると、プロセスは代替マスタプロセスを選び、コンピューティングパーティション間での資源の再割り振りを引き継ぐ。
次いで、選ばれなかったプロセスはメンバ状態になり、新たに選ばれたマスタ作業負荷管理プロセスに応答する。
【0012】
これより図面を参照して、図1に、代表的な一実施形態による作業負荷管理機能を含むコンピューティングシステム100を示す。
システム100は、複数の仮想パーティション101−1〜101−Nまたは他の適したコンピューティング区画を含む。
仮想パーティション101は、サーバプラットフォーム資源の保護ドメインである。
サーバプラットフォームの選択されたプロセッサ102およびメモリ103の特定の部分をパーティション101−1〜101−Nに割り振ることができる。
パーティション101は、ネットワークインタフェース104および入出力(IO)インタフェース105等の資源を共有することができる。
適したキューイングおよびスケジューリングメカニズム(図示せず)を使用して、例としてネットワークインタフェース104およびIOインタフェース105へのアクセスを割り振ることができる。
代表的な一実施形態について仮想パーティションを使用するものとして説明するが、任意の適したコンピューティング環境を使用して実施形態を実施することができる。
具体的には、割り振る対象となる少なくとも1つの資源を有する任意のコンピュータシステムが、実施形態を参照していずれのソフトウェアプロセスが資源へのアクセスを受け取るのかを判断することができる。
【0013】
各オペレーティングシステム106を実行して、各パーティション101内の処理を制御することができる。
各アプリケーション107またはアプリケーションセットがパーティション101−1〜101−N内で実行される。
アプリケーション107は、たとえば、企業エンティティの各種ビジネス単位のビジネスプロセスに対応することができる。
パーティションの使用により、多くの利点が可能になる。
たとえば、ソフトウェアエラーまたは故障が任意のパーティション101内で発生した場合、そのパーティション101のみが影響を受け、その他のパーティション101は中断せずに処理を続ける。
【0014】
一実施形態では、パーティション101−1〜101−N内において、パフォーマンスモニタ108がアプリケーション107に関連する動作を監視するソフトウェアプロセスである。
たとえば、パフォーマンスモニタ108は、選択されたタイプのトランザクションの実行に必要な時間長を調べることができる。
これに加えて、またはこれに代えて、パフォーマンスモニタ108は、パーティション101−1〜101−Nに関連するアプリケーション107によるプロセッサ、I/O周辺機器、ネットワークインタフェース、または他の資源に関連する利用率を監視することができる。
パフォーマンスモニタ108によって集められたパフォーマンス測度は、大域的作業負荷マネージャ(gWLM)109に通信される。
【0015】
一実施形態では、gWLM109は、パフォーマンス測度を使用し、ポリシーデータ110に従って資源をパーティション101−1〜101−N内に動的に割り振るソフトウェアプロセスである。
ポリシーデータは、サービスレベル目標(SLO)(すなわち、所望の動作目標)を特定することができる。
たとえば、SLOは、特定のタイプのデータベーストランザクションを完了する所望の時間長が1ミリ秒に等しくなるように指定するように規定することができる。
別法として、SLOは、資源の利用率が85%未満に維持されるように規定することができる。
gWLM109の1つが、所与のパーティション101内の割り振りを通して各SLO(複数可)を満たすことができない場合、gWLM109は追加資源を得るための要求を通信することができる。
【0016】
いくつかの代表的な実施形態は、gWLM109の中から、マスタ作業負荷プロセスとしてさらに機能する1つを選択する。
マスタ作業負荷管理プロセスは、その他のgWLM109からの要求を受け取り、パーティション101間の資源の割り振りを動的に制御する。
パーティション間の資源の再割り振りはまた、ポリシーデータ101により規定されるように行うこともできる。
たとえば、プロセッサまたはプロセッサセットを或るパーティション101から外して、別のパーティション101に割り当て、SLOの未達成に対処することができる。
一実施形態では、SLOは、各層が相対優先度を有するいくつかの目標層を使用して符号化することもできる。
マスタgWLM109は、現在のパフォーマンスデータから可能な限り最高のSLO層を実現するようにシステム資源を割り振る。
資源の再割り振りは、アイドル資源の再割り振りおよび/またはより低優先度のアプリケーションからの使用資源の再割り振りを含み得る。
メモリ、記憶資源、ネットワーキング資源、オペレーティングシステム資源等の任意の適した資源をこのようにして割り当てることができる。
【0017】
パーティション101の1つの中で作業負荷プロセスを選択することに加えて、いくつかの代表的な実施形態では、作業負荷プロセスまたは関連するパーティション101内の他の任意の関連プロセスが故障した後でも引き続き資源を再割り振りすることができる。
具体的には、いくつかの代表的な実施形態は、マスタ作業負荷管理プロセスの動作を監視する。
各非マスタ管理作業負荷プロセスにより、マスタ作業負荷管理プロセスが動作不能になったことが検出される場合、非マスタ作業負荷管理プロセスは、代替マスタ作業負荷管理プロセスを選択することによって自律的に再編成する。
【0018】
図2に、代表的な一実施形態による作業負荷管理プロセスに関連する動作のフローチャートを示す。
フローチャートは、コンピュータ実行可能コードまたはソフトウェアを使用して実施することができる。
ステップ201において、複数の作業負荷管理プロセスが、複数のコンピューティング区画(たとえば、仮想パーティション)内で実行される。
作業負荷管理プロセスは、割り振りポリシーに従って区画内のアプリケーションへの資源の割り振りを動的に調整する。
資源には、プロセッサ、メモリ、ネットワーキング資源、IO資源等が含まれ得る。
【0019】
ステップ202において、作業負荷管理プロセスがクラスタに編成され、複数の作業負荷管理プロセスのうちの1つが、マスタプロセスとして選択される。
初期マスタプロセスは、デフォルトに、ランダムに、または任意の適した方法で選択することができる。
クラスタ識別子もこの時点で生成することができる。
マスタプロセスは、各種パーティションへの資源の割り振りを動的に管理する。
たとえば、非マスタ作業負荷管理プロセスは、追加資源要求、パフォーマンスデータ、および/または他の適した情報をマスタ作業負荷プロセスに通信することができる。
これに応答して、マスタ作業負荷管理プロセスは、資源をパーティション間でシフトすることができる。
資源をシフトする判断は、所定のポリシーデータ、現在の作業負荷データ(たとえば、利用率データ)等に従って行うことができる。
【0020】
ステップ203において、マスタ作業負荷管理プロセスの動作が、その他の作業負荷管理プロセスによって監視される。
この目的のために、明示的な信号をマスタ作業負荷プロセスからその他の作業負荷管理プロセスに通信することができる。
別法として、他の目的で使用されるメソッド呼び出しをこの目的のために監視することができる。
たとえば、一実施形態では、マスタ作業負荷プロセスは、その他の作業負荷管理プロセスに関連するメソッドを呼び出して、再割り振り判断に関連するデータを得ることができる。
各メソッド(複数可)が呼び出されない場合、これは、マスタ作業負荷管理プロセスが動作不能になったことを暗示し得る。
別の実施形態では、その他の作業負荷管理プロセスは、マスタ作業負荷管理プロセスに関連するメソッドを周期的に呼び出すことができる。
例外が発生するか、または応答を受け取らない場合、これもまた作業負荷管理プロセスが動作不能になったことを暗示し得る。
【0021】
ステップ204において、論理的な比較が行われ、マスタ作業負荷管理プロセスが動作不能になったか否かが判断される。
たとえば、マスタ作業負荷管理プロセスの関連動作の検出に関連するタイマを保持することができる。
タイマを使用して、一般的なネットワークまたは他のシステムの障害とマスタ作業負荷管理プロセスの故障とを区別することができる。
論理的な比較により、マスタ作業負荷管理プロセスが動作可能であると判断される場合、プロセスの流れはステップ203に戻る。
論理的な比較により、マスタ作業負荷管理プロセスが動作不能であると判断される場合、プロセスの流れはステップ205に進む。
【0022】
ステップ205において、作業負荷管理プロセスは新しい作業負荷管理プロセスを選択する。
この選択は、所定数またはすべての作業負荷管理プロセスがマスタプロセスの故障を検出した後で行うことができる。
選択プロセスは、残りのプロセスの「選出」を含むことができる。
たとえば、各作業負荷管理プロセスは互いに「投票コール」メッセージを通信して、プロセスが適切な状態に遷移し、代替プロセスを選択する準備が整ったことを保証することができる。
管理プロセスが適切な状態であると判断された後、プロセスは各自の代替プロセス選出を通信することができる。
この選択は、任意の適した、予め定められた方式(たとえば、最も低い識別子を有する作業負荷管理プロセスを選択し得る)に従って行うことができる。
プロセス同士で合意がなされると、プロセスフローはステップ206に進む。
【0023】
ステップ206において、選出された作業負荷管理プロセスが、コンピューティング区画間での資源の再割り振りを引き継ぐ。
また、新しいクラスタ識別子をこのステップにおいて生成することができる。
クラスタ識別子を使用して、前の作業負荷管理プロセスが再割り振り動作を行おうとすることを防ぐことができる。
具体的には、前の作業負荷管理プロセスは、一時的なシステム故障により動作不能になった場合もある。
リカバリした後、前の作業負荷管理プロセスは資源を再割り振りしようとする恐れがある。
メソッド呼び出しがパーティション間への資源の再割り振りに使用される場合、クラスタ識別子をメソッドの引数として渡すことができる。
呼び出されたメソッドは、クラスタ識別子を認証して、前のマスタ作業負荷管理プロセスが現在の動作に干渉するのを防ぐことができる。
【0024】
ステップ206から、プロセスはステップ203に戻り、さらなる作業負荷管理動作が続けられる。
別の実施形態では、前のマスタ作業負荷管理プロセスのパーティションに関連する動作が再確立される場合、前の管理プロセスは新規のクラスタにメンバ管理プロセスとして再び参加することができる。
【0025】
いくつかの代表的な実施形態は多くの利点を提供することができる。
具体的には、アプリケーション要求に応答して、資源をコンピューティング区画間に効率的に転送することができる。
さらに、いくつかの代表的な実施形態は、ソフトウェア故障、部分的なネットワーク中断、または他のシステム故障に対して堅牢である。
具体的には、各作業負荷管理プロセスが区画間への資源の割り振りを行うことが可能であるため、代替マスタプロセスを選択することにより、システムリセットを行う必要なく資源を転送することが可能である。
【図面の簡単な説明】
【0026】
【図1】代表的な一実施形態によるコンピューティングシステムを示す。
【図2】代表的な一実施形態によるフローチャートを示す。
【符号の説明】
【0027】
103・・・メモリ,
104・・・ネットワークインタフェース,
105・・・IOインタフェース,
110・・・ポリシーデータ,

【特許請求の範囲】
【請求項1】
複数のコンピューティング区画内の各作業負荷管理プロセスを実行すること(201)であって、それによって少なくともプロセッサ資源を前記複数のコンピューティング区画内で実行されるアプリケーションに割り振ることと、
マスタ作業負荷管理プロセスを選択することであって、それにより、前記作業負荷管理プロセスからの追加資源受け取り要求に応答して、プロセッサ資源を前記複数のコンピューティング区画に再割り振りすることと、
前記マスタ作業負荷管理プロセスの動作を他の作業負荷管理プロセスにより監視すること(203)と、
前記他の作業負荷管理プロセスにより、前記マスタ作業負荷管理プロセスが動作不能になったときを検出すること(204)と、
該検出することに応答して、前記他の作業負荷管理プロセスにより代替マスタ作業負荷管理プロセスを選択すること(205)と
を含む方法。
【請求項2】
前記監視することは、
前記マスタ作業負荷管理プロセスが前記他の作業負荷管理プロセスにメソッド呼び出しを行うか否かを判断すること
を含む
請求項1に記載の方法。
【請求項3】
前記メソッド呼び出しは、前記マスタ作業負荷管理プロセスが行うべき再割り振り判断に関連する情報を得るためのメソッド呼び出しである
請求項2に記載の方法。
【請求項4】
前記監視することは、
前記マスタ作業負荷管理プロセスがメソッド呼び出しへの応答に失敗するか否かを判断すること
を含む
請求項1に記載の方法。
【請求項5】
前記マスタ作業負荷管理プロセスの最後に検出された動作に関連するタイマを作動させること
をさらに含む請求項1に記載の方法。
【請求項6】
前記他の作業負荷管理プロセスのそれぞれは、前記検出することに応答して非メンバ状態に遷移する
請求項1に記載の方法。
【請求項7】
前記他の作業負荷管理プロセスのそれぞれは互いに通信して、該他の作業負荷管理プロセスのそれぞれが、前記代替を選択することを行う前に前記非メンバ状態になったか否かを判断する
請求項6に記載の方法。
【請求項8】
前記前のマスタ作業負荷管理プロセスの動作を再確立することと、
前記代替を選択することが行われた後、前記前のマスタ作業負荷管理プロセスが処理資源の再割り振りに関連する動作を行おうとするときに例外を発生させることと、
前記前のマスタ作業負荷管理プロセスが、前記他の作業負荷管理プロセスにメンバプロセスとして加わることと
をさらに含む請求項1に記載の方法。
【請求項9】
現在のマスタ作業負荷管理プロセスを識別する識別子を生成すること
をさらに含む請求項1に記載の方法。
【請求項10】
前記現在のマスタ作業負荷管理プロセスは、前記複数のコンピューティング区画間に資源の割り振りを行うメソッドに前記識別子を渡す
請求項9に記載の方法。

【図1】
image rotate

【図2】
image rotate