ライブ仮想マシン移送とは (Live migration): 仮想マシンを稼働させたまま,別の物理ホストへ移動させる技術
- Xen
- QEMU + KVM
- VirtualBox
- VMWare
などなどで利用できる.
-
VMの動的な再配置が簡単になる.
-
恩恵を受けるシナリオ
- 物理マシンのメンテナンス
- 負荷分散
- 消費電力の削減
- Googleのデータセンタ等で既に利用されていること.
- ソフトウェア階層が深いが故に様々なアプローチが考えられる
- 発展途上
- 仮想化技術について
- ハイパーバイザとその簡単な役割
- ライブVM移送の基礎
- ライブVM移送の実現手法の最新動向
- アプリとの関係
- 仮想マシンモニタ(VMM, ハイパーバイザ)と呼ばれるソフトウェアがVMを作り出す.
- クラウド環境を中心に利用されている.
- AWS EC2: Xenをベースとした仮想環境
- GCP (GCE): KVM
各VMの仮想CPUをハイパーバイザが実CPUにディスパッチ
- ハイパーバイザが実メモリへのマッピングを管理する
- ゲストOS: 仮想アドレス(VA) - ゲスト物理アドレス(gPA)の対応を保持.
- ソフトウェアとハードウェア仮想化支援を活用する方法がある
- shadow paging
- extended pt (intel) nested pt (amd)
VMの移送を考えたときにVMの仮想ハードウェア状態を他の物理ホストにコピーすれば移送ができそう.
- メモリ移送に時間がたってしまう
- VMは稼働しているためVCPUやメモリの状態は転送中に変化してしまい,同じVMの状態を移送先で作ることは出来ない
- 3種類の代表的な移送方法
- Pre-Copy Post-Copy Hybrid (Pre + Post)
- 仮定:仮想ディスクは共有ストレージにあるとする
まずはメモリをコピーしメモリコピーが終わったら他の状態等をコピーする.
2段階のメモリコピー
- Iteration Phase
- 前回の移送時にdirtyとなったメモリページを転送する
- VMの全メモリを移送時に転送
- 転送後に更新のあったページを転送する
- 前回の移送時にdirtyとなったメモリページを転送する
- 更新のあったメモリページを検出する.
- Write-intensive なアプリが稼働すると移送時間が長期化しがち
- 移送先でVMを開始して,順次メモリを転送する
両者のいいところどりしたようなメモリ転送技術
JVMの知識を利用してメモリ転送を効率化する手法