仮想環境

2009年05月07日

PhenomにXen環境構築(9/n) Ubuntu9.04へアップグレード

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

Xen関連パッケージをholdする

Eucalyptus環境を構築するためにUbuntuを9.04にしたい。
単にupgradeしてしまうとXen関連パッケージまでアップグレードされてしまう。
それを避けるべく、Xen関連パッケージはholdしておく。

対象パッケージを確認

$ dpkg -l | egrep 'xen|python' | awk '{print $2}'
libxen3
linux-image-2.6.24-23-xen
linux-restricted-modules-2.6.24-23-xen
linux-ubuntu-modules-2.6.24-23-xen
python
python-central
python-dev
python-minimal
python-support
python-xen-3.2
python2.5
python2.5-dev
python2.5-minimal
xen-hypervisor-3.2
xen-shell
xen-tools
xen-utils-3.2

holdする

$ sudo dpkg --get-selections | egrep xen | awk '{print $1, " hold"}' | dpkg --set-selections

「hold」になった事を確認

$ dpkg --get-selections | egrep 'xen|python'
libxen3                                         hold
linux-image-2.6.24-23-xen                       hold
linux-restricted-modules-2.6.24-23-xen          hold
linux-ubuntu-modules-2.6.24-23-xen              hold
python                                          hold
python-central                                  hold
python-dev                                      hold
python-minimal                                  hold
python-support                                  hold
python-xen-3.2                                  hold
python2.5                                       hold
python2.5-dev                                   hold
python2.5-minimal                               hold
xen-hypervisor-3.2                              hold
xen-shell                                       hold
xen-tools                                       hold
xen-utils-3.2                                   hold

これでアップグレード対象から除外される。
/etc/apt/sources.listを変更し、hardyをjauntyにする。

$ sudo cp -pi /etc/apt/sources.list /etc/apt/sources.list-hardy
$ sudo perl -pi -e 's,hardy,jaunty,g' /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

無事、Ubuntu 9.04になった。
Debianパッケージは素敵です。

さあ、今度はEucalyptus環境を構築して行く。



半袖 at 15:05|PermalinkComments(0)TrackBack(0)

2009年05月05日

PhenomにXen環境構築(8/n) ついにdomUが動いた!!

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

何ともデリケートな構成


PhenomにXen環境構築(7/n) 少し寝かせよう… から10か月も経過していた。
他の作業が落ち着き、久しぶりに眠ったままのサーバを起動させてみた。
試行錯誤を繰り返しながらも、何とか動いてくれた。

簡単にまとめると、

  • Ubuntu 8.04
  • Linux 2.6.24
  • Xen 3.2

重要視したパッケージ一覧

  • libxen3
  • linux-image-2.6.24-23-xen
  • linux-restricted-modules-2.6.24-23-xen
  • linux-ubuntu-modules-2.6.24-23-xen
  • python
  • python-central
  • python-dev
  • python-minimal
  • python-support
  • python-xen-3.2
  • python2.5
  • python2.5-dev
  • python2.5-minimal
  • xen-hypervisor-3.2
  • xen-shell
  • xen-tools
  • xen-utils-3.2


作業手順


Xenが動くようにするまでに、かなり強引な作業を続けたので、
下記手順で正しいかどうかに疑問が残る。

  1. Ubuntu 8.04 Serverをインストール
  2. apt-get update
  3. python2.5系をインストール
  4. xen3.2系をインストール
  5. linux-image-2.6.24-23-xenをインストール

1年近く経過してようやく動いた。
最新最速マシンに手を出すのはもうやめよう…


その先は


これで終わりではない。
今後はEucalyptus環境を構築していく。



仮想化技術Xen-概念と内部構造
David Chisnall
毎日コミュニケーションズ
売り上げランキング: 125284


半袖 at 20:20|PermalinkComments(0)TrackBack(0)

2008年08月04日

PhenomにXen環境構築(7/n) 少し寝かせよう…

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

現状見解


6回に分けてまとめて来た「PhenomにXen環境構築(n/n)」シリーズ。
こう決断した。

2,3か月置いてみる

