JP2013210683A - Autoscaling method, autoscaling program and computer node - Google Patents
Autoscaling method, autoscaling program and computer node Download PDFInfo
- Publication number
- JP2013210683A JP2013210683A JP2012078501A JP2012078501A JP2013210683A JP 2013210683 A JP2013210683 A JP 2013210683A JP 2012078501 A JP2012078501 A JP 2012078501A JP 2012078501 A JP2012078501 A JP 2012078501A JP 2013210683 A JP2013210683 A JP 2013210683A
- Authority
- JP
- Japan
- Prior art keywords
- task
- processing
- computer node
- node
- executed
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は,システムが備えるコンピュータノード数を制御するオートスケーリング方法,オートスケーリングプログラムおよびコンピュータノードに関するものである。 The present invention relates to an autoscaling method, an autoscaling program, and a computer node for controlling the number of computer nodes provided in a system.
従来のオンプレミスのシステムでは,システムが持つリソース量が固定であったので,そのシステムが持つリソース量を超えて,クライアントからの処理要求を受け付けることができなかった。 In a conventional on-premises system, the amount of resources that the system has is fixed, so it is impossible to accept processing requests from clients that exceed the amount of resources that the system has.
これに対して,近年発展しているクラウドコンピューティングを利用したシステムでは,システムが持つリソース量を動的に変更可能である。そのため,クライアントから要求される処理を実行することによってシステムのリソース消費量がシステムが持つリソース量を超えてしまうような場合でも,システムのリソースを動的に増やすことで,クライアントからの要求を受け付け可能となる。 On the other hand, in a system using cloud computing, which has been developing in recent years, the amount of resources that the system has can be changed dynamically. Therefore, even if the system resource consumption exceeds the amount of resources that the system has by executing the processing requested by the client, requests from the client can be accepted by dynamically increasing the system resources. It becomes possible.
このようなシステムのリソースを増減する技術として,システムにおける仮想化されたコンピュータノードのリソース量を増減するスケールアップ・スケールダウンと呼ばれる技術がある。しかし,仮想化されたコンピュータノードのリソースの増加には,物理マシンのリソース量の限界がある。 As a technique for increasing / decreasing the resources of such a system, there is a technique called scale up / scale down for increasing / decreasing the amount of resources of a virtual computer node in the system. However, the increase in resources of virtualized computer nodes has a limit on the amount of physical machine resources.
システムのリソースを増減する別の技術として,システムにおけるコンピュータノードの数を増減するスケールアウト・スケールシュリンクと呼ばれる技術がある。この技術では,システムのリソース量の増加に,物理マシンのリソース量の限界がない。システムのリソース消費率に応じて自動でスケールアウト・スケールシュリンクを行う,オートスケーリングと呼ばれる技術もある。 As another technique for increasing / decreasing system resources, there is a technique called scale-out / scale shrink that increases / decreases the number of computer nodes in the system. With this technology, there is no limit to the amount of physical machine resources in increasing the amount of system resources. There is also a technology called autoscaling that automatically scales out and shrinks according to the resource consumption rate of the system.
なお,分散バッチシステムにおいて,新たなバッチ処理が要求された際に,ある処理サーバで実行中のバッチ処理を他のサーバに移行し,処理可能となったサーバで新しいバッチ処理を実行することで,バッチ処理のデッドラインを管理する技術が知られている。 In a distributed batch system, when a new batch process is requested, the batch process being executed on one processing server is transferred to another server, and the new batch process is executed on the server that can be processed. Technology for managing deadlines in batch processing is known.
しかし,上述のように,システムのリソース消費率に応じてオートスケーリングを行うと,スケールアウトによって無駄なコンピュータノードが増設されたり,誤ったスケールシュリンクによってシステムが実行中の処理が強制的に中断される場合がある。クラウドコンピューティングにおいて,コンピュータノードの数に応じた従量課金が行われる場合には,無駄なスケールアウトによって無駄な課金が発生してしまう場合がある。 However, as described above, if autoscaling is performed according to the resource consumption rate of the system, unnecessary computer nodes are added due to scale-out, or processing that is being executed by the system is forcibly interrupted due to erroneous scale shrinkage. There is a case. In cloud computing, when pay-per-use according to the number of computer nodes is performed, useless charge may occur due to useless scale-out.
一側面では,本発明は,課金の効率がよいシステムの運用が可能となる技術を提供することを目的とする。 In one aspect, an object of the present invention is to provide a technique that enables operation of a system with high charging efficiency.
1態様では,オートスケーリング方法では,要求された処理を複数のコンピュータノードに分散して実行するシステムにおいて,該システムで実行するタスクの管理を行うコンピュータノードが,納期が指定された処理要求を受け付けた際に,記憶部に記憶されたシステムが備えるコンピュータノードが実行するタスクを管理する管理情報を参照して,該処理要求のタスクをコンピュータノードに割り当てるシミュレーションを実行し,割り当てのシミュレーションにより,処理要求のタスクを納期内に処理終了可能なコンピュータノードがなく,さらに他のコンピュータノードでも納期内に処理終了可能なタスクを移動しても処理要求のタスクを納期内に処理終了可能なコンピュータノードを用意できないと判定された場合に,システムにコンピュータノードを増設する処理を実行する。 In one aspect, in the autoscaling method, in a system that executes the requested processing distributed to a plurality of computer nodes, the computer node that manages the tasks executed in the system accepts the processing request for which the delivery date is specified. The management information stored in the storage unit that manages the tasks executed by the computer nodes included in the system is referred to, a simulation for allocating the task of the processing request to the computer nodes is executed, and the simulation is performed by the allocation simulation. There is no computer node that can finish processing the requested task within the due date, and there is a computer node that can finish processing the requested task within the due date even if another computer node moves the task that can finish within the due date. If it is determined that the system cannot be prepared, It executes a process of adding a computer node.
1態様では,課金の効率がよいシステムの運用が可能となる。 In one aspect, it is possible to operate a system with good charging efficiency.
以下,本実施の形態について,図を用いて説明する。 Hereinafter, the present embodiment will be described with reference to the drawings.
図1は,オンプレミスで実現されるシステムの課題を説明する図である。 FIG. 1 is a diagram illustrating a problem of a system realized on-premises.
図1に示す例において,タスクを示す図形の縦の長さは該タスクのリソース消費量を示し,横の長さは該タスクの処理時間を示す。また,図1に示す例において,グラフの縦軸はシステムのリソース消費量を示し,横軸は時間の経過を示す。t0 〜t3 は,等間隔の時刻を示す。 In the example shown in FIG. 1, the vertical length of the figure indicating the task indicates the resource consumption amount of the task, and the horizontal length indicates the processing time of the task. In the example shown in FIG. 1, the vertical axis of the graph indicates the system resource consumption, and the horizontal axis indicates the passage of time. t 0 to t 3 indicate equally spaced times.
オンプレミスのシステムでは,システムが持つリソースの量は固定となる。すなわち,あらかじめシステムが持つリソース量を超えたリソース消費量の処理を行うことはできない。図1に示す例において,システムリソースのラインは,システムが持つリソースの量を示す。 In an on-premises system, the amount of resources that the system has is fixed. In other words, it is not possible to perform processing of resource consumption exceeding the resource amount of the system in advance. In the example shown in FIG. 1, the system resource line indicates the amount of resources the system has.
例えば,図1(A)において,システムに対して,タスク#1〜タスク#4の処理要求が,ほぼ同時刻t0 にあったものとする。このとき,システムは,処理要求を受け付けた順,ここではタスク#1,タスク#2,タスク#3,タスク#4の順に処理を開始する。しかし,図1(A)に示すように,タスク#3の処理を開始したところで,システムのリソース消費量がシステムが持つリソース量に達してタスク#4の処理を開始できない状態となり,タスク#4の処理要求を受け付けられなくなる。
For example, in FIG. 1 (A), the relative system, the processing requirements of the
図1(B)に示す例は,スケジューリングを行うシステムの例である。スケジューリングを行うシステムでは,処理要求を受け付けた時点でタスクの処理時間を見積もり,処理要求が発生した時点でリソースに空きがなくても,実行中の他のタスクの終了後に受け付けた処理要求のタスクを実行するように,タスクのスケジューリングを行う。 The example shown in FIG. 1B is an example of a system that performs scheduling. In a scheduling system, the processing time of a task is estimated when a processing request is received, and even if there is no available resource when the processing request occurs, the task of the processing request that is received after the termination of other tasks that are running Schedule the task to execute
例えば,最後に受け付けるタスク#4の処理の納期が,時刻t3 であるものとする。図1(B)に示すように,最も処理終了時刻が早いタスク#3の処理終了時刻がt1 であるので,タスク#4をタスク#3の後にスケジュールすれば,タスク#4の処理終了時刻はt3 となり,納期に間に合う。この場合,タスク#4の処理要求は,システムで受け付け可能となる。
For example, it is assumed that the delivery date of the process of
ところが,図1(C)に示す例では,最も処理終了時刻が早いタスク#2の後にタスク#4をスケジュールすると,タスク#4の処理終了時刻はt3 を超えてしまい,納期に間に合わない。この場合,タスク#4の処理要求は,システムで受け付けられない。オンプレミスのシステムでは,スケジューリングを行っても,処理要求を受け付けできない場合がある。
However, in the example shown in FIG. 1 (C), the most processing end time to schedule
このようなオンプレミスの技術の対極に存在するのが,クラウドコンピューティングの技術である。クラウドコンピューティングによって実現されるシステムのリソース量は,可変となる。 The opposite of such on-premises technology is cloud computing technology. The amount of system resources realized by cloud computing is variable.
クラウドコンピューティングでは,システムが備える各コンピュータノードが,例えば仮想マシン(VM:Virtual Machine )で実現される。なお,以下では,システムが備えるコンピュータノードを,単にノードとも呼ぶ。 In cloud computing, each computer node included in the system is realized by, for example, a virtual machine (VM). In the following, a computer node provided in the system is also simply referred to as a node.
クラウドコンピューティングにおいて,システムのリソース量を変更する技術として,例えば,スケールアップ・スケールダウンの技術がある。スケールアップは,ノードのリソース量を増加させる技術である。また,スケールダウンは,ノードのリソース量を減少させる技術である。スケールアップの技術を利用すれば,例えば,現状のリソースでは新たな処理要求のタスクを実行しても納期に間に合わないような場合でも,ノードのリソース量を増加させることで,新たな処理要求のタスクを納期に間に合うように実行できるようになる。 In cloud computing, as a technology for changing the amount of system resources, for example, there is a scale-up / scale-down technology. Scale-up is a technology that increases the resource amount of a node. Scale-down is a technology that reduces the amount of resources in a node. If scale-up technology is used, for example, even if a task with a new processing request is not executed in time for the current resource, increasing the resource amount of the node will increase the amount of new processing request. Tasks can be executed in time for delivery.
しかし,スケールアップ可能なリソースは,仮想マシンであるノードを実現する物理マシンのリソースが上限となるため,ノードのスケールアップには限界がある。また,通常は1つの物理マシン上に複数の仮想マシンのノードが配置されており,物理マシンのリソースを各ノードに配分しきって余剰がない場合には,他のノードの性能を下げることなく特定のノードの性能を上げることは不可能となる。例えば,マルチテナントの環境では,1つの物理マシン上で複数のテナントの仮想マシンを動作することになり,あるテナントの仮想マシンのリソース量を増やすために,他のテナントのリソース量を減らすといったことは,簡単にはできない。よって,スケールアップの技術を用いても,要求された処理のタスクをすべて納期を保証して実行できるわけではない。 However, the resources that can be scaled up are limited by the resources of the physical machine that implements the node that is the virtual machine, and there is a limit to scaling up the node. Also, usually when multiple virtual machine nodes are placed on a single physical machine and physical machine resources are allocated to each node and there is no surplus, it can be specified without reducing the performance of other nodes. It is impossible to improve the performance of the node. For example, in a multi-tenant environment, multiple tenant virtual machines operate on one physical machine, and the resource amount of other tenants is reduced in order to increase the resource amount of a certain tenant's virtual machine. Is not easy. Therefore, even if scale-up technology is used, not all requested processing tasks can be executed with guaranteed delivery times.
クラウドコンピューティングにおいて,システムのリソース量を変更する技術として,スケールアップ・スケールダウンの技術以外に,スケールアウト・スケールシュリンクの技術がある。スケールアウトは,システムにノードを増設する技術である。スケールシュリンクは,システムからノードを撤去する技術である。スケールアウトの技術を用いれば,ほぼ確実に要求された処理のタスクをすべて納期を保証して実行できるようになる。 In cloud computing, there are scale-out and scale-shrink technologies as well as scale-up and scale-down technologies. Scale-out is a technology for adding nodes to the system. Scale shrink is a technology that removes nodes from the system. By using scale-out technology, it is possible to execute almost all required processing tasks with guaranteed delivery times.
ただし,クラウドコンピューティングの世界では,通常はサービス使用料金が従量制となっており,スケールアウトによってシステムが備えるノードの数が増加するにつれて,サービスの使用料金が増えてしまう。 However, in the cloud computing world, service usage fees are usually pay-as-you-go, and service usage fees increase as the number of nodes in a system increases due to scale-out.
図2は,クラウドコンピューティングで実現されるシステムの課題を説明する図である。 FIG. 2 is a diagram for explaining a problem of a system realized by cloud computing.
図2に示す例において,タスクを示す図形の縦の長さは該タスクのリソース消費量を示し,横の長さは該タスクの処理時間を示す。また,図2に示す例において,グラフの縦軸はシステムを構成するノードのリソース消費量の合計を示し,横軸は時間の経過を示す。t0 〜t3 は,等間隔の時刻を示す。図2に示す例において,システムリソースのラインは,システムを構成するノードが持つリソースの量の合計を示す。 In the example shown in FIG. 2, the vertical length of the graphic indicating the task indicates the resource consumption of the task, and the horizontal length indicates the processing time of the task. In the example shown in FIG. 2, the vertical axis of the graph represents the total resource consumption of the nodes constituting the system, and the horizontal axis represents the passage of time. t 0 to t 3 indicate equally spaced times. In the example shown in FIG. 2, the system resource line indicates the total amount of resources possessed by the nodes constituting the system.
図2(A)において,システムは,当初,VM#1〜VM#3の3つのノードを備えているものとする。ここで,システムに対して,タスク#1〜タスク#4の処理要求が,ほぼ同時刻t0 にあったものとする。このとき,システムでは,処理要求を受け付けた順,ここではタスク#1,タスク#2,タスク#3,タスク#4の順に,ノードにタスクが割り当てられ,処理が開始される。しかし,図2(A)に示すように,VM#3のノードにタスク#3の処理を割り当てたところで,システムのすべてのノードのリソース消費量が上限となり,タスク#4の処理を割り当て可能なノードがなくなる。
In FIG. 2A, it is assumed that the system initially includes three
このとき,例えば図2(A)に示すように,システムではスケールアウトが行われ,VM#4のノードがシステムに増設される。図2(A)に示すように,スケールアウトによってVM#4のノードがシステムに増設されることで,要求されたタスク#4の処理が実行可能となる。例えば,クラウドコンピューティングにおいて,仮想マシンやネットワークなどのインフラをサービスとして提供するIaaS(Infrastructure as a Service )ベンダのサービスとして,システムのリソース消費率が所定以上となったときに自動でスケールアウトを行うサービスがある。クラウドコンピューティングにおいて,自動でシステムの拡張/縮小を行う技術は,オートスケーリングとも呼ばれる。
At this time, for example, as shown in FIG. 2A, scale-out is performed in the system, and a node of
ここで,タスク#4の処理の納期が時刻t3 であるものとする。図2(A)に示すように,最も処理終了時刻が早いタスク#3の処理終了時刻がt1 であるので,タスク#4をタスク#3の後にスケジュールすれば,タスク#4の処理終了時刻はt3 となり,納期に間に合う。
Here, it is assumed delivery of processing of the
このように,タスクのスケジューリングを行うことができれば,スケールアウトによりVM#4のノードを増設しなくても,納期に間に合うようにタスク#4の処理を実行することが可能であった。しかし,このような判断は,上述のIaaSのサービスのようにリソース消費を見ただけではできない。上述したように,クラウドコンピューティングでは,ノードが増えるごとに使用料金が増えるため,ノードを増設しなくても納期に間に合うようにタスクの処理を実行できるのであれば,ノードを増設したくないという要望がある。
As described above, if task scheduling can be performed, it is possible to execute the processing of
また,無駄なノードの使用料金を抑えるために,システムで運用されていないと判断されるノードに対するスケールシュリンクが行われ,該ノードがシステムから撤去される。例えば,クラウドコンピューティングにおいて,IaaSベンダのサービスとして,ノードのCPU(Central Processing Unit )使用率が所定以下となったときに,該ノードではタスクの処理が行われておらずOSなどのミドルウェアしか動作していないと判断し,自動でスケールシュリンクを行うサービスがある。 Further, in order to reduce the use fee of the useless node, the scale shrink is performed on the node which is determined not to be operated in the system, and the node is removed from the system. For example, in cloud computing, as a service of an IaaS vendor, when a node's CPU (Central Processing Unit) usage rate falls below a predetermined level, task processing is not performed on the node and only middleware such as an OS operates. There is a service that automatically performs scale shrinkage.
だだし,ノードのリソース消費量が少ないからといって,必ずしも要求されたタスクの処理が行われていないとは限らない。たとえば,図2(B)に示す例において,VM#3のノードでは,タスク#3の処理が終了すると,リソース消費量が極端に減ってしまう。しかし,図2(B)に示す例において,VM#3のノードでは,タスク#3と並列にリソース消費量が少ないタスク#4が実行されている。タスク#3の処理の終了と同時にVM#3のノードに対するスケールシュリンクが行われると,タスク#4の処理が強制終了されてしまう。このように,上述のIaaSベンダのサービスのようにリソース消費を見ただけでスケールシュリンクを判断すると,例えば,図2(B)に示すタスク#4のようにリソース消費量が少ないタスクの処理を実行中であるノードを,誤って撤去してしまう可能性がある。
However, just because the resource consumption of the node is small, the requested task is not necessarily processed. For example, in the example shown in FIG. 2B, in the node of
以下では,このような問題の解決を図った本実施の形態によるオートスケーリングの技術を説明する。 In the following, an autoscaling technique according to this embodiment for solving such a problem will be described.
図3は,本実施の形態によるシステムの構成例を示す図である。 FIG. 3 is a diagram illustrating a configuration example of a system according to the present embodiment.
本実施の形態において,図3に示すシステム100は,クラウドコンピューティングにおいて,IaaS側から提供される仮想マシンのノードから構成されるコンピュータシステムであるものとする。システム100は,クライアント200から要求された処理を,複数のノードで分散して実行する。システム100とクライアント200とは,LAN(Local Area Network)やインターネットなどのネットワーク300で接続されている。システム100は,マスタノード110,スレーブノード120を備える。
In this embodiment, the
マスタノード110は,クライアント200からの処理要求を受け付け,各スレーブノード120に対するタスクの割り当てや,システム100で実行するタスクの管理を行う。なお,本実施の形態によるマスタノード110は,スレーブノード120のスケールアウトやスケールシュリンクなどのオートスケーリングの処理を行う。なお,マスタノード110が,同時にスレーブノード120の1つであってもよい。
The
スレーブノード120は,マスタノード110から割り当てられた処理要求のタスクを実行するコンピュータノードである。スレーブノード120は,複数のタスクの並列処理が可能である。スレーブノード120は,オートスケーリングの処理によって,システム100に増設,またはシステム100から削除される。例えば,図3において,#aのスレーブノード120aと#bのスレーブノード120bがタスクの処理を実行している場合に,それらのスレーブノード120で実行しきれない処理要求があれば,#cのスレーブノード120cがシステム100に増設される。また,たとえば,#cのスレーブノード120cが実行するタスクがなくなれば,#cのスレーブノード120cがシステム100から削除される。
The
クライアント200は,システム100に対して,システム100が提供する処理の実行要求を行う上位アプリケーションを有するコンピュータである。なお,図1に示す例では,クライアント200がシステム100外部の装置となっているが,例えばクライアント200がシステム100内部のノードであってもよい。
The
図4は,本実施の形態による各ノードの機能構成例を示す図である。 FIG. 4 is a diagram illustrating a functional configuration example of each node according to the present embodiment.
マスタノード110は,クライアント通信部111,スケジュール処理部112,スケジュール情報記憶部113,スケールアウト処理部114,スレーブ通信部115,リスケジュール処理部116,スケールシュリンク処理部117を備える。
The
クライアント通信部111は,クライアント200からの処理要求を受け付ける。クライアント通信部111は,受け付けた要求の処理がシステム100内で実行可能なものであれば,スケジュール処理部112に渡す。クライアント通信部111は,受け付けた要求の処理がシステム100内で処理実行不可能なものであれば,その旨をクライアント200に応答する。システム100内で処理実行不可能な処理は,例えばスレーブノード120にないアプリケーションの処理や,1仮想マシンのスレーブノード120では納期までに終了できない大規模な処理などである。大規模な処理を,複数のノードで分散して実行する技術については,本実施の形態による技術の範囲外であるので,ここでは説明を行わない。クライアント通信部111は,スレーブノード120から受け取った処理結果をクライアント200に通知する。
The
スケジュール処理部112は,クライアント通信部111が納期が指定された処理要求を受け付けた際に,スケジュール情報記憶部113に記憶された管理情報を参照して,該処理要求のタスクをスレーブノード120に割り当てるシミュレーションを実行する。
When the
スケジュール情報記憶部113は,システム100が備えるスレーブノード120が実行するタスクを管理する管理情報の記憶部である。スケジュール情報記憶部113に記憶された管理情報には,すべてのスレーブノード120で実行するタスクのスケジュールが記録されている。
The schedule
より具体的には,スケジュール処理部112は,まず,現行の状態で,受け付けた処理要求のタスクを,指定された納期内に処理終了可能なスレーブノード120の検出を行う。ここでは,スケジュール処理部112は,即時に処理実行可能なスレーブノード120だけではなく,他のタスクの処理終了後に処理要求のタスクを実行しても,納期内に処理終了可能なスレーブノード120も検出する。スケジュール処理部112は,ここで検出されたスレーブノード120から,処理要求のタスクを割り当てるスレーブノード120を選択する。なお,ここでは,ロック中のスレーブノード120については,検出の対象外とする。本実施の形態において,ロックは,スレーブノード120を,処理要求のタスクの割り当て対象外に設定することをいう。
More specifically, the
スケジュール処理部112は,現行の状態で処理要求のタスクを納期内に処理終了可能なスレーブノード120がなければ,他のスレーブノード120に移動しても納期内に処理終了可能なタスクを検出する。スケジュール処理部112は,検出されたタスクを移動することで,処理要求のタスクを納期内に処理終了可能なスレーブノード120を用意できるかを判定する。タスクを移動することで処理要求のタスクを納期内に処理終了可能なスレーブノード120を用意できると判定される場合,スケジュール処理部112は,該当タスクを他のスレーブノード120に移動する処理を,スレーブ通信部115を介して実行する。タスクの移動は,例えば該タスクの処理を移動元のスレーブノード120で停止し,移動先のスレーブノード120で再起動させる方法でもよいし,移動元のスレーブノード120における該タスクの実行中のイメージデータを移動先のスレーブノード120に転送する方法でもよい。本実施の形態では,該タスクの処理を移動先のスレーブノード120で再起動させる方法でタスクの移動を行うものとする。スケジュール処理部112は,タスクの移動により空きができたスレーブノード120を,処理要求のタスクを割り当てる対象のスレーブノード120に決定する。
If there is no
スケジュール処理部112は,タスクを移動しても処理要求のタスクを納期内に処理終了可能なスレーブノード120を用意できない場合,ロック中のスレーブノード120があれば,そのロックを解除すれば,処理要求のタスクを納期内に処理終了可能であるかを判定する。ロック解除により,処理要求のタスクを納期内に処理終了可能となると判定される場合には,スケジュール処理部112は,ロック中のスレーブノード120のロックを解除する。スケジュール処理部112は,ロックを解除したスレーブノード120を,処理要求のタスクを割り当てる対象のスレーブノード120に決定する。
If the
スケジュール処理部112は,ここまでの処理で,処理要求のタスクを割り当てる対象のスレーブノード120が見つけられなかった場合,スケールアウトにより,システム100にスレーブノード120を増設すると判断する。
The
スケールアウト処理部114は,スケールアウトによって,システム100にコンピュータノードを増設する処理を行う。より具体的には,スケールアウト処理部114は,IaaS側で用意しているインタフェースを用いて,IaaS側の管理コンピュータにアクセスし,自システム100へのスケールアウトを要求する。
The scale-
スレーブ通信部115は,スレーブノード120との通信を行う。例えば,スレーブ通信部115は,受け付けた処理要求のタスクを割り当てる対象のスレーブノード120に対して,該タスクの処理を依頼する。また,スレーブ通信部115は,スレーブノード120から,依頼したタスクの処理結果を応答として受け付ける。また,スレーブ通信部115は,タスクの移動が行われる際に,移動元のスレーブノード120に対して該当タスクの停止を通知し,移動先のスレーブノード120に対して該当タスクの実行を通知する。
The
リスケジュール処理部116は,例えば定期的に,スケジュール情報記憶部113に記憶された管理情報を参照し,実行するタスクがないスレーブノード120を,スケールシュリンクの対象とする。
For example, the reschedule
また,リスケジュール処理部116は,スケジュール情報記憶部113に記憶された管理情報を参照して,あるスレーブノード120で動作するタスクを,他のスレーブノード120に移動するシミュレーションを実行する。リスケジュール処理部116は,他のスレーブノード120に移動しても納期内に処理終了可能なタスクを検出する。
In addition, the reschedule
リスケジュール処理部116は,検出されたタスクを移動することで,実行するタスクがないスレーブノード120を用意できるかを判定する。タスクを移動することで実行するタスクがないスレーブノード120を用意できると判定される場合,リスケジュール処理部116は,該当タスクを他のスレーブノード120に移動する処理を,スレーブ通信部115を介して実行する。タスクの移動については,上述のスケジュール処理部112の場合と同様である。リスケジュール処理部116は,タスクの移動により実行するタスクがなくなったスレーブノード120を,スケールシュリンクの対象とする。
The reschedule
また,リスケジュール処理部116は,検出されたタスクを移動することで,実行するタスクの数が所定数以下となるスレーブノード120を用意できるかを判定する。タスクの移動により実行するタスクの数が所定数以下となるスレーブノード120を用意できると判定される場合,リスケジュール処理部116は,該当タスクを他のスレーブノード120に移動する処理を,スレーブ通信部115を介して実行する。リスケジュール処理部116は,タスクの移動により実行するタスクの数が所定数以下となるスレーブノード120にロックを設定する。ロック中のスレーブノード120には,原則として新たな処理要求のタスクが割り当てられないので,残ったタスクの処理が終了した後で,スケールシュリンクの対象となる。
In addition, the reschedule
スケールシュリンク処理部117は,スケールシュリンクによって,対象のスレーブノード120をシステム100から削除する処理を行う。より具体的には,スケールシュリンク処理部117は,IaaS側で用意しているインタフェースを用いて,IaaS側の管理コンピュータにアクセスし,対象スレーブノード120のスケールシュリンクを要求する。
The scale
スレーブノード120は,マスタ通信部121,アプリケーション122を備える。図4に示すように,スレーブノード120では,複数種類のアプリケーション122a,b,... を稼働することが可能である。処理要求のタスクが割り当てられた際には,該処理要求に対応するアプリケーション122によって,タスクの処理が実行される。
The
マスタ通信部121は,マスタノード110との通信を行う。例えば,マスタ通信部121は,マスタノード110からタスクの実行要求や停止要求を受け付け,タスクの実行開始または実行停止の処理を行う。また,タスクの処理が終了した場合には,マスタ通信部121は,マスタノード110に処理結果の応答を返す。
The
図5は,本実施の形態によるノードを実現する仮想マシンシステムの例を示す図である。 FIG. 5 is a diagram illustrating an example of a virtual machine system that implements a node according to the present embodiment.
図5に示す仮想マシンシステムは,例えば,1台の物理マシン上で1または複数台の仮想マシンが動作するシステムである。図5に示す仮想マシンシステムの例では,CPU11やメモリ12などの,物理マシンであるコンピュータ10の資源を利用して,マスタノード110やスレーブノード120を含む複数の仮想マシン30が動作している。なお,図5に示す仮想マシンシステムでは,マスタノード110とスレーブノード120とが同じ物理マシンで実現されているが,クラウドコンピューティングの環境では,マスタノード110や,各スレーブノード120が,それぞれ異なる物理マシンで実現されることも多い。
The virtual machine system shown in FIG. 5 is a system in which one or a plurality of virtual machines operate on one physical machine, for example. In the example of the virtual machine system illustrated in FIG. 5, a plurality of
図5に示す仮想マシンシステムにおいて,ハイパーバイザ20は,コンピュータ10を利用した仮想化環境を実現するソフトウェアである。マスタノード110やスレーブノード120を含む仮想マシン30は,ハイパーバイザ20上に構築可能である。
In the virtual machine system shown in FIG. 5, the
図4に示すマスタノード110,スレーブノード120を仮想マシンで実現するコンピュータ10は,例えば,CPU11,主記憶となるメモリ12,記憶装置13,通信装置14,媒体読取・書込装置15,入力装置16,出力装置17等のハードウェアを備える。記憶装置13は,例えばHDD(Hard Disk Drive )等の外部記憶装置や,補助記憶装置などである。媒体読取・書込装置15は,例えばCD−R(Compact Disc Recordable )ドライブやDVD−R(Digital Versatile Disc Recordable )ドライブなどである。入力装置16は,例えばキーボード・マウスなどである。出力装置17は,例えばディスプレイ等の表示装置などである。なお,コンピュータ10のハードウェア構成は,必要に応じて任意の設計が可能である。
The
図4に示すマスタノード110,スレーブノード120および各ノードが備える機能部は,コンピュータ10が備えるCPU11,メモリ12等のハードウェアと,ソフトウェアプログラムとによって実現することが可能である。コンピュータ10が実行可能なプログラムは,例えば,記憶装置13に記憶され,その実行時にメモリ12に読み出され,CPU11により実行される。
The
コンピュータ10は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ10は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータで読み取り可能な記録媒体に記録しておくことができる。
The
以下,本実施の形態によるマスタノード110による処理について,より具体的な例を用いて説明する。
Hereinafter, processing by the
図6〜図9は,本実施の形態のマスタノードにおけるスケジュール処理部による処理要求のタスクの割り当てシミュレーションの例を説明する図である。 FIG. 6 to FIG. 9 are diagrams for explaining an example of processing request task allocation simulation by the schedule processing unit in the master node of this embodiment.
図6(A)は,タスクの表記の例を示す。図6(A)において,塗り潰しされた図形が,タスクの処理を表す。タスクの処理を示す図形の縦の長さは該タスクのリソース消費量を示し,横の長さは該タスクの処理時間を示す。また,図6(A)において,白抜き図形の右端は,該タスクの納期を示す。納期は,クライアント200に指定されたタスクの処理を終了する期限である。以下の説明において,タスクについてはすべて図6(A)に示す通りの表記が行われる。
FIG. 6A shows an example of task notation. In FIG. 6A, a filled graphic represents task processing. The vertical length of the graphic indicating the task processing indicates the resource consumption of the task, and the horizontal length indicates the processing time of the task. In FIG. 6A, the right end of the white figure indicates the delivery date of the task. The delivery date is a time limit for ending the processing of the task specified in the
図6(B)は,クライアント200から時刻t0 に処理要求を受け付けた時点における,システム100が備える各スレーブノード120a,bが実行するタスクのスケジュールを示す。図6(B)に示すように,この時点でシステム100が備えるスレーブノード120は,#aのスレーブノード120aと#bのスレーブノード120bの2つである。なお,スケジュール情報記憶部113には,例えば図6(B)のグラフに示すようなシステム100が備えるスレーブノード120が実行するタスクのスケジュールをデータ化した管理情報が記憶されている。図6(B)において,グラフの縦軸はスレーブノードのリソース消費量を示し,横軸は時間の経過を示す。t-1〜t3 は,等間隔の時刻を示す。
FIG. 6 (B) at the time of accepting the processing request from the
図6(C)は,時刻t0 の時点でクライアント200から受け付けた処理要求のタスクXを示す図形である。図6(C)に示すように,処理要求のタスクXの処理については,他のタスクと区別がつくように,ハッチングで表されている。図6(C)に示すように,処理要求のタスクXについては,時刻t3 の納期が指定されている。
FIG. 6C is a diagram showing the task X of the processing request received from the
なお,タスクの処理時間やリソース消費量の推定については,過去の実績から求める方法や理論的に求める方法などで多数の周知技術が存在するので,ここでは詳細な説明を省略する。タスクの処理時間の推定は,タスクが対象とする処理によって異なる。例えば画像の処理の処理時間については,画像ファイルサイズの影響を受ける。データベースを用いた処理では,データベースへのアクセス回数の影響を受ける。また,タスクのリソース消費量については,例えば,タスクの処理を行うアプリケーション122ごとに値が決まっている場合にはその値を用いることができる。スレーブノード120にリソース消費量を問い合わせるようにしてもよい。その他,様々な周知技術の利用が可能である。
Note that there are many known techniques for estimating task processing time and resource consumption, such as a method obtained from past results or a method obtained theoretically, and a detailed description thereof will be omitted here. The estimation of task processing time differs depending on the processing targeted by the task. For example, the processing time of image processing is affected by the image file size. Processing using a database is affected by the number of accesses to the database. For example, when the resource consumption amount of a task is determined for each application 122 that performs task processing, the value can be used. The
マスタノード110において,スケジュール処理部112は,処理要求を受け付けると,まず,現状で,処理要求のタスクをスレーブノード120に割り当て可能であるかを検証する。
In the
図7(A)は,処理要求のタスクXを,時刻t0 に処理実行を開始するように,#aのスレーブノード120aに対して割り当てした検証の例を示す。また,図7(B)は,処理要求のタスクXを,時刻t0 に処理実行を開始するように,#bのスレーブノード120bに対して割り当てした検証の例を示す。いずれも,ノードのリソース消費量が,ノードのリソース限界量を超えてしまうため,検証結果はNGとなる。
FIG. 7 (A) is a task X of processing requests, to initiate the process performed at the time t 0, an example of a verification that assigned to the
図7(C)は,最も早く処理が終了する,#aのスレーブノード120aが実行するタスクA#1の処理終了後に,処理要求のタスクXをスケジュールした検証の例を示す。この場合,処理要求のタスクXの処理終了時刻が納期t3 を超えてしまうため,検証結果はNGとなる。
FIG. 7C shows an example of verification in which the task X of the processing request is scheduled after the processing of the
次に,スケジュール処理部112は,他のタスクで再起動しても納期までに処理終了可能なタスクを移動する検証を行う。図8(A)に示すように,#bのスレーブノード120bが実行するタスクB#3は,リソース消費量の面でも#aのスレーブノード120aに移動可能であり,#aのスレーブノード120aで再起動しても納期までに処理終了可能である。図8(B)は,図8(A)に示すタスクの移動によってリソース消費量が減った#bのスレーブノード120bに対して,処理要求のタスクXを割り当てした検証の例を示す。タスクの移動を行っても,ノードのリソース消費量が,ノードのリソース限界量を超えてしまうため,検証結果はNGとなる。
Next, the
他にロック中のスレーブノード120が存在しないので,スケジュール処理部112は,スケールアウト処理部114によるスケールアウトの処理でスレーブノード120を増設すると判断する。図9は,スケールアウト処理部114によって増設された#cのスレーブノード120cに,処理要求のタスクXが割り当てられた状態を示す。
Since there is no
このように,本実施の形態によるマスタノード110は,現状のスレーブノード120の状態でスケジューリングを含めた検証を行っても,さらにタスクの移動を行う検証を行っても,納期内に処理が終了するように処理要求のタスクを割り当てできない場合にのみ,スケールアウトを実行する。これにより,無駄なスケールアウトを抑制できるので,無駄な課金が発生しない,効率がよいシステム100の運用が可能となる。
As described above, the
図10,図11は,本実施の形態のマスタノードにおけるリスケジュール処理部によるタスクの移動シミュレーションの例を説明する図である。 10 and 11 are diagrams for explaining an example of task movement simulation by the reschedule processing unit in the master node of the present embodiment.
図10は,時刻t0 の時点での,システム100が備える各スレーブノード120a,b,cが実行するタスクのスケジュールを示す。図10に示すように,この時点でシステム100が備えるスレーブノード120は,#aのスレーブノード120aと,#bのスレーブノード120bと,#cのスレーブノード120cの3つである。
Figure 10 shows the at time t 0, each
まず,マスタノード110において,リスケジュール処理部116は,定期的にスケジュール情報記憶部113を参照して,実行するタスクがないスレーブノード120があるかをチェックする。図10に示すように,この時点では,すべてのスレーブノード120が処理を実行しているので,実行するタスクがないスレーブノード120はない。このとき,リスケジュール処理部116は,現状のままでスケールシュリンクできるスレーブノード120はないと判断する。
First, in the
次に,リスケジュール処理部116は,他のタスクで再起動しても納期までに処理終了可能なタスクを移動する検証を行う。
Next, the reschedule
図11(A)は,#bのスレーブノード120bが実行するタスクB#1を,#aのスレーブノード120aで再起動する検証の例を示す。図11(A)に示すように,タスクB#1を他のスレーブノード120で再起動すると,処理の終了時刻が納期t2 を超えてしまうため,検証結果はNGとなる。リスケジュール処理部116は,タスクを移動して#bのスレーブノード120bに対してスケールシュリンクを行うことはできないと判断する。
FIG. 11A shows an example of verification in which the
図11(B)は,#cのスレーブノード120cが実行するタスクC#1を,#aのスレーブノード120aで再起動する検証の例を示す。図11(B)に示すように,タスクC#1は,#aのスレーブノード120aで再起動しても納期t3 までに処理終了可能である。さらに,タスクC#1を#aのスレーブノード120aに移動すると,#Cのスレーブノード120cが実行するタスクがなくなるため,#Cのスレーブノード120cに対してスケールシュリンクを行うことが可能である。
FIG. 11B shows an example of verification in which the
リスケジュール処理部116は,スレーブ通信部115を介して,#Cのスレーブノード120cにタスクC#1の停止を指示し,#Aのスレーブノード120aにタスクC#1の実行を指示する。#Cのスレーブノード120cが実行するタスクがなくなるので,リスケジュール処理部116は,#Cのスレーブノード120cをスケールシュリンクの対象とする。スケールシュリンク処理部117は,#Cのスレーブノード120cに対するスケールシュリンクの処理を実行する。
The reschedule
このように,本実施の形態によるマスタノード110は,他のスレーブノード120にタスクを移動することで,実行するタスクがないスレーブノード120を積極的に作り,スケールシュリンクを実行する。これにより,無駄なスレーブノード120を積極的に削除することが可能となるので,無駄な課金が発生しない効率がよいシステム100の運用が可能となる。
As described above, the
図12,図13は,本実施の形態のマスタノードにおけるリスケジュール処理部によるスレーブノードにロック設定を行う例を説明する図である。 12 and 13 are diagrams illustrating an example in which lock setting is performed on a slave node by a reschedule processing unit in the master node of the present embodiment.
図12は,時刻t0 の時点での,システム100が備える各スレーブノード120a,bが実行するタスクのスケジュールを示す。図12に示すように,この時点でシステム100が備えるスレーブノード120は,#aのスレーブノード120aと#bのスレーブノード120bの2つである。
12, at the time of time t 0, indicating the schedule of tasks each
マスタノード110において,リスケジュール処理部116は,タスクを移動しても実行するタスクがないスレーブノード120が用意できない場合に,タスクを移動することで実行するタスクの数が所定数以下となるスレーブノード120を用意できるかを検証する。例えば,ここでは,所定数を1とする。
In the
図13(A)は,#bのスレーブノード120bが実行するタスクB#2を,#aのスレーブノード120aで再起動する検証の例を示す。図13(A)に示すように,タスクB#2は,#aのスレーブノード120aで再起動しても納期t3 までに処理終了可能である。なお,#bのスレーブノード120bが実行するタスクB#1を,#aのスレーブノード120aで再起動しようとしても,処理の終了時刻が納期t2 を超えてしまうため,タスクB#1は移動できない。
FIG. 13A shows an example of verification in which the
タスクB#2を#aのスレーブノード120aに移動したとすると,図13(B)に示すように,#bのスレーブノード120bは,実行するタスクの数が所定数1以下となる。このとき,リスケジュール処理部116は,スレーブ通信部115を介して,#Bのスレーブノード120bにタスクB#2の停止を指示し,#Aのスレーブノード120aにタスクB#2の実行を指示する。
If the
また,図13(B)に示すように,実行するタスクがB#1のみとなった#bのスレーブノード120bに,ロックを設定する。なお,ロックを設定したスレーブノード120の情報は,スケジュール情報記憶部113など,スケジュール処理部112がアクセス可能な記憶部に記録しておく。これで,#bのスレーブノード120bには,原則として,新規の処理要求のタスクが割り当てされないので,残っている#B1のタスクの終了後に,スケールシュリンク処理部117によって,#bのスレーブノード120bを削除することができる。
In addition, as shown in FIG. 13B, a lock is set on the
このように,本実施の形態によるマスタノード110は,他のスレーブノード120にタスクを移動して,実行するタスクが少ないスレーブノード120を積極的に作り,そのスレーブノード120に対する新規の処理要求のタスクの割り当てを抑制する。これにより,システム100の環境が,実行するタスクがないスレーブノード120ができやすい環境となり,無駄なスレーブノード120を積極的に削除することが可能となるので,無駄な課金が発生しない効率がよいシステム100の運用が可能となる。
As described above, the
図14は,本実施の形態のマスタノードにおけるスケジュール処理部によるスレーブノードのロック解除を行う例を説明する図である。 FIG. 14 is a diagram illustrating an example in which the slave node is unlocked by the schedule processing unit in the master node according to the present embodiment.
ここで,システム100が,図13(B)に示す状態で,クライアント200から,図6(C)に示すタスクXの処理要求を受けたものとする。このとき,スケジュール処理部112は,処理要求のタスクXを,図14(A)に示すようにロックされていない#aのスレーブノード120aに割り当てしようとするが,ノードのリソース消費量がノードのリソース限界量を超えてしまうため,割り当てできない。さらに,他にタスクを移動できる相手先のスレーブノード120もない。
Here, it is assumed that the
このとき,スケジュール処理部112は,ロック中の#bのスレーブノード120bのロックを解除すれば,#bのスレーブノード120bで処理要求のタスクXが納期までに処理終了可能かを検証する。図14(B)に示すように,#bのスレーブノード120bで処理要求のタスクXが納期までに処理終了可能であるので,スケジュール処理部112は,ロック中の#bのスレーブノード120bのロックを解除し,#bのスレーブノード120bに処理要求のタスクXを割り当てる。
At this time, the
このように,ロック中のスレーブノード120には,他のスレーブノード120に処理要求のタスクを割り当てできない場合にのみ,処理要求のタスクの割り当てが行われる。これにより,スケールシュリンクを実行しやすい環境をギリギリまで維持しながら,スケールアウトの発生を抑制できるので,無駄な課金が発生しない効率がよいシステム100の運用が可能となる。
As described above, the processing request task is assigned to the locked
なお,本実施の形態によるマスタノード110は,納期内にタスクの処理が終了することを最優先としているので,システム100では常に最低限の処理性能が維持されている。
The
図15,図16は,本実施の形態のマスタノードによる処理要求受け付け時の処理フローチャートである。 FIG. 15 and FIG. 16 are processing flowcharts when a processing request is accepted by the master node of this embodiment.
マスタノード110において,クライアント通信部111は,クライアントから処理要求を受け付ける(ステップS10)。ここで受け付ける処理要求には,納期が指定されている。クライアント通信部111は,処理要求が受け入れ可能かを判定する(ステップS11)。処理要求が受け入れ可能でなければ(ステップS11のNO),クライアント通信部111は,クライアントに処理要求の受け入れが不可能である旨を応答し(ステップS12),処理を終了する。
In the
処理要求が受け入れ可能であれば(ステップS11のYES),スケジュール処理部112は,スケジュール情報記憶部113の管理情報を参照し,現状のスレーブノード120に処理要求のタスクを割り当てるシミュレーションを行う(ステップS13)。ここでは,例えば,図7に示すようにスケジューリングを含めた検証が行われる。
If the processing request is acceptable (YES in step S11), the
スケジュール処理部112は,現状のスレーブノード120に対する処理要求のタスクの割り当てが可能かを判定する(ステップS14)。処理要求のタスクの割り当てが可能であれば(ステップS14のYES),スケジュール処理部112は,処理要求のタスクを割り当てる先のスレーブノード120を決定する(ステップS15)。スレーブ通信部115は,決定されたスレーブノード120に処理要求のタスクの処理を依頼する(ステップS22)。
The
処理要求のタスクの割り当てが可能でなければ(ステップS14のNO),スケジュール処理部112は,スケジュール情報記憶部113の管理情報を参照し,既存のタスクを移動して,処理要求のタスクを割り当てるシミュレーションを行う(ステップS16)。ここでは,例えば,図8に示すように,他のスレーブノード120に移動して再実行しても納期内に処理を終了可能な既存のタスクがある場合に,その既存タスクを移動してリソースに空きができたスレーブノード120に処理要求のタスクを割り当てることができるかが検証される。
If the processing request task cannot be assigned (NO in step S14), the
スケジュール処理部112は,既存タスクを移動して処理要求のタスクの割り当てが可能となるかを判定する(ステップS17)。処理要求のタスクの割り当てが可能となれば(ステップS17のYES),スケジュール処理部112は,該当既存タスクの移動を実行する(ステップS18)。より具体的には,スケジュール処理部112は,スレーブ通信部115を介して,既存タスクの移動元のスレーブノード120に該タスクの停止を依頼する。また,スケジュール処理部112は,スレーブ通信部115を介して,既存タスクの移動先のスレーブノード120に該タスクの実行を依頼する。スレーブ通信部115は,既存タスクの移動によりリソースに空きができたスレーブノード120に処理要求のタスクの処理を依頼する(ステップS22)。
The
処理要求のタスクの割り当てが可能とならなければ(ステップS17のNO),スケジュール処理部112は,ロック中のスレーブノード120が存在して,該スレーブノード120のロックを解除すれば,処理要求のタスクの割り当てが可能となるかを判定する(ステップS19)。ロックを解除して処理要求のタスクの割り当てが可能となれば(ステップS19のYES),スケジュール処理部112は,ロック中のスレーブノード120のロックを解除する(ステップS20)。スレーブ通信部115は,ロックが解除されたスレーブノード120に処理要求のタスクの処理を依頼する(ステップS22)。このケースは,図14の例に示されるケースである。
If it is not possible to assign the processing request task (NO in step S17), the
ロック中のスレーブノード120がないか,ロックを解除しても処理要求のタスクの割り当てが可能とならなければ(ステップS19のNO),スケールアウト処理部114は,スケールアウトの処理を実行する(ステップS21)。スケールアウトにより,システム100にスレーブノード120が増設される。スレーブ通信部115は,増設されたスレーブノード120に処理要求のタスクの処理を依頼する(ステップS22)。このケースは,図9の例に示されるケースである。
If there is no
スレーブ通信部115が,スレーブノード120から処理要求に対する処理結果の応答を受け付けると(ステップS23),クライアント通信部111は,その応答をクライアントに送信する(ステップS24)。
When the
図17は,本実施の形態のマスタノードによるリスケジュールの処理フローチャートである。 FIG. 17 is a flowchart of rescheduling processing by the master node according to this embodiment.
マスタノード110において,リスケジュール処理部116は,所定のタイミングで本処理を開始する。
In the
リスケジュール処理部116は,スケジュール情報記憶部113の管理情報を参照し,現状で実行するタスクがないスレーブノード120があるかを判定する(ステップS30)。実行するタスクがないスレーブノード120があれば(ステップS30のYES),スケールシュリンク処理部117は,該当スレーブノード120に対するスケールシュリンクの処理を実行する(ステップS31)。スケールシュリンクにより,システム100からスレーブノード120が削除される。
The reschedule
リスケジュール処理部116は,スケジュール情報記憶部113の管理情報を参照し,タスクを移動するシミュレーションを行う(ステップS32)。ここでは,例えば図11に示すように,他のスレーブノード120に移動して再実行しても納期内に処理を終了可能なタスクがある場合に,そのタスクを移動して実行するタスクがないスレーブノード120を生成できるかが検証される。また,例えば図13に示すように,他のスレーブノード120に移動して再実行しても納期内に処理を終了可能なタスクがある場合に,そのタスクを移動して実行するタスクが所定数以下となるスレーブノード120を生成できるかが検証される。
The reschedule
リスケジュール処理部116は,タスクを移動して実行するタスクがないスレーブノード120を生成できるか,すなわちタスクを移動してスケールシュリンクが可能となるかを判定する(ステップS33)。タスクを移動してスケールシュリンクが可能となれば(ステップS33のYES),リスケジュール処理部116は,該当タスクの移動を実行する(ステップS34)。より具体的には,リスケジュール処理部116は,スレーブ通信部115を介して,タスクの移動元のスレーブノード120に該タスクの停止を依頼する。また,リスケジュール処理部116は,スレーブ通信部115を介して,タスクの移動先のスレーブノード120に該タスクの実行を依頼する。スケールシュリンク処理部117は,タスクの移動により実行するタスクがなくなったスレーブノード120に対するスケールシュリンクの処理を実行する(ステップS35)。スケールシュリンクにより,システム100からスレーブノード120が削除される。
The reschedule
タスクを移動してもスケールシュリンクが可能とならなければ(ステップS33のNO),リスケジュール処理部116は,タスクを移動して実行するタスクが所定数以下となるスレーブノード120があるかを判定する(ステップS36)。タスクを移動しても実行するタスクが所定数以下となるスレーブノード120がなければ(ステップS36のNO),リスケジュール処理部116は,処理を終了する。
If the scale shrink is not possible even if the task is moved (NO in step S33), the reschedule
タスクを移動して実行するタスクが所定数以下となるスレーブノード120があれば(ステップS36のYES),リスケジュール処理部116は,該当タスクの移動を実行する(ステップS37)。より具体的には,リスケジュール処理部116は,スレーブ通信部115を介して,タスクの移動元のスレーブノード120に該タスクの停止を依頼する。また,リスケジュール処理部116は,スレーブ通信部115を介して,タスクの移動先のスレーブノード120に該タスクの実行を依頼する。リスケジュール処理部116は,タスクを移動して実行するタスクが所定数以下となったスレーブノード120にロックを設定する(ステップS38)。このまま,ロックが解除されずに残ったタスクの処理がすべて終了すれば,ロックが設定されたスレーブノード120は,その後のステップS30,S31の処理でスケールシュリンクの対象となる。
If there is a
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。 Although the present embodiment has been described above, the present invention can naturally be modified in various ways within the scope of the gist thereof.
100 システム
110 マスタノード
111 クライアント通信部
112 スケジュール処理部
113 スケジュール情報記憶部
114 スケールアウト処理部
115 スレーブ通信部
116 リスケジュール処理部
117 スケールシュリンク処理部
120 スレーブノード
121 マスタ通信部
122 アプリケーション
200 クライアント
300 ネットワーク
DESCRIPTION OF
Claims (6)
納期が指定された処理要求を受け付けた際に,記憶部に記憶された,前記システムが備えるコンピュータノードが実行するタスクを管理する管理情報を参照して,該処理要求のタスクをコンピュータノードに割り当てるシミュレーションを実行し,
前記割り当てのシミュレーションにより,前記処理要求のタスクを納期内に処理終了可能なコンピュータノードがなく,さらに他のコンピュータノードでも納期内に処理終了可能なタスクを移動しても前記処理要求のタスクを納期内に処理終了可能なコンピュータノードを用意できないと判定された場合に,前記システムにコンピュータノードを増設する処理を実行する
ことを特徴とするオートスケーリング方法。 In a system in which requested processing is distributed to and executed by a plurality of computer nodes, a computer node that manages tasks executed in the system includes:
When a processing request with a specified delivery date is received, the management information stored in the storage unit for managing the task executed by the computer node of the system is referred to, and the task of the processing request is assigned to the computer node. Run the simulation,
According to the simulation of the assignment, there is no computer node that can finish the processing request task within the due date, and even if another computer node moves the task that can finish the processing within the due date, the processing request task is delivered. An auto-scaling method comprising: executing a process of adding a computer node to the system when it is determined that a computer node capable of terminating the process cannot be prepared in the system.
前記管理情報を参照して,あるコンピュータノードで動作するタスクを,他のコンピュータノードに移動するシミュレーションを実行し,
前記移動のシミュレーションにより,他のコンピュータノードでも納期内に処理終了可能なタスクを移動して,実行するタスクがないコンピュータノードを用意できると判定された場合に,該他のコンピュータノードでも納期内に処理終了可能なタスクを移動し,
実行するタスクがないコンピュータノードを前記システムから削除する処理とを実行する
ことを特徴とする請求項1に記載のオートスケーリング方法。 A computer node that manages the task further includes:
Referring to the management information, a simulation for moving a task operating on a certain computer node to another computer node is executed,
When it is determined by the simulation of the movement that a computer node having no task to be executed can be prepared by moving a task that can be completed within the delivery date even at another computer node, the other computer node can also be within the delivery date. Move the task that can finish processing,
The autoscaling method according to claim 1, further comprising: deleting a computer node having no task to be executed from the system.
前記移動のシミュレーションにより,他のコンピュータノードでも納期内に処理終了可能なタスクを移動して,実行するタスクの数が所定数以下となるコンピュータノードを用意できると判定された場合に,該他のコンピュータノードでも納期内に処理終了可能なタスクを移動し,
実行するタスクの数が所定数以下のコンピュータノードを処理要求のタスクの割り当て対象外に設定する処理を実行する
ことを特徴する請求項2に記載のオートスケーリング方法。 A computer node that manages the task further includes:
When it is determined by the simulation of the movement that a computer node can be prepared in which the number of tasks to be executed is less than or equal to a predetermined number by moving a task that can be completed within the delivery date even by another computer node. Move the task that can be completed within the delivery date even at the computer node,
The autoscaling method according to claim 2, wherein a process of setting a computer node having a number of tasks to be executed to a predetermined number or less as a task request assignment target is executed.
ことを特徴とする請求項3に記載のオートスケーリング方法。 In the process of adding a computer node to the system, a computer capable of completing the processing request task within the delivery date even if the setting of the computer node set to be excluded from the processing request task allocation target is canceled. 4. The autoscaling method according to claim 3, further comprising adding a computer node to the system when it is determined that a node cannot be prepared.
納期が指定された処理要求を受け付けた際に,記憶部に記憶された,前記システムが備えるコンピュータノードが実行するタスクを管理する管理情報を参照して,該処理要求のタスクをコンピュータノードに割り当てるシミュレーションを実行し,
前記割り当てのシミュレーションにより,前記処理要求のタスクを納期内に処理終了可能なコンピュータノードがなく,さらに他のコンピュータノードでも納期内に処理終了可能なタスクを移動しても前記処理要求のタスクを納期内に処理終了可能なコンピュータノードを用意できないと判定された場合に,前記システムにコンピュータノードを増設する
処理を実行させるためのオートスケーリングプログラム。 In a system in which requested processing is distributed to a plurality of computer nodes, a computer node that manages tasks executed in the system is provided.
When a processing request with a specified delivery date is received, the management information stored in the storage unit for managing the task executed by the computer node of the system is referred to, and the task of the processing request is assigned to the computer node. Run the simulation,
According to the simulation of the assignment, there is no computer node that can finish the processing request task within the due date, and even if another computer node moves the task that can finish the processing within the due date, the processing request task is delivered. An auto-scaling program that causes the system to execute a process to add a computer node when it is determined that a computer node that can complete the process cannot be prepared.
前記システムが備えるコンピュータノードが実行するタスクを管理する管理情報の記憶部と,
納期が指定された処理要求を受け付けた際に,前記管理情報を参照して,該処理要求のタスクをコンピュータノードに割り当てるシミュレーションを実行するスケジュール処理部と,
前記スケジュール処理部により,前記処理要求のタスクを納期内に処理終了可能なコンピュータノードがなく,さらに他のコンピュータノードでも納期内に処理終了可能なタスクを移動しても前記処理要求のタスクを納期内に処理終了可能なコンピュータノードを用意できないと判定された場合に,前記システムにコンピュータノードを増設する処理を実行するスケールアウト処理部とを備える
ことを特徴とするコンピュータノード。 In a system having a plurality of computer nodes, a computer node for managing tasks executed in the system,
A management information storage unit for managing tasks executed by computer nodes included in the system;
A schedule processing unit that executes a simulation of referring to the management information and allocating a task of the processing request to a computer node when a processing request with a specified delivery date is received;
There is no computer node capable of completing the processing request task within the due date by the schedule processing unit, and even if another computer node moves a task capable of completing the processing within the due date, the processing request task is delivered. A computer node comprising: a scale-out processing unit that executes processing for adding a computer node to the system when it is determined that a computer node capable of terminating processing cannot be prepared in the system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012078501A JP5867238B2 (en) | 2012-03-30 | 2012-03-30 | Auto scaling method, auto scaling program and computer node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012078501A JP5867238B2 (en) | 2012-03-30 | 2012-03-30 | Auto scaling method, auto scaling program and computer node |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013210683A true JP2013210683A (en) | 2013-10-10 |
JP5867238B2 JP5867238B2 (en) | 2016-02-24 |
Family
ID=49528493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012078501A Active JP5867238B2 (en) | 2012-03-30 | 2012-03-30 | Auto scaling method, auto scaling program and computer node |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5867238B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017068393A (en) * | 2015-09-29 | 2017-04-06 | 日本電気株式会社 | Information processing device, information processing method, and program |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9820682B2 (en) | 2015-07-24 | 2017-11-21 | Kurin, Inc. | Blood sample optimization system and blood contaminant sequestration device and method |
JP7003139B2 (en) | 2016-12-27 | 2022-01-20 | クリン インコーポレイテッド | Blood isolation device and blood isolation and sampling system |
US11617525B2 (en) | 2017-02-10 | 2023-04-04 | Kurin, Inc. | Blood contaminant sequestration device with passive fluid control junction |
US10827964B2 (en) | 2017-02-10 | 2020-11-10 | Kurin, Inc. | Blood contaminant sequestration device with one-way air valve and air-permeable blood barrier with closure mechanism |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015958A (en) * | 2006-07-10 | 2008-01-24 | Mitsubishi Electric Corp | Control apparatus, process control method for control apparatus, and process control program |
JP2009265778A (en) * | 2008-04-22 | 2009-11-12 | Dino Co Ltd | Virtual server |
-
2012
- 2012-03-30 JP JP2012078501A patent/JP5867238B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015958A (en) * | 2006-07-10 | 2008-01-24 | Mitsubishi Electric Corp | Control apparatus, process control method for control apparatus, and process control program |
JP2009265778A (en) * | 2008-04-22 | 2009-11-12 | Dino Co Ltd | Virtual server |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017068393A (en) * | 2015-09-29 | 2017-04-06 | 日本電気株式会社 | Information processing device, information processing method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP5867238B2 (en) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11425194B1 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
US9280390B2 (en) | Dynamic scaling of a cluster of computing nodes | |
JP6954267B2 (en) | Network Functions Virtualization Management Orchestration Equipment, Methods and Programs | |
US9276987B1 (en) | Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US8260840B1 (en) | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program | |
US9218196B2 (en) | Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage | |
US8756599B2 (en) | Task prioritization management in a virtualized environment | |
US10284637B2 (en) | Minimizing service restart by optimally resizing service pools | |
US20130339956A1 (en) | Computer system and optimal arrangement method of virtual machine in computer system | |
EP3594798A1 (en) | Data storage method and device | |
WO2012066640A1 (en) | Computer system, migration method, and management server | |
JP6190969B2 (en) | Multi-tenant resource arbitration method | |
CN104461744A (en) | Resource allocation method and device | |
JP5867238B2 (en) | Auto scaling method, auto scaling program and computer node | |
WO2016041446A1 (en) | Resource allocation method, apparatus and device | |
JP7177349B2 (en) | Scheduling program, scheduling device and scheduling method | |
WO2016121869A1 (en) | Virtualization management-orchestration device, virtualization-orchestration method, and program | |
JP2019079334A (en) | Information processing apparatus, information processing system, and information processing method | |
US20220237016A1 (en) | Apparatus for determining resource migration schedule | |
US20220413902A1 (en) | Partition migration with critical task prioritization | |
US9740530B2 (en) | Decreasing the priority of a user based on an allocation ratio | |
JP2011192049A (en) | Virtual machine system, automatic migration method, and automatic migration program | |
Wu et al. | ABP scheduler: Speeding up service spread in docker swarm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150617 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150707 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150831 |
|
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: 20151208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151221 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5867238 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |