JP2019159977A - 制御プログラム、制御装置及び制御方法 - Google Patents

制御プログラム、制御装置及び制御方法 Download PDF

Info

Publication number
JP2019159977A
JP2019159977A JP2018047440A JP2018047440A JP2019159977A JP 2019159977 A JP2019159977 A JP 2019159977A JP 2018047440 A JP2018047440 A JP 2018047440A JP 2018047440 A JP2018047440 A JP 2018047440A JP 2019159977 A JP2019159977 A JP 2019159977A
Authority
JP
Japan
Prior art keywords
host machine
container
specific
data
slave nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018047440A
Other languages
English (en)
Inventor
松田 雄一
Yuichi Matsuda
雄一 松田
信行 黒松
Nobuyuki Kuromatsu
信行 黒松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018047440A priority Critical patent/JP2019159977A/ja
Priority to US16/289,731 priority patent/US20190286468A1/en
Publication of JP2019159977A publication Critical patent/JP2019159977A/ja
Pending legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

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)
  • Retry When Errors Occur (AREA)

Abstract

【課題】コンテナ上のプロセスとして動作するTaskTrackerの再起動を効率的に行うことによって再起動に要する時間の短縮を可能とする制御プログラム、制御装置及び制御方法を提供する。【解決手段】複数のスレーブノードを構成するコンテナからの通信の応答状況を監視し、複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された特定のコンテナが動作する特定のホストマシンを示す情報に基づき、特定のホストマシンの動作状況を推定し、推定の結果に応じて、分散処理が行われるデータのデータ量に基づいて算出された、特定のコンテナを特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する。【選択図】図8

Description

