Live Migration of Virtual Machines

November 20, 2021

XenのハイパーバイザーにOSのライブマグレーションを統合し、約60msのダウンタイムでのOSのライブマイグレーションを実現した。 手法の焦点は、短いダウンタイムや移行時間で、移行元と移行先のメモリの状態を同等にできるかにある。 ネットワークアドレスや物理デバイスの移行は扱わない。 移行元と移行先は同じローカルネットワークにあり、マイグレーションによるIPアドレスのホストの移動を主にARP replyで通知でき、NASにデータを保存することを前提にし、ネットワークや物理デバイスの移行を考えなくてよいものとしている。

移行元のOSを停止するまえに、移行元のメモリの状態を反復的に移行先にコピーし、両者の状態を近づける。 初回にすべてのデータをコピーし、後続のラウンドでは前回のコピー中に変更された差分データをコピーする。 差分データが十分に小さくなれば、移行元のOSを止め、トラヒックを移行先に向けつつ、最後の差分をコピーする。 その後、移行先から移行元に完全なコピーの完了を通知し、移行元からacknowlegeを受けとれば、移行元を停止し、デバイスドライバをアタッチしIPアドレスの移動を告知する。

反復的にメモリの状態をコピーすると、コピーに使う帯域が大きいとダウンタイムを短くできるが、同時に移行するサービスの利用する帯域を制限してしまう。 そこで、使える帯域の最大値と最小値をあらかじめ決めておき、コピーする差分量で帯域を調整する。 はじめにメモリの状態をすべてコピーするときは最小の帯域をつかう。 後続のラウンドでは、直前のラウンドで汚れたページ数を前のラウンドの時間で割った値をdirting rateとし、dirting rateに定数を加えた値を帯域に設定する。 帯域が最大値に達するか転送すべきサイズが256KBになったら反復を止める。

論文をこちらからダウンロードできます。