既存の環境をドメインU化する

既に稼働しているLinux環境をXenのドメインUに移行したくなった。
ということで、やってみる。

で、まず、既存環境を突っ込む対象のイメージを作成。

# mount -t ext3 /dev/sde1 /mnt/new
# cd mnt/
# dd if=/dev/zero of=disk.img bs=1M count=3145728 seek=1024

なんか勘違いして3Tになってた。
途中でキャンセルしてとりあえず350Gに。
対象のシステムはmdでミラーリングしているので取り合えず状況チェック。

# cat /proc/mdstat
Personalities : [raid1]
md6 : active raid1 sdb9[0] sda9[1]
3903680 blocks [2/2] [UU]

md5 : active raid1 sdb8[0] sda8[1]
19534912 blocks [2/2] [UU]

md4 : active raid1 sdb7[0] sda7[1]
19534912 blocks [2/2] [UU]

md3 : active raid1 sdb6[0] sda6[1]
97659008 blocks [2/2] [UU]

md2 : active raid1 sdb3[0] sda3[1]
48829440 blocks [2/2] [UU]

md1 : active raid1 sdb2[0] sda2[1]
9767424 blocks [2/2] [UU]

md0 : active raid1 sdb1[0] sda1[1]
96256 blocks [2/2] [UU]

片方をアレイから取り外す。

# mdadm –manage /dev/md1 –fail /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md1
# mdadm –manage /dev/md1 –remove /dev/sdb2
mdadm: hot removed /dev/sdb2
# mdadm –manage /dev/md0 –fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
# mdadm –manage /dev/md0 –remove /dev/sdb1
mdadm: hot removed /dev/sdb1
# mdadm –manage /dev/md2 –fail /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md2
# mdadm –manage /dev/md2 –remove /dev/sdb3
mdadm: hot removed /dev/sdb3
# mdadm –manage /dev/md3 –fail /dev/sdb6
mdadm: set /dev/sdb6 faulty in /dev/md3
# mdadm –manage /dev/md3 –remove /dev/sdb6
mdadm: hot removed /dev/sdb6
# mdadm –manage /dev/md4 –fail /dev/sdb7
mdadm: set /dev/sdb7 faulty in /dev/md4
# mdadm –manage /dev/md4 –remove /dev/sdb7
mdadm: hot removed /dev/sdb7
# mdadm –manage /dev/md5 –fail /dev/sdb8
mdadm: set /dev/sdb8 faulty in /dev/md5
# mdadm –manage /dev/md5 –remove /dev/sdb8
mdadm: hot removed /dev/sdb8
# mdadm –manage /dev/md6 –fail /dev/sdb9
mdadm: set /dev/sdb9 faulty in /dev/md6
# mdadm –manage /dev/md6 –remove /dev/sdb9
mdadm: hot removed /dev/sdb9

元と同じようになるようにマウントしまくる。

# mkdir /mnt/old
# mount -t ext3 /dev/sdb2 /mnt/old
# cd /mnt/old
# mount -t ext3 /dev/sdb1 boot
# mount -t ext3 /dev/sdb3 data
# mount -t ext3 /dev/sdb6 usr
# mount -t ext3 /dev/sdb7 home
# mount -t ext3 /dev/sdb8 var

作成したイメージにコピーする。
tmp, sys, procはディレクトリを作る。

# mount -o loop /mnt/new/disk.img /mnt/img
# cd /mnt/old
# cp -pr bin/ boot/ cdrom chroot/ data/ dev/ emul/ etc/ home/ lib* media/ mnt/ opt/ root/ sbin/ selinux/ srv/ usr/ var/ ../img
# cd /mnt/img
# mkdir tmp
# mkdir sys
# mkdir proc
# chmod 777 tmp

DomainU用の設定ファイルを書く。

kernel=’/boot/vmlinuz-2.6.26-2-xen-amd64′
ramdisk=’/boot/initrd.img-2.6.26-2-xen-amd64′
memory=3072
name=’debian’
root=’/dev/sda1′
#nics=1

disk =    [
‘file:/mnt/new/disk.img,sda1,w’,
]

vif =    [
‘mac=00:16:3E:FE:83:92,bridge=eth0′
]

vcpus=2

on_poweroff = ‘destroy’
on_reboot   = ‘restart’
on_crash    = ‘destroy’

イメージ内の/etc/fstabを書き換える。

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1      /               ext3    errors=remount-ro 0     1

#chroot
/home /chroot/i386/home none defaults,bind 0 0
/tmp /chroot/i386/tmp none defaults,bind 0 0
/dev /chroot/i386/dev none defaults,bind 0 0
/proc /chroot/i386/proc proc defaults 0 0

イメージをアンマウントして起動。

# umount /mnt/img
# xm create debian

いけた。
動くものだなー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>