2018年6月3日日曜日

CentOS6からCentOS7へKVM環境移行

KVM環境をCentOS6からCentOS7に移行します。
作業内容は次のようになります。
  • ブリッジデバイスの準備
  • KVMゲストの移行
まずは、ネットワーク環境から。
# nmcli con show
NAME       UUID                                  TYPE      DEVICE
enp0s31f6  03b67f02-f8a7-4893-aa4e-aaaaaaaaaaaa  ethernet  enp0s31f6
enp4s0     b91dc271-b52b-4363-a74d-bbbbbbbbbbbb  ethernet  enp4s0
enp5s0     0584bdaf-5f78-44f1-a941-cccccccccccc  ethernet  enp5s0
virbr0     f0764441-0948-4d0d-830d-dddddddddddd  bridge    virbr0
#
enp0s31f6, enp4s0がLOMの1Gbps、enp5s0がXG-C100Cの10Gbpsです。
enp5s0をシステムのデフォルト、enp0s31f6をKVMの仮想ブリッジ用、enp4s0をSoftEtherのブリッジ用に使用 します。

ブリッジデバイスbr0を作成します。
# nmcli con add type bridge ifname br0
Connection 'bridge-br0' (4a45b8de-49cc-4c50-8b8d-eeeeeeeeeeee) successfully added.
#
# nmcli con show
NAME        UUID                                  TYPE      DEVICE
bridge-br0  4a45b8de-49cc-4c50-8b8d-eeeeeeeeeeee  bridge    br0
enp0s31f6   03b67f02-f8a7-4893-aa4e-aaaaaaaaaaaa  ethernet  enp0s31f6
enp4s0      b91dc271-b52b-4363-a74d-bbbbbbbbbbbb  ethernet  enp4s0
enp5s0      0584bdaf-5f78-44f1-a941-cccccccccccc  ethernet  enp5s0
virbr0      f0764441-0948-4d0d-830d-dddddddddddd  bridge    virbr0

次に、br0と物理NIC(enp0s31f6)の関連付けを行います。
# nmcli con add type bridge-slave ifname enp0s31f6 master bridge-br0
Connection 'bridge-slave-enp0s31f6' (417d8d8a-31d3-4f91-b64e-ffffffffffff) successfully added.
#
# nmcli con show
NAME                    UUID                                  TYPE      DEVICE
bridge-br0              4a45b8de-49cc-4c50-8b8d-eeeeeeeeeeee  bridge    br0
enp0s31f6               03b67f02-f8a7-4893-aa4e-aaaaaaaaaaaa  ethernet  enp0s31f6
enp4s0                  b91dc271-b52b-4363-a74d-bbbbbbbbbbbb  ethernet  enp4s0
enp5s0                  0584bdaf-5f78-44f1-a941-cccccccccccc  ethernet  enp5s0
virbr0                  f0764441-0948-4d0d-830d-dddddddddddd  bridge    virbr0
bridge-slave-enp0s31f6  417d8d8a-31d3-4f91-b64e-ffffffffffff  ethernet  --

ブリッジデバイスのスレーブとなったenp0s31f6を削除します。
# nmcli con delete enp0s31f6
Connection 'enp0s31f6' (03b67f02-f8a7-4893-aa4e-aaaaaaaaaaaa) successfully deleted.
#
# nmcli con show
NAME                    UUID                                  TYPE      DEVICE
bridge-br0              4a45b8de-49cc-4c50-8b8d-eeeeeeeeeeee  bridge    br0
bridge-slave-enp0s31f6  417d8d8a-31d3-4f91-b64e-ffffffffffff  ethernet  enp0s31f6
enp4s0                  b91dc271-b52b-4363-a74d-bbbbbbbbbbbb  ethernet  enp4s0
enp5s0                  0584bdaf-5f78-44f1-a941-cccccccccccc  ethernet  enp5s0
virbr0                  f0764441-0948-4d0d-830d-dddddddddddd  bridge    virbr0

ブリッジデバイスにIPアドレスを設定します。
# nmcli con mod bridge-br0 ipv4.method manual ipv4.addresses "192.168.0.101/23"
#
# ip route
default via 192.168.1.1 dev enp5s0 proto static metric 102
192.168.0.0/23 dev enp5s0 proto kernel scope link src 192.168.0.100 metric 102
192.168.0.0/23 dev br0 proto kernel scope link src 192.168.0.101 metric 425
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1

KVMゲストの移行
旧PCでKVMゲストをシャットダウンして、下記コマンドで設定ファイルをエクスポートします。
GUEST-NAMEは、virsh list -allなどで表示される名前に置き換えてください。
# virsh dumpxml GUEST-NAME > GUEST-NAME.xml

次に旧PCからエクスポートした設定ファイルと、ゲストのイメージファイルを新PCにコピーします。 標準では、/var/lib/libvirt/images 配下にイメージファイルがあります。
コピー後、新PCで次のコマンドを実行して設定をインポートします。
# virsh define GUEST-NAME.xml

あとは、virt-managerを起動してメモリサイズ等を微調整後、ゲストを起動すれば移行完了。
のはずでしたが、ゲスト起動時に下記メッセージが表示され起動しませんでした。
Error Starting domain: unsupported
configuration: host doesn't support invariant TSC

結局、/etc/libvirt/qemu/GUEST-NAME.xmlから次の記述を削除したら起動しました。
<feature policy='require' name='invtsc'/>

0 件のコメント:

コメントを投稿