Debian で libvirt 使って仮想ホストを云々

某所で云々したソレを備忘まで控えておくことに。
手順というかしたことは以下。

  • bridge interface の導入
  • 事前に用意しておいた qcow2 を使って仮想ホスト導入
  • 設定など

以下ざっくりなメモですが、という事で。

bridge interface の導入

ええと、仮想リソースが親と同じネットワークに接続したい、という事でこの方法を採用しております。やってみると確かに管理する上ではこちらの方が楽ちんですね。
という事で導入メモなんですが、まず関連パケジを導入しておきます。

# apt-get install kvm libvirt-bin bridge-utils virt-manager

で、br0 を追加。こちら、本当に必要だったのかどうかは謎です。

# brctl addbr br0

で、/etc/network/interfaces を以下に修正。

auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet manual
 
auto br0
iface br0 inet static
    address 10.0.0.100
    network 10.0.0.0
    netmask 255.255.255.0
    gateway 10.0.0.1
    dns-nameservers 10.0.0.1
    bridge_ports eth0
    bridge_fd 9
    bridge_hello 2
    bridge_maxage 12
    bridge_stp off

で、この修正を反映。

# /etc/init.d/networking stop
# /etc/init.d/networking start

以下が確認できれば OK な模様。

  • ifconfig コマンドにより br0 にアドレスが付いていること
  • eth0 が UP なステイタスになっていること

事前に用意しておいた qcow2 を使って仮想ホスト導入

最初、シリアルコンソールな設定を qcow2 なイメージに盛り込んでなくて微妙にハマッたのですが、そのハードルさえ越えれば後はさくさくでした。
とりあえず kvm などで qcow2 なソレを起動して /etc/inittab が以下を含む形 (末端に追加するなど) にしておきます。

s0:12345:respawn:/sbin/agetty 115200 ttyS0
s1:12345:respawn:/sbin/agetty 115200 ttyS1

で、shutdown した後にこの qcow2 なイメージを実機に転送しておいて、でびあんであれば /var/lib/libvirt/images あたりに放り込んでおきます。

# mv /tmp/debian.img /var/lib/libvirt/images/debian.img
# cd /var/lib/libvirt/images
# cp debian.img debian.test.img

後は以下なコマンドで_導入が終了したことになる_模様。
つうか最初、--disk で指定すると適当に名前が付いて /var/lib/libvirt/images あたりに自動でファイルができるのかな、と思っていたのですが全然そんなことありませんでした。
ただ、導入が完了したディスクイメージがあるのであれば、以下のコマンドで libvirt が管理する設定ファイルなどの類が自動作成されるので非常に便利であると言えます。

# virt-install \
        --import \
        --name=test --ram=512 --vcpus=1 \
        --disk path=/var/lib/libvirt/images/debian.test.img
        --os-type=linux \
        --accelerate \
        --network=bridge:br0 \
        --noautoconsole

動いている模様。

# virsh list
 Id    Name       State
--------------------------
 1     test       running

ので、コンソール接続をしてみます。

# virsh console test
Connected to domain test
Escape character is ^]

Debian GNU/Linux 7.0 test ttyS0
 
test login:

接続後、Enter の押下が必要である事に注意のこと。

設定など

仮想ホストの状態として、コピー元と同じ形になるので設定の変更が必要。以下あたりなのかどうなのか。

  • /etc/hostname
  • /etc/hosts
  • /etc/network/interfaces

また、自動起動については

# virsh autostart 1

という形で設定できる模様。
X を動かしたくないサーバ機でもヨソで作った qcow2 なイメージを持ってって云々できる、というのは色々な意味でポイント高いですね。