[go: up one dir, main page]

JP2018180591A - 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP2018180591A
JP2018180591A JP2017073717A JP2017073717A JP2018180591A JP 2018180591 A JP2018180591 A JP 2018180591A JP 2017073717 A JP2017073717 A JP 2017073717A JP 2017073717 A JP2017073717 A JP 2017073717A JP 2018180591 A JP2018180591 A JP 2018180591A
Authority
JP
Japan
Prior art keywords
processing
virtual machine
unit
load
high load
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.)
Pending
Application number
JP2017073717A
Other languages
English (en)
Inventor
翔大 野口
Shota Noguchi
翔大 野口
健一郎 下川
Kenichiro Shimokawa
健一郎 下川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017073717A priority Critical patent/JP2018180591A/ja
Priority to US15/928,368 priority patent/US20180285169A1/en
Publication of JP2018180591A publication Critical patent/JP2018180591A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】信頼性を向上させる情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムを提供する。
【解決手段】処理割振部31は、各仮想マシン40に処理要求を割り振る。高負荷判定部22は、各仮想マシン40のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する。オートスケール判定部11は、高負荷処理実行部が存在する場合、各仮想マシン40の負荷を基に仮想マシン40を増やすか否かを判定する。フェイルオーバ判定部13は、仮想マシン40を増やさない場合、各仮想マシン40に割り振られた処理要求の数を基に、高負荷処理実行部が実行する処理を他の仮想マシン40へ移すか否かを判定する。フェイルオーバ実行部14は、フェイルオーバ判定部13により高負荷処理実行部が実行する処理を移すと判定された場合、高負荷処理実行部が実行する処理を他の仮想マシン40に実行させる。
【選択図】図2

Description

