1 概要
ライブマイグレーションは、稼働中の仮想マシンやコンテナ、あるいは実行中のサービスを、停止をほとんど伴わずに別の物理ホストや実行環境へ移す技術である。移行の間も処理や状態をできるだけ維持し、利用者から見た中断を最小限に抑える点に特徴がある。仮想化基盤やクラウド運用では、可用性の確保と資源配分の柔軟化を支える基本機能として扱われる。
1.1 定義
この技術は、稼働中の計算資源を別の場所へ移す際に、プロセス、メモリ内容、接続状態などの実行状態を継続させる仕組みを指す。単なる再配置ではなく、サービスを止めずに切り替えることが重要である。対象は仮想マシンが代表的だが、コンテナやアプリケーション単位に拡張される場合もある。
1.2 目的
主な目的は、保守作業中の停止回避、負荷の偏りの解消、障害時の影響縮小、設備の有効活用である。夜間保守やハードウェア交換の際に、稼働中の負荷を別のホストへ退避させる用途が多い。加えて、季節変動や急な需要増加に応じて、計算資源の配置を調整する手段としても用いられる。
1.3 適用対象
適用対象は、状態を外部に分離できる仮想化環境や、実行状態の同期機構を備えたコンテナ基盤、あるいは移行支援機能を持つアプリケーションである。長時間接続を伴うサービスや、メモリ内容の連続性が重要な処理で特に有効である。一方、専用ハードウェアへの強い依存や、外部との厳密な時刻同期を要する処理では制約が大きい。
2 原理
ライブマイグレーションは、実行中の状態を段階的に複製し、切り替え時点で差分を最小化することで成立する。移行先を事前に準備し、元の実行環境と並行して状態を整えたのち、短い停止区間で最終同期と引き継ぎを行う。処理の中心には、状態の保存、伝送、再開という三つの要素がある。
2.1 実行状態の移送
実行状態の移送では、CPUの進行位置、メモリ上のデータ、開いている通信やデバイス設定などを新しい環境へ引き継ぐ。実際には、完全な「そのままの複製」ではなく、再現に必要な情報を選んで転送する。これにより、移行先で同じ処理を継続できるようにする。
2.2 メモリの複製と同期
メモリは状態量が大きく、ライブマイグレーションの成否を左右する中心要素である。まず内容を複製し、その後も元の環境で更新された部分を追随させる。同期の精度が高いほど停止時間は短くなるが、その分、通信量や計算負荷は増えやすい。
2.2.1 初期複製
初期複製では、実行を止めずに現在のメモリ内容を移行先へ送る。転送中にも元の環境では処理が続くため、複製は時点ごとに少しずつ古くなる。そこで、まず大枠をコピーして、以後の差分を補う方式が一般的である。
2.2.2 差分転送
差分転送は、初期複製の後に変更されたページや領域だけを送る方法である。更新頻度が高い領域が多いと再送が増え、移行完了が遅れやすい。逆に、書き換えが少ない場合は効率よく同期できる。
2.3 切り替え処理
切り替え処理では、元の環境での実行を短時間停止し、直近の差分を送り切ったうえで、移行先で処理を再開する。ネットワーク接続や内部識別子の引き継ぎもこの段階で整えられる。利用者から見える中断は通常この瞬間に集中するが、適切に制御すればごく短くできる。
3 方式
方式は、対象の種類と状態の持ち方によって分かれる。仮想マシンでは成熟した実装が多く、コンテナやアプリケーションではより軽量な仕組みが使われることがある。記憶装置を含むかどうかも、構成を左右する大きな違いである。
3.1 仮想マシンのライブマイグレーション
仮想マシンの移行は最も代表的な形で、ハイパーバイザがゲストの状態を制御しながら別ホストへ移す。ゲストOSは継続して動作しているように見え、利用者は大きな変化を感じにくい。商用基盤からオープンソース基盤まで広く採用されている。
3.2 記憶装置を伴う移行
仮想マシンの状態だけでなく、ディスクやブロック装置の内容も一緒に移す方式である。記憶装置が共有されていれば比較的単純だが、非共有の場合はデータ転送や整合性確保の仕組みが必要になる。ストレージ設計は移行の難易度を大きく左右する。
3.2.1 共有記憶装置方式
共有記憶装置方式では、移行元と移行先が同じストレージを参照する。仮想マシン本体の状態のみを切り替えればよいため、構成が比較的簡潔である。反面、共有基盤に障害が起きると影響が広がりやすい。
3.2.2 非共有記憶装置方式
非共有記憶装置方式では、移行先にデータを複製しながら切り替える。独立したストレージ運用が可能で、配置の自由度も高いが、転送量は増えやすい。データ整合性を保つために、書き込み制御や同期手順が重要になる。
3.3 コンテナの移行
コンテナの移行では、コンテナ内のプロセス状態やネットワーク設定を別環境へ引き継ぐ。仮想マシンより軽量である一方、実装やランタイムの違いに影響を受けやすい。多くの場合、周辺の設定管理や永続データの扱いと組み合わせて運用される。
3.4 アプリケーション状態の移行
アプリケーション状態の移行は、プログラムそのものではなく、会話状態やセッション情報、実行中の内部データを引き継ぐ方式である。対話型サービスや分散処理の一部で用いられる。アプリケーション側に状態分離の設計が求められるため、一般に実装の難度は高い。
4 実装要素
実装には、計算能力、通信品質、記憶装置性能、管理ソフトとの連携が必要である。いずれかが不足すると、移行の遅延や失敗の原因になりやすい。実務では、対象ワークロードに応じて要件を細かく見積もる。
4.1 計算資源の要件
移行元と移行先の双方に十分なCPU、メモリ、場合によってはGPUなどの資源が必要である。移行先は、受け取る状態を即座に展開できる余裕を持たなければならない。性能差が大きいと、切り替え後の挙動が変わることもある。
4.2 ネットワーク要件
状態転送には安定した帯域と低遅延が望ましい。特にメモリの差分が大きい場合、通信路が細いと移行時間が伸びる。冗長化された経路や専用ネットワークを用いると、実運用では扱いやすい。
4.3 記憶装置要件
ディスク移行を伴う場合は、読み書き速度と整合性維持の仕組みが重要である。高いI/O負荷があると、ライブ性が低下しやすい。ログ領域や一時領域の設計も、性能と安全性に影響する。
4.4 管理基盤との連携
移行機能は、監視、配置制御、予約管理、障害検知と組み合わせて使われる。管理基盤が状況を把握し、適切なタイミングで移行を指示することで効果が高まる。手動操作よりも、自動判断との連携で安定性が向上しやすい。
5 運用
運用面では、保守のしやすさ、負荷の平準化、障害時の継続性が重要である。導入後は、個別機能だけでなく、手順、監視、失敗時の戻し方まで含めて設計する必要がある。実際の現場では、日常運用の一部として定着している。
5.1 保守時の利用
ハードウェア交換やソフトウェア更新の前に、稼働中の負荷を別ホストへ逃がす用途で使われる。これにより、利用者への影響を小さくしながら計画保守を進められる。業務時間帯を避けにくい環境では特に有効である。
5.2 負荷分散
複数ホスト間で処理量を均すため、稼働中の仮想マシンやサービスを再配置する。急に高負荷となったノードから一部を移すことで、応答性を保ちやすい。資源の偏在を抑える点でも役立つ。
5.3 障害対策
障害の予兆があるホストから事前に退避させたり、異常発生時の影響を縮小したりする目的で利用される。完全な代替ではないが、停止の前倒し回避や被害軽減に有効である。監視と組み合わせることで実用性が高まる。
5.4 計画移行と自動化
計画移行では、一定の条件に従って、あらかじめ決めた対象を順番に移す。自動化すると、人的作業のばらつきを抑え、夜間や大量環境でも扱いやすくなる。失敗時の再試行やロールバックも設計に含めることが望ましい。
6 性能と制約
ライブマイグレーションは万能ではなく、停止時間、総所要時間、通信帯域、対応可能な状態に制限がある。実際の品質は、ワークロードの特性と基盤の能力によって大きく変わる。性能評価では、短い停止だけでなく、周辺システムへの影響も見る必要がある。
6.1 停止時間
停止時間は、最終同期と切り替えに要する短い中断である。理想的には極小だが、状態の大きさや接続数が増えると延びる。対話型サービスでは、この値が体感品質に直結する。
6.2 移行時間
移行時間は、準備開始から再開完了までの全体時間を指す。停止時間が短くても、全体が長ければ運用上の自由度は下がる。差分転送の効率やネットワーク速度が大きく影響する。
6.3 帯域消費
状態の複製には相応の通信帯域が必要であり、他の通信を圧迫することがある。更新頻度の高いワークロードでは、再送が増えて消費量が膨らみやすい。専用経路や時間帯調整で緩和することが多い。
6.4 対応できない状態
ハードウェアの厳密な依存、強いリアルタイム制約、外部装置との即時同期が必要な処理は、完全なライブ移行が難しい。暗黙のローカル資源に依存するアプリケーションも問題になりやすい。こうした場合は、停止を伴う移行や別方式が選ばれる。
7 セキュリティ
移行中は、実行状態がネットワークを流れるため、保護が欠かせない。暗号化、認証、権限制御、整合性確認を適切に組み合わせることで、情報漏えいや改ざんの危険を下げられる。管理操作の悪用防止も重要である。
7.1 通信の保護
移行トラフィックは、盗聴やなりすましを避けるために暗号化されることが多い。専用ネットワークを用いても、論理的保護を重ねるのが一般的である。経路上での改ざん検知も有効である。
7.2 移行中のデータ保全
移行中のメモリ内容やセッション情報には機密データが含まれる場合がある。途中での不整合や破損を防ぐため、転送順序や検証機構が設けられる。特に書き込み途中の状態管理が重要となる。
7.3 認証と権限制御
移行操作は強い管理権限を伴うため、認証とアクセス制御が不可欠である。実行主体を限定し、移行先ホストやストレージへの接続権限も厳密に管理する。監査記録を残すことで、運用上の追跡性が高まる。
8 代表的な利用分野
ライブマイグレーションは、停止を避けたい情報基盤で広く使われる。特に仮想化とクラウドでは、配置変更を日常的に行うため、基本機能としての重要度が高い。高可用性や保守効率を重視する場面でも採用例が多い。
8.1 仮想化基盤
データセンターの仮想化基盤では、ホスト間の再配置を通じて保守と稼働継続を両立させる。多数の仮想マシンを扱う環境ほど、移行機能の価値が高い。管理ソフトとの統合も進んでいる。
8.2 クラウド基盤
クラウドでは、需要変動に応じた柔軟な資源配分のために利用される。利用者から見える公開サービスを止めずに、内部の配置だけを変えやすい。運用者にとっては、設備更新や障害対応の自由度を広げる手段でもある。
8.3 高可用性システム
継続稼働を重視するシステムでは、移行機能が停止回避の一手段として組み込まれる。完全な障害復旧とは別に、予防的な退避や計画的な切り替えに向く。可用性設計の中で、冗長化や監視と並ぶ要素となる。
8.4 端末や機器の保守環境
一部の端末管理や検証装置では、実行環境を維持したまま保守先へ切り替える用途がある。研究開発環境や実機検証でも、作業中断を抑えるために応用される。対象機器の制約が大きいため、適用範囲は限定的である。
9 関連技術
ライブマイグレーションは、他の運用技術と組み合わせて使われることが多い。単独機能としてよりも、保全、復旧、配置制御の仕組みと連携したときに効果を発揮する。似た概念との違いを理解すると、運用設計がしやすい。
9.1 スナップショット
スナップショットは、ある時点の状態を保存する技術である。移行と異なり、即時の再開よりも保存と復元に重点がある。バックアップや検証用途でよく使われる。
9.2 フェイルオーバー
フェイルオーバーは、障害時に待機系へ処理を切り替える仕組みである。通常は故障対応が主目的で、ライブマイグレーションよりも切り替えの緊急性が高い。両者は高可用性設計で併用されることが多い。
9.3 レプリケーション
レプリケーションは、データや状態を複数箇所へ複写して保持する技術である。移行の前提として用いられることもあり、冗長性の確保に役立つ。継続同期の有無が、移行方式との違いを生む。
9.4 オーケストレーション
オーケストレーションは、複数の資源や処理を統合的に制御することを指す。移行の実施条件を判断し、順序や依存関係をまとめて扱える。大規模環境では、ライブマイグレーションの自動運用を支える中核となる。