2008年06月26日

サーバ圧縮。古いサーバをXen環境のDomainUとして、まるごと論理移転させてしまおう!

このエントリーをはてなブックマークに追加

引退させたいサーバを引退させる1つの解決策


古いマシンでサービス中のコンテンツが存在する。
もう、何年も前のサーバだ。

昨今のマシンであれば仮想環境で運用させられる。
Xenへ移行させてしまおう。
そんな事例を聞いた事が無い…気がする。

まずはやってみよう。
軽い乗りで移行作業が進められた。



作業概要


古いサーバ側
  1. 論理移転用ディスクイメージdisk.img作成
  2. 作成したイメージdisk.imgをマウント
  3. 「/」からrsyncしてレプリカを作成
  4. rsync済のdisk.imgを移転先へ転送
論理移転先サーバ側
  1. 受け入れ用DomainUを構築しておく
  2. 古いサーバ側で生成したイメージをdisk.imgとして配置
  3. DomainUを起動



いざ、論理移転


dfで容量を確認。
30G以内だったので、今回は30Gとする。

 # cd /tmp
 # mkdir xen
 # cd xen
 # df
 # dd if=/dev/zero of=disk.img count=$((1024 * 30)) bs=1M
ext3でフォーマット

 # mkfs.ext3 disk.img
disk.imgをマウント

 # mount -t ext3 -o loop ./disk.img /mnt/loop
rsyncで「/」から同期。
この時、disk.imgは同期対象外とする。

 # cd /
 # rsync -Hax / /mnt/loop --exclude tmp/xen/disk.img
 # umount /mnt/loop
Xen環境サーバへイメージファイルを転送

 # scp tmp/xen/disk.img $(remote):/tmp/.
方法は何でも良い。
今回はxen-create-imageで環境を構築して、disk.imgを入れ替えた

 $ sudo xen-create-image  --ip=192.0.2.21 --netmask=255.255.255.0 --gateway=192.0.2.1 --broadcast=192.0.2.255 --hostname=skel --size=2Gb --memory=256Mb --swap=1024Mb
disk.imgを入れ替える

 $ cd /home/xen/domains/skel
 $ sudo mv -i /tmp/disk.img ./.
一時的にdisk.imgをマウント

 $ sudo mkdir /mnt/loop
 $ sudo mount -o loop disk.img /mnt/loop
chroot(chrootしなくても良い。必須作業ではない。)

 $ sudo chroot /mnt/loop /bin/bash
ゴッソリ書き換えてしまう。
swapと「/」パーティションである事が前提

 # vi /etc/fstab
 proc            /proc           proc    defaults        0       0
 /dev/sda1 none swap sw 0 0
 /dev/sda2 / ext3 noatime,nodiratime,errors=remount-ro 0 1
Xen環境にあわせる

 # vi /etc/network/interfaces
不要なので2〜6はコメントアウト

 # cp -p /etc/inittab /tmp/inittab.$$
 # vi /etc/inittab
 # diff /tmp/inittab.$$ /etc/inittab
 < 2:23:respawn:/sbin/getty 38400 tty2
 < 3:23:respawn:/sbin/getty 38400 tty3
 < 4:23:respawn:/sbin/getty 38400 tty4
 < 5:23:respawn:/sbin/getty 38400 tty5
 < 6:23:respawn:/sbin/getty 38400 tty6
 ---
 > #2:23:respawn:/sbin/getty 38400 tty2
 > #3:23:respawn:/sbin/getty 38400 tty3
 > #4:23:respawn:/sbin/getty 38400 tty4
 > #5:23:respawn:/sbin/getty 38400 tty5
 > #6:23:respawn:/sbin/getty 38400 tty6
chrootから抜ける

 # exit
DomainUを起動

 $ sudo xm create /etc/xen/domains/skel.cfg -c
起動して来る事を確認出来たら作業完了。



無事に引退。振り返り


Xenは便利でお手軽だ。
  • 静かになった
    • サーバ稼動時はファンとディスクが五月蝿かった。
  • パフォーマンス向上
    • 嬉しい誤算
    • よく考えてみると、ハードウェアが良くなったから当たり前か。

あくしゅでは積極的にXenを使って開発して行く。
開発環境だけでなく、本番環境共にXenで良いと思う。

面白い検証データが取れたら随時公開予定。



編集
@hansode at 16:45│Comments(0)TrackBack(0)仮想環境 

トラックバックURL

コメントする

このブログにコメントするにはログインが必要です。