本発明は、分散並列環境におけるコンテナの制御プログラム、制御装置及び制御方法に関する。
例えば、利用者にサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、サービスの提供を行うための業務システム(以下、情報処理システムとも呼ぶ)を構築して稼働させる。具体的に、事業者は、業務システムの構築を行う際に、例えば、サービスの提供を効率的に行うためのコンテナ型仮想化技術(例えば、Docker)を利用する。このコンテナ型仮想化技術は、物理マシン(以下、ホストマシンとも呼ぶ)から隔離された環境であるコンテナをホストマシン上において生成する技術である。
このようなコンテナ型仮想化技術では、ハイパーバイザ型仮想化技術のようにゲストOS(Operating System)の生成を行うことなくコンテナの生成を行う。そのため、コンテナ型仮想化技術は、ハイパーバイザ型仮想化技術と比較して、コンテナの生成に要するオーバヘッドが小さいという利点がある(例えば、特許文献1乃至3参照)。
特開2006−031096号公報 特開平6−012294号公報 特開平11−328130号公報
上記のようなコンテナ上のプロセスとしてHadoopを動作させる場合、マスターノードに含まれる機能であるJobTracker及びNameNodeと、スレーブノードに含まれる機能であるTaskTracker及びDataNodeとを、それぞれコンテナ上のプロセスとして動作させる。そして、例えば、コンテナ上のプロセスとして動作するJobTrackerは、複数の他のコンテナ上のプロセスとして動作するTaskTrackerと連携し、処理対象となるデータ(以下、タスクデータとも呼ぶ)の分散処理を行う。
ここで、タスクデータの分散処理の実行中において、上記のようなコンテナ上のTaskTrackerの再起動が行われる場合、コンテナ上のJobTrackerは、各TaskTrackerが存在するスレーブノードに対して処理対象となるタスクデータの再配置を行い、ジョブの実行を初めからやり直す。
また、JobTrackerは、例えば、あるスレーブノードからの応答を待ち続けたことによってタイムアウトが発生した場合、そのスレーブノードに含まれるTaskTracker上においてタスクデータの分散処理を行わない。すなわち、この場合、JobTrackerは、そのTaskTrackerを利用することができない状態になったと判断する(以下、この状態になることをブラックリスト入りとも呼ぶ)。そのため、JobTrackerは、この場合、発生したタイムアウトに対応するTaskTracker以外の各TaskTrackerに対して処理対象となるタスクデータの再配置を行い、ジョブの実行を初めからやり直す。
しかしながら、上記のようなJobTrackerを含むマスターノードは、例えば、他の機能と連携することにより、スレーブノードのコンテナ上において動作するTaskTrackerやDataNode(以下、TaskTracker等とも呼ぶ)からの通知の応答があるか否かの判定を行うことが可能である一方、そのTaskTracker等が動作するホストマシンの動作状況については監視することができない。すなわち、マスターノードは、例えば、スレーブノードのコンテナ上において動作するTaskTracker等からの応答がなくなった場合、TaskTracker等及びホストマシンの両方において異常が発生しているのか、TaskTracker等においてのみ異常が発生しているのかを判定することができない。
そのため、JobTrackerは、例えば、TaskTrackerの再起動に応じて行われているタスクデータの再配置が長引いたことに起因してタイムアウトが発生した場合(ホストマシンにおいて異常が発生していない場合)であっても、実行中のタスクデータの再配置を中止し、タイムアウトの発生に応じて行われるタスクデータの再配置を最初から開始する場合がある。したがって、ホストマシンにおいて異常が発生していない場合であっても、TaskTrackerの再起動に必要以上の時間を要する場合がある。
そこで、一つの側面によれば、本発明は、コンテナ上のプロセスとして動作するTaskTrackerの再起動を効率的に行うことによって再起動に要する時間の短縮を可能とする制御プログラム、制御装置及び制御方法を提供することを目的とする。
実施の形態の一態様では、マスターノードを構成するコンテナ(例えば、1以上のコンテナからなるコンテナ群)と複数のスレーブノードを構成するコンテナ(例えば、1以上のコンテナからなるコンテナ群)とが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御処理をコンピュータに実行させる制御プログラムにおいて、前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視し、前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定し、前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する、処理を前記コンピュータに実行させる。
一つの側面によれば、コンテナ上のプロセスとして動作するTaskTrackerの再起動を効率的に行うことによって再起動に要する時間の短縮を可能とする。
図1は、情報処理システム10の全体構成を示す図である。 図2は、ホストマシン1で動作する各コンテナ3の機能を説明する図である。 図3は、ホストマシン1で動作する各コンテナ3の機能を説明する図である。 図4は、ホストマシン1で動作する各コンテナ3の機能を説明する図である。 図5は、ホストマシン1で動作する各コンテナ3の機能を説明する図である。 図6は、ホストマシン1のハードウエア構成を示す図である。 図7は、マスターノード21の機能のブロック図である。 図8は、第1の実施の形態における制御処理の概略を説明するフローチャート図である。 図9は、第1の実施の形態における制御処理の概略を説明する図である。 図10は、第1の実施の形態における制御処理の概略を説明する図である。 図11は、第1の実施の形態における制御処理の概略を説明する図である。 図12は、第1の実施の形態における制御処理の概略を説明する図である。 図13は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。 図14は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。 図15は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。 図16は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。 図17は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。 図18は、対応情報131の具体例を説明する図である。
[情報処理システムの構成]
図1は、情報処理システム10の全体構成を示す図である。図1に示す情報処理システム10は、例えば、利用者にサービスを提供するための業務システムである。図1に示す情報処理システム10において、ホストマシン1がデータセンター(図示しない)内に設けられている。そして、クライアント端末5は、インターネットやイントラネット等のネットワークを介して、データセンターとアクセス可能になっている。
ホストマシン1は、例えば、複数の物理マシンから構成される。各物理マシンは、CPU(Central Computing Unit)と、メモリ(DRAM:Dynamic Random Access Memory)と、ハードディスク(HDD:Hard Disk Drive)等の大容量メモリとを有する。そして、ホストマシン1の物理リソースは、利用者に対してサービスを提供するための各処理を実行される複数のコンテナ3に割当てられる。
コンテナ型仮想化ソフトウエア4は、ホストマシン1のCPU、メモリ、ハードディスク及びネットワークを割当てることにより、コンテナ3を生成する基盤ソフトウエアである。コンテナ型仮想化ソフトウエア4は、例えば、ホストマシン1において動作する。
[ホストマシンで動作する各仮想マシンの機能]
次に、ホストマシン1で動作する各コンテナ3の機能を説明する。図2から図4は、ホストマシン1で動作する各コンテナ3の機能を説明する図である。なお、以下、図1で説明したホストマシン1には、ホストOS11a、12a及び13aがそれぞれ動作するホストマシン11、12及び13が含まれるものとして説明を行う。また、以下、各ホストマシン1では、1つのマスターノードまたは1つのスレーブノードのみが動作するものとして説明を行う。
図2に示すホストマシン11上では、プロセスとしてJobTrackerが動作するコンテナであるJobTrackerコンテナ31a(以下、JT31aとも呼ぶ)と、プロセスとしてNameNodeが動作するコンテナ3であるNameNodeコンテナ31b(以下、NN31bとも呼ぶ)とを含むマスターノード21が動作する。
そして、図2に示すホストマシン12上では、プロセスとしてTaskTrackerが動作するコンテナ3であるTaskTrackerコンテナ32a(以下、TT32aとも呼ぶ)と、プロセスとしてDataNodeが動作するコンテナであるDataNodeコンテナ32b(以下、DN32bとも呼ぶ)とを含むスレーブノード22が動作する。
さらに、図3に示すホストマシン13上では、TaskTrackerコンテナ33a(以下、TT33aとも呼ぶ)と、DataNodeコンテナ33b(以下、DN33bとも呼ぶ)とを含むスレーブノード23が動作する。
そして、マスターノード21(マスターノード21に含まれる通信機能)は、図2に示すように、例えば、TT32a及びTT33aから通信の応答が定期的にあるか否かの判定を行う。その結果、例えば、図3に示すように、TT33aから通信の応答が途絶えたことを検知した場合、マスターノード21は、TT33aにおいて異常が発生した可能性があると判定する。
ここで、マスターノード21は、他のコンテナ3(TT32a、DN32b、TT33a及びDN33b)からの通知の応答があるか否かの判定を行うことが可能である一方、他のコンテナ3が動作するホストマシン12及び13の動作状況については監視することができない。すなわち、マスターノード21は、例えば、他のコンテナ3からの応答がなくなった場合、コンテナ3及びホストマシン1の両方において異常が発生しているのか、コンテナ3のみにおいて異常が発生しているのかを判定することができない。
そのため、JT31aは、例えば、TT33aの再起動に応じて行われたタスクデータの再配置が長引いたことに起因してタイムアウトが発生した場合(ホストマシン13において異常が発生していない場合)であっても、図4に示すように、実行中のタスクデータの再配置を中止し、タイムアウトの発生に応じて行われるタスクデータの再配置を最初から開始する場合がある。したがって、JT31aでは、例えば、ホストマシン13において異常が発生していない場合であっても、TT33aの再起動に必要以上の時間を要する場合がある。
そこで、本実施の形態におけるマスターノード21は、例えば、複数のスレーブノード22及び23を構成するコンテナ32a及び33aからの通信の応答状況を監視する。そして、マスターノード21は、例えば、複数のスレーブノード22及び23に含まれるコンテナ3のいずれか(以下、特定のコンテナとも呼ぶ)からの通信の応答状況に異常を検出した場合、あらかじめ蓄積された特定のコンテナが動作するホストマシン1(以下、特定のホストマシンとも呼ぶ)を示す情報(以下、対応情報とも呼ぶ)に基づき、特定のホストマシンの動作状況を推定する。
その後、マスターノード21は、推定の結果に応じて、分散処理が行われるデータのデータ量に基づいて算出された、特定のコンテナを特定のホストマシンと異なるホストマシン1において動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する。
すなわち、マスターノード21は、例えば、TT33aからの通信の応答が途絶えていることを検知した場合、対応情報を参照することにより、TT33aが動作するホストマシン13が停止しているか否かを判定する。具体的に、マスターノード21は、ホストマシン13上で動作するコンテナ3(TT33a及びDN33b)とホストマシン13との両方において異常が発生しているのか、ホストマシン13上で動作するコンテナ3のみにおいて異常が発生しているのかを判定する。
そして、マスターノード21は、例えば、ホストマシン13上で動作するコンテナ3のみにおいて異常が発生していると判定した場合(ホストマシン13で異常が発生していないと判定した場合)、タイムアウトが発生したか否かを判定する際に参照されるタイムアウト時間として、処理対象となるタスクデータのデータ量から予め算出した時間を用いる。
これにより、マスターノード21は、ホストマシン13において異常が発生していないと判定した場合、TT33aの再起動をタイムアウト時間が経過する前に完了させることが可能になる。そのため、マスターノード21は、ホストマシン13において異常が発生していないにもかかわらず、TT33aの再起動に応じて行われたタスクデータの再配置が中止されることを防止することが可能になる。したがって、マスターノード21は、図5に示すように、図4で説明した場合と比較して、TT33aの再起動に要する時間を短縮させることが可能になる。
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図6は、ホストマシン1のハードウエア構成を示す図である。
ホストマシン1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(以下、I/Oユニットとも呼ぶ)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、記憶媒体104内のプログラム格納領域(図示しない)に、JobTrackerコンテナがTaskTrackerコンテナの管理を行う処理(以下、制御処理とも呼ぶ)を行うためのプログラム110を記憶する。また、記憶媒体104は、例えば、制御処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。
CPU101は、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働して制御処理を行う。また、外部インターフェース103は、例えば、クライアント端末5と通信を行う。
[マスターノードの機能及びマスターノードが参照する情報]
次に、マスターノード21の機能について説明する。図7は、マスターノード21の機能のブロック図である。
ホストマシン1のCPU101は、プログラム110と協働することにより、図7に示すように、マスターノード21の機能として、時間算出部111と、スレーブ監視部112と、ホストマシン監視部113と、時間設定部114と、データ配置部115として動作する。また、マスターノード21は、情報格納領域130に記憶された対応情報131とタイムアウト時間132とを参照する。
時間算出部111は、分散処理の対象となるタスクデータのデータ量に基づき、TT32aまたはTT33aをブラックリスト入りさせるか否かを判定する際に参照されるタイムアウト時間132を算出する。具体的に、時間算出部111は、例えば、分散処理の対象となる新たなタスクデータのデータ量が取得される毎に、分散処理の対象となる新たなタスクデータのデータ量に基づいてタイムアウト時間132の算出を行う。
スレーブ監視部112は、複数のスレーブノード22及び23を構成するコンテナ32a、32b、33a及び33bからの通信の応答状況を監視する。具体的に、スレーブ監視部112は、例えば、TT32a、32b、33a及び33bのそれぞれからの通信の応答が定期的にあるか否かの判定を行う。
ホストマシン監視部113は、スレーブ監視部112が特定のコンテナ(例えば、コンテナ32a及び33aのうちのいずれか)からの通信の応答状況について異常を検出した場合、情報格納領域130に記憶された対応情報131を参照し、特定のコンテナが動作する特定のホストマシンの動作状況を推定する。対応情報131は、各スレーブノードを構成するホストマシンとコンテナ群(TaskTrackerコンテナ及びDataNodeコンテナ)とを対応付けた情報である。対応情報131の具体例については後述する。
時間設定部114は、ホストマシン監視部113が特定のホストマシンにおいて異常が発生していると判定した場合、時間算出部111が算出したタイムアウト時間132をマスターノード21に参照させる。具体的に、時間設定部114は、時間算出部111が算出したタイムアウト時間132を、マスターノード21がタイムアウトの発生有無を判定する際に参照する領域(例えば、メモリ102内の所定の領域)に設定する。
データ配置部115は、JT31aの機能であり、TT32a及びTT33aに対して処理対象となるタスクデータの配置を行う。
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明を行う。図8は、第1の実施の形態における制御処理の概略を説明するフローチャート図である。図9から図12は、第1の実施の形態における制御処理の概略を説明する図である。図9から図12を参照しながら、図8に示す第1の実施の形態における制御処理の概略について説明を行う。
マスターノード21は、複数のスレーブノード22及び23を構成するコンテナ32a及び33aからの通信の応答状況を監視(モニタ)する(S1)。具体的に、マスターノード21は、例えば、図9に示すように、TT32a及びTT33aからの通信の応答が定期的にあるか否かの判定を行う。
そして、マスターノード21は、図10に示すように、複数のスレーブノード22及び23を構成するコンテナ32a及び33aのうちのいずれかのコンテナ(特定のコンテナ)からの通信の応答状況が異常であるか否かを判定する(S2)。
その結果、特定のコンテナからの通信の応答状況に異常を検出した場合(S2のYES)、マスターノード21は、図11に示すように、S2の処理で検出した特定のコンテナが動作する特定のホストマシンを示す情報に基づき、特定のホストマシンにおける動作状況を推定する(S3)。
具体的に、例えば、TT33aからの通信の応答が途絶えていることを検出した場合、マスターノード21は、対応情報131を参照し、TT33aが動作するホストマシン1としてホストマシン13を特定する。そして、マスターノード21は、対応情報131をさらに参照し、特定したホストマシン13上で動作するDN33b(ホストマシン13上で動作するコンテナ3のうちのTT33a以外のコンテナ3)を特定する。その後、マスターノード21は、DN33bからの通信の応答が定期的にあるか否かの判定を行う。その結果、DN33bからの通信の応答が定期的にあると判定した場合、マスターノード21は、ホストマシン13においては異常が発生していないと判定する。一方、DN33bからの通信の応答が途絶えていると判定した場合、マスターノード21は、ホストマシン13においても異常が発生していると判定する。
その後、マスターノード21は、図12に示すように、S3の処理の推定の結果に応じて、分散処理が行われるデータのデータ量に基づいて算出された、特定のコンテナを特定のホストマシンと異なるホストマシン1において動作させるか否かの判定を行う際に参照されるタイムアウト時間132を設定する(S4)。なお、S2の処理において、特定のコンテナからの通信の応答状況に異常を検出しなかった場合(S2のNO)、マスターノード21は、S3及びS4の処理を行わない。
これにより、マスターノード21は、ホストマシン13において異常が発生していないと判定した場合、新たなタイムアウト時間132を設定することで、TT33aの再起動をタイムアウト時間が経過する前に完了させることが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図13から図17は、第1の実施の形態における制御処理の詳細を説明するフローチャート図である。また、図18は、第1の実施の形態における制御処理の詳細を説明する図である。図18を参照しながら、図13から図17に示す制御処理の詳細を説明する。
[時間算出処理]
初めに、制御処理の事前処理である時間算出処理について説明を行う。時間算出処理は、処理対象となるタスクデータのデータ量からタイムアウト時間132を算出する処理である。図13は、時間算出処理を説明するフローチャート図である。
マスターノード21の時間算出部111は、図13に示すように、処理対象となるタスクデータのデータ量を取得する(S11)。そして、時間算出部111は、S11の処理で取得したデータ量から、タイムアウト時間132を算出する(S12)。以下、S12の処理の詳細について説明を行う。
[S12の処理の詳細]
図14は、S12の処理の詳細を説明するフローチャート図である。
時間算出部111は、例えば、分散処理の対象となるタスクデータのデータ量M(GB)と、分割データのデータ量D(MB)と、タスクデータの複製数R(個)と、各分割データの割り当て時間W(sec)とを取得する(S21)。分割データのデータ量Dは、各TaskTrackerコンテナが処理を行う単位のデータ量である。なお、タスクデータのデータ量M、分割データのデータ量D、タスクデータの複製数R及び各分割データの割り当て時間Wは、例えば、事業者によってあらかじめ情報格納領域130に記憶されるものであってもよい。そして、時間算出部111は、例えば、情報格納領域130を参照することによって、各情報を取得するものであってもよい。
続いて、時間算出部111は、例えば、S21の処理で取得したタスクデータのデータ量Mを、S21の処理で取得した分割データのデータ量Dで除算することにより、分割データ数を算出する(S22)。そして、時間算出部111は、例えば、S22で算出した分割データ数と、S21で取得したタスクデータの複製数Rと、S21の処理で取得した各分割データの割り当て時間Wとを乗算することにより、タイムアウト時間132として算出する(S23)。
すなわち、時間算出部111は、S22及びS23の処理において、例えば、以下の式(1)用いることにより、タイムアウト時間132を算出する。
タイムアウト時間132=(M/D)×R×W ・・・ (1)
これにより、時間算出部111は、例えば、全て分割データを1つのTaskTrackerコンテナが処理を行う場合における処理時間の概算を、新たなタイムアウト時間132として算出することが可能になる。
なお、時間算出部111は、例えば、上記の式(1)において算出された値に所定の係数(例えば、1.1)を乗算した値を、新たなタイムアウト時間132とするものであってもよい。
[制御処理の詳細]
次に、制御処理の詳細について説明を行う。図15から図17は、制御処理の詳細を説明するフローチャート図である。
マスターノード21のスレーブ監視部112は、図15に示すように、TT32a及び3333aからの通信の応答状況を監視する(S31)。そして、スレーブ監視部112は、TT32a及び33aのうち、通信の応答を確認することができないTaskTrackerコンテナが存在するか否かを判定する(S32)。
その結果、マスターノード21のホストマシン監視部113は、情報格納領域130に記憶された対応情報131に基づき、S32の処理で存在したTaskTrackerコンテナが動作するホストマシン1で動作するDataNodeコンテナを特定する(S33)。以下、対応情報131の具体例について説明を行う。
[対応情報の具体例]
図18は、対応情報131の具体例を説明する図である。
図18に示す対応情報131は、対応情報131に含まれる各情報を識別する「項番」と、ホストマシン名が設定される「ホストマシン」と、コンテナ名が設定される「コンテナ名(1)」及び「コンテナ名(2)」とを項目として有する。
具体的に、図18に示す対応情報131において、「項番」が「1」である情報には、「ホストマシン名」として「ホストマシン11」が設定され、「コンテナ名(1)」として「JT31a」が設定され、「コンテナ名(2)」として「NN31b」が設定されている。
また、図18に示す対応情報131において、「項番」が「2」である情報には、「ホストマシン名」として「ホストマシン12」が設定され、「コンテナ名(1)」として「TT32a」が設定され、「コンテナ名(2)」として「DN32b」が設定されている。
さらに、図18に示す対応情報131において、「項番」が「3」である情報には、「ホストマシン名」として「ホストマシン13」が設定され、「コンテナ名(1)」として「TT33a」が設定され、「コンテナ名(2)」として「DN33b」が設定されている。
具体的に、S33の処理において、例えば、通信の応答を確認することができないTaskTrackerコンテナがTT33aである場合、ホストマシン監視部113は、図18で説明した対応情報131を参照し、「コンテナ(1)」及び「コンテナ(2)」のいずれかに「TT33a」が設定された情報の「ホストマシン名」に設定された情報である「ホストマシン13」を特定する。そして、ホストマシン監視部113は、図18で説明した対応情報131をさらに参照し、「ホストマシン名」に「ホストマシン13」が設定された情報の「コンテナ(1)」及び「コンテナ(2)」に設定された情報のうち、「TT33a」以外の情報である「DN33b」を特定する。
図15に戻り、ホストマシン監視部113は、S33の処理で特定したDataNodeコンテナからの通信の応答状況を判定する(S34)。
その結果、図16に示すように、DataNodeコンテナからの応答が確認できた場合(S41のYES)、マスターノード21の時間設定部114は、S12の処理で算出したタイムアウト時間132を設定する(S42)。具体的に、時間設定部114は、例えば、マスターノード21がTT32aまたはTT33aをブラックリスト入りさせるか否かを判定する際に参照する領域(例えば、メモリ102内の所定の領域)に、S12の処理で算出したタイムアウト時間132を設定する。
そして、S22の処理で存在したTaskTrackerコンテナにおいてタイムアウトが発生しなかった場合(S43のNO)、マスターノード21は、制御処理を終了する。
一方、S41の処理において、DataNodeコンテナからの応答が確認できなかった場合(S41のNO)、ホストマシン監視部113は、図17に示すように、S32の処理で存在したTaskTrackerコンテナが動作するホストマシン1が停止していると判定する(S51)。そして、ホスト監視部113は、S32の処理で存在したTaskTrackerコンテナからの通信の応答が再開されない旨の情報をクライアント端末5に送信する(S52)。
すなわち、例えば、S41の処理においてDN33bからの応答が確認できなかった場合、マスターノード21は、ホストマシン13において異常が発生していると判定し、S32の処理で応答を確認できなかったTT33aをブラックリスト入りさせる。そして、マスターノード21は、この場合、例えば、TT33aがブラックリスト入りした旨の情報をクライアント端末5に送信する。その後、例えば、クライアント端末5に送信された情報を閲覧した事業者は、ブラックリスト入りしたTT33aに代わるTaskTrackerコンテナを他のホストマシン1に起動させる。
これにより、マスターノード21は、新たなTaskTrackerコンテナを含めた複数のTaskTrackerコンテナに対して、処理対象となるタスクデータの再配置を行うことが可能になる。
図17に戻り、他のホストマシン1において新たなTaskTrackerコンテナの起動が完了した場合(S53のYES)、データ配置部115は、新たなTaskTrackerコンテナを含む複数のTaskTrackerコンテナに対し、処理対象となるタスクデータの再配置を行う(S54)。
また、マスターノード21は、S22の処理で存在したTaskTrackerコンテナにおいてタイムアウトが発生した場合も同様に(S43のYES)、S52からS54の処理を行う。
このように、本実施の形態におけるマスターノード21は、例えば、複数のスレーブノード22及び23を構成するコンテナ32a及び33aからの通信の応答状況を監視する。そして、マスターノード21は、例えば、複数のスレーブノード22及び23に含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された特定のコンテナが動作する特定のホストマシンを示す対応情報に基づき、特定のホストマシンの動作状況を推定する。
その後、マスターノード21は、推定の結果に応じて、分散処理が行われるデータのデータ量に基づいて算出された、特定のコンテナを特定のホストマシンと異なるホストマシン1において動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する。
すなわち、マスターノード21は、例えば、TT33aからの通信の応答が途絶えていることを検知した場合、対応情報を参照することにより、TT33aが動作するホストマシン13が停止しているか否かを判定する。具体的に、マスターノード21は、ホストマシン13上で動作するコンテナ3(TT33a及びDN33b)と、ホストマシン13との両方において異常が発生しているのか、ホストマシン13上で動作するコンテナ3のみにおいて異常が発生しているのかを判定する。
そして、マスターノード21は、例えば、ホストマシン13上で動作するコンテナ3のみにおいて異常が発生していると判定した場合、タイムアウトが発生したか否かを判定する際に参照されるタイムアウト時間として、処理対象となるタスクデータのデータ量から予め算出した時間を用いる。
これにより、マスターノード21は、ホストマシン13において異常が発生していないと判定した場合、TT33aの再起動をタイムアウト時間が経過する前に完了させることが可能になる。そのため、マスターノード21は、予め設定された短いタイムアウト時間によってTT33aの再起動が行われ、実行中のタスクデータの再配置が強制的に中断される事態の発生を防止することが可能になる。したがって、マスターノード21は、TT33aの再起動を効率的に行うことが可能になり、再起動に要する時間の短縮が可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
マスターノードを構成するコンテナと複数のスレーブノードを構成するコンテナとが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御処理をコンピュータに実行させる制御プログラムにおいて、
前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視し、
前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定し、
前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する、
処理を前記コンピュータに実行させる制御プログラム。
(付記2)
付記1に記載の制御プログラムにおいて、
前記推定する処理では、前記特定のホストマシンにおいて動作するスレーブノードを構成するすべてのコンテナからの応答がない場合、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定する、
制御プログラム。
(付記3)
付記2に記載の制御プログラムにおいて、
前記設定する処理では、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定した場合に、前記タイムアウト時間の設定を行う、
制御プログラム。
(付記4)
付記1に記載の制御プログラムにおいて、
前記タイムアウト時間は、前記分散処理が行われるデータのデータ量を、前記スレーブノードが処理を行う単位である単位データのデータ量によって除算した値と、前記単位データの複製数と、前記単位データを前記スレーブノードに配置する際に要する時間とを乗算することによって算出された時間である、
制御プログラム。
(付記5)
付記1に記載の制御プログラムにおいて、
前記複数のスレーブノードのそれぞれに対する前記データの再配置は、前記特定のコンテナの再起動が行われたタイミングである第1タイミングと、前記特定のコンテナからの通信の応答がなくなってから前記タイムアウト時間が経過したタイミングである第2タイミングとにおいてそれぞれ行われ、
前記第1タイミングにおける前記データの再配置の実行中に、前記第2タイミングが発生した場合、前記第1タイミングにおける前記データの再配置が中止され、前記第2タイミングにおける前記データの再配置が行われる、
制御プログラム。
(付記6)
マスターノードを構成するコンテナと複数のスレーブノードを構成するコンテナとが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御装置において、
前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視するスレーブ監視部と、
前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定するホストマシン監視部と、
前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する時間設定部と、を有する、
制御装置。
(付記7)
付記6に記載の制御装置において、
前記ホストマシン監視部は、前記特定のホストマシンにおいて動作するスレーブノードを構成するすべてのコンテナからの応答がない場合、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定する、
制御装置。
(付記8)
付記7に記載の制御装置において、
前記時間設定部は、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定した場合に、前記タイムアウト時間の設定を行う、
制御装置。
(付記9)
コンテナ上においてそれぞれ動作するマスターノードと複数のスレーブノードとが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御方法において、
前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視し、
前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定し、
前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する、
制御方法。
(付記10)
付記9に記載の制御方法において、
前記推定する工程では、前記特定のホストマシンにおいて動作するスレーブノードを構成するすべてのコンテナからの応答がない場合、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定する、
制御方法。
(付記11)
付記10に記載の制御方法において、
前記設定する工程では、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定した場合に、前記タイムアウト時間の設定を行う、
制御方法。
1:ホストマシン 3:コンテナ
4:コンテナ仮想化ソフトウエア 5:クライアント端末

