KVM Live Migration(ケーブイエムライブマイグレーション)
KVM / QEMU のVM 稼働中マイグレーション機能。VMをサービス無停止で別ホストへ転送、ストレージ / メモリ Pre-copy + Post-copy 手法でダウンタイム10-100ms。
概要
KVM Live Migration は KVM (Kernel-based Virtual Machine) と QEMU の組み合わせで提供される、仮想マシン (VM) の稼働中マイグレーション機能。運用中VM を別の物理ホストへサービス無停止で転送する技術で、Pre-copy / Post-copy / Hybrid 等の手法を組み合わせ、ダウンタイム10-100ms 程度で実現する。OpenStack Nova / Proxmox VE / oVirt / Red Hat Virtualization 等で活用、クラウド事業者のホストメンテナンス・負荷再配分の基盤。
Live Migration 手法
Pre-copy (最も一般的)
- Source 側でVM メモリページを Destination へ順次転送
- 並行してVM 実行中・変更されたページを追跡 (dirty bitmap)
- 変更ページを再転送 (3-10 iterations)
- dirty ページ少なくなったらVM 一時停止
- 最終dirty ページ + CPU状態転送
- Destination でVM 再開
- ダウンタイム10-100ms
Post-copy
- Source からVM CPU状態のみ即時転送
- Destination でVM 即座再開
- メモリページは需要 (page fault) ごとに転送
- 同時にバックグラウンド転送
- ダウンタイム極小だが、転送中の page fault で性能低下
Hybrid (Pre-copy + Post-copy)
Pre-copy で大部分転送 → 残りはPost-copy 移行。ダウンタイム+性能のバランス取得。
主要設定
# QEMU monitor 経由
(qemu) migrate -d tcp:dest-host:4444
# Libvirt 経由
virsh migrate --live myvm qemu+ssh://dest-host/system
# OpenStack Nova
openstack server migrate --live dest-host my-vm
マイグレーション設定オプション
| オプション | 機能 |
|---|---|
--persistent | 移行先で永続化 |
--undefinesource | 移行元から削除 |
--copy-storage-all | ストレージも転送 |
--copy-storage-inc | 増分のみ |
--xml file | 移行先設定変更 |
--postcopy | Post-copy モード |
--auto-converge | CPU 自動制限で収束促進 |
性能要件
| 要素 | 推奨 |
|---|---|
| ネットワーク帯域 | 10GbE以上 (1Gbps では大型VM 数十分) |
| MTU | 9000 (Jumbo Frame) 推奨 |
| 共有ストレージ | iSCSI / NFS / Ceph |
| CPU 互換性 | 同世代Intel または AMD (cpu host-passthrough不可) |
| RAM | Destination に十分な空き |
OpenStack Live Migration
OpenStack Nova は Nova Compute 経由でKVM Live Migration を抽象化、API呼び出しで実行可能:
openstack server migrate --live-migration --host compute-02 server-uuid
Disk-less vs Disk migration
| モード | ストレージ | 速度 |
|---|---|---|
| Disk-less | 共有 (NFS/iSCSI/Ceph) | 高速 |
| Disk migration | ローカル | 遅い |
| Block migration | ローカル + Block転送 | 中 |
関連用語との違い
- vs VMware vMotion: VMware版・概念同等
- vs Hyper-V Live Migration: Microsoft 版・SMB3 経由
- vs Container Live Migration: CRIU 利用・実用度低
FAQ
Q1: ダウンタイム本当に10ms? A: メモリ4GB / 1Gbps で10-50ms・大型VM (64GB) は数分かかる場合あり。共有ストレージ + 10GbE で確実。
Q2: CPU 互換性?
A: Source / Destination で同じCPUモデルが望ましい (Intel→AMD 移行不可)。cpu host-model で抽象化、host-passthrough は移行不可。
Q3: 個人で使う? A: Proxmox VE クラスタ (2-3ノード) で家庭ホームラボ環境で実用可。NAS (TrueNAS) を共有ストレージとして利用。