January 30, 2012

CentOS6 における仮想マシンまわりのあれこれ

CentOS6になってKVMがデフォルトとなり,色々勝手がかわっているようなので,
目につくたびにちょこちょこ更新する.


仮想ブリッジの構築
virbrとかNATとかいらない(ことが私の環境では多い)ので,恒久的なブリッジを手で作ることにする.
まず,virbrを破棄
# virsh net-destroy default
# virsh net-autostart default --disable
次いで,NetworkManagerを止めてnetworkに戻す.(この辺はやりようが他にある気がするが…)
# chkconfig NetworkManager off
# chkconfig network on
# service NetworkManager stop
# service network start
さらに,ブリッジ作成用にbridge-utilsを導入(普通は入っているかも)
# yum install bridge-utils
で,ようやくブリッジを作成する.ブリッジ名をbr0とする.ifcfg-br0を新規作成し,ifcfg-eth0を修正する.
# vim /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0"
HWADDR="9C:8E:99:7B:F4:93"
ONBOOT="yes"
BRIDGE=br0
注意事項として,上記の設定をするとホストマシンのゲートウェイデバイスはeth0ではなくbr0になる.
インターフェイス名を指定して設定してあるものは,eth0をbr0に書き換える必要がある.
このブリッジを仮想マシン構築時にネットワークデバイスとして指定すればよい.


仮想マシンのコピー
下記コマンドでコピーする.LVMで切り出した論理ボリュームをまるっと割り当てている.
# virt-clone --original master_vm --name copy_vm --file /dev/VolumeGroup/LogicalVolumeCopy
注意すべきはNIC.
原因がCentOS6由来なのかKVM由来なのか調べていないが,
ネットワークデバイス名がeth0->eth1となってしまう.
eth0が存在せずeth1があるのは気持ちが悪いので対処しておく.
コピー後に以下の手順で対処する.



  • 一度NICを消してVMを起動
  • そのままVM終了
  • NICを追加して起動

  • NICの消去・追加はGUIからだと楽ちん.
    直接いじりたい人は/etc/libvirt/qemu以下のファイルを編集
    全く別件をいじっていて気がついたのだけど、これってudev関係なので、
    仮想マシンのコピーの前に、/etc/udev/以下のルールでNIC関連のを消しておくだけでいいっぽい。

    No comments:

    Post a Comment