(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】データ移行システム、データ移行方法及びデータ移行プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20240214BHJP
G06F 9/455 20180101ALI20240214BHJP
【FI】
G06F9/50 120Z
G06F9/455 150
(21)【出願番号】P 2022535382
(86)(22)【出願日】2021-07-08
(86)【国際出願番号】 JP2021025716
(87)【国際公開番号】W WO2022009943
(87)【国際公開日】2022-01-13
【審査請求日】2023-01-05
(31)【優先権主張番号】P 2020118495
(32)【優先日】2020-07-09
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】鷹觜 将彦
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2017-167822(JP,A)
【文献】森川 智紀,クラウドにおけるVM内コンテナを用いた低コストで迅速な自動障害復旧,情報処理学会 研究報告 システムソフトウェアとオペレーティング・システム(OS) ,日本,情報処理学会,2018年02月20日,Vol.2018-OS-142,No.8,pp.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
第1の仮想マシン環境と、前記第1の仮想マシン環境のバックアップとして機能する第2の仮想マシン環境とを含む仮想マシン環境にトランザクションが発生している場合、外部からのリクエストに応じたトランザクションを前記第1の仮想マシン環境に集約するロードバランサと、
前記ロードバランサが前記外部からのリクエストに応じたトランザクションを前記第1の仮想マシン環境に集約させた後、前記仮想マシン環境のデータをコンテナ環境に移行するマイグレーション装置とを含み、
前記マイグレーション装置は、
前記第2の仮想マシン環境を介して、前記第1の仮想マシン環境及び前記第2の仮想マシン環境の第1の記憶装置に保存されているストレージデータを、前記コンテナ環境の第2の記憶装置にコピーするストレージデータ処理手段と、
前記ストレージデータ処理手段が前記ストレージデータをコピーしている間に、コピー元の前記ストレージデータが変更されたか否か判定する変更判定手段と、
前記変更判定手段が前記コピー元の前記ストレージデータが変更されたと判定した場合、前記第2の記憶装置に既にコピーされたストレージデータを、変更された前記コピー元の前記ストレージデータと整合させる整合処理手段とを備える、
データ移行システム。
【請求項2】
前記マイグレーション装置はさらに、前記第1の仮想マシン環境及び前記第2の仮想マシン環境に含まれる複数の仮想マシンの設定ファイルを生成する設定ファイル生成手段を備え、
前記ストレージデータ処理手段は、前記設定ファイル生成手段が前記第2の仮想マシン環境に含まれる第1の仮想マシンのために生成した設定ファイルを用いて、前記第2の仮想マシン環境に含まれる第2の仮想マシンのストレージデータをコピーする、請求項1に記載のデータ移行システム。
【請求項3】
前記設定ファイルには、前記仮想マシンが実行中のアプリケーションが使用するストレージデータの種別を示すストレージ種別情報が含まれており、
前記ストレージ種別情報には、永続的に保存されないストレージデータを示す情報と、永続的に保存されるストレージデータを示す情報があり、
前記ストレージデータの種別は、前記仮想マシンが実行中のアプリケーション毎に定まる、請求項2に記載のデータ移行システム。
【請求項4】
前記マイグレーション装置はさらに、前記仮想マシン環境が複数のネットワークインタフェースカードを備える場合、前記複数のネットワークインタフェースカードに割り当てられたIP(Internet Protocol)アドレスを1つのIPアドレスに変換し、当該1つのIPアドレスを前記コンテナ環境に割り当てるIPマスカレード実行手段を備える、請求項1~3のいずれか1項に記載のデータ移行システム。
【請求項5】
コンピュータが、
第1の仮想マシン環境と、前記第1の仮想マシン環境のバックアップとして機能する第2の仮想マシン環境とを含む仮想マシン環境にトランザクションが発生しているか否か監視し、
前記仮想マシン環境にトランザクションが発生している場合、外部からのリクエストに応じたトランザクション
を前記第1の仮想マシン環境に集約し、
前記第2の仮想マシン環境を介して、前記第1の仮想マシン環境及び前記第2の仮想マシン環境の第1の記憶装置に保存されているストレージデータを、コンテナ環境の第2の記憶装置にコピーし、
前記ストレージデータがコピーされている間に、コピー元の前記ストレージデータが変更されたか否か判定し、
前記コピー元の前記ストレージデータが変更されたと判定された場合、前記第2の記憶装置に既にコピーされたストレージデータを、変更された前記コピー元の前記ストレージデータと整合させる、
前記仮想マシン環境のデータをコンテナ環境に移行する、データ移行方法。
【請求項6】
情報処理装置において実行されるデータ移行プログラム
であって、
前記情報処理装置
の備える演算装置に対し、
第1の仮想マシン環境と、前記第1の仮想マシン環境のバックアップとして機能する第2の仮想マシン環境とを含む仮想マシン環境にトランザクションが発生しているか否か監視
するステップと、
前記仮想マシン環境にトランザクションが発生している場合、外部からのリクエストに応じたトランザクションが前記第1の仮想マシン環境に集約
するステップと、
前記第2の仮想マシン環境を介して、前記第1の仮想マシン環境及び前記第2の仮想マシン環境の第1の記憶装置に保存されているストレージデータを、コンテナ環境の第2の記憶装置にコピー
するステップと、
前記ストレージデータがコピーされている間に、コピー元の前記ストレージデータが変更されたか否か判定
するステップと、
前記コピー元の前記ストレージデータが変更されたと判定された場合、前記第2の記憶装置に既にコピーされたストレージデータを、変更された前記コピー元の前記ストレージデータと整合させるステップと、
前記仮想マシン環境のデータをコンテナ環境に移行
するステップと
を実行させる、
データ移行プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ移行システム、データ移行方法及びデータ移行プログラムに関し、特に、仮想マシンを移行するデータ移行システム、データ移行方法及びデータ移行プログラムを格納した非一時的なコンピュータ可読記録媒体に関する。
【背景技術】
【0002】
従来、仮想マシンを移行する種々の技術が提案されている。このような技術の一例として、特許文献1が開示する仮想マシン移行方法は、ライブマイグレーションによって移行元のSBY系仮想マシンを移行先のSBY系仮想マシンへ移行した後、移行元のACT系仮想マシンと移行先のSBY系仮想マシンとの系の切り替えを行う。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1が開示する仮想マシン移行方法では、移行元のSBY系仮想マシンを移行先のSBY系仮想マシンへ移行している間に、移行元のACT系仮想マシンが使用する記憶装置のデータが変更された場合、移行元のACT系仮想マシンが使用する記憶装置のデータと、移行先のSBY系仮想マシンが使用する記憶装置のデータとの間で差異が生じるという問題があった。
【0005】
本発明の目的は、上述した課題を鑑み、仮想マシン環境の記憶装置のデータとコンテナ環境の記憶装置のデータとの整合性を保ちながら、仮想マシン環境からコンテナ環境へのマイグレーションを行うことが可能なデータ移行システム、データ移行方法及びデータ移行プログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係るデータ移行システムは、第1の仮想マシン環境と、第1の仮想マシン環境のバックアップとして機能する第2の仮想マシン環境とを含む仮想マシン環境にトランザクションが発生している場合、外部からのリクエストに応じたトランザクションを第1の仮想マシン環境に集約するロードバランサと、ロードバランサが外部からのリクエストに応じたトランザクションを第1の仮想マシン環境に集約させた後、仮想マシン環境のデータをコンテナ環境に移行するマイグレーション装置とを含む。マイグレーション装置は、第2の仮想マシン環境を介して、第1の仮想マシン環境及び第2の仮想マシン環境の第1の記憶装置に保存されているストレージデータを、コンテナ環境の第2の記憶装置にコピーするストレージデータ処理手段と、ストレージデータ処理手段がストレージデータをコピーしている間に、コピー元のストレージデータが変更されたか否か判定する変更判定手段と、変更判定手段がコピー元のストレージデータが変更されたと判定した場合、第2の記憶装置に既にコピーされたストレージデータを、変更されたコピー元のストレージデータと整合させる整合処理手段とを備える。
【0007】
また、本発明の一実施形態に係るデータ移行方法は、第1の仮想マシン環境と、第1の仮想マシン環境のバックアップとして機能する第2の仮想マシン環境とを含む仮想マシン環境にトランザクションが発生しているか否か監視し、仮想マシン環境にトランザクションが発生している場合、外部からのリクエストに応じたトランザクションが第1の仮想マシン環境に集約し、第2の仮想マシン環境を介して、第1の仮想マシン環境及び第2の仮想マシン環境の第1の記憶装置に保存されているストレージデータを、コンテナ環境の第2の記憶装置にコピーし、ストレージデータがコピーされている間に、コピー元のストレージデータが変更されたか否か判定し、コピー元のストレージデータが変更されたと判定された場合、第2の記憶装置に既にコピーされたストレージデータを、変更されたコピー元のストレージデータと整合させ、仮想マシン環境のデータをコンテナ環境に移行する。
【0008】
さらに、本発明の一実施形態に係るデータ移行プログラムは、情報処理装置において実行されるデータ移行プログラムであって、情報処理装置が備える演算装置に対し、第1の仮想マシン環境と、第1の仮想マシン環境のバックアップとして機能する第2の仮想マシン環境とを含む仮想マシン環境にトランザクションが発生しているか否か監視させるステップと、仮想マシン環境にトランザクションが発生している場合、外部からのリクエストに応じたトランザクションが第1の仮想マシン環境に集約させるステップと、第2の仮想マシン環境を介して、第1の仮想マシン環境及び第2の仮想マシン環境の第1の記憶装置に保存されているストレージデータを、コンテナ環境の第2の記憶装置にコピーさせるステップと、ストレージデータがコピーされている間に、コピー元のストレージデータが変更されたか否か判定させるステップと、コピー元のストレージデータが変更されたと判定された場合、第2の記憶装置に既にコピーされたストレージデータを、変更されたコピー元のストレージデータと整合させるステップと、仮想マシン環境のデータをコンテナ環境に移行させるステップとを実行させる。
【発明の効果】
【0009】
本発明により、仮想マシン環境の記憶装置のデータとコンテナ環境の記憶装置のデータとの整合性を保ちながら、仮想マシン環境からコンテナ環境へのマイグレーションを行うことが可能なデータ移行システム、データ移行方法及びデータ移行プログラムを格納した非一時的なコンピュータ可読記録媒体を提供することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係るデータ移行システムを示す図である。
【
図2】本発明の一実施形態に係るマイグレーション装置の構成を示すブロック図である。
【
図3】本発明の一実施形態に係るロードバランサの構成を示すブロック図である。
【
図4】本発明の一実施形態に係るデータ移行システムが有する主要な構成要素を示すブロック図である。
【
図5】本発明の一実施形態に係るデータ移行システムで実行される処理の一例を示すシーケンス図である。
【
図6】本発明の一実施形態に係るデータ移行システムで実行される処理の一例を示すシーケンス図である。
【
図7】本発明の一実施形態に係るデータ移行システムで実行される処理の一例を示すシーケンス図である。
【
図8】本発明の一実施形態に係るマイグレーション装置が実行する処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、本発明の一実施形態について説明する。
図1は、本発明の一実施形態に係るデータ移行システム1を示す概略図である。データ移行システム1は、マイグレーション装置10と、ロードバランサ20と、仮想マシン環境(ACT:Active)30と、仮想マシン環境(SBY:Standby)40と、記憶装置50,70と、コンテナ環境60とを含む。
【0012】
マイグレーション装置10は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40のデータをコンテナ環境60に移行する装置である。マイグレーション装置10は、ネットワーク80を介して、ロードバランサ20、仮想マシン環境(ACT)30、仮想マシン環境(SBY)40、及びコンテナ環境60とデータ通信を行うことができる。マイグレーション装置10の詳細については、
図2を参照して後述する。
【0013】
ロードバランサ20は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40におけるトランザクションを制御する装置である。ロードバランサ20は、ネットワーク80を介して、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40とデータ通信を行うことができる。また、ロードバランサ20は、ネットワーク90を介して、外部装置(図示せず)とデータ通信を行うことができる。ロードバランサ20の詳細については、
図3を参照して後述する。
【0014】
仮想マシン環境(ACT)30は、1以上の仮想マシンを実行する情報処理装置である。仮想マシン環境(ACT)30は、稼働系の仮想マシン環境として機能する。仮想マシン環境(ACT)30は、第1の仮想マシン環境に相当する。なお、
図1には、説明の便宜上、2つの仮想マシンのみが示されているが、仮想マシン環境(ACT)30は、任意の数の仮想マシンを実行することができる。
【0015】
仮想マシン環境(SBY)40は、1以上の仮想マシンを実行する情報処理装置である。仮想マシン環境(SBY)40は、待機系の仮想マシン環境であり、仮想マシン環境(ACT)30のバックアップとして機能する。仮想マシン環境(SBY)40は、第2の仮想マシン環境に相当する。なお、
図1には、説明の便宜上、2つの仮想マシンのみが示されているが、仮想マシン環境(SBY)40は、任意の数の仮想マシンを実行することができる。
【0016】
記憶装置50は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40が使用する記憶装置である。記憶装置50には、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40内の仮想マシンが使用する種々のデータが保存される。記憶装置50は、第1の記憶装置に相当する。以下、記憶装置50に保存されているデータをストレージデータとして参照する。
【0017】
コンテナ環境60は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40の仮想マシンに対応するコンテナを実行する情報処理装置である。
図1には、説明の便宜上、2つのコンテナのみが示されているが、コンテナ環境60は、任意の数のコンテナを実行することができる。
【0018】
記憶装置70は、コンテナ環境60が使用する記憶装置である。記憶装置70には、コンテナ環境60内のコンテナが使用する種々のデータが保存される。記憶装置70は、第2の記憶装置に相当する。
【0019】
図2は、マイグレーション装置10の構成を示すブロック図である。マイグレーション装置10は、演算装置100と、通信インタフェース(I/F)110と、記憶装置120とを備える。
【0020】
演算装置100は、マイグレーション装置10が備える装置及び回路を制御するCPUやMPU等のプロセッサである。演算装置100は、記憶装置120に保存されたデータ移行プログラムを実行することにより、データ移行方法を実行する。データ移行プログラムには、通信監視部101と、設定ファイル生成部102と、ストレージデータ処理部103と、変更判定部104と、整合処理部105と、IP(Internet Protocol)マスカレード実行部106と、マイグレーション実行部107と、ログ生成部108が含まれる。なお、これらのプログラムが有する機能を、FPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等の集積回路によって実現してもよい。
【0021】
通信監視部101は、マイグレーション装置10が仮想マシン環境(SBY)40及びコンテナ環境60の双方と通信可能であるか否か判断するプログラムである。
【0022】
設定ファイル生成部102は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40に含まれる複数の仮想マシンの設定ファイルを生成するプログラムである。具体的には、設定ファイル生成部102は、仮想マシン環境(SBY)40の仮想マシンのコンソールにアクセスし、所定のコマンド(dfコマンド等)を用いて、当該仮想マシンが実行中のアプリケーションが使用するストレージデータの容量を示すストレージ容量情報と、当該アプリケーションが使用するストレージデータの種別を示すストレージ種別情報を取得できる。
【0023】
ストレージ種別情報には、ステートレスとステートフルがある。ステートレスは、永続的に保存されないストレージデータを示す。ステートフルは、永続的に保存されるストレージデータを示す。ストレージデータの種別は、仮想マシンが実行するアプリケーション毎に定まる。
【0024】
また、設定ファイル生成部102は、仮想マシン環境(SBY)40の仮想マシンのコンソールにアクセスし、所定のコマンド(netstatコマンドやpsコマンド等)を用いて、仮想マシンにおいて稼働しているアプリケーションの情報を示すアプリケーション稼働情報を取得できる。
【0025】
設定ファイル生成部102は、このようにして取得したストレージ容量情報、ストレージ種別情報及びアプリケーション稼働情報を用いて設定ファイルを生成する。
【0026】
ストレージデータ処理部103は、仮想マシン環境(SBY)40を介して、記憶装置50に保存されているストレージデータを記憶装置70にコピーするプログラムである。より詳細には、ストレージデータ処理部103は、仮想マシン環境(SBY)40に含まれる各仮想マシンの設定ファイルを用いて、当該仮想マシンのストレージデータを記憶装置70にコピーする。例えば、ストレージデータ処理部103は、設定ファイルであるyamlファイルからストレージデータを作成し、当該ストレージデータを記憶装置70にマウントすることができる。
【0027】
変更判定部104は、ストレージデータ処理部103が記憶装置50のストレージデータを記憶装置70へコピーしている間に、コピー元のストレージデータが変更されたか否か判定するプログラムである。整合処理部105は、コンテナ環境60の記憶装置70に既にコピーされたストレージデータをコピー元のストレージデータと整合させるプログラムである。
【0028】
IPマスカレード実行部106は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40が複数のネットワークインタフェースカード(NIC)を備える場合、IPマスカレードを実行するプログラムである。具体的には、IPマスカレード実行部106は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40の複数のネットワークインタフェースカードに割り当てられたIPアドレスを1つのIPアドレスに変換し、当該1つのIPアドレスをコンテナ環境60に割り当てる。
【0029】
マイグレーション実行部107は、仮想マシン環境(SBY)40からコンテナ環境60へのマイグレーション処理を実行するプログラムである。例えば、マイグレーション実行部107は、VM(Virtual Machine)イメージを圧縮して、コンテナとしてインポートすることができる。ログ生成部108は、マイグレーション処理の実行ログを生成するプログラムである。
【0030】
通信インタフェース110は、マイグレーション装置10と他の装置との間でデータ通信を行う装置である。記憶装置120は、演算装置100が実行するプログラム等の種々の情報が保存される記憶装置である。
【0031】
図3は、ロードバランサ20の構成を示すブロック図である。ロードバランサ20は、演算装置200と、通信インタフェース210と、記憶装置220とを備える。
【0032】
演算装置200は、ロードバランサ20が備える装置及び回路を制御するCPUやMPU等のプロセッサである。演算装置200は、記憶装置220に保存されたプログラムを実行する。このプログラムには、トランザクション監視部201及び転送部202が含まれる。なお、これらのプログラムが有する機能を、FPGAやASIC等の集積回路によって実現してもよい。
【0033】
トランザクション監視部201は、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40の少なくとも一方においてトランザクションが発生しているか否か判断するプログラムである。
【0034】
転送部202は、外部からネットワーク90を介して受信した仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40へのリクエストを仮想マシン環境(ACT)30に転送するプログラムである。転送部202が、当該リクエストを仮想マシン環境(ACT)30に転送することより、外部からのリクエストに応じたトランザクションを仮想マシン環境(ACT)30に集約させることができる。
【0035】
通信インタフェース210は、ロードバランサ20と他の装置との間でデータ通信を行う装置である。記憶装置220は、演算装置200が実行するプログラム等の種々の情報が保存される記憶装置である。
【0036】
図4は、本発明の一実施形態に係るデータ移行システム1が有する主要な構成要素を示すブロック図である。データ移行システム1は、マイグレーション装置10と、ロードバランサ20とを含む。マイグレーション装置10は、上述したストレージデータ処理部103、変更判定部104、整合処理部105及びマイグレーション実行部107を備える。ロードバランサ20は、トランザクション監視部201及び転送部202を備える。
【0037】
図5は、本発明の一実施形態に係るデータ移行システム1で実行される処理の一例を示すシーケンス図である。ステップS101では、マイグレーション装置10の通信監視部101が、仮想マシン環境(SBY)40及びコンテナ環境60の双方と通信可能であるか否か判断する。仮想マシン環境(SBY)40及びコンテナ環境60の少なくとも一方と通信できない場合(NO)、ステップS101の処理が再び実行される。一方、仮想マシン環境(SBY)40及びコンテナ環境60の双方と通信可能である場合(YES)、ステップS102に処理が分岐する。
【0038】
ステップS102では、ロードバランサ20のトランザクション監視部201が、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40の少なくとも一方においてトランザクションが発生しているか否か判断する。トランザクションが発生していない場合(NO)、ステップS114に処理が分岐する。一方、トランザクションが発生している場合(YES)、ステップS103でロードバランサ20の転送部202が、外部から仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40へのリクエストを仮想マシン環境(ACT)30に転送する。
【0039】
ステップS104では、設定ファイル生成部102は、1つの仮想マシンを選択する。ステップS105では、設定ファイル生成部102は、選択した仮想マシンに関するストレージ容量情報及びストレージ種別情報を取得する。ステップS106では、設定ファイル生成部102は、選択した仮想マシンに関するアプリケーション稼働情報を取得する。
【0040】
ステップS107では、設定ファイル生成部102は、ステップS105及びステップS106で取得した情報が記憶装置120に保存されているか否か判断する。これらの情報が記憶装置120に保存されていない場合(NO)、ステップS108で設定ファイル生成部102は、取得した情報を用いて設定ファイルを生成する。ステップS109では、設定ファイル生成部102は、ステップS105及びステップS106で取得した情報と、ステップS108で生成した設定ファイルを関連付けて記憶装置120に保存する。ステップS110では、ストレージデータ処理部103が、ステップS106で生成された設定ファイルを用いてストレージデータのコピー処理を実行する。ストレージデータのコピー処理の詳細については、
図8を参照して後述する。
【0041】
一方、ステップS105及びステップS106で取得した情報が記憶装置120に保存されている場合(YES)、ステップS111でストレージデータ処理部103が、取得した情報に関連付けられている設定ファイルを記憶装置120から取得する。ステップS112では、ストレージデータ処理部103は、ステップS111で取得した設定ファイルを用いて、ストレージデータのコピー処理を実行する。
【0042】
ステップS113では、設定ファイル生成部102は、全ての仮想マシンを選択したか否か判定する。全ての仮想マシンを選択していない場合(NO)、ステップS104に処理が戻り、選択されていない仮想マシンが1つ選択され、当該仮想マシンについて、上述した処理が実行される。一方、全ての仮想マシンを選択した場合(YES)、
図7に示すステップS114に処理が分岐する。
【0043】
ステップS114では、IPマスカレード実行部106が、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40が複数のNICを備えているか否か判定する。仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40が複数のNICを備えていない場合(NO)、ステップS116に処理が分岐する。一方、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40が複数のNICを備えている場合(YES)、ステップS115でIPマスカレード実行部106が、IPマスカレードを実行する。
【0044】
ステップS116では、マイグレーション実行部107が、マイグレーション処理を実行する。ステップS117では、ログ生成部108が、マイグレーション処理の実行ログを生成し、
図7に示す処理が終了する。
【0045】
図8は、ストレージデータのコピー処理を示すフローチャートである。ステップS201では、ストレージデータ処理部103が、仮想マシン環境(SBY)40を介し、選択された仮想マシンに関する設定ファイルを用いて、記憶装置50から記憶装置70へ、当該仮想マシンに関するストレージデータのコピーを開始する。ステップS202では、変更判定部104が、ストレージデータのコピー中にコピー元のストレージデータが変更されるか否か監視する。コピー元のストレージデータが変更されなかった場合(NO)、ステップS204に処理が進む。一方、コピー元のストレージデータが変更された場合(YES)、ステップS203に処理が進む。
【0046】
ステップS203では、整合処理部105が、コンテナ環境60の記憶装置70に既にコピーされたストレージデータをコピー元のストレージデータと整合させる。ステップS204では、ストレージデータ処理部103は、選択された仮想マシンに関するストレージデータのコピーが終了したか否か判断する。ストレージデータのコピーが終了していない場合(NO)、ステップS202に処理が戻る。一方、ストレージデータのコピーが終了した場合(YES)、
図8の処理は終了する。
【0047】
上述した実施形態では、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40の少なくとも一方にトランザクションが発生している場合、ロードバランサ20の転送部202が、外部からのリクエストに応じたトランザクションを仮想マシン環境(SBY)40に集約する。その後、マイグレーション装置10のストレージデータ処理部103が、仮想マシン環境(SBY)40を介して、記憶装置50に保存されているストレージデータを、コンテナ環境60の記憶装置70にコピーする。そして、マイグレーション装置10のマイグレーション実行部107が、仮想マシン環境からコンテナ環境へのマイグレーション処理を実行する。
【0048】
これにより、外部からのリクエストに応じたトランザクションが仮想マシン環境(SBY)40に集約された後、マイグレーション装置10が、当該トランザクションが発生していない仮想マシン環境(SBY)40を介して、仮想マシン環境からコンテナ環境へのマイグレーション処理を実行できる。そのため、仮想マシン環境においてダウンタイムを発生させることなく、仮想マシン環境からコンテナ環境へのマイグレーションを実現することができる。
【0049】
また、上述した実施形態では、変更判定部104が、ストレージデータ処理部103がストレージデータをコピーしている間に、コピー元のストレージデータが変更されたか否か判定する。コピー元のストレージデータが変更されたと判定された場合、整合処理部105が、記憶装置70に既にコピーされたストレージデータを、変更されたコピー元のストレージデータと整合させる。これにより、仮想マシン環境の記憶装置のデータとコンテナ環境の記憶装置のデータとの整合性を保ちながら、仮想マシン環境からコンテナ環境へのマイグレーションを行うことができる。
【0050】
さらに、上述した実施形態では、設定ファイル生成部102が、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40に含まれる複数の仮想マシンの設定ファイルを生成する。ストレージデータ処理部103は、仮想マシン環境(SBY)40に含まれる第1の仮想マシンのために生成した設定ファイルを用いて、仮想マシン環境(SBY)40に含まれる第2の仮想マシンのストレージデータをコピーする。すなわち、ストレージデータ処理部103は、第1の仮想マシンの設定ファイルを流用して、第2の仮想マシンのストレージデータをコピーする。これにより、余分な設定ファイルが作成されるのを防ぐことができる。
【0051】
さらに、上述した実施形態では、設定ファイルには、仮想マシンが実行中のアプリケーションが使用するストレージデータの種別を示すストレージ種別情報が含まれる。ストレージ種別情報には、永続的に保存されないストレージデータを示す情報と、永続的に保存されるストレージデータを示す情報がある。ストレージデータの種別は、仮想マシンが実行中のアプリケーション毎に定まる。このようなストレージ種別情報が記述された設定ファイルを用いることにより、マイグレーション後のコンテナ環境においても、各アプリケーションが、ストレージ種別情報を継承することができる。例えば、仮想マシン環境でステートフルのアプリケーションは、コンテナ環境においてもストレージデータを永続的に保存することができる。一方、仮想マシン環境でステートレスのアプリケーションは、コンテナ環境においてもストレージデータを永続的に保存しない。
【0052】
さらに、上述した実施形態では、仮想マシン環境(ACT)30及び仮想マシン環境(SBY)40が複数のNICを備える場合、IPマスカレード実行部106が、複数のNICに割り当てられたIPアドレスを1つのIPアドレスに変換し、当該1つのIPアドレスをコンテナ環境60に割り当てる。通常、コンテナ環境には、1つのNICしか割り当てられないため、仮想マシン環境が複数のNICを備える場合、コンテナ環境内のコンテナは、IPアドレスを利用した処理を正常に実行することができない。上述した実施形態では、IPマスカレード実行部106がIPマスカレードを行うため、仮想マシン環境が複数のNICを備える場合、コンテナは、IPアドレスを利用した処理を正常に実行することができる。
【0053】
<他の実施形態>
上述した実施形態では、マイグレーション装置10とロードバランサ20が個別の装置として構成されているが、他の実施形態では、マイグレーション装置10とロードバランサ20を1つの装置として構成してもよい。具体的には、マイグレーション装置10が実行するデータ移行プログラムには、通信監視部101と、設定ファイル生成部102と、ストレージデータ処理部103と、変更判定部104と、整合処理部105と、IPマスカレード実行部106と、マイグレーション実行部107と、ログ生成部108と、トランザクション監視部201と、転送部202とが含まれる。マイグレーション装置10は、このデータ移行プログラムを実行することにより、
図5~
図8に示すデータ移行方法を実行することができる。
【0054】
また、他の実施形態では、移行後のシステムであるコンテナ環境における冗長化を指定することができる。この場合、設定ファイル生成部102は、コンテナ環境における冗長化を指定した設定ファイルを生成する。そして、マイグレーション実行部107は、冗長化が指定された設定ファイルに基づき、重複する複数のコンテナを生成することができる。例えば、マイグレーション実行部107は、コンテナとして管理するPodをPod単位で複数建てることにより、冗長化を実現することができる。
【0055】
さらに、他の実施形態では、移行後のシステムであるコンテナ環境60において最適化されたサイジング設定を指定することができる。この場合、コンテナ環境においてCPUとメモリサイズのセットを複数用意する。設定ファイル生成部102は、コンテナ環境60において使用されるCPUとメモリサイズのセットを指定した設定ファイルを生成する。この設定ファイルは、マイグレーション装置10によってコンテナ環境60に提供される。例えば、マイグレーション実行部107が当該設定ファイルをコンテナ環境60に提供することができる。コンテナ環境60では、この設定ファイルが規定するCPUとメモリサイズを利用して種々の処理が実行される。これにより、最適化されたサイジング設定を実現することができる。
【0056】
さらに、他の実施形態では、コンテナ環境60の要件に合わせて、CPUとメモリ容量の上限値を設定することができる。具体的には、設定ファイル生成部102は、コンテナが使用するCPUとメモリの上限値を、yamlファイル等の設定ファイルに記述することができる。この設定ファイルは、マイグレーション装置10によってコンテナ環境60に提供される。コンテナ環境60では、各コンテナが、この設定ファイルが規定するCPUとメモリの上限値に従って、種々の処理を実行する。これにより、コンテナ環境60の要件に合わせることができる。
【0057】
さらに、他の実施形態では、仮想マシン環境30において複数のアプリケーションによるクラスタリング構成が組まれ、冗長化されている場合、コンテナ環境60においてもクラスタリング機能を実現することができる。具体的には、設定ファイル生成部102は、Ingress Controllerによるロードバランシングと、Pacemaker bundleによるHAクラスタとを指定する設定ファイルを生成する。そして、マイグレーション実行部107は、この設定ファイルに基づき、Ingress ControllerとPacemaker bundleにログインして、コンテナ環境60においてロードバランシング及びHAクラスタを実行する設定を投入することができる。これにより、コンテナ環境60においてクラスタリング機能を実現できる。
【0058】
上述の例において、プログラムは、様々な種類の非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに提供することができる。非一時的なコンピュータ可読媒体は、様々な種類の実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々な種類の一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに提供されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0059】
本発明は、上述した実施形態に限られたものではなく、本発明の趣旨を逸脱しない範囲で適宜変更することが可能である。
【0060】
この出願は、2020年7月9日に出願された日本出願特願2020-118495を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0061】
1 データ移行システム
10 マイグレーション装置
100 演算装置
103 ストレージデータ処理部
104 変更判定部
105 整合処理部
107 マイグレーション実行部
20 ロードバランサ
201 トランザクション監視部
202 転送部
30 仮想マシン環境(ACT)
40 仮想マシン環境(SBY)
50,70 記憶装置
60 コンテナ環境
80,90 ネットワーク