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