先日、本blog読者一人が
設定成功する事を楽しみにしている人が居る事を知った。
その人にとっても残念な結果となってしまった…。

  • アーキテクチャが新し過ぎた
    • Xenが未対応の可能性
  • 諸事情により時間が無くなった

年末にでももう一度挑戦予定。
それまで、しばし活動休止!



Xen徹底入門
Xen徹底入門
posted with amazlet at 08.08.04
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 114545


半袖 at 22:50|PermalinkComments(0)TrackBack(1)

2008年07月29日

PhenomにXen環境構築(6/n) DomainUの状態調査

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

PhenomにXen環境構築(5/n) DomainUが正常起動しないの続き


DomainUの状態を確認したい。
xen-utilsのコマンドで確認が可能。
  • /usr/bin/xenstore-list <path>
    • Domainの属性名表示
    • 概要表示
    • 「ls -1 <path>」の様なもの
  • /usr/bin/xenstore-ls <path>
    • Domainの属性名と属性値をツリー表示
    • 詳細表示
    • 「snmpwalk <path>」の様なもの
    • xenstore-listで表示対象を絞り込んでから実行するのが良い
<path>は、ファイルのパス指定の様に「/」からとなっている。



/usr/bin/xenstore-list実行結果例


$ sudo xenstore-list /
tool
vm
local
$ sudo xenstore-list /local
domain
$ sudo xenstore-list /local/domain
0
3
$ sudo xenstore-list /local/domain/3
vm
device
device-misc
console
image
store
control
memory
cpu
name
domid
serial

...



/usr/bin/xenstore-ls実行結果例


$ sudo xenstore-ls / | head
tool = ""
 xenstored = ""
vm = ""
 00000000-0000-0000-0000-000000000000 = ""
  on_xend_stop = "ignore"
  shadow_memory = "0"
  uuid = "00000000-0000-0000-0000-000000000000"
  on_reboot = "restart"
  image = "(linux (kernel ))"
   ostype = "linux"
.....
※DomainUが複数あると大量に表示されるので注意
あらかじめxenstore-listで表示対象を絞り込んでから実行するのが良い。



これでも解決には至らない。
まだ調査は続くのであった。



Xen徹底入門
Xen徹底入門
posted with amazlet at 08.07.29
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 124204


半袖 at 03:20|PermalinkComments(0)TrackBack(0)

2008年07月28日

PhenomにXen環境構築(5/n) DomainUが正常起動しない

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

PhenomにXen環境構築(4/n) 一歩前進。xendは正常起動した。しかし… の続編


残念なエントリしか書けない日々はウンザリする。
DomainUのイメージ作成は成功した。
$ sudo xen-create-image --dhcp --hostname=centos5 --install-method=rinse --dist=centos-5
そして、いよいよ起動させて、しばらくすると変な挙動に気付く。
$ sudo xm create /etc/xen/domains/centos5.cfg
Using config file "/etc/xen/domains/centos5.cfg".
Started domain centos5
バックグラウンドで起動しているはず。
console指定して接続してみようとすると…
$ sudo xm console centos5
このまま無反応。
期待する動作は、DomainUのttyを捕まえる事。
しかし、いつまで経っても無反応。



ttyの設定不足疑惑


動作しない報告を幾つか確認してみた。
それら報告では下記作業で動作するようになったそうだ。

  1. Domain0の/etc/securettyに「xvc0」と「hvc0」を追加
  2. /etc/xen/domains/centos5.cfgに「extra='xencons=tty1'」を追加
しかし…動かない!!
何故だ、何故なんだ…



その他動作しない原因として疑った項目


きっと無駄。
そう分かっていても可能性のある事を消去して行く。
  • カーネルのバージョン
  • DomainUのディストリビューション

しかし…DomainUは起動して来ない。
次回へ続く。



Xen徹底入門
Xen徹底入門
posted with amazlet at 08.07.28
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 109704


半袖 at 17:10|PermalinkComments(0)TrackBack(1)

2008年07月24日

PhenomにXen環境構築(4/n) 一歩前進。xendは正常起動した。しかし…

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

PhenomにXen環境構築(3/n) 実は駄目だった…の続き


挙動不審の原因判明。

複数Xenが混在していたから



混在時のバージョン毎挙動まとめ


Xen3.2、Xen3.1、Xen3.0がインストールされている状況とする。
  • Xen3.2
    • OS起動失敗
    • boot時に異常終了
    • 「Multiboot-moduleほげほげ」と言うメッセージが一瞬表示されるだけ
    • ※混在の有無に関わらず異常終了
  • Xen3.1
    • OS起動成功
    • xendが起動しない
    • ログには「Premission denied when trying to init xend」
  • Xen3.0
    • OS起動成功
    • xendは起動する
    • しかしpeth0が無い

何ともゴチャゴチャな状況。
この時は複数バージョンが混在していても問題ないと思い込んでいた。



晴れ間が見えた


暗中模索の中、とにかく何かヒントが無いか探し回った。
そして見つけた。

Premission denied when trying to init xendより

I just ran into this myself. In my case, the issue was mixing a xen 3.1 hypervisor with xen 3.2 utilities. Make sure you are booting off the correct kernel in grub.... mine somehow ended up pointed at the 3.1 hypervisor as the default!

おや…?
xen-hypervisor3.1とxen-utils-3.2の混在時にこの現象が起きるらしい。



どのバージョンを使うか検討


第一候補はXen3.1
  • Xen3.2は前述の通り起動すらしないので問題外
  • Xen3.1は起動の可能性を秘めている
  • Xen3.0はXen3.1が駄目だった場合に採用



Ubuntu Server 8.04 + Xen3.1


いよいよ検証作業。
  1. 非Xenカーネルで起動
  2. 不要パッケージ(Xen3.2とXen3.0)をapt-get removeする
  3. システム再起動
  4. Xen3.1なカーネルを選択して起動

ドキドキしながら起動を見守った…

xendが正常起動している!!

  • xendの正常起動を確認
  • peth0の存在を確認
第一関門突破。



そして、また新たな問題が発生したのだった…
次回へつづく。



Xen徹底入門
Xen徹底入門
posted with amazlet at 08.07.24
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 37506


半袖 at 18:20|PermalinkComments(0)TrackBack(1)

PhenomにXen環境構築(3/n) 実は駄目だった…

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

一難去って、また一難


NEC_3111
Powered by PICS


動いたと思ったら動いていなかった。
xm listを実行しようとしたら、
xendが動いてないぜ

怒られた。

思いつく限りのパターンで検証してみたけど、結局駄目。
振り出しに戻った。

順調にハメられている。


半袖 at 11:25|PermalinkComments(0)TrackBack(1)

2008年07月23日

PhenomにXen環境構築(2/n) Xenが動かない…そして解決

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

イキナリ結論


NEC_3115
Powered by PICS


PhenomにはXen3.1を使え

apt-get祭りの後、再起動すると正常に起動しなかった。
原因を探るべく、幾つか検証して行った。
  1. とりあえずapt-get大会
  2. bootに失敗
    1. Multiboot-modeほげほげほげ と一瞬出て再起動がかかる
    2. linux-image-2.6.24-19-xenが原因であると仮定
      1. linux-image-2.6.24-16-xenを確認 →boot失敗
      2. linux-image-2.6.24-18-xenを確認 →boot失敗
      3. ⇒もしかしたらカーネルは白?
    3. Xen-3.2原因であると仮定
      1. xen-hypervisor-3.1とxen-utils-3.1をインストール
      2. Xen 3.1 / Linux 2.6.24でboot確認 →成功
      3. 原因はXen 3.2である事が分かった
※今回はDomain-0を起動させる事が目的である。
よって、Xen-3.2を正常に起動させる方法を追求しないものとする。



Xen関連パッケージ


下記組合せでDomain-0が無事に起動している。
axsh@maria:/proc$ dpkg --get-selections | grep xen
libxen3.1                                       install
linux-image-2.6.24-19-xen                       install
linux-image-xen                                 install
linux-restricted-modules-2.6.24-19-xen          install
linux-restricted-modules-xen                    install
linux-ubuntu-modules-2.6.24-19-xen              install
python-xen-3.1                                  install
xen-hypervisor-3.1                              install
xen-shell                                       install
xen-tools                                       install
xen-utils-3.1                                   install

さて、次はDomain-Uの構築と動作検証だ。



Xen徹底入門
Xen徹底入門
posted with amazlet at 08.07.23
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 23248


半袖 at 17:25|PermalinkComments(0)TrackBack(0)

PhenomにXen環境構築(1/n) サーバスペック

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

サーバ環境


NEC_3110
Powered by PICS


model name
AMD Phenom(tm) 9950 Quad-Core Processor
cpu MHz
2600.086
cache size
512 KB
Memory
7988296 kB (2Gx4)
HDD
ST3500320AS (500Gx2)
RAID
ソフトウェアRAID1
こいつにUbuntu Server8.04をインストールした。


半袖 at 17:00|PermalinkComments(2)TrackBack(0)

2008年06月26日

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

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

引退させたいサーバを引退させる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で良いと思う。

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


半袖 at 16:45|PermalinkComments(0)TrackBack(0)

2008年06月25日

[Debian][Xen] /etc/xen-tools/xen-tools.confを貼り付けてみる

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

/etc/xen-tools/xen-tools.confの内容


何となく落ち着いた設定がこれ。
あとは必要に応じてxen-create-imageのオプションを指定する。

$ egrep -v '^#|^$' /etc/xen-tools/xen-tools.conf
dir = /home/xen
install-method = debootstrap
size   = 8Gb      # Disk image size.
memory = 256Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = etch     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.
kernel      = /boot/vmlinuz-`uname -r`
initrd      = /boot/initrd.img-`uname -r`
arch=i386
mirror = http://ftp.us.debian.org/debian/
ext3_options   = noatime,nodiratime,errors=remount-ro
ext2_options   = noatime,nodiratime,errors=remount-ro
xfs_options    = defaults
reiser_options = defaults
output    = /etc/xen/domains




半袖 at 17:25|PermalinkComments(0)TrackBack(0)

2008年06月23日

[Debian][Xen] Debian(Domain0)にCentOS4(DomainU)を構築 ミラーサイト変更

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

DebianにCentOS4の仮想環境を作ろう


コマンドが異常終了した。
$ sudo xen-create-image --install-method rinse  --dist centos-4 --hostname centos4

早速ログ確認すると、
何てこった…参照先が存在しない。

どこかに設定ファイルがあるはずなので探してみる。
debian$ cd /etc/
debian$ grep http://anorien.csc.warwick.ac.uk/ -r . -l 2>/dev/null
./rinse/rinse.conf
なるほど。



ミラーサイト設定を変更


$ cd /etc/rinse
$ sudo cp -pi rinse.conf rinse.conf.0
$ sudo vi rinse.conf

$ diff rinse.conf.0 rinse.conf
14,15c14,15
< mirror = http://anorien.csc.warwick.ac.uk/mirrors/centOS/4.6/os/i386/CentOS/RPMS/
< mirror.amd64 = http://anorien.csc.warwick.ac.uk/mirrors/CentOS/4.6/os/x86_64/CentOS/RPMS/
---
> mirror = http://ftp.riken.jp/Linux/centos/4.6/os/i386/CentOS/RPMS/
> mirror.amd64 = http://ftp.riken.jp/Linux/centos/4.6/os/x86_64/CentOS/RPMS/
19,20c19,20
< mirror = http://anorien.csc.warwick.ac.uk/mirrors/centos/5/os/i386/CentOS/
< mirror.amd64 = http://anorien.csc.warwick.ac.uk/mirrors/centos/5/os/x86_64/CentOS/
---
> mirror = http://ftp.riken.jp/Linux/centos/5/os/i386/CentOS/
> mirror.amd64 = http://ftp.riken.jp/Linux/centos/5/os/x86_64/CentOS/
これで上手く行った。



まとめ


環境
  • Domain0がDebian
  • DomainUをCentOSとする場合
  • つまり、install-methodをrinseとする場合

解決方法
  1. /var/log/xen-tools/を確認
  2. ミラー先に問題がある場合は/etc/rinse/rinse.confを変更
  3. 再度xen-create-imageを実行して確認


半袖 at 21:00|PermalinkComments(0)TrackBack(0)