本発明は、情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムに関する。
近年、情報処理装置の性能向上に伴い、複数の仮想マシンを1つの物理マシン上で動作させる仮想化技術の発達が顕著である。仮想化技術では、例えば、仮想化ソフトウェアが、物理マシンを複数の仮想マシンに割り当てて、各仮想マシンによるサービスの提供を行う。仮想マシンの使用方法として、例えば、事業者が仮想マシンやネットワークなどのインフラをネットワーク経由で利用者に提供するクラウドサービスなどがある。
クラウドサービスなどで業務サーバとして複数の仮想マシンを使用する場合、クライアントからのリクエストを各仮想マシンに割り振り負荷分散を行う技術がある。このような負荷分散を行うマシンは、ロードバランサと呼ばれる場合がある。
また、ロードバランサにより負荷分散を行うシステムにおいて、各仮想マシンの負荷が高くなった場合、分散先となる仮想マシンを自動的に複製して追加する技術がある。この技術は、オートスケールと呼ばれる場合がある。オートスケールは、仮想マシンの動作を監視する監視サーバによる監視結果に基づいて、仮想マシンを管理する管理サーバにより実行される。
さらに、ロードバランサにより負荷分散を行うシステムにおいて、業務サーバである仮想マシンがダウンすると、他の物理マシン上で仮想マシンを起動させ、ダウンした仮想マシンが実行中の業務を新たに起動させた仮想マシンに移管する技術がある。この技術はオートフェールオーバと呼ばれる場合がある。オートフェールオーバは、管理サーバにより仮想マシンのダウンの検知及び仮想マシンの起動が実行される。オートフェールオーバが実行されることで、業務サーバが復旧する。
なお、サーバの負荷分散の技術として、所定期間にサーバに入力されたリクエストを解析してサーバ負荷の制御の運用計画を作成し、所定条件を満たした場合に運用計画に基づくサーバ負荷の制御を実施する従来技術がある。また、クラウドサービスにおける障害対処の技術として、サービスの契約内容に基づき対処方法を決定する従来技術がある。さらに、リクエスト数の増加の状態により障害発生の有無を判定する従来技術がある。
特開2016−58005号公報 特開2016−139237号公報 特開2015−95149号公報
しかしながら、仮想マシンの負荷を基にオートスケールを実行するシステムにおいて、障害が発生して負荷が下がらない場合、オートスケールを実行しても障害が発生した仮想マシンの負荷は下がらない。その場合、障害発生の検知を行わなければ、生成可能な仮想マシンの最大数までスケールアウトが繰り返されてしまう。
また、例えばCPU(Central Processing Unit)使用率を監視して故障の検知を行う構成の場合、時間による一時的な高負荷の仮想マシンをフェイルオーバさせてしまうおそれがある。
また、作成した運用計画に基づいて負荷分散を行う従来技術を用いても、無駄なスケールアウトの実行や一時的な高負荷の仮想マシンのフェイルオーバを回避することは困難である。これは、サービスの契約内容に基づき対処方法を決定する従来技術を用いた場合も同様である。また、リクエスト数の増加の状態を基に障害発生の有無を判定する従来技術を用いた場合、無駄なスケールアウトの実行を回避することは可能であるが、一時的な高負荷の仮想マシンのフェイルオーバは実行されてしまい、信頼性が低下するおそれがある。
開示の技術は、上記に鑑みてなされたものであって、信頼性を向上させる情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムを提供することを目的とする。
本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの一つの態様において、処理実行部は、処理を実行する1つ又は複数存在する。処理割振部は、各前記処理実行部に処理要求を割り振る。高負荷判定部は、各前記処理実行部のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する。第1判定部は、前記高負荷判定部により前記高負荷処理実行部が存在すると判定された場合、各前記処理実行部の負荷を基に前記処理実行部を増やすか否かを判定する。第2判定部は、前記第1判定部により前記処理実行部を増やさないと判定された場合、各前記処理実行部に割り振られた処理要求の数を基に、前記高負荷処理実行部が実行する処理を他の処理実行部へ移すか否かを判定する。切替部は、前記第2判定部により前記高負荷処理実行部が実行する処理を移すと判定された場合、前記高負荷処理実行部が実行する処理を前記他の処理実行部に実行させる。
1つの側面では、本発明は、信頼性を向上させることができる。
図1は、情報処理システムのシステム構成図である。 図2は、実施例に係る情報処理システムのブロック図である。 図3は、オートスケールが実行される場合のCPU使用率の一例を表す図である。 図4は、障害が発生した可能性がある場合のCPU使用率の一例を表す図である。 図5は、オートスケールが実行された場合の情報処理システムの状態を表す図である。 図6は、フェイルオーバが実行されない場合のリクエスト割振数の一例を表す図である。 図7は、フェイルオーバが実行される場合のリクエスト割振数の一例を表す図である。 図8は、フェイルオーバが実行された場合の情報処理システムの状態を表す図である。 図9は、障害発生と判定される仮想マシンの状態を説明するための図である。 図10は、実施例に係る管理サーバによる高負荷時処理の実行のフローチャートである。 図11は、オートスケールの処理のフローチャートである。 図12は、フェイルオーバの処理のフローチャートである。 図13は、情報処理装置のハードウェア構成図である。
以下に、本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムが限定されるものではない。
図1は、情報処理システムのシステム構成図である。情報処理システム100は、図1に示すように、管理サーバ1、監視サーバ2、ロードバランサ3、VM(Virtual Machine)ホスト4及び端末装置7を有する。
管理サーバ1、監視サーバ2、ロードバランサ3、VMホスト4は、LAN(Local Area Network)5を介して互いに接続される。また、ロードバランサ3及び端末装置7は、ネットワーク6に接続される。ネットワーク6は、例えばインターネットである。
VMホスト4は、例えば物理サーバである。そして、VMホスト4は、1つ又は複数の仮想マシン40を動作させることができる。ここで、図1では、1つのVMホスト4の中に仮想マシン40を最大で2つ記載したが、実際には、1つのVMホスト4にいくつ起動されてもよい。また、VMホスト4は、仮想マシン40を動作させてもよいし、いずれも動作させなくてもよい。図1において仮想マシン40が記載されていないVMホスト4は、仮想マシン40を動作させていない状態である。VMホスト4は、後述する管理サーバ1からの指示を受けて仮想マシン40を生成し動作させる。また、VMホスト4は、管理サーバ1からの指示を受けて、自装置で動作する仮想マシン40を削除する。このVMホスト4が、「業務処理装置」の一例にあたる。
各仮想マシン40は、1つのサービスを提供する業務サーバである。各仮想マシン40は、端末装置7から送信された処理要求であるリクエストを処理する。各仮想マシン40は、同じ処理を実行可能であり、端末装置7から送信されたリクエストは、どのVMホスト4のどの仮想マシン40に送られても同じ処理が行われる。この仮想マシン40が、「処理実行部」及び「処理実行装置」の一例にあたる。
端末装置7は、仮想マシン40が提供するサービスを受ける情報処理端末である。端末装置7は、仮想マシン40に対してリクエストをネットワーク6を介して送信する。図1における破線矢印はリクエストの流れを表す。図1では、端末装置7は、3台記載したが、その数に特に制限は無い。
ロードバランサ3は、管理サーバ1からリクエストの割り振り先となる仮想マシン40の情報を管理サーバ1から受ける。この仮想マシン40の情報は、仮想マシン40のアドレスでもよいし、DNS(Domain Name System)サーバがある場合には仮想マシン40の名前でもよい。そして、ロードバランサ3は、ネットワーク6を介して端末装置7が出力したリクエストを受信する。そして、ロードバランサ3は、割り振り先の仮想マシン40のうちのいずれかの仮想マシン40へリクエストを割り振り、割り振った仮想マシン40へリクエストを送信する。
ここで、ロードバランサ3によるリクエストの割り振りについて説明する。ロードバランサ3は、各仮想マシン40に送信したリクエストの数及び内容などのリクエスト情報を記憶する。そして、ロードバランサ3は、新たにリクエストを受信すると、各仮想マシン40の処理負荷が均一になるように、受信したリクエストを割り振る仮想マシン40を決定する。例えば、ロードバランサ3は、各仮想マシン40が処理するリクエストの数が均一になるように、受信したリクエストを割り振る仮想マシン40を決定する。ただし、リクエストを割り振る仮想マシン40の決定方法はこれに限らず、処理負荷を均一にできれば他の方法でもよい。例えば、ロードバランサ3は、リクエストの内容などから処理時間を求めて、処理が完了する時間が均一になるように、仮想マシン40を決定してもよい。
また、ロードバランサ3は、リクエストを割り振った仮想マシン40の情報を管理サーバ1へ送信する。その後、オートスケールやフェイルオーバが実行された場合、ロードバランサ3は、管理サーバ1から追加又は停止された仮想マシン40の情報の入力を受ける。そして、ロードバランサ3は、追加された仮想マシン40をリクエストの割り振り先に加え、停止された仮想マシン40をリクエストの割り振り先から外して、リクエストの割り振りを行う。このロードバランサ3が、「負荷分散装置」の一例にあたる。
監視サーバ2は、各仮想マシン40のCPU使用率を取得する。そして、監視サーバ2は、取得した各仮想マシン40のCPU使用率から高負荷となった仮想マシン40を特定し管理サーバ1へ通知する。
管理サーバ1は、各仮想マシン40のCPU使用率及び高負荷となった仮想マシン40の情報の通知を監視サーバ2から受ける。また、管理サーバ1は、リクエストが送信された仮想マシン40の情報をロードバランサ3から受信する。次に、管理サーバ1は、送信されたリクエストの数を仮想マシン40毎にカウントし、各仮想マシン40に対するリクエストの割り振り率を算出する。そして、管理サーバ1は、CPU使用率及びリクエストの割り振り率を用いてオートスケール又はフェイルオーバを実行するか否かを判定する。
オートスケールを実行する場合、管理サーバ1は、仮想マシン40を起動させるVMホスト4を選択し、仮想マシン40の起動を選択したVMホスト4に指示する。さらに、管理サーバ1は、起動させた仮想マシン40の情報をロードバランサ3へ送信する。
また、フェイルオーバを実行する場合、管理サーバ1は、障害が発生した仮想マシン40を特定する。次に、管理サーバ1は、仮想マシン40を起動させるVMホスト4を選択し、仮想マシン40の起動を選択したVMホスト4に指示する。次に、管理サーバ1は、起動させた仮想マシン40の情報をロードバランサ3へ送信する。そして、管理サーバ1は、障害が発生した仮想マシン40の処理を起動させた仮想マシン40へ移管させる指示をロードバランサ3へ通知する。その後、管理サーバ1は、障害が発生した仮想マシン40の停止を、障害が発生した仮想マシン40を動作させるVMホスト4へ指示する。この監視サーバ2及び管理サーバ1が、「管理制御装置」の一例にあたる。
さらに、図2を参照して、管理サーバ1によるオートスケール又はフェイルオーバの実行について詳細に説明する。図2は、実施例に係る情報処理システムのブロック図である。図2では、オートスケール又はフェイルオーバの実行に係わる機能部について記載した。以下では、オートスケール及びフェイルオーバをまとめて「高負荷時処理」という。
監視サーバ2は、CPU使用率監視部21及び高負荷判定部22を有する。CPU使用率監視部21は、各VMホスト4が動作させる各仮想マシン40のCPU使用率を監視し取得する。そして、CPU使用率監視部21は、取得した各仮想マシン40のCPU使用率を後述する管理サーバ1の高負荷判定部22へ送信する。
高負荷判定部22は、高負荷時処理を実行するか否かを判定するためのCPU負荷率の高負荷閾値を予め有する。例えば、高負荷判定部22は、80%を高負荷閾値として記憶する。
高負荷判定部22は、各仮想マシン40のCPU使用率を監視サーバ2のCPU使用率監視部21から受信する。次に、高負荷判定部22は、各仮想マシン40のCPU使用率と高負荷閾値とを比較し、CPU使用率が高負荷閾値を超える仮想マシン40が存在するか否かを判定する。高負荷閾値を超える仮想マシン40がなければ、高負荷判定部22は、高負荷時処理を終了し、次の高負荷時処理の実行の判定タイミングまで待機する。高負荷判定部22は、この判定処理を所定周期で行う。
これに対して、CPU使用率が高負荷閾値を超える仮想マシン40が存在する場合、高負荷判定部22は、その仮想マシン40を高負荷仮想マシンとして特定する。この高負荷仮想マシンが、「高負荷処理実行部」の一例にあたる。その後、高負荷判定部22は、高負荷仮想マシンとして特定した仮想マシン40の情報を管理サーバ1のオートスケール判定部11に通知する。さらに、高負荷判定部22は、各仮想マシン40のCPU使用率の情報をオートスケール判定部11に通知する。
管理サーバ1は、オートスケール判定部11、オートスケール実行部12、フェイルオーバ判定部13及びフェイルオーバ実行部14を有する。
オートスケール判定部11は、オートスケールを行うか否かを判定するための基準値である安全係数を予め有する。安全係数は、高負荷仮想マシン以外の仮想マシン40のCPU使用率の平均値と高負荷仮想マシンのCPU使用率との乖離を表す値である。例えば、オートスケール判定部11は、1.5を安全係数として記憶する。
オートスケール判定部11は、高負荷仮想マシンとして特定された仮想マシン40の情報を監視サーバ2の高負荷判定部22から取得する。また、オートスケール判定部11は、各仮想マシン40のCPU使用率を高負荷判定部22から取得する。
オートスケール判定部11は、高負荷仮想マシン以外の仮想マシン40のCPU使用率の平均値を算出する。次に、オートスケール判定部11は、算出した高負荷仮想マシン以外の仮想マシン40のCPU使用率の平均値で高負荷仮想マシンのCPU使用率を除算し、平均値に対する高負荷仮想マシンのCPU使用率の割合を算出する。そして、オートスケール判定部11は、平均値に対する高負荷仮想マシンのCPU使用率の割合が安全係数未満か否かを判定する。
平均値に対する高負荷仮想マシンのCPU使用率の割合が安全係数未満の場合、オートスケール判定部11は、仮想マシン40において全体的な高負荷が発生したと判定する。全体的な高負荷が発生している場合、高負荷仮想マシンにおける障害発生の可能性は低く、仮想マシン40を増やすことで高負荷が解消される可能性が高い。そこで、オートスケール判定部11は、オートスケールの実行をオートスケール実行部12に指示する。
これに対して、平均値に対する高負荷仮想マシンのCPU使用率の割合が安全係数以上の場合、オートスケール判定部11は、仮想マシン40において障害が発生した可能性がある判定する。そこで、オートスケール判定部11は、高負荷仮想マシンである仮想マシン40の情報をフェイルオーバ判定部13へ通知する。このオートスケール判定部11が、「第1判定部」の一例にあたる。
ここで、図3及び図4を参照して、オートスケール判定部11による判定の具体例について説明する。図3は、オートスケールが実行される場合のCPU使用率の一例を表す図である。また、図4は、障害が発生した可能性がある場合のCPU使用率の一例を表す図である。ここでは、仮想マシン#1〜#5という仮想マシン名を有する5台が仮想マシン40として存在する場合で説明する。また、高負荷閾値が80%であり、安全係数が1.5である場合で説明する。
仮想マシン#1〜#5のそれぞれのCPU使用率が図3に示す値である場合、CPU使用率が80%以上である仮想マシン#3が、高負荷仮想マシンとして特定される。そして、オートスケール判定部11は、仮想マシン#1,#2,#4及び#5のCPU使用率の平均を算出する。この場合、仮想マシン#1,#2,#4及び#5のCPU使用率の平均は、72.5%である。次に、オートスケール判定部11は、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合を算出する。この場合、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合は、およそ1.24である。次に、オートスケール判定部11は、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合と安全係数とを比較する。この場合、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合が安全係数未満であるので、オートスケール判定部11は、オートスケールの実行を決定する。
これに対して、仮想マシン#1〜#5のそれぞれのCPU使用率が図4に示す値である場合、CPU使用率が80%以上である仮想マシン#3が、高負荷仮想マシンとして特定される。そして、オートスケール判定部11は、仮想マシン#1,#2,#4及び#5のCPU使用率の平均を算出する。この場合、仮想マシン#1,#2,#4及び#5のCPU使用率の平均は、35%である。次に、オートスケール判定部11は、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合を算出する。この場合、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合は、およそ2.57である。次に、オートスケール判定部11は、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合と安全係数とを比較する。この場合、仮想マシン#1,#2,#4及び#5のCPU使用率の平均に対する仮想マシン#3のCPU使用率の割合が安全係数以上であり、仮想マシン#3が仮想マシン#1,#2,#4及び#5に比べて高負荷な状態である。そこで、オートスケール判定部11は、仮想マシン#3で障害が発生した可能性があると判定する。
図2に戻って説明を続ける。オートスケール実行部12は、オートスケールの実行の指示をオートスケール判定部11から受ける。そして、オートスケール実行部12は、仮想マシン40が起動可能なVMホスト4を選択する。その後、オートスケール実行部12は、選択したVMホスト4に対して仮想マシン40の起動を指示する。その後、オートスケール実行部12は、新たに起動させた仮想マシン40の情報をロードバランサ3の処理割振部31へ通知し、オートスケールの処理を完了する。
図5は、オートスケールが実行された場合の情報処理システムの状態を表す図である。図5は、図1の状態にある情報処理システム100においてオートスケールが実行された場合の状態を表す。図5では、新たに起動された仮想マシン40を仮想マシン41と表す。また、図5では、管理サーバ1は、仮想マシン41を新たに起動させる仮想マシン40として図中の左から2番目のVMホスト4を選択する。そして、管理サーバ1は、新たな仮想マシン41の起動指示を選択したVMホスト4に送信する。そして、起動指示を受けたVMホスト4は、新たに仮想マシン41を起動する。その後、管理サーバ1は、仮想マシン41の情報をロードバランサ3に通知する。これにより、ロードバランサ3は、既存の仮想マシン40に仮想マシン41を加えてリクエストの割り振りを行うようになる。
図2に戻って説明を続ける。フェイルオーバ判定部13は、各リクエストが送信された仮想マシン40の情報をロードバランサ3の処理割振部31から受ける。そして、フェイルオーバ判定部13は、取得したリクエストの情報を送信先の仮想マシン40に対応させて記憶する。
フェイルオーバ判定部13は、オートスケール判定部11により仮想マシン40において障害が発生した可能性があると判定された場合、高負荷仮想マシンである仮想マシン40の情報の通知をオートスケール判定部11から受ける。ここで、フェイルオーバ判定部13は、一定時間待機する。これは、瞬間的なCPU使用率の上昇によるフェイルオーバの発生を回避するためである。フェイルオーバ判定部13が待機する一定時間は、運用環境に応じてCPU使用率の瞬間的な上昇が解消される可能性がある時間であればよく、例えば、1分程度である。
その後、フェイルオーバ判定部13は、そのタイミングから所定時間前の間に送信されたリクエストの数を仮想マシン40毎に取得する。次に、フェイルオーバ判定部13は、仮想マシン40毎に所定時間におけるリクエスト数を求める。そして、フェイルオーバ判定部13は、高負荷仮想マシンへのリクエスト数を、高負荷仮想マシンと共に負荷分散が行われる仮想マシン40へのリクエストの総数で除算し、高負荷仮想マシンのリクエスト割振率を算出する。
また、フェイルオーバ判定部13は、各仮想マシン40にリクエストが均等に割り振られた場合の高負荷仮想マシンのリクエスト割振率である予測リクエスト割振率を算出する。例えば、フェイルオーバ判定部13は、高負荷仮想マシンと共に負荷分散が行われる全ての仮想マシン40の数で100を除算した値を予測リクエスト割振率として算出する。
ここで、フェイルオーバ判定部13は、フェイルオーバを実施するか否かを判定するためのリクエスト割振率と予測リクエスト割振率との比率の閾値であるフェイルオーバ閾値を予め有する。このフェイルオーバ閾値が、「所定値」の一例にあたる。
高負荷仮想マシンに一時的な高負荷が発生した場合、ある程度の期間で見ればロードバランスの対象となる仮想マシン40のそれぞれのリクエスト割振率は似た値になる。これに対して、ロードバランスの対象の全体的な傾向とは別に、障害発生などにより高負荷仮想マシンが継続的に高負荷となっている場合、高負荷仮想マシンへのリクエストの割り振りは抑えられるため、高負荷仮想マシンのリクエスト割振率は低くなる。
そこで、フェイルオーバ判定部13は、各仮想マシン40にリクエストが均等に割り振られた場合の高負荷仮想マシンのリクエスト割振率である予測リクエスト割振率を算出する。例えば、フェイルオーバ判定部13は、業務サーバとしてのロードバランスの対象とする全ての仮想マシン40の数で100を除算した値を予測リクエスト割振率として算出する。
そして、フェイルオーバ判定部13は、予測リクエスト割振率を実際の高負荷仮想マシンのリクエスト割振率で除算し、割振率比率を算出する。次に、フェイルオーバ判定部13は、算出した割振率比率がフェイルオーバ閾値未満か否かを判定する。割振率比率がリクエストフェイルオーバ閾値以上であれば、フェイルオーバ判定部13は、高負荷仮想マシンである仮想マシン40に一時的な高負荷が発生したものであり、障害が未発生であると判定してフェイルオーバの処理を終了する。
これに対して、割振率比率がリクエストフェイルオーバ閾値未満であれば、フェイルオーバ判定部13は、高負荷仮想マシンである仮想マシン40に障害が発生したと判定して、フェイルオーバの実行をフェイルオーバ実行部14に指示する。以下での、障害が発生したと考えられる仮想マシン40は、高負荷仮想マシンである仮想マシン40にあたる。このフェイルオーバ判定部13が、「第2判定部」の一例にあたる。
ここで、図6及び図7を参照して、フェイルオーバ判定部13による判定の具体例について説明する。図6は、フェイルオーバが実行されない場合のリクエスト割振数の一例を表す図である。また、図7は、フェイルオーバが実行される場合のリクエスト割振数の一例を表す図である。ここでも、仮想マシン#1〜#5という仮想マシン名を有する5台が仮想マシン40として存在する場合で説明する。また、フェイルオーバ閾値が2である場合で説明する。また、仮想マシン#3が高負荷仮想マシンであるとする。
仮想マシン#1〜#5のそれぞれへ送信されたリクエスト数を表すリクエスト割振数が図6に示す値である場合、フェイルオーバ判定部13は、予測リクエスト割振数を1/5×100=20として算出する。次に、フェイルオーバ判定部13は、仮想マシン#3のリクエスト割振数をリクエスト割振数の合計で除算して、実際の仮想マシン#3のリクエスト割振数を算出する。この場合、実際の仮想マシン#3のリクエスト割振数は、およそ15.26である。次に、フェイルオーバ判定部13は、実際の仮想マシン#3のリクエスト割振数を予測リクエスト割振数で除算して割振率比率を算出する。この場合、割振率比率は1.31である。そして、フェイルオーバ判定部13は、算出した割振率比率とフェイルオーバ閾値とを比較する。この場合、割振率比率がフェイルオーバ閾値未満であることから仮想マシン#3が一時的に高負荷であると判定して、フェイルオーバ判定部13は、フェイルオーバを実行しないことを決定する。
これに対して、仮想マシン#1〜#5のそれぞれへ送信されたリクエスト数を表すリクエスト割振数が図7に示す値である場合も、フェイルオーバ判定部13は、予測リクエスト割振数を1/5×100=20と算出する。次に、フェイルオーバ判定部13は、仮想マシン#3のリクエスト割振数をリクエスト割振数の合計で除算して、実際の仮想マシン#3のリクエスト割振数を算出する。この場合、実際の仮想マシン#3のリクエスト割振数は、およそ3.60である。次に、フェイルオーバ判定部13は、実際の仮想マシン#3のリクエスト割振数を予測リクエスト割振数で除算して割振率比率を算出する。この場合、割振率比率は5.56である。そして、フェイルオーバ判定部13は、算出した割振率比率とフェイルオーバ閾値とを比較する。この場合、割振率比率がフェイルオーバ閾値以上であり仮想マシン#3で障害が発生した可能性があると判定して、フェイルオーバ判定部13は、フェイルオーバの実行を決定する。
図2に戻って説明を続ける。フェイルオーバ実行部14は、フェイルオーバの実行の指示をフェイルオーバ判定部13から受ける。そして、フェイルオーバ実行部14は、障害が発生したと考えられる仮想マシン40を動作させるVMホスト4以外のVMホスト4を1台選択する。そして、フェイルオーバ実行部14は、仮想マシン40の起動を選択したVMホスト4に指示する。
次に、フェイルオーバ実行部14は、障害が発生したと考えられる仮想マシン40の情報をロードバランサ3の処理割振部31へ通知する。さらに、フェイルオーバ実行部14は、新たに起動させた仮想マシン40の情報を処理割振部31へ通知する。次に、フェイルオーバ実行部14は、障害が発生したと考えられる仮想マシン40に送信されたリクエストの処理を新たに起動させた仮想マシン40へ移管させる指示を処理割振部31に通知する。このフェイルオーバ実行部14が、「切替部」の一例にあたる。
図8は、フェイルオーバが実行された場合の情報処理システムの状態を表す図である。図8は、図1の状態にある情報処理システム100においてフェイルオーバが実行された場合の状態を表す。図8では、障害が発生したと考えられる仮想マシン40を仮想マシン42と表す。また、仮想マシン42が実行する処理の移管先となる仮想マシン40を仮想マシン43と表す。管理サーバ1は、リクエスト割振率を用いて仮想マシン42に障害が発生したと判定する。そして、管理サーバ1は、仮想マシン42を動作させるVMホスト4以外のVMホスト4を選択する。次に、管理サーバ1は、新たな仮想マシン43の起動指示を選択したVMホスト4に送信する。そして、起動指示を受けたVMホスト4は、新たに仮想マシン43を起動する。その後、管理サーバ1は、仮想マシン43の情報をロードバランサ3に通知する。さらに、管理サーバ1は、仮想マシン42が実行する処理の仮想マシン43への移管をロードバランサ3に指示する。これにより、仮想マシン42が実行する処理は、仮想マシン43に移管される。さらに、ロードバランサ3は、既存の仮想マシン40に仮想マシン41を加えてリクエストの割り振りを行うようになる。その後、管理サーバ1は、故障が発生したと考えられる仮想マシン42の停止を仮想マシン42を動作させるVMホスト4に指示する。指示を受けたVMホスト4は、仮想マシン42を停止させ、仮想マシン42を削除する。その後、管理サーバ1は、障害が発生したと考えられる仮想マシン40の情報をロードバランサ3へ通知する。これにより、図8に示すように、障害が発生したと考えられる仮想マシン42から新たに起動された仮想マシン43への切り替えが完了する。
図2に戻って説明を続ける。本実施例では、障害が発生した場合に、情報処理システム100に故障発生前の業務サーバの状態を維持させるため、新たに仮想マシン40を起動して、障害が発生した仮想マシン40が実行する処理を新たに起動した仮想マシン40に移管した。ただし、ロードバランシングの対象とする仮想マシン40の台数が減ることが許容できるのであれば、管理サーバ1は、故障が発生した仮想マシン40以外の既存の仮想マシン40に、故障が発生した仮想マシン40が実行する処理を移管してもよい。
図9は、障害発生と判定される仮想マシンの状態を説明するための図である。図9では、仮想マシン#1〜#5が存在し、障害が発生した可能性がある仮想マシン40が仮想マシン#3である場合を表す。
障害発生の可能性がある仮想マシン#3は、CPU使用率が高く且つ他の仮想マシン#1,#2,#4及び#5と比べてCPU使用率が高い仮想マシン40である。その上で、障害発生の可能性がある仮想マシン#3は、リクエスト割振率が低い仮想マシン40である。すなわち、管理サーバ1は、仮想マシン40の状態が領域200に入っている場合に、その仮想マシン40に障害が発生した可能性があると判定する。
ロードバランサ3は、処理割振部31を有する。処理割振部31は、端末装置7から送信されたリクエストを、負荷が均一になるように各VMホスト4で動作する各仮想マシン40に割り振り、各仮想マシン40に割り振ったリクエストを送信する。図2において一点鎖線で囲われた枠内に含まれるVMホスト4で動作する仮想マシン40がロードバランスの対象となる仮想マシン40である。すなわち、処理割振部31は、負荷が均一になるように一点鎖線の枠内の仮想マシン40へリクエストを送信する。図3において点線矢印はリクエストの流れを表す。さらに、処理割振部31は、端末装置7から受信したリクエストの割り振り先をフェイルオーバ判定部13に通知する。
また、オートスケールが行われる場合、処理割振部31は、新たに起動された仮想マシン40の情報を管理サーバ1のオートスケール実行部12から受信する。そして、処理割振部31は、既存の仮想マシン40に新たに起動された仮想マシン40を加えてロードバランシングを実行する。これにより、リクエストを処理する仮想マシン40が増えるので、各仮想マシン40の負荷を軽減させることができる。
また、フェイルオーバが行われる場合、処理割振部31は、新たに起動された仮想マシン40の情報を管理サーバ1のフェイルオーバ実行部14から受信する。また、処理割振部31は、障害が発生したと考えられる仮想マシン40の情報をフェイルオーバ実行部14から受信する。さらに、処理割振部31は、故障が発生したと考えられる仮想マシン40が実行する処理を新たに起動された仮想マシン40へ移管する指示をフェイルオーバ実行部14から受ける。
そして、処理割振部31は、障害が発生したと考えられる仮想マシン40に送信したリクエストのうちまだ処理が完了していないリクエストを新たに起動された仮想マシン40へ再送する。その後、処理割振部31は、ロードバランシングの対象とする仮想マシン40の中から障害が発生したと考えられる仮想マシン40を外し、さらに、新たに起動された仮想マシン40を加えてロードバランシングを実行する。これにより、リクエストを処理する仮想マシン40が、障害が発生したと考えられる仮想マシン40が行う処理が新たに起動された仮想マシン40へ移管され、リクエストの処理を継続することができる。
次に、図10を参照して、本実施例に係る管理サーバ1による高負荷時処理の実行の流れについて説明する。図10は、実施例に係る管理サーバによる高負荷時処理の実行のフローチャートである。
監視サーバ2のCPU使用率監視部21は、各VMホスト4で動作する各仮想マシン40のそれぞれのCPU使用率を取得する。そして、高負荷判定部22は、各仮想マシン40のCPU使用率をCPU使用率監視部21から受信する(ステップS1)。
高負荷判定部22は、CPU使用率が高負荷閾値を超える仮想マシン40が存在するか否かを判定する(ステップS2)。CPU使用率が高負荷閾値を超える仮想マシン40が存在しない場合(ステップS2:否定)、高負荷判定部22は、所定周期待機し(ステップS3)、ステップS1へ戻る。
これに対して、CPU使用率が高負荷閾値を超える仮想マシン40が存在する場合(ステップS2:肯定)、高負荷判定部22は、CPU使用率が高負荷閾値を超える仮想マシン40を高負荷仮想マシンとして特定する(ステップS4)。そして、高負荷判定部22は、高負荷仮想マシンである仮想マシン40の情報及び各仮想マシン40のCPU使用率を管理サーバ1のオートスケール判定部11へ出力する。
オートスケール判定部11は、高負荷仮想マシンである仮想マシン40の情報及び各仮想マシン40のCPU使用率の入力を高負荷判定部22から受ける。そして、オートスケール判定部11は、高負荷仮想マシン以外の仮想マシン40のCPU使用率の平均値に対する高負荷仮想マシンである仮想マシン40のCPU使用率の割合を算出する。そして、オートスケール判定部11は、算出した割合が安全係数未満か否かにより、ロードバランス対象である仮想マシン40における全体的な高負荷が発生したか否かを判定する(ステップS5)。
算出した割合がCPU使用率未満であり、全体的な高負荷が発生したと判定した場合(ステップS5:肯定)、オートスケール判定部11は、オートスケールの実行をオートスケール実行部12に指示する。オートスケール実行部12は、オートスケールの実行の指示を受けて、オートスケールを実行する(ステップS6)。
一方、算出した割合がCPU使用率以上であり、全体的な高負荷が発生していないと判定した場合(ステップS5:否定)、オートスケール判定部11は、高負荷仮想マシンである仮想マシン40の情報をフェイルオーバ判定部13に出力する。フェイルオーバ判定部13は、高負荷仮想マシンである仮想マシン40の情報の入力をオートスケール判定部11から受ける。そして、オートスケール判定部11は、一定時間待機する(ステップS7)。
その後、オートスケール判定部11は、ロードバランサ3の処理割振部31から取得した各仮想マシン40へのリクエストの情報を用いて、高負荷仮想マシンである仮想マシン40へのリクエスト割振率を算出する。そして、高負荷仮想マシンである仮想マシン40へのリクエスト割振率がフェイルオーバ閾値未満か否かを判定する(ステップS8)。高負荷仮想マシンである仮想マシン40へのリクエスト割振率がフェイルオーバ閾値以上の場合(ステップS8:否定)、オートスケール判定部11は、フェイルオーバの処理を完了する。
これに対して、高負荷仮想マシンである仮想マシン40へのリクエスト割振率がフェイルオーバ閾値未満の場合(ステップS8:肯定)、オートスケール判定部11は、フェイルオーバを実行する(ステップS9)。
次に、図11を参照して、オートスケールの処理の流れについて説明する。図11は、オートスケールの処理のフローチャートである。図11は、図10のステップS6で実行される処理の一例にあたる。
オートスケール実行部12は、各VMホスト4の負荷率などから、仮想マシン40を新たに起動させるVMホスト4を選択する(ステップS11)。
次に、オートスケール実行部12は、仮想マシン40の起動を選択したVMホスト4に指示する(ステップS12)。指示を受けたVMホスト4は、仮想マシン40を新たに起動する。
次に、オートスケール実行部12は、新たに起動させた仮想マシン40の情報を処理割振部31に通知する(ステップS13)。例えば、オートスケール実行部12は、DNSがある場合には新たに起動させた仮想マシン40の名前を通知する。
処理割振部31は、新たに起動された仮想マシン40の情報をオートスケール実行部12から受信する。そして、処理割振部31は、既存の仮想マシン40に新たに起動された仮想マシン40を加えてロードバランシングを実行する(ステップS14)。
次に、図12を参照して、フェイルオーバの処理の流れについて説明する。図12は、フェイルオーバの処理のフローチャートである。図12は、図10のステップS9で実行される処理の一例にあたる。
フェイルオーバ実行部14は、各VMホスト4の負荷率などから、仮想マシン40を新たに起動させるVMホスト4を選択する(ステップS21)。
次に、フェイルオーバ実行部14は、仮想マシン40の起動を選択したVMホスト4に指示する(ステップS22)。指示を受けたVMホスト4は、仮想マシン40を新たに起動する。
次に、フェイルオーバ実行部14は、障害が発生したと考えられる仮想マシン40の停止を障害が発生したと考えられる仮想マシン40が動作するVMホスト4に指示する(ステップS23)。指示を受けたVMホスト4は、障害が発生したと考えられる仮想マシン40を停止する。
次に、フェイルオーバ実行部14は、故障が発生したと考えられる仮想マシン40の情報及び新たに起動させた仮想マシン40の情報を処理割振部31に通知する(ステップS24)。
さらに、フェイルオーバ実行部14は、故障が発生したと考えられる仮想マシン40が実行する処理の新たに起動された仮想マシン40への移管を処理割振部31に指示する(ステップS25)。
処理割振部31は、故障が発生したと考えられる仮想マシン40の情報及び新たに起動させた仮想マシン40の情報をフェイルオーバ実行部14から受信する。さらに、処理割振部31は、故障が発生した仮想マシン40が実行する処理の新たに起動された仮想マシン40への移管指示をフェイルオーバ実行部14から受ける。そして、処理割振部31は、障害が発生したと考えられる仮想マシン40に送信したリクエストのうちまだ処理が完了していないリクエストを新たに起動された仮想マシン40へ再送する。その後、処理割振部31は、ロードバランシングの対象とする仮想マシン40の中から障害が発生した仮想マシン40を除き、さらに、新たに起動された仮想マシン40を加えてロードバランシングを実行する(ステップS26)。
以上に説明したように、本実施例に係る管理サーバは、CPU使用率を用いてオートスケールの実行を判定し、さらにリクエスト割振率を用いてフェイルオーバの実行を判定する。これにより、障害発生時のオートスケールの実行を回避するとともに、一時的な高負荷によるフェイルオーバの実行を回避することができる。したがって、オートスケールの実行及びフェイルオーバの実行の判定の正確性を向上させることができ、システムの信頼性を向上させることができる。
(ハードウェア構成)
次に、図13を参照して、管理サーバ1、監視サーバ2及びロードバランサ3のハードウェア構成を説明する。図13は、情報処理装置のハードウェア構成図である。管理サーバ1、監視サーバ2及びロードバランサ3は、例えば、図13に示す情報処理装置90により実現される。
情報処理装置90は、CPU91、RAM(Random Access Memory)92、DSP(Digital Signal Processor)93、ハードディスク94、入出力インタフェース95及びネットワークインタフェース96を有する。CPU91は、RAM92、DSP93、ハードディスク94、入出力インタフェース95及びネットワークインタフェース96とバスで接続される。
入出力インタフェース95は、キーボードやマウスなどの入力装置及びモニタなどの出力装置が接続される。操作者は、入力装置を用いて情報処理装置90への入力を行う。また、操作者は、出力装置を用いて情報の確認を行う。また、DSP93は、加増表示制御を行う。DSP93は、入出力インタフェース95を介してモニタなどに画像を表示させる。
ネットワークインタフェース96は、LAN5及びネットワーク6へ接続するためのインタフェースである。管理サーバ1、監視サーバ2及びロードバランサ3は、それぞれ、ネットワークインタフェース96によりLAN5に接続され、LAN5に接続された他の機器と通信を行う。また、ロードバランサ3は、ネットワークインタフェース96によりネットワーク6に接続され端末装置7と通信を行う。
ハードディスク94は、補助記憶装置である。管理サーバ1におけるハードディスク94は、図2に例示したオートスケール判定部11、オートスケール実行部12、フェイルオーバ判定部13及びフェイルオーバ実行部14の機能を実現するためのプログラムを含む各種プログラムを格納する。また、監視サーバ2におけるハードディスク94は、図2に例示したCPU使用率監視部21及び高負荷判定部22の機能を実現するプログラムを含む各種プログラムを格納する。また、ロードバランサ3におけるハードディスク94は、図2に例示した処理割振部31の機能を実現するプログラムを含む各種プログラムを格納する。
管理サーバ1におけるCPU91は、各種プログラムをハードディスク94から読み出し、主記憶装置であるRAM92上に展開して実行する。これにより、管理サーバ1におけるCPU91は、図2に例示したオートスケール判定部11、オートスケール実行部12、フェイルオーバ判定部13及びフェイルオーバ実行部14の機能を実現する。また、監視サーバ2におけるCPU91は、各種プログラムをハードディスク94から読み出し、主記憶装置であるRAM92上に展開して実行する。これにより、監視サーバ2におけるCPU91は、図2に例示したCPU使用率監視部21及び高負荷判定部22の機能を実現する。また、ロードバランサ3におけるCPU91は、各種プログラムをハードディスク94から読み出し、主記憶装置であるRAM92上に展開して実行する。これにより、ロードバランサ3におけるCPU91は、図2に例示した処理割振部31の機能を実現する。
1 管理サーバ
2 監視サーバ
3 ロードバランサ
4 VMホスト
5 LAN
6 ネットワーク
7 端末装置
11 オートスケール判定部
12 オートスケール実行部
13 フェイルオーバ判定部
14 フェイルオーバ実行部
21 CPU使用率監視部
22 高負荷判定部
31 処理割振部
40〜43 仮想マシン

Claims (9)

  1. 処理を実行する1つ又は複数の処理実行部と、
    各前記処理実行部に処理要求を割り振る処理割振部と、
    各前記処理実行部のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する高負荷判定部と、
    前記高負荷判定部により前記高負荷処理実行部が存在すると判定された場合、各前記処理実行部の負荷を基に前記処理実行部を増やすか否かを判定する第1判定部と、
    前記第1判定部により前記処理実行部を増やさないと判定された場合、各前記処理実行部に割り振られた処理要求の数を基に、前記高負荷処理実行部が実行する処理を他の処理実行部へ移すか否かを判定する第2判定部と、
    前記第2判定部により前記高負荷処理実行部が実行する処理を移すと判定された場合、前記高負荷処理実行部が実行する処理を前記他の処理実行部に実行させる切替部と
    を備えたことを特徴とする情報処理装置。
  2. 前記第1判定部は、前記高負荷処理実行部を除いた各前記処理実行部の負荷の平均と前記高負荷処理実行部の負荷とを比較して前記処理実行部を増やすか否かを判定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2判定部は、前記処理割振部により各前記処理実行部に割り振られた前記処理要求の数から前記高負荷処理実行部への割振率を算出し、算出した前記割振率を基に前記高負荷処理実行部が実行する処理を前記他の処理実行部へ移すか否かを判定することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記第2判定部は、前記高負荷処理実行部への前記割振率が所定値よりも低い場合、前記高負荷処理実行部が実行する処理を前記他の処理実行部に移すと判定することを特徴とする請求項3に記載の情報処理装置。
  5. 前記第2判定部は、前記第1判定部により前記処理実行部を増やさないと判定されてから所定時間待機した後に、前記高負荷処理実行部が実行する処理を前記他の処理実行部に移すか否かを判定することを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
  6. 前記切替部は、前記他の処理実行部を新たに生成し、生成した前記他の処理実行部に前記高負荷処理実行部が実行する処理を実行させ、前記高負荷処理実行部を停止することで、前記高負荷処理実行部が実行する処理を他の処理実行部に実行させることを特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。
  7. 業務処理装置、負荷分散装置及び管理制御装置を有する情報処理システムであって、
    前記業務処理装置は、
    1つ又は複数の処理実行部を備え、
    前記負荷分散装置は、
    各前記処理実行部に処理要求を割り振る処理割振部を備え、
    前記管理制御装置は、
    各前記処理実行部のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する高負荷判定部と、
    前記高負荷判定部により前記高負荷処理実行部が存在すると判定された場合、各前記処理実行部の負荷を基に前記処理実行部を増やすか否かを判定する第1判定部と、
    前記第1判定部により前記処理実行部を増やさないと判定された場合、各前記処理実行部に割り振られた処理要求の数を基に、前記高負荷処理実行部が実行する処理を他の処理実行部に移すか否かを判定する第2判定部と、
    前記第2判定部により前記高負荷処理実行部が実行する処理を移すと判定された場合、前記高負荷処理実行部が実行する処理を他の処理実行部に実行させる切替部と
    を備えたことを特徴とする情報処理システム。
  8. 1つ又は複数の処理実行装置に処理要求を割り振り、
    各前記処理実行装置のうち負荷が閾値を超える高負荷処理実行装置が存在するか否かを判定し、
    前記高負荷処理実行装置が存在する場合、各前記処理実行装置の負荷を基に前記処理実行装置を増やすか否かを判定し、
    前記処理実行装置を増やさない場合、各前記処理実行装置に割り振られた処理要求の数を基に、前記高負荷処理実行装置が実行する処理を他の処理実行装置へ移すか否かを判定し、
    前記高負荷処理実行装置が実行する処理を移す場合、前記高負荷処理実行装置が実行する処理を前記他の処理実行装置に実行させる
    ことを特徴とする情報処理方法。
  9. 1つ又は複数の処理実行装置に処理要求を割り振り、
    各前記処理実行装置のうち負荷が閾値を超える高負荷処理実行装置が存在するか否かを判定し、
    前記高負荷処理実行装置が存在する場合、各前記処理実行装置の負荷を基に前記処理実行装置を増やすか否かを判定し、
    前記処理実行装置を増やさない場合、各前記処理実行装置に割り振られた処理要求の数を基に、前記高負荷処理実行装置が実行する処理を他の処理実行装置へ移すか否かを判定し、
    前記高負荷処理実行装置が実行する処理を移す場合、前記高負荷処理実行装置が実行する処理を前記他の処理実行装置に実行させる
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
JP2017073717A 2017-04-03 2017-04-03 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム Pending JP2018180591A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017073717A JP2018180591A (ja) 2017-04-03 2017-04-03 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
US15/928,368 US20180285169A1 (en) 2017-04-03 2018-03-22 Information processing system and computer-implemented method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017073717A JP2018180591A (ja) 2017-04-03 2017-04-03 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2018180591A true JP2018180591A (ja) 2018-11-15

Family

ID=63669398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017073717A Pending JP2018180591A (ja) 2017-04-03 2017-04-03 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム

Country Status (2)

Country Link
US (1) US20180285169A1 (ja)
JP (1) JP2018180591A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086245A (ja) * 2019-11-26 2021-06-03 ウイングアーク1st株式会社 チャットシステムおよびチャット管理装置
JP2024517363A (ja) * 2021-04-13 2024-04-22 ユーアイパス,インコーポレイテッド ロボティックプロセスオートメーションのための自動スケーリング戦略

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884779B2 (en) * 2018-12-07 2021-01-05 Nutanix, Inc. Systems and methods for selecting virtual machines to be migrated
CN110012076B (zh) * 2019-03-12 2022-07-01 新华三技术有限公司 一种连接建立方法及装置
CN112231066B (zh) * 2020-10-29 2024-02-13 北京思特奇信息技术股份有限公司 一种基于jvm内存使用的优化处理方法及系统
CN112764879A (zh) * 2021-01-14 2021-05-07 深圳市科思科技股份有限公司 负载均衡方法、电子设备及计算机可读存储介质
US20230409368A1 (en) * 2022-06-17 2023-12-21 Microsoft Technology Licensing, Llc Virtual machine autoscaling with overclocking

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607129B2 (en) * 2005-04-07 2009-10-20 International Business Machines Corporation Method and apparatus for using virtual machine technology for managing parallel communicating applications
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US20140373010A1 (en) * 2013-06-14 2014-12-18 International Business Machines Corporation Intelligent resource management for virtual machines
WO2016029974A1 (en) * 2014-08-29 2016-03-03 Nec Europe Ltd. Method for operating a virtual network infrastructure
US10042660B2 (en) * 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086245A (ja) * 2019-11-26 2021-06-03 ウイングアーク1st株式会社 チャットシステムおよびチャット管理装置
JP7381305B2 (ja) 2019-11-26 2023-11-15 ウイングアーク1st株式会社 チャットシステムおよびチャット管理装置
JP2024517363A (ja) * 2021-04-13 2024-04-22 ユーアイパス,インコーポレイテッド ロボティックプロセスオートメーションのための自動スケーリング戦略
JP7742077B2 (ja) 2021-04-13 2025-09-19 ユーアイパス,インコーポレイテッド ロボティックプロセスオートメーションのための自動スケーリング戦略

