JP5385595B2 - Application execution environment management method in distributed system - Google Patents
Application execution environment management method in distributed system Download PDFInfo
- Publication number
- JP5385595B2 JP5385595B2 JP2008296801A JP2008296801A JP5385595B2 JP 5385595 B2 JP5385595 B2 JP 5385595B2 JP 2008296801 A JP2008296801 A JP 2008296801A JP 2008296801 A JP2008296801 A JP 2008296801A JP 5385595 B2 JP5385595 B2 JP 5385595B2
- Authority
- JP
- Japan
- Prior art keywords
- execution environment
- application
- application execution
- client node
- client
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
本発明は、分散システムにおいて各クライアントノードのアプリケーション実行環境を管理する方法、プログラム、及びシステムに関する。 The present invention relates to a method, a program, and a system for managing an application execution environment of each client node in a distributed system.
今日、情報処理を実行するシステムとして、複数のクライアントノードをネットワークで接続し、これら複数のクライアントノードでアプリケーションの処理を分散して実行する分散システムが構築されている。なお、このような分散システムでは、クライアントノードに必要最小限の機能のみを備えディスクやUSBメモリ等の不揮発性の記憶装置を備えないコンピュータが用いられることがある。 2. Description of the Related Art Today, as a system for executing information processing, a distributed system is constructed in which a plurality of client nodes are connected by a network and application processing is distributed and executed by the plurality of client nodes. Note that in such a distributed system, a computer having only a minimum necessary function in a client node and not having a nonvolatile storage device such as a disk or a USB memory may be used.
ところで、このような分散システムにおいて、サーバが複数のアプリケーションを各クライアントノードのリソースの空き状況に応じてデプロイし分散実行する場合、各クライアントノードはデプロイされたアプリケーションを実行するのに適したアプリケーション実行環境(Application Runtime Environment)を有している必要がある。なお、アプリケーションをデプロイするとは、アプリケーション実行バイナリを転送配置することをいう。 By the way, in such a distributed system, when a server deploys and executes multiple applications according to the availability of resources of each client node, each client node executes an application suitable for executing the deployed application. It is necessary to have an environment (Application Runtime Environment). Note that deploying an application means transferring and arranging an application execution binary.
図8に各クライアントノードの有するアプリケーション実行環境(図中、「RTE」)と各クライアントノードで実行されるアプリケーション(図中、「APP」)との関係の概念図を示す。図中「APP1〜6」は対応する「RTE1〜6」により動作が保証される。すなわち、「APP1」は「RTE1」により動作が保証される。 FIG. 8 shows a conceptual diagram of the relationship between the application execution environment (“RTE” in the figure) of each client node and the application (“APP” in the figure) executed on each client node. In the figure, “APP1 to 6” are guaranteed to operate by the corresponding “RTE1 to 6”. That is, the operation of “APP1” is guaranteed by “RTE1”.
クライアントノードA〜Fにはアプリケーション実行環境として「RTE1」が設定されている。「時刻t」において、クライアントノードA及びBで「APP1」を、クライアントノードC及びDで「APP2」を、クライアントノードE及びFで「APP3」をデプロイする場合(図8(1))、「APP2」及び「APP3」は、「RTE1」により動作が保証されていないため、正常に動作しない可能性がある(図8(2))。また、「時刻t」において「APP1」が正常に動作したクライアントノードA及びBであっても、動作が保証されていない「APP4」や「APP5」をデプロイする「時刻t+1」においては、デプロイするアプリケーションが正常に動作しない場合がある。 In client nodes A to F, “RTE1” is set as an application execution environment. When “APP1” is deployed at the client nodes A and B, “APP2” is deployed at the client nodes C and D, and “APP3” is deployed at the client nodes E and F at “time t” (FIG. 8A), “ Since the operations of “APP2” and “APP3” are not guaranteed by “RTE1”, they may not operate normally (FIG. 8 (2)). Further, even if the client nodes A and B in which “APP1” normally operates at “time t”, the deployment is performed at “time t + 1” when “APP4” and “APP5” whose operations are not guaranteed are deployed. The application may not work properly.
このように動作が保証されていない実行環境においてアプリケーションをデプロイした場合には、デプロイしたアプリケーションが実行できなくなったり、他のアプリケーションに悪影響を与えてしまうおそれがあった。そこで、アプリケーションをデプロイする際に、各クライアントノードの実行環境とデプロイするアプリケーションが要求する要求実行環境とを比較し、アプリケーションが確実に実行できる場合にのみデプロイを許可する分散コンピュータ・システムが知られている(例えば、特許文献1)。この分散コンピュータ・システムによれば、アプリケーションが実行できないと判断された場合には、アプリケーションをデプロイしない。
ところで、特許文献1に記載された分散コンピュータ・システムによれば、要求実行環境を事前に定義しなければならないところ、個々のアプリケーションの動作を保証するアプリケーション実行環境を事前に全て網羅するのは困難である。すなわち、アプリケーションAを実行するために、ライブラリA(ver0.1)、ライブラリB(ver0.2)が必要だと定義していても、実際には、ライブラリC(ver0.1)も必要な場合がある。この場合において、上記分散コンピュータ・システムでは、ライブラリA(ver0.1)、ライブラリB(ver0.2)、ライブラリC(ver0.2)からなる実行環境を有するクライアントノードはアプリケーションAの実行環境の動作保証がないにもかかわらず、チェックにかからないこととなってしまう。
By the way, according to the distributed computer system described in
また、上記分散コンピュータ・システムでは、要求実行環境とクライアントノードのアプリケーション実行環境とが一致しない場合にはアプリケーションをデプロイしないため、クライアントノードのアプリケーション実行環境を考慮してアプリケーションをデプロイしなければならず、各クライアントノードのリソースの状況に応じて、アプリケーションをデプロイすることができない。 In the above distributed computer system, if the request execution environment and the client node application execution environment do not match, the application is not deployed. Therefore, the application must be deployed in consideration of the client node application execution environment. Depending on the resource status of each client node, the application cannot be deployed.
本発明は、上記課題を解決するためのものであり、デプロイされたアプリケーションの動作を常に保証するとともに、アプリケーションを各クライアントノードのリソースの状況に応じて動的にデプロイすることが可能な方法、コンピュータ・プログラ、及びシステムを提供することを目的とする。 The present invention is intended to solve the above-described problem, and is a method capable of always guaranteeing the operation of a deployed application and dynamically deploying the application according to the resource status of each client node, An object is to provide a computer program and a system.
本発明の1つの態様では、以下のような解決手段を提供する。なお、以下において、「アプリケーションをデプロイする」とは、アプリケーション実行バイナリを転送配置することをいう。 In one aspect of the present invention, the following solution is provided. In the following, “deploying an application” means transferring and arranging application execution binaries.
本発明の第1の形態によると、複数のクライアントノードと接続された分散システムにおけるアプリケーション実行環境を管理する方法は、アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境が適切なアプリケーション実行環境であるか判別する。ここで、適切なアプリケーション実行環境であるかは、予めアプリケーションの動作検証がされたアプリケーション実行環境に基づいて行われる。そして、クライアントノードにおけるアプリケーション実行環境が、デプロイ対象のアプリケーションの動作検証が行われたアプリケーション実行環境と整合すると、デプロイ可能である旨の通知を行い、アプリケーションのデプロイを行う。 According to the first aspect of the present invention, a method for managing an application execution environment in a distributed system connected to a plurality of client nodes determines whether an application execution environment in a client node to which an application is deployed is an appropriate application execution environment. To do. Here, whether the application execution environment is appropriate is determined based on the application execution environment in which the operation of the application has been verified in advance. Then, when the application execution environment in the client node matches the application execution environment in which the operation verification of the application to be deployed is performed, a notification that deployment is possible is performed, and the application is deployed.
本実施の第2の形態によると、クライアントノードにおけるアプリケーション実行環境が、動作検証が行われたアプリケーション実行環境と整合しないと判別されると、ブート設定ファイルを、デプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境で起動できるように変更する。そして、変更したブート設定ファイルに応じてクライアントノードを再起動することで、クライアントノードのアプリケーション実行環境を動作検証されたアプリケーション実行環境に切り替える。 According to the second embodiment, when it is determined that the application execution environment in the client node is not consistent with the application execution environment in which the operation verification is performed, the boot setting file is verified for the application to be deployed. Change to be able to start in the specified application execution environment. Then, by restarting the client node according to the changed boot setting file, the application execution environment of the client node is switched to the application execution environment whose operation has been verified.
本実施の第3の形態によると、動作検証されたアプリケーション実行環境をバージョン管理する。そして、クライアントノードのアプリケーション実行環境がデプロイ対象のアプリケーションの動作検証が行われたアプリケーション実行環境と整合するかを、クライアントノードのアプリケーション実行環境のバージョンにより判別する。 According to the third embodiment, version management is performed on the application execution environment whose operation has been verified. Then, it is determined by the version of the application execution environment of the client node whether the application execution environment of the client node is consistent with the application execution environment in which the operation verification of the application to be deployed is performed.
また、本発明は別の形態として、上記の方法の各ステップをコンピュータに実行させるプログラムとしても提供可能である。さらに別の形態として、上記の方法を実行するシステムとしても提供可能である。 Moreover, this invention can be provided as a program which makes a computer perform each step of said method as another form. Furthermore, as another form, it can provide as a system which performs said method.
本発明によれば、動作を保証するアプリケーション実行環境を網羅的に定義するのではなく、予めアプリケーションに対して動作検証がなされたアプリケーション実行環境を用いてクライアントノードでアプリケーションをデプロイ可能か判別するため、デプロイされたアプリケーションの動作を常に保証することができる。また、動作検証されたアプリケーション実行環境と整合しない場合には、クライアントノードを自動的に再起動し、動作検証されたアプリケーション実行環境に切り替える。そのため、アプリケーションを各クライアントノードのリソースの状況に応じて動的にデプロイすることができる。 According to the present invention, in order to determine whether an application can be deployed on a client node using an application execution environment whose operation has been verified in advance for an application, instead of exhaustively defining an application execution environment that guarantees operation. , You can always guarantee the operation of the deployed application. If the application execution environment does not match the operation verification verified, the client node is automatically restarted to switch to the operation verification application execution environment. Therefore, the application can be dynamically deployed according to the resource status of each client node.
以下、本発明の実施形態について図を参照しながら説明する。なお、これらはあくまでも一例であって、本発明の技術的範囲はこれらに限られるものではない。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. These are merely examples, and the technical scope of the present invention is not limited to these.
[アプリケーション実行環境管理システム1の全体構成]
図1は、本発明の一実施形態に係る、分散システムにおけるアプリケーション実行環境管理システム1の全体構成を示す図である。アプリケーション実行環境管理システム1は、ネットワークで接続されたジョブ管理ノード100、イメージサーバ200、及び複数のクライアントノード300−1,300−2,300−3・・・から構成される。なお、以下においては複数のクライアントノード300−1,300−2,300−3・・・のうち任意のクライアントノードを「クライアントノード300」として実施形態について説明する。
[Overall Configuration of Application Execution Environment Management System 1]
FIG. 1 is a diagram showing an overall configuration of an application execution
ここで、ジョブ管理ノード100、イメージサーバ200、及びクライアントノード300の三者は、アプリケーション実行環境管理システム1内で協調動作する。そして、アプリケーション実行環境管理システム1は、クライアントノード300のアプリケーション実行環境が動作検証されたアプリケーション実行環境でない場合には、この協調動作により、クライアントノード300のアプリケーション実行環境を動作検証されたアプリケーション実行環境に切り替える。
Here, the
図1を参照して、ジョブ管理ノード100は、クライアントノード300のリソースの状況に応じてアプリケーションの割り当てを管理するジョブスケジューラ110を有する。
Referring to FIG. 1, the
イメージサーバ200は、各クライアントノード300のアプリケーション実行環境をデプロイされるアプリケーションに応じて自律的に構成するアプリケーション実行環境管理エージェント210と、各クライアントノード300のアプリケーション実行環境のバージョンチェックを行うためのアプリケーション実行環境バージョンテーブル230(図2)と、クライアントノード300のアプリケーション実行環境を切り替えるためのネットワークブート設定ファイル250(図4)と、を有する。
The
クライアントノード300は、アプリケーション実行環境管理エージェント210からの要求に応じて、アプリケーション実行環境のバージョン情報を提供したり、システムの再起動を実施する実行環境管理デーモン310を有する。なお、本実施の形態ではクライアントノード300はディスクやUSBメモリ等の不揮発性の記憶装置を使用しないディスクレスで運用される。
The
ここで、ジョブスケジューラ110はユーザからのジョブの実行要求及びリソースの空き状況を基に、各クライアントノード300へジョブの割り当てを行うプログラムである。ジョブスケジューラ110はスケジューリングの結果(どのクライアントノード300でどのアプリケーションを実行するか)をアプリケーション実行環境管理エージェント210に伝える。本実施の形態では、各クライアントノード300に適切な実行環境を構成する処理をアプリケーション実行環境管理エージェント210に一任しているため、ジョブスケジューラ110は処理を委任すべきアプリケーション実行環境管理エージェント210だけを特定できればよく、クライアントノード300の実行環境を管理する必要はない。また、ジョブスケジューラ110は必ずしもジョブ管理ノード100上で実行される必要もなく、任意の場所に配置可能である。
Here, the
アプリケーション実行環境管理エージェント210は、各クライアントノード300のアプリケーション実行環境を、デプロイされるアプリケーションに応じて自律的に構成するプログラムである。アプリケーション実行環境管理エージェント210は、ジョブスケジューラ110から渡される情報(どのクライアントノード300でどのアプリケーションを実行するか)を受け取ると、実行環境管理デーモン310と協調動作することにより、各クライアントノード300のアプリケーション実行環境をデプロイされるアプリケーションに適したものに自律的に構成する。なお、アプリケーション実行環境管理エージェント210は、イメージサーバ上に配置されたアプリケーション実行環境バージョンテーブル230及びネットワークブート設定ファイル250を参照、更新できればよく、必ずしもイメージサーバ200上で動作する必要はない。
The application execution environment management agent 210 is a program that autonomously configures the application execution environment of each
次に、アプリケーション実行環境バージョンテーブル230について説明する。図2は、本実施の形態におけるアプリケーション実行環境バージョンテーブル230の一例を示す図である。アプリケーション実行環境バージョンテーブル230は、「どのアプリケーションがどの実行環境で動作検証されたか」という情報(図中(A))と、「各実行環境のバージョンがどのカーネルやライブラリで構成されているか」という情報(図中(B))とから構成され、アプリケーション実行環境のバージョンを管理している。 Next, the application execution environment version table 230 will be described. FIG. 2 is a diagram showing an example of the application execution environment version table 230 in the present embodiment. The application execution environment version table 230 includes information indicating “which application has been verified in which execution environment” ((A) in the figure) and “which kernel and library each version of the execution environment is configured of”. Information ((B) in the figure) and manages the version of the application execution environment.
具体的には、図2に示すようにアプリケーション「app001」はアプリケーション実行環境「art_0_1」で動作保証され(図2(A))、この「art_0_1」はカーネル「2.6.16」及びシステムイメージ「0.1」により構成される(図2(B))。 Specifically, as shown in FIG. 2, the operation of the application “app001” is guaranteed in the application execution environment “art — 0_1” (FIG. 2A), and this “art — 0_1” is the kernel “2.6.16” and the system image. It is comprised by "0.1" (FIG. 2 (B)).
ここで、図3に示すように、システムイメージ「0.1」はライブラリA「0.7」、ライブラリB「1.3」、ライブラリC「1.5」・・・により構成される(図3(1))。そのため、アプリケーション「app001」は、カーネル「2.6.16」、ライブラリA「0.7」、ライブラリB「1.3」、ライブラリC「1.5」・・・によりその動作が保証される。また、図3(2)に示すように、アプリケーション「app002」は、カーネル「2.6.20」、ライブラリA「0.8」、ライブラリB「1.4」、ライブラリC「1.5」・・・によりその動作が保証される。 Here, as shown in FIG. 3, the system image “0.1” is composed of library A “0.7”, library B “1.3”, library C “1.5”,. 3 (1)). Therefore, the operation of the application “app001” is guaranteed by the kernel “2.6.16”, the library A “0.7”, the library B “1.3”, the library C “1.5”,. . As shown in FIG. 3B, the application “app002” includes a kernel “2.6.20”, a library A “0.8”, a library B “1.4”, and a library C “1.5”. The operation is guaranteed by.
なお、アプリケーション実行環境バージョンテーブル230に規定されたアプリケーション実行環境は、事前に動作検証が実施されている。すなわち、アプリケーション毎に動作検証に合格したアプリケーション実行環境がアプリケーション実行環境バージョンテーブル230で定義される。これにより、定義されたアプリケーション実行環境によれば、アプリケーションの動作を常に保証することができる。また、アプリケーション実行環境管理エージェント210は、たとえ動作検証が完了していないアプリケーションのデプロイ要求が来ても、実行不可なアプリケーションとして検知し、ジョブスケジューラ110へ実行不可である旨を通知することができる。
The application execution environment defined in the application execution environment version table 230 has been verified in advance. In other words, the application execution environment that has passed the operation verification for each application is defined in the application execution environment version table 230. Thereby, according to the defined application execution environment, the operation | movement of an application can always be guaranteed. The application execution environment management agent 210 can detect an application that cannot be executed even if a request for deploying an application whose operation verification has not been completed is received, and can notify the
また、本実施の形態では、アプリケーション実行環境を構成するカーネル、ルートファイルシステムをそれぞれ1つのイメージファイルとして管理する。そのため、動作検証されたアプリケーション実行環境を簡単にコピーすることができ、アプリケーション実行環境の復旧が容易になる。 In this embodiment, the kernel and the root file system constituting the application execution environment are managed as one image file. Therefore, the application execution environment whose operation has been verified can be easily copied, and the application execution environment can be easily restored.
また、クライアントノード300のアプリケーション実行環境のチェックを行う際に、デプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境のバージョンを持っているかどうかだけチェックすればよく、アプリケーション実行環境のチェックが容易になる。
In addition, when checking the application execution environment of the
次に、ネットワークブート設定ファイル250について説明する。図4は、ネットワークブート設定ファイル250の一例を示す図である。ネットワークブート設定ファイル250は、クライアントノード300を特定するための情報(MACアドレス及びIPアドレス)と、クライアントノード300を再起動する際に使用するカーネル及びルートファイルシステムと、により構成される。クライアントノード300は、ブート時にネットワークブート設定ファイル250のカーネル及びルートファイルシステムに基づいて起動することで、アプリケーション実行環境をデプロイ対象のアプリケーションに対して動作検証されたアプリケーション実行環境に切り替える。
Next, the network
ここで、本実施の形態では、アプリケーション実行環境のバージョンを「art_(ver)」として管理し、そのアプリケーション実行環境を構成するカーネルを「zImage.art_(ver)」とするとともに、ルートファイルシステムを「/var/rootfs/art_(ver)/images」として管理する。そのため、ネットワークブート設定ファイル250のカーネル及びルートファイルシステムが、「zImage.art_0_1」及び「/var/rootfs/art_0_1/images」である場合には、クライアントノード300はアプリケーション実行環境のバージョン「art_0_1」で起動する。
In this embodiment, the version of the application execution environment is managed as “art_ (ver)”, the kernel constituting the application execution environment is set as “zImage.art_ (ver)”, and the root file system is Manage as “/ var / rootfs / art_ (ver) / images”. Therefore, when the kernel and root file system of the network
次に、クライアントノード300の実行環境管理デーモン310について説明する。実行環境管理デーモン310は各クライアントノード300に常駐し、アプリケーション実行環境管理エージェント210からの要求に応えるプログラムである。実行環境管理デーモン310には実行すべき2つのタスクを有する。アプリケーション実行環境管理エージェント210からのアプリケーション実行環境のバージョン問い合わせに応答するタスクと、再起動要求に応じるタスクとである。どちらのタスクもクライアントノード300毎に独立したタスクであるため、実行環境管理デーモン310は必ずクライアントノード300毎に動作させておく必要がある。
Next, the execution
[アプリケーション実行環境管理システム1の基本処理]
次に、図5を参照してアプリケーション実行環境管理システム1の基本処理、すなわち、アプリケーション実行環境の管理手順について説明する。
[Basic processing of the application execution environment management system 1]
Next, the basic processing of the application execution
S101:ユーザからジョブの投入を受け付けると、ジョブスケジューラ110は、各クライアントノード300のリソースの空き状況を基に、各クライアントノード300でデプロイされるアプリケーションの割り当てを行い、このアプリケーションのデプロイ情報をアプリケーション実行環境管理エージェント210に通知する。
S101: Upon accepting a job input from the user, the
S102:アプリケーション実行環境管理エージェント210は、デプロイ対象のクライアントノード300の実行環境管理デーモン310へアプリケーション実行環境のバージョン情報の問い合わせを行う。
S102: The application execution environment management agent 210 inquires the version information of the application execution environment to the execution
S103、S104:アプリケーション実行環境管理エージェント210は、アプリケーション実行環境バージョンテーブル230を参照し、クライアントノード300のアプリケーション実行環境のバージョンが、デプロイ対象のアプリケーションに対して動作検証されたバージョンと整合するかチェックする。ここで、アプリケーション実行環境は、バージョン管理されているため、クライアントノード300のアプリケーション実行環境のバージョンをチェックするだけで、本処理を行うことができる。なお、「整合する」とは、クライアントノード300のアプリケーション実行環境のバージョンがデプロイ対象のアプリケーションに対して動作検証されたバージョンと一致することをいう。
S103, S104: The application execution environment management agent 210 refers to the application execution environment version table 230 and checks whether the version of the application execution environment of the
S105:クライアントノード300のアプリケーション実行環境のバージョンが、デプロイ対象のアプリケーションに対して動作検証されたバージョンと整合しない場合には、アプリケーション実行環境管理エージェント210は、クライアントノード300のネットワークブートの設定を変更する。すなわち、アプリケーション実行環境管理エージェント210は、ネットワークブート設定ファイル250を、デプロイ対象のアプリケーションに対して動作検証されたバージョンと整合するアプリケーション実行環境に書き換える。
S105: When the version of the application execution environment of the
S106:アプリケーション実行環境管理エージェント210は、クライアントノード300の実行環境管理デーモン310へ再起動要求を行う。
S106: The application execution environment management agent 210 makes a restart request to the execution
S107:実行環境管理デーモン310は、ネットワークブート設定ファイル250を参照してシステムを再起動し、アプリケーション実行環境を切り替える。
S107: The execution
S108、S109:アプリケーション実行環境管理エージェント210は、クライアントノード300の実行環境管理デーモン310に、アプリケーション実行環境を問い合わせ、ネットワークブート設定ファイル250に規定された通りに切り替わったかチェックする。
S108, S109: The application execution environment management agent 210 inquires of the execution
S110:クライアントノード300のアプリケーション実行環境のバージョンがデプロイ対象のアプリケーションに対して動作検証されたバージョンと整合することとなると、アプリケーション実行環境管理エージェント210は、ジョブスケジューラ110へクライアントノード300の準備が完了したことを通知する。なお、ジョブスケジューラ110は、あるアプリケーションを実行する全てのクライアントノード300の準備の完了が通知された場合に、当該アプリケーションの実行を開始するように指示する。
S110: When the version of the application execution environment of the
このように、ジョブ管理ノード100のジョブスケジューラ110の動作により、デプロイするアプリケーションのクライアントノード300への割り当てが行われると、イメージサーバ200のアプリケーション実行環境管理エージェント210が動作し、ジョブスケジューラ110からの要求に応じて、自律的に各クライアントノード300のアプリケーション実行環境を構成する。すなわち、クライアントノード300の実行環境管理デーモン310は、アプリケーション実行環境管理エージェント210からの要求に応じて、アプリケーション実行環境のバージョン情報を提供し、動作が保証されないアプリケーション実行環境である場合には、システムの再起動を行うことで動作が保証されたアプリケーション実行環境に切り替える。
As described above, when the application to be deployed is assigned to the
[アプリケーション実行環境管理の動作の具体例]
図6に、本発明の一実施形態に係るアプリケーション実行環境管理システム1におけるアプリケーション実行環境管理の動作の具体例を示す。図中「APP1〜6」は対応する「RTE1〜6」により動作が保証される。すなわち、「APP1」は「RTE1」により動作が保証される。
[Specific examples of application execution environment management operations]
FIG. 6 shows a specific example of the operation of application execution environment management in the application execution
「時刻t」では、クライアントノードA及びBにおいて「APP1」、クライアントノードC及びDにおいて「APP2」、クライアントノードE及びFにおいて「APP3」のデプロイ要求がなされる(図6(1))。この場合において、クライアントノードA及びBのアプリケーション実行環境はデプロイする「APP1」の動作が保証される実行環境であり、クライアントノードA及びBでは「APP1」をデプロイすることができる(図6(2))。ところが、クライアントノードC〜Fのアプリケーション実行環境はデプロイするアプリケーションの動作が保証されない実行環境であるため、クライアントノードC〜Fでは要求されたアプリケーションをデプロイできない。そこで、本実施の形態では、クライアントノードC〜Fを再起動することで、アプリケーション実行環境を要求されたアプリケーションの動作が保証された実行環境に自動的に切り替える。その結果、クライアントノードC〜Fにおいても要求されたアプリケーションをデプロイすることができる(図6(2))。 At “time t”, a request to deploy “APP1” in the client nodes A and B, “APP2” in the client nodes C and D, and “APP3” in the client nodes E and F is made (FIG. 6A). In this case, the application execution environment of the client nodes A and B is an execution environment in which the operation of “APP1” to be deployed is guaranteed, and “APP1” can be deployed in the client nodes A and B (FIG. 6 (2)). )). However, since the application execution environment of the client nodes C to F is an execution environment in which the operation of the application to be deployed is not guaranteed, the requested application cannot be deployed in the client nodes C to F. Therefore, in the present embodiment, by restarting the client nodes C to F, the application execution environment is automatically switched to the execution environment in which the operation of the requested application is guaranteed. As a result, the requested application can be deployed also in the client nodes C to F (FIG. 6 (2)).
また、「時刻t+1」において、クライアントノードAには「時刻t」のときとは異なる「APP4」のデプロイ要求がなされる。この場合においても、クライアントノードAのアプリケーション実行環境を「APP4」の動作が保証される「RTE4」に自動的に切り替える。その結果、同一のクライアントノードにおいて、複数のアプリケーションを実行することができる。 At “time t + 1”, the client node A is requested to deploy “APP4” different from that at “time t”. Even in this case, the application execution environment of the client node A is automatically switched to “RTE4” in which the operation of “APP4” is guaranteed. As a result, a plurality of applications can be executed on the same client node.
このように、アプリケーション実行環境管理システム1ではクライアントノード300におけるアプリケーション実行環境をジョブ管理ノード100、イメージサーバ200、及びクライアントノード300、といった三者の協調動作により自動的に切り替えることができるため、アプリケーションをクライアントノード300のリソースの状況に応じて動的にデプロイすることができる。
As described above, in the application execution
[ハードウェア構成]
図8は、本実施の形態に係るアプリケーション実行環境管理システム1を構成するジョブ管理ノード100、イメージサーバ200、及びクライアントノード300のハードウェア構成の一例を示す図である。図8(1)は、ジョブ管理ノード100及びイメージサーバ200のハードウェア構成の一例を示し、図8(2)は、クライアントノード300のハードウェア構成の一例を示す。
[Hardware configuration]
FIG. 8 is a diagram illustrating an example of a hardware configuration of the
図8(1)を参照して、ジョブ管理ノード100、イメージサーバ200は、CPU(Central Processing Unit)1110,1210、バスライン1105,1205、通信I/F1120,1220、メモリ1130,1230、ハードディスク1140,1240を備える。図8(2)を参照して、クライアントノード300は、CPU1310、バスライン1305、通信I/F1320、及びメモリ1330を備える。
Referring to FIG. 8A, the
CPU1110,1210,1310は、上述した各種処理(S101〜S110)を行う。通信I/F1120,1220,1320は、ジョブ管理ノード100、イメージサーバ200、及びクライアントノード300の三者の間での通信に用いられる。すなわち、ジョブ管理ノード100、イメージサーバ200、及びクライアントノード300は、通信I/F1120,1220,1320を介して通信可能に接続される。ハードディスク1240は、上述したアプリケーション実行環境バージョンテーブルやネットワークブート設定ファイルを格納する。
The
なお、図8に示すハードウェア構成は、ジョブ管理ノード100、イメージサーバ200、及びクライアントノード300に最低限必要な構成のみを示しているが、この構成に含まれない構成を備えることとしてもよい。すなわち、クライアントノード300はハードディスクを使用しないだけであり、ハードディスクを備えていてもよい。また、ジョブ管理ノード100とイメージサーバ200とが互いに接続されるとともに、イメージサーバ200とクライアントノード300とが互いに接続されていれば、必ずしも専用通信回線やインターネットに接続されている必要はない。
Note that the hardware configuration illustrated in FIG. 8 illustrates only the minimum configuration necessary for the
以上、本発明を実施形態に則して説明したが、本発明は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実施では、所定のプログラムを有するコンピュータ・システムでの実施が典型的な例として挙げられる。係る場合、該所定のプログラムが該コンピュータ・システムにロードされ実行されることにより、該プログラムは、コンピュータ・システムに本発明に係る処理を実行させる。このプログラムは、任意の言語、コード、又は表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接実行すること、又は(1)他の言語、コード、もしくは表記への変換、(2)他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体を含むプログラム製品もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、RAM、M−RAM(Magnetoresistive RAM)、フラッシュメモリ等の任意のコンピュータ可読媒体に格納することができる。係るプログラムは、コンピュータ可読媒体への格納のために、通信回線で接続する他のコンピュータ・システムからダウンロードしたり、他の媒体から複製したりすることができる。また、係るプログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。 As mentioned above, although this invention was demonstrated according to embodiment, this invention is realizable as a combination of hardware, software, or hardware and software. A typical example of implementation using a combination of hardware and software is implementation on a computer system having a predetermined program. In such a case, the predetermined program is loaded into the computer system and executed, whereby the program causes the computer system to execute the processing according to the present invention. This program is composed of a group of instructions that can be expressed in any language, code, or notation. Such instructions can be either or both of the following: (1) conversion to another language, code, or notation; (2) replication to other media; Can be executed after the Of course, the present invention includes not only such a program itself but also a program product including a medium on which the program is recorded. The program for executing the functions of the present invention is stored in an arbitrary computer-readable medium such as a flexible disk, MO, CD-ROM, DVD, hard disk device, ROM, RAM, M-RAM (Magnetic Resistive RAM), flash memory, or the like. can do. Such a program can be downloaded from another computer system connected via a communication line or copied from another medium for storage in a computer-readable medium. Further, such a program can be compressed or divided into a plurality of pieces and stored in a single or a plurality of recording media.
また、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態又は実施例に記載されたものに限定されるものではない。 Further, the present invention is not limited to the above-described embodiment. The effects described in the embodiments of the present invention are only the most preferable effects resulting from the present invention, and the effects of the present invention are limited to those described in the embodiments or examples of the present invention. Is not to be done.
1 アプリケーション実行環境管理システム
100 ジョブ管理ノード
110 ジョブスケジューラ
200 イメージサーバ
210 アプリケーション実行環境管理エージェント
230 アプリケーション実行環境バージョンテーブル
250 ネットワークブート設定ファイル
300 クライアントノード
310 実行環境管理デーモン
DESCRIPTION OF
Claims (8)
アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境が、デプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境と整合するか判別するステップと、
整合すると判別されることを条件に、対応するアプリケーションを前記クライアントノードにおいてデプロイ可能であると判断するステップと、
クライアントノードのアプリケーション実行環境が、前記判別するステップにおいて整合しないと判別されることを条件に、前記クライアントノードのネットワークブート設定ファイルを、前記クライアントノードがデプロイ対象のアプリケーションに対して前記予め動作検証されたアプリケーション実行環境で起動できるように変更するステップと、
変更された前記ネットワークブート設定ファイルに応じて、前記クライアントノードを再起動するステップと、
を含む方法。 In a distributed system connected to a plurality of client nodes and deploying an application to the plurality of client nodes, a method for managing an application execution environment of the plurality of client nodes,
Determining whether the application execution environment in the client node for deploying the application is consistent with the application execution environment whose operation has been verified in advance for the application to be deployed;
Determining that the corresponding application is deployable on the client node, provided that it is determined to be consistent;
On the condition that the application execution environment of the client node is determined to be inconsistent in the determining step, the network boot setting file of the client node is verified in advance for the application to be deployed by the client node. A step to change it so that it can be started in the application execution environment
In response to the changed network boot configuration file, restarting the client node;
Including methods.
請求項1に記載の方法。 Determining a client node to deploy an application according to the resource status of the plurality of client nodes;
The method of claim 1.
請求項1に記載の方法。 Including a step of switching to an application execution environment whose operation has been verified in advance with respect to the application to be deployed by restarting the client node determined to be inconsistent in the determining step.
The method of claim 1.
請求項1に記載の方法。 Determining whether the application execution environment of the restarted client node has switched to the application execution environment whose operation has been verified in advance.
The method of claim 1 .
請求項1に記載の方法。 Manage an application execution environment whose operation has been verified in advance as a single version,
The method of claim 1.
請求項5に記載の方法。 The step of determining is performed by comparing the version of the application execution environment of the client node with the version of the application execution environment whose operation has been verified in advance.
The method of claim 5 .
請求項1に記載の方法。 Including the step of deploying the application on the condition that it is determined that all the client nodes deploying the application can be deployed.
The method of claim 1.
前記複数のクライアントノードのリソースの状況に応じて、アプリケーションをデプロイするクライアントノードを決定するステップと、
アプリケーションをデプロイするクライアントノードにおけるアプリケーション実行環境のバージョンが、デプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境のバージョンと整合するか判別するステップと、
整合しないと判別されることを条件に、前記クライアントノードのネットワークブート設定ファイルを、前記クライアントノードがデプロイ対象のアプリケーションに対して予め動作検証されたアプリケーション実行環境で起動できるように変更するステップと、
変更された前記ネットワークブート設定ファイルに応じて、前記クライアントノードを再起動するステップと、
再起動した前記クライアントノードのアプリケーション実行環境が、前記予め動作検証されたアプリケーション実行環境に切り替わったか判別するステップと、
整合すると判別されること又は前記予め動作検証されたアプリケーション実行環境に切り替わったと判別されることを条件に、対応するアプリケーションを前記クライアントノードにおいてデプロイ可能であると判断するステップと、
1のアプリケーションをデプロイする全てのクライアントノードにおいてデプロイ可能であると判断することを条件に、このアプリケーションをデプロイするステップと、
を含む方法。 In a distributed system connected to a plurality of client nodes and deploying an application to the plurality of client nodes, a method for managing an application execution environment of the plurality of client nodes,
Determining a client node to deploy an application according to the resource status of the plurality of client nodes;
Determining whether the version of the application execution environment in the client node that deploys the application is consistent with the version of the application execution environment that has been previously verified for the application to be deployed;
Changing the network boot configuration file of the client node so that the client node can be started in an application execution environment that has been previously verified for the application to be deployed, on condition that it is determined that they do not match;
In response to the changed network boot configuration file, restarting the client node;
Determining whether the application execution environment of the restarted client node has been switched to the previously verified application execution environment;
Determining that the corresponding application can be deployed on the client node on the condition that it is determined to be consistent or determined to have been switched to the previously verified application execution environment;
Deploying this application on condition that it is determined that it can be deployed in all client nodes that deploy one application;
Including methods.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008296801A JP5385595B2 (en) | 2008-11-20 | 2008-11-20 | Application execution environment management method in distributed system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008296801A JP5385595B2 (en) | 2008-11-20 | 2008-11-20 | Application execution environment management method in distributed system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010122963A JP2010122963A (en) | 2010-06-03 |
JP5385595B2 true JP5385595B2 (en) | 2014-01-08 |
Family
ID=42324238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008296801A Expired - Fee Related JP5385595B2 (en) | 2008-11-20 | 2008-11-20 | Application execution environment management method in distributed system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5385595B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11249900A (en) * | 1998-02-27 | 1999-09-17 | Toshiba Corp | Computer system, boot method for system and recording medium |
JP2004192293A (en) * | 2002-12-11 | 2004-07-08 | Iyo Engineering:Kk | Software verification support tool |
JP2006099234A (en) * | 2004-09-28 | 2006-04-13 | Aruze Corp | Network terminal device, distribution server, and client/server system |
JP4788128B2 (en) * | 2004-11-10 | 2011-10-05 | セイコーエプソン株式会社 | Execution environment maintenance system, execution environment maintenance device, and execution environment maintenance method |
JP2008009865A (en) * | 2006-06-30 | 2008-01-17 | Yokogawa Electric Corp | Distributed computer system |
-
2008
- 2008-11-20 JP JP2008296801A patent/JP5385595B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010122963A (en) | 2010-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860444B2 (en) | Seamless mobility for kubernetes based stateful pods using moving target defense | |
JP6363796B2 (en) | Dynamic code deployment and versioning | |
US10884787B1 (en) | Execution guarantees in an on-demand network code execution system | |
CN110088733B (en) | Storage layer-based orchestration of virtual machine migration | |
US11836152B2 (en) | Continuous replication and granular application level replication | |
WO2017045424A1 (en) | Application program deployment system and deployment method | |
WO2015196967A1 (en) | Method and apparatus for application to permanently reside in background of operating system | |
US9817734B2 (en) | Virtual machine recovery on non-shared storage in a single virtual infrastructure management instance | |
US11188561B2 (en) | Prioritizing microservices on a container platform for a restore operation | |
WO2021129733A1 (en) | Cloud operating system management method and apparatus, server, management system, and medium | |
US20150378743A1 (en) | Systems and Methods for Enhancing the Availability of Multi-Tier Applications on Cloud Computing Platforms | |
JP2009536399A (en) | Operating system gradual boot process | |
JP2016085663A (en) | Method for automatically applying update to snapshot of virtual machine, computer system thereof, and program for computer system | |
US10887102B2 (en) | Intent framework | |
JP2006107500A (en) | Updating software during its execution | |
JP2011060035A (en) | System, method and program for deploying application | |
WO2021013248A1 (en) | Container layered shipping method and system | |
WO2011104825A1 (en) | Update method, update device, and update program | |
US9183092B1 (en) | Avoidance of dependency issues in network-based service startup workflows | |
CN116028163A (en) | Method, device and storage medium for scheduling dynamic link library of container group | |
US10175886B1 (en) | Systems and methods for handling missing storage image layers while provisioning containers in computer clusters | |
JP5998566B2 (en) | Movement control program, movement control method, and control apparatus | |
JPWO2004081791A1 (en) | Virtual machine system and firmware update method in virtual machine system | |
KR20100108578A (en) | System resource influenced staged shutdown | |
JP5655612B2 (en) | Information processing system, information processing method, and control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130513 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130521 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20130523 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130820 |
|
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: 20130910 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |