JP6256594B2 - プログラム、管理方法およびコンピュータ - Google Patents

プログラム、管理方法およびコンピュータ Download PDF

Info

Publication number
JP6256594B2
JP6256594B2 JP2016509845A JP2016509845A JP6256594B2 JP 6256594 B2 JP6256594 B2 JP 6256594B2 JP 2016509845 A JP2016509845 A JP 2016509845A JP 2016509845 A JP2016509845 A JP 2016509845A JP 6256594 B2 JP6256594 B2 JP 6256594B2
Authority
JP
Japan
Prior art keywords
server
virtual server
servers
virtual
hierarchy
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 - Fee Related
Application number
JP2016509845A
Other languages
English (en)
Other versions
JPWO2015145753A1 (ja
Inventor
英樹 原
英樹 原
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
Publication of JPWO2015145753A1 publication Critical patent/JPWO2015145753A1/ja
Application granted granted Critical
Publication of JP6256594B2 publication Critical patent/JP6256594B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、負荷を管理するプログラム、管理方法およびコンピュータに関する。
複数のサーバ装置を有するシステムでは、クライアント装置などからの要求に応じた複数の処理を、複数のサーバ装置で並列に実行させることができる。これにより、処理効率が向上する。システム内のサーバ装置の台数は、例えば、そのシステムの負荷に応じて決定される。運用中にシステムの負荷が増大した場合、例えば、システム内のサーバ装置の数を増やすことができる。これにより、サーバ装置1つあたりの負荷が減少し、処理効率の低下が抑止される。以下、システム内のサーバ装置の数を増やすことを、スケールアウトと呼ぶ。
スケールアウトする場合、新たなサーバ装置を起動し、そのサーバ装置にも要求を振り分けるようにする。このようなスケールアウトは、例えば、管理者による手動操作によって行われる。また、管理者の操作なしに、システムにおいて自動でスケールアウトを行うこともできる。スケールアウトを自動で行う機能は、オートスケールと呼ばれる。
スケールアウトを実施する場合、事前に、システム増強の要否判定が行われる。例えば、管理サーバによってシステムの負荷を監視する。そして管理サーバは、サーバ装置1台あたりの負荷が所定値を超えたことを検出すると、スケールアウトなどによるシステムの増強を要すると判定する。
なお、オートスケール以外にも、システムの負荷増大に対処するための、様々な技術が考えられている。
例えば、複数の異なるハードウェアおよびソフトウェア(すなわち、プラットフォーム)の異なる組合せを持つ複数の異なる装置を使用するネットワークの最適化システムが提案されている。このシステムは、このようなネットワークの性能を正確に評価し、調節し、最適化する。
また、ノードのクラスタに対する非集中型のアプリケーション・リソース割振りの方法が提案されている。この方法では、実行されているアプリケーションの集合を含むローカル・ノードが、ノード・サブセットからアプリケーションのリソース利用データを受信し、そのリソース利用データに基づいて、ローカル・ノードで実行するアプリケーションの集合を修正する。
また、システムの負荷が増大した場合にリアルタイム性を維持しながら負荷分散する技術が提案されている。この技術では、複数のサーバを含む計算機システムにおいて、サーバの負荷が所定の上限値を超えた場合、そのサーバで実行される中のサービスの一部を実行させる転送先サーバを選択する。そして計算機システムは、負荷が上限値を超えたサーバに割り当てられたサービスから一以上のサービスを選択し、転送先サーバに選択されたサービスを割り当てる。
特表2005−505859号公報 特開2007−207225号公報 特開2010−134518号公報
ここで、複数のサーバ装置を有するシステムでは、負荷が変動してからシステム増強の必要性の判定に時間がかかることがある。例えば、大量のトランザクションを複数のサーバ装置が処理する場合、サーバ装置が大量に必要となる。そのため、大量のサーバ装置の処理による負荷の監視や分析に時間がかかる。負荷の監視や分析に時間がかかれば、例えば、オートスケールによりスケールアウトが実行されるまでに過大な遅延が発生する。すると、システムによるトランザクションの実行が遅れ、場合によっては、システムの障害の原因にもなり得る。
一側面では、本発明は、システム増強の要否判定を迅速に行うことができるプログラム、管理方法およびコンピュータを提供することを目的とする。
一側面では、コンピュータに処理を実行させるプログラムが提供される。コンピュータは、このプログラムを実行することで、そのコンピュータまたはそのコンピュータと同じシステムに属する他のコンピュータがサーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成している。コンピュータは、そのコンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、1以上の第2のサーバ以下に従属する1以上のサーバ群に属するサーバの負荷値を受信する。そしてコンピュータは第1のサーバの負荷値と、1以上の第2のサーバそれぞれから受信した負荷値に基づいて、システムの増強の要否を判定する。
一側面では、システム増強の要否判定を迅速に行うことができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 実行サーバ装置のハードウェア例を示すブロック図である。 仮想サーバ間の性能測定値の受け渡し関係を定義する木構造の一例を示すブロック図である。 端末装置からの要求を振り分ける接続関係の一例を示すブロック図である。 実行サーバ装置と管理サーバの機能例を示すブロック図である。 閾値情報テーブルの設定例を示す図である。 負荷分析値テーブルの例を示す図である。 トランザクションの変化量の例について示すブロック図である。 サーバ数管理テーブルの例を示す図である。 仮想サーバ数の取得例を示すブロック図である。 階層管理テーブルの例を示す図である。 階層管理テーブルの設定例を示す図である。 仮想サーバによるオートスケールの手順例を示すフローチャートである。 トランザクション数を取得する手順例を示すフローチャートである。 トランザクション数を分析する手順例を示すフローチャートである。 オートスケールを実行する手順例を示すフローチャートである。 スケールアウトの手順例を示すフローチャートである。 スケールアウトにおける装置間の応答例を示す図である。 スケールアウト例を示す第1のブロック図である。 スケールアウト例を示す第2のブロック図である。 スケールアウト例を示す第3のブロック図である。 第1のスケールインの手順例を示すフローチャートである。 第1のスケールインにおける装置間の応答例を示す図である。 第1のスケールイン例を示すブロック図である。 第2のスケールインの手順例を示すフローチャートである。 第2のスケールインにおける装置間の応答例を示す図である。 第2のスケールイン例を示すブロック図である。 第3のスケールインの手順例を示すフローチャートである。 第3のスケールインにおける装置間の応答例を示す図である。 第3のスケールイン例を示すブロック図である。 閾値情報テーブルの変化例を示す図である。 負荷分析値テーブルの変化例を示す図である。 第2の実施の形態の効果を示す第1のブロック図である。 第2の実施の形態の効果を示す第2のブロック図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、サーバ10,10a,10b,10cを有する。サーバ10,10a,10b,10cは仮想マシンでもよい。サーバ10,10a,10b,10cは、複数の処理を並行して実施する。サーバ10,10a,10b,10cは、負荷値の受け渡し関係が木構造で定義されている。サーバ10,10a,10b,10cは、それぞれ、木構造において1つ下に接続された1以上のサーバ10aから、木構造においてそのサーバ10a以下に接続されたサーバ群(サーバ10a,10b)の負荷値を受信する。そして、サーバ10,10a,10b,10cは、それぞれ、受信した負荷値に基づいて、オートスケールを行うか否かの判定を自律的に実行する。オートスケールは、システムの負荷に応じてスケールアウト・スケールインを自動的に行う機能である。スケールアウトは、システムを構成するサーバの数を増やすことである。スケールアウトは、例えばシステムの処理能力を向上させるために実行される。スケールインは、システムを構成するサーバの数を減らすことである。スケールインは、例えばシステム全体のリソースの効率的に使用するために実行される。オートスケールを行うか否かの判定のために、サーバ10,10a,10b,10cは、自己のサーバの負荷値を計測する機能を有する。負荷値とは、例えば、サーバが実行する所定時間あたりのトランザクション数やCPU(Central Processing Unit)使用率など自己のサーバにかかる負荷を示す値である。
サーバ10は、受信部11および判定部12を有する。受信部11および判定部12は、例えば、CPUやDSP(Digital Signal Processor)などのプロセッサや、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのその他の電子回路を用いて実現される。プロセッサは、例えば、メモリに記憶されたプログラムを実行する。プロセッサは、プログラムの命令を実行するための演算器やレジスタの他に、データ処理のための専用の回路を含んでいてもよい。サーバ10と同様に、サーバ10a,10b,10cも、受信部11a,11b,11cと判定部12a,12b,12cを有している。
受信部11は、木構造におけるサーバ10の1つ下の各サーバから、合計負荷値と、総サーバ数とを受信する。合計負荷値とは、木構造における自己のサーバ以下の構造に存在するサーバの負荷値の合計である。総サーバ数とは、木構造における自己のサーバ以下の構造に存在するサーバの数である。
判定部12は、自己のサーバ10が複数の処理を実行したときの負荷値、受信した合計負荷値および総サーバ数に基づいて、システムの増強の有無を判定する。例えば、まず、判定部12は、自己のサーバ10が複数の処理を実行したときの負荷値と、受信した合計負荷値の和とに基づき、木構造におけるサーバ10以下のサーバにおける合計負荷値を算出する。次に、判定部12は、受信した総サーバ数に1を加算し、木構造におけるサーバ10以下の総サーバ数を算出する。次に、判定部12は、「算出した合計負荷値÷サーバ10以下の総サーバ数」により、木構造におけるサーバ10以下のサーバの負荷値の平均値(以下、平均負荷値)を算出する。そして、判定部12は、算出した平均負荷値が閾値以上と判定した場合、システムを増強すると判定する。システムの増強は、例えばスケールアウトによって実現される。閾値は、例えば、RAM(Random Access Memory)などの揮発性メモリ、あるいは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置に記憶されている。また、判定部12は、算出した平均負荷値が別の閾値未満と判定した場合、システムを縮小すると判定してもよい。システムの縮小は、例えばスケールインによって実現される。
ここで、サーバ10,10a,10bにより木構造で構成されたシステムに、サーバ10cをスケールアウトする場合について説明する。システムを増強すると判定する閾値は100とする。木構造においてサーバ10の下にサーバ10aが存在し、サーバ10aの下にサーバ10bが存在する。サーバ10の負荷値は160であり、サーバ10aの負荷値は65であり、サーバ10bの負荷値は75である。
まず、サーバ10bは、木構造における下のサーバがないため、サーバ10b以下のサーバの合計負荷値およびサーバの平均負荷値は共に75となり、総サーバ数は1となる。サーバ10bは、木構造における1つ上のサーバ10aにサーバ10bの合計負荷値=75および総数=1を送信する。
次に、サーバ10aは、サーバ10bから合計負荷値=75および総数=1を受信する。サーバ10aの負荷値は65のため、サーバ10a以下のサーバの合計負荷値は140となる。また、サーバ10bから総数=1を受信しているため、サーバ10a以下の総サーバ数は1+1=2となる。すると、サーバの平均負荷値は140÷2=70となる。サーバ10aは、1つ上の階層であるサーバ10に合計負荷値=140および総数=2を送信する。
そして、サーバ10は、サーバ10aから合計負荷値=140および総数=2を受信する。サーバ10の負荷値は160のため、木構造におけるサーバ10以下のサーバの合計負荷値は300となる。また、サーバ10aから総数=2を受信しているため、サーバ10において、木構造におけるサーバ10以下の総サーバ数は2+1=3となる。すると、平均負荷値は300÷3=100となる。木構造におけるサーバ10以下のサーバの平均負荷値が閾値(100)以上のため、サーバ10は、木構造におけるサーバ10の下にサーバ10cを追加する追加要求を出力する。追加要求は、例えばオートスケールを実行する管理サーバで受信され、管理サーバによってシステムにサーバ10cが追加される。これにより、サーバ10の負荷値が軽減される。
第1の実施の形態によれば、木構造により負荷値の受け渡し関係が定義された各サーバが、木構造において自己の1つ下の各サーバから、各サーバ以下の構造に含まれるサーバの合計負荷値および総数を受信する。そして各サーバが自律的に、木構造における自己以下のサーバにおける平均負荷に応じて、システムを増強するか否かを判定する。これにより、複数の処理を実行する各サーバの負荷値を集計し、システムの増強の有無を判定するためのサーバを用いる方法に比べ、システムを増強するか否かの判断のために個々のサーバが収集する情報量が少なくなる。よって、大量のサーバを用いたとしても、各サーバの負荷値の集計に負荷がかからず、オートスケールの際に発生する遅延を抑制できる。
また、木構造により構成された各サーバが、受信した合計負荷値と自己のサーバの負荷値とに基づいて、システムを増強するか否かを判定する。これにより、各サーバの負荷に偏りがあり、例えば局所的に負荷が集中している場合も、サーバを増強するか否かの適切な判定が可能となり、各サーバの負荷を平準化できる。
なお、各サーバが、システムを増強するか否かを判定する際、自己のサーバにおける平均負荷値に加え、平均負荷値の変化量または平均負荷値の変化量における変化量に基づいて判定してもよい。
また、各サーバが平均負荷値を算出する際、1つ下の階層のサーバから総サーバ数を受信する代わりに、木構造における自己のサーバのノードの深さまたは高さにより総サーバ数を概算してもよい。
また、サーバ10,10a,10b,10cは仮想マシンでなくてもよい。この場合、スケールアウトは、例えば、予め複数のサーバを予備のサーバとして用意し、予備のサーバをシステムの構成に加えることで実現できる。スケールインは、例えば、システムを構成するサーバのいずれかをシステムの構成から予備のサーバにすることで実現できる。
[第2の実施の形態]
次に、仮想化されたサーバを用いたオートスケールの実施例について説明する。仮想化とは、コンピュータの物理リソースを抽象化することである。例えば、サーバを仮想化すると、1台のサーバ装置を複数のサーバ装置に見せかけることができる。以下、仮想化されたサーバ装置を、仮想サーバと呼ぶ。仮想化において、仮想サーバのスケールアウトは、システムの構成に仮想サーバを増やすことである。仮想サーバのスケールインは、システムの構成から仮想サーバを減らすことである。
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、端末装置21、負荷分散装置22、データベースサーバ装置23、実行サーバ装置100、および仮想化管理サーバ装置200を有する。端末装置21は、ネットワーク30を介して負荷分散装置22と接続されている。負荷分散装置22、データベースサーバ装置23、実行サーバ装置100、および仮想化管理サーバ装置200は、ネットワーク31を介して相互に接続されている。
端末装置21は、システムの利用者等が使用するクライアントコンピュータである。端末装置21は、ネットワーク30および負荷分散装置22を介して、実行サーバ装置100に複数のトランザクションの実行を要求する。
負荷分散装置22は、端末装置21に要求された複数のトランザクションを複数のサーバ装置に振り分けるサーバコンピュータである。負荷分散装置22は、端末装置21から要求された複数のトランザクションを、実行サーバ装置100が用いる複数の仮想サーバに処理を振り分ける。
データベースサーバ装置23は、HDDなどの不揮発性の記憶装置にデータを記憶して管理するサーバコンピュータである。データベースサーバ装置23は、実行サーバ装置100が複数のトランザクションを実行するために参照するデータや、トランザクション実行時に生成されるデータを記憶する。
実行サーバ装置100は、複数の仮想サーバを並列して動作させることができるサーバコンピュータである。実行サーバ装置100は、2台以上存在してもよい。その場合、複数の仮想サーバは、複数の実行サーバ装置に分散して配置されていてもよい。複数の仮想サーバを用いて、端末装置21から要求された複数のトランザクションを実行する。また、実行サーバ装置100は、トランザクションによる負荷に応じて、仮想化管理サーバ装置200に仮想サーバのスケールアウトまたはスケールインを要求する。
仮想化管理サーバ装置200は、仮想サーバをスケールアウトまたはスケールインする機能を有するサーバコンピュータである。仮想化管理サーバ装置200は、実行サーバ装置100の要求に応じて、実行サーバ装置100が用いる仮想サーバをスケールアウトまたはスケールインする。
なお、データベースサーバ装置23、および仮想化管理サーバ装置200は、仮想化された仮想マシンでもよい。
図3は、実行サーバ装置のハードウェア例を示すブロック図である。実行サーバ装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信インタフェース107を有する。上記の各ユニットは、実行サーバ装置100が備えるバス108に接続されている。
CPU101は、プログラムの命令を実行する演算器を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、実行サーバ装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。
RAM102は、CPU101が実行するプログラムや計算に用いられるデータを一時的に記憶する揮発性メモリである。なお、実行サーバ装置100は、RAM以外の種類のメモリを備えてもよく、複数の揮発性メモリを備えてもよい。
HDD103は、OS(Operating System)やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、実行サーバ装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、実行サーバ装置100に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部105は、実行サーバ装置100に接続された入力デバイス42から入力信号を取得し、CPU101に通知する。入力デバイス42としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ106は、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、CPU101からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク31を介して他のコンピュータ(例えば、負荷分散装置22や仮想化管理サーバ装置200)と通信を行うインタフェースである。通信インタフェース107は、有線網に接続する有線インタフェースでもよいし、無線網に接続する無線インタフェースでもよい。
ただし、実行サーバ装置100は、ディスクドライブ106を備えていなくてもよく、専ら他のコンピュータからアクセスされる場合には、画像信号処理部104や入力信号処理部105を備えていなくてもよい。データベースサーバ装置23、および仮想化管理サーバ装置200も、実行サーバ装置100と同様のハードウェアを用いて実現できる。また、端末装置21は、通信インタフェース107がネットワーク31の代わりにネットワーク30を介して他のコンピュータ(例えば、負荷分散装置22)と通信を行うことを除き、実行サーバ装置100と同様のハードウェアを用いて実現できる。また、負荷分散装置22は、通信インタフェース107がネットワーク31に加えてネットワーク30を介して他のコンピュータ(例えば、端末装置21)と通信を行うことを除き、実行サーバ装置100と同様のハードウェアを用いて実現できる。
図4は、仮想サーバ間の性能測定値の受け渡し関係を定義する木構造の一例を示すブロック図である。仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、実行サーバ装置100に用いられる仮想マシンである。仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、負荷分散装置22に振り分けられた複数のトランザクションを並行して実行する。各仮想サーバは、システムのオートスケールを行うか否かを自律的に判断する。
仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、木構造により構成されている。木構造は、階層構造を有している。第2の実施の形態では、木構造における最上位の仮想サーバ#1から順に、下の階層に仮想サーバが追加されていく。例えば、図4の木構造では、仮想サーバ#1において、1つ上の階層の仮想サーバ(以下、親の仮想サーバと表現する)は存在せず、1つ下の階層の仮想サーバ(以下、子の仮想サーバと表現する)として仮想サーバ#1−1,#1−2が存在する。また、仮想サーバ#1−1において、親の仮想サーバとして仮想サーバ#1が存在し、子の仮想サーバとして仮想サーバ#1−1−1,#1−1−2が存在する。また、仮想サーバ#1−2において、親の仮想サーバとして仮想サーバ#1が存在し、子の仮想サーバは存在しない。また、仮想サーバ#1−1−1,#1−1−2において、親の仮想サーバとして仮想サーバ#1−1が存在し、子の仮想サーバは存在しない。ここで、木構造の最上位の仮想サーバ#1が属する階層が第1世代である。第1世代の階層の仮想サーバ#1の直下の仮想サーバ#1−1,#1−2が属する階層が第2世代である。第2の階層の仮想サーバ#1−1の直下の仮想サーバ#1−1−1,#1−1−2が属する階層が第3世代である。
なお、以下の説明において、特定の仮想サーバについて、自己の階層以下の階層における仮想サーバといった場合、特定の仮想サーバ、およびその特定の仮想サーバから木構造を下位に辿ることで到達できる仮想サーバを指すものとする。
仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、子の各仮想サーバから性能測定値を受信する。次に、仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、子の仮想サーバ毎に受信した性能測定値および自己の仮想サーバの性能測定値を集計・分析する。仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、分析後の性能測定値に基づいて、スケールイン・スケールアウトの有無を判定する。
例えば、仮想サーバ#1−1は、子の仮想サーバ#1−1−1,#1−1−2から性能測定値を受信し、受信した性能測定値と自己の性能測定値を集計・分析する。次に、集計・分析した性能測定値を親の仮想サーバ#1に送信する。そして、仮想サーバ#1−1は、分析した性能測定値に基づきスケールイン・スケールアウトの有無を判定する。また、仮想サーバ#1は、子の仮想サーバ#1−1,#1−2から性能測定値を受信し、受信した性能測定値と自己の性能測定値を集計・分析する。そして、仮想サーバ#1は、分析した性能測定値に基づきスケールイン・スケールアウトの有無を判定する。
このように、木構造で構成されている各仮想サーバは、自己の階層以下の階層における仮想サーバについて収集・分析した性能測定値に基づき、スケールイン・スケールアウトの有無を判定することで、自律的にオートスケールを管理する。すなわち複数の仮想サーバそれぞれが実行する性能測定値の集計・分析は、対象となる仮想サーバ集合が互いに入れ子構造となっている。例えば仮想サーバ#1は、5台の仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2についての性能測定値の集計・分析を行う。一方、仮想サーバ#1−1は、3台の仮想サーバ#1−1,#1−1−1,#1−1−2についての性能測定値の集計・分析を行う。仮想サーバ#1−1が性能測定値の集計・分析の対象としている仮想サーバは、いずれも仮想サーバ#1における性能測定値の集計・分析の対象となっている。性能測定値の集計・分析の対象となる仮想サーバ集合が入れ子構造となっていることで、局所的な負荷の変動を迅速に検出し、オートスケールの要否を判断できる。
なお、図4に示したのは、仮想サーバ間の性能測定値の受け渡し関係を定義する木構造である。端末装置からの要求は、図4に示した木構造とは別の関係に基づいて振り分けられる。
図5は、端末装置からの要求を振り分ける接続関係の一例を示すブロック図である。負荷分散装置22は、端末装置21から要求された複数のトランザクションを各仮想サーバに分散して振り分ける。仮想サーバ(例えば、仮想サーバ#1−1−2)がスケールアウトされた場合、負荷分散装置22のトランザクションを分散する対象となる仮想サーバが増える。
このように、負荷分散装置22は、仮想サーバの木構造を意識せずに、端末装置21から要求された複数のトランザクションを各仮想サーバに振り分ける。
図6は、実行サーバ装置と管理サーバの機能例を示すブロック図である。実行サーバ装置100は、ハイパーバイザ110および仮想サーバ#1を有する。ハイパーバイザ110は、仮想サーバ#1の仮想化を実現するため、仮想サーバ#1上のOSを制御するプログラムである。ハイパーバイザ110は、仮想サーバ#1へ実行サーバ装置100のリソース(例えば、CPU101、RAM102、HDD103など)を効率的に配分する。
仮想サーバ#1は、管理情報記憶部120、負荷計測部130、負荷分析部140、オートスケール判定部150およびオートスケール実行部160を有する。
管理情報記憶部120は、仮想サーバ#1がオートスケールを実現するために管理する情報を記憶する。管理情報記憶部120は、閾値情報テーブル121、負荷分析値テーブル122、サーバ数管理テーブル123および階層管理テーブル124を有する。閾値情報テーブル121は、平均トランザクション数の閾値等、仮想サーバ#1がスケールアウトまたはスケールインを判断するために用いる閾値の情報を格納する。閾値情報テーブル121に記憶されている情報は、例えば、システムの管理者により設定されたものでもよい。負荷分析値テーブル122は、仮想サーバ#1の階層以下の階層における各仮想サーバのトランザクション数を所定時間毎に集計・分析した値(平均トランザクション数など)を格納する。サーバ数管理テーブル123は、親、子および自己の仮想サーバの数を格納する。サーバ数管理テーブル123は、トランザクション数を分析するために用いられる。階層管理テーブル124は、仮想サーバ#1が親または子の仮想サーバを把握するための情報を格納する。
負荷計測部130は、仮想サーバ#1のトランザクション数を計測する。トランザクション数とは、仮想サーバが所定時間内に実行したトランザクション数である。また、負荷計測部130は、階層管理テーブル124を参照し、仮想サーバ#1の子の仮想サーバを検索する。次に、負荷計測部130は、検索した各子の仮想サーバから所定時間毎に総トランザクション数や総仮想サーバ数を受信する。総トランザクション数とは、自己の階層以下の階層における各仮想サーバが所定時間内に実行したトランザクション数の合計である。総仮想サーバ数とは、自己の階層以下の階層における仮想サーバの総数である。
負荷分析部140は、負荷計測部130が計測した仮想サーバ#1のトランザクション数や、負荷計測部130が受信した子の各仮想サーバの総トランザクション数を基に仮想サーバ#1の総トランザクション数を算出し、負荷分析値テーブル122に格納する。また、負荷計測部130が受信した各仮想サーバの総仮想サーバ数の合計を算出し、サーバ数管理テーブル123に格納する。次に、負荷分析部140は、算出した総トランザクション数および総仮想サーバ数を親の仮想サーバに送信する。そして、負荷分析部140は、算出した仮想サーバ#1における総トランザクション数およびサーバ数管理テーブル123に格納された情報を分析し、平均トランザクション数など分析により得た情報を負荷分析値テーブル122に格納する。平均トランザクション数とは、自己の階層以下の階層における各仮想サーバが所定時間内に実行したトランザクション数の平均値である。
オートスケール判定部150は、負荷分析値テーブル122に格納された負荷分析部140による分析値と、閾値情報テーブル121に格納された閾値とを比較し、仮想サーバのスケールアウトおよびスケールインの有無を判定する。
オートスケール実行部160は、オートスケール判定部150による判定結果に基づいて、スケールアウトまたはスケールインの実行を仮想化管理サーバ装置200に要求する。オートスケール実行部160は、スケールアウトまたはスケールインに伴い、階層管理テーブル124に格納された情報を更新する。
仮想化管理サーバ装置200は、スケールアウト実行部210およびスケールイン実行部220を有する。
スケールアウト実行部210は、仮想サーバ#1からスケールアウトを要求されたとき、仮想サーバをスケールアウトする。次に、スケールアウト実行部210は、スケールアウトが完了した旨を仮想サーバ#1に応答する。
スケールイン実行部220は、仮想サーバ#1からスケールインを要求されたとき、仮想サーバ#1をスケールインする。次に、スケールイン実行部220は、スケールインが完了した旨を仮想サーバ#1に応答する。
図7は、閾値情報テーブルの設定例を示す図である。閾値情報テーブル121は、平均トラン数(上限)、平均トラン数(下限)、平均トラン変化量(上限)および平均トラン変化量(下限)の項目を有する。平均トラン数(上限)の項目には、平均トランザクション数の上限値が設定される。仮想サーバの平均トランザクション数が平均トラン数(上限)以上となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールアウトを要求する。平均トラン数(下限)の項目には、平均トランザクション数の下限値が設定される。仮想サーバの平均トランザクション数が平均トラン数(下限)未満となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールインを要求する。平均トラン変化量(上限)の項目には、平均トランザクション変化量の上限値が設定される。仮想サーバの平均トランザクション変化量が平均トラン変化量(上限)以上となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールアウトを要求する。平均トラン変化量(下限)の項目には、平均トランザクション変化量の下限値が設定される。仮想サーバの平均トランザクション変化量が平均トラン変化量(下限)未満となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールインを要求する。
図8は、負荷分析値テーブルの例を示す図である。負荷分析値テーブル122は、日時、平均トラン数および平均トラン変化量の項目を有する。日時の項目には、平均トランザクション数などを算出した日時が設定される。平均トラン数の項目には、所定時間あたりの仮想サーバの平均トランザクション数が設定される。平均トラン変化量の項目には、所定時間あたりの仮想サーバの平均トランザクション数の変化量が設定される。具体的には、平均トランザクション数の変化量は、算出された平均トラン数と前回算出された平均トラン数との差分により算出される。
図9は、トランザクションの変化量の例について示すブロック図である。仮想サーバ#1は仮想サーバ#1−1の親の仮想サーバであり、仮想サーバ#1−1は仮想サーバ#1−1−1の親の仮想サーバである。仮想サーバ#1,#1−1,#1−1−1が有する閾値情報テーブルには、閾値情報テーブル121aの内容、すなわち、平均トラン数(上限)=99、平均トラン数(下限)=9、平均トラン変化量(上限)=9および平均トラン変化量(下限)=−9が設定されている。
負荷分析値テーブル122は仮想サーバ#1が有するテーブルであり、負荷分析値テーブル122aは仮想サーバ#1−1が有するテーブルであり、負荷分析値テーブル122bは仮想サーバ#1−1−1が有するテーブルである。負荷分析値テーブル122,122a,122bにおける日時の項目について、日付の記載を省略する。各負荷分析値テーブルの更新は、対応する仮想サーバにより10秒毎に行われる。
ここで、端末装置21(図2参照)による負荷分散装置22を介したトランザクションの要求が、急激に増加したときについて説明する。仮想サーバ#1において、平均トラン数が閾値(平均トラン数(上限))以上となるのは、日時=00:01:10以降である。一方、平均トラン変化量が閾値(平均トラン変化量(上限))以上となるのは日時=00:00:50以降であり、平均トラン数が閾値以上となる前である。また、仮想サーバ#1−1において、平均トラン数が閾値(平均トラン数(上限))以上となるのは、日時=00:01:10以降である。一方、平均トラン変化量が閾値(平均トラン変化量(上限))以上となるのは日時=00:00:50以降であり、平均トラン数が閾値以上となる前である。さらに、仮想サーバ#1−1−1において、平均トラン数が閾値(平均トラン数(上限))以上となるのは、日時=00:01:10以降である。一方、平均トラン変化量が閾値(平均トラン変化量(上限))以上となるのは日時=00:00:30以降であり、平均トラン数が閾値以上となる前である。仮想サーバ#1−1−1の平均トラン変化量が閾値以上となる日時が、他の仮想サーバと比べ早い。
図8〜図9が示すように、平均トランザクション数の変化量を所定時間毎に分析することで、平均トランザクション数の増加の予兆を検知できる。これにより、端末装置21から要求されるトランザクション数が急激に変化した場合にも、スケールアウトまたはスケールインの有無を迅速に判断できる。
図10は、サーバ数管理テーブルの例を示す図である。サーバ数管理テーブル123は、親、自分、子の項目を有する。親の項目には、仮想サーバ#1の1つ上の階層の仮想サーバの数が設定される。自分の項目には、仮想サーバ#1の階層の仮想サーバの数(すなわち、1)が設定される。子の項目には、仮想サーバ#1の1つ下の階層以下の仮想サーバの数が設定される。
図11は、仮想サーバ数の取得例を示すブロック図である。子の仮想サーバは、サーバ数管理テーブルを参照し、子および自分の仮想サーバ数を仮想サーバに送信する。仮想サーバは、子の仮想サーバにおける子および自分の仮想サーバ数を子の各仮想サーバから受信する。次に、仮想サーバは、子の各仮想サーバから受信した各仮想サーバ数を合計する。そして、仮想サーバは、合計した仮想サーバ数をサーバ数管理テーブルの子の仮想サーバに格納する。そして、仮想サーバは、格納した子の仮想サーバ数および自分の仮想サーバ数を親の仮想サーバに送信する。
例えば、図11では、仮想サーバ#1の子の仮想サーバに、仮想サーバ#1−1,#1−2が存在する。仮想サーバ#1−1の子の仮想サーバに、仮想サーバ#1−1−1,#1−1−2が存在する。仮想サーバ#1はサーバ数管理テーブル123を有し、仮想サーバ#1−1はサーバ数管理テーブル123aを有し、仮想サーバ#1−2はサーバ数管理テーブル123bを有し、仮想サーバ#1−1−1はサーバ数管理テーブル123cを有し、仮想サーバ#1−1−2はサーバ数管理テーブル123dを有する。
仮想サーバ#1−2,#1−1−1,#1−1−2には、親の仮想サーバが存在し、子の仮想サーバが存在しない。そのため、サーバ数管理テーブル123b,123c,123dにおいて、親=1,自分=1および子=0が設定される。
また、仮想サーバ#1−1は、子の仮想サーバ#1−1−1から子=0および自分=1を受信し、子の仮想サーバ#1−1−2から子=0および自分=1を受信する。そのため、サーバ数管理テーブル123aにおいて、子=0+1+0+1=2が設定される。また、仮想サーバ#1は親の仮想サーバが存在するため、サーバ数管理テーブル123aにおいて、親=1および自分=1が設定される。
さらに、仮想サーバ#1は、子の仮想サーバ#1−1から子=2および自分=1を受信し、子の仮想サーバ#1−2から子=0および自分=1を受信する。そのため、サーバ数管理テーブル123において、子=2+1+0+1=4が設定される。また、仮想サーバ#1は親の仮想サーバが存在しないため、サーバ数管理テーブル123において、親=0および自分=1が設定される。
図10〜図11で示すように、各仮想サーバは、サーバ数管理テーブルのデータを親や子の仮想サーバと受け渡しすることで、自己の総仮想サーバ数を管理する。
図12は、階層管理テーブルの例を示す図である。階層管理テーブル124は、階層およびホスト名の項目を有する。階層の項目には、自己の仮想サーバとの階層の関係を示す情報が設定される。階層=「親」の場合、自己の仮想サーバの1つ上の階層であることを示す。階層=「子」の場合、自己の仮想サーバの1つ下の階層であることを示す。階層=「自分」の場合、自己の仮想サーバであることを示す。ホスト名の項目には、階層の項目に対応する仮想サーバのホスト名が設定される。例えば、仮想サーバ#1が子の仮想サーバのホスト名=#1−1である仮想サーバを子の仮想サーバとして登録したとき、登録した情報は階層=「子」かつホスト名=#1−1となる。以下、仮想サーバのホスト名は、仮想サーバの符号であるものとする。
なお、仮想サーバが存在しない階層の場合、ホスト名の項目には、例えば、Nullが設定される。以下、ホスト名がNullであるレコードの記載を省略する。また、仮想サーバが存在しない階層の場合、ホスト名の項目を空欄にしてもよい。また、ホスト名の項目には、ホスト名の代わりにIP(Internet Protocol)アドレスが設定されてもよい。
図13は、階層管理テーブルの設定例を示す図である。仮想サーバ#1の子の仮想サーバに、仮想サーバ#1−1,#1−2が存在する。仮想サーバ#1−1の子の仮想サーバに、仮想サーバ#1−1−1,#1−1−2が存在する。仮想サーバ#1−1−1の子の仮想サーバに、仮想サーバ#1−1−1−1,#1−1−1−2が存在する。
この場合、仮想サーバ#1が有する階層管理テーブル124aは、階層=「自分」でホスト名=#1であるレコード、階層=「子」でホスト名=#1−1であるレコードおよび階層=「子」でホスト名=#1−2であるレコードが格納される。また、仮想サーバ#1−1が有する階層管理テーブル124bは、階層=「親」でホスト名=#1であるレコード、階層=「自分」でホスト名=#1−1であるレコード、階層=「子」でホスト名=#1−1−1であるレコードおよび階層=「子」でホスト名=#1−1−2であるレコードが格納される。また、仮想サーバ#1−1−1が有する階層管理テーブル124cは、階層=「親」でホスト名=#1−1であるレコード、階層=「自分」でホスト名=#1−1−1であるレコード、階層=「子」でホスト名=#1−1−1−1であるレコードおよび階層=「子」でホスト名=#1−1−1−2であるレコードが格納される。さらに、仮想サーバ#1−1−1−1が有する階層管理テーブル124dは、階層=「親」でホスト名=#1−1−1であるレコードおよび階層=「自分」でホスト名=#1−1−1−1であるレコードが格納される。
図12〜図13で示すように、各仮想サーバが、「自分」、「親」および「子」の仮想サーバのホスト名を管理する。これにより、木構造による仮想サーバの構成を実現する。
図14は、仮想サーバによるオートスケールの手順例を示すフローチャートである。
(ステップS11)負荷計測部130は、階層管理テーブル124から、階層=「自分」または「子」の仮想サーバを1つ選択する。
(ステップS12)負荷計測部130は、選択した仮想サーバについて、総トランザクション数など性能測定値を取得する。処理の詳細は後述する(図15参照)。
(ステップS13)負荷計測部130は、階層=「自分」または「子」である仮想サーバについて、未選択の仮想サーバが存在するか判定する。未選択の仮想サーバが存在する場合、処理をステップS11へ進める。未選択の仮想サーバが存在しない場合、処理をステップS14へ進める。
(ステップS14)負荷分析部140は、ステップS12で取得したトランザクション数、または、ステップS12で受信した総トランザクション数などを集計・分析する。処理の詳細は後述する(図16参照)。
(ステップS15)オートスケール判定部150は、閾値情報テーブル121から閾値を取得する。
(ステップS16)オートスケール判定部150は、スケールアウトまたはスケールインの有無を判定する。そして、オートスケール実行部160は、判定に応じてスケールアウトまたはスケールインを実行する。処理の詳細は後述する(図17参照)。
(ステップS17)負荷計測部130は、停止リクエストを受信したか判定する。停止リクエストを受信した場合、処理を終了する。停止リクエストを受信していない場合、処理をステップS11へ進める。
図15は、トランザクション数を取得する手順例を示すフローチャートである。図15のフローチャートが示す処理は、ステップS12において実行される。
(ステップS121)負荷計測部130は、所定時間を確認する。所定時間は、仮想サーバ#1がトランザクション数などの性能測定値を計測または分析する時間間隔である。所定時間は、例えば、本システムの管理者などにより設定された設定値を使用する。また、所定時間には、管理者が設定する前に予め初期値が設定されていてもよいし、管理者が設定を省略した場合に省略値が設定されるようにしてもよい。設定された所定時間は、例えば、仮想サーバ#1の有する記憶領域に記憶される。
(ステップS122)負荷計測部130は、ステップS11で子の仮想サーバを選択したか判定する。子の仮想サーバを選択した場合、処理をステップS123へ進める。子の仮想サーバを選択しなかった場合、処理をステップS125へ進める。
(ステップS123)負荷計測部130は、選択した子の仮想サーバから子の仮想サーバの総トランザクション数を受信する。総トランザクション数とは、ステップS121で取得した所定時間前から現在までに、自己の階層以下の階層における各仮想サーバが実行したトランザクション数の合計である。
(ステップS124)負荷計測部130は、選択した子の仮想サーバから子の仮想サーバ以下の仮想サーバの総仮想サーバ数を受信する。子の仮想サーバ自身の数は1である。総仮想サーバ数とは、自己の階層以下の階層における仮想サーバの総数である。
(ステップS125)負荷計測部130は、選択した自己の仮想サーバのトランザクション数を取得する。トランザクション数とは、ステップS121で取得した所定時間前から現在までに仮想サーバが実行したトランザクション数である。
(ステップS126)負荷計測部130は、ステップS121で取得した所定時間が経過したか判定する。所定時間が経過した場合、処理をステップS122へ進める。所定時間が経過していない場合、処理をステップS126へ進める。
図16は、トランザクション数を分析する手順例を示すフローチャートである。図16のフローチャートが示す処理は、ステップS14において実行される。
(ステップS141)負荷分析部140は、ステップS121と同様の所定時間を確認する。
(ステップS142)負荷分析部140は、現在日時を確認する。
(ステップS143)負荷分析部140は、ステップS12で取得した子の仮想サーバ自身の数および子の仮想サーバの総仮想サーバ数を集計する。負荷分析部140は、集計した総仮想サーバ数で、サーバ数管理テーブル123における子の仮想サーバ数を更新する。
(ステップS144)負荷分析部140は、ステップS12で取得したトランザクション数を集計し、自己の仮想サーバの総トランザクション数を算出する。
(ステップS145)負荷分析部140は、集計したトランザクション数および仮想サーバ数に基づき、自己の仮想サーバの平均トランザクション数を算出する。具体的には、トランザクション数の集計値÷(サーバ数管理テーブル123における子の仮想サーバ数+1(自己の仮想サーバの数))により算出する。
(ステップS146)負荷分析部140は、負荷分析値テーブル122に、前回算出した平均トランザクション数の算出値があるか判定する。前回算出した平均トランザクション数の算出値がある場合、処理をステップS147へ進める。前回算出した平均トランザクション数の算出値がない場合、処理をステップS148へ進める。
(ステップS147)負荷分析部140は、算出した平均トランザクション数−前回算出した平均トランザクション数により、平均トランザクション変化量を算出する。
(ステップS148)負荷分析部140は、トランザクション変化量に0を設定する。
(ステップS149)負荷分析部140は、日時=ステップS142で確認した現在日時、平均トラン数=算出した平均トランザクション数および平均トラン変化量=平均トランザクション変化量を設定した情報を、負荷分析値テーブル122に登録する。
(ステップS150)負荷分析部140は、算出した総トランザクション数、子の仮想サーバ数および自己の仮想サーバ数を親の仮想サーバに送信する。子の仮想サーバ数および自己の仮想サーバ数は、サーバ数管理テーブル123を参照する。
(ステップS151)負荷分析部140は、ステップS141で取得した所定時間が経過したか判定する。所定時間が経過した場合、処理をステップS142へ進める。所定時間が経過していない場合、処理をステップS151へ進める。
図15〜図16で示すように、仮想サーバは、所定時間毎に自己の仮想サーバ以下の階層のトランザクション数を集計・分析する。この際、自己の仮想サーバは、子の仮想サーバの集計または分析の処理とは、非同期でトランザクション数を集計・分析する。これにより、子の仮想サーバの集計・分析と同期するための時間を節約できるため、より迅速なオートスケールを実現できる。
図17は、オートスケールを実行する手順例を示すフローチャートである。図17のフローチャートが示す処理は、ステップS16において実行される。
(ステップS161)オートスケール判定部150は、ステップS149で登録された平均トラン数が閾値以上であるか確認する。閾値は、閾値情報テーブル121の平均トラン数(上限)を参照する。平均トラン数が閾値以上の場合、処理をステップS162へ進める。平均トラン数が閾値未満の場合、処理をステップS163へ進める。
(ステップS162)オートスケール実行部160は、スケールアウトを実行する。処理の詳細は後述する(図18参照)。
(ステップS163)オートスケール判定部150は、ステップS149で登録された平均トラン変化量が閾値以上であるか確認する。閾値は、閾値情報テーブル121の平均トラン変化量(上限)を参照する。平均トラン変化量が閾値以上の場合、処理をステップS164へ進める。平均トラン数が閾値未満の場合、処理をステップS165へ進める。
(ステップS164)オートスケール実行部160は、スケールアウトを実行する。処理の詳細は後述する(図18参照)。
(ステップS165)オートスケール判定部150は、ステップS149で登録された平均トラン数が閾値未満であるか確認する。閾値は、閾値情報テーブル121の平均トラン数(下限)を参照する。平均トラン数が閾値未満の場合、処理をステップS166へ進める。平均トラン数が閾値以上の場合、処理をステップS172へ進める。
(ステップS166)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがないか判定する。具体的には、階層管理テーブル124に階層=「親」のレコードがあれば親の仮想サーバがあると判定し、階層=「子」のレコードがあれば子の仮想サーバがあると判定する(以下、同様)。親の仮想サーバがあり、かつ、子の仮想サーバがない場合、処理をステップS167へ進める。親の仮想サーバがない、または、子の仮想サーバがある場合、処理をステップS168へ進める。
(ステップS167)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがない場合のスケールインを実行する。処理の詳細は後述する(図23参照)。
(ステップS168)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがなく、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがなく、かつ、子の仮想サーバがある場合、処理をステップS169へ進める。親の仮想サーバがある、または、子の仮想サーバがない場合、処理をステップS170へ進める。
(ステップS169)オートスケール実行部160は、親の仮想サーバがなく、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図26参照)。
(ステップS170)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがあり、かつ、子の仮想サーバがある場合、処理をステップS171へ進める。親の仮想サーバがない、または、子の仮想サーバがない場合、処理をステップS172へ進める。
(ステップS171)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図29参照)。
(ステップS172)オートスケール判定部150は、負荷分析値テーブル122の平均トラン変化量が閾値未満であるか確認する。閾値は、閾値情報テーブル121の平均トラン変化量(下限)を参照する。平均トラン変化量が閾値未満の場合、処理をステップS173へ進める。平均トラン変化量が閾値以上の場合、処理を終了する。
(ステップS173)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがないか判定する。親の仮想サーバがあり、かつ、子の仮想サーバがない場合、処理をステップS174へ進める。親の仮想サーバがない、または、子の仮想サーバがある場合、処理をステップS175へ進める。
(ステップS174)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがない場合のスケールインを実行する。処理の詳細は後述する(図23参照)。
(ステップS175)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがなく、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがなく、かつ、子の仮想サーバがある場合、処理をステップS176へ進める。親の仮想サーバがある、または、子の仮想サーバがない場合、処理をステップS177へ進める。
(ステップS176)オートスケール実行部160は、親の仮想サーバがなく、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図26参照)。
(ステップS177)オートスケール判定部150は、階層管理テーブル124を参照し、親の仮想サーバがあり、かつ、子の仮想サーバがあるか判定する。親の仮想サーバがあり、かつ、子の仮想サーバがある場合、処理をステップS178へ進める。親の仮想サーバがない、または、子の仮想サーバがない場合、処理を終了する。
(ステップS178)オートスケール実行部160は、親の仮想サーバがあり、子の仮想サーバがある場合のスケールインを実行する。処理の詳細は後述する(図29参照)。
次に、スケールアウトの処理について説明する。図18は、スケールアウトの手順例を示すフローチャートである。図18のフローチャートが示す処理は、ステップS162,S164において実行される。
(ステップS181)オートスケール実行部160は、仮想化管理サーバ装置200に、仮想サーバのスケールアウトを要求する。
(ステップS182)スケールアウト実行部210は、仮想サーバ#1の要求を受信し、スケールアウトを実施する。そして、スケールアウト実行部210は、仮想サーバ#1にスケールアウトした仮想サーバのホスト名(または、IPアドレス)を応答する。
(ステップS183)オートスケール実行部160は、仮想化管理サーバ装置200から応答により、スケールアウトされた仮想サーバのホスト名を確認する。
(ステップS184)オートスケール実行部160は、階層=「子」かつホスト名=確認したホスト名のレコードを階層管理テーブル124に登録する。
(ステップS185)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
(ステップS186)オートスケール実行部160は、スケールアウトされた仮想サーバに、階層管理テーブルへの登録を要求する。具体的には、スケールアウト実行部210は、階層管理テーブルに、階層=「自分」かつホスト名=ステップS183で確認したホスト名のレコード、および階層=「親」かつホスト名=ステップS185で検索したホスト名のレコードを登録するよう要求する。
(ステップS187)スケールアウトされた仮想サーバは、階層=「自分」かつホスト名=ステップS183で確認したホスト名のレコード、および階層=「親」かつホスト名=ステップS185で検索したホスト名のレコードを、スケールアウトされた仮想サーバの階層管理テーブルに登録し、登録の結果を仮想サーバ#1に応答する。
(ステップS188)オートスケール実行部160は、スケールアウトされた仮想サーバから応答された登録の結果が正常終了であるか判定する。正常終了である場合、処理をステップS189へ進める。正常終了でない場合、処理をステップS186へ進める。
(ステップS189)オートスケール実行部160は、負荷分散装置22に、スケールアウトされた仮想サーバの使用開始を要求し、負荷分散装置22から要求に対する応答を受信する。
図19は、スケールアウトにおける装置間の応答例を示す図である。図19では、仮想サーバ#1−1が、スケールアウトを要求する場合について説明する。
まず、仮想サーバ#1−1は、仮想化管理サーバ装置200に仮想サーバのスケールアウトを要求する(ステップS181)。仮想化管理サーバ装置200は、仮想サーバ#1−1から要求を受信し、仮想サーバ#1−1−1のスケールアウトを実施する(ステップS182)。仮想サーバ#1−1は、スケールアウトされた仮想サーバ#1−1−1のホスト名=#1−1−1含む応答を仮想化管理サーバ装置200から受信する(ステップS183)。
仮想サーバ#1−1は、階層=「子」かつ受信したホスト名=#1−1−1のレコードを階層管理テーブル124eに登録する(ステップS184)。その結果、レコード登録前の階層管理テーブル124eは、レコード登録後の階層管理テーブル124fとなる。
仮想サーバ#1−1は、階層管理テーブル124fから階層=「自分」であるホスト名=#1−1を検索する。仮想サーバ#1−1は、階層=「親」かつ検索したホスト名=#1−1のレコードと、階層=「自分」かつ受信したホスト名=#1−1−1のレコードとを階層管理テーブル124gに登録するよう仮想サーバ#1−1−1に要求する(ステップS186)。仮想サーバ#1−1−1は、仮想サーバ#1−1から要求を受信し、階層=「親」かつホスト名=#1−1のレコードと、階層=「自分」かつホスト名=#1−1−1のレコードとを階層管理テーブル124gに登録する(ステップS187)。その結果、レコード登録前の階層管理テーブル124gは、レコード登録後の階層管理テーブル124hとなる。仮想サーバ#1−1−1は、登録の結果を仮想サーバ#1−1に応答する(ステップS188)。
仮想サーバ#1−1は、負荷分散装置22に仮想サーバ#1−1−1の使用開始を要求し、負荷分散装置22から応答を受信する(ステップS189)。
図20は、スケールアウト例を示す第1のブロック図である。図20において、仮想サーバ#1のみが存在する。仮想サーバ#1がスケールアウトを要求したとき、スケールアウトされた仮想サーバ#1−1は、仮想サーバ#1の子の仮想サーバとして構成される。
図21は、スケールアウト例を示す第2のブロック図である。図21において、仮想サーバ#1と、仮想サーバ#1の子の仮想サーバ#1−1が存在する。仮想サーバ#1−1はスケールアウトを要求したとき、スケールアウトされた仮想サーバ#1−1−1は、仮想サーバ#1−1の子の仮想サーバとして構成される。
図22は、スケールアウト例を示す第3のブロック図である。図22において、仮想サーバ#1と、仮想サーバ#1の子の仮想サーバ#1−1が存在する。仮想サーバ#1がスケールアウトを要求したとき、スケールアウトされた仮想サーバ#1−2は、仮想サーバ#1の子の仮想サーバとして構成される。
図18〜22が示すように、仮想サーバは、スケールアウトを要求するとき、自己の階層管理テーブルに、スケールアウトされた仮想サーバのレコードを登録することで、スケールアウトされた仮想サーバを自己の子の仮想サーバとして構成する。
次に、親の仮想サーバが存在し、子の仮想サーバが存在しない場合におけるスケールインについて説明する。図23は、第1のスケールインの手順例を示すフローチャートである。図23のフローチャートが示す処理は、ステップS167,S174において実行される。
(ステップS191)オートスケール実行部160は、負荷分散装置22に、自己の仮想サーバの使用停止を要求し、要求に対する応答を負荷分散装置22から受信する。
(ステップS192)オートスケール実行部160は、実行中のトランザクションの実行が全て完了後、トランザクションを実行するプロセスを停止する。
(ステップS193)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
(ステップS194)オートスケール実行部160は、親の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「親」であるホスト名を検索する。
(ステップS195)オートスケール実行部160は、検索した親の仮想サーバに、階層管理テーブルから階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを削除するよう要求する。
(ステップS196)要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを削除する。そして、要求を受信した親の仮想サーバは、レコードの削除の結果を仮想サーバ#1に応答する。
(ステップS197)オートスケール実行部160は、親の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS198へ進める。正常終了でない場合、処理をステップS195へ進める。
(ステップS198)オートスケール実行部160は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する。
(ステップS199)スケールイン実行部220は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、スケールイン実行部220は、スケールインを実施した旨を仮想サーバ#1に応答する。
(ステップS200)オートスケール実行部160は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を検索した親の仮想サーバに送信する。
図24は、第1のスケールインにおける装置間の応答例を示す図である。図24では、仮想サーバ#1−1−1が、スケールインを要求する場合について説明する。図24において、仮想サーバ#1−1と、仮想サーバ#1−1の子の仮想サーバ#1−1−1が存在する。仮想サーバ#1−1−1には、子の仮想サーバが存在しない。
まず、仮想サーバ#1−1−1は、負荷分散装置22に仮想サーバ#1−1−1の使用停止を要求し、負荷分散装置22から応答を受信する(ステップS191)。
仮想サーバ#1−1−1は、階層管理テーブル124kから階層=「自分」または「親」であるホスト名を検索する。仮想サーバ#1−1−1は、検索された階層=「自分」であるホスト名=#1−1−1を、階層管理テーブル124iから削除するよう仮想サーバ#1−1に要求する(ステップS195)。仮想サーバ#1−1は、階層=子かつホスト名=#1−1−1のレコードを、階層管理テーブル124iから削除する(ステップS196)。その結果、レコードの削除前の階層管理テーブル124iは、レコードの削除後の階層管理テーブル124jとなる。仮想サーバ#1−1は、削除の結果を仮想サーバ#1−1−1に応答する。仮想サーバ#1−1−1は、仮想サーバ#1−1から応答を受信する(ステップS197)。
仮想サーバ#1−1−1は、仮想化管理サーバ装置200に仮想サーバ#1−1−1のスケールインを要求する(ステップS198)。仮想化管理サーバ装置200は、仮想サーバ#1−1−1から要求を受信し、仮想サーバ#1−1−1をスケールインする。そして、仮想化管理サーバ装置200は、仮想サーバ#1−1−1にスケールインした旨を応答する(ステップS199)。仮想サーバ#1−1−1は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親の仮想サーバ#1−1に送信する(ステップS200)。
図25は、第1のスケールイン例を示すブロック図である。仮想サーバ#1の子の仮想サーバには、仮想サーバ#1−1が存在する。仮想サーバ#1−1の子の仮想サーバには、仮想サーバ#1−1−1,#1−1−2が存在する。この場合において、仮想サーバ#1−1−1をスケールインしたとき、仮想サーバ#1−1は、仮想サーバ#1−1の階層管理テーブル124iからホスト名=#1−1−1であるレコードを削除する。その結果、レコードの削除前の階層管理テーブル124iは、レコードの削除後の階層管理テーブル124jとなる。このとき、仮想サーバの構造は、仮想サーバ#1の子の仮想サーバに、仮想サーバ#1−1が存在する。仮想サーバ#1−1の子の仮想サーバに、仮想サーバ#1−1−2が存在する状態となる。
このように、親の仮想サーバが存在し、子の仮想サーバが存在しない仮想サーバは、木構造の葉ノードに該当する。葉ノードにあたる仮想サーバがスケールインを要求するとき、親の仮想サーバの階層管理テーブルからスケールインされた仮想サーバのレコードを削除する。これにより、葉ノードにあたる仮想サーバを木構造から削除しても、スケールアウト後の各仮想サーバは木構造を保持できる。
次に、親の仮想サーバが存在せず、子の仮想サーバが存在する場合におけるスケールインについて説明する。図26は、第2のスケールインの手順例を示すフローチャートである。図26のフローチャートが示す処理は、ステップS169,S176において実行される。
(ステップS201)オートスケール実行部160は、負荷分散装置22に、自己の仮想サーバの使用停止を要求し、負荷分散装置22から要求に対する応答を受信する。
(ステップS202)オートスケール実行部160は、実行中のトランザクションの実行が全て完了後、トランザクションを実行するプロセスを停止する。
(ステップS203)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
(ステップS204)オートスケール実行部160は、子の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「子」である1または2以上のホスト名を検索する。
(ステップS205)オートスケール実行部160は、検索された子の仮想サーバが2以上か判定する。子の仮想サーバが2以上の場合、処理をステップS209へ進める。子の仮想サーバが2未満の場合、処理をステップS206へ進める。
(ステップS206)オートスケール実行部160は、検索した親の仮想サーバに、階層=「子」かつホスト名=ステップS193で検索したホスト名であるレコードを階層管理テーブルから削除するよう要求する。
(ステップS207)要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS204で検索したホスト名であるレコードを削除する。そして、要求を受信した親の仮想サーバは、レコードの削除の結果を仮想サーバ#1に応答する。
(ステップS208)オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS217へ進める。正常終了でない場合、処理をステップS206へ進める。
(ステップS209)オートスケール実行部160は、検索された子の仮想サーバを1つ選択する。
(ステップS210)オートスケール実行部160は、選択した子の仮想サーバに、階層=「親」かつホスト名=ステップS203で検索されたホスト名であるレコードを階層管理テーブルから削除するよう要求する。
(ステップS211)オートスケール実行部160は、選択した子の仮想サーバに、階層=「子」かつホスト名=ステップS204で検索されたホスト名(選択した子の仮想サーバを除く)である複数のレコードを階層管理テーブルに登録するよう要求する。
(ステップS212)要求を受信した子の仮想サーバは、階層=「親」かつホスト名=ステップS203で検索されたホスト名であるレコードを階層管理テーブルから削除する。また、要求を受信した子の仮想サーバは、階層=「子」かつホスト名=ステップS204で検索されたホスト名(選択した子の仮想サーバを除く)である複数のレコードを登録する。そして、要求を受信した子の仮想サーバは、レコードの削除および登録の結果を仮想サーバ#1に応答する。
(ステップS213)オートスケール実行部160は、子の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS214へ進める。正常終了でない場合、処理をステップS209へ進める。
(ステップS214)オートスケール実行部160は、選択していない複数の子の仮想サーバに、階層管理テーブルにおいて、階層=「親」であるレコードのホスト名をステップS209で選択されたホスト名に更新するよう要求する。
(ステップS215)要求を受信した子の各仮想サーバは、階層管理テーブルにおいて、階層=「親」である複数のレコードをホスト名=ステップS209で選択されたホスト名に更新する。そして、要求を受信した子の各仮想サーバは、更新の結果を仮想サーバ#1に応答する。
(ステップS216)オートスケール実行部160は、応答された更新の結果が正常終了であるか判定する。正常終了である場合、処理をステップS217へ進める。正常終了でない場合、処理をステップS214へ進める。
(ステップS217)オートスケール実行部160は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する。
(ステップS218)スケールイン実行部220は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、スケールイン実行部220は、スケールインを実施した旨を仮想サーバ#1に応答する。
(ステップS219)オートスケール実行部160は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答をの仮想サーバに送信する。
図27は、第2のスケールインにおける装置間の応答例を示す図である。図27では、仮想サーバ#1が、スケールインを要求する場合について説明する。図27において、仮想サーバ#1、仮想サーバ#1の子の仮想サーバ#1−1,#1−2が存在する。仮想サーバ#1には、親の仮想サーバが存在しない。
まず、仮想サーバ#1は、負荷分散装置22に仮想サーバ#1の使用停止を要求し、負荷分散装置22から応答を受信する(ステップS201)。
仮想サーバ#1は、階層管理テーブル124lから階層=「自分」であるホスト名=#1を検索する。また、仮想サーバ#1は、階層管理テーブル124lから階層=「子」であるホスト名=#1−1,#1−2を検索する。そして、検索された階層=「子」のホスト名からホスト名=#1−1を選択する。
仮想サーバ#1は、選択された仮想サーバ#1−1に、検索された自己のホスト名=#1である階層=「親」のレコードを、階層管理テーブル124mから削除するよう要求する(ステップS210)。また、仮想サーバ#1は、選択した子の仮想サーバに、選択した子のホスト名(#1−1)を除いた階層が子であるホスト名=#1−2かつ階層=「子」のレコードを、階層管理テーブル124mに登録するよう要求する(ステップS211)。
削除および登録を要求された仮想サーバ#1−1は、階層=「親」かつホスト名=#1のレコードを、階層管理テーブル124mから削除し、階層=「子」かつホスト名=#1−2のレコードを、階層管理テーブル124mに登録する(ステップS212)。その結果、レコードの削除および登録前の階層管理テーブル124mは、レコードの削除および登録後の階層管理テーブル124nとなる。仮想サーバ#1−1は、レコードの削除および登録の結果を仮想サーバ#1に応答する(ステップS213)。
仮想サーバ#1は、選択されなかった仮想サーバ#1−2に、階層管理テーブル124oにおいて、階層=「親」のレコードのホスト名を、選択されたホスト名=#1−1に更新するよう要求する(ステップS214)。
仮想サーバ#1−2は、階層管理テーブル124oにおいて、階層=「親」かつホスト名=#1のレコードをホスト名=#1−1に更新する(ステップS215)。その結果、レコード更新前の階層管理テーブル124oは、レコード更新後の階層管理テーブル124pとなる。仮想サーバ#1−2は、更新の結果を仮想サーバ#1に応答する(ステップS216)。
仮想サーバ#1は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する(ステップS217)。仮想化管理サーバ装置200は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、仮想化管理サーバ装置200は、仮想サーバ#1にスケールインした旨を応答する(ステップS218)。仮想サーバ#1は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を子の仮想サーバ#1−1,#1−2に送信する(ステップS219)。
図28は、第2のスケールイン例を示すブロック図である。仮想サーバ#1の子の仮想サーバに、仮想サーバ#1−1,#1−2が存在する。この場合において、仮想サーバ#1をスケールインしたとき、仮想サーバ#1−1は、階層管理テーブル124mから階層=「親」であるレコードを削除し、階層管理テーブル124mに階層=「子」かつホスト名=#1−2のレコードを登録する。その結果、レコードの削除および登録前の階層管理テーブル124mは、レコードの削除および登録後の階層管理テーブル124nとなる。また、仮想サーバ#1−2は、階層管理テーブル124oから階層=「親」であるレコードについて、ホスト名を選択したホスト名=#1−1に更新する。その結果、レコード更新前の階層管理テーブル124oは、レコード更新後の階層管理テーブル124pとなる。
このように、親の仮想サーバが存在せず、子の仮想サーバが複数存在する仮想サーバは、木構造の根ノードに該当する。このような根ノードにあたる仮想サーバをスケールインするとき、まず、複数の子の仮想サーバの1つの仮想サーバは、根ノードとなるよう階層管理テーブルから階層=「親」のレコードを削除し、階層=「子」のレコードを登録する。また、残りの子の仮想サーバは根ノードにあたる仮想サーバが親となるように、子の各仮想サーバの階層管理テーブルについて、階層=「親」のレコードを更新する。これにより、スケールインされた仮想サーバの子の仮想サーバのうち1つを根ノードとし、残りの子の仮想サーバを根ノードの子の仮想サーバとする木構造を生成され、スケールアウト後の各仮想サーバは木構造を保持できる。
次に、親の仮想サーバが存在し、子の仮想サーバが存在する場合におけるスケールインについて説明する。図29は、第3のスケールインの手順例を示すフローチャートである。図29のフローチャートが示す処理は、ステップS171,S178において実行される。
(ステップS221)オートスケール実行部160は、負荷分散装置22に、自己の仮想サーバの使用停止を要求し、負荷分散装置22から要求に対する応答を受信する。
(ステップS222)オートスケール実行部160は、実行中のトランザクションの実行が全て完了することを待った上で、仮想サーバ#1におけるトランザクションを実行するプロセスを停止する。
(ステップS223)オートスケール実行部160は、自己の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「自分」であるホスト名を検索する。
(ステップS224)オートスケール実行部160は、親の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「親」であるホスト名を検索する。
(ステップS225)オートスケール実行部160は、1または2以上の子の仮想サーバのホスト名を検索する。具体的には、オートスケール実行部160は、階層管理テーブル124から階層=「子」である1または2以上のホスト名を検索する。
(ステップS226)オートスケール実行部160は、検索した親の仮想サーバに、階層=「子」かつホスト名=ステップS223で検索したホスト名であるレコードを階層管理テーブルから削除するよう要求する。また、オートスケール実行部160は、検索した親の仮想サーバに、階層=「子」かつホスト名=ステップS225で検索したホスト名であるレコードを階層管理テーブルへ登録するよう要求する。
(ステップS227)要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS223で検索したホスト名であるレコードを削除する。また、要求を受信した親の仮想サーバは、階層管理テーブルから階層=「子」かつホスト名=ステップS225で検索したホスト名である1または2以上のレコードを登録する。そして、要求を受信した親の仮想サーバは、レコードの削除および登録の結果を仮想サーバ#1に応答する。
(ステップS228)オートスケール実行部160は、親の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS229へ進める。正常終了でない場合、処理をステップS226へ進める。
(ステップS229)オートスケール実行部160は、子の各仮想サーバに、階層管理テーブルにおいて、階層=「親」かつホスト名=ステップS223で検索されたホスト名であるレコードについて、ホスト名=ステップS224で検索されたホスト名に更新するよう要求する。
(ステップS230)要求を受信した子の仮想サーバは、レコードを階層管理テーブルについて、階層=「親」かつホスト名=ステップS223で検索されたホスト名であるレコードを、ホスト名=ステップS224で検索されたホスト名に更新する。そして、要求を受信した子の仮想サーバは、レコードの更新の結果を仮想サーバ#1に応答する。
(ステップS231)オートスケール実行部160は、子の仮想サーバから応答を受信する。そして、オートスケール実行部160は、応答された結果が正常終了であるか判定する。正常終了である場合、処理をステップS232へ進める。正常終了でない場合、処理をステップS229へ進める。
(ステップS232)オートスケール実行部160は、仮想化管理サーバ装置200に自己の仮想サーバ#1のスケールインを要求する。
(ステップS233)スケールイン実行部220は、仮想サーバ#1から要求を受信し、仮想サーバ#1をスケールインする。そして、スケールイン実行部220は、スケールインを実施した旨を仮想サーバ#1に応答する。
(ステップS234)オートスケール実行部160は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親または子の仮想サーバに送信する。
図30は、第3のスケールインにおける装置間の応答例を示す図である。図30では、仮想サーバ#1−1が、スケールインを要求する場合について説明する。図30において、仮想サーバ#1、仮想サーバ#1の子の仮想サーバ#1−1、および仮想サーバ#1−1の子の仮想サーバ#1−1−1が存在する。
まず、仮想サーバ#1−1は、負荷分散装置22に自己の仮想サーバ#1−1の使用停止を要求し、負荷分散装置22から応答を受信する(ステップS221)。
仮想サーバ#1−1は、階層管理テーブル124qから階層=「自分」であるホスト名=#1−1を検索する。また、仮想サーバ#1−1は、階層管理テーブル124qから階層=「親」であるホスト名=#1を検索する。また、仮想サーバ#1−1は、階層管理テーブル124qから階層=「子」であるホスト名=#1−1−1を検索する。
仮想サーバ#1−1は、検索した親の仮想サーバに、階層=「子」かつスケールインされる仮想サーバのホスト名=#1−1のレコードを階層管理テーブルから削除し、階層=「子」かつ検索された子の仮想サーバのホスト名=#1−1−1のレコードを階層管理テーブルへ登録するよう要求する。(ステップS226)。
要求を受信した仮想サーバ#1は、階層=「子」かつホスト名=#1−1であるレコードを階層管理テーブル124rから削除し、階層=「子」かつ検索した子の仮想サーバのホスト名=#1−1−1であるレコードを階層管理テーブル124rへ登録する(ステップS227)。その結果、レコードの削除および登録前の階層管理テーブル124rは、レコードの削除および登録後の階層管理テーブル124sとなる。仮想サーバ#1は、レコードの削除および登録の結果を仮想サーバ#1−1に応答する(ステップS228)。
仮想サーバ#1−1は、検索した子の仮想サーバ#1−1−1に、階層管理テーブル124tにおいて、階層=「親」のレコードのホスト名を、検索された親の仮想サーバのホスト名=#1に更新するよう要求する(ステップS229)。
仮想サーバ#1−1−1は、階層管理テーブル124tにおいて、階層=「親」かつホスト名=#1−1のレコードをホスト名=#1に更新する(ステップS230)。その結果、レコード更新前の階層管理テーブル124tは、レコード更新後の階層管理テーブル124uとなる。仮想サーバ#1−1−1は、更新の結果を仮想サーバ#1−1に応答する(ステップS231)。
仮想サーバ#1−1は、仮想化管理サーバ装置200に仮想サーバ#1−1のスケールインを要求する(ステップS232)。仮想化管理サーバ装置200は、仮想サーバ#1−1から要求を受信し、仮想サーバ#1−1をスケールインする。そして、仮想化管理サーバ装置200は、仮想サーバ#1−1にスケールインした旨を応答する(ステップS233)。仮想サーバ#1−1は、仮想化管理サーバ装置200によるスケールインを実施した旨の応答を親の仮想サーバ#1および子の仮想サーバ#1−1−1に送信する(ステップS234)。
図31は、第3のスケールイン例を示すブロック図である。仮想サーバ#1の子の仮想サーバに、仮想サーバ#1−1が存在する。仮想サーバ#1−1の子の仮想サーバに、仮想サーバ#1−1−1が存在する。この場合において、仮想サーバ#1−1をスケールインしたとき、仮想サーバ#1は、階層管理テーブル124rから階層=「子」であるレコードを削除し、階層管理テーブル124rに階層=「子」かつスケールインされる仮想サーバの子のホスト名=#1−1−1のレコードを登録する。その結果、レコードの削除および登録前の階層管理テーブル124rは、レコードの削除および登録後の階層管理テーブル124sとなる。また、仮想サーバ#1−1−1は、階層管理テーブル124tから階層=「親」であるレコードのホスト名を、スケールインされる仮想サーバの親のホスト名=#1に更新する。その結果、レコード更新前の階層管理テーブル124tは、レコード更新後の階層管理テーブル124uとなる。
このように、親の仮想サーバが存在し、子の仮想サーバが存在する仮想サーバは、木構造の根ノードおよび葉ノードのいずれにも該当しない。このような仮想サーバをスケールインするとき、スケールインされる仮想サーバの親の仮想サーバが、スケールインされる仮想サーバの子の仮想サーバの親となるように、階層管理テーブルを更新する。これにより、スケールインされた仮想サーバにおいて、親の仮想サーバが、子の仮想サーバ1つ上の階層となることで、スケールアウト後の各仮想サーバは木構造を保持できる。
次に、第2の実施の形態の変化例について説明する。第2の実施の形態の変化例では、スケールアウトまたはスケールインの有無を、平均トランザクション数、平均トランザクション変化量に加え、平均トランザクション変化量における変化量に基づいて判断する。
図32は、閾値情報テーブルの変化例を示す図である。閾値情報テーブル125は、閾値情報テーブル121の変化例である。閾値情報テーブル125は、トラン数(上限)、トラン数(下限)、トラン変化量(上限)、トラン変化量(下限)、トラン変化量の変化量(上限)およびトラン変化量の変化量(下限)の項目を有する。トラン数(上限)、トラン数(下限)、トラン変化量(上限)およびトラン変化量(下限)の項目については、閾値情報テーブル121と同様であるため、説明を省略する。トラン変化量の変化量(上限)の項目には、平均トランザクション変化量における変化量の上限値が設定される。仮想サーバの平均トランザクション変化量の変化量がトラン変化量の変化量(上限)以上となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールアウトを要求する。トラン変化量の変化量(下限)の項目には、平均トランザクション変化量における変化量の下限値が設定される。仮想サーバの平均トランザクション変化量の変化量がトラン変化量の変化量(下限)未満となったとき、仮想サーバは、仮想化管理サーバ装置200にスケールインを要求する。
図33は、負荷分析値テーブルの変化例を示す図である。負荷分析値テーブル126は、日時、平均トラン数、平均トラン変化量および平均トラン変化量の変化量の項目を有する。日時、平均トラン数および平均トラン変化量の項目については、負荷分析値テーブル122と同様であるため説明を省略する。平均トラン変化量の変化量の項目には、所定時間あたりの仮想サーバの平均トランザクション変化量における変化量が設定される。具体的には、平均トランザクション変化量の変化量は、算出した平均トラン変化量と前回算出した平均トラン変化量との差分により算出される。
図32〜図33で示したように、第2の実施の形態の変化例では、スケールアウト等の有無が、第2の実施の形態で判断される平均トランザクション数、平均トランザクション変化量に加え、平均トランザクション変化量における変化量についても判断される。これにより、より急激なトランザクション数の変化の予兆を検知することができる。よって、より急激にトランザクション数が変化した場合でも、スケールアウト等の有無を迅速に判断できる。
第2の実施の形態によれば、複数のトランザクションを並行して実施する仮想サーバにおいて、仮想サーバを木構造で構成し、自己の階層の1つ下の階層における各仮想サーバから各仮想サーバの階層以下におけるサーバの平均トランザクション数などの性能測定値を受信する。これにより、トランザクションを実行する仮想サーバと別のサーバを用いて、複数の処理を実行する各仮想サーバの性能測定値を集計する方法に比べ、性能測定値の収集するための通信量を各サーバに分散できる。よって、大量の仮想サーバを用いた場合においても、滞ることなく性能測定値の集計が可能となり、迅速にスケールアウト等の有無を判断できる。
また、性能測定値として平均トランザクション変化量や、平均トランザクション変化量の変化量に基づいて、スケールアウト等などの有無を判断する。これにより、トランザクションの急激な変化を予測することができる。よって、端末装置21から要求されるトランザクションが急激に変化した場合も、迅速にスケールアウト等の有無を判断できる。
また、木構造で構成された各仮想サーバが自己の階層以下の各仮想サーバの平均トランザクション数を監視し、スケールアウト等の有無を判断する。これにより、1台のサーバが、全ての仮想サーバの平均トランザクション数を監視する方法と比べ、各仮想サーバの性能測定値を平準化できる。
図34は、第2の実施の形態の効果を示す第1のブロック図である。図34は、第2の実施の形態を利用しない場合の、オートスケールを管理する方法について説明する。仮想サーバ#1,#1−1,#1−2,#1−3,#1−4は、実行サーバ装置に用いられる仮想マシンである。仮想サーバ#1,#1−1,#1−2,#1−3,#1−4は、端末装置から要求されたトランザクションを並行して実行する。仮想サーバ#1は、仮想サーバ#1−1,#1−2,#1−3,#1−4と接続されている。仮想サーバ#1は、仮想サーバ#1−1,#1−2,#1−3,#1−4からトランザクション数を受信する。そして、仮想サーバ#1は、受信したトランザクション数と自己のトランザクション数を基に、全仮想サーバの平均トランザクション数を算出する。
ここで、仮想サーバ#1のトランザクション数=20、仮想サーバ#1−1のトランザクション数=60、仮想サーバ#1−2のトランザクション数=20、仮想サーバ#1−4のトランザクション数=20、仮想サーバ#1−4のトランザクション数=100である。また、スケールアウトを実行するための平均トランザクション数の閾値は100とする。
この場合、仮想サーバ#1が算出する平均トランザクション数は44となり、全体としては、閾値以上ではない。しかし、仮想サーバ#1−4は、閾値以上である100のトランザクションを実行しており、各仮想サーバについて、トランザクション数に偏りがある。
また、仮想サーバ#1は、全体の仮想サーバ数−1の仮想サーバからトランザクション数を受信する。例えば、図34において、仮想サーバ#1は、4の仮想サーバからトランザクション数を受信する。仮想サーバの数が1000に増えれば、仮想サーバ#1の配下の仮想サーバは999となり、トランザクション数を計測するための通信量が増大する。これにより、迅速なオートスケールに支障をきたす場合がある。
このように、1つの仮想サーバが、他の仮想サーバからトランザクション数を受信する場合、受信する仮想サーバへの通信の負担が増し、迅速なオートスケールが実現できなくなる恐れがある。また、1つの仮想サーバが全体の平均トランザクション数を計測すると、各仮想サーバのトランザクション数の偏りを検知することが困難である。
図35は、第2の実施の形態の効果を示す第2のブロック図である。図35は、第2の実施の形態を利用した場合の、オートスケールを管理する方法について説明する。仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、実行サーバ装置100に用いられる仮想マシンである。仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、端末装置21から要求されたトランザクションを並行して実行する。図35において、仮想サーバ#1,#1−1,#1−2,#1−1−1,#1−1−2は、次の木構造により構成されている。仮想サーバ#1において、親の仮想サーバは存在せず、子の仮想サーバには仮想サーバ#1−1,#1−2が存在する。また、仮想サーバ#1−1において、親の仮想サーバには仮想サーバ#1が存在し、子の仮想サーバには仮想サーバ#1−1−1,#1−1−2が存在する。また、仮想サーバ#1−2において、親の仮想サーバには仮想サーバ#1が存在し、子の仮想サーバは存在しない。また、仮想サーバ#1−1−1,#1−1−2において、親の仮想サーバには仮想サーバ#1−1が存在し、子の仮想サーバは存在しない。
ここで、仮想サーバ#1のトランザクション数=20、仮想サーバ#1−1のトランザクション数=60、仮想サーバ#1−2のトランザクション数=20、仮想サーバ#1−1−1のトランザクション数=20、仮想サーバ#1−1−2のトランザクション数=100とする。また、スケールアウトを実行するための平均トランザクション数の閾値は100とする。
この場合、仮想サーバ#1−1−1には子の仮想サーバが存在しないため、仮想サーバ#1−1−1の総仮想サーバ数=1、総トランザクション数=20および平均トランザクション数=20となる。また、仮想サーバ#1−1−2は、総仮想サーバ数=1、総トランザクション数=100および平均トランザクション数=100となる。
また、仮想サーバ#1−1は、子の仮想サーバ#1−1−1,#1−1−2が存在する。そのため、仮想サーバ#1−1の総仮想サーバ数=1+1+1=3、総トランザクション数の合計=20+100+60=180、そして、平均トランザクション数=180÷3=60となる。また、仮想サーバ#1−2は、子の仮想サーバが存在しないため、総仮想サーバ数=1、総トランザクション数=20および平均トランザクション数=20となる。また、仮想サーバ#1は、子の仮想サーバ#1−1,#1−2が存在する。そのため、総仮想サーバ数=3+1+1=5、総トランザクション数=180+20+20=220となる。そして、平均トランザクション数=220÷5=44となる。
このため、仮想サーバ#1が測定した平均トランザクション数=44で閾値未満だが、仮想サーバ#1−1−2の平均トランザクション数=100のため、閾値以上であり、スケールアウトを要求する判断が可能となる。
また、図35において、仮想サーバが木構造で構成されているため、各仮想サーバがトランザクション数を受信する仮想サーバの数は、多くても2つである。また、全体の仮想サーバが1000になっても、ツリー構造のため、各仮想サーバがトランザクション数を受信する仮想サーバの数は変わらず、通信量が分散される。
このように、各仮想サーバを木構造で構成することで、トランザクション数を測定するための通信の負荷を各仮想サーバに分散することができる。また、各仮想サーバが自己の階層以下の階層の平均トランザクション数を測定し、スケールアウトおよびスケールインの有無を判定することで、各仮想サーバが実行するトランザクション数を平準化できる。
なお、前述のように、第1の実施の形態の情報処理は、サーバ10,10a,10b,10cにプログラムを実行させることで実現でき、第2の実施の形態の情報処理は、実行サーバ装置100にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク31経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワーク31を介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することも可能である。
上記については単に本発明の原理を示すものである。さらに、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
10,10a,10b,10c サーバ
11,11a,11b,11c 受信部
12,12a,12b,12c 判定部