Claims (7)

  1. マスターノードを構成するコンテナと複数のスレーブノードを構成するコンテナとが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御処理をコンピュータに実行させる制御プログラムにおいて、
    前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視し、
    前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定し、
    前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する、
    処理を前記コンピュータに実行させる制御プログラム。
  2. 請求項1に記載の制御プログラムにおいて、
    前記推定する処理では、前記特定のホストマシンにおいて動作するスレーブノードを構成するすべてのコンテナからの応答がない場合、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定する、
    制御プログラム。
  3. 請求項2に記載の制御プログラムにおいて、
    前記設定する処理では、前記特定のホストマシンが前記特定のコンテナを動作させることができない状態にあると判定した場合に、前記タイムアウト時間の設定を行う、
    制御プログラム。
  4. 請求項1に記載の制御プログラムにおいて、
    前記タイムアウト時間は、前記分散処理が行われるデータのデータ量を、前記スレーブノードが処理を行う単位である単位データのデータ量によって除算した値と、前記単位データの複製数と、前記単位データを前記スレーブノードに配置する際に要する時間とを乗算することによって算出された時間である、
    制御プログラム。
  5. 請求項1に記載の制御プログラムにおいて、
    前記複数のスレーブノードのそれぞれに対する前記データの再配置は、前記特定のコンテナの再起動が行われたタイミングである第1タイミングと、前記特定のコンテナからの通信の応答がなくなってから前記タイムアウト時間が経過したタイミングである第2タイミングとにおいてそれぞれ行われ、
    前記第1タイミングにおける前記データの再配置の実行中に、前記第2タイミングが発生した場合、前記第1タイミングにおける前記データの再配置が中止され、前記第2タイミングにおける前記データの再配置が行われる、
    制御プログラム。
  6. マスターノードを構成するコンテナと複数のスレーブノードを構成するコンテナとが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御装置において、
    前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視するスレーブ監視部と、
    前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定するホストマシン監視部と、
    前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する時間設定部と、を有する、
    制御装置。
  7. コンテナ上においてそれぞれ動作するマスターノードと複数のスレーブノードとが連携して分散処理を行う情報処理システムに含まれる前記複数のスレーブノードの制御方法において、
    前記複数のスレーブノードを構成するコンテナからの通信の応答状況を監視し、
    前記複数のスレーブノードに含まれる特定のコンテナからの通信の応答状況に異常を検出した場合、あらかじめ蓄積された前記特定のコンテナが動作する特定のホストマシンを示す情報に基づき、前記特定のホストマシンの動作状況を推定し、
    前記推定の結果に応じて、前記分散処理が行われるデータのデータ量に基づいて算出された、前記特定のコンテナを前記特定のホストマシンと異なるホストマシンにおいて動作させるか否かの判定を行う際に参照されるタイムアウト時間を設定する、
    制御方法。
JP2018047440A 2018-03-15 2018-03-15 制御プログラム、制御装置及び制御方法 Pending JP2019159977A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018047440A JP2019159977A (ja) 2018-03-15 2018-03-15 制御プログラム、制御装置及び制御方法
US16/289,731 US20190286468A1 (en) 2018-03-15 2019-03-01 Efficient control of containers in a parallel distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018047440A JP2019159977A (ja) 2018-03-15 2018-03-15 制御プログラム、制御装置及び制御方法

Publications (1)

Publication Number Publication Date
JP2019159977A true JP2019159977A (ja) 2019-09-19

Family

ID=67904483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018047440A Pending JP2019159977A (ja) 2018-03-15 2018-03-15 制御プログラム、制御装置及び制御方法

Country Status (2)

Country Link
US (1) US20190286468A1 (ja)
JP (1) JP2019159977A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021099888A (ja) * 2020-09-29 2021-07-01 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド サービス情報処理方法、装置、設備、コンピュータ記憶媒体、及びプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111324423B (zh) * 2020-03-03 2022-03-04 腾讯科技(深圳)有限公司 容器内进程的监控方法、装置、存储介质和计算机设备
US20240037229A1 (en) * 2022-07-28 2024-02-01 Pure Storage, Inc. Monitoring for Security Threats in a Container System

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021099888A (ja) * 2020-09-29 2021-07-01 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド サービス情報処理方法、装置、設備、コンピュータ記憶媒体、及びプログラム
JP7256217B2 (ja) 2020-09-29 2023-04-11 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド サービス情報処理方法、装置、設備、コンピュータ記憶媒体、及びプログラム
US11663037B2 (en) 2020-09-29 2023-05-30 Beijing Baidu Netcom Science And Technology Co., Ltd. Service information processing method, apparatus, device and computer storage medium

