(57)【要約】【課題】コンテナ環境において管理状態等を各サーバ資源がブロックチェーンとして保持することで、中央管理システムを使用せずに、サーバ資源に障害が発生した際、当該サーバ資源上で稼働していたコンテナの再配置先を決定し、再配置することでコンテナ環境を復旧する。【解決手段】サーバ資源S1〜S3には、一つのOS環境に独立したサーバと同様の振る舞いをする複数の区画（コンテナ）が確保されている。各サーバ資源Sには、各コンテナC1〜C5の管理状態や障害情報のトランザクションをブロックチェーンで管理するデータベースDB1〜DB3が設けられている。各サーバ資源S上で動作する各エージェントE1〜E3は他のサーバ資源の死活を監視し、いずれかのサーバ資源に障害が発生すると管理配下のブロックチェーンに基づいてコンテナ環境の復旧処理を実行し、当該復旧処理に関する情報を全てのブロックチェーンに反映して一貫性を持たせる。【選択図】図１
2018156465.tif 000002
【特許請求の範囲】
【請求項１】
ブロックチェーンによる分散型コンテナ最適配置システムにおいて、
コンテナ管理ソフトウェアが稼働する複数のサーバ資源と、
各サーバ資源においてコンテナ管理のトランザクションを登録するブロックをチェーン状につなげて管理するブロックチェーンと、
各サーバ資源において前記ブロックチェーンを管理するエージェントとを具備し、
前記エージェントが、
他のサーバ資源の死活を監視し、いずれかのサーバ資源に障害が発生したことを検知すると管理配下のブロックチェーンに基づいてコンテナ環境の復旧処理を実行する手段と、
前記障害に関する情報を全てのブロックチェーンに反映して一貫性を持たせる手段とを具備したことを特徴とする分散型コンテナ最適配置システム。
【請求項２】
前記サーバ資源に障害が発生したこと検知したエージェントが、
障害情報および管理配下のブロックチェーン末尾のブロックに関して計算したハッシュ値を登録内容とする新規ブロックを作成して前記ブロックチェーン末尾に追加し、
ネットワーク上の各サーバ資源のエージェントに対して前記新規ブロックの追加を通知し、
前記新規ブロックの追加を通知されたエージェントは、前記新規ブロックを管理配下のブロックチェーンの末尾に追加することを特徴とする請求項１に記載の分散型コンテナ最適配置システム。
【請求項３】
前記サーバ資源に障害が発生したこと検知したエージェントが、
管理配下のブロックチェーンを参照してコンテナを配置するサーバ資源を決定し、
前記決定したサーバ資源に対してコンテナ作成を要求し、
前記コンテナ作成を要求されたサーバ資源が、
各コンテナのイメージに基づいて前記要求されたコンテナを作成し、
前記コンテナ作成を要求したサーバ資源にコンテナ作成の完了を通知し、
前記サーバ資源に障害が発生したこと検知したエージェントがさらに、
前記コンテナ作成の完了通知を受信すると、当該コンテナ作成のトランザクションおよび管理配下のブロックチェーン末尾のブロックに関して計算したハッシュ値を登録内容とする新規ブロックを前記ブロックチェーン末尾に追加し、
前記新規ブロックの追加を各サーバ資源の他のエージェントへ通知し、
前記他のエージェントは、前記新規ブロックを管理配下のブロックチェーンの末尾に追加することを特徴とする請求項２に記載の分散型コンテナ最適配置システム。
【請求項４】
ブロックチェーンによる分散型コンテナ最適配置システムのコンテナ復旧方法において、
コンテナ管理ソフトウェアが稼働する複数のサーバ資源が、コンテナ管理のトランザクションを登録するブロックをチェーン状につなげて管理するブロックチェーンおよびエージェントを具備し、
前記エージェントが、
他のサーバ資源の死活を監視し、
いずれかのサーバ資源に障害が発生したことを検知すると管理配下のブロックチェーンに基づいてコンテナ環境の復旧処理を実行し、
前記復旧処理に関する情報を全てのブロックチェーンに反映して一貫性を持たせることを特徴とする分散型コンテナ最適配置システムのコンテナ復旧方法。
【請求項５】
前記サーバ資源に障害が発生したこと検知したエージェントが、障害情報および管理配下のブロックチェーン末尾のブロックに関して計算したハッシュ値を登録内容とする新規ブロックを前記ブロックチェーン末尾に追加し、
ネットワーク上の各サーバ資源のエージェントに対して前記新規ブロックの追加を通知し、
前記新規ブロックの追加を通知されたエージェントは、前記新規ブロックを管理配下のブロックチェーンの末尾に追加することを特徴とする請求項４に記載の分散型コンテナ最適配置システムのコンテナ復旧方法。
【請求項６】
前記サーバ資源に障害が発生したこと検知したエージェントが、
管理配下のブロックチェーンを参照してコンテナを再配置するサーバ資源を決定し、
前記決定したサーバ資源に対してコンテナ作成を要求し、
前記コンテナ作成を要求されたサーバ資源が、
各コンテナのイメージに基づいて前記要求されたコンテナを作成し、
前記コンテナ作成を要求したサーバ資源にコンテナ作成の完了を通知し、
前記サーバ資源に障害が発生したこと検知したエージェントがさらに、
前記コンテナ作成の完了通知を受信すると、当該コンテナ作成のトランザクションおよび管理配下のブロックチェーン末尾のブロックに関して計算したハッシュ値を登録内容とする新規ブロックを前記ブロックチェーン末尾に追加し、
前記新規ブロックの追加を各サーバ資源の他のエージェントへ通知し、
前記他のエージェントは、前記新規ブロックを管理配下のブロックチェーンの末尾に追加することを特徴とする請求項５に記載の分散型コンテナ最適配置システムのコンテナ復旧方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型コンテナ最適配置システムおよびそのコンテナ復旧方法に係り、特に、コンテナ環境において各サーバ資源がコンテナの管理状態や障害情報等のトランザクションをブロックチェーンとして保持し、これを参照することで、中央管理システムを使用することなく、サーバ資源に障害発生時に短時間でコンテナ環境を復旧する分散型コンテナ最適配置システムおよびそのコンテナ復旧方法に関する。
【背景技術】
【０００２】
特許文献１には、仮想マシンイメージ生成装置および仮想マシン実現装置により、正常稼働時のイメージを生成し、また障害発生時には仮想マシン実現装置が正常稼働時のイメージを用いてサービスを復旧させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表2013-529799号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１によれば仮想マシンを元の状態に戻すことでサービスの復旧が可能であるが、下記の２つの課題が見られる。
【０００５】
第１に、制御装置の障害時や切り替え発生時あるいはメンテナンス時には仮想マシンの復旧が実施不可能である。
【０００６】
第２に、サーバ資源に障害が発生した際、当該サーバ資源上で稼働していたコンテナの配置先を決定してコンテナを再作成する処理に時間がかかる可能性があるのみならず、サーバ資源の規模を柔軟に増加させることが困難である。
【０００７】
本発明の目的は、上記の技術課題を解決し、コンテナ環境において管理状態、障害情報を各サーバ資源がブロックチェーンとして保持することで、中央管理システムを使用することなく、特にサーバ資源の障害発生時に当該サーバ資源上で稼働していたコンテナの再配置先を決定してコンテナを再作成する処理を短時間で実現できる分散型コンテナ最適配置システムおよびそのコンテナ復旧方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するために、本発明は、ブロックチェーンによる分散型コンテナ最適配置システムにおいて、以下の構成を具備した点に特徴がある。
【０００９】
(1) コンテナ管理ソフトウェアが稼働する複数のサーバ資源と、各サーバ資源において、コンテナ管理のトランザクションを登録するブロックをチェーン状につなげて管理するブロックチェーンと、各サーバ資源において前記ブロックチェーンを管理するエージェントとを具備し、前記エージェントが、他のサーバ資源の死活を監視し、いずれかのサーバ資源に障害が発生したことを検知すると管理配下のブロックチェーンに基づいてコンテナの復旧処理を実行する手段と、前記障害に関する情報を全てのブロックチェーンに反映して一貫性を持たせる手段とを具備した。
【００１０】
(2) サーバ資源に障害が発生したこと検知したエージェントが、障害情報および管理配下のブロックチェーン末尾のブロックに関して計算したハッシュ値を登録内容とする新規ブロックを作成して前記ブロックチェーン末尾に追加し、ネットワーク上の各サーバ資源のエージェントに対して前記新規ブロックの追加を通知し、前記新規ブロックの追加を通知されたエージェントは、前記新規ブロックを管理配下のブロックチェーンの末尾に追加するようにした。
【００１１】
(3) サーバ資源に障害が発生したこと検知したエージェントが、管理配下のブロックチェーンを参照してコンテナの再配置先となるサーバ資源を決定し、前記決定したサーバ資源に対してコンテナ作成を要求し、
【００１２】
前記コンテナ作成を要求されたサーバ資源がコンテナ作成して、前記コンテナ作成を要求したサーバ資源にコンテナ作成の完了を通知し、
【００１３】
前記サーバ資源に障害が発生したこと検知したエージェントがさらに、前記コンテナ作成の完了通知を受信すると、当該コンテナ作成のトランザクションおよび管理配下のブロックチェーン末尾のブロックに関して計算したハッシュ値を登録内容とする新規ブロックを前記ブロックチェーン末尾に追加し、
【００１４】
前記新規ブロックの追加を各サーバ資源の他のエージェントへ通知し、前記他のエージェントは、前記新規ブロックを管理配下のブロックチェーンの末尾に追加するようにした。
【発明の効果】
【００１５】
本発明によれば、以下のような効果が達成される。
【００１６】
(1) 複数のコンテナが複数のサーバ資源に分散配置されて稼働するコンテナ環境において、その管理状態や障害情報が各サーバ資源上でブロックチェーンにより管理されるので、中央管理システムを使用することなく、特にサーバ資源に障害が発生した際でも、当該サーバ資源上で稼働していたコンテナの再配置先を決定してコンテナを再配置する処理を短時間で実現できるようになる。
【００１７】
(2) 複数のサーバ資源に障害が発生した場合でも、生存しているサーバ資源からブロックチェーンの情報に基づいてコンテナの最適な再配置が可能になる。
【００１８】
(3) 従来は中央管理サーバの性能限界により管理可能なサーバ資源台数が制限されることがあったが、本発明によれば管理可能なサーバ資源の数を従来よりも多くできるようになる。
【００１９】
(4) 本発明によれば、定期的またはコンテナ作成時に各サーバ資源の情報を収集する必要がないため、情報収集にかかるリソースの削減およびコンテナ作成の短時間化が見込まれる。
【００２０】
(5) コンテナ環境の管理状態や障害情報が各サーバ資源上でブロックチェーンにより管理されるので、他のサーバ資源に障害が発生したことを検知したサーバ資源が管理配下のブロックチェーンを更新するだけで、これが他のサーバ資源のブロックチェーンにも反映され、各サーバ資源は障害情報を短時間で共有できるようになる。
【００２１】
(6) コンテナ環境の管理状態や障害情報が各サーバ資源上でブロックチェーンにより管理されるので、他のサーバ資源に障害が発生したことを検知したサーバ資源は、管理配下のブロックチェーンを参照すればコンテナの最適な再配置先を認識できる。したがって、他のサーバ資源に障害が発生したことを検知したサーバ資源の如何を問わず短時間でコンテナ環境を復旧できるようになる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るブロックチェーンによる分散型コンテナ最適配置システムの構成を示したブロック図である。
【図２】各サーバ資源のデータベースが管理するブロックチェーンの構成を模式的に示した図である。
【図３】サーバ資源のエージェントが他のサーバ資源の障害を検知してブロックを作成し、管理配下のブロックチェーンに反映し、更には全てのブロックチェーンに反映させて一貫性を持たせる手順を示したシーケンスである。
【図４】障害の発生したサーバ資源上で稼働していたコンテナを他のサーバ資源上に再配置してコンテナ環境を復旧する手順を示したシーケンスである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は、本発明の一実施形態に係るブロックチェーンによる分散型コンテナ最適配置システムの構成を示したブロック図であり、ここでは、本発明の説明に不要な構成は図示が省略されている。
【００２４】
ネットワークNWには、IP到達性のある複数のサーバ資源S（S1，S2，S3）が接続されている。各サーバ資源Sには、コンテナ管理ソフトウェアにより、一つのOS環境に独立したサーバと同様の振る舞いをする複数の区画（コンテナ）が確保され、コンテナごとに異なるOS環境を実現されている。各コンテナCには、個別のユーザーやサービスが割り当てられる。
【００２５】
また、本実施形態では各サーバ資源S1，S2，S3に、各コンテナC（C1，C2，C3，C4，C5）の管理状態や障害情報のトランザクションをブロックチェーンで管理するデータベースDB（DB1，DB2，DB3）が、それぞれ設けられている。ブロックチェーンに対するブロックの追加、削除、変更、更新およびコンテナの制御は、各サーバ資源S1，S2，S3上で動作する各エージェントE（E1，E2，E3）により管理される。
【００２６】
図２は、各サーバ資源SのDBが管理するブロックチェーンの構成を模式的に示した図であり、複数のブロックB（B1，B2，B3）を時系列に連結して構成され、全てのDBが同一内容のブロックチェーンを管理する。
【００２７】
各ブロックBでは、コンテナCnの作成情報および管理配下のサーバ資源情報が直前のブロックBn-1のハッシュ値と共に保持されている。各エージェントEが新規にブロックBnを作成する際は、直前のブロックBn-1のハッシュ値を計算し、その結果を新規に作成するブロック内に追加する。ブロックBnの作成完了後、他の全てのエージェントEへの通知を実施し、通知を受け取ったエージェントEはブロックチェーンを更新する。これにより、全てのDBが一貫性のある情報、同一の情報を保持できるようになる。
【００２８】
図３は、サーバ資源Sに障害が発生し、これを復旧する手順を示したシーケンスであり、本実施形態では、各エージェントEがラウンドロビンで死活監視担当の役割を担う。
【００２９】
時刻t1では、エージェントE1が死活監視を実施し、時刻t2では、エージェントE2，E3が生存通知をそれぞれ送信する。時刻t3では、エージェントE2が死活監視を実施し、時刻t4では、エージェントE1，E3がそれぞれ生存通知を送信する。
【００３０】
その後、時刻t5でサーバ資源S1にハードウェア障害が発生して疎通不可となった場合、時刻t6では、死活監視を次に担当するエージェントE3が死活監視を実施する。しかしながら、時刻t7では、エージェントE2からの生存通知のみが送信され、エージェントE1からは生存通知が送信されない。
【００３１】
死活監視を担当したエージェントE3は、サーバ資源S1から一定期間生存通知を受信できない場合、当該サーバ資源S1に障害が発生していると判断し、時刻t8において復旧処理を自動実行する。
【００３２】
本実施形態では、サーバ資源S3のDB3に蓄積されている管理配下のブロックチェーンへ、サーバ資源S1が障害状況である旨の情報を内容とするブロックを追加する処理と、サーバ資源S1上で動作していたコンテナCを別のサーバ資源S上に再配置してコンテナ環境を復旧する処理とが並行して実施される。
【００３３】
以下、前記ブロック追加処理については図３を引き続き参照して説明し、前記コンテナの再配置処理については図４を参照して説明する。
【００３４】
ブロック追加処理では、時刻t8において、死活監視を担当したエージェントE3が、サーバ資源S1が障害状態である旨の情報、およびブロックチェーン末端のブロックのハッシュ値を計算する。そして、これらの情報を内容とする新規ブロックを作成し、管理配下のDB3に記憶されているブロックチェーンの末尾に連結する。
【００３５】
新規ブロックの追加が完了すると、時刻t9では、エージェントE3が自身を除く全てのエージェントEへブロック追加情報を通知する。時刻t10では、前記ブロック追加情報を通知された各エージェントEが、管理階下のDBに蓄積されている各ブロックチェーンを更新する。
【００３６】
また、前記コンテナの再配置処理（コンテナ環境の復旧処理）では、図４の時刻t21において、エージェントE3がDB3に蓄積されているブロックチェーンを確認し、サーバ資源S1に障害が発生した時に当該サーバ資源S1上で動作していたコンテナ一覧を取得することで再作成すべきコンテナを判別する。さらに、コンテナ制御情報に基づいて、最もリソースが空いているサーバ資源Sを前記再作成するコンテナの再配置先として決定する。
【００３７】
ここで、例えばサーバ資源S2上のコンテナ数が最少であるために最もリソースが空いていると判断されると、エージェントE3は、時刻t22においてサーバ資源S2へ、前記サーバ資源S1上で動作していたコンテナの作成を要求する。サーバ資源S2は、このコンテナ作成要求に応答して、当該コンテナのイメージに基づいて当該コンテナを作成する。
【００３８】
コンテナ作成が完了すると、時刻t23において、コンテナ作成完了通知をコンテナ作成の要求元であるエージェントE3へ送信する。コンテナ作成完了通知を受信したエージェントE3は、時刻t24において、サーバ資源S2上にコンテナを再配置した旨の情報を作成し、さらにブロックチェーン末端のブロックのハッシュ値を計算する。そして、これらを登録内容とする新規ブロックを作成し、管理配下のDB3に記憶されているブロックチェーンの末尾に追加する。
【００３９】
その後、時刻t25において、エージェントE3が自身を除く全てのエージェントEへブロック追加情報を通知する。通知を受けた各エージェントEは、時刻t26において、管理配下のDBに記憶されているブロックチェーンをそれぞれ更新する。すなわち、通知された新規ブロックBをブロックチェーンの末尾に追加する。
【００４０】
本実施形態によれば、複数のコンテナが複数のサーバ資源に分散配置されて稼働するコンテナ環境において、その管理状態や障害情報が各サーバ資源上でブロックチェーンにより管理されるので、中央管理システムを使用することなく、特にサーバ資源に障害が発生した際でも、当該サーバ資源上で稼働していたコンテナの再配置先を決定してコンテナを再配置する処理を短時間で実現できるようになる。
【００４１】
また、本実施形態によれば、複数のサーバ資源に障害が発生した場合でも、生存しているサーバ資源からブロックチェーンの情報に基づいてコンテナの最適な再配置が可能になる。
【００４２】
また、従来は中央管理サーバの性能限界により管理可能なサーバ資源台数が制限されることがあったが、本実施形態によれば管理機能が各サーバ資源に分散されて負荷分散されるので、管理可能なサーバ資源の数を従来よりも多くできるようになる。
【００４３】
さらに、本実施形態によれば、定期的またはコンテナ作成時に各サーバ資源の情報を収集する必要がないので、情報収集にかかるリソースの削減およびコンテナ作成の短時間化が見込まれる。
【００４４】
さらに、コンテナ環境の管理状態や障害情報が各サーバ資源上でブロックチェーンにより管理されるので、他のサーバ資源に障害が発生したことを検知したサーバ資源が管理配下のブロックチェーンを更新するだけで、これが他のサーバ資源のブロックチェーンにも反映され、各サーバ資源は障害情報を短時間で共有できるようになる。
【００４５】
さらに、コンテナ環境の管理状態や障害情報が各サーバ資源上でブロックチェーンにより管理されるので、他のサーバ資源に障害が発生したことを検知したサーバ資源は、管理配下のブロックチェーンを参照すればコンテナの最適な再配置先を認識できる。したがって、他のサーバ資源に障害が発生したことを検知したサーバ資源の如何を問わず、短時間でコンテナ環境を復旧できるようになる。
【００４６】
なお、上記の実施形態では、本発明をサーバ資源の一つに障害が発生した際のコンテナの復旧を例にして説明したが、本発明はこれのみに限定されるものではなく、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【符号の説明】
【００４７】
B（B1，B2，B3）…ブロック，C（C1，C2，C3，C4，C5）…コンテナ，DB（DB1，DB2，DB3）…データベース，E（E1，E2，E3）…エージェント，NW…ネットワーク，S（S1，S2，S3）…サーバ資源
【図１】
2018156465.tif 000003
【図２】
2018156465.tif 000004
【図３】
2018156465.tif 000005
【図４】
2018156465.tif 000006