Claims (12)

  1. コンピュータに、
    前記コンピュータまたは前記コンピュータと同じシステムに属する他のコンピュータが、サーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成しており、前記コンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、前記1以上の第2のサーバ以下に従属する1以上のサーバ群に属するサーバの負荷値を受信し、
    前記第1のサーバの負荷値と、前記1以上の第2のサーバから受信した負荷値に基づいて、前記システムを増強させるか否かを判定する、
    処理を実行させることを特徴とするプログラム。
  2. 前記コンピュータに、さらに、
    前記システムを増強させると判定した場合、前記第1のサーバに従属するサーバの追加要求を出力する、
    ことを特徴とする請求項1記載のプログラム。
  3. 前記判定では、前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値が閾値以上の場合、前記システムを増強させると判定する、ことを特徴とする請求項1または2のいずれかに記載のプログラム。
  4. 前記判定では、さらに、
    前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値が閾値未満の場合、前記システムを縮小させると判定する、
    ことを特徴とする請求項1乃至3のいずれかに記載のプログラム。
  5. 前記コンピュータに、さらに、
    前記システムを縮小させると判定した場合、前記第1のサーバの停止要求を出力する、
    処理を実行させることを特徴とする請求項4記載のプログラム。
  6. 前記判定では、さらに、
    前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値の変化量が閾値以上の場合、前記システムを増強させると判定する、ことを特徴とする請求項1記載のプログラム。
  7. 前記判定では、さらに、
    前記第1のサーバおよび前記1以上のサーバ群に属するサーバの負荷値の平均値の変化量が閾値未満の場合、前記システムを縮小させると判定する、
    ことを特徴とする請求項1記載のプログラム。
  8. 前記第1のサーバは、前記コンピュータによって構築された仮想マシンによって実現されており、前記受信と、前記判定とを、該仮想マシンに実行させる、
    ことを特徴とする請求項1乃至7のいずれかに記載のプログラム。
  9. 前記コンピュータによって複数の仮想マシンが構築され、各仮想マシン上でサーバが実現されている場合、各仮想マシンに対し、該仮想マシン上で実現されているサーバを前記第1のサーバとして、前記受信と、前記判定とを実行させる、
    ことを特徴とする請求項8記載のプログラム。
  10. 前記複数のサーバは、負荷の受け渡し関係が木構造となるように接続されていることを特徴とする請求項1乃至9のいずれかに記載のプログラム。
  11. コンピュータに、
    前記コンピュータまたは前記コンピュータと同じシステムに属する他のコンピュータが、サーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成しており、前記コンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、前記1以上の第2のサーバ以下に従属する1以上のサーバ群に属するサーバの負荷値を受信し、
    前記第1のサーバの負荷値と、1以上の第2のサーバそれぞれから受信した負荷値に基づいて、前記システムを増強させるか否かを判定する、
    処理を実行させることを特徴とする管理方法。
  12. コンピュータまたは前記コンピュータと同じシステムに属する他のコンピュータが、サーバソフトウェアを実行することで実現される複数のサーバが接続され、それぞれの接続が、負荷値の受け渡しに関する従属関係を構成しており、前記コンピュータで実現される第1のサーバに従属する1以上の第2のサーバから、前記1以上の第2のサーバ以下に従属する1以上のサーバ群に属するサーバの負荷値を受信する受信部と、
    前記第1のサーバの負荷値と、1以上の第2のサーバそれぞれから受信した負荷値に基づいて、前記システムを増強させるか否かを判定する判定部と、
    を有することを特徴とするコンピュータ。
JP2016509845A 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ Expired - Fee Related JP6256594B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/059259 WO2015145753A1 (ja) 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ

Publications (2)

Publication Number Publication Date
JPWO2015145753A1 JPWO2015145753A1 (ja) 2017-04-13
JP6256594B2 true JP6256594B2 (ja) 2018-01-10

Family

ID=54194339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016509845A Expired - Fee Related JP6256594B2 (ja) 2014-03-28 2014-03-28 プログラム、管理方法およびコンピュータ

Country Status (3)

Country Link
US (1) US20170019462A1 (ja)
JP (1) JP6256594B2 (ja)
WO (1) WO2015145753A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12077146B2 (en) 2019-03-06 2024-09-03 Denso Corporation Process allocation control method, process allocation control system, process allocation control device, and server device

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277524B1 (en) * 2018-02-23 2019-04-30 Capital One Services, Llc Monitoring data streams and scaling computing resources based on the data streams
US11409568B2 (en) * 2020-10-05 2022-08-09 International Business Machines Corporation Dynamically scaling out pods using a recursive way
US11025710B1 (en) * 2020-10-26 2021-06-01 Verizon Digital Media Services Inc. Systems and methods for dynamic load balancing based on server utilization and content popularity
JP7669842B2 (ja) * 2021-07-16 2025-04-30 富士通株式会社 ジョブ運用プログラム、ジョブ運用システムおよびジョブ運用方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506011B2 (en) * 2006-07-26 2009-03-17 International Business Machines Corporation System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications
JP5446040B2 (ja) * 2009-09-28 2014-03-19 日本電気株式会社 コンピュータシステム、及び仮想マシンのマイグレーション方法
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
JP5843459B2 (ja) * 2011-03-30 2016-01-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、スケーリング方法、プログラムおよび記録媒体
TW201324357A (zh) * 2011-12-01 2013-06-16 Univ Tunghai 虛擬機叢集之綠能管理方法
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP5914245B2 (ja) * 2012-08-10 2016-05-11 株式会社日立製作所 多階層の各ノードを考慮した負荷分散方法
TW201409357A (zh) * 2012-08-31 2014-03-01 Hon Hai Prec Ind Co Ltd 虛擬機資源負載平衡系統及方法
US9208015B2 (en) * 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12077146B2 (en) 2019-03-06 2024-09-03 Denso Corporation Process allocation control method, process allocation control system, process allocation control device, and server device

