JP6631710B2 - 仮想化管理プログラム、仮想化管理装置および仮想化管理方法 - Google Patents

仮想化管理プログラム、仮想化管理装置および仮想化管理方法 Download PDF

Info

Publication number
JP6631710B2
JP6631710B2 JP2018524634A JP2018524634A JP6631710B2 JP 6631710 B2 JP6631710 B2 JP 6631710B2 JP 2018524634 A JP2018524634 A JP 2018524634A JP 2018524634 A JP2018524634 A JP 2018524634A JP 6631710 B2 JP6631710 B2 JP 6631710B2
Authority
JP
Japan
Prior art keywords
container
virtual execution
service
application
scale
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
JP2018524634A
Other languages
English (en)
Other versions
JPWO2018003031A1 (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 JPWO2018003031A1 publication Critical patent/JPWO2018003031A1/ja
Application granted granted Critical
Publication of JP6631710B2 publication Critical patent/JP6631710B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は仮想化管理プログラム、仮想化管理装置および仮想化管理方法に関する。
現在、コンピュータ仮想化技術を用いて、同じ物理マシン上に複数の仮想マシンや複数のコンテナなどの複数の仮想実行単位を稼働させることがある。複数の仮想実行単位それぞれに対してプロセッサ能力やメモリ領域などのリソースを割り当てることができ、各仮想実行単位が使用できるリソースは割り当てられた範囲に限定される。ある仮想実行単位上では、他の仮想実行単位から影響を受けずに(他の仮想実行単位とは独立に)アプリケーションソフトウェアを実行することができる。複数の仮想実行単位に同じ種類のアプリケーションソフトウェアを実行させ、これら複数の仮想実行単位を用いて当該アプリケーションソフトウェアの処理を分散化することもできる。
このとき、同じ種類のアプリケーションソフトウェアを実行する仮想実行単位の数を動的に変更することがある。アプリケーションソフトウェアの負荷が高いとき(例えば、単位時間当たりのリクエスト数が多いとき)は仮想実行単位を増やし、負荷が低いとき(例えば、単位時間当たりのリクエスト数が少ないとき)は仮想実行単位を減らすことが考えられる。これにより、負荷が低いときはリソースを節約し、負荷が高いときのみ所要のリソースを使用することが可能となる。同じ種類のアプリケーションソフトウェアを実行する仮想実行単位の数を「スケール」、仮想実行単位を増やすことを「スケールアウト」、仮想実行単位を減らすことを「スケールイン」と言うことがある。
例えば、複数の仮想サーバを含むクラスタシステムを管理するサーバ管理装置が提案されている。提案のサーバ管理装置は、仮想サーバ群のプロセッサ使用率、メモリ使用率、待ちキュー数、データベースコネクション数、ガーベッジコレクションの発生頻度およびクライアントとの間のセッション数を収集する。サーバ管理装置は、上記の6個の指標値の全てが閾値以下である場合、仮想サーバ群をスケールイン可能と判定する。スケールイン可能である場合、サーバ管理装置は、稼働中の仮想サーバ数が最も少ない物理サーバを検索し、該当する物理サーバ上の何れかの仮想サーバを停止させる。
また、例えば、仮想サーバの現在の負荷がスケールイン閾値を下回ったとき、過去の負荷変動の履歴から今後の負荷変動を予測し、今後も負荷が継続的にスケールイン閾値を下回ると予測される場合にスケールインを実行するサーバ管理装置が提案されている。また、例えば、仮想マシンのトラフィック種別毎の通信量を収集し、通信量に基づいて仮想マシンの増加台数または減少台数を決定する運用管理装置が提案されている。
特開2011−90594号公報 特開2011−118525号公報 特開2015−149578号公報
スケールインを行う場合、複数の仮想実行単位のうちの何れの仮想実行単位を停止させるかが問題となる。未完了の処理のステート(処理途中のデータ)を有している仮想実行単位を強制停止させてしまうと、当該ステートが失われてしまう。よって、未完了の処理のステートを有していない仮想実行単位を選択することが好ましい。
停止させる仮想実行単位を選択する1つの方法としては、仮想実行単位毎にプロセッサ使用率、メモリ使用量、ディスク使用量などの変化を監視し、ほとんど変化がない仮想実行単位を選択する方法が考えられる。しかし、アプリケーションソフトウェアによっては、プロセッサ使用率などに変化がなくても、仮想実行単位が未完了の処理のステートを有している場合がある。逆に、プロセッサ使用率などが間欠的に変化していても、仮想実行単位が未完了の処理のステートを有していない場合もある。
1つの側面では、本発明は、停止させる仮想実行単位を適切に選択できる仮想化管理プログラム、仮想化管理装置および仮想化管理方法を提供することを目的とする。
1つの態様では、以下の処理をコンピュータに実行させる仮想化管理プログラムが提供される。プロセッサリソースおよびプロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、プロセッサリソースに関する第1使用量および他のリソースに関する第2使用量を示すリソース情報と、複数の仮想実行単位のコンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを取得する。リソース情報およびサービス情報に関する所定の条件に基づいて、複数の仮想実行単位より停止可能な仮想実行単位を特定する。所定の条件は、第1使用量の変化量および第2使用量の変化量が閾値以下であり、かつ、サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、第2使用量の変化量が閾値以下であり、サービスの利用がサービスに対するポーリングである時間が第2の時間以上継続しており、かつ、ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す。
また、1つの態様では、記憶部と制御部とを有する仮想化管理装置が提供される。また、1つの態様では、コンピュータが実行する仮想化管理方法が提供される。
1つの側面では、停止させる仮想実行単位を適切に選択できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の仮想化管理装置の例を示す図である。 第2の実施の形態の情報処理システムの例を示す図である。 スケール制御サーバのハードウェア例を示すブロック図である。 コンテナの例を示すブロック図である。 コンテナのスケールアウトとスケールインの例を示す図である。 アプリケーション設定テーブルの例を示す図である。 アプリケーションインスタンステーブルの例を示す図である。 コンテナリソーステーブルの例を示す図である。 振り分けテーブルと通信ログテーブルの例を示す図である。 サービスログテーブルの例を示す図である。 サーバ間の通信例を示すシーケンス図である。 サーバ間の通信例を示すシーケンス図(続き)である。 スケール制御サーバの機能例を示すブロック図である。 スケールイン判定の手順例を示すフローチャートである。 スケールイン判定の手順例を示すフローチャート(続き)である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の仮想化管理装置の例を示す図である。
第1の実施の形態の仮想化管理装置10は、仮想実行単位21,22を含む複数の仮想実行単位を管理する。仮想実行単位21,22は、物理的なコンピュータ(物理マシン)上においてアプリケーションソフトウェアを実行する仮想的な処理主体である。仮想実行単位21,22は、同じ物理マシンまたは異なる物理マシンに配置されている。
仮想実行単位21,22は、ホスト型仮想化やハイパーバイザ型仮想化における仮想マシンであってもよいし、コンテナ型仮想化におけるコンテナでもよい。
ホスト型仮想化では、物理マシン上でホストOS(Operating System)が実行され、ホストOS上で複数の仮想マシンが動作する。各仮想マシンではゲストOSが実行され、ゲストOS上でミドルウェアやアプリケーションソフトウェアが実行される。ハイパーバイザ型仮想化では、物理マシン上でハイパーバイザが実行され、ハイパーバイザ上で複数の仮想マシンが動作する。ホスト型仮想化と同様、各仮想マシンではゲストOSが実行され、ゲストOS上でミドルウェアやアプリケーションソフトウェアが実行される。コンテナ型仮想化では、物理マシン上でホストOSが実行され、ホストOS上で複数のコンテナが動作する。コンテナは、仮想マシンより軽量な仮想実行単位である。各コンテナでは、ゲストOSは実行されず、ホストOSが管理するリソースの一部を用いてミドルウェアやアプリケーションソフトウェアが実行される。
仮想実行単位21,22はそれぞれ、割り当てられているリソースの範囲内でアプリケーションソフトウェアを実行することができる。仮想実行単位21には、プロセッサリソース21aおよび他のリソース21bが割り当てられている。仮想実行単位22には、プロセッサリソース22aおよび他のリソース22bが割り当てられている。プロセッサリソース21a,22aは、CPU(Central Processing Unit)リソースなどプロセッサの演算能力である。他のリソース21b,22bは、プロセッサリソース21a,22a以外のリソースであり、例えば、RAM(Random Access Memory)などの主記憶装置の記憶領域や、HDD(Hard Disk Drive)などの補助記憶装置の記憶領域である。
仮想実行単位21,22は、サービス23を利用することがある。サービス23は、例えば、仮想実行単位21,22の外部から提供される。サービス23は、仮想実行単位21,22を実行するコンピュータ以外の装置から提供されてもよく、仮想化管理装置10以外の装置から提供されてもよい。サービス23は、例えば、外部の記憶装置を用いたサービスであり、データベースサービスやキューサービスが含まれてもよい。サービス23の利用形態の例として、データベースの参照、データベースの更新、仮想実行単位21,22が共有するキューのポーリング、キューからの読み出し、キューへの書き込みなどが挙げられる。キューのポーリングでは、キューにデータが到着しているか否かを定期的に確認する。
第1の実施の形態では、複数の仮想実行単位は同じ種類のアプリケーションソフトウェアを実行する。これら複数の仮想実行単位を用いて、アプリケーションソフトウェアの処理が分散化されている。仮想化管理装置10は、複数の仮想実行単位のリソース使用状況に応じて、仮想実行単位の数を動的に変更する。スケールアウトでは、仮想化管理装置10は、新たな仮想実行単位を追加して仮想実行単位の数を増やす。スケールインでは、仮想化管理装置10は、一部の仮想実行単位を停止して仮想実行単位の数を減らす。
仮想化管理装置10は、記憶部11および制御部12を有する。記憶部11は、RAMなどの揮発性の半導体メモリでもよいし、HDDやフラッシュメモリなどの不揮発性の記憶装置でもよい。制御部12は、CPUやDSP(Digital Signal Processor)などのプロセッサでもよい。また、制御部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサが実行するプログラムには、以下に説明する処理を記載した仮想化管理プログラムが含まれる。複数のプロセッサの集合を、「マルチプロセッサ」または単に「プロセッサ」と呼ぶこともある。
記憶部11は、複数の仮想実行単位それぞれについてリソース情報13およびサービス情報14を記憶する。リソース情報13およびサービス情報14は、仮想化管理装置10がネットワーク経由で収集したものであってもよい。
リソース情報13は、プロセッサリソースの使用量(第1使用量)および他のリソースの使用量(第2使用量)を示す。例えば、仮想実行単位21について、リソース情報13は、仮想実行単位21に割り当てられたプロセッサリソース21aのうち使用されている量(例えば、プロセッサ使用率)を示す。また、リソース情報13は、仮想実行単位21に割り当てられた他のリソース21bのうち使用されている量(例えば、メモリ使用量やディスク使用量)を示す。サービス情報14は、サービス23の利用状況を示す。例えば、仮想実行単位21について、サービス情報14は、仮想実行単位21がサービス23に対して要求した時刻やサービスの種類を示す。
制御部12は、記憶部11に記憶されたリソース情報13およびサービス情報14に関する所定の条件に基づいて、複数の仮想実行単位より停止可能な仮想実行単位を特定する。スケールインを行う場合、制御部12は、特定した仮想実行単位を停止させる。ここで、所定の条件は、第1の状態15または第2の状態16の仮想実行単位を示す。
第1の状態15は、第1使用量の変化量および第2使用量の変化量が閾値以下であり、かつ、サービス23を利用しない時間が第1の時間以上継続している状態である。第1使用量の変化量および第2使用量の変化量は、例えば、直近の5秒間における最大値と最小値の差である。第1使用量の変化量の閾値は、例えば、割り当てられたプロセッサリソースの5%程度である。第2使用量の変化量の閾値は、例えば、割り当てられた他のリソースの5%程度である。第1の時間は、例えば、5分程度である。
仮想実行単位21が第1の状態15にある場合、仮想実行単位21は、アプリケ−ションソフトウェアの処理を実行しておらず、サービス23からの応答待ちも発生していないと推定される。この場合、仮想実行単位21は、未完了の処理のステート(処理途中のデータ)を有しておらず、停止してもステートが失われないと考えられる。
第2の状態16は、第2使用量の変化量が閾値以下であり、サービス23の利用がサービス23に対するポーリングである時間が第2の時間以上継続しており、かつ、ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている状態である。第2の状態16では、第1使用量の変化量が閾値を超えていてもよい。第2使用量の変化量は、例えば、直近の5秒間における最大値と最小値の差である。第2使用量の変化量の閾値は、例えば、割り当てられた他のリソースの5%程度である。第2の時間は、例えば、10分程度である。この間、ポーリング以外にサービス23が利用されていないことが好ましい。
仮想実行単位22が第2の状態16にある場合、仮想実行単位22は、プロセッサリソース22aを使用していても、その使用は専らポーリングによって生じていると推定される。この場合、仮想実行単位22は、未完了の処理のステート(処理途中のデータ)を有しておらず、停止してもステートが失われないと考えられる。また、他の仮想実行単位もポーリングを行っているため、仮想実行単位22がポーリングを停止しても、サービス23に到着したデータが処理されずに残ってしまう可能性は低い。
第1の実施の形態の仮想化管理装置10によれば、複数の仮想実行単位についてリソース情報13とサービス情報14が取得され、リソース情報13とサービス情報14に関する所定の条件に基づいて、複数の仮想実行単位より停止可能な仮想実行単位が特定される。第1の状態15または第2の状態16にある仮想実行単位が、停止可能と判定され得る。これにより、未完了の処理のステートを有している仮想実行単位を強制停止させてしまうリスクを低減でき、停止させる仮想実行単位を適切に選択することができる。
プロセッサリソースや他のリソースの使用量の変化が小さい仮想実行単位であっても、サービス23の応答待ちによって未完了の処理のステートを有していることがある。これに対し、仮想化管理装置10は、第1の状態15にある仮想実行単位を特定することで、サービス23の応答待ち中の仮想実行単位を強制停止してしまうリスクを低減できる。また、プロセッサリソースの使用量の変化が小さくない仮想実行単位であっても、専らポーリングを行っているため未完了の処理のステートを有していないことがある。これに対し、仮想化管理装置10は、第2の状態16にある仮想実行単位を特定することで、専らポーリングを行う仮想処理単位を停止させることが可能となる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、クライアント41、管理者端末42、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46、スケール制御サーバ100およびコンテナサーバ200,200aを有する。クライアント41および管理者端末42は、広域ネットワークであるネットワーク31に接続されている。ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46、スケール制御サーバ100およびコンテナサーバ200,200aは、ローカルネットワークであるネットワーク32に接続されている。
コンテナサーバ200,200aは、複数のコンテナを配置することができるサーバコンピュータである。第2の実施の形態では、コンピュータ仮想化技術としてコンテナ型仮想化を用いる。コンテナは、仮想マシンよりも軽量な仮想実行単位である。各コンテナに対して、コンテナサーバ200,200aが有するハードウェアリソースの一部が割り当てられる。ハードウェアリソースには、CPUリソース(CPU処理時間)、RAMリソース(RAM記憶領域)およびディスクリソース(HDD記憶領域)が含まれる。
各コンテナは、割り当てられたハードウェアリソースを用いて、他のコンテナとは独立にミドルウェアやアプリケーションソフトウェアを実行する。ただし、各コンテナは、仮想マシンと異なりゲストOSを実行しなくてよい。同じコンテナサーバ上に異なるユーザのコンテナを混在させて配置することもできる。また、2以上のコンテナに同じアプリケーションソフトウェアを実行させて処理を分散化することもできる。
スケール制御サーバ100は、コンテナサーバ200,200aに配置されたコンテナのスケールを制御するサーバコンピュータである。すなわち、スケール制御サーバ100は、同じアプリケーションソフトウェアを実行するコンテナの数を、現在のコンテナの負荷に応じて動的に変更する。負荷が高いと判断される場合、スケール制御サーバ100は、コンテナの数を増やす「スケールアウト」を行うと決定する。負荷が低いと判断される場合、スケール制御サーバ100は、コンテナの数を減らす「スケールイン」を行うと決定する。スケールインを行う際、スケール制御サーバ100は、コンテナサーバ200,200aに配置されたコンテナの中から停止するコンテナを選択する。
クライアント41は、コンテナで実行されているアプリケーションソフトウェアに対するリクエストを送信し、リクエストに対応するレスポンスを受信するクライアントコンピュータである。アプリケーションソフトウェアがWebサーバアプリケーションである場合、例えば、クライアント41は、WebブラウザなどのWebクライアントを用いてHTTP(Hypertext Transfer Protocol)メッセージを送受信する。同じアプリケーションソフトウェアを実行するコンテナが複数存在するため、クライアント41は、ネットワーク31,32を介してロードバランサ43にリクエストを送信する。クライアント41は、ロードバランサ43からレスポンスを受信する。
管理者端末42は、アプリケーションソフトウェアの管理者が使用するクライアントコンピュータである。管理者端末42は、ネットワーク31,32を介してアプリケーション管理サーバ45にアクセスし、コンテナサーバ200,200aへのコンテナの配置をアプリケーション管理サーバ45に依頼する。なお、図2では管理者端末42が広域ネットワークであるネットワーク31に接続されているとしたが、管理者端末42がローカルネットワークであるネットワーク32に接続されていてもよい。
ロードバランサ43は、ネットワーク31からコンテナサーバ200,200aへのリクエストと、コンテナサーバ200,200aからネットワーク31へのレスポンスを中継するサーバコンピュータである。ただし、ロードバランサ43は、「ルータ」、「ゲートウェイ」、「リバースプロキシサーバ」などと呼ばれる装置であってもよい。ロードバランサ43は、コンテナ数が2以上のアプリケーションソフトウェア宛てのリクエストを受信すると、2以上のコンテナのうちの何れか1つを選択し、選択したコンテナにリクエストを転送する。コンテナの選択方法としては、ラウンドロビンなどの所定のアルゴリズムを使用する。ラウンドロビンでは、1番目のコンテナ、2番目のコンテナ、3番目のコンテナ、…1番目のコンテナと、2以上のコンテナが巡回的に選択される。
また、ロードバランサ43は、各コンテナのアプリケーションソフトウェアが正常に稼働しているか監視する。ロードバランサ43は、定期的に(例えば、30秒周期で)各コンテナに生存確認メッセージを送信し、生存確認メッセージに対する応答メッセージを待つ。ロードバランサ43は、応答メッセージがあったコンテナではアプリケーションソフトウェアが正常に稼働していると判定する。一方、ロードバランサ43は、所定回数(例えば、2回)連続して応答メッセージがないコンテナでは、アプリケーションソフトウェアがハングアップなどにより正常に稼働していないと判定する。アプリケーションソフトウェアが正常に稼働していないコンテナを検出した場合、ロードバランサ43は、以降は当該コンテナにリクエストを転送しないようにする。
ストレージサーバ44は、不揮発性の記憶装置を用いてデータを保存し、データに関する各種のサービスを提供するサーバコンピュータである。ストレージサーバ44は、ミドルウェアのプログラムおよびアプリケーションソフトウェアのプログラムを含むコンテナイメージを記憶する。1つのコンテナイメージから、同じアプリケーションソフトウェアを実行する2以上のコンテナを起動することができる。
また、ストレージサーバ44は、データベースサービスを提供する。コンテナサーバ200,200aに配置されたコンテナは、ストレージサーバ44に対し、データベースの参照や更新を要求することができる。また、ストレージサーバ44は、キューサービスを提供する。コンテナサーバ200,200aに配置された2以上のコンテナは、同一のキューを共有できる。各コンテナは、ストレージサーバ44に対し、キューにデータが到着しているか確認するポーリングを要求することができる。また、各コンテナは、ストレージサーバ44に対し、キューの読み出しや書き込みを要求することができる。
アプリケーション管理サーバ45は、管理者端末42から指定された設定に基づいてコンテナイメージを生成し、生成したコンテナイメージをストレージサーバ44に保存する。また、アプリケーション管理サーバ45は、管理者端末42からの指示に応じて、コンテナイメージを用いたコンテナの起動をコンテナ管理サーバ46に指示する。また、アプリケーション管理サーバ45は、スケール制御サーバ100がスケールアウトまたはスケールインを決定すると、その旨の通知をスケール制御サーバ100から受信する。すると、アプリケーション管理サーバ45は、スケール制御サーバ100からの通知に応じて、コンテナの追加または削除をコンテナ管理サーバ46に指示する。
コンテナ管理サーバ46は、コンテナを管理するサーバコンピュータである。コンテナ管理サーバ46は、コンテナサーバ200,200aから、各コンテナの負荷に関する情報を収集する。また、コンテナ管理サーバ46は、アプリケーション管理サーバ45からの指示に応じて、ストレージサーバ44に記憶されたコンテナイメージを用いてコンテナサーバ200,200aにコンテナを起動させる。コンテナを追加した場合、コンテナ管理サーバ46は、当該コンテナにリクエストが振り分けられるようにロードバランサ43を設定する。また、コンテナ管理サーバ46は、アプリケーション管理サーバ45からの指示に応じて、コンテナサーバ200,200aにコンテナを停止させる。
図3は、スケール制御サーバのハードウェア例を示すブロック図である。
スケール制御サーバ100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。スケール制御サーバ100の上記ユニットは、バス108に接続されている。なお、スケール制御サーバ100は、第1の実施の形態の仮想化管理装置10に対応する。CPU101は、第1の実施の形態の制御部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
クライアント41、管理者端末42、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46およびコンテナサーバ200,200aも、スケール制御サーバ100と同様のハードウェアを用いて実装できる。
プロセッサ101は、プログラムの命令を実行する演算回路を含むプロセッサである。プロセッサ101は、例えば、CPUである。プロセッサ101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、ロードされたプログラムを実行する。なお、プロセッサ101が複数のプロセッサコアを備えてもよいし、スケール制御サーバ100が複数のプロセッサを備えてもよい。以下で説明する処理を、複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。
RAM102は、プロセッサ101が実行するプログラムや演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、スケール制御サーバ100は、RAM以外の種類のメモリを備えてもよいし、複数個のメモリを備えてもよい。
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには、仮想化管理プログラムが含まれる。なお、スケール制御サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよいし、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、プロセッサ101からの命令に従って、スケール制御サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、スケール制御サーバ100に接続された入力デバイス112から入力信号を取得し、プロセッサ101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、スケール制御サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、プロセッサ101によって実行される。なお、記録媒体113は、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
通信インタフェース107は、ネットワーク32に接続され、ネットワーク32を介して他のコンピュータと通信を行うインタフェースである。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。
図4は、コンテナの例を示すブロック図である。
コンテナサーバ200は、オペレーティングシステム201およびコンテナ制御部202を有する。また、一例として、コンテナサーバ200は、コンテナ210,220を有する。オペレーティングシステム201、コンテナ制御部202およびコンテナ210,220は、CPUが実行するプログラムモジュールを用いて実装できる。コンテナサーバ200aも、コンテナサーバ200と同様の機能を有する。
オペレーティングシステム201は、コンテナサーバ200が有するハードウェアリソースを管理するホストOSである。コンテナ制御部202は、オペレーティングシステム201上で動作するミドルウェアである。コンテナ制御部202は、オペレーティングシステム201が管理するハードウェアリソースの一部をコンテナ210,220に割り当てることで、コンテナ制御部202上にコンテナ210,220を形成する。
コンテナ210は、ミドルウェア211およびアプリケーションインスタンス212を有する。コンテナ220は、ミドルウェア221およびアプリケーションインスタンス222を有する。ミドルウェア211,221は、クライアント41とのメッセージ送受信機能などの基本的なサーバ機能を提供する。アプリケーションインスタンス212,222は、ミドルウェア211,221上で動作するユーザ定義のアプリケーションソフトウェアを起動したもの(プロセスやスレッドなど)である。
アプリケーションインスタンス212とアプリケーションインスタンス222とは、同じアプリケーションプログラムから起動することができ、クライアント41からのリクエストに応じて同種の処理を実行する。コンテナ210,220は、ホストOSであるオペレーティングシステム201のハードウェアリソースを利用するため、ゲストOSを実行しなくてよい。コンテナ210,220は、同じコンテナイメージから起動できる。
ここで、コンテナ制御部202は、コンテナ210の処理とコンテナ220の処理とを分離し、両者が干渉しないように制御する。例えば、コンテナ制御部202は、コンテナ210,220に異なるプロセスID名前空間を付与する。これにより、オペレーティングシステム201が管理するプロセスのうちコンテナ210のプロセスとコンテナ220のプロセスとが区別される。また、コンテナ制御部202は、コンテナ210,220に異なるネットワーク名前空間を付与する。これにより、オペレーティングシステム201が転送する通信のうちコンテナ210の通信とコンテナ220の通信とが区別される。
また、コンテナ制御部202は、コンテナ210,220に異なるユーザID名前空間を付与する。これにより、コンテナ210とコンテナ220が同じユーザIDを使用しても、オペレーティングシステム201において両者が区別される。また、コンテナ制御部202は、コンテナ210,220に異なるマウント名前空間を付与する。これにより、オペレーティングシステム201が管理するファイルシステムの一部分が、コンテナ210のファイルシステムおよびコンテナ220のファイルシステムとして区別される。
また、コンテナ制御部202は、オペレーティングシステム201が管理するプロセスのうち、コンテナ210のプロセスの集合(プロセスグループ)およびコンテナ220のプロセスグループを特定する。コンテナ制御部202は、プロセスグループ毎にハードウェアリソースの使用を一定範囲に制限する。これにより、コンテナ制御部202は、コンテナ210,220にハードウェアリソースを割り当てることができる。
また、コンテナ制御部202は、オペレーティングシステム201およびコンテナ210,220の間でパケットを転送する仮想ブリッジ機能を提供する。コンテナ210とコンテナ220とは、仮想ブリッジを介して通信する。コンテナ210,220がコンテナサーバ200の外部と通信する場合、コンテナ210,220は、仮想ブリッジを介してオペレーティングシステム201にパケットを出力し、オペレーティングシステム201から仮想ブリッジを介してパケットを取得する。
以上のコンテナ制御部202がコンテナ210の処理とコンテナ220の処理とを分離し、両者が干渉しないようにする制御は、OSの機能を利用して実現することも可能である。
図5は、コンテナのスケールアウトとスケールインの例を示す図である。
あるアプリケーションソフトウェアを実行するコンテナとして、コンテナ210,220,230の3つが起動しているとする。すると、ロードバランサ43は、クライアント41から受信する複数のリクエストをコンテナ210,220,230に割り振る。例えば、ロードバランサ43は、ラウンドロビンにより、複数のリクエストをコンテナ210,220,230に均等に転送する。ロードバランサ43は、コンテナ210,220,230からレスポンスを受信し、レスポンスをクライアント41に転送する。
コンテナ210,220,230の負荷が高くなると、スケールアウトによりコンテナ240が追加される。すると、ロードバランサ43は、クライアント41から受信する複数のリクエストをコンテナ210,220,230,240に割り振る。例えば、ロードバランサ43は、ラウンドロビンにより、複数のリクエストをコンテナ210,220,230,240に均等に転送する。ロードバランサ43は、コンテナ210,220,230,240からレスポンスを受信し、レスポンスをクライアント41に転送する。
一方、コンテナ210,220,230の負荷が低くなると、スケールインによりコンテナ230が削除される。すると、ロードバランサ43は、クライアント41から受信する複数のリクエストをコンテナ210,220に割り振る。例えば、ロードバランサ43は、ラウンドロビンにより、複数のリクエストをコンテナ210,220に均等に転送する。ロードバランサ43は、コンテナ210,220からレスポンスを受信し、レスポンスをクライアント41に転送する。上記ではコンテナ230を削除しているが、スケールインを行う場合には複数のコンテナの中から削除するコンテナを選択することになる。削除するコンテナは、後述するような方法でスケール制御サーバ100が選択する。
次に、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46およびスケール制御サーバ100が有するデータを説明する。
図6は、アプリケーション設定テーブルの例を示す図である。
アプリケーション設定テーブル121は、アプリケーション管理サーバ45が有する。アプリケーション設定テーブル121は、アプリケーションID、最低インスタンス数、メモリ容量、ディスク容量、CPU閾値、メモリ閾値、監視時間1、監視時間2および監視時間3の項目を有する。アプリケーション設定テーブル121の1つのレコードは、1つのアプリケーションソフトウェアに対応する。少なくとも一部の項目の値は、コンテナイメージを生成するにあたって管理者端末42から指定される。
アプリケーションIDの項目には、アプリケーションソフトウェアの識別子が登録される。同じアプリケーションソフトウェアが複数のコンテナで実行され得るため、同じアプリケーションIDをもつ複数のアプリケーションインスタンスが存在し得る。アプリケーションIDは、アプリケーション管理サーバ45が付与してもよいし、管理者端末42が指定してもよい。最低インスタンス数の項目には、アプリケーションインスタンス数の下限が登録される。スケールインによっても、アプリケーションインスタンスは最低インスタンス数未満には減少しない。最低インスタンス数は、管理者端末42から指定される。
メモリ容量の項目には、管理者端末42が希望するコンテナ1つ当たりのRAMリソース量(RAM記憶領域のサイズ)が登録される。ディスク容量の項目には、管理者端末42が希望するコンテナ1つ当たりのディスクリソース量(HDD記憶領域のサイズ)が登録される。コンテナサーバ200,200aが十分なハードウェアリソースを有している場合、このメモリ容量およびディスク容量が各コンテナに割り当てられる。ただし、コンテナサーバ200,200aのハードウェアリソースが不足している場合、この値未満のメモリ容量およびディスク容量が各コンテナに割り当てられることもある。メモリ容量およびディスク容量は、管理者端末42から指定される。
CPU閾値の項目には、スケールアウトを行うか否か判断する基準となるCPUリソースの閾値が登録される。少なくとも1つのコンテナにおいて現在のCPU使用率がCPU閾値を超えた場合、スケールアウトが決定される。メモリ閾値の項目には、スケールアウトを行うか否か判断する基準となるRAMリソースの閾値が登録される。少なくとも1つのコンテナにおいて現在のRAM使用量がメモリ閾値を超えた場合、スケールアウトが決定される。CPU閾値およびメモリ閾値は、管理者端末42から指定される。
監視時間1、監視時間2および監視時間3の項目には、スケールインの際に停止させるコンテナを選択するために用いられる時間閾値が登録される。監視時間1は、あるコンテナをロードバランサ43がリクエストの振り分け対象から除外してからの経過時間の閾値である。監視時間2は、あるコンテナがストレージサーバ44のサービスを全く利用していない時間の閾値である。監視時間3は、あるコンテナがストレージサーバ44に対するポーリング以外のサービスを利用していない時間の閾値である。
監視時間1、監視時間2および監視時間3は、アプリケーション管理サーバ45が付与してもよいし、管理者端末42が指定してもよい。例えば、監視時間1のデフォルト値を30分、監視時間2のデフォルト値を5分、監視時間3のデフォルト値を10分とする。監視時間1、監視時間2および監視時間3の使用方法の詳細は後述する。
図7は、アプリケーションインスタンステーブルの例を示す図である。
アプリケーションインスタンステーブル122は、スケール制御サーバ100が有する。アプリケーションインスタンステーブル122は、アプリケーションIDおよびインスタンスIDの項目を有する。アプリケーションインスタンステーブル122の1つのレコードは、1つのアプリケーションソフトウェアに対応する。
アプリケーションIDの項目には、アプリケーション設定テーブル121と同様のアプリケーションIDが登録される。インスタンスIDの項目には、アプリケーションインスタンスの識別子が列挙される。コンテナを追加する毎に、追加されるコンテナに対してアプリケーション管理サーバ45がインスタンスIDを付与する。
図8は、コンテナリソーステーブルの例を示す図である。
コンテナリソーステーブル123は、コンテナ管理サーバ46が有する。コンテナリソーステーブル123は、インスタンスID、時刻、CPU使用率、メモリ使用量およびディスク使用量の項目を有する。
インスタンスIDの項目には、アプリケーションインスタンステーブル122と同様のインスタンスIDが登録される。時刻の項目には、CPU使用率、メモリ使用量およびディスク使用量が測定された時刻が登録される。コンテナリソーステーブル123には、少なくとも直近5秒間のCPU使用率、メモリ使用量およびディスク使用量が登録される。
CPU使用率の項目には、各コンテナの各時刻に測定されたCPU使用率が登録される。メモリ使用量の項目には、各コンテナの各時刻に測定されたRAM使用量が登録される。ディスク使用量の項目には、各コンテナの各時刻に測定されたHDD使用量が登録される。コンテナ管理サーバ46は、定期的にコンテナサーバ200,200aから、各コンテナのCPU使用率、メモリ使用量およびディスク使用量を収集する。
図9は、振り分けテーブルと通信ログテーブルの例を示す図である。
振り分けテーブル124は、ロードバランサ43が有する。振り分けテーブル124は、アドレス、インスタンスID、停止フラグおよび停止時刻の項目を有する。
アドレスの項目には、クライアント41が送信するリクエストの宛先となるアプリケーションソフトウェアのアドレスが登録される。アドレスはリクエストに含まれている。1つのアドレスは1つのアプリケーションソフトウェアに対応する。アドレスは、例えば、IP(Internet Protocol)アドレスまたはURL(Uniform Resource Locator)である。インスタンスIDの項目には、アプリケーションインスタンステーブル122およびコンテナリソーステーブル123と同様のインスタンスIDが登録される。
停止フラグの項目には、リクエストの振り分け対象から除外されているか否かを示すフラグが登録される。停止フラグ=Falseは、振り分け対象から除外されていないことを示す。停止フラグ=Trueは、振り分け対象から除外されていることを示す。前述のように、生存確認メッセージに対する応答がないコンテナは、ハングアップなどにより異常停止している可能性があるためリクエストの振り分け対象から除外される。停止時刻の項目には、停止フラグがFalseからTrueに書き換えられた時刻、すなわち、リクエストの振り分け対象から除外された時刻が登録される。
通信ログテーブル125は、ロードバランサ43が有する。通信ログテーブル125は、アドレス、インスタンスID、通信方向および転送時刻の項目を有する。通信ログテーブル125の1つのレコードは、ロードバランサ43の1回の転送処理に対応する。
アドレスの項目には、転送先または送信元のアプリケーションソフトウェアのアドレスが登録される。インスタンスIDの項目には、転送先または送信元のコンテナ(すなわち、アプリケーションインスタンス)のインスタンスIDが登録される。通信方向の項目には、ロードバランサ43が転送したメッセージの種類が登録される。通信方向は、クライアント41からコンテナサーバ200,200aへのリクエストと、コンテナサーバ200,200aからクライアント41へのレスポンスとを区別する。転送時刻の項目には、ロードバランサ43がリクエストまたはレスポンスを転送した時刻が登録される。
図10は、サービスログテーブルの例を示す図である。
サービスログテーブル126は、ストレージサーバ44が有する。サービスログテーブル126は、アプリケーションID、インスタンスID、要求種別および要求時刻の項目を有する。サービスログテーブル126の1つのレコードは、コンテナサーバ200,200aからストレージサーバ44への1回の要求に対応する。
アプリケーションIDの項目には、要求元のアプリケーションソフトウェアのアプリケーションIDが登録される。インスタンスIDの項目には、要求元のコンテナ(すなわち、アプリケーションインスタンス)のインスタンスIDが登録される。要求種別の項目には、ストレージサーバ44が受け付けたサービス要求の種別が登録される。要求時刻の項目には、ストレージサーバ44が要求を受け付けた時刻が登録される。
ここで、サービス要求の種別には、データベース参照、データベース更新、キューポーリング、キュー読み出しおよびキュー書き込みが含まれる。データベース参照の要求に対して、ストレージサーバ44は、指定された検索条件に該当するデータをデータベースから検索し、検索されたデータベースを返信する。データベース更新の要求に対して、ストレージサーバ44は、指定されたデータをデータベースに書き込み、書き込みの成否を返信する。キューポーリングの要求に対して、ストレージサーバ44は、指定されたキューにデータが格納されているか確認し、データの有無を返信する。キュー読み出しの要求に対して、ストレージサーバ44は、指定されたキューからデータを読み出し、読み出したデータを返信する。キュー書き込みの要求に対して、ストレージサーバ44は、指定されたデータを指定されたキューに書き込み、書き込みの成否を返信する。
サービス要求の種別によっては、ストレージサーバ44が要求を受け付けてから応答するまで長時間を要することがある。ストレージサーバ44に要求を送信したコンテナは、ストレージサーバ44からの応答を待つことになる。その間、当該コンテナはCPUリソース、RAMリソースおよびHDDリソースをほとんど追加的に消費しないことがある。また、キューポーリングは、同じコンテナによって定期的に行われることがある。また、複数のコンテナが同じキューを共有することがあり、それら複数のコンテナが同じキューに対して定期的にキューポーリングを行うことがある。
次に、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46、スケール制御サーバ100およびコンテナサーバ200,200aの間の通信の流れについて説明する。以下では、複数のコンテナサーバのうちコンテナサーバ200にコンテナが配置されるものと仮定する。
図11は、サーバ間の通信例を示すシーケンス図である。
アプリケーション管理サーバ45は、管理者端末42からアプリケーションソフトウェアの起動の要求を受け付ける。この要求には、最低インスタンス数、メモリ容量、ディスク容量、CPU閾値およびメモリ閾値が含まれる。この要求には、監視時間1、監視時間2および監視時間3が含まれてもよい。監視時間1、監視時間2および監視時間3が含まれていない場合、アプリケーション管理サーバ45は、そのデフォルト値を設定する。
アプリケーション管理サーバ45は、アプリケーションソフトウェアにアプリケーションIDを付与する。また、アプリケーション管理サーバ45は、初回に起動するコンテナの数を決定し、起動する各コンテナ(すなわち、各アプリケーションインスタンス)にインスタンスIDを付与する。初回に起動するコンテナの数は、例えば、最低インスタンス数とする。アプリケーション管理サーバ45は、アプリケーション設定テーブル121にレコードを追加する。また、アプリケーション管理サーバ45は、アプリケーションプログラムを含むコンテナイメージを生成し、コンテナイメージをストレージサーバ44に保存する(S10)。アプリケーションプログラムは、管理者端末42から指定される。
アプリケーション管理サーバ45は、コンテナ管理サーバ46にコンテナ起動を指示する。このとき、アプリケーション管理サーバ45は、アプリケーションIDおよび起動するコンテナのインスタンスIDを指定する(S11)。コンテナ管理サーバ46は、指定されたアプリケーションIDに対応するコンテナイメージをストレージサーバ44から取得する(S12)。コンテナ管理サーバ46は、コンテナサーバ200にコンテナを起動させる。このとき、コンテナ管理サーバ46は、コンテナイメージをコンテナ管理サーバ46に送信し、アプリケーションIDとインスタンスIDを指定する。コンテナサーバ200のコンテナ制御部202は、指定された数のコンテナを起動する(S13)。
コンテナ管理サーバ46は、アプリケーションソフトウェアのアドレスと起動されたコンテナのインスタンスIDとを指定して、ロードバランサ43にアプリケーションインスタンスの登録を指示する。ロードバランサ43は、振り分けテーブル124にアドレスとインスタンスIDを登録する(S14)。これにより、ロードバランサ43は、起動されたコンテナに対してリクエストを振り分け始める。
コンテナ管理サーバ46は、スケール制御サーバ100にコンテナを起動したことを通知する。このとき、コンテナ管理サーバ46は、アプリケーションIDとインスタンスIDを指定する。スケール制御サーバ100は、アプリケーションインスタンステーブル122にアプリケーションIDとインスタンスIDを登録する(S15)。
ロードバランサ43は、クライアント41からリクエストを受信する。すると、ロードバランサ43は、振り分けテーブル124を参照して転送先のコンテナを選択し、選択したコンテナにリクエストを転送する(S16)。また、ロードバランサ43は、通信ログテーブル125に転送のログを記録する。
コンテナサーバ200上のコンテナのアプリケーションインスタンスは、リクエストを受信すると、リクエストに応じた処理を実行する。このとき、アプリケーションインスタンスは、ストレージサーバ44が提供するサービスを利用することがある(S17)。アプリケーションインスタンスは、処理結果を含むレスポンスをロードバランサ43に送信する(S18)。ロードバランサ43は、レスポンスをクライアント41に転送する。また、ロードバランサ43は、通信ログテーブル125に転送のログを記録する。
スケール制御サーバ100は、定期的にアプリケーション管理サーバ45から、アプリケーション設定テーブル121に登録された設定情報を取得する(S19)。コンテナサーバ200のコンテナ制御部202は、各コンテナのCPU使用率、メモリ使用量およびディスク使用量を測定する。コンテナ管理サーバ46は、定期的にコンテナサーバ200から、各コンテナのCPU使用率、メモリ使用量およびディスク使用量を示すリソース情報を取得し、コンテナリソーステーブル123に登録する(S20)。スケール制御サーバ100は、定期的にコンテナ管理サーバ46から、コンテナリソーステーブル123に登録されたリソース情報を取得する(S21)。
スケール制御サーバ100は、定期的にロードバランサ43から、振り分けテーブル124に登録された振り分け情報を取得する。また、スケール制御サーバ100は、定期的にロードバランサ43から、通信ログテーブル125に登録された通信ログを取得する(S22)。また、スケール制御サーバ100は、定期的にストレージサーバ44から、サービスログテーブル126に登録されたサービスログを取得する(S23)。
図12は、サーバ間の通信例を示すシーケンス図(続き)である。
スケール制御サーバ100は、ステップS19,S21〜S23で収集した情報に基づいて、各アプリケーションソフトウェアのスケールアウトの要否を判定する。スケール制御サーバ100は、少なくとも1つのコンテナのCPU使用率がCPU閾値を超えているか、少なくとも1つのコンテナのメモリ使用量がメモリ閾値を超えているアプリケーションソフトウェアを、スケールアウトすべきと判定する。また、スケール制御サーバ100は、ステップS19,S21〜S23で収集した情報に基づいて、各アプリケーションソフトウェアのスケールインの要否を判定する。スケールインの場合、スケール制御サーバ100は、停止するコンテナを選択する。スケールインの判定方法は後述する。
スケールアウトを決定した場合、スケール制御サーバ100は、スケールアウトをアプリケーション管理サーバ45に通知する(S24)。このとき、スケール制御サーバ100は、スケールアウトするアプリケーションソフトウェアのアプリケーションIDを指定する。アプリケーション管理サーバ45は、追加するコンテナにインスタンスIDを付与する。アプリケーション管理サーバ45は、コンテナ追加をコンテナ管理サーバ46に指示する(S25)。このとき、アプリケーション管理サーバ45は、アプリケーションIDおよび追加するコンテナのインスタンスIDを指定する。
コンテナ管理サーバ46は、指定されたアプリケーションIDに対応するコンテナイメージをストレージサーバ44から取得する(S26)。コンテナ管理サーバ46は、コンテナサーバ200にコンテナを起動させる(S27)。このとき、コンテナ管理サーバ46は、コンテナイメージをコンテナ管理サーバ46に送信し、アプリケーションIDとインスタンスIDを指定する。コンテナ管理サーバ46は、アプリケーションソフトウェアのアドレスと追加されたコンテナのインスタンスIDとを指定して、ロードバランサ43にアプリケーションインスタンスの登録を指示する(S28)。これにより、ロードバランサ43は、追加されたコンテナに対してリクエストを振り分け始める。
コンテナ管理サーバ46は、スケール制御サーバ100にコンテナを起動したことを通知する。このとき、コンテナ管理サーバ46は、アプリケーションIDとインスタンスIDを指定する。スケール制御サーバ100は、アプリケーションIDと対応付けてインスタンスIDをアプリケーションインスタンステーブル122に追加する(S29)。
一方、スケールインを決定した場合、スケール制御サーバ100は、スケールインをアプリケーション管理サーバ45に通知する(S30)。このとき、スケール制御サーバ100は、スケールアウトするアプリケーションソフトウェアのアプリケーションIDと停止させるコンテナのインスタンスIDを指定する。アプリケーション管理サーバ45は、コンテナ削除をコンテナ管理サーバ46に指示する(S31)。このとき、アプリケーション管理サーバ45は、アプリケーションIDおよびインスタンスIDを指定する。
コンテナ管理サーバ46は、アプリケーションソフトウェアのアドレスと停止するコンテナのインスタンスIDとを指定して、ロードバランサ43にアプリケーションインスタンスの抹消を指示する(S32)。ロードバランサ43は、指定されたインスタンスIDを振り分けテーブル124から削除する。これにより、ロードバランサ43は、停止するコンテナに対してリクエストを振り分けないようにする。コンテナ管理サーバ46は、アプリケーションIDとインスタンスIDを指定し、コンテナサーバ200にコンテナを停止させる(S33)。コンテナサーバ200のコンテナ制御部202は、指定されたコンテナのアプリケーションインスタンスを強制停止させ、当該コンテナに割り当てられていたハードウェアリソースを解放する。
次に、スケール制御サーバの処理について説明する。
図13は、スケール制御サーバの機能例を示すブロック図である。
スケール制御サーバ100は、インスタンス情報記憶部131、設定情報記憶部132、リソース情報記憶部133、振り分け情報記憶部134、通信ログ記憶部135およびサービスログ記憶部136を有する。また、スケール制御サーバ100は、情報収集部141、インスタンス情報管理部142、スケール判定部143およびスケール変更通知部144を有する。インスタンス情報記憶部131、設定情報記憶部132、リソース情報記憶部133、振り分け情報記憶部134、通信ログ記憶部135およびサービスログ記憶部136は、例えば、RAM102またはHDD103に確保した記憶領域を用いて実装される。情報収集部141、インスタンス情報管理部142、スケール判定部143およびスケール変更通知部144は、例えば、CPU101が実行するプログラムモジュールを用いて実装される。
インスタンス情報記憶部131は、アプリケーションインスタンステーブル122、すなわち、インスタンス情報を記憶する。設定情報記憶部132は、アプリケーション設定テーブル121と同様のテーブル、すなわち、収集された設定情報を記憶する。リソース情報記憶部133は、コンテナリソーステーブル123と同様のテーブル、すなわち、収集されたリソース情報を記憶する。振り分け情報記憶部134は、振り分けテーブル124と同様のテーブル、すなわち、収集された振り分け情報を記憶する。通信ログ記憶部135は、通信ログテーブル125と同様のテーブル、すなわち、収集された通信ログを記憶する。サービスログ記憶部136は、サービスログテーブル126と同様のテーブル、すなわち、収集されたサービスログを記憶する。
情報収集部141は、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45およびコンテナ管理サーバ46から、定期的に各種の情報を収集する。情報収集部141は、アプリケーション管理サーバ45から設定情報を取得し、取得した設定情報を設定情報記憶部132に保存する。情報収集部141は、コンテナ管理サーバ46からリソース情報を取得し、取得したリソース情報をリソース情報記憶部133に保存する。情報収集部141は、ロードバランサ43から振り分け情報および通信ログを取得し、取得した振り分け情報を振り分け情報記憶部134に保存し、取得した通信ログを通信ログ記憶部135に保存する。情報収集部141は、ストレージサーバ44からサービスログを取得し、取得したサービスログをサービスログ記憶部136に保存する。
インスタンス情報管理部142は、インスタンス情報記憶部131に記憶されたアプリケーションインスタンステーブル122を管理する。インスタンス情報管理部142は、コンテナ管理サーバ46からコンテナの起動が通知されたとき、指定されたアプリケーションIDやインスタンスIDをアプリケーションインスタンステーブル122に登録する。また、インスタンス情報管理部142は、スケール判定部143がスケールイン対象のコンテナを選択したとき、選択されたコンテナのインスタンスIDをアプリケーションインスタンステーブル122から削除する。
スケール判定部143は、定期的に各アプリケーションソフトウェアのスケールアウトの要否およびスケールインの要否を判定する。スケールインの場合、スケール判定部143は、コンテナサーバ200,200aに配置されたコンテナの中から停止するコンテナを選択する。スケール判定部143は、インスタンス情報記憶部131、設定情報記憶部132、リソース情報記憶部133、振り分け情報記憶部134、通信ログ記憶部135およびサービスログ記憶部136に記憶された情報を参照する。
スケール変更通知部144は、スケール変更をアプリケーション管理サーバ45に通知する。スケール判定部143がスケールアウトを決定した場合、対象のアプリケーションソフトウェアのアプリケーションIDをアプリケーション管理サーバ45に通知する。また、スケール変更通知部144は、スケール判定部143がスケールインを決定したとき、対象のアプリケーションソフトウェアのアプリケーションIDおよび停止するコンテナのインスタンスIDをアプリケーション管理サーバ45に通知する。
次に、スケールインの判定について説明する。
図14は、スケールイン判定の手順例を示すフローチャートである。
(S40)スケール判定部143は、アプリケーションソフトウェアを1つ選択する。
(S41)スケール判定部143は、アプリケーションインスタンステーブル122を参照して、ステップS40で選択したアプリケーションソフトウェアに対応するアプリケーションインスタンスの数(すなわち、コンテナの数)を算出する。
(S42)スケール判定部143は、ステップS41で算出したインスタンス数が、設定情報に含まれる最低インスタンス数より大きいか判断する。インスタンス数が最低インスタンス数より大きい場合、ステップS43に処理が進む。インスタンス数が最低インスタンス数以下である場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不要と判定され、ステップS60に処理が進む。
(S43)スケール判定部143は、振り分け情報を参照して、ステップS40で選択したアプリケーションソフトウェアに対応するアプリケーションインスタンスの中に、振り分け対象から外れているものがあるか判断する。振り分け対象外のアプリケーションインスタンスがある場合はステップS44に処理が進み、振り分け対象外のアプリケーションインスタンスがない場合はステップS47に処理が進む。
(S44)スケール判定部143は、振り分け情報から振り分け対象外のアプリケーションインスタンスの停止時刻を抽出し、停止時刻から現在までの経過時間を算出する。
(S45)スケール判定部143は、ステップS44で算出した経過時間が、設定情報に含まれる監視時間1を超えているか判断する。監視時間1は、例えば、30分程度である。経過時間が監視時間1を超えている場合はステップS46に処理が進み、経過時間が監視時間1以下である場合はステップS47に処理が進む。
(S46)スケール判定部143は、ステップS40で選択したアプリケーションソフトウェアについてスケールインを行うことを決定する。また、スケール判定部143は、停止対象のアプリケーションインスタンスとして、ステップS43,S45に該当するアプリケーションインスタンスを選択する。ステップS43,S45に該当するアプリケーションインスタンスが2以上ある場合、スケール判定部143は、その全てを停止対象として選択してよい。そして、ステップS60に処理が進む。
(S47)スケール判定部143は、通信ログから、振り分け対象になっているアプリケーションインスタンスのうち、リクエストを受信しているが現時点でレスポンスをまだ返信していない未応答のアプリケーションインスタンスを検索する。
(S48)スケール判定部143は、振り分け対象になっているアプリケーションインスタンスの全てが、未応答のアプリケーションインスタンスであるか判断する。全てのアプリケーションインスタンスが未応答である場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。未応答でないアプリケーションインスタンスがある場合、ステップS49に処理が進む。
(S49)スケール判定部143は、振り分け対象になっているアプリケーションインスタンスのうち未応答のものを、停止対象の候補から除外する。
図15は、スケールイン判定の手順例を示すフローチャート(続き)である。
(S50)スケール判定部143は、候補のアプリケーションインスタンスそれぞれについて、リソース情報を参照してCPU使用率、メモリ使用量およびディスク使用量の変化を算出する。例えば、スケール判定部143は、直近5秒間のCPU使用率から、その最大値と最小値の差をCPU使用率の変化量として算出する。また、スケール判定部143は、直近5秒間のメモリ使用量から、その最大値と最小値の差をメモリ使用量の変化量として算出する。また、スケール判定部143は、直近5秒間のディスク使用量から、その最大値と最小値の差をディスク使用量の変化量として算出する。
(S51)スケール判定部143は、候補のアプリケーションインスタンスの中に、メモリ使用量の変化が十分に小さくかつディスク使用量の変化が十分に小さいアプリケーションインスタンスがあるか判断する。メモリ使用量の変化が十分に小さいとは、例えば、その変化量が閾値(例えば、割り当てられたRAMリソースの5%程度)より小さいことである。ディスク使用量の変化が十分に小さいとは、例えば、その変化量が閾値(例えば、割り当てられたHDDリソースの5%程度)より小さいことである。該当するアプリケーションインスタンスがある場合、ステップS52に処理が進む。該当するアプリケーションインスタンスがない場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。
(S52)スケール判定部143は、ステップS51に該当するアプリケーションインスタンスの中に、CPU使用率の変化が十分に小さいアプリケーションインスタンスがあるか判断する。CPU使用率の変化が十分に小さいとは、例えば、その変化量が閾値(例えば、割り当てられたCPUリソースの5%程度)より小さいことである。該当するアプリケーションインスタンスがある場合はステップS53に処理が進み、該当するアプリケーションインスタンスがない場合はステップS56に処理が進む。
(S53)スケール判定部143は、サービスログから、ステップS51,S52に該当するアプリケーションインスタンスからのサービス要求であって、直近の「監視時間2」のものを検索する。監視時間2は設定情報に含まれており、例えば、5分程度である。
(S54)スケール判定部143は、ステップS53で1以上のサービス要求が検索されたか、すなわち、ステップS51,S52に該当するアプリケーションインスタンスがサービスを最近利用しているか判断する。サービスの利用がある場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。サービスの利用がない場合、ステップS55に処理が進む。
(S55)スケール判定部143は、ステップS40で選択したアプリケーションソフトウェアについてスケールインを行うことを決定する。また、スケール判定部143は、停止対象のアプリケーションインスタンスとして、ステップS51,S52に該当し、かつ、サービスの利用がないアプリケーションインスタンスを選択する。該当するアプリケーションインスタンスが2以上ある場合、スケール判定部143は、そのうちの1つまたは所定数を停止対象として選択する。1回のスケールインで減少させるアプリケーションインスタンス数の上限は、予め固定しておいてもよいし、アプリケーションソフトウェア毎に設定情報に登録しておいてもよい。そして、ステップS60に処理が進む。
(S56)スケール判定部143は、サービスログから、ステップS51に該当するアプリケーションインスタンスからのサービス要求であって、直近の「監視時間3」のものを検索する。監視時間3は設定情報に含まれており、例えば、10分程度である。
(S57)スケール判定部143は、ステップS51に該当するアプリケーションインスタンスがサービスを最近利用していないか、または、サービス利用がキューポーリングのみであるか判断する。キューポーリング以外のサービス利用がある場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。サービス利用が全く無いかまたはキューポーリングのみである場合、ステップS58に処理が進む。なお、定期的なデータベース参照を、キューポーリングと同等の処理であると判定するようにしてもよい。
(S58)スケール判定部143は、サービスログから、ステップS51,S57に該当する停止対象の候補以外のアプリケーションインスタンスからのキューポーリングであって、直近の「監視時間3」のものを検索する。スケール判定部143は、キューポーリングを行う他のアプリケーションインスタンスが存在するか判断する。他のアプリケーションインスタンスが存在する場合、ステップS59に処理が進む。他のアプリケーションインスタンスが存在しない場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。
(S59)スケール判定部143は、ステップS40で選択したアプリケーションソフトウェアについてスケールインを行うことを決定する。また、スケール判定部143は、停止対象のアプリケーションインスタンスとして、ステップS51,S57,S58に該当するアプリケーションインスタンスを選択する。該当するアプリケーションインスタンスが2以上ある場合、スケール判定部143は、そのうちの1つまたは所定数を停止対象として選択する。そして、ステップS60に処理が進む。
(S60)スケール判定部143は、ステップS40において全てのアプリケーションソフトウェアを選択したか判断する。全て選択した場合はスケールイン判定が終了し、未選択のものがある場合はステップS40に処理が進む。
なお、ステップS54のサービス利用の有無を判定する期間(監視時間2)は、ステップS57のサービス利用の有無を判定する期間(監視時間3)よりも短いことが好ましい。CPU使用率とメモリ使用量とディスク使用量の全てが5秒以上変化していないアプリケーションインスタンスは、リクエストを全く受信していないかまたはストレージサーバ44からの応答を待っている状態であると推測される。長時間にわたって応答待ち状態になる可能性は低いため、監視時間2は比較的短い時間でよい。
一方、CPU使用率は変化しているがメモリ使用量とディスク使用量が5秒以上変化していないアプリケーションインスタンスは、キューポーリングのみ行っている状態であると推測される。キューには外部からデータが到着する可能性があるため、処理の安全性の観点から監視時間3をやや長い時間に設定することが好ましい。また、キューポーリングのみ行っているアプリケーションインスタンスは、同様にキューポーリングを行っている他のアプリケーションインスタンスが存在する場合のみ停止可能と判断される。これにより、キューに到着したデータが処理されず残ってしまうリスクを低減できる。
また、ステップS57のサービス利用の有無を判定する期間(監視時間3)は、サービスの種類に応じて変更するようにしてもよい。例えば、参照系のサービスについては監視時間3を比較的短く設定し、更新系のサービスについては監視時間3を比較的長く設定することが考えられる。これは、参照系のサービスを利用するアプリケーションインスタンスが突然停止しても、データの完全性が損なわれるリスクは小さいためである。一方、更新系のサービスを利用するアプリケーションインスタンスが処理中に突然停止すると、データの完全性が損なわれてしまうリスクがあるためである。
第2の実施の形態の情報処理システムによれば、同じアプリケーションソフトウェアを実行する複数のコンテナそれぞれについて、スケールインの際に停止可能か判定される。CPU使用率とメモリ使用量とディスク使用量が5秒以上ほぼ変化しておらず、かつ、ストレージサーバ44のサービスを5分以上利用していないコンテナは、停止可能と判定される。また、メモリ使用量とディスク使用量が5秒以上ほぼ変化しておらず、かつ、キューポーリング以外のサービスを5分以上利用していないコンテナは、停止可能と判定される。それ以外のコンテナについては、停止不可と判定される。
これにより、未完了の処理のステートを有しているコンテナを停止させてしまうリスクを低減できる。また、未完了の処理のステートを有していないコンテナを迅速に停止させることができる。よって、停止させるコンテナを適切に選択することができる。
停止させるコンテナを選択する方法としては、CPU使用率とメモリ使用量とディスク使用量の何れも変化していないコンテナを選択する方法も考えられる。しかし、この方法では、外部サービスからの応答を待っているコンテナを誤って停止させてしまうリスクがある。また、この方法では、未完了の処理のステートを有していないものの、定期的にキューポーリングを行っているためにCPU使用率が変化しているコンテナを停止できない可能性がある。これに対し、第2の実施の形態によれば、各コンテナが未完了の処理のステートを有しているか否か精度よく推定することができる。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
10 仮想化管理装置
11 記憶部
12 制御部
13 リソース情報
14 サービス情報
15 第1の状態
16 第2の状態
21,22 仮想実行単位
21a,22a プロセッサリソース
21b,22b 他のリソース
23 サービス

Claims (5)

  1. コンピュータに、
    プロセッサリソースおよび前記プロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、前記プロセッサリソースに関する第1使用量および前記他のリソースに関する第2使用量を示すリソース情報と、前記複数の仮想実行単位の前記コンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを取得し、
    前記リソース情報および前記サービス情報に関する所定の条件に基づいて、前記複数の仮想実行単位より停止可能な仮想実行単位を特定する、
    処理を実行させる仮想化管理プログラムであって、
    前記所定の条件は、前記第1使用量の変化量および前記第2使用量の変化量が閾値以下であり、かつ、前記サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、前記第2使用量の変化量が前記閾値以下であり、前記サービスの利用が前記サービスに対するポーリングである時間が第2の時間以上継続しており、かつ、前記ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す、
    仮想化管理プログラム。
  2. 前記第1の時間と前記第2の時間とは異なる、
    請求項1記載の仮想化管理プログラム。
  3. 前記サービス情報は複数のサービスの利用状況を示し、
    前記第2の時間は、前記ポーリングの対象のサービスに応じて異なる、
    請求項1記載の仮想化管理プログラム。
  4. プロセッサリソースおよび前記プロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、前記プロセッサリソースに関する第1使用量および前記他のリソースに関する第2使用量を示すリソース情報と、前記複数の仮想実行単位を実行するコンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを記憶する記憶部と、
    前記リソース情報および前記サービス情報に関する所定の条件に基づいて、前記複数の仮想実行単位より停止可能な仮想実行単位を特定する制御部とを有し、
    前記所定の条件は、前記第1使用量の変化量および前記第2使用量の変化量が閾値以下であり、かつ、前記サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、前記第2使用量の変化量が前記閾値以下であり、前記サービスの利用が前記サービスに対するポーリングである時間が第2の時間以上継続しており、かつ、前記ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す、
    仮想化管理装置。
  5. コンピュータが実行する仮想化管理方法において、
    プロセッサリソースおよび前記プロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、前記プロセッサリソースに関する第1使用量および前記他のリソースに関する第2使用量を示すリソース情報と、前記複数の仮想実行単位の前記コンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを取得し、
    前記リソース情報および前記サービス情報に関する所定の条件に基づいて、前記複数の仮想実行単位より停止可能な仮想実行単位を特定する、
    仮想化管理方法であって、
    前記所定の条件は、前記第1使用量の変化量および前記第2使用量の変化量が閾値以下であり、かつ、前記サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、前記第2使用量の変化量が前記閾値以下であり、前記サービスの利用が前記サービスに対するポーリングである時間が第2の時間以上継続しており、かつ、前記ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す、
    仮想化管理方法。
JP2018524634A 2016-06-29 2016-06-29 仮想化管理プログラム、仮想化管理装置および仮想化管理方法 Expired - Fee Related JP6631710B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/069285 WO2018003031A1 (ja) 2016-06-29 2016-06-29 仮想化管理プログラム、仮想化管理装置および仮想化管理方法

Publications (2)

Publication Number Publication Date
JPWO2018003031A1 JPWO2018003031A1 (ja) 2019-01-10
JP6631710B2 true JP6631710B2 (ja) 2020-01-15

Family

ID=60785167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018524634A Expired - Fee Related JP6631710B2 (ja) 2016-06-29 2016-06-29 仮想化管理プログラム、仮想化管理装置および仮想化管理方法

Country Status (2)

Country Link
JP (1) JP6631710B2 (ja)
WO (1) WO2018003031A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6992515B2 (ja) * 2018-01-05 2022-01-13 コニカミノルタ株式会社 Gpu割当プログラム、gpu割当方法、コンピュータ読取可能な記録媒体、および、gpu割当装置
JP7011162B2 (ja) * 2018-02-05 2022-01-26 富士通株式会社 性能調整プログラム、および性能調整方法
JP7331407B2 (ja) * 2019-03-26 2023-08-23 日本電気株式会社 コンテナ起動ホスト選択装置、コンテナ起動ホスト選択システム、コンテナ起動ホスト選択方法及びプログラム
JP7338246B2 (ja) * 2019-06-05 2023-09-05 富士通株式会社 情報処理装置、ログ参照プログラム
JP2021012658A (ja) * 2019-07-09 2021-02-04 株式会社三菱Ufj銀行 システムおよび処理方法
JP7419771B2 (ja) * 2019-11-29 2024-01-23 株式会社リコー ネットワークシステム及び接続方法
WO2024121897A1 (ja) * 2022-12-05 2024-06-13 日本電信電話株式会社 サービス提供装置、レプリカ数決定方法、及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161479B2 (en) * 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
JP6032089B2 (ja) * 2013-03-26 2016-11-24 富士通株式会社 管理プログラム、装置及び方法
JP2015011657A (ja) * 2013-07-02 2015-01-19 株式会社日立システムズ 省電力モード機能付情報処理システム
JPWO2015189968A1 (ja) * 2014-06-12 2017-04-20 株式会社日立製作所 Vm管理システム及びその方法

Also Published As

Publication number Publication date
WO2018003031A1 (ja) 2018-01-04
JPWO2018003031A1 (ja) 2019-01-10

Similar Documents

Publication Publication Date Title
JP6631710B2 (ja) 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
US10110425B2 (en) Differentiated service-based graceful degradation layer
JP6963168B2 (ja) 情報処理装置、メモリ制御方法およびメモリ制御プログラム
US8321530B2 (en) Cloud computing system, server computer, device connection method, and storage medium
JP5458308B2 (ja) 仮想計算機システム、仮想計算機システムの監視方法及びネットワーク装置
JP6186787B2 (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
JP6200080B2 (ja) 複数のコンピューティングシステムへのクライアントアクセスの管理
US20220329651A1 (en) Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
JP2017107274A (ja) 仮想マシン増設方法、情報処理装置および仮想マシン増設システム
JP5352367B2 (ja) 仮想マシン起動端末および仮想マシン起動プログラム
US20230069240A1 (en) Dynamic cloning of application infrastructures
CN111064781A (zh) 多容器集群监控数据的采集方法、装置及电子设备
US10705740B2 (en) Managing of storage resources
JP5427504B2 (ja) サービス実行装置、サービス実行方法
CN107566466A (zh) 负载均衡方法及装置
AU2013201256B2 (en) Differentiated service-based graceful degradation layer
JP2016177324A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP2017174038A (ja) 情報処理システム、情報処理方法およびプログラム
JP6063882B2 (ja) 仮想マシン配置システム及び方法
JP2016184370A (ja) 監視システム、監視装置および監視方法
US20220414577A1 (en) System and method for performance-centric workload placement in a hybrid cloud environment
JP7044971B2 (ja) クラスタシステム、オートスケールサーバ監視装置、オートスケールサーバ監視プログラムおよびオートスケールサーバ監視方法
US20220413987A1 (en) System and method for accelerator-centric workload placement
WO2023032103A1 (ja) ジョブ制御システム及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180910

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191125

R150 Certificate of patent or registration of utility model

Ref document number: 6631710

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees