(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024090917
(43)【公開日】2024-07-04
(54)【発明の名称】データ処理装置及びそのプログラム
(51)【国際特許分類】
G06F 11/14 20060101AFI20240627BHJP
G06F 9/455 20180101ALI20240627BHJP
【FI】
G06F11/14 658
G06F9/455 150
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022207104
(22)【出願日】2022-12-23
(71)【出願人】
【識別番号】000003562
【氏名又は名称】東芝テック株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】石田 武永
(57)【要約】
【課題】販促効果をより向上するのに有効な表示を情報端末で行えるようにする。
【解決手段】データ処理装置は、取得部と、保存部と、インストール制御部と、を備える。取得部は、マイクロサービスをインストールする際に、マイクロサービスが生成したデータを記憶するために使用する、第1の記憶装置における記憶先を示す記憶先情報を取得する。保存部は、取得部が取得した記憶先情報を保存する。インストール制御部は、記憶先情報を取得したマイクロサービスをインストールする。
【選択図】
図8
【特許請求の範囲】
【請求項1】
マイクロサービスをインストールする際に、前記マイクロサービスが生成したデータを記憶するために使用する、第1の記憶装置における記憶先を示す記憶先情報を取得する取得部と、
前記取得部が取得した前記記憶先情報を保存する保存部と、
前記記憶先情報を取得した前記マイクロサービスをインストールするインストール制御部と、
を具備する、データ処理装置。
【請求項2】
前記保存部に保存された前記記憶先情報に基づいて、前記第1の記憶装置に記憶されている前記マイクロサービスが生成したデータを、前記第1の記憶装置とは物理的に異なる第2の記憶装置にバックアップするバックアップ部、
を更に具備する、請求項1に記載のデータ処理装置。
【請求項3】
前記保存部に保存された前記記憶先情報に基づいて、前記第2の記憶装置に記憶されているデータを、前記第1の記憶装置にリカバリするリカバリ部、
を更に具備する、請求項2に記載のデータ処理装置。
【請求項4】
前記取得部は、前記マイクロサービスのインストール元のファイルから前記記憶先情報を抽出する、
請求項1に記載のデータ処理装置。
【請求項5】
前記データ処理装置は、前記第1の記憶装置を更に具備し、クラウドと通信を行うエッジデバイスである、
請求項1乃至4の何れか1項に記載のデータ処理装置。
【請求項6】
マイクロサービスを動作させるコンピュータに、
前記マイクロサービスをインストールする際に、
前記マイクロサービスが生成したデータを記憶するために使用する、第1の記憶装置における記憶先を示す記憶先情報を取得させる機能と、
取得された前記記憶先情報をメモリに保存させる機能と、
前記マイクロサービスをインストールさせる機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、データ処理装置及びコンピュータを当該データ処理装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
近年、仮想化技術としてコンテナ技術が知られている。
【0003】
コンテナとは、1つの仮想的な領域をOS(Operating System)上に設けて、アプリケーションとその実行環境を、その中で実行・動作させる仕組みとなる。また、このコンテナ内のアプリケーションの集合としてマイクロサービスが提供される。このマイクロサービスとは別の、OS上で動作している別アプリケーションからは、このコンテナ内のアプリケーションによるマイクロサービスへ直接アクセスすることはできない。
【0004】
マイクロサービスのコンテナ内のアプリケーションは、仮想ボリューム内つまりメモリ上にデータ保存しているため、マイクロサービス内のコンテナが削除されると、保存されていたデータも一緒に削除される。そこで、Docker(商標)等のコンテナ管理ツールは、コンテナ内の仮想ボリュームに保存しているデータを、ハードウェア上のストレージや外部ストレージへ保存する、データ永続化機能を提供している。このとき、データ永続化の指定先は、コンテナ管理ツールがコンテナ内のアプリケーションをデプロイ(インストール)するときに設定され、このデプロイ時の設定のみで管理される情報となっている。
【0005】
また、マイクロサービスを、オンプレミスのデータ処理装置であるエッジデバイス上で動作させて、各種のサービスを提供する運用形態も知られている。オンプレミスのエッジデバイス上で、マイクロサービスを動作させる場合、データ永続化の指定先は、そのエッジデバイス内のストレージが指定される。このように、エッジデバイス内のストレージをデータ永続化の指定先とすると、エッジデバイスのストレージ故障等により、永続化の指定先のデータが消失する可能性が有る。そのため、永続化の指定先に記憶されたデータのバックアップが求められる。
【0006】
データ永続化の指定先は、マイクロサービス(コンテナ)がデプロイされるときに指定される。そのため、エッジデバイスを制御する制御アプリケーションは、永続化の指定先を把握することができない。そのため、制御アプリケーションが、マイクロサービスが生成して永続化の指定先に保存したデータを正しくバックアップすることは困難である。また、永続化の指定先のデータを含めたストレージの全データを、別のストレージにバックアップしていたとしても、制御アプリケーションは、コンテナのデータ永続化の指定先がわからないため、バックアップしたデータからマイクロサービスのためのデータ復旧を行うことはできない。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明の実施形態が解決しようとする課題は、マイクロサービスが生成したデータの永続化先を把握することが可能なデータ処理装置及びそのプログラムを提供しようとするものである。
【課題を解決するための手段】
【0009】
一実施形態において、データ処理装置は、取得部と、保存部と、インストール制御部と、を備える。取得部は、マイクロサービスをインストールする際に、マイクロサービスが生成したデータを記憶するために使用する、第1の記憶装置における記憶先を示す記憶先情報を取得する。保存部は、取得部が取得した記憶先情報を保存する。インストール制御部は、記憶先情報を取得したマイクロサービスをインストールする。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態におけるデータ処理システムの全体構成図。
【
図2】データ処理装置の一実施形態としてのエッジデバイスの要部回路構成を示すブロック図。
【
図3】エッジデバイスにおけるメインメモリに保存されるマイクロサービス情報テーブルの主要なデータ構造を示す模式図。
【
図4】エッジデバイスにおける主要なソフトウェア構成を示す模式図。
【
図5】エッジデバイスの制御モジュールの主要な情報処理の手順を示す流れ図。
【
図6】マイクロサービスデプロイ処理の手順を示す流れ図。
【
図7】マイクロサービスデプロイ処理でのエッジデバイスにおける各ソフトウェア構成と各ストレージとの関係の一例を示す模式図。
【
図8】エッジデバイスに入力されるマイクロサービスパッケージの内容の一例を示す模式図。
【
図10】バックアップ処理でのエッジデバイスにおける各ソフトウェア構成と各ストレージとの関係の一例を示す模式図。
【
図12】リカバリ処理でのエッジデバイスにおける各ソフトウェア構成と各ストレージとの関係の一例を示す模式図。
【発明を実施するための形態】
【0011】
以下、データ処理装置の実施形態について、図面を用いて説明する。
【0012】
図1は、本発明の一実施形態におけるデータ処理システムの全体構成図である。本発明の一実施形態に係るデータ処理装置は、拠点B等のオンプレミスのエッジデバイス1として提供される。エッジデバイス1は、複数のIoT(Internet of Things)デバイス2及びデータストレージ3と、拠点B内のLAN(Local Area Network)4を介して接続されている。また、エッジデバイス1は、クラウド5と通信可能に構成され、クラウド5上のクラウドサーバ51やクラウドストレージ52からプログラムやデータをダウンロードしたり、クラウドサーバ51やクラウドストレージ52にデータをアップロードしたりすることができる。
【0013】
例えば、拠点Bが工場であれば、IoTデバイス2は工場内の機械の動作を検知するセンサであることができ、データストレージ3は、IoTデバイス2が取得したデータを蓄積することができる。この場合、エッジデバイス1は、IoTデバイス2が取得したデータを解析したり加工したりして、本社やデータ販売サービス会社等が運用するクラウドサーバ51やクラウドストレージ52にアップロードすることができる。また、拠点Bがスーパーマーケット等の店舗であれば、IoTデバイス2は店舗内のPOS(Point of Sales)端末であることができ、データストレージ3は、商品のコードや単価等を記載した商品マスタ等を記憶することができる。この場合、エッジデバイス1は、IoTデバイス2が取得した商品コードとデータストレージ3に記憶された商品マスタとにより売上を演算したり、その売上を解析したり加工したりして、本社等が運用するクラウドサーバ51やクラウドストレージ52にアップロードすることができる。
【0014】
図2は、エッジデバイス1の要部回路構成を示すブロック図である。エッジデバイス1は、プロセッサ11に、メインメモリ12、補助記憶デバイス13、入力部14、出力部15及び通信部16が接続される構成となっている。エッジデバイス1は、プロセッサ11、メインメモリ12及び補助記憶デバイス13によってコンピュータを構成する。
【0015】
プロセッサ11は、上記コンピュータの中枢部分に相当する。プロセッサ11は、OSやアプリケーションプログラムに従って、エッジデバイス1としての各種の機能を実現するべく各部を制御する。プロセッサ11は、例えばCPU(Central Processing Unit)である。
【0016】
メインメモリ12は、上記コンピュータの主記憶部分に相当する。メインメモリ12は、不揮発性のメモリ領域と揮発性のメモリ領域とを含む。メインメモリ12は、不揮発性のメモリ領域ではOS、アプリケーションプログラム、コンテナ化されたアプリケーションプログラムであるマイクロサービス、等を記憶する。メインメモリ12は、プロセッサ11が各部を制御するための処理を実行する上で必要なデータを不揮発性又は揮発性のメモリ領域で記憶する場合も有る。メインメモリ12は、不揮発性のメモリ領域の一部を、マイクロサービス情報テーブル121の作成領域としている。このマイクロサービス情報テーブル121は、メインメモリ12にデプロイ(インストール)されたマイクロサービスに関する情報を記憶するものであり、その詳細については後述する。また、メインメモリ12は、揮発性のメモリ領域を、プロセッサによってデータが適宜書き換えられるワークエリアとして使用する。例えば不揮発性のメモリ領域はROM(Read Only Memory)である。揮発性のメモリ領域はRAM(Random Access Memory)である。
【0017】
補助記憶デバイス13は、上記コンピュータの補助記憶部分に相当する。例えばEEPROM(登録商標)(Electric Erasable Programmable Read-Only Memory)、HDD(Hard Disk Drive)、或いはSSD(Solid State Drive)等が補助記憶デバイス13として使用される。補助記憶デバイス13は、プロセッサ11が各種の処理を行う上で使用するデータや、プロセッサ11での処理によって作成されたデータを保存する。補助記憶デバイス13は、上記のアプリケーションを記憶する場合も有る。この補助記憶デバイス13には、永続化先ストレージ131、バックアップストレージ132等が構成される。永続化先ストレージ131は、マイクロサービスが生成したデータを永続化するために、当該データを記憶する第1の記憶装置である。バックアップストレージ132は、永続化先ストレージ131に記憶されたデータのバックアップのために、そのデータをコピーして記憶する第2の記憶装置である。永続化先ストレージ131とバックアップストレージ132とは、互いに物理的に異なる記憶デバイス、例えば異なる物理ドライブに構成される。或いは、一方がSSDに構成され、他方がHDDに構成されることができる。
【0018】
入力部14は、キーボード、タッチパネル、マウス等のポインティングデバイス、等のユーザインタフェースである。更に、入力部14は、後述するようなマイクロサービスのデプロイに使用するマイクロサービスパッケージを記録したディスク媒体やメモリ媒体からマイクロサービスパッケージを読み出す読み取り装置を含んでも良い。また、出力部15は、ディスプレイ等のユーザインタフェースやプリンタ等の出力装置である。なお、エッジデバイス1は、これら入力部14及び出力部15の少なくとも一方を有さなくても良い。
【0019】
通信部16は、LAN4を介して接続される各部との間でデータの送信及び/又は受信を行う。また、通信部16は、クラウド5と通信を行い、クラウドサーバ51やクラウドストレージ52からアプリケーションプログラム、マイクロサービスパッケージ、データ、等をダウンロードしたり、データをアップロードしたりする。
【0020】
図3は、メインメモリ12に保存されるマイクロサービス情報テーブル121の主要なデータ構造を示す模式図である。マイクロサービス情報テーブル121は、エッジデバイス1にデプロイされたマイクロサービス毎に、マイクロサービスID、永続化先情報及びバックアップ先情報を記憶する。マイクロサービスIDは、マイクロサービスを識別するための一意の識別情報である。永続化先情報は、そのマイクロサービスが生成したデータを記憶するために使用する永続化先ストレージ131の永続化の指定先パスである。バックアップ先情報は、そのデータをバックアップするためのバックアップストレージ132の記憶先パスである。
【0021】
図4は、エッジデバイス1における主要なソフトウェア構成を示す模式図である。本実施形態においては、コンテナ技術により、それぞれのアプリケーションがコンテナ化されると共に、コンテナ管理ツールによりハードウェアリソースの管理がされている。
図4に示すソフトウェア構成は、エッジデバイス1のメインメモリ12に記憶されたプログラムをプロセッサ11が実行することで実現されている。
【0022】
図4に示されるように、エッジデバイス1には、OS171がインストールされている。更に、エッジデバイス1には、OS171上で動作するコンテナ管理ツール172がインストールされている。コンテナ管理ツール172は、Dcker等の、コンテナ環境の構築及びコンテナ環境におけるアプリケーションの実行を行うコンテナエンジンや、Kubernetes(商標)やk3s等の、コンテナ環境のハードウェアリソースを管理するオーケストレーションツールを含む。
【0023】
コンテナエンジンは、ハードウェアリソース等を仮想化することで論理的なコンテナ領域を形成する。そして、アプリケーションは、コンテナ環境での動作に用いるミドルウェア及びOSの一部(ライブラリ、設定、ファイルシステム、等)と一体的に構成されている。その結果、コンテナ化されたアプリケーションは、コンテナ領域で動作する。なお、このコンテナに構成されるOSは、エッジデバイスのOS171とは異なる種類のものであることができる。このようなアプリケーションとミドルウェア及びOSの一部とを一体的に構成することを、コンテナ化と称し、また、コンテナ化されたアプリケーションを、単にコンテナと称することも有る。このように、コンテナエンジンを導入することでコンテナ環境が構築され、アプリケーションをコンテナ化することで、コンテナ環境においてコンテナの実行が可能となる。
【0024】
オーケストレーションツールは、コンテナエンジンによって仮想化されたハードウェアリソースを管理する。詳細には、オーケストレーションツールは、コンテナ化されたアプリケーションが実行される環境として、クラスタと称される論理領域を構築する。クラスタには、アプリケーションの実行環境であるノードが1以上設けられる。ノードにおいては、1以上のコンテナが、ポッドという単位で管理される。ポッドは、1以上のコンテナ174により構成される。コンテナを用いてアプリケーションを開発する場合、一般的に、アプリケーションを機能毎に細分化して実装するマイクロサービスと称される手法が用いられる。オーケストレーションツールを用いると、マイクロサービスが各ポッドに分散して配置される。
【0025】
よって、このようにコンテナ管理ツール172が導入された環境においては、
図4に示すように、マイクロサービス173は、1以上のコンテナ174の集合として管理されることとなる。コンテナ化されたアプリケーションはポッドの単位で管理される。コンテナ管理ツール172は、マイクロサービス173が定められた処理を終える毎に、マイクロサービス173に、生成した処理済データを記録するデータファイルを永続化先ストレージ131に記憶させる。
【0026】
なお、オーケストレーションツールは、このように1つのエッジデバイス1のハードウェアリソースを用いてクラスタを構成するだけでなく、2以上の異なるデバイスのハードウェアリソースを用いて1以上のクラスタを構成することもできる。
【0027】
そして更に、本実施形態では、エッジデバイス1は、OS171上で動作するアプリケーションとして、制御モジュール175を有する。この制御モジュール175は、マイクロサービス173のデプロイ、永続化されたデータのバックアップ及びリカバリを制御する。
【0028】
以下、この制御モジュール175の動作を中心にして、エッジデバイス1の動作を説明する。
【0029】
図5は、制御モジュール175の主要な情報処理の手順を示す流れ図である。エッジデバイス1のプロセッサ11は、メインメモリ12にインストールされたデータ処理プログラムを実行することで、この制御モジュール175として機能する。
【0030】
先ず、制御モジュール175は、Act1として、マイクロサービスをデプロイ即ちインストールするか否か判断する。制御モジュール175は、例えば、エッジデバイス1の操作者による入力部14からのデプロイ指示(デプロイコマンド)の有無により、これを判断することができる。或いは、制御モジュール175は、通信部16により、クラウド5上のクラウドサーバ51や図示しない制御端末から、デプロイ指示を受信したか否かにより、これを判断することができる。
【0031】
マイクロサービスをデプロイすると判断すると、制御モジュール175は、Act2として、マイクロサービスデプロイ処理を実行する。このマイクロサービスデプロイ処理は、マイクロサービス173のデータ永続化の指定先を取得すると共に、コンテナ管理ツール172にマイクロサービス173をデプロイさせる処理である。以下、
図6乃至
図8を参照して、このマイクロサービスデプロイ処理を詳細に説明する。ここで、
図6は、このマイクロサービスデプロイ処理の手順を示す流れ図である。また、
図7は、このマイクロサービスデプロイ処理でのエッジデバイス1における各ソフトウェア構成と各ストレージとの関係の一例を示す模式図である。そして、
図8は、マイクロサービスパッケージ18の内容の一例を示す模式図である。
【0032】
(1)このマイクロサービスデプロイ処理においては、制御モジュール175は、先ず、Act21として、そのマイクロサービスのデータ永続化先を抽出する。具体的には、制御モジュール175は、デプロイするべきマイクロサービスのマイクロサービスパッケージ18から、そのマイクロサービスのデータを永続化する指定先である永続化先ストレージ131のパスを抽出する。マイクロサービスパッケージ18は、デプロイ指示と共に、入力部14から入力されることができる。或いは、制御モジュール175が、デプロイ指示で示されるクラウド5上のアドレスに基づいて、通信部16によりクラウドサーバ51又はクラウドストレージ52から、このマイクロサービスパッケージ18をダウンロードするようにしても良い。
【0033】
図8に示すように、マイクロサービスパッケージ18は、マイクロサービス173における各コンテナ174の元となるコンテナイメージオブジェクト181に加えて、設定ファイル182を含む。設定ファイル182は、そのマイクロサービスが使用するコンテナ、ネットワーク、ボリューム、再起動ポリシー、等のそれぞれの定義をYAML形式で記載したテキストファイルである。この設定ファイル182には、データ永続化の指定先パスの定義も記載されている。
図8の例では、指定先パス(Store Path)として、永続化先ストレージ131における「/tmp/storage」というフォルダが定義されている。コンテナ管理ツール172は、このマイクロサービスパッケージ18からマイクロサービスをデプロイする際に、設定ファイル182からこの指定先パスを抽出して、永続化先として管理する。
【0034】
本実施形態では、制御モジュール175は、コンテナ管理ツール172よりも前に、Act21において、このマイクロサービスパッケージ18の設定ファイル182からデータ永続化の指定先パスを抽出する。このように、制御モジュール175は、取得部として機能する。
【0035】
(2)そして、制御モジュール175は、Act22として、その抽出したデータ永続化の指定先パスを保存する。具体的には、制御モジュール175は、その抽出したデータ永続化の指定先パスを、マイクロサービス情報テーブル121に、そのマイクロサービスを特定する一意のマイクロサービスIDと紐付けて、永続化先情報として記憶させる。このように、マイクロサービス情報テーブル121は、保存部として機能する。
【0036】
(3)その後、制御モジュール175は、Act23として、コンテナ管理ツール172をコールする。即ち、制御モジュール175は、入力されたマイクロサービスパッケージ18をコンテナ管理ツール172に渡す。
【0037】
(4)なお、このマイクロサービスデプロイ処理によりマイクロサービスパッケージ18を受けたコンテナ管理ツール172は、そのマイクロサービスパッケージ18よりマイクロサービス173をデプロイ(インストール)することとなる。よって、制御モジュール175は、インストール制御部として機能する。
【0038】
そして、制御モジュール175は、このマイクロサービスデプロイ処理を終了する。このマイクロサービスデプロイ処理が終了したならば、制御モジュール175は、上記Act1に戻る。
【0039】
(5)そして、コンテナ管理ツール172は、マイクロサービス173が生成したデータを永続化する際には、そのデータを、永続化先ストレージ131の「/tmp/storage」フォルダに書き込む。
【0040】
図5の説明に戻る。
上記Act1においてマイクロサービスをデプロイしないと判断すると、制御モジュール175は、Act3として、永続化されたデータをバックアップするか否か判断する。制御モジュール175は、例えば、エッジデバイス1の操作者による入力部14からのバックアップ指示(バックアップコマンド)の有無により、これを判断することができる。或いは、制御モジュール175は、通信部16により、クラウド5上のクラウドサーバ51や図示しない制御端末から、バックアップ指示を受信したか否かにより、これを判断することができる。また、制御モジュール175は、毎日の決められたバックアップ実行時間となったか否かにより、これを判断することができる。このように、バックアップは不定期に実施しても良いし、定期的に実施するものであっても構わない。
【0041】
永続化されたデータをバックアップすると判断すると、制御モジュール175は、Act4として、バックアップ処理を実行する。このバックアップ処理は、マイクロサービス173のデータの永続化先である永続化先ストレージ131の指定先パスに記憶されているデータをバックアップストレージ132にバックアップする処理である。以下、
図9及び
図10を参照して、このバックアップ処理を詳細に説明する。ここで、
図9は、このバックアップ処理の手順を示す流れ図である。また、
図10は、このバックアップ処理でのエッジデバイス1における各ソフトウェア構成と各ストレージとの関係の一例を示す模式図である。
【0042】
(1)このバックアップ処理においては、制御モジュール175は、先ず、Act41として、バックアップ対象のマイクロサービス173のデータ永続化の指定先パスを読み出す。具体的には、制御モジュール175は、マイクロサービス情報テーブル121において、対象のマイクロサービスに対応するマイクロサービスIDに紐付けて永続化先情報として記憶されているデータ永続化の指定先パスを読み出す。
【0043】
(2)また、制御モジュール175は、Act42として、バックアップ先を決定する。具体的には、制御モジュール175は、バックアップの指定先パスとして、バックアップストレージ132において使用するバックアップ先フォルダを決定する。このバックアップの指定先パスは、読み出した指定先パスに対応させても良いし、マイクロサービスIDに基づいて生成しても良いし、それらに依存しない任意のパスとしても良い。そして、制御モジュール175は、Act43として、その決定したバックアップ先を保存する。具体的には、制御モジュール175は、マイクロサービス情報テーブル121の対象のマイクロサービスに対応するマイクロサービスIDに紐付けて、Act42で決定したバックアップの指定先パスをバックアップ先情報として記憶させる。
【0044】
(3)その後、制御モジュール175は、Act44として、永続化されたデータをバックアップ先にコピーする。具体的には、制御モジュール175は、永続化先ストレージ131のデータの永続化先の指定先パスに書き込まれているデータを、バックアップストレージ132のバックアップの指定先パスにコピーする。なお、このバックアップ時点の永続化先ストレージ131を、以下では、交換前永続化先ストレージ131-1とも称する。このように、制御モジュール175は、バックアップ部として機能する。
【0045】
そして、制御モジュール175は、このバックアップ処理を終了する。このバックアップ処理が終了したならば、制御モジュール175は、上記Act1に戻る。
【0046】
図5の説明に戻る。
上記Act3において永続化されたデータをバックアップしないと判断すると、制御モジュール175は、Act5として、バックアップデータのリカバリをするか否か判断する。制御モジュール175は、例えば、エッジデバイス1の操作者による入力部14からのリカバリ指示(リカバリコマンド)の有無により、これを判断することができる。リカバリ指示は、例えば、永続化先ストレージ131の故障等により、永続化先ストレージ131のハードウェアを新しいものに交換したとき、操作者によって入力される。或いは、制御モジュール175は、通信部16により、クラウド5上のクラウドサーバ51や図示しない制御端末から、リカバリ指示を受信したか否かにより、これを判断することができる。
【0047】
バックアップデータのリカバリをすると判断すると、制御モジュール175は、Act6として、リカバリ処理を実行する。このリカバリ処理は、バックアップストレージ132にバックアップしてあるデータを、永続化先ストレージ131の、マイクロサービス173のデータ永続化の指定先にリカバリする処理である。以下、
図11及び
図12を参照して、このバックアップ処理を詳細に説明する。ここで、
図11は、このAct6のリカバリ処理の手順を示す流れ図である。また、
図12は、このリカバリ処理でのエッジデバイス1における各ソフトウェア構成と各ストレージとの関係の一例を示す模式図である。
【0048】
このリカバリ処理においては、制御モジュール175は、先ず、Act61として、1つのリカバリ対象のマイクロサービス173のデータ永続化の指定先パスを読み出す。具体的には、制御モジュール175は、マイクロサービス情報テーブル121から、1つのマイクロサービスIDに紐付けて永続化先情報として記憶されているデータ永続化の指定先パスを読み出す。
【0049】
(2)更に、制御モジュール175は、Act62として、リカバリ対象のマイクロサービス173のデータのバックアップ先を読み出す。具体的には、制御モジュール175は、マイクロサービス情報テーブル121から、データ永続化の指定先パスを読み出したマイクロサービスIDに紐付けてバックアップ先情報として記憶されている、バックアップストレージ132のバックアップの指定先パスを読み出す。
【0050】
(3)そして、制御モジュール175は、Act63として、バックアップデータを永続化先にコピーする。具体的には、制御モジュール175は、バックアップの指定先パスにバックアップされているデータを、データ永続化の指定先パスで示される永続化先ストレージ131のパスにコピーする。この場合のコピー先の永続化先ストレージ131は、交換された新しいハードウェアであり、交換前永続化先ストレージ131-1ではない。以下では、この交換された永続化先ストレージ131を交換後永続化先ストレージ131-2とも称する。このように、制御モジュール175は、リカバリ部として機能する。
【0051】
その後、制御モジュール175は、Act64として、未リカバリのデータが有るか否か判断する。具体的には、制御モジュール175は、マイクロサービス情報テーブル121に記憶されているマイクロサービスIDの内、未だリカバリ対象として使用していないものが有るか否かを判断する。未リカバリのデータが有ると判断すると、制御モジュール175は、上記Act61に戻る。
【0052】
(4)上記Act64において未リカバリのデータが無いと判断すると、制御モジュール175は、Act65として、コンテナ管理ツール172にリカバリ終了を通知する。
【0053】
そして、制御モジュール175は、このリカバリ処理を終了する。このリカバリ処理が終了したならば、制御モジュール175は、上記Act1に戻る。
【0054】
(5)なお、このリカバリ処理によりリカバリ通知を受けたコンテナ管理ツール172は、マイクロサービス173を開始することとなる。そして、コンテナ管理ツール172は、マイクロサービス173が過去に生成したデータを必要とする際には、そのデータを交換後永続化先ストレージ131-2から読み出し、また、マイクロサービス173が生成したデータを永続化する際には、そのデータを交換後永続化先ストレージ131-2に書き込むことができる。
【0055】
以上詳述したように、本実施形態によれば、データ処理装置を制御する制御アプリケーションにより実現される制御モジュール175は、マイクロサービスをデプロイ(インストール)する際に、マイクロサービスが生成したデータを記憶するために使用する永続化先ストレージ131における記憶先を示す記憶先情報である指定先パスを取得し、それをマイクロサービス情報テーブル121に保存しておくと共に、コンテナ管理ツール172にそのマイクロサービスをデプロイさせる。よって、制御モジュール175は、マイクロサービスが生成したデータの永続化先を把握することが可能となる。
【0056】
そして、本実施形態によれば、制御モジュール175は、マイクロサービス情報テーブル121に保存されたマイクロサービス173のデータ永続化の指定先パスに基づいて、永続化先ストレージ131に記憶されているマイクロサービス173が生成したデータを、永続化先ストレージ131とは物理的に異なるハードウェアであるバックアップストレージ132にバックアップすると共に、そのバックアップストレージ132のバックアップの指定先パスをマイクロサービス情報テーブル121に保存しておく。よって、マイクロサービス173が生成したデータをバックアップしておくことが可能となる。
【0057】
その後に、バックアップストレージ132へのバックアップがされたデータを記憶している永続化先ストレージ131である交換前永続化先ストレージ131-1が故障して、新しい永続化先ストレージ131である交換後永続化先ストレージ131-2に交換されると、本実施形態によれば、制御モジュール175は、マイクロサービス情報テーブル121に保存されたバックアップストレージ132のバックアップの指定先パスと交換前永続化先ストレージ131-1におけるデータ永続化の指定先パスとに基づいて、バックアップストレージ132にバックアップしてあるデータを、交換後永続化先ストレージ131-2にリカバリする。よって、バックアップしておいたマイクロサービス173が生成したデータを交換後永続化先ストレージ131-2に復旧させ、マイクロサービス173に引き続き利用させることが可能となる。
【0058】
なお、本実施形態によれば、制御モジュール175は、マイクロサービスのインストール元のファイルであるマイクロサービスパッケージ18から、マイクロサービスのデータ永続化の指定先パスを抽出する。よって、制御モジュール175は、容易に指定先パスを取得することができる。
【0059】
また、本実施形態に係るデータ処理装置は、永続化先ストレージ131を備え、クラウド5と通信を行うエッジデバイス1である。よって、エッジデバイス1内のストレージがマイクロサービスのデータの永続化先に指定されていても、制御モジュール175は、マイクロサービスが生成したデータの永続化先を把握することが可能となり、そのデータのバックアップ及びリカバリを行い得るようになる。従って、オンプレミスのエッジデバイス1上で動作するコンテナ174を伴うシステムにおいて、エッジデバイス1のバックアップ処理によって、永続化の指定先のストレージである永続化先ストレージ131が破損してもデータの復旧を行うことが可能となる。
【0060】
以上、一実施形態について説明したが、本発明はこれに限定されるものではない。
【0061】
例えば、永続化されたデータのバックアップ先は、エッジデバイス1内のバックアップストレージ132ではなくて、外部ストレージであっても良い。例えば、バックアップ先は、エッジデバイス1と同一オンプレミスのデータストレージ3としても良いし、エッジデバイス1が通信するクラウド5上のクラウドストレージ52としても良い。
【0062】
また、実施形態に示した流れ図の手順及びその内容は一例である。同様な結果を得ることが可能であればその手順及び内容は適宜変更することができる。例えば、Act41とAct42及びAct43とは、その順序が逆であっても良いし、並行して行っても良い。このように、先行の又は後続する処理と齟齬が生じない限り、処理の順序を変更したり、複数の処理を並行して行ったりしても良い。
【0063】
なお、エッジデバイス1の譲渡は一般に、プログラムがROMに記憶された状態にて行われる。しかしこれに限らず、プログラムがROMに記憶されていない状態で譲渡されても良い。この場合は、エッジデバイス1が備える書き込み可能な記憶デバイスに、このエッジデバイス1とは個別に譲渡されたプログラム等がユーザ等の操作に応じて書き込まれても良い。プログラム等の譲渡は、リムーバブルな記録媒体に記録して、或いはクラウド5との通信により行うことができる。記録媒体は、CD-ROM,メモリカード等のようにプログラムを記憶でき、かつ装置が読み取り可能であれば、その形態は問わない。
【0064】
この他、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0065】
1…エッジデバイス、 2…IoTデバイス、 3…データストレージ、 4…LAN、 5…クラウド、 11…プロセッサ、 12…メインメモリ、 13…補助記憶デバイス、 14…入力部、 15…出力部、 16…通信部、 18…マイクロサービスパッケージ、 51…クラウドサーバ、 52…クラウドストレージ、 121…マイクロサービス情報テーブル、 131…永続化先ストレージ、 131-1…交換前永続化先ストレージ、 131-2…交換後永続化先ストレージ、 132…バックアップストレージ、 171…OS、 172…コンテナ管理ツール、 173…マイクロサービス、 174…コンテナ、 181…コンテナイメージオブジェクト、 182…設定ファイル。