Also Published As

Publication number Publication date
US20170019462A1 (en) 2017-01-19
JPWO2015145753A1 (ja) 2017-04-13
WO2015145753A1 (ja) 2015-10-01

Similar Documents

Publication Publication Date Title
JP6248560B2 (ja) 管理プログラム、管理方法、および管理装置
JP6256594B2 (ja) プログラム、管理方法およびコンピュータ
US9003086B1 (en) Dynamic distribution of replicated data
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
US9628404B1 (en) Systems and methods for multi-tenancy management within a distributed database
CN103036994B (zh) 实现负载均衡的云存储系统
US9122527B2 (en) Resource allocation for migration within a multi-tiered system
CN107251017B (zh) 经由基数估计的有效联结路径确定
WO2018149345A1 (zh) 一种数据处理方法及装置
CN105808634A (zh) 分布式映射化简网络
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
US10192165B2 (en) System and method for navigating multi-dimensional decision trees using acceptable alternate nodes
US20140282540A1 (en) Performant host selection for virtualization centers
JPWO2016174764A1 (ja) 管理装置および管理方法
JP6807963B2 (ja) 情報処理システム及び情報処理方法
CN112948279B (zh) 管理存储系统中的访问请求的方法、设备和程序产品
CN103677993A (zh) 虚拟机资源负载平衡系统及方法
JP2014229235A (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
WO2019091349A1 (zh) 数据均衡方法、装置及计算机设备
US20220391370A1 (en) Evolution of communities derived from access patterns
JP6582721B2 (ja) 制御装置、ストレージシステム、及び制御プログラム
CN106648891A (zh) 基于MapReduce模型的任务执行方法和装置
US20170228178A1 (en) Effective utilization of storage arrays within and across datacenters
US20140365681A1 (en) Data management method, data management system, and data management apparatus
JP6630442B2 (ja) 適切なitリソース上にアプリケーションを配備するための管理コンピュータ及び非一時的なコンピュータ可読媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170911

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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6256594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees