JP7240439B2 - アップデート装置、アップデート方法、およびプログラム - Google Patents
アップデート装置、アップデート方法、およびプログラム Download PDFInfo
- Publication number
- JP7240439B2 JP7240439B2 JP2021077166A JP2021077166A JP7240439B2 JP 7240439 B2 JP7240439 B2 JP 7240439B2 JP 2021077166 A JP2021077166 A JP 2021077166A JP 2021077166 A JP2021077166 A JP 2021077166A JP 7240439 B2 JP7240439 B2 JP 7240439B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- management
- cluster
- execution
- execution node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、概して、業務処理に係るノードをアップデートする技術に関する。
コンテナ技術を使用したコンテナ管理基盤では、複数台の管理ノードと、複数台の実行ノードとが含まれて1つのクラスタとする構成が一般的である。こうしたクラスタでは、管理ノードの持つAPI(Application Programming Interface)にアクセスすることで、クラスタの構成変更、統計情報の採取といった業務処理を行うことができる。
また、コンテナ管理基盤をアップデートする場合には、業務の停止を避けることを目的として、ローリングアップデートが採用される。
ローリングアップデートでは、クラスタ内のマシンが1台ずつアップデートされるが、管理ノードの更新時はAPIが停止するため、運用者は、業務を行うことができない。このため、アップデート中の業務は、同クラスタ中の管理ノードの更新が完了するまで作業を行うことができない。つまり、クラスタにおける高負荷、不具合に対応するための業務としてアプリケーションプログラムの設定変更、リソースの拡充等ができないタイミングが発生することで、サービスの稼働に悪影響を及ぼすリスクがある。
この点、複数の情報処理装置の中から、クラスタの冗長ポリシーに基づき設定される設定台数の情報処理装置を選択してクラスタから切り離し、クラスタから切り離された情報処理装置上で稼働する仮想マシンを、クラスタ内の他の情報処理装置に移管させ、クラスタから切り離された情報処理装置に対してメンテナンス作業を実行する管理装置が開示されている(特許文献1参照)。
特許文献1に記載の技術では、ローリングアップデートにかかる時間を削減するため、一度にアップデートするノードを適切に選出してアップデート効率を上げることはできる。しかしながら、特許文献1に記載の技術では、管理ノードのアップデート時の業務処理について対策が実施されていないので、管理ノードのアップデート時に、運用者は、業務を行うことができない。
本発明は、以上の点を考慮してなされたもので、業務処理に係るノードを適切にアップデートし得るアップデート装置等を提案しようとするものである。
かかる課題を解決するため本発明においては、ロードバランサにより振り分けられた業務処理を実行可能な第1の実行ノードと前記第1の実行ノードを管理する第1の管理ノードとを含んで構成される第1のクラスタと、前記ロードバランサにより振り分けられた業務処理を実行可能な第2の実行ノードと前記第2の実行ノードを管理する第2の管理ノードとを含んで構成される第2のクラスタと、をアップデートするアップデート装置であって、前記ロードバランサに対して、前記第1のクラスタへの振り分けを停止するように指示する通信制御部と、前記第1の実行ノードを、前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示する移管部と、前記第1の実行ノードが前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移されたことに基づいて、前記第1の管理ノードをアップデートするように前記第1の管理ノードに指示するアップデート部と、を設けるようにした。
上記構成では、第1のクラスタの第1の実行ノードが、第2の管理ノードの管理下に移されるので、第2の管理ノードの管理下において当該第1の実行ノードによる業務処理が可能である。上記構成によれば、例えば、第1の管理ノードのアップデート中であっても、当該第1の実行ノードによる業務処理が実施可能となる。
本発明によれば、利便性の高いアップデート装置を実現することができる。
(I)第1の実施の形態
以下、本発明の一実施の形態を詳述する。ただし、本発明は、実施の形態に限定されるものではない。
以下、本発明の一実施の形態を詳述する。ただし、本発明は、実施の形態に限定されるものではない。
本実施の形態に係るアップデート装置は、管理ノードおよび実行ノードを含んで構成されるクラスタをアップデートする際、当該クラスタから、実行ノードを別クラスタに分離した上で当該クラスタの管理ノードをアップデートする。例えば、アップデート装置は、アップデートする管理ノードの管理下の実行ノードについて、その管理情報を修正することで、当該実行ノードを別のクラスタの管理下に移す(移管する)。このように、本アップデート装置は、管理ノードをアップデートする際は、実行ノードが管理ノードの管理下にいない状態とし、業務処理とアップデート処理とを分離する。
その後、アップデート装置は、分離した実行ノード上のコンテナを分離先のクラスタにある別の実行ノードに移した上で、分離した実行ノードを1台ずつ分離元のクラスタに戻し、当該実行ノードをアップデートする。例えば、アップデート装置は、管理ノードの管理情報を修正し、分離元のクラスタに実行ノードを移した後に当該実行ノードをアップデートする。このように、アップデート装置は、業務処理が動作している環境からアップデートする実行ノードを切り離すことによって、当該実行ノードが業務処理の対象にならないように制御する。
上記構成では、業務処理とアップデート処理との分離によって、ノードがアップデートされている際の業務処理を可能とする。これによって、管理ノードがアップデートされている際に、運用者が業務を行えない状況が発生する事態を回避するとともに、同機能を使用する業務アプリケーションの停止を避けることができる。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数または順序を限定するものではない。また、構成要素の識別のための番号は、文脈毎に用いられ、1つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
次に、本発明の実施の形態を図面に基づいて説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は、単数でも複数でも構わない。
なお、以下の説明では、図面において同一要素については、同じ番号を付し、説明を適宜省略する。また、同種の要素を区別しないで説明する場合には、枝番を含む参照符号のうちの共通部分(枝番を除く部分)を使用し、同種の要素を区別して説明する場合は、枝番を含む参照符号を使用することがある。例えば、クラスタを特に区別しないで説明する場合には、「クラスタ120」と記載し、個々のクラスタを区別して説明する場合には、「第1のクラスタ120-1」、「第2のクラスタ120-2」のように記載することがある。
図1において、100は、全体として第1の実施の形態による業務システムを示す。
業務システム100は、クラスタ管理サーバ110と、2つ以上のクラスタ120と、ロードバランサ130とを含んで構成される。クラスタ管理サーバ110と、クラスタ120と、ロードバランサ130とは、ネットワーク101を介して通信可能に接続されている。業務システム100では、現用系である2つ以上のクラスタ120に対して、ロードバランサ130により業務処理のリクエスト(以下、「業務通信」と記す)を振り分けて、クラスタ120を動作させている。
クラスタ管理サーバ110は、アップデート装置の一例であり、クラスタ120を管理する物理マシンまたは仮想マシンである。以下では、クラスタ管理サーバ110が物理マシンである場合を例に挙げて説明する。
クラスタ120は、ロードバランサ130により振り分けられた業務処理を実行可能なノードのセットである。ノードは、Linux(登録商標)OS(オペレーティングシステム)等のホストOSとコンテナ管理アプリケーション(コンテナエンジン)とを含んで構成される物理マシンまたは仮想マシンである。ノードのセットには、業務処理を行う業務アプリケーションを動作させるコンテナを実行可能な実行ノードと、当該実行ノードを管理する管理アプリケーションを動作させるコンテナを実行可能な管理ノードとが含まれる。以下では、クラスタ120として、第1のクラスタ120-1(以下、「クラスタA」と記す)と、第2のクラスタ120-2(以下、「クラスタB」と記す)とが設けられている場合を例に挙げて説明する。
ロードバランサ130は、各クラスタ120における業務処理の負荷が均等になるように、例えば、ラウンドロビン方式により業務処理(業務通信)を振り分ける装置である。
なお、業務システム100は、上記構成に限らない。例えば、業務システム100は、現用系のクラスタ120を3つ以上含んで構成されていてもよい。
図2Aは、クラスタ管理サーバ110の機能構成の一例を示す図である。
クラスタ管理サーバ110は、通信部210と、記憶部220と、制御部230とを備える。
通信部210は、クラスタ120との通信およびロードバランサ130との通信を制御する。記憶部220は、クラスタ120の構成を管理するための情報として、ノードクラスタ情報221および実行ノード情報222を記憶する。ノードクラスタ情報221は、ノードとクラスタ120との関係を示す情報である。実行ノード情報222は、実行ノードとコンテナとの関係を示す情報である。ノードクラスタ情報221については、図4を用いて後述し、実行ノード情報222については、図5を用いて後述する。
制御部230は、通信制御部231と、アップデート部232と、移管部233とを備える。通信制御部231は、所定のクラスタ120をアップデートする運用者からの指示(以下、「動作開始指示」と記す)に基づいて、ロードバランサ130に対して、当該クラスタ120の切り離し(業務通信の遮断)を指示する。アップデート部232は、クラスタ120において、ノードがアップデートされている状態(アップデート状態)を監視し、ノードをアップデートする制御を行う。移管部233は、アップデート状態に応じて、実行ノードの移管およびコンテナの移管を管理ノードに指示する。
クラスタ管理サーバ110は、上記の機能に加えて、オペレーティングシステム、デバイスドライバ、ファイルシステム、DBMS(DataBase Management System)等の機能を更に備えていてもよい。
図2Bは、クラスタ管理サーバ110のハードウェア構成の一例を示す図である。
クラスタ管理サーバ110は、プロセッサ241と、主記憶装置242と、補助記憶装置243と、入力装置244と、出力装置245と、通信装置246と、を備える。
プロセッサ241は、演算処理を行う装置である。プロセッサ241は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、AI(Artificial Intelligence)チップ等である。
主記憶装置242は、プログラム、データ等を記憶する装置である。主記憶装置242は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)等である。ROMは、SRAM(Static Random Access Memory)、NVRAM(Non Volatile RAM)、マスクROM(Mask Read Only Memory)、PROM(Programmable ROM)等である。RAMは、DRAM(Dynamic Random Access Memory)等である。
補助記憶装置243は、ハードディスクドライブ(Hard Disk Drive)、フラッシュメモリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置等である。光学式記憶装置は、CD(Compact Disc)、DVD(Digital Versatile Disc)等である。補助記憶装置243に格納されているプログラム、データ等は、主記憶装置242に随時読み込まれる。
入力装置244は、ユーザから情報を受付けるユーザインターフェースである。入力装置244は、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。
出力装置245は、各種の情報を出力(表示出力、音声出力、印字出力等)するユーザインターフェースである。出力装置245は、例えば、各種情報を可視化する表示装置、音声出力装置(スピーカ)、印字装置等である。表示装置は、LCD(Liquid Crystal Display)、グラフィックカード等である。
通信装置246は、通信媒体を介して他の装置と通信する通信インターフェースである。通信装置246は、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。通信装置246は、通信可能に接続する他の装置から情報を受信する入力装置として機能することもできる。また、通信装置246は、通信可能に接続する他の装置に情報を送信する出力装置として機能することもできる。
クラスタ管理サーバ110の機能(通信部210、記憶部220、制御部230等)は、例えば、プロセッサ241が補助記憶装置243に格納されたプログラムを主記憶装置242に読み出して実行すること(ソフトウェア)により実現されてもよいし、専用の回路等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。なお、クラスタ管理サーバ110の1つの機能は、複数の機能に分けられていてもよいし、複数の機能は、1つの機能にまとめられていてもよい。また、クラスタ管理サーバ110の機能の一部は、別の機能として設けられてもよいし、他の機能に含められていてもよい。また、クラスタ管理サーバ110の機能の一部は、クラスタ管理サーバ110と通信可能な他のマシン(物理マシンまたは仮想マシン)により実現されてもよい。
また、上述したクラスタ管理サーバ110の機能を実現するためのプログラムは、CD-ROM250等の記録媒体、インターネット等のデータ信号を通じて提供される。例えば、クラスタ管理サーバ110は、CD-ROM250を介してプログラムの提供を受けてもよい。また、クラスタ管理サーバ110は、通信回線260との接続機能を備えてもよい。この場合、コンピュータ270は、上記プログラムを提供するサーバーコンピュータであり、ストレージ装置280等の記録媒体にプログラムを格納している。通信回線260は、インターネット、パソコン通信等の通信回線、専用通信回線等である。コンピュータ270は、ストレージ装置280からプログラムを読み出し、通信回線260を介してプログラムをクラスタ管理サーバ110に送信する。すなわち、コンピュータ270は、プログラムをデータ信号として搬送波を介して、通信回線260を介して送信する。このように、記録媒体、データ信号(搬送波)等の種々の形態のコンピュータ読み込み可能なコンピュータプログラム製品としてプログラムを供給できる。
図3Aは、クラスタ120の構成の一例を示す図である。
クラスタ120は、1つ以上の管理ノード310と、1つ以上の実行ノード320を含んで構成される。実行ノード320では、業務アプリケーションを動作させるコンテナ330が実行可能である。
管理ノード310は、ホストOSおよびコンテナ管理ソフトウェアを含んで構成される物理マシンまたは仮想マシンである。管理ノード310は、コンテナ管理ソフトウェアの管理機能を提供する管理ノード部340(例えば、管理コンテナ)を動作させる。クラスタ120では、例えば、3台の管理ノード310により、クラスタ120に耐障害性と高可用性とを提供している。
実行ノード320は、ホストOSおよびコンテナ管理ソフトウェアを含んで構成される物理マシンまたは仮想マシンである。実行ノード320は、業務アプリケーションを動作させるコンテナ330(管理コンテナ以外のコンテナ)を実行可能である。
コンテナ330は、運用者が利用する業務アプリケーションと、業務アプリケーションの実行に必要なミドルウェアおよびライブラリとを含んで構成される。コンテナ330は、管理ノード310によって実行ノード320に配置され、業務アプリケーションを動作させる。
管理ノード部340は、クラスタ120全体を管理(スケジューリング等)する。例えば、管理ノード部340は、新規にコンテナ330を配置したり、既存のコンテナ330の設定を変更したり、クラスタ120内の管理ノード310および実行ノード320をアップデートしたりする。より具体的には、管理ノード部340は、GUI部341と、API部342と、リソース管理部343と、管理情報記憶部344と、を備える。
GUI部341は、WEBベースのユーザインターフェースを提供する。GUI部341によれば、ユーザは、クラスタ120およびクラスタ120内で実行されているアプリケーションについて、管理、トラブルシューティング等を行うことができる。API部342は、管理ノード部340のAPIを外部に提供する。リソース管理部343は、管理ノード310、実行ノード320、コンテナ330、ストレージリソース、ネットワークIP(Internet Protocol)等、クラスタ120のリソースを管理する。例えば、リソース管理部343は、実行ノード320の移管、コンテナ330の追加、編集、移管といったクラスタ120の構成を変更し、変更した構成の管理情報を管理情報記憶部344により記憶する。管理情報記憶部344は、クラスタ120の管理情報を記憶する管理データべース(例えば、一貫性、高可用性を持ったキーバリューストア)である。
ここで、業務処理では、GUI部341を経由した処理、API部342へのアクセスによってクラスタ120内のリソースに対して情報取得、構成変更といった処理等が行われる。つまり、管理ノード310をアップデートしている際は、クラスタ120では、管理ノード部340が提供する機能が使用できなくなる。例えば、GUI部341が停止され、運用者による操作を受け付けない状態になる。また、例えば、API部342が同様に停止しているため、GUI部341を介さないアクセスによる処理も実施できなくなる。
図3Bは、クラスタAおよびクラスタBに係る構成の一例を示す図である。
クラスタAおよびクラスタBは、共に現用系であり、ロードバランサ130において業務通信が振り分けられて動作する。本実施の形態では、クラスタAとクラスタBとは、コンテナ330が設けられていない実行ノード320-23(以下、「実行ノードC」と記す)がクラスタBに含まれている点を除いて、クラスタ120の構成(ノードのサイズ、設定値等)が同一である。
ここで、クラスタAおよびクラスタBにおいて、所定の稼働率(例えば、所定のリソースの使用率が50%程度)で各実行ノード320が動作している場合を想定すると、一方のクラスタ120をアップデートするために、当該クラスタ120をそのまま停止してしまうと、他方のクラスタ120の実行ノード320において全ての業務処理を担うことになり、レスポンスが悪くなり、業務への影響が出てしまう。
この点、クラスタ管理サーバ110では、一方のクラスタ120をアップデートする際、一方のクラスタ120の管理情報と他方のクラスタ120の管理情報とを更新し、一方のクラスタ120の実行ノード320を他方のクラスタ120に移管して動作させる。上記構成では、実行ノード320の管理が一方の管理ノード310から他方の管理ノード310に移るが、各実行ノード320の負荷は変更されないので、レスポンスが悪くなる事態を回避することができる。
以下では、はじめにアップデート対象とする一方のクラスタ120をクラスタA、他方のクラスタをクラスタBとして説明する。また、管理ノード310-11、管理ノード310-12、管理ノード310-13からなる管理ノード310群を「管理ノードA」と記し、管理ノード310-21、管理ノード310-22、管理ノード310-23からなる管理ノード310群を「管理ノードB」と記すことがある。また、実行ノード320―11および実行ノード320―12を「実行ノードA」と記し、実行ノード320―21および実行ノード320―22を「実行ノードB」と記すことがある。また、第1のコンテナ330―1、第2のコンテナ330―2、第3のコンテナ330―3、第4のコンテナ330―4を「コンテナA」と記すことがある。
図4は、ノードクラスタ情報221の一例(ノードクラスタテーブル400)を示す図である。
ノードクラスタテーブル400は、ノードクラスタ情報221を示す複数の項目の値を含むレコードを記憶する。より具体的には、ノードクラスタテーブル400は、ノード名401と、種別402と、管理ノード群403と、所属クラスタ404と、更新状態405との情報が対応付けられたレコードを記憶する。
ノード名401は、ノードを識別可能なノード名を示す。種別402は、当該ノードの種別を示す。管理ノード群403は、当該ノードを管理する管理ノード310群を示す。所属クラスタ404は、当該ノードが現在属しているクラスタ120(所属クラスタ)を示す。更新状態405は、当該ノードのアップデート状態(更新状態)を示す。
図5は、実行ノード情報222の一例(実行ノードテーブル500)を示す図である。
実行ノードテーブル500は、実行ノード情報222を示す複数の項目の値を含むレコードを記憶する。より具体的には、実行ノードテーブル500は、コンテナ名501と、元のホスト502と、現在のホスト503との情報が対応付けられたレコードを記憶する。
コンテナ名501は、コンテナを識別可能なコンテナ名を示す。元のホスト502は、当該コンテナが元々設けられている実行ノード320(元のホスト)を識別可能なノード名を示す。現在のホスト503は、当該コンテナが現在設けられている実行ノード320(現在のホスト)を識別可能なノード名を示す。
図6は、クラスタ管理サーバ110がクラスタ120をアップデートする処理(アップデート処理)の一例を示す図である。
ステップS601では、クラスタ管理サーバ110は、アップデート対象のクラスタ120(例えば、クラスタA)を切り離すように、ロードバランサ130に指示を送信する。
ステップS602では、クラスタ管理サーバ110は、クラスタ構成を変更する。例えば、クラスタ管理サーバ110は、クラスタAに含まれる2つの実行ノードAをクラスタBに移管するように、クラスタAの管理ノードAとクラスタBの管理ノードBとに指示を送信する。
ステップS603では、クラスタ管理サーバ110は、管理ノード310をアップデートする。例えば、クラスタ管理サーバ110は、クラスタAの管理ノードAをアップデートするように、管理ノードAに指示を送信する。
ステップS604では、クラスタ管理サーバ110は、実行ノード320をアップデートする。例えば、クラスタ管理サーバ110は、クラスタBに移管したアップデートされていない実行ノードAから1つを任意に選択し、選択した実行ノードA上の全てのコンテナAを実行ノードCに移した上で、当該実行ノードAをクラスタAに移管してアップデートし、アップデートされた実行ノードAをクラスタBに戻し、実行ノードCに移したコンテナAを全て戻すように、クラスタAの管理ノードAとクラスタBの管理ノードBとに指示を送信する。
ステップS605では、クラスタ管理サーバ110は、ステップS602において移管した全ての実行ノード320がアップデートされたか否かを判定する。例えば、クラスタ管理サーバ110は、全ての実行ノードAがアップデートされたと判定した場合、ステップS606に処理を移し、何れかの実行ノードAがアップデートされていないと判定した場合、ステップS604に処理を移す。
ステップS606では、クラスタ管理サーバ110は、クラスタ構成を元の状態に戻す。例えば、クラスタ管理サーバ110は、クラスタBに移管した2つの実行ノードAをクラスタAに移管するように、クラスタAの管理ノードAとクラスタBの管理ノードBとに指示を送信する。
ステップS607では、クラスタ管理サーバ110は、アップデート対象のクラスタ120(例えば、クラスタA)を再接続するように、ロードバランサ130に指示を送信する。
なお、上述の説明では、クラスタAをアップデートする場合を例に挙げて説明したが、クラスタBについても、基本的には同様であり、クラスタBをアップデートする場合も、ステップS601~ステップS607の処理が行われる。ただし、ステップS603において、管理ノードBがアップデートされた場合、実行ノードCもアップデートされ、アップデートされた実行ノードCがクラスタBからクラスタAに移管される点が異なる。
図7および図8は、アップデート処理に係る一連の処理(シーケンス)の一例を示す図である。
ステップS701では、運用者700は、入力装置244を介して、動作開始指示を与える。
ステップS702では、通信制御部231は、動作開始指示に基づいて、クラスタ120の切り離しをロードバランサ130に指示する。以下では、ステップS702において切り離されるクラスタ120がクラスタAである場合を例に挙げて説明する。
ステップS703では、ロードバランサ130は、ロードバランス先を修正する。例えば、ロードバランサ130は、クラスタAへの業務通信を遮断するように、ロードバランサ130の構成情報を更新する。
ステップS704では、ロードバランサ130は、処理結果を通信制御部231に送信する。
ここで、ステップS704の処理が行われた後のクラスタ120の構成を図9および図10を用いて説明する。図9に示すように、アップデート処理では、まず、アップデートされるクラスタAがロードバランサ130から切り離される。そして、図10に示すように、クラスタ120の初期状態は、クラスタAでは、管理ノードAの管理下に実行ノードAが含まれ、クラスタBでは、管理ノードBの管理下に実行ノードBおよび実行ノードCが含まれる状態である。
ステップS705では、通信制御部231は、動作開始指示をアップデート部232に送信する。
ステップS706では、アップデート部232は、アップデート対象のクラスタ120のバージョン情報を、当該クラスタ120の管理ノード310に要求する。本例では、アップデート部232は、クラスタAのバージョン情報を管理ノードAに要求する。
ステップS707では、バージョン情報を要求された管理ノード310は、バージョン情報をアップデート部232に送信する。
ステップS708では、アップデート部232は、アップデート処理の詳細(どのようにクラスタ120をアップデートするか)を決定する。例えば、アップデート部232は、バージョンを「4.1」から「4.5」に上げる場合に、「4.3」を適用してから「4.5」を適用するか否か等を決定する。
ステップS709では、アップデート部232は、クラスタ120のクラスタ構成の修正を移管部233に指示する。例えば、アップデート部232は、クラスタAの全ての実行ノードAをクラスタBに移管することを移管部233に指示する。
ステップS710では、移管部233は、アップデート対象のクラスタ120(以下、「対象クラスタ」と記す)の実行ノード320の管理を当該クラスタ120の管理ノード310から他のクラスタ120(以下、「他クラスタ」と記す)の管理ノード310に移す指示を、対象クラスタの管理ノード310と他クラスタの管理ノード310とに送信する。例えば、移管部233は、クラスタA内の全ての実行ノードAの管理を管理ノードAからクラスタBの管理ノードBに移すように管理情報を修正する指示を、管理ノードAと管理ノードBとに送信する。
ステップS711では、指示を受信した管理ノード310は、管理情報を修正し、管理ノード310の変更指示を実行ノード320に送信する。例えば、管理ノードAは、クラスタA内の全ての実行ノードAを管理下から外すように管理情報を修正し、管理ノードBは、クラスタA内の全ての実行ノードAを管理下に加えるように管理情報を修正する。
ステップS712では、変更指示を受信した実行ノード320は、管理ノード310の変更に係る処理を行い、処理結果を、変更指示を送信した管理ノード310に送信する。例えば、クラスタA内の各実行ノードAは、管理ノードBの管理下にあり、管理ノードBと通信すること等を設定する処理を行い、処理結果を、管理ノードBに送信する。
ステップS713では、処理結果を受信した管理ノード310は、処理結果を移管部233に送信する。
ステップS714では、移管部233は、受信した処理結果を、アップデート部232に送信する。
ステップS715では、アップデート部232は、ノードクラスタ情報221を更新する。例えば、アップデート部232は、ノードクラスタテーブル400のレコードのうち、種別402が「実行ノード」であり、管理ノード群403が「管理ノードA」であるレコードを特定し、特定したレコードの所属クラスタ404の値を「クラスタA」から「クラスタB」に更新する。
ここで、ステップS715の処理が行われた後のクラスタ120の構成を、図11を用いて説明する。図11に示すように、クラスタ120の状態は、クラスタAでは、管理ノードAの管理下に実行ノード320が存在せず、クラスタBでは、管理ノードBの管理下に実行ノードA、実行ノードB、および実行ノードCが含まれる状態となる。これにより、実行ノードAは、管理ノードBの管理下において、業務処理を行う業務アプリケーションを動作させるコンテナAを実行可能になる。
ステップS716では、アップデート部232は、アップデート対象の管理ノード310をアップデートするように当該管理ノード310に指示する。
ステップS717では、指示を受信した管理ノード310は、アップデート処理を行う。例えば、管理ノードAは、ステップS708で決定された詳細に従って、インターネットを介して管理ノードAのアップデート情報を取得し、取得したアップデート情報を適用する。
ステップS718では、アップデート処理を行った管理ノード310は、処理結果をアップデート部232に送信する。
ステップS719では、アップデート部232は、処理結果を受信すると、ノードクラスタ情報221を更新する。例えば、アップデート部232は、ノードクラスタテーブル400のレコードのうち、種別402が「管理ノード」であり、管理ノード群403が「管理ノードA」であるレコードを特定し、特定したレコードの更新状態405の値を「未」から「済」に更新する。
ここで、ステップS719の処理が行われた後のクラスタ120の構成を、図12を用いて説明する。図12に示すように、クラスタ120の状態は、クラスタAにおいて、管理ノードAがアップデートされた状態となる。
ステップS720では、実行ノードアップデート処理が、実行ノード320の数分、繰り返し行われる。例えば、実行ノードAは、実行ノード320-11および実行ノード320-12であるので、実行ノードアップデート処理が2回行われる。
図8は、実行ノードアップデート処理に係る一連の処理(シーケンス)の一例を示す図である。
ステップS801では、アップデート部232は、アップデート対象の実行ノード320の移管(クラスタ構成の修正)を移管部233に指示する。例えば、アップデート部232は、実行ノードAのうち、未だアップデートされていない実行ノードAの管理をクラスタBからクラスタAに移す指示を移管部233に送信する。ステップS801では、未だアップデートされていない実行ノードAとして、実行ノード320-11が選択されたとして説明する。
ステップS802では、移管部233は、アップデート対象の実行ノード320の管理を当該実行ノード320が含まれるクラスタ120(移管元)の管理ノード310から他のクラスタ120(移管先)の管理ノード310に移す指示を、移管元の管理ノード310と移管先の管理ノード310とに指示する。例えば、移管部233は、実行ノードAの管理を管理ノードBから管理ノードAに移すように管理情報を修正する指示を、管理ノードAと管理ノードBとに指示する。
ステップS803では、移管元の管理ノード310は、アップデート対象の実行ノード320上のコンテナ330を他の実行ノード320に移す処理を行う。例えば、管理ノードBは、実行ノードA上のコンテナAを実行ノードCに移すために、コンテナAの処理を一時停止し処理データの保存を完了した後にコンテナAを停止する。その後、管理ノードBは、コンテナAの動作定義情報に実行ノードC上でのみ動作する制限を加え、事前に各ノード間で共有されているコンテナイメージを利用して実行ノードCで同様のコンテナ330を起動する。
ステップS804では、移管が行われたコンテナ330は、処理結果を移管元の管理ノード310に送信する。
ここで、ステップS804の処理が行われた後のクラスタ120の構成を、図13を用いて説明する。図13に示すように、クラスタ120の状態は、クラスタBでは、管理ノードBの管理下に実行ノードA、実行ノードB、および実行ノードCが含まれ、実行ノードA(実行ノード320-11)上のコンテナA(第1のコンテナ330-1および第2のコンテナ330-2)が実行ノードC(実行ノード320-23)に移されて実行されている状態となる。これにより、実行ノードCは、管理ノードBの管理下においてコンテナAを実行可能になる。
ステップS805では、移管元の管理ノード310および移管先の管理ノード310は、管理情報を修正し、管理ノード310の変更指示をアップデート対象の実行ノード320に送信する。例えば、管理ノードBは、実行ノードAを管理下から外すように管理情報を修正し、管理ノードAは、実行ノードAを管理下に加えるように管理情報を修正する。
ステップS806では、変更指示を受信した実行ノード320は、管理ノード310の変更に係る処理を行い、処理結果を、変更指示を送信した管理ノード310に送信する。
ステップS807では、処理結果を受信した管理ノード310は、処理結果を移管部233に送信する。
ステップS808では、移管部233は、処理結果をアップデート部232に送信する。
ステップS809では、アップデート部232は、ノードクラスタ情報221および実行ノード情報222を更新する。例えば、アップデート部232は、ノードクラスタテーブル400のレコードのうち、ノード名401が、アップデート対象の実行ノード320のノード名と一致するレコードを特定し、特定したレコードの所属クラスタ404の値を「クラスタB」から「クラスタA」に更新する。また、例えば、アップデート部232は、実行ノードテーブル500のレコードのうち、コンテナ名501が、ステップS803において実行ノードCに移されたコンテナAのコンテナ名と一致するレコードを特定し、特定したレコードの現在のホスト503の値を「実行ノードC」に更新する。
ここで、ステップS809の処理が行われた後のクラスタ120の構成を、図14を用いて説明する。図14に示すように、クラスタ120の状態は、クラスタAでは、管理ノードAの管理下に、コンテナA(第1のコンテナ330-1および第2のコンテナ330-2)が実行ノードC(実行ノード320-23)に移されている実行ノードA(実行ノード320-11)が含まれる状態となる。
ステップS810では、アップデート部232は、アップデート対象の実行ノード320をアップデートするように移管先の管理ノード310に指示する。
ステップS811では、移管先の管理ノード310は、アップデート対象の実行ノード320をアップデートするように当該実行ノード320に指示する。
ステップS812では、指示を受信した実行ノード320は、アップデート処理を行う。例えば、実行ノードAは、ステップS708で決定された詳細に従って、インターネットを介して実行ノードAのアップデート情報を取得し、取得したアップデート情報を適用する。
ステップS813では、アップデート処理を行った実行ノード320は、処理結果を管理ノード310に送信する。
ステップS814では、処理結果を受信した管理ノード310は、処理結果をアップデート部232に送信する。
ステップS815では、アップデート部232は、処理結果を受信すると、ノードクラスタ情報221を更新する。例えば、アップデート部232は、ノードクラスタテーブル400のレコードのうち、ノード名401が、ステップS812においてアップデートされた実行ノード302のノード名と一致するレコードを特定し、特定したレコードの更新状態405の値を「未」から「済」に更新する。
ここで、ステップS815の処理が行われた後のクラスタ120の構成を、図15を用いて説明する。図15に示すように、クラスタ120の状態は、クラスタAでは、アップデートされた管理ノードAの管理下にアップデートされた実行ノードA(実行ノード320-11)が含まれる状態となる。
ステップS816では、アップデート部232は、アップデートされた実行ノード320の移管(クラスタ構成の修正)を移管部233に指示する。例えば、アップデート部232は、アップデートされた実行ノードAの管理をクラスタAからクラスタBに移す指示を移管部233に送信する。
ステップS817では、移管部233は、アップデートされた実行ノード320の管理を移管先のクラスタ120の管理ノード310から移管元のクラスタ120の管理ノード310に移す指示を、移管元の管理ノード310と移管先の管理ノード310とに送信する。例えば、移管部233は、アップデートされた実行ノードAの管理を管理ノードAから管理ノードBに移すように管理情報を修正する指示を、管理ノードAと管理ノードBとに指示する。
ステップS818では、移管元の管理ノード310および移管先の管理ノード310は、管理情報を修正し、管理ノード310の変更指示を、アップデートされた実行ノード320に送信する。例えば、管理ノードAは、アップデートされた実行ノードAを管理下から外すように管理情報を修正し、管理ノードBは、アップデートされた実行ノードAを管理下に加えるように管理情報を修正する。
ステップS819では、変更指示を受信した実行ノード320は、管理ノード310の変更に係る処理を行い、処理結果を、変更指示を送信した管理ノード310に送信する。
ここで、ステップS819の処理が行われた後のクラスタ120の構成を、図16を用いて説明する。図16に示すように、クラスタ120の状態は、クラスタAでは、アップデートされた管理ノードAの管理下に実行ノード320が存在せず、クラスタBでは、管理ノードBの管理下に、アップデートされた実行ノードA(実行ノード320-11)と、アップデートされていない実行ノードA(実行ノード320-12)と、実行ノードBと、実行ノードCとが含まれる状態となる。
ステップS820では、移管元の管理ノード310は、アップデートされた実行ノード320に元々設けられていたコンテナ330を当該コンテナ330が現在設けられている実行ノード320から移す処理を行う。例えば、管理ノードBは、実行ノードCに設けられているコンテナAを実行ノードAに移す。
ステップS821では、移管が行われたコンテナ330は、処理結果を移管元の管理ノード310に送信する。
ステップS822では、処理結果を受信した管理ノード310は、処理結果を移管部233に送信する。
ステップS823では、移管部233は、処理結果をアップデート部232に送信する。
ステップS824では、アップデート部232は、ノードクラスタ情報221および実行ノード情報222を更新する。例えば、アップデート部232は、ノードクラスタテーブル400のレコードのうち、ノード名401が、ステップS812においてアップデートされた実行ノード320のノード名と一致するレコードを特定し、特定したレコードの所属クラスタ404の値を「クラスタA」から「クラスタB」に更新する。また、例えば、アップデート部232は、実行ノードテーブル500のレコードのうち、コンテナ名501が、ステップS820において実行ノードAに移されたコンテナAのコンテナ名と一致するレコードを特定し、特定したレコードの現在のホスト503の値を「実行ノードA」に更新する。
なお、実行ノードアップデート処理は、全ての実行ノード320についてアップデートされるまで、繰り返し実行される。本例では、実行ノード320-11に続いて、同様に、実行ノード320-12がアップデートされる。この場合、ステップS804の処理が行われた後は、クラスタ120の構成は、図17に示す態様となる。また、ステップS809の処理が行われた後は、クラスタ120の構成は、図18に示す態様となる。また、ステップS815の処理が行われた後は、クラスタ120の構成は、図19に示す態様となる。また、ステップS819の処理が行われた後は、クラスタ120の構成は、図20に示す態様となる。また、ステップS824の処理が行われた後は、クラスタ120の構成は、図21に示す態様となる。
ステップS721では、アップデート部232は、アップデートされた全ての実行ノード320の移管(クラスタ構成の修正)を移管部233に指示する。例えば、アップデート部232は、アップデートされた全ての実行ノードAの管理をクラスタBからクラスタAに移す指示を移管部233に送信する。
ステップS722では、移管部233は、アップデートされた全ての実行ノード320の管理を対象クラスタの管理ノード310から他クラスタの管理ノード310に移す指示を、対象クラスタの管理ノード310と他クラスタの管理ノード310とに送信する。例えば、移管部233は、アップデートされた全ての実行ノードAの管理を管理ノードBから管理ノードAに移すように管理情報を修正する指示を、管理ノードAと管理ノードBとに送信する。
ステップS723では、対象クラスタの管理ノード310および他クラスタの管理ノード310は、管理情報を修正し、管理ノード310の変更指示を、アップデートされた全ての実行ノード320に送信する。例えば、管理ノードBは、アップデートされた全ての実行ノードAを管理下から外すように管理情報を修正し、管理ノードAは、アップデートされた全ての実行ノードAを管理下に加えるように管理情報を修正する。
ステップS724では、変更指示を受信した実行ノード320は、管理ノード310の変更に係る処理を行い、処理結果を、変更指示を送信した管理ノード310に送信する。
ステップS725では、処理結果を受信した管理ノード310は、処理結果を移管部233に送信する。
ステップS726では、移管部233は、処理結果をアップデート部232に送信する。
ステップS727では、アップデート部232は、ノードクラスタ情報221を更新する。例えば、アップデート部232は、ノードクラスタテーブル400のレコードのうち、種別402が「実行ノード」であり、管理ノード群403が「管理ノードA」であるレコードを特定し、特定したレコードの所属クラスタ404の値を「クラスタB」から「クラスタA」に更新する。
ここで、ステップS727の処理が行われた後のクラスタ120の構成を、図22を用いて説明する。図22に示すように、クラスタ120の状態は、クラスタAでは、アップデートされた管理ノードAの管理下にアップデートされた実行ノードAが含まれ、クラスタBでは、管理ノードBの管理下に、実行ノードBと、実行ノードCとが含まれる状態となる。
なお、ステップS721~ステップS727の処理は、実行ノードアップデート処理において行われてもよい。この場合、実行ノード320がアップデートされるたびに、アップデートされた実行ノード320が対象クラスタに戻される。
ステップS728では、アップデート部232は、処理結果を通信制御部231に送信する。
ステップS729では、通信制御部231は、ステップS703で切り離しが行われたクラスタ120の接続指示をロードバランサ130に送信する。
ステップS730では、ロードバランサ130は、ロードバランス先を修正する。例えば、ロードバランサ130は、クラスタAに業務通信を振り分けるように、ロードバランサ130の構成情報を更新する。
ステップS731では、ロードバランサ130は、処理結果を通信制御部231に送信する。
ステップS732では、通信制御部231は、処理結果を出力装置245に送信する。運用者700は、出力装置245を介して、処理結果を把握する。
また、業務システム100では、続けて、同様に、自動で、または、運用者700からの操作に応じて、他方のクラスタ120(本例では、クラスタB)がアップデートされてもよい。
この場合、実行ノードCについては、ステップS719の処理が行われた後に、アップデートされてからクラスタAに移管される。このときのクラスタ120の構成を、図23を用いて説明する。図23に示すように、クラスタ120の状態は、クラスタAでは、アップデートされた管理ノードAの管理下にアップデートされた実行ノードAと、アップデートされていない実行ノードBと、アップデートされた実行ノードCが含まれ、クラスタBでは、アップデートされた管理ノードBの管理下に、実行ノード320が存在しない状態となる。
なお、実行ノードCのアップデートのタイミングは、上記に限らない。例えば、実行ノードCは、アップデートされる前にクラスタAに移管され、ステップS720の処理が行われた後に、クラスタBに移管されてアップデートされてもよい。
本実施の形態によれば、クラスタをアップデートすることによる業務への影響を低減することができる。
(II)付記
上述の実施の形態には、例えば、以下のような内容が含まれる。
上述の実施の形態には、例えば、以下のような内容が含まれる。
上述の実施の形態においては、本発明をアップデート装置に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステム、装置、方法、プログラムに広く適用することができる。
また、上述の実施の形態においては、ステップS702において切り離されるクラスタ120がクラスタAである場合について述べたが、本発明はこれに限らない。例えば、ステップS702において切り離されるクラスタ120がクラスタBであってもよい。この場合、実行ノードCは、クラスタBからクラスタAに移管される。
また、上述の実施の形態においては、実行ノードAのコンテナAを実行ノードCに移す場合について述べたが、本発明はこれに限らない。例えば、実行ノードAのコンテナAを、リソースに余裕がある実行ノードBに移すようにしてもよい。この場合、コンテナAが複数ある場合は、複数の実行ノードBに分散して移すようにしてもよい。
また、上述の実施の形態においては、実行ノード320を1つずつアップデートする場合について述べたが、本発明はこれに限らない。例えば、複数の実行ノード320をまとめてアップデートするようにしてもよい。
また、上述の実施の形態においては、クラスタBにおいて実行ノードCをアップデートする場合について述べたが、本発明はこれに限らない。例えば、クラスタAにおいて実行ノードCをアップデートするようにしてもよい。この場合、実行ノードCは、初期状態において、クラスタBではなく、クラスタAに設けられていてもよい。
また、上述の実施の形態において、プログラムの一部またはすべては、プログラムソースから、アップデート装置を実現するコンピュータのような装置にインストールされてもよい。プログラムソースは、例えば、ネットワークで接続されたプログラム配布サーバまたはコンピュータが読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。また、上述の説明において、2つ以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2つ以上のプログラムとして実現されてもよい。
また、上述の実施の形態において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
また、上述の実施の形態において、情報の出力は、ディスプレイへの表示に限るものではない。情報の出力は、スピーカによる音声出力であってもよいし、ファイルへの出力であってもよいし、印刷装置による紙媒体等への印刷であってもよいし、プロジェクタによるスクリーン等への投影であってもよいし、その他の態様であってもよい。
また、上記の説明において、各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記憶装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
上述した実施の形態は、例えば、以下の特徴的な構成を有する。
(1)
ロードバランサ(例えば、ロードバランサ130)により振り分けられた業務処理を実行可能な第1の実行ノード(例えば、実行ノードA、実行ノード320-11,320-12)と上記第1の実行ノードを管理する第1の管理ノード(例えば、管理ノードA、管理ノード310-11~310-13)とを含んで構成される第1のクラスタ(例えば、クラスタA、第1のクラスタ120-1)と、上記ロードバランサにより振り分けられた業務処理を実行可能な第2の実行ノード(例えば、実行ノードB、実行ノード320-21~320-23)と上記第2の実行ノードを管理する第2の管理ノード(例えば、管理ノードB、管理ノード310-21~310-23)とを含んで構成される第2のクラスタ(例えば、クラスタB、第2のクラスタ120-2)と、をアップデートするアップデート装置(例えば、アップデート装置、クラスタ管理サーバ110)であって、上記ロードバランサに対して、上記第1のクラスタへの振り分けを停止するように指示する通信制御部(例えば、通信制御部231、回路)と、上記第1の実行ノードを、上記第1の管理ノードにおける管理下から上記第2の管理ノードにおける管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示する移管部(例えば、移管部233、回路)と、上記第1の実行ノードが上記第1の管理ノードにおける管理下から上記第2の管理ノードにおける管理下に移されたことに基づいて、上記第1の管理ノードをアップデートするように上記第1の管理ノードに指示するアップデート部(例えば、アップデート部232)と、を備える。
ロードバランサ(例えば、ロードバランサ130)により振り分けられた業務処理を実行可能な第1の実行ノード(例えば、実行ノードA、実行ノード320-11,320-12)と上記第1の実行ノードを管理する第1の管理ノード(例えば、管理ノードA、管理ノード310-11~310-13)とを含んで構成される第1のクラスタ(例えば、クラスタA、第1のクラスタ120-1)と、上記ロードバランサにより振り分けられた業務処理を実行可能な第2の実行ノード(例えば、実行ノードB、実行ノード320-21~320-23)と上記第2の実行ノードを管理する第2の管理ノード(例えば、管理ノードB、管理ノード310-21~310-23)とを含んで構成される第2のクラスタ(例えば、クラスタB、第2のクラスタ120-2)と、をアップデートするアップデート装置(例えば、アップデート装置、クラスタ管理サーバ110)であって、上記ロードバランサに対して、上記第1のクラスタへの振り分けを停止するように指示する通信制御部(例えば、通信制御部231、回路)と、上記第1の実行ノードを、上記第1の管理ノードにおける管理下から上記第2の管理ノードにおける管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示する移管部(例えば、移管部233、回路)と、上記第1の実行ノードが上記第1の管理ノードにおける管理下から上記第2の管理ノードにおける管理下に移されたことに基づいて、上記第1の管理ノードをアップデートするように上記第1の管理ノードに指示するアップデート部(例えば、アップデート部232)と、を備える。
上記構成では、第1のクラスタの第1の実行ノードが、第2の管理ノードの管理下に移されるので、第2の管理ノードの管理下において当該第1の実行ノードによる業務処理が可能である。上記構成によれば、例えば、第1の管理ノードのアップデート中であっても、当該第1の実行ノードによる業務処理が実施可能となる。
(2)
上記第1の実行ノードには、上記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナ(例えば、コンテナA、第1のコンテナ330-1~第4のコンテナ330-4)が設けられ、上記第2の管理ノードは、上記コンテナを、上記第2の実行ノードに移し(例えば、図13参照)、上記移管部は、上記第1の管理ノードがアップデートされたことに基づいて、上記コンテナが上記第2の実行ノードに移された後の上記第1の実行ノードを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示し(例えば、図14参照)、上記アップデート部は、上記第2の管理ノードにおける管理下から上記第1の管理ノードにおける管理下に上記第1の実行ノードが移されたことに基づいて、上記第1の実行ノードをアップデートするように上記第1の管理ノードに指示する(例えば、図15参照)。
上記第1の実行ノードには、上記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナ(例えば、コンテナA、第1のコンテナ330-1~第4のコンテナ330-4)が設けられ、上記第2の管理ノードは、上記コンテナを、上記第2の実行ノードに移し(例えば、図13参照)、上記移管部は、上記第1の管理ノードがアップデートされたことに基づいて、上記コンテナが上記第2の実行ノードに移された後の上記第1の実行ノードを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示し(例えば、図14参照)、上記アップデート部は、上記第2の管理ノードにおける管理下から上記第1の管理ノードにおける管理下に上記第1の実行ノードが移されたことに基づいて、上記第1の実行ノードをアップデートするように上記第1の管理ノードに指示する(例えば、図15参照)。
上記コンテナが第2の実行ノードに移されるタイミングは、上記第1の管理ノードがアップデートされたタイミングであってもよいし、上記第1の管理ノードがアップデートされているタイミングであってもよいし、上記第1の管理ノードがアップデートされる前のタイミングであってもよい。
上記構成では、アップデート対象の第1の実行ノードに設けられているコンテナが第2の管理ノードの管理下の第2の実行ノードに移され、第2の実行ノード上で当該コンテナによる業務処理が可能である。上記構成によれば、例えば、運用者は、第1の実行ノードのアップデート中であっても当該コンテナに係る業務を行うことができる。
(3)
上記移管部は、上記第1の実行ノードがアップデートされたことに基づいて、上記第1の実行ノードを、上記第1の管理ノードの管理下から上記第2の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示し(例えば、図16参照)、上記第2の管理ノードは、上記第1の実行ノードが上記第2の管理ノードの管理下に移されたことに基づいて、上記コンテナを上記第1の実行ノードに移し、上記移管部は、上記第1の実行ノードに上記コンテナが移されたことに基づいて、上記第1の実行ノードと上記第2の実行ノードとを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示する(例えば、図23参照)。
上記移管部は、上記第1の実行ノードがアップデートされたことに基づいて、上記第1の実行ノードを、上記第1の管理ノードの管理下から上記第2の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示し(例えば、図16参照)、上記第2の管理ノードは、上記第1の実行ノードが上記第2の管理ノードの管理下に移されたことに基づいて、上記コンテナを上記第1の実行ノードに移し、上記移管部は、上記第1の実行ノードに上記コンテナが移されたことに基づいて、上記第1の実行ノードと上記第2の実行ノードとを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示する(例えば、図23参照)。
上記構成では、第2の実行ノードの管理が第2の管理ノードから第1の第1の管理ノードに移されるので、例えば、第2のクラスタについても第1のクラスタと同様に、アップデートすることができる。
(4)
上記第2の実行ノードには、上記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられている特定の実行ノード(例えば、実行ノード320-21,320-22)と、上記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられていない所定の実行ノード(例えば、実行ノードC、実行ノード320-23)とが含まれ、上記移管部は、上記コンテナを、上記第2の実行ノードのうちの上記所定の実行ノードに移す(例えば、図13参照)。
上記第2の実行ノードには、上記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられている特定の実行ノード(例えば、実行ノード320-21,320-22)と、上記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられていない所定の実行ノード(例えば、実行ノードC、実行ノード320-23)とが含まれ、上記移管部は、上記コンテナを、上記第2の実行ノードのうちの上記所定の実行ノードに移す(例えば、図13参照)。
上記構成では、アップデート対象の第1の実行ノードのコンテナが所定の実行ノードに移されるので、例えば、第2のクラスタにおいて業務処理を行っている特定の実行ノードに影響を与えることなく、当該コンテナを動作させることができる。
(5)
上記移管部は、上記第1の実行ノードがアップデートされたことに基づいて、上記第1の実行ノードを、上記第1の管理ノードの管理下から上記第2の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示し(例えば、図16参照)、上記第2の管理ノードは、上記第1の実行ノードが上記第2の管理ノードの管理下に移されたことに基づいて、上記コンテナを上記第1の実行ノードに移し、上記移管部は、上記第1の実行ノードに上記コンテナが移されたことに基づいて、上記第1の実行ノードと上記特定の実行ノードと上記所定の実行ノードとを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示する(例えば、図23参照)。
上記移管部は、上記第1の実行ノードがアップデートされたことに基づいて、上記第1の実行ノードを、上記第1の管理ノードの管理下から上記第2の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示し(例えば、図16参照)、上記第2の管理ノードは、上記第1の実行ノードが上記第2の管理ノードの管理下に移されたことに基づいて、上記コンテナを上記第1の実行ノードに移し、上記移管部は、上記第1の実行ノードに上記コンテナが移されたことに基づいて、上記第1の実行ノードと上記特定の実行ノードと上記所定の実行ノードとを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示する(例えば、図23参照)。
上記構成では、所定の実行ノードがアップデートされた後に、所定の実行ノードが第1のクラスタに移される。上記構成によれば、例えば、第1のクラスタに移された特定の実行ノードのコンテナを所定の実行ノードに移すことで、第1のクラスタにおいて業務処理を行っている第1の実行ノードに影響を与えることなく、当該コンテナを動作させることができる。
なお、上記アップデート部は、上記第1の実行ノードと上記特定の実行ノードとが上記第2の管理ノードにおける管理下から上記第1の管理ノードにおける管理下に移されたことに基づいて、上記第2の管理ノードのアップデートと、上記所定の実行ノードのアップデートとを実行するように上記第2の管理ノードに指示し、上記移管部は、上記所定の実行ノードがアップデートされたことに基づいて、上記所定の実行ノードを、上記第2の管理ノードの管理下から上記第1の管理ノードの管理下に移すように、上記第1の管理ノードおよび上記第2の管理ノードに指示するようにしてもよい。
上記構成によれば、所定の実行ノードを効率よくアップデートすることができる。
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
「A、B、およびCのうちの少なくとも1つ」という形式におけるリストに含まれる項目は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)または(A、B、およびC)を意味することができると理解されたい。同様に、「A、B、またはCのうちの少なくとも1つ」の形式においてリストされた項目は、(A)、(B)、(C)、(AおよびB)、(AおよびC)、(BおよびC)または(A、B、およびC)を意味することができる。
110……クラスタ管理サーバ(アップデート装置)、120……クラスタ、130……ロードバランサ。
Claims (7)
- ロードバランサにより振り分けられた業務処理を実行可能な第1の実行ノードと前記第1の実行ノードを管理する第1の管理ノードとを含んで構成される第1のクラスタと、前記ロードバランサにより振り分けられた業務処理を実行可能な第2の実行ノードと前記第2の実行ノードを管理する第2の管理ノードとを含んで構成される第2のクラスタと、をアップデートするアップデート装置であって、
前記ロードバランサに対して、前記第1のクラスタへの振り分けを停止するように指示する通信制御部と、
前記第1の実行ノードを、前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示する移管部と、
前記第1の実行ノードが前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移されたことに基づいて、前記第1の管理ノードをアップデートするように前記第1の管理ノードに指示するアップデート部と、
を備えるアップデート装置。 - 前記第1の実行ノードには、前記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられ、
前記第2の管理ノードは、前記コンテナを、前記第2の実行ノードに移し、
前記移管部は、前記第1の管理ノードがアップデートされたことに基づいて、前記コンテナが前記第2の実行ノードに移された後の前記第1の実行ノードを、前記第2の管理ノードの管理下から前記第1の管理ノードの管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示し、
前記アップデート部は、前記第2の管理ノードにおける管理下から前記第1の管理ノードにおける管理下に前記第1の実行ノードが移されたことに基づいて、前記第1の実行ノードをアップデートするように前記第1の管理ノードに指示する、
請求項1に記載のアップデート装置。 - 前記移管部は、前記第1の実行ノードがアップデートされたことに基づいて、前記第1の実行ノードを、前記第1の管理ノードの管理下から前記第2の管理ノードの管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示し、
前記第2の管理ノードは、前記第1の実行ノードが前記第2の管理ノードの管理下に移されたことに基づいて、前記コンテナを前記第1の実行ノードに移し、
前記移管部は、前記第1の実行ノードに前記コンテナが移されたことに基づいて、前記第1の実行ノードと前記第2の実行ノードとを、前記第2の管理ノードの管理下から前記第1の管理ノードの管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示する、
請求項2に記載のアップデート装置。 - 前記第2の実行ノードには、前記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられている特定の実行ノードと、前記ロードバランサにより振り分けられた業務処理を行う業務アプリケーションを動作させるコンテナが設けられていない所定の実行ノードとが含まれ、
前記移管部は、前記コンテナを、前記第2の実行ノードのうちの前記所定の実行ノードに移す、
請求項2に記載のアップデート装置。 - 前記移管部は、前記第1の実行ノードがアップデートされたことに基づいて、前記第1の実行ノードを、前記第1の管理ノードの管理下から前記第2の管理ノードの管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示し、
前記第2の管理ノードは、前記第1の実行ノードが前記第2の管理ノードの管理下に移されたことに基づいて、前記コンテナを前記第1の実行ノードに移し、
前記移管部は、前記第1の実行ノードに前記コンテナが移されたことに基づいて、前記第1の実行ノードと前記特定の実行ノードと前記所定の実行ノードとを、前記第2の管理ノードの管理下から前記第1の管理ノードの管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示する、
請求項4に記載のアップデート装置。 - ロードバランサにより振り分けられた業務処理を実行可能な第1の実行ノードと前記第1の実行ノードを管理する第1の管理ノードとを含んで構成される第1のクラスタと、前記ロードバランサにより振り分けられた業務処理を実行可能な第2の実行ノードと前記第2の実行ノードを管理する第2の管理ノードとを含んで構成される第2のクラスタと、をアップデートするアップデート方法であって、
通信制御部が、前記ロードバランサに対して、前記第1のクラスタへの振り分けを停止するように指示することと、
移管部が、前記第1の実行ノードを、前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示することと、
アップデート部が、前記第1の実行ノードが前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移されたことに基づいて、前記第1の管理ノードをアップデートするように前記第1の管理ノードに指示することと、
を含むアップデート方法。 - ロードバランサにより振り分けられた業務処理を実行可能な第1の実行ノードと前記第1の実行ノードを管理する第1の管理ノードとを含んで構成される第1のクラスタと、前記ロードバランサにより振り分けられた業務処理を実行可能な第2の実行ノードと前記第2の実行ノードを管理する第2の管理ノードとを含んで構成される第2のクラスタと、をアップデートするためのプログラムであって、
前記ロードバランサに対して、前記第1のクラスタへの振り分けを停止するように指示する通信制御部と、
前記第1の実行ノードを、前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移すように、前記第1の管理ノードおよび前記第2の管理ノードに指示する移管部と、
前記第1の実行ノードが前記第1の管理ノードにおける管理下から前記第2の管理ノードにおける管理下に移されたことに基づいて、前記第1の管理ノードをアップデートするように前記第1の管理ノードに指示するアップデート部と、
してコンピュータを機能させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021077166A JP7240439B2 (ja) | 2021-04-30 | 2021-04-30 | アップデート装置、アップデート方法、およびプログラム |
US17/689,499 US11977876B2 (en) | 2021-04-30 | 2022-03-08 | Update device, update method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021077166A JP7240439B2 (ja) | 2021-04-30 | 2021-04-30 | アップデート装置、アップデート方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022170887A JP2022170887A (ja) | 2022-11-11 |
JP7240439B2 true JP7240439B2 (ja) | 2023-03-15 |
Family
ID=83808466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021077166A Active JP7240439B2 (ja) | 2021-04-30 | 2021-04-30 | アップデート装置、アップデート方法、およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11977876B2 (ja) |
JP (1) | JP7240439B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230171A (ja) | 2008-03-19 | 2009-10-08 | Fujitsu Ltd | アップデート管理プログラム、管理ノード、アップデート管理方法、およびクラスタシステム |
JP2017004502A (ja) | 2015-06-15 | 2017-01-05 | 株式会社リコー | 情報システムおよびアップデート方法 |
JP2017529628A (ja) | 2014-09-24 | 2017-10-05 | オラクル・インターナショナル・コーポレイション | マルチテナントアプリケーションサーバ環境においてパッチングをサポートするためのシステムおよび方法 |
CN109873714A (zh) | 2019-01-04 | 2019-06-11 | 平安科技(深圳)有限公司 | 云计算节点配置更新方法及终端设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7526534B2 (en) * | 2004-07-16 | 2009-04-28 | Cassatt Corporation | Unified system services layer for a distributed processing system |
US8370514B2 (en) * | 2005-04-28 | 2013-02-05 | DISH Digital L.L.C. | System and method of minimizing network bandwidth retrieved from an external network |
US10177994B2 (en) * | 2014-08-13 | 2019-01-08 | Microsoft Technology Licensing, Llc | Fault tolerant federation of computing clusters |
US11316775B2 (en) * | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Maintaining coherency in distributed operating systems for network devices |
US10237346B2 (en) * | 2017-02-08 | 2019-03-19 | Vmware, Inc. | Maintaining partition-tolerant distributed metadata |
US10341438B2 (en) * | 2017-03-17 | 2019-07-02 | Verizon Patent ad Licensing Inc. | Deploying and managing containers to provide a highly available distributed file system |
CN110716788B (zh) * | 2018-07-13 | 2022-07-26 | 华为技术有限公司 | 管理虚拟化资源的方法和装置 |
JP2020027530A (ja) | 2018-08-16 | 2020-02-20 | 富士通株式会社 | 管理装置、管理プログラムおよび情報処理システム |
KR102147310B1 (ko) * | 2018-09-05 | 2020-10-14 | 주식회사 나눔기술 | 컨테이너 클러스터 기반의 무중단 소프트웨어 업데이트 시스템 |
US20210157655A1 (en) * | 2019-11-25 | 2021-05-27 | International Business Machines Corporation | Container load balancing and availability |
US11336567B2 (en) * | 2020-04-20 | 2022-05-17 | Cisco Technology, Inc. | Service aware virtual private network for optimized forwarding in cloud native environment |
-
2021
- 2021-04-30 JP JP2021077166A patent/JP7240439B2/ja active Active
-
2022
- 2022-03-08 US US17/689,499 patent/US11977876B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230171A (ja) | 2008-03-19 | 2009-10-08 | Fujitsu Ltd | アップデート管理プログラム、管理ノード、アップデート管理方法、およびクラスタシステム |
JP2017529628A (ja) | 2014-09-24 | 2017-10-05 | オラクル・インターナショナル・コーポレイション | マルチテナントアプリケーションサーバ環境においてパッチングをサポートするためのシステムおよび方法 |
JP2017004502A (ja) | 2015-06-15 | 2017-01-05 | 株式会社リコー | 情報システムおよびアップデート方法 |
CN109873714A (zh) | 2019-01-04 | 2019-06-11 | 平安科技(深圳)有限公司 | 云计算节点配置更新方法及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2022170887A (ja) | 2022-11-11 |
US20220350589A1 (en) | 2022-11-03 |
US11977876B2 (en) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11074143B2 (en) | Data backup and disaster recovery between environments | |
US10503612B1 (en) | Application migration between environments | |
US11663085B2 (en) | Application backup and management | |
US8904139B2 (en) | Migrating virtual machines across sites | |
US10628273B2 (en) | Node system, server apparatus, scaling control method, and program | |
US9075659B2 (en) | Task allocation in a computer network | |
CN101118521B (zh) | 跨越多个逻辑分区分布虚拟输入/输出操作的系统和方法 | |
CN112099918A (zh) | 容器化环境中的集群的实时迁移 | |
US20210019162A1 (en) | Enhanced migration of clusters based on data accessibility | |
US20120278574A1 (en) | Method of constructing replication environment and storage system | |
US9424096B2 (en) | Task allocation in a computer network | |
CN110720091A (zh) | 用于与托管的应用/虚拟网络功能(vnf)协调基础设施升级的方法 | |
US20100131728A1 (en) | Computer-readable recording medium storing data migration program, data migration method, and data migration apparatus | |
US20160103744A1 (en) | System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines | |
CN110413369B (zh) | 用于虚拟化环境中的备份的系统和方法 | |
US10887382B2 (en) | Methods, apparatuses and systems for cloud-based disaster recovery | |
JP7240439B2 (ja) | アップデート装置、アップデート方法、およびプログラム | |
US11467924B2 (en) | Instant recovery of databases | |
US7802253B2 (en) | System for session management of resources and tasks having records in the lookup table for the session | |
JP6254963B2 (ja) | 分散処理システム、および、分散処理方法 | |
US10929168B2 (en) | Enhanced data storage and versioning of virtual nodes in a data processing environment | |
WO2018173300A1 (ja) | I/o制御方法およびi/o制御システム | |
US11347675B2 (en) | System and method for dynamically configuring storage mapping | |
US20240061698A1 (en) | Managing the assignment of virtual machines to non-uniform memory access nodes | |
WO2020145242A1 (ja) | ネットワーク機能仮想化システム及びオペレーティングシステム更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220118 |
|
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: 20230214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230303 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7240439 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |