インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

(仮想化)ライブマイグレーションとは具体的に何をしているのか

はじめに

クラウド上の仮想マシンを利用している場合、以下のようにメンテナンスとして「マイグレーション/Migration」を求められることがあります。

ハイパーバイザーのカーネルにパッチを適用する場合、仮想サーバーのライブマイグレーションが必要になる場合があります。 ライブ・マイグレーションが行われると、仮想サーバーでは約10 秒短い一時停止が発生します。

このように一般的にはマイグレーションは再起動時のようにシステム停止と一緒に行われますが、「ライブマイグレーション」といってシステムを無停止で別のホストに移す手法があります。本記事ではその流れを簡単に記載しました。

ライブマイグレーション

まずは、ストレージ領域だけでなくてメモリ領域もコピーしないといけないので、移す先のホストにてメモリ領域等を確保します。

そこからはメモリをコピーしますが、コピー中に更新が入るとその部分には更新が入ったフラグを立てて追えるようにしておきます。そしてそれらをすべて移し終えるともとの仮想マシンを停止します。

その際にIO状態やCPUの状態をコピーして移す先にてそれを再現し、最後にネットワーク観点でこっちにパケットを持ってくるようにRARPを打って移行完了。瞬断(30ms)程度にて移行が完了する手はずとなります。

一つのパケットロスも許されない環境だと厳しいですが、そこが許容できるのであれば便利ですよね。