2011年3月28日月曜日

TIPS: squeeze on raw format KVM

さっき作ったイメージ drbd1.img は最初に / 用の sda1 次が何も手を加えていない sda2。最後が swap の sda3。これをホスト側で見るには qcow2 の場合 nbd として扱えるらしけど -f raw でイメージを作成したので...要 root

# file drbd1.img 
drbd1.img: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 2048, 11716608 sectors; partition 2: ID=0x83, starthead 115, startsector 11718656, 3905536 sectors; partition 3: ID=0x82, starthead 143, startsector 15624192, 1150976 sectors, code offset 0x63
# losetup -o $((512 * 2048)) /dev/loop1 drbd1.img
# mkdir mnt_drbd1
# mount /dev/loop1 mnt_drbd1/
# ls mnt_drbd1/
bin boot dev etc home initrd.img lib lib32 lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var vmlinuz
# chroot mnt_drbd1/
root@parent:/# ls
bin boot dev etc home initrd.img lib lib32 lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var vmlinuz
root@parent:/# cat /etc/hostname
drbd1
root@parent:/# exit
exit
# umount mnt_drbd1
# losetup -d /dev/loop1
とまぁ、ホスト側でも操作可能。なので /etc/inittab 書き換え忘れたとか、/etc/default/grub 書き換えたけど update-grub 忘れたとかも後になってでもできる

他ネットワーク周りは...現況は tap 使うが良さげ。ホスト側で適当にブリッジ作っておいて...毎度手は面倒なので /etc/network/interface に

auto br0
iface br0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

bridge_ports none
bridge_fd 0
bridge_stp off
とか書いといて、KVM (に限らず、仮想ゲストマシン全て) 最初のブリッジに足のばすとすると /etc/kvm/kvm-ifup はこんな感じ
#! /bin/sh
BRCTL=/usr/sbin/brctl

uplinks=$(ip link ls | awk -F: '/^[1-9].*UP> / { print $2; }')
for switch in $uplinks; do
if [ -d /sys/class/net/$switch/bridge/. ]; then
$BRCTL addif $switch $1
break
fi
done

ip link set $1 up
でホスト側で isc-dhcp-server を動かすとゆー... 面倒だね

0 件のコメント: