アットウィキロゴ

Xen


xmコマンド

xm list

xm create

# xm create [domain config file]
# xm create -c  [domain config file]
-c
起動後、コンソールに繋ぎに行く

xm console

xm save

# xm save [domain name] [save file]

xm restore

Xen0の構築

OSインストール

Xen0はCentOS5にて構築。インストール時に仮想化を組み込んでおけば特に何もすることなくXen0として起動する。マシンはこれ。

インストールはPEXブートで行う。

パーティションはkickstartではこうなった。

clearpart --linux --drives=sda,sdb
part raid.20 --size=200 --ondisk=sda --asprimary 
part raid.21 --size=200 --ondisk=sdb --asprimary
part swap --size=8000 --ondisk=sdb
part swap --size=8000 --ondisk=sda
part raid.26 --size=100 --grow --ondisk=sdb
part raid.25 --size=100 --grow --ondisk=sda
raid /boot --fstype ext3 --level=RAID1 --device=md0 raid.20 raid.21
raid pv.27 --fstype "physical volume (LVM)" --level=RAID1 --device=md1 raid.25 raid.26
volgroup VG0 --noformat --pesize=32768 pv.27
logvol / --fstype ext3 --name=root --vgname=VG0 --size=20000

とりあえず、Xen0には20GBもあればいいのではないか。CentOSはソフトウェアRAID1に/bootパーティションを含ませておけば、両方のHDDにブートローダを書き込んでくれるので楽ちん。 もしsdbにブートローダが書き込まれなかった場合は、grubでインストールすること。

とりあえずインストールが終わったら、zshやらscreenやらsudoやらは各自お好みで。

HDDは初期不良率が高いので、とりあえずバッドブロックが無いか調べることにする。

# badblocks -o /tmp/badblocks_sda.txt -v /dev/sda
# badblocks -o /tmp/badblocks_sdb.txt -v /dev/sdb

500GBもあると長い。。

Pass completed, 0 bad blocks found.

と無事出ただろうか。

インストール後の設定

yum-updates

/etc/yum/yum-updatesd.conf 
emit_via = email

自動的に

dbus_listener = yes

これもいらないだろう。コメントアウトしておく。

など。upadteも自動にする場合は、

# automatically install updates
do_update = no
# automatically download updates
do_download = no
# automatically download deps of updates
do_download_deps = no

をyesに。

pkgの役割などはここを参照させていただいたり。

Xen-U

インストール

virt-install

コマンドラインからならvirt-installが便利。

# virt-install \
--paravirt \
--name=v_disk_4 \
--vcpus=2 \
--ram=512 \
--file=/opt/xen/xen-u-1.img \
--file-size=4 \
--location=ftp://localhost/pub/centos5 \
--nographics \
-x ks=ftp://localhost/pub/xen-u-ks.cfg
--paravirt
準仮想化
-x
Additional arguments to pass to the installer with paravirt guests とhelpにあるので、インストーラに渡す準仮想化のオプションですね。ここではkickstart用ファイルを指定。xのバーチャルマシンマネージャでも指定できます。

インストール後設定

必要ないサービスのストップ

Xen-Uでこれはいらないだろう、というサービスを止めたりパッケージ削除したり。

  • smartd
  • cpuspeed
  • kudzu
  • rawdevices
  • cups
  • IPv6も必要なければ使わないほうがよい。
    /etc/modprobe.conf
    
    に、
    alias net-pf-10 off
    
    を追加して再起動。
    • 流れでip6tablesもいらない。

など。

必要なサービスのスタート

Xen-Uでもこれは使うな、というサービスのスタートやらインストールやら設定やら

  • zsh
  • screen
  • ntp
  • snmpd

Masterにする際に気をつけること

  • 不要なサービスは自動起動設定を無効にすること 上記した、smartdとかね。
  • パッケージアップデートを行うこと
  • ネットワークインタフェースの設定はDHCPにしておくこと IPアドレスを固定にしてしまうと、コピーして作った仮想マシンを同時に起動した際にIPアドレスが重複してしまいます。IPアドレスはコピーした仮想マシンの初回起動時に設定します。
  • ネットワークインタフェースの設定でMACアドレスを消しておくこと これは忘れがちなので気をつける。CentOS5.1では指定されていた。
  • rootユーザの初期パスワードには捨てパスワードを使用すること 捨てパスワードを設定しておくと、第3者に対してマスターイメージをコピーして提供することが容易になります。
  • rootユーザのbash履歴ファイルを消しておくこと
  • /etc/ssh/ssh_host*などの鍵ファイルを消しておくこと。(次回起動時に生成される)

Masterからコピーした後にすること。

  1. xen-u設定ファイルで、uuid、macアドレスの変更。
  2. rootパスワードの変更。
  3. hostnameの変更。

参考URL

Xen-Uイメージファイルをループバックでマウント。

  1. losetup -f*1
  2. losetup /dev/loop0 [xen imagefile]
  3. ls /dev/mapper
  4. kpartx -a /dev/loop0
  5. ls /dev/mapper*2
  6. vgscan
  7. lvscan
  8. lvchange -ay /dev/VolGroup00/LogVol00*3
  9. mount /dev/VolGroup00/LogVol00 /mnt

マウント出来ただろうか。参考URL中にもあるが、マウントするマシンと、Xen-UでVolumeGroup名が被っていると上手くいかない。その場合はVolGroup名を変更するためのマウント用Xen-Uを新たに作成する。詳しくはこちら

解除するには、手順を逆に行う。

  1. umount /mnt
  2. lvchange -an /dev/VolGroup00/LogVol00
  3. lvscan*4
  4. kpartx -d /dev/loop0
  5. losetup -d /dev/loop0

参考URL

最終更新:2008年02月01日 11:17

*1 使用されていない最初の loop デバイスを見つける

*2 imagefile中のパーティションが追加されている

*3 マウントするLVをActiveに

*4 ActibeがInactiveに戻っているかチェック