JP3910982B2 - Computer system, service load balancing method and program - Google Patents
Computer system, service load balancing method and program Download PDFInfo
- Publication number
- JP3910982B2 JP3910982B2 JP2004248949A JP2004248949A JP3910982B2 JP 3910982 B2 JP3910982 B2 JP 3910982B2 JP 2004248949 A JP2004248949 A JP 2004248949A JP 2004248949 A JP2004248949 A JP 2004248949A JP 3910982 B2 JP3910982 B2 JP 3910982B2
- Authority
- JP
- Japan
- Prior art keywords
- service
- computers
- ticket value
- dynamic
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 25
- 230000003068 static effect Effects 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000005259 measurement Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 description 61
- 230000004044 response Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000007616 round robin method Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Description
本発明は、複数の計算機を備え、複数種類のサービスを実行可能な計算機システムに係り、特に非対称なリソース環境におけるサービスの負荷分散に好適な計算機システム及びプログラムに関する。 The present invention relates to a computer system including a plurality of computers and capable of executing a plurality of types of services, and more particularly to a computer system and a program suitable for load distribution of services in an asymmetric resource environment.
従来から、多数のクライアント端末からのサービス実行要求を効率的に処理するために、これらの実行要求を複数のサーバ計算機に分配するサーバ負荷分散システムが知られている(例えば非特許文献1または2参照)。このサーバ負荷分散システムは一般に、対称(均一)なリソース環境を持つ複数のサーバ計算機と、負荷分散装置とから構成される。負荷分散装置はクライアント端末からネットワーク(外部ネットワーク)を介してサービスの実行要求(リクエスト)を受け取ると、当該要求で指定されたサービスを実行すべきサーバ計算機を選択する。このサーバ計算機の選択は、特定のサーバ計算機だけに多大な負荷がかからないように考慮して行われる。つまり負荷分散装置は、同種のサービスの実行を複数の計算機に振り分ける。
Conventionally, in order to efficiently process service execution requests from a large number of client terminals, a server load distribution system that distributes these execution requests to a plurality of server computers is known (for example, Non-Patent
サーバ負荷分散システムでは、サービスを実行する計算機を選択するのに、つまりサービスのスケジュールに、(1)ラウンドロビン法、(2)重み付けラウンドロビン法、(3)最小接続法、或いは(4)最速法が適用されるのが一般的である。ラウンドロビン法は、各サーバ計算機を一定の順番で均等に選択する方法である。重み付けラウンドロビン法は、各計算機に能力に見合った重み(選択され易さ)を付けることで、ラウンドロビン法を基本としながら、各サーバ計算機の能力に応じて当該計算機が選択される頻度を変える方法である。最小接続法は、その時点でコネクション(セッション)数が最小の計算機を選択する方法である。最速法は、その時点で最も速く応答することが可能な計算機を選択する方法である。 In the server load balancing system, in order to select a computer that executes a service, that is, in a service schedule, (1) round robin method, (2) weighted round robin method, (3) minimum connection method, or (4) fastest The law is generally applied. The round robin method is a method of selecting each server computer equally in a certain order. The weighted round robin method changes the frequency with which each computer is selected according to the capabilities of each server computer, by giving each computer a weight (ease of being selected) according to the capability (based on the round robin method). Is the method. The minimum connection method is a method of selecting a computer having the smallest number of connections (sessions) at that time. The fastest method is a method of selecting a computer that can respond the fastest at that time.
負荷分散装置は、上記(1)乃至(4)のうちの何れかの方法で、サービスを実行すべきサーバ計算機を選択すると、クライアント端末からの実行要求を、選択したサーバ計算機にネットワーク(内部ネットワーク)を経由して送る。サーバ計算機は、この実行要求に基づいてサービスを実行し、応答を負荷分散装置に送る。負荷分散装置はサーバ計算機から送られた応答を要求元のクライアント端末に返す。 When the load distribution device selects a server computer to execute a service by any one of the methods (1) to (4), the load distribution device sends an execution request from the client terminal to the selected server computer via a network (internal network). ) To send via. The server computer executes a service based on this execution request and sends a response to the load balancer. The load balancer returns the response sent from the server computer to the requesting client terminal.
負荷分散装置は、サーバ計算機からの応答を監視する。そして負荷分散装置は、サーバ計算機からの応答が一定時間内に返ってこないタイムアウトをもとに、サーバ計算機の障害を検出する。このサーバ計算機の障害には、サーバ計算機自体の障害と、サーバ計算機によるサービス実行に関する障害とがある。負荷分散装置は、サーバ計算機の障害を検出すると、その障害計算機へのサービスの割り当てを行わないことで、システムを縮退運転させる。 The load balancer monitors a response from the server computer. Then, the load balancer detects a failure of the server computer based on a timeout in which a response from the server computer does not return within a certain time. The failure of the server computer includes a failure of the server computer itself and a failure related to service execution by the server computer. When the load balancer detects a failure in the server computer, the load balancing device causes the system to perform a degenerate operation by not allocating the service to the failure computer.
一方、近年は、クラスタシステムと呼ばれる計算機システムが出現している(例えば、非特許文献3参照)。クラスタシステムは、非対称なリソース環境を持つ複数の計算機で構成される。クラスタシステムでは、非対称なリソース環境を持つ複数の計算機に対して、予めユーザによって綿密に計画された形で機能的に異なるサービス(異種のサービス)が割り当てられる。クラスタシステム内の各計算機は互いにネットワークを介して通信を行うことで、サービスを実行中の計算機の障害を検出する。この場合、クラスタシステムでは、障害が検出された計算機で実行されていたサービスを他の計算機に割り当て直す(フェイルオーバする)再スケジュールが行われる。これにより、サービス(業務)停止時間を短くでき、HA(High Availability)と呼ばれる高い可用性(サーバ稼動率、業務稼動率)が実現できる。そこで、このようなクラスタシステムは。HAクラスタシステムと呼ばれる。 On the other hand, in recent years, a computer system called a cluster system has appeared (for example, see Non-Patent Document 3). The cluster system is composed of a plurality of computers having an asymmetric resource environment. In a cluster system, functionally different services (heterogeneous services) are assigned to a plurality of computers having an asymmetric resource environment in a form carefully planned by a user in advance. Each computer in the cluster system communicates with each other via a network to detect a failure of the computer executing the service. In this case, in the cluster system, rescheduling is performed to reassign (fail over) the service that was being executed on the computer in which the failure was detected. As a result, service (business) downtime can be shortened, and high availability (HA availability, business availability) called HA (High Availability) can be realized. So such a cluster system. This is called an HA cluster system.
クラスタシステムにおけるサービスの再スケジュールは、待機系の計算機に対して行われるのが一般的である。このようなクラスタシステムでは、サービスのスケジューリングで計算機の負荷状況が考慮されることはない。また、ユーザの操作で、システム内の計算機毎に処理能力を設定すると共に、システムが提供可能なサービス毎に当該サービスの実行に必要な処理能力(チケット)を設定することで、特定の計算機に処理能力以上のサービスが割り当てられないようにする静的チケット方式のクラスタシステムが知られている。
上記したように、従来のサーバ負荷分散システムは、対称なリソース環境を持つ複数のサーバ計算機を対象として動的に負荷分散することが可能である。しかしながら従来のサーバ負荷分散システムは、複雑な非対称なリソース環境を持つ複数のサーバ計算機を対象として動的に負荷分散すること、つまり複雑な非対称なリソース環境で動作するサービスの確実な実行制御は行えない。また、従来のサーバ負荷分散システムでは、計算機からの応答のタイムアウトにより当該計算機の障害検出が行われるため、計算機障害を迅速に検出できない。 As described above, the conventional server load balancing system can dynamically load balance a plurality of server computers having a symmetric resource environment. However, the conventional server load distribution system can dynamically distribute loads to multiple server computers with complex asymmetric resource environments, that is, it can perform reliable execution control of services that operate in complex asymmetric resource environments. Absent. Further, in the conventional server load distribution system, since the failure of the computer is detected due to a response timeout from the computer, the computer failure cannot be detected quickly.
一方、非対称なリソース環境を持つ従来のクラスタシステムでの負荷分散は、機能的な負荷分散をユーザが綿密に計画することで実現されるか、或いはサービス毎に固定的なチケットを割り当てる静的チケット方式で実現されている。このため従来のクラスタシステムでは動的に負荷分散することができず、しかも静的チケット方式では、実際の負荷状況と異なるサービスの配置が行われる虞がある。 On the other hand, load balancing in a conventional cluster system with an asymmetric resource environment is realized by careful planning of functional load balancing by the user, or a static ticket that assigns a fixed ticket for each service. It is realized by the method. For this reason, the conventional cluster system cannot dynamically distribute the load, and in the static ticket method, there is a possibility that services different from the actual load situation may be arranged.
本発明は上記事情を考慮してなされたものでその目的は、非対称なリソース環境におけるサービスの負荷分散が動的に行える計算機システム、サービス負荷分散方法及びプログラムを提供することにある。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a computer system, a service load distribution method, and a program capable of dynamically distributing service loads in an asymmetric resource environment.
本発明の1つの観点によれば、複数の計算機を備え、複数種類のサービスを実行可能な計算機システムが提供される。この計算機システムは、上記各計算機で実行されるサービスの負荷をサービス負荷として計測するサービス負荷計測手段と、上記各計算機の負荷をノード負荷として計測するノード負荷計測手段と、上記サービス負荷計測手段及び上記ノード負荷計測手段の計測結果をもとに、上記複数の計算機のうちサービス実行に最適な計算機及び当該最適な計算機に再配置するサービスを決定して、当該最適な計算機に当該サービスを再配置するサービス最適配置手段とを備えることを特徴とする。 According to one aspect of the present invention, a computer system including a plurality of computers and capable of executing a plurality of types of services is provided. The computer system includes a service load measuring unit that measures a load of a service executed on each computer as a service load, a node load measuring unit that measures a load on each of the computers as a node load, the service load measuring unit, Based on the measurement result of the node load measuring means, the most suitable computer for service execution among the plurality of computers and the service to be relocated to the optimum computer are determined, and the service is relocated to the optimum computer. And an optimum service arrangement means.
このような構成においては、システム内の各計算機で実行されるサービスの負荷(サービス負荷)と、当該各計算機の負荷(ノード負荷)とをもとに、サービス実行に最適な計算機及び当該最適な計算機に再配置するサービスが決定される。これにより、上記各計算機が有するリソース環境が非対称であったとしても、サービスの負荷分散が動的に行える。 In such a configuration, based on the service load (service load) executed on each computer in the system and the load (node load) on each computer, the optimal computer for service execution and the optimal The service to be relocated to the computer is determined. As a result, even if the resource environment of each of the computers is asymmetric, service load distribution can be performed dynamically.
ここで、上記サービス負荷計測手段に、上記各計算機でのサービスの実行に消費されるリソース量をもとに、当該サービスの動的負荷を表す動的サービスチケット値を上記サービス負荷として算出する動的サービスチケット値算出手段を持たせると共に、上記ノード負荷計測手段に、上記サービス負荷計測手段によって算出された上記各計算機で実行されているサービスの動的サービスチケット値をもとに、上記各計算機のノード負荷を表す総サービスチケット値を算出する総サービスチケット値算出手段と、この総サービスチケット値算出手段によって算出された上記各計算機の総サービスチケット値、及び予め設定されている上記各計算機の処理能力を表す静的ノードチケット値をもとに、上記各計算機でそれぞれ新たに使用可能なチケット値を動的ノードチケット値として算出する動的ノードチケット値算出手段とを持たせ、更に上記サービス最適配置手段には選択手段を持たせ、上記動的ノードチケット値が一定値以下になる可能性のある計算機で実行中のサービスの中から上記最適計算機に再配置されるサービスが上記選択手段によって選択される構成とすると良い。この場合、最適な負荷分散が可能となる。 Here, the service load measuring means calculates the dynamic service ticket value representing the dynamic load of the service as the service load based on the amount of resources consumed for executing the service on each computer. And each node load measuring means based on the dynamic service ticket value of the service being executed by each computer calculated by the service load measuring means. A total service ticket value calculating means for calculating a total service ticket value representing the node load of the computer, a total service ticket value of each of the computers calculated by the total service ticket value calculating means, and a preset value of each of the computers Based on the static node ticket value that represents the processing capacity, each of the above computers can use a new ticket. A dynamic node ticket value calculating means for calculating a dynamic node ticket value as a dynamic node ticket value, and a selection means for the service optimal arrangement means so that the dynamic node ticket value can be equal to or less than a predetermined value. It is preferable that a service to be relocated to the optimal computer is selected by the selection means from among the services being executed on a compatible computer. In this case, optimal load distribution is possible.
また、最適計算機が、上記各計算機の動的ノードチケット値をもとに上記サービス最適配置手段によって検索される構成とするならば、より最適な負荷分散が可能となる。 Further, if the optimum computer is configured to be searched by the service optimum arrangement unit based on the dynamic node ticket value of each computer, more optimal load distribution is possible.
更に、上記各計算機の動的ノードチケット値と、上記選択されたサービスを上記各計算機で実行するのに必要であると予め予測されているリソース量を表す静的サービスチケット値及び当該計算機で実行されている当該選択されたサービスの上記動的サービスチケット値の大きい方の値とをもとに、動的ノードチケット値が当該大きい方の値を超える計算機が上記最適計算機として検索される構成とするならば、より一層最適な負荷分散が可能となる。 Furthermore, the dynamic node ticket value of each computer, the static service ticket value that represents the resource amount that is predicted in advance to be executed by each computer, and the computer that executes the selected service. A computer whose dynamic node ticket value exceeds the larger value is searched as the optimum computer based on the larger value of the selected dynamic service ticket value of the selected service. If so, even more optimal load distribution becomes possible.
また、予め定められた並列実行型サービスを、上記複数の計算機のうちの少なくとも2つの計算機で並行して実行させる並列実行型サービス実行手段を追加すると共に、上記サービス最適配置手段に最適サービス数算出手段及びサービス数調整手段を持たせ、上記最適サービス数算出手段では、上記システム内で並行して実行される並列実行型サービスの最適な実行数を表す最適サービス数が、上記各計算機における当該並列実行型サービスの動的サービスチケット値、及び当該並列実行型サービスを上記各計算機上で実行するのに必要であると予め予測されているリソース量を表す静的サービスチケット値をもとに算出され、上記サービス数調整手段では、上記最適サービス数算出手段によって算出された最適サービス数とその時点において上記システム内で実際に実行されている上記並列実行型サービスの実行数である現サービス数との大小関係に応じて、上記並列実行型サービス実行手段によって実際に実行させられる並列実行型サービスの実行数が調整される構成とすると良い。このようにすると、上記計算機システムがクラスタシステムであって、上記各計算機が有するリソース環境が非対称であったとしても、当該システムで並行して実行される並列実行型サービスの実行数を最適な数に調整できる。 In addition, parallel execution type service execution means for executing a predetermined parallel execution type service in parallel on at least two of the plurality of computers is added, and the optimum number of services is calculated in the optimum service arrangement means. Means for adjusting the number of services, and in the optimum service number calculation means, the optimum service number representing the optimum execution number of the parallel execution type service executed in parallel in the system It is calculated based on the dynamic service ticket value of the execution type service and the static service ticket value that represents the resource amount that is predicted in advance to be executed on each computer. In the service number adjusting means, the optimum service number calculated by the optimum service number calculating means and the current time Execution of a parallel execution type service that is actually executed by the parallel execution type service execution means in accordance with the magnitude relationship with the current service number that is the number of executions of the parallel execution type service that is actually executed in the system. It is preferable that the number is adjusted. In this way, even if the computer system is a cluster system and the resource environment of each computer is asymmetric, the optimal number of parallel execution services executed in parallel on the system is determined. Can be adjusted.
本発明によれば、システム内の各計算機で実行されるサービスの負荷と、当該各計算機の負荷とをもとに、サービス実行に最適な計算機及び当該最適な計算機に再配置するサービスが決定されることから、当該各計算機が有するリソース環境が非対称であったとしても、サービスの負荷分散が動的に行える According to the present invention, on the basis of the load of services executed on each computer in the system and the load on each computer, the optimal computer for service execution and the service to be relocated to the optimal computer are determined. Therefore, even if the resource environment of each computer is asymmetric, service load distribution can be performed dynamically.
以下、本発明の一実施形態につき図面を参照して説明する。図1は本発明の一実施形態に係る高可用性クラスタシステム(HAクラスタシステム)の構成を示すブロック図である。図1のクラスタシステムは、4台の計算機(サーバ計算機)10-1〜10-4から構成されている。計算機10-1〜10-4は、当該計算機10-1〜10-4間の通信に用いられるネットワーク(内部ネットワーク)20によって相互接続されている。図1では、計算機10-1〜10-4とクライアント端末との間の通信に用いられるネットワーク(外部ネットワーク)は省略されている。クライアント端末からのサービスの実行要求は、この外部ネットワークを介して図1のクラスタシステムに送信される。クラスタシステム内の計算機10-i(i=1〜4)は、クライアント端末からの要求で指定されたサービスを実行し、その実行結果を示す応答を外部ネットワークを介して要求元のクライアント端末に返す。なお、計算機10-1〜10-4間の通信と、計算機10-1〜10-4とクライアント端末との間の通信とが、同一のネットワークを介して行われる構成であっても構わない。但し、ネットワークにおける通信トラフィックの増大を招く。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a high availability cluster system (HA cluster system) according to an embodiment of the present invention. The cluster system shown in FIG. 1 includes four computers (server computers) 10-1 to 10-4. The computers 10-1 to 10-4 are interconnected by a network (internal network) 20 used for communication between the computers 10-1 to 10-4. In FIG. 1, a network (external network) used for communication between the computers 10-1 to 10-4 and the client terminal is omitted. A service execution request from the client terminal is transmitted to the cluster system of FIG. 1 via this external network. The computers 10-i (i = 1 to 4) in the cluster system execute the service specified by the request from the client terminal, and return a response indicating the execution result to the requesting client terminal via the external network. . The communication between the computers 10-1 to 10-4 and the communication between the computers 10-1 to 10-4 and the client terminal may be performed via the same network. However, it increases communication traffic in the network.
計算機10-1〜10-4では、オペレーティングシステム(以下、OSと称する)11-1〜11-4が動作する。また、計算機10-1〜10-4によって構成されるクラスタシステムでは、クラスタ制御機構12が動作する。クラスタ制御機構12は、計算機10-1〜10-4にそれぞれ設けられたクラスタ制御部(図示せず)が相互に通信を行いながら同期して一体となって動作することにより実現されるバーチャルマシンである。このため、クラスタ制御機構12は、計算機10-1〜10-4にまたがって存在していると考えることができる。クラスタ制御部は、サービスの負荷分散を含むクラスタ制御用のプログラム(クラスタソフトウェア)を計算機10-iが読み取り実行することにより実現される。このクラスタ制御用のプログラムは、計算機10-iで読み取り可能な記憶媒体(フロッピー(登録商標)ディスクに代表される磁気ディスク、CD−ROM、DVDに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等)に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード(頒布)されても構わない。クラスタ制御機構12は、各計算機10-1〜10-4上のクラスタ制御部が相互に通信を行いながら同期して動作することにより、計算機の障害を迅速に検出することができる。
In the computers 10-1 to 10-4, operating systems (hereinafter referred to as OSs) 11-1 to 11-4 operate. In the cluster system constituted by the computers 10-1 to 10-4, the
クラスタ制御機構12は、サービス最適配置機構121とサービス制御機構122とを含む。サービス最適配置機構121は、計算機10-1〜10-4にそれぞれ設けられたサービス最適配置部(図示せず)が相互に通信を行いながら同期して一体となって動作することにより実現される。サービス最適配置機構121は、サービスを実行中の計算機の障害発生時、或いはサービスの負荷状況の変化時に、当該サービスを実行するのに最適な計算機を決定する機能を有する。サービス最適配置機構121はまた、決定された最適な計算機にサービスを再配置する機能を有する。サービス最適配置機構121は更に、後述する並列実行型サービス実行部13によって並行して実行される同種のサービス(並列実行型サービスPSVC)の実行数を最適な数に調整する機能を有する。
The
サービス制御機構122は、計算機10-1〜10-4にそれぞれ設けられたサービス制御部(図示せず)が相互に通信を行いながら同期して一体となって動作することにより実現される。サービス制御機構122は、サービス最適配置機構121の制御のもとで、当該サービス最適配置機構121によって決定された計算機にサービスをスイッチオーバする機能を有する。
The
図1のクラスタシステムではまた、クラスタ制御機構12によって管理される並列実行型サービス実行部13が動作する。並列実行型サービス実行部13は、クラスタ制御機構12と同様に計算機10-1〜10-4によって実現され、当該計算機10-1〜10-4にまたがって存在する。並列実行型サービス実行部13は、サービスPSVCを計算機10-1〜10-4のうちの複数の計算機(ノード)上で並行して実行する機能を有する。この並列実行型サービス実行部13によって並行して実行可能なタイプのサービスPSVCを並列実行型サービスと呼ぶ。ここで、並列実行型サービス実行部13によって並行して実行される並列実行型サービスPSVCの実行数、つまりサービス数(=ノード数)は、後述するサービスチケット値をもとにクラスタ制御機構12内のサービス最適配置機構121によって決定される。図1では、並列実行型サービスPSVCの実行数(サービス数)が2の場合が示されている。ここではサービスPSVCの実行に関し、計算機10-3及び10-4が稼動状態にあり、計算機10-1及び10-2が待機状態にある。つまり、図1では、並列実行型サービスPSVCが、並列実行型サービス実行部13によって2つの計算機10-3及び10-4上で並行して実行されている。
In the cluster system of FIG. 1, a parallel execution type
並列実行型サービスPSVC(を実現するアプリケーション)には、静的サービスチケット値SSTPSVCと呼ぶパラメータ値が予め設定されている。この静的サービスチケット値SSTPSVCは、並列実行型サービスPSVCを計算機10-i上で実行するのに必要であると予め予測されているリソース量(つまり、サービスPSVCの静的な負荷)を表す。一方、並列実行型サービス実行部13には、システム内で最低限並列実行させておくべき並列実行型サービスPSVCの実行数(以下、最小サービス数Nminと称する)がユーザの入力操作によって予め設定される。最小サービス数Nminは、システム内で並列実行型サービスPSVCを最低限並行して実行する計算機の数(ノード数)をも表す。
A parameter value called a static service ticket value SST PSVC is set in advance in the parallel execution service PSVC (an application that realizes the service). This static service ticket value SST PSVC represents a resource amount that is predicted in advance to be necessary for executing the parallel execution type service PSVC on the computer 10-i (that is, a static load of the service PSVC). . On the other hand, the parallel execution type
並列実行型サービス実行部13は、計算機10-1〜10-4上で動作可能なサービス負荷モニタ131-1〜131-4を含む。サービス負荷モニタ131-i(i=1〜4)は、計算機10-iが並列実行型サービスPSVCの実行状態にある場合だけ動作して、当該計算機10-iでのサービスPSVCの実行状態におけるリソースの消費量を計測する。サービス負荷モニタ131-iは、計測された現在のリソースの消費量に基づいて計算機10-iでの並列実行型サービスPSVCの実行に必要なリソース量を予測して、当該サービスPSVCの実行に必要なリソース量(つまり、サービスPSVCの動的な負荷)を表す動的サービスチケット値DSTPSVCiを求める。サービス負荷モニタ131-iは、動的サービスチケット値DSTPSVCiをクラスタ制御機構12に通知する。
The parallel execution type
計算機10-1〜10-4では、HA型サービスSVC1を実行するHA型サービス実行部141-1〜141-4と、HA型サービスSVC2を実行するHA型サービス実行部142-1〜142-4とが動作可能である。HA型サービス実行部141-1〜141-4,142-1〜142-4は、クラスタ制御機構12によって管理される。
In the computers 10-1 to 10-4, the HA type service execution units 141-1 to 141-4 that execute the HA type service SVC1 and the HA type service execution units 142-1 to 142-4 that execute the HA type service SVC2 are used. Are operable. The HA type service execution units 141-1 to 141-4 and 142-1 to 142-4 are managed by the
HA型サービスは、クラスタ制御機構12の制御によってフェイルオーバされるサービス(アプリケーション)であり、同一時間帯では、計算機10-1〜10-4のうちのいずれか1つの計算機のみで実行が可能なタイプのサービスである。図1では、HA型サービスSVC1の実行に関し、計算機10-1(内のHA型サービス実行部141-1)のみが稼動状態にあり、他の計算機10-2〜10-4(内のHA型サービス実行部141-2〜141-4)は待機状態にある。また、図1では、HA型サービスSVC2の実行に関し、計算機10-2(内のHA型サービス実行部142-2)のみが稼動状態にあり、他の計算機10-1,10-3,10-4(内のHA型サービス実行部142-1,142-3,142-4)は待機状態にある。
The HA type service is a service (application) that is failed over by the control of the
HA型サービスSVC1,SVC2(を実現する各アプリケーション)には、静的サービスチケット値SSTSVC1,SSTSVC2が予め設定されている。静的サービスチケット値SSTSVC1,SSTSVC2は、HA型サービスSVC1,SVC2を計算機10-i内のHA型サービス実行部141-iが実行するのに必要なリソース量を表すパラメータ値である。 Static service ticket values SST SVC1 and SST SVC2 are set in advance in the HA type services SVC1 and SVC2 (each application that realizes them). The static service ticket values SST SVC1 and SST SVC2 are parameter values representing the amount of resources necessary for the HA type service execution unit 141-i in the computer 10-i to execute the HA type services SVC1 and SVC2.
HA型サービス実行部141-1〜141-4,142-1〜142-4は、それぞれサービス負荷モニタ151-1〜151-4,152-1〜152-4を含む。サービス負荷モニタ151-i,152-i(i=1〜4)は、計算機10-i内のHA型サービス実行部141-i,142-iがHA型サービスSVC1,SVC2の実行状態にある場合だけ動作して、当該計算機10-iでのサービスSVC1,SVC2の実行状態におけるリソースの消費量を計測する。サービス負荷モニタ151-i,152-iは、計測された現在のリソースの消費量に基づいて計算機10-iでのサービスSVC1,SVC2の実行に必要なリソース量を予測して、当該サービスSVC1,SVC2の実行に必要なリソース量(つまり、サービスSVC1,SVC2の動的な負荷)を表す動的サービスチケット値DSTSVC1i,DSTSVC2iを求める。サービス負荷モニタ151-i,152-iは、動的サービスチケット値DSTSVC1i,DSTSVC2iをクラスタ制御機構12に通知する。
The HA type service execution units 141-1 to 141-4 and 142-1 to 142-4 include service load monitors 151-1 to 151-4 and 152-1 to 152-4, respectively. The service load monitors 151-i and 152-i (i = 1 to 4) indicate that the HA type service execution units 141-i and 142-i in the computer 10-i are in the execution state of the HA type services SVC1 and SVC2. Only the resource consumption in the execution state of the services SVC1 and SVC2 in the computer 10-i is measured. The service load monitors 151-i and 152-i predict the resource amount necessary for the execution of the services SVC1 and SVC2 in the computer 10-i based on the measured current resource consumption, and the service SVC1, The dynamic service ticket values DST SVC1i and DST SVC2i representing the amount of resources necessary for executing the SVC 2 (that is, the dynamic load of the services SVC 1 and SVC 2) are obtained. The service load monitors 151-i and 152-i notify the
計算機10-1〜10-4では、それぞれノード負荷モニタ16-1〜16-4が動作する。計算機10-1〜10-4には、当該計算機(ノード)の処理能力(リソース量)を表す静的ノードチケット値SNT1〜SNT4が予め設定されている。本実施形態では、計算機10-1〜10-4が非対称なリソース環境を持っている場合を想定しており、したがって静的ノードチケット値SNT1〜SNT4はそれぞれ異なる。ノード負荷モニタ16-1〜16-4は、計算機10-1〜10-4上で実行されている全てのサービスのチケット値の総和(以下、総サービスチケット値と称する)TST1〜TST4と静的ノードチケット値SNT1〜SNT4とから動的ノードチケット値DNT1〜DNT4を予め定められた検査時期が到来する毎に計算する。動的ノードチケット値DNT1〜DNT4は、計算機10-1〜10-4で新たに使用可能なリソース量を表すチケット値である。ノード負荷モニタ16-1〜16-4は、動的ノードチケット値DNT1〜DNT4をクラスタ制御機構12に通知する。
In the computers 10-1 to 10-4, node load monitors 16-1 to 16-4 operate. The computer 10-1 to 10-4, a static node ticket value SNT 1 ~SNT 4 representing a processing capability of the computer (node) (resource amount) is set in advance. In the present embodiment, it is assumed that the computer 10-1 to 10-4 has an asymmetric resource environment, thus static nodes ticket value SNT 1 ~SNT 4 are different. Node load monitor 16-1 to 16-4, the sum of the ticket value of all services that are running on the computer 10-1 to 10-4 (hereinafter, referred to as total service ticket value) TST 1 ~TST 4 The dynamic node ticket values DNT 1 to DNT 4 are calculated from the static node ticket values SNT 1 to SNT 4 every time a predetermined inspection time comes. The dynamic node ticket values DNT 1 to DNT 4 are ticket values representing resource amounts that can be newly used in the computers 10-1 to 10-4. Node load monitor 16-1 to 16-4 notifies the dynamic node ticket value DNT 1 ~DNT 4 to the
次に、図1のクラスタシステムの動作について説明する。
サービス負荷モニタ131-i(i=1〜4)は、並列実行型サービス実行部13によって計算機10-i上で並列実行型サービスPSVCが実行されている場合に、予め定められた検査時期が到来する毎に、例えば定期的に動作する。そしてサービス負荷モニタ131-iは、計算機10-iでのサービスPSVCの実行状態におけるリソースの消費量を計測する。サービス負荷モニタ131-iは、計測された現在のリソースの消費量に基づいて計算機10-iでの並列実行型サービスPSVCの実行に必要なリソース量の予測値を表す動的サービスチケット値DSTPSVCiを計算する。この動的サービスチケット値DSTPSVCiの計算には、3つの予測関数f(x),g(y),h(z)が用いられる。予測関数f(x),g(y),h(z)は、それぞれ計算機10-iにおける3種類のリソースの消費量、例えばCPU使用量x、メモリ使用量y、応答時間z(クライアント端末からのサービスsの実行要求を受け取ってから実行結果の応答を返すまでの時間)の関数である。ここでは、動的サービスチケット値DSTPSVCiは、次式
DSTsi=f(x)+g(y)+h(z) (1)
に従って算出される。但し、s=PSVCである。サービス負荷モニタ131-iによって算出された動的サービスチケット値DSTPSVCiはクラスタ制御機構12に通知される。
Next, the operation of the cluster system of FIG. 1 will be described.
The service load monitor 131-i (i = 1 to 4) receives a predetermined inspection time when the parallel execution service PSVC is executed on the computer 10-i by the parallel execution
Is calculated according to However, s = PSVC. The dynamic service ticket value DST PSVCi calculated by the service load monitor 131-i is notified to the
同様に、サービス負荷モニタ151-i,152-iは、計算機10-i(内のHA型サービス実行部141-i,142-i)がHA型サービスSVC1,SVC2の実行状態にある場合、予め定められた検査時期が到来する毎に、例えば定期的に動作する。そしてサービス負荷モニタ151-i,152-iは、計算機10-iでのサービスSVC1,SVC2の実行に必要なリソース量の予測値を表す動的サービスチケット値DSTSVC1i,DSTSVC2iを、現在のリソースの消費量に基づいて上記(1)式に従って算出する。ここでは、s=SVC1,s=SVC2である。サービス負荷モニタ151-i,152-iによって算出された動的サービスチケット値DSTSVC1i,DSTSVC2iはクラスタ制御機構12に通知される。
Similarly, the service load monitors 151-i and 152-i are preliminarily stored when the computer 10-i (within the HA-type service execution units 141-i and 142-i) is in the execution state of the HA-type services SVC1 and SVC2. Each time a predetermined inspection time arrives, for example, it operates periodically. The service load monitors 151-i and 152-i use the dynamic service ticket values DST SVC1i and DST SVC2i representing the predicted values of the resource amounts necessary for executing the services SVC1 and SVC2 in the computer 10-i as current resources. It is calculated according to the above formula (1) based on the consumption amount. Here, s = SVC1 and s = SVC2. The dynamic service ticket values DST SVC1i and DST SVC2i calculated by the service load monitors 151-i and 152-i are notified to the
次に、ノード負荷モニタ16-i(i=1〜4)による動的ノードチケット値DNTiの算出動作について、図2のフローチャートを参照して説明する。
ノード負荷モニタ16-iは、計算機10-i上で実行中の全てのサービスsについて、サービスチケット値STsiを、次式
サービスチケット値STsi
=MAX(静的サービスチケット値SSTs,動的サービスチケット値DSTsi)
(2)
に従って求める(ステップS1,S2)。サービスチケット値STsiは、計算機10-i上で実行中のサービスsで消費されているリソース量または消費されると予測されるリソース量のうちの最大値、つまりサービスsで消費される可能性のある最大のリソース量を表す。
Next, the calculation operation of the dynamic node ticket value DNT i by the node load monitor 16-i (i = 1 to 4) will be described with reference to the flowchart of FIG.
The node load monitor 16-i obtains the service ticket value ST si for all the services s being executed on the computer 10-i by the following formula: service ticket value ST si
= MAX (static service ticket value SST s , dynamic service ticket value DST si )
(2)
(Steps S1, S2). The service ticket value ST si is the maximum value of the amount of resources consumed or predicted to be consumed by the service s being executed on the computer 10-i, that is, the possibility of being consumed by the service s. Represents the maximum resource amount with
ノード負荷モニタ16-iは、計算機10-i上で実行中の全てのサービスsのサービスチケット値STsiを求めると、当該サービスチケット値STsiの総和、つまり総サービスチケット値TSTiを、次式
総サービスチケット値TSTi
=Σ(計算機10-iで実行中のサービスのサービスチケット値STsi) (3)
に従って算出する(ステップS3)。総サービスチケット値TSTiは、計算機10-i上で実行中のサービス全体で消費される可能性のある最大のリソース量、つまり計算機10-i全体の負荷(ノード負荷)を表す。
Node load monitor 16-i, when obtaining the service ticket value ST si for all services s running on the computer 10-i, the sum of the service ticket value ST si, that is, the total service ticket value TST i, following Formula Total service ticket value TST i
= Σ (service ticket value ST si of the service being executed on the computer 10-i) (3)
(Step S3). The total service ticket value TST i represents the maximum resource amount that can be consumed by the entire service being executed on the computer 10-i, that is, the load (node load) of the entire computer 10-i.
ノード負荷モニタ16-iは、計算機10-i上で実行中の全てのサービスsの総サービスチケット値TSTiを求めると、その時点において計算機10-iで新たに使用可能なリソース量を表すチケット値、つまり動的ノードチケット値DNTiを、次式
動的ノードチケット値DNTi
=(静的ノードチケット値SNTi)−(総サービスチケット値TSTi) (4)
に従って算出する(ステップS4)。
このように、動的ノードチケット値DNTiは、静的ノードチケット値SNTiから総サービスチケット値TSTiを差し引くことにより算出される。ノード負荷モニタ16-iは、以上の処理(ステップS1〜S4)を、定期的に(つまり一定時間間隔で)繰り返す。
When the node load monitor 16-i obtains the total service ticket value TST i of all services s being executed on the computer 10-i, the ticket representing the amount of resources that can be newly used by the computer 10-i at that time. Value, that is, the dynamic node ticket value DNT i is expressed by the following formula: dynamic node ticket value DNT i
= (Static node ticket value SNT i ) − (Total service ticket value TST i ) (4)
(Step S4).
Thus, the dynamic node ticket value DNT i is calculated by subtracting the total service ticket value TST i from the static node ticket value SNT i . The node load monitor 16-i repeats the above processing (steps S1 to S4) periodically (that is, at regular time intervals).
次に、並列実行型サービス実行部13により並行して実行される並列実行型サービスPSVCの実行数(サービス数)を、クラスタ制御機構12内のサービス最適配置機構121が最適な数に調整する動作について、図3のフローチャートを参照して説明する。
Next, the operation for adjusting the number of executions (number of services) of the parallel execution type service PSVC executed in parallel by the parallel execution type
サービス最適配置機構121は、システム内の各計算機(ノード)10-iにおける並列実行型サービスPSVCの動的サービスチケット値DSTPSVCi、当該サービスPSVCの静的サービスチケット値SSTPSVC及び当該サービスPSVCの最小サービス数Nminをもとに、現在システムで必要な並列実行型サービスPSVCの実行数(以下、最適サービス数と称する)OSNを次のように算出する(ステップS11)。まずサービス最適配置機構121は、各計算機10-1〜10-4での動的サービスチケット値DSTPSVC1〜DSTPSVC4の総和、つまり総動的サービスチケット値TDSTを、次式
総動的サービスチケット値TDST
=Σ(計算機10-iの動的サービスチケット値DSTPSVCi) (5)
に従って算出する(ステップS11a)。
The service
= Σ (Dynamic service ticket value DST PSVCi of computer 10-i) (5)
(Step S11a).
次にサービス最適配置機構121は、総動的サービスチケット値TDSTと並列実行型サービスPSVCの静的サービスチケット値SSTPSVCとをもとに、現在必要な並列実行型サービスPSVCの実行数を、仮サービス数TSNとして次式
仮サービス数TSN
=(総動的サービスチケット値TDST/静的サービスチケット値SSTPSVC)
の整数部(余りが0の場合)
または
仮サービス数TSN
=(総動的サービスチケット値TDST/静的サービスチケット値SSTPSVC)
の整数部+1(余りが0でない場合) (6)
に従って算出する(ステップS11b)。
Next, the service
= (Total dynamic service ticket value TDST / Static service ticket value SST PSVC )
Integer part (when remainder is 0)
Or provisional service number TSN
= (Total dynamic service ticket value TDST / Static service ticket value SST PSVC )
Integer part of +1 (when remainder is not 0) (6)
(Step S11b).
次にサービス最適配置機構121は、仮サービス数TSNと予め設定されている最小サービス数Nminとをもとに、最適サービス数OSNを次式
最適サービス数OSN
=MAX(仮サービス数TSN,最小サービス数Nmin) (7)
に従って算出する(ステップS11c)。
Next, the service
= MAX (temporary service number TSN, minimum service number N min ) (7)
(Step S11c).
次にサービス最適配置機構121は、最適サービス数OSNを、現在並列実行型サービス実行部13によって実行されている並列実行型サービスPSVCの実行数(以下、現サービス数と称する)CSNと比較し、最適サービス数OSNが現サービス数CSNより多いならば(ステップS12)、システム内の計算機10-1〜10-4の中に新たに並列実行型サービスPSVCを実行可能な計算機10-j(jは1〜4のいずれか)があるか否かを判定する(ステップS13)。もし、サービスPSVCを実行可能な計算機10-jがあるならば、サービス最適配置機構121は、当該計算機10-jのうちの、静的ノードチケット値SNTjと動的ノードチケット値DNTjとの差が最も大きい計算機を選択し、その選択された計算機で当該サービスPSVCを実行させる(ステップS14)。その後、サービス最適配置機構121はステップS11に戻る。つまりサービス最適配置機構121は、サービスPSVCを実行可能な計算機10-jの中から、当該サービスPSVCを実行させる計算機を静的ノードチケット値SNTjと動的ノードチケット値DNTjとの差が大きい順に選択して、その選択された計算機で当該サービスPSVCを開始させる動作を、最適サービス数OSNが現サービス数CSNに達するようになるまで繰り返す。一方、サービスPSVCを実行可能な計算機10-jがないならば(ステップS13)、サービス最適配置機構121は一定時間待った(スリープした)後に(ステップS15)、ステップS11に戻る。
Next, the service
また、サービス最適配置機構121は、最適サービス数OSNが現サービス数CSNより少ないならば(ステップS16)、システム内の計算機10-1〜10-4の中に並列実行型サービスPSVCを停止可能な計算機10-j(jは1〜4のいずれか)があるか否かを判定する(ステップS17)。もし、サービスPSVCを停止可能な計算機10-jがあるならば、サービス最適配置機構121は、当該計算機10-jのうちの、静的ノードチケット値SNTjと動的ノードチケット値DNTjとの差が最も小さい計算機を選択し、その選択された計算機における当該サービスPSVCの実行を停止させる(ステップS18)。その後、サービス最適配置機構121はステップS11に戻る。つまりサービス最適配置機構121は、サービスPSVCを停止可能な計算機10-jの中から、当該サービスPSVCを停止させる計算機を静的ノードチケット値SNTjと動的ノードチケット値DNTjとの差が小さい順に選択して、その選択された計算機における当該サービスPSVCの実行を停止させる動作を、最適サービス数OSNが現サービス数CSNに達するようになるまで繰り返す。一方、サービスPSVCを停止可能な計算機10-jがないならば(ステップS17)、サービス最適配置機構121は一定時間待った後に(ステップS15)、ステップS11に戻る。また、最適サービス数OSNが現サービス数CSNに一致しているならば、サービス最適配置機構121は一定時間待った後に(ステップS15)、ステップS11に戻る。
Further, if the optimum service number OSN is smaller than the current service number CSN (step S16), the service
このように本実施形態においては、図1のクラスタシステム(計算機システム)内で並行して実行される並列実行型サービスPSVの最適な実行数を表す最適サービス数OSNが、当該システム内の各計算機10-iにおける並列実行型サービスPSVCの動的サービスチケット値DSTPSVCi、当該サービスPSVCの静的サービスチケット値SSTPSVC及び当該サービスPSVCの最小サービス数Nminをもとに算出される。そして、算出された最適サービス数OSNと現サービス数CSN(その時点においてシステム内で実際に実行されている並列実行型サービスPSVの実行数)との大小関係に応じて、並列実行型サービスの実行数が調整される。これにより、本実施形態のように、図1の計算機システムがクラスタシステムであり、且つ当該システム内の計算機10-1乃至10-4が有するリソース環境が非対称であったとしても、当該システムで並行して実行される並列実行型サービスの実行数を最適な数に調整できる。 As described above, in this embodiment, the optimum service number OSN representing the optimum number of executions of the parallel execution service PSV executed in parallel in the cluster system (computer system) of FIG. It is calculated based on the dynamic service ticket value DST PSVCi of the parallel execution type service PSVC in 10-i, the static service ticket value SST PSVC of the service PSVC, and the minimum service number N min of the service PSVC. Then, the execution of the parallel execution service is performed according to the magnitude relationship between the calculated optimum service number OSN and the current service number CSN (the number of executions of the parallel execution service PSV actually executed in the system at that time). The number is adjusted. Thus, as in the present embodiment, even if the computer system of FIG. 1 is a cluster system and the resource environments of the computers 10-1 to 10-4 in the system are asymmetric, It is possible to adjust the number of parallel-execution services that are executed in an optimal number.
なお、図1のシステムでは、実行可能な並列実行型サービスの種類がPSVCの1種類である場合を想定している。しかし、実行可能な並列実行型サービスを複数種類とすることも可能である。この場合、並列実行型サービスの種類毎に、最適サービス数OSNを求めれば良い。 In the system of FIG. 1, it is assumed that the type of executable parallel execution service is one type of PSVC. However, a plurality of types of parallel execution services that can be executed are also possible. In this case, the optimum service number OSN may be obtained for each type of parallel execution service.
次に、サービス最適配置機構121によるHA型サービスまたは並列実行型サービスの最適配置について、図4のフローチャートを参照して説明する。
サービス最適配置機構121は、計算機10-1〜10-4の中から、(動的ノードチケット値DNTj−Δ)の値が一定値以下となる計算機10-j、つまり動的ノードチケット値DNTjが一定値以下となる可能性のある計算機10-jを検索する(ステップS21)。ここで、Δは、動的ノードチケット値DNTjが一定値以下でなくても、当該DNTjが一定値以下となる可能性のある計算機10-jを検索するためのマージンである。なお、本実施形態では、上記一定値は零である。また、動的ノードチケット値DNTjが一定値未満となる可能性のある計算機10-jを検索する構成としても構わない。
Next, the optimum arrangement of the HA type service or the parallel execution type service by the service
The service
もし、動的ノードチケット値DNTjが一定値以下となる可能性のある計算機10-jがないならば(ステップS21)、サービス最適配置機構121は、一定時間を待った(スリープした)後(ステップS22)、ステップS21に戻る。なお、計算機障害等のイベントが発生した場合には、サービス最適配置機構121は、一定時間を待つことなくステップS21に戻る。
If there is no computer 10-j that may cause the dynamic node ticket value DNT j to become a certain value or less (step S21), the service
これに対し、動的ノードチケット値DNTjが一定値以下となる可能性のある計算機10-jがあるならば(ステップS21)、サービス最適配置機構121は、当該計算機10-jの中から、最も優先度の低いサービスsを実行中の計算機と当該サービスsとを選択する(ステップS23)。次にサービス最適配置機構121は、選択されたサービスsをシステム内の他の計算機にスイッチオーバ(引き継ぎ)可能であるか否かを判定する(ステップS24)。本実施形態では、スイッチオーバ可能なサービスは予め定められている。つまり本実施形態では、サービス毎に、スイッチオーバ可能か否かが予め設定されている。この場合、ステップS24の判定は、選択されたサービスsが、スイッチオーバ可能なサービスとして予め定められているかを判定することによって実現される。なお、サービスsの実行状況、例えばサービスsがクリティカル領域の処理中であるかによって、スイッチオーバ可能であるかが判定される構成とすることも可能である。クリティカル領域の処理とは、例えば、応答性能が要求される処理、或いは一貫性(原始性)が要求される処理で、後戻り処理にコストがかかる処理である。具体例としては、トランザクション処理及びデータベース更新処理が挙げられる。
On the other hand, if there is a computer 10-j in which the dynamic node ticket value DNT j may be equal to or less than a certain value (step S21), the service
まず、選択されたサービスsが他の計算機にスイッチオーバ可能であるものとする。また、サービスsを実行可能な計算機が計算機10-k(kは1〜4のいずれか)であるものとする。この場合、サービス最適配置機構121は、選択されたサービスsを実行可能な計算機11-kの中から、当該サービスsをスイッチオーバするのに最適な計算機を次のように検索する(ステップS25)。即ちサービス最適配置機構121は、サービスsを実行可能な各計算機10-kの動的ノードチケット値DNTkと、静的サービスチケット値SSTs及び動的サービスチケット値DSTskのうちの大きい方の値、つまりMAX(SSTs,DSTsk)とをもとに、DNTkがMAX(SSTs,DSTsk)を超える計算機10-kを検索する。もし、複数の計算機10-kが検索された場合、サービス最適配置マシン121は、当該複数の計算機10-kの1つをサービスsをスイッチオーバするのに最適な計算機として選択する。ここでは、動的ノードチケット値DNTkが最も大きい計算機10-kを最適な計算機として選択すると良い。また、MAX(SSTs,DSTsk)を超えるDNTkのうち、MAX(SSTs,DSTsk)に最も近いDNTkを持つ計算機10-kが選択される構成としても良い。
First, it is assumed that the selected service s can be switched over to another computer. Further, it is assumed that the computer capable of executing the service s is the computer 10-k (k is any one of 1 to 4). In this case, the service
サービス最適配置機構121は、選択されたサービスsをスイッチオーバするのに最適な計算機が検索できた場合(ステップS26)、当該最適な計算機で当該サービスsの実行を開始させ(ステップS27)、しかる後にステップS21に戻る。これに対し、最適な計算機が検索できなかった場合(ステップS26)、サービス最適配置機構121は、動的ノードチケット値DNTjが一定値以下となる可能性のある計算機10-jの中から、次に優先度の低いサービスsを実行中の計算機と当該サービスsとを選択する(ステップS28)。その後、サービス最適配置機構121はステップS24に戻る。
When the optimal computer for switching over the selected service s can be searched (step S26), the service
一方、選択されたサービスsが他の計算機にスイッチオーバ可能でないならば(ステップS24)、サービス最適配置機構121は、当該選択されたサービスsが停止可能であるか否かを判定する(ステップS29)。本実施形態では、停止可能なサービスは予め定められている。つまり本実施形態では、サービス毎に、停止可能か否かが予め設定されている。なお、サービスsの実行状況によって、停止可能であるかが判定される構成とすることも可能である。
On the other hand, if the selected service s cannot be switched over to another computer (step S24), the service
もし、選択されたサービスsが停止可能であるならば(ステップS29)、サービス最適配置機構121は、当該選択されたサービスsを停止させ(ステップS30)、しかる後にステップS21に戻る。これに対し、選択されたサービスsが停止可能でないならば(ステップS29)、サービス最適配置機構121は、動的ノードチケット値DNTjが一定値以下となる可能性のある計算機10-jの中から、次に優先度の低いサービスsを実行中の計算機と当該サービスsとを選択する(ステップS31)。その後、サービス最適配置機構121はステップS24に戻る。
If the selected service s can be stopped (step S29), the service
このように本実施形態においては、動的ノードチケット値DNTjが一定値以下となる可能性のある計算機10-jで実行中のサービスsを、動的ノードチケット値DNTkが、静的サービスチケット値SSTs及び動的サービスチケット値DSTskのうちの大きい方の値を超えている計算機10-kで実行させることができる。これにより最適な負荷分散が実現される。即ち本実施形態においては、計算機の障害、或いは大幅なサービス負荷またはノード負荷の変化が発生した場合、サービス最適配置マシン121によりサービスの再配置が自動的に行われる。
As described above, in the present embodiment, the service s being executed by the computer 10-j in which the dynamic node ticket value DNT j may be equal to or less than a certain value is represented by the dynamic node ticket value DNT k being a static service. It can be executed by the computer 10-k that exceeds the larger one of the ticket value SST s and the dynamic service ticket value DST sk . Thereby, optimal load distribution is realized. That is, in the present embodiment, when a computer failure or a significant service load or node load change occurs, the service relocation is automatically performed by the service
なお、図4のフローチャートには、ステップS24,S25,S26及びS28のループを繰り返しても、選択されたサービスをスイッチオーバするのに最適な計算機がなかった場合については示されていない。同様に、図4には、ステップS24,S29及びS31のループを繰り返しても、停止可能なサービスがなかった場合については示されていない。このような場合、予め定められたユーザの設定に応じて、例えば他のサービスのスイッチオーバ/停止を行うようにしても良い。また、最適な計算機がなかった場合には、最適な計算機が出現するまで、選択されたサービスを停止するか、或いは何もしないようにしても良い。 Note that the flowchart of FIG. 4 does not show a case where there is no optimal computer for switching over the selected service even if the loop of steps S24, S25, S26 and S28 is repeated. Similarly, FIG. 4 does not show a case where there is no service that can be stopped even if the loop of steps S24, S29, and S31 is repeated. In such a case, for example, other services may be switched over / stopped according to a predetermined user setting. When there is no optimal computer, the selected service may be stopped or nothing may be performed until the optimal computer appears.
上記実施形態においては、HA型サービスだけでなく並列実行型サービスが実行可能なクラスタシステムを想定している。しかし本発明はクラスタシステムに限らず、HA型サービスは実行できないものの並列実行型サービスが実行可能な計算機システム(負荷分散システム)にも適用可能である。 The above embodiment assumes a cluster system that can execute not only HA type services but also parallel execution type services. However, the present invention is not limited to a cluster system, and can be applied to a computer system (load distribution system) capable of executing a parallel execution type service although it cannot execute an HA type service.
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment.
10-1〜10-4…計算機、11-1〜11-4…OS(オペレーティングシステム)、12…クラスタ制御機構、13…並列実行型サービス実行部、16-1〜16-4…ノード負荷モニタ(ノード負荷計測手段)、20…ネットワーク、121…サービス最適配置機構、122…サービス制御機構、131-1〜131-4,151-1〜151-4,152-1〜152-4…サービス負荷モニタ(サービス負荷計測手段)。 10-1 to 10-4 ... computers, 11-1 to 11-4 ... OS (operating system), 12 ... cluster control mechanism, 13 ... parallel execution type service execution unit, 16-1 to 16-4 ... node load monitor (Node load measuring means), 20 ... network, 121 ... service optimum arrangement mechanism, 122 ... service control mechanism, 131-1 to 131-4, 151-1 to 151-4, 152-1 to 152-4 ... service load Monitor (service load measuring means).
Claims (5)
予め定められた並列実行型サービスを、前記複数の計算機のうちの少なくとも2つの計算機で並行して実行させる並列実行型サービス実行手段と、
前記複数の計算機の各々で実行されるサービスの負荷をサービス負荷として計測するサービス負荷計測手段であって、前記複数の計算機の各々でのサービスの実行に消費されるリソース量をもとに、当該サービスの動的負荷を表す動的サービスチケット値を前記サービス負荷として算出する動的サービスチケット値算出手段を含むサービス負荷計測手段と、
前記複数の計算機の各々の負荷をノード負荷として計測するノード負荷計測手段であって、前記動的サービスチケット値算出手段によって算出された前記複数の計算機の各々で実行されているサービスの動的サービスチケット値をもとに、前記複数の計算機の各々の前記ノード負荷を表す総サービスチケット値を算出する総サービスチケット値算出手段と、前記総サービスチケット値算出手段によって算出された前記複数の計算機の各々の総サービスチケット値、及び予め設定されている前記複数の計算機の各々の処理能力を表す静的ノードチケット値をもとに、前記複数の計算機の各々で新たに使用可能なチケット値を動的ノードチケット値として算出する動的ノードチケット値算出手段とを含むノード負荷計測手段と、
前記サービス負荷計測手段及び前記ノード負荷計測手段の計測結果をもとに、前記複数の計算機のうちサービス実行に最適な計算機及び当該最適な計算機に再配置するサービスを決定して、当該最適な計算機に当該サービスを再配置するサービス最適配置手段であって、前記動的ノードチケット値が一定値以下になる可能性のある計算機で実行中のサービスの中から前記最適な計算機に再配置されるサービスを選択する選択手段と、前記選択手段によって選択されたサービスの再配置対象となる前記最適な計算機を、前記複数の計算機の各々の動的ノードチケット値に基づいて検索する検索手段と、前記システム内で並行して実行される前記並列実行型サービスの最適な実行数を表す最適サービス数を、前記複数の計算機の各々における当該並列実行型サービスの動的サービスチケット値の総和である総動的サービスチケット値、及び当該並列実行型サービスを前記複数の計算機の各々で実行するのに必要であると予め予測されているリソース量を表す静的サービスチケット値に基づき、前記総動的サービスチケット値を前記静的サービスチケット値で除することにより算出する最適サービス数算出手段と、前記最適サービス数算出手段によって算出された最適サービス数とその時点において前記システム内で実際に実行されている前記並列実行型サービスの実行数である現サービス数との大小関係に応じて、前記並列実行型サービス実行手段によって実際に実行させられる前記並列実行型サービスの実行数を調整するサービス数調整手段とを含むサービス最適配置手段と
を具備することを特徴とする計算機システム。 In a computer system equipped with multiple computers and capable of executing multiple types of services,
Parallel execution service execution means for executing a predetermined parallel execution service in parallel on at least two of the plurality of computers;
Service load measuring means for measuring a service load executed on each of the plurality of computers as a service load, based on the amount of resources consumed for executing the service on each of the plurality of computers, Service load measuring means including dynamic service ticket value calculating means for calculating a dynamic service ticket value representing a dynamic load of a service as the service load;
Node load measuring means for measuring the load of each of the plurality of computers as a node load, the dynamic service of the service being executed by each of the plurality of computers calculated by the dynamic service ticket value calculating means Based on the ticket value, total service ticket value calculating means for calculating the total service ticket value representing the node load of each of the plurality of computers, and the plurality of computers calculated by the total service ticket value calculating means Based on each total service ticket value and a static node ticket value representing the processing capability of each of the plurality of computers set in advance, a ticket value newly usable in each of the plurality of computers is moved. A node load measuring means including a dynamic node ticket value calculating means for calculating a dynamic node ticket value;
Based on the measurement results of the service load measuring means and the node load measuring means, the optimum computer for service execution and the service to be relocated to the optimum computer are determined from the plurality of computers, and the optimum computer is determined. Service relocation means for relocating the service to a service that is relocated to the optimal computer from among the services being executed on a computer whose dynamic node ticket value may be a predetermined value or less A selection means for selecting the system , a search means for searching for the optimum computer to be relocated of the service selected by the selection means based on a dynamic node ticket value of each of the plurality of computers, and the system The optimal number of services representing the optimal number of executions of the parallel execution type service executed in parallel in each of the plurality of computers. Column execution type total dynamic service ticket value is the sum of the dynamic service ticket value of the service, and the amount of resources is pre predicted to be required to perform the parallel execution type service in each of the plurality of computers Based on a static service ticket value that represents the optimal dynamic service ticket value calculated by dividing the total dynamic service ticket value by the static service ticket value, and an optimal service calculated by the optimal service number calculation unit The parallel execution type service execution unit actually executes the service according to the magnitude relation between the number and the current service number that is the number of executions of the parallel execution type service actually executed in the system at that time. Service optimal arrangement means including service number adjustment means for adjusting the number of executions of parallel execution type services ;
A computer system comprising:
予め定められた並列実行型サービスを、前記複数の計算機のうちの少なくとも2つの計算機で並行して実行するステップと、
前記複数の計算機の各々でのサービスの実行に消費されるリソース量をもとに、当該サービスの動的負荷を表す動的サービスチケット値を算出するステップと、
前記複数の計算機の各々で実行されているサービスの前記動的サービスチケット値をもとに、前記複数の計算機の各々の負荷を表す総サービスチケット値を算出するステップと、
前記複数の計算機の各々の前記総サービスチケット値、及び予め設定されている前記複数の計算機の各々の処理能力を表す静的ノードチケット値をもとに、前記複数の計算機の各々で新たに使用可能なチケット値である動的ノードチケット値を算出するステップと、
前記動的ノードチケット値が一定値以下になる可能性のある計算機で実行中のサービスの中から、前記複数の計算機のうちサービス実行に最適な計算機に再配置されるべきサービスを選択するステップと、
前記選択されたサービスが再配置されるべき前記最適な計算機を、前記複数の計算機の各々の動的ノードチケット値に基づいて検索するステップと、
前記選択されたサービスを前記検索された最適な計算機に再配置するステップと、
前記並列実行型サービスの最適な実行数を表す最適サービス数を、前記複数の計算機の各々における当該並列実行型サービスの動的サービスチケット値の総和である総動的サービスチケット値、及び当該並列実行型サービスを前記複数の計算機の各々で実行するのに必要であると予め予測されているリソース量を表す静的サービスチケット値に基づき、前記総動的サービスチケット値を前記静的サービスチケット値で除することにより算出するステップと、
前記算出された最適サービス数とその時点において前記システム内で実際に実行されている前記並列実行型サービスの実行数である現サービス数との大小関係に応じて、実際に実行される前記並列実行型サービスの実行数を調整するステップと
を具備することを特徴とするサービス負荷分散方法。 A load balancing method for dynamically performing service load balancing in a computer system having a plurality of computers and capable of executing a plurality of types of services,
Executing a predetermined parallel execution type service in parallel on at least two of the plurality of computers;
Calculating a dynamic service ticket value representing a dynamic load of the service based on an amount of resources consumed for execution of the service in each of the plurality of computers;
Calculating a total service ticket value representing a load of each of the plurality of computers based on the dynamic service ticket value of a service being executed on each of the plurality of computers;
Newly used in each of the plurality of computers based on the total service ticket value of each of the plurality of computers and a static node ticket value representing the processing capability of each of the plurality of computers set in advance. Calculating a dynamic node ticket value, which is a possible ticket value;
Selecting a service to be relocated to a computer that is most suitable for service execution among the plurality of computers from among the services being executed by a computer that may have a dynamic node ticket value that is less than a certain value; ,
Searching for the optimal computer to which the selected service is to be relocated based on the dynamic node ticket value of each of the plurality of computers;
Relocating the selected service to the retrieved optimal computer;
A total dynamic service ticket value that is the sum of dynamic service ticket values of the parallel execution service in each of the plurality of computers, and an optimal number of services representing the optimal execution number of the parallel execution service, and the parallel execution Based on a static service ticket value that represents a resource amount that is predicted in advance to be executed on each of the plurality of computers , the total dynamic service ticket value is represented by the static service ticket value. A step of calculating by dividing ,
The parallel execution actually executed according to the magnitude relationship between the calculated optimum service number and the current service number that is the number of executions of the parallel execution type service actually executed in the system at that time Adjusting the number of executions of type services
A service load distribution method comprising :
前記計算機に、
前記複数の計算機の各々で実行されているサービスの前記動的サービスチケット値を前記サービス負荷計測手段から取得するステップと、
前記複数の計算機の各々の前記動的ノードチケット値を前記サービス負荷計測手段から取得するステップと、
前記取得された動的ノードチケット値が一定値以下になる可能性のある計算機で実行中のサービスの中から、前記複数の計算機のうちサービス実行に最適な計算機に再配置されるべきサービスを選択するステップと、
前記選択されたサービスが再配置されるべき前記最適な計算機を、前記取得された前記複数の計算機の各々の動的ノードチケット値に基づいて検索するステップと、
前記選択されたサービスを前記検索された最適な計算機に再配置するステップと、
前記並列実行型サービスの最適な実行数を表す最適サービス数を、前記複数の計算機の各々における当該並列実行型サービスの前記取得された動的サービスチケット値の総和である総動的サービスチケット値、及び当該並列実行型サービスを前記複数の計算機の各々で実行するのに必要であると予め予測されているリソース量を表す静的サービスチケット値に基づき、前記総動的サービスチケット値を前記静的サービスチケット値で除することにより算出するステップと、
前記算出された最適サービス数とその時点において前記システム内で実際に実行されている前記並列実行型サービスの実行数である現サービス数との大小関係に応じて、実際に実行される前記並列実行型サービスの実行数を調整するステップと
を実行させるためのプログラム。 A parallel execution type service execution means for executing a predetermined parallel execution type service in parallel on at least two of the plurality of computers, and a service load executed on each of the plurality of computers Service load measuring means for measuring as a load, wherein a dynamic service ticket value representing a dynamic load of the service is obtained based on an amount of resources consumed for executing the service in each of the plurality of computers. Service load measuring means including dynamic service ticket value calculating means for calculating as a load, and node load measuring means for measuring each load of the plurality of computers as a node load, wherein the dynamic service ticket value calculating means Based on the calculated dynamic service ticket value of the service being executed on each of the plurality of computers, A total service ticket value calculating means for calculating a total service ticket value representing the node load of each of the plurality of computers; a total service ticket value of each of the plurality of computers calculated by the total service ticket value calculating means; And based on the static node ticket value representing the processing capability of each of the plurality of computers set in advance, a ticket value that can be newly used in each of the plurality of computers is calculated as a dynamic node ticket value. A plurality of computers including a node load measuring unit including a dynamic node ticket value calculating unit , applied to a computer system capable of executing a plurality of types of services, and being executed by each of the plurality of computers A program that enables dynamic load balancing of
In the calculator,
Obtaining the dynamic service ticket value of the service being executed in each of the plurality of computers from the service load measuring means;
Obtaining the dynamic node ticket value of each of the plurality of computers from the service load measuring means;
Select a service to be relocated to a computer that is most suitable for service execution among the plurality of computers from among the services that are being executed by the computers that may have the acquired dynamic node ticket value below a certain value. And steps to
Searching for the optimal computer on which the selected service is to be relocated based on the obtained dynamic node ticket value of each of the plurality of computers;
Relocating the selected service to the retrieved optimal computer ;
A total dynamic service ticket value that is a sum of the acquired dynamic service ticket values of the parallel execution service in each of the plurality of computers, and an optimal service number representing an optimal execution number of the parallel execution service; And based on a static service ticket value representing a resource amount that is predicted in advance to be executed by each of the plurality of computers, the total dynamic service ticket value is set to the static service ticket value. Calculating by dividing by the service ticket value;
The parallel execution actually executed according to the magnitude relation between the calculated optimum service number and the current service number that is the number of executions of the parallel execution type service actually executed in the system at that time For executing the step of adjusting the number of executions of the type service .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004248949A JP3910982B2 (en) | 2003-08-29 | 2004-08-27 | Computer system, service load balancing method and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003306616 | 2003-08-29 | ||
JP2004248949A JP3910982B2 (en) | 2003-08-29 | 2004-08-27 | Computer system, service load balancing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005100381A JP2005100381A (en) | 2005-04-14 |
JP3910982B2 true JP3910982B2 (en) | 2007-04-25 |
Family
ID=34467377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004248949A Expired - Lifetime JP3910982B2 (en) | 2003-08-29 | 2004-08-27 | Computer system, service load balancing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3910982B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5304689B2 (en) * | 2010-03-11 | 2013-10-02 | Kddi株式会社 | Monitoring system and method for identifying affected services |
CN103530189B (en) * | 2013-09-29 | 2018-01-19 | 中国科学院信息工程研究所 | It is a kind of towards the automatic telescopic of stream data and the method and device of migration |
KR102103523B1 (en) * | 2015-10-26 | 2020-04-22 | 에스케이텔레콤 주식회사 | Apparatus and method for relocating resource node |
-
2004
- 2004-08-27 JP JP2004248949A patent/JP3910982B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2005100381A (en) | 2005-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee et al. | Improving job scheduling algorithms in a grid environment | |
EP3161632B1 (en) | Integrated global resource allocation and load balancing | |
US9921866B2 (en) | CPU overprovisioning and cloud compute workload scheduling mechanism | |
CN100498718C (en) | System and method for operating load balancers for multiple instance applications | |
Ardagna et al. | SLA based resource allocation policies in autonomic environments | |
US7028302B2 (en) | System and method for automatically tuning a multiprocessor computer system | |
US9152472B2 (en) | Load distribution system | |
JP3872343B2 (en) | Workload management in a computer environment | |
JP2005251184A (en) | Device, method and program for managing resource in multi-node computer system | |
Wang et al. | Workload balancing and adaptive resource management for the swift storage system on cloud | |
US10326832B2 (en) | Combining application and data tiers on different platforms to create workload distribution recommendations | |
US20070233838A1 (en) | Method for workload management of plural servers | |
Iranpour et al. | A distributed load balancing and admission control algorithm based on Fuzzy type-2 and Game theory for large-scale SaaS cloud architectures | |
US7099814B2 (en) | I/O velocity projection for bridge attached channel | |
KR20170029263A (en) | Apparatus and method for load balancing | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
Calheiros et al. | Building an automated and self‐configurable emulation testbed for grid applications | |
Garbacki et al. | Efficient resource virtualization and sharing strategies for heterogeneous grid environments | |
CN1316363C (en) | Computer system and method for service load distributing | |
JP3910982B2 (en) | Computer system, service load balancing method and program | |
Stojkovic et al. | EcoFaaS: Rethinking the Design of Serverless Environments for Energy Efficiency | |
US7386616B1 (en) | System and method for providing load balanced processing | |
JPWO2012008019A1 (en) | Information processing apparatus, information processing apparatus control method, and program | |
Shwe et al. | Avoiding Performance Impacts by Re-Replication Workload Shifting in HDFS Based Cloud Storage | |
Zheng et al. | Energy-efficient statistical live virtual machine placement for big data information systems in cloud computing environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061024 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070123 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070125 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3910982 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100202 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110202 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120202 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130202 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140202 Year of fee payment: 7 |