Also Published As

Publication number Publication date
US20190286468A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
US8677353B2 (en) Provisioning a standby virtual machine based on the prediction of a provisioning request being generated
US10509680B2 (en) Methods, systems and apparatus to perform a workflow in a software defined data center
US10248404B2 (en) Managing update deployment
CN106302565B (zh) 业务服务器的调度方法及系统
JP5608222B2 (ja) アプリケーション効率エンジン
CN109151045B (zh) 一种分布式云系统及监控方法
JP2011237844A (ja) 負荷分散装置及びシステム
JP2016103144A (ja) 仮想マシン配備方法、仮想マシン配備プログラム及び仮想マシン配備システム
JP5617914B2 (ja) スループット維持支援システム、装置、方法、及びプログラム
JP2019159977A (ja) 制御プログラム、制御装置及び制御方法
JP5948933B2 (ja) ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
JP2014186652A (ja) データ転送装置、データ転送システム、データ転送方法及びプログラム
JP2013218687A (ja) サーバー監視システム及びその方法
US10884880B2 (en) Method for transmitting request message and apparatus
US20150019722A1 (en) Determining, managing and deploying an application topology in a virtual environment
KR20160073306A (ko) 관리 시스템 및 관리 시스템을 제어하기 위한 방법
JP2018180591A (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
TW201347459A (zh) 管理方法及其系統
US10754368B1 (en) Method and system for load balancing backup resources
KR20150007698A (ko) 가상 데스크탑 서비스를 위한 부하 분산 시스템
US20160124765A1 (en) Resource allocation apparatus, method, and storage medium
US9317354B2 (en) Dynamically determining an external systems management application to report system errors
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
CN114938375B (zh) 一种容器组更新设备及容器组更新方法
WO2013097176A1 (zh) 一种用户体验指标监控方法及监控虚拟机