Also Published As

Publication number Publication date
US20180285169A1 (en) 2018-10-04

Similar Documents

Publication Publication Date Title
JP2018180591A (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP6321031B2 (ja) 優先度が付与された複数のバーチャルマシン及び複数のアプリケーションに対して、共有された複数のリソースの品質に基づいて、サービスの品質を提供すること
JP6237318B2 (ja) 管理装置、業務負荷分散管理方法および業務負荷分散管理プログラム
JP5557590B2 (ja) 負荷分散装置及びシステム
US9733961B2 (en) Virtual machine allocation at physical resources
US10609159B2 (en) Providing higher workload resiliency in clustered systems based on health heuristics
US12206567B2 (en) Dynamic cloning of application infrastructures
US8065560B1 (en) Method and apparatus for achieving high availability for applications and optimizing power consumption within a datacenter
US20180018244A1 (en) Node system, server apparatus, scaling control method, and program
US20160156567A1 (en) Allocation method of a computer resource and computer system
US20120117242A1 (en) Service linkage system and information processing system
JP2013535745A (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
US9778997B2 (en) Server backup method and backup system using the method
CN106133693A (zh) 虚拟机的迁移方法、装置及设备
WO2015101091A1 (zh) 一种分布式资源调度方法及装置
US11803414B2 (en) Diagonal autoscaling of serverless computing processes for reduced downtime
CN112052072A (zh) 一种虚拟机的调度策略及超融合系统
US9836342B1 (en) Application alerting system and method for a computing infrastructure
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
JP2019144715A (ja) 情報処理装置、情報処理システム、及びプログラム
JP2014067322A (ja) 仮想サーバの負荷分散システム、および負荷分散方法
CN105335234A (zh) 一种虚拟机即时迁移方法
CN112685167B (zh) 资源使用方法、电子设备和计算机程序产品
US9742687B2 (en) Management system and method for execution of virtual machines
JP6597324B2 (ja) オートスケール方法、オートスケールプログラム、情報処理装置及び情処理システム