コンピュータやソフトウェアのあれこれ@道民(&元道民)
サーバ管理
Debian squeezeでXen4.0からkvmへの移行
3月 8th
Xen4.0からkvmへのv2vをやる必要性がでてきたので、以下その記録。
自分用メモなので、どこの環境でもこの手順できるかどうかわからないけど、スジとしては悪くないと思う。
前提条件
- kvmのインストールと設定は終わってる
- Xen側ホストのOSはDebian Squeeze
- KVM側ホストのOSもDebian Squeeze
- 移行対象のVMのOSも当然Debian Squeeze
- Xen側ホストとKVM側ホストは別サーバである
以下のCDというかISOイメージを用意する。
- SystemRescueCD(参考:http://www.sysresccd.org/)
- GRUB2 boot CD(参考:http://oasis.halfmoon.jp/mw/index.php?title=BootCD)
つまり、新しいマシンを買ってきてそこにkvm on sqeuuzeの環境を構築して、そこにxen4.0で動いている古いマシンからVMをv2vするための手順。
アーキテクチャはamd64なので、適時読み替えてください。
1.kvm側ホストにvmをインストールするためのストレージを設定する。
ここでは、kvm側ホストのlvm領域にvmインストール用の領域を確保する。
# lvcreate -L 10G -n example_lv vmpool01vg
Logical volume “example_lv” created
#
2.xen側ホストのVMをshutdownする。
3.xen側ホストからVMのdiskファイルをKVM側ホストにコピーする
4.KVM側ホストでvirt-managerを起動し、VMの新規作成をクリックする。
> virt-manager &
Use ISO ImageにSystemRescuCDを選択する。
インストール先は手順1で作成したlvm領域を指定する。
それ以外は普通にVMを作る
5.KVM側VMの詳細でハードウェアを追加する
ストレージを選択し、手順3でコピーした旧VMのdiskファイルを追加する。タイプはIDE Disk。
6.KVM側ホストでVMを起動する
amd64のvmを移行する場合は、SystemRescuCDのboot画面で64bit kernelを選択する
7.SystemRescuCDがbootしたら、手順1で作成したlvm領域にファイルシステムを作成する
# fdisk /dev/vda
# mkfs.ext4 /dev/vda1
8.手順7で作成したファイルシステムをmountする
# mkdir /mnt/kvm
# mount -t ext4 /dev/vda1 /mnt/kvm
9.手順3でコピーした旧VMのdiskファイルをmountする
# mkdir /mnt/xen
# mount -t ext3 /dev/sda /mnt/xen
10.旧VMの中身を新VMにコピーする
# cd /mnt/xen
# cp -a bin boot etc export home lib lib64 media mnt opt root sbin selinux srv sys tmp usr var /mnt/kvm
11.新VMのファイルシステムに/devと/procのディレクトリをつくる
# cd /mnt/kvm
# mkdir dev
# mkdir proc
# chmod 555 proc
中身はOS起動時に自動的に作成されるのでコピーしたりしないこと。
12.新VMのファイルシステムに対してchrootする
# cd /
# chroot /mnt/kvm
13.kernelをインストールする
# aptitude update
# aptitude install linux-image-2.6-amd64
14./etc/fstabを編集する
/dev/vda1 / ext3 errors=remount-ro 0 1
15.新VMをシャットダウンする。VMの設定でgrub2 boot cdからbootするように設定する。
15.grub2 cdで新VMを起動させる
grubのコマンドラインで以下のコマンドを入力し、新VMのOSをbootさせる。
grub> insmod ext2
grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-2.6.32-5-amd64 ro root=/dev/vda1
grub> initrd /boot/initrd.img-2.6.32-5-amd64
grub> boot
16.新VMにログインし、grub2をインストールする
# aptitude install grub
# grub-install /dev/vda
# update-grub2
17.新VMをシャットダウンし、grub2 boot cdを取り除く。
18.新VMをbootさせ正常に起動することと、正常に機能することを確認する。
以上で全行程終わりです。
SSLの自己証明書
4月 6th
for 自分メモ。
SSLのオレオレ証明書の作成方法。
滅多に作らないので、すぐに忘れちゃうので、メモ。
鍵ファイルを作る
# openssl genrsa -out server.key 1024
その鍵ファイルを元に、証明書ファイルをつくる。
# openssl req -new -x509 -key server.key -out server.crt
パーティションのinode sizeが128以上の場合、grubが認識しない
3月 30th
grubは、通常、inode sizeが128以上のファイルシステムを扱うことができない。
パーティション自体は見えるのだが、ファイルを見ることができないため、kernelやinitrdを指定してbootできない。
/bootが置いてあるパーティションのサイズが1GB超の場合、inode sizeが128以上になるため、この制限に引っかかる。
ディストリビューションによってgrubにパッチが当たってるようなので、最近のディストリビューションでは問題にならないようだが、たとえばHDD換装などでファイルをコピーした後、FDからgrubを起動してgrubをインストールしようとする場合に引っかかる。
(つか、僕はこれで引っかかった)
確実なので、/bootパーティションをinode size 128で明示的に指定してフォーマットすること。
/bootパーティションが、/dev/sda1の場合
# mkfs.ext3 -I 128 /dev/sda1
となる。