hacks/仮想環境
2010年04月02日
■手軽に仮想環境を構築しよう
▼検証環境
- VMware Workstation 7
- Windows 7 Professional
- CentOS-5.4(i386)
▼前提条件
- OSインストールが終わっているものとする
■作業内容
▼リポジトリ追加とxenインストール
# cd /etc/yum.repos.d # wget http://www.gitco.de/linux/i386/centos/5/CentOS-GITCO_TESTING.repo # yum install -y xen-3.4.0
▼Xenカーネルをデフォルト指定へ変更
# vi /boot/grub/grub.conf < default=1 > default=0
▼システム再起動
# sync; sync; sync # reboot
▼動作確認
# xm list Name ID Mem VCPUs State Time(s) Domain-0 0 464 1 r----- 299.1
後は、お好みdomUを起動検証
2009年05月07日
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環境を構築して行く。
2009年05月05日
何ともデリケートな構成
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が動くようにするまでに、かなり強引な作業を続けたので、
下記手順で正しいかどうかに疑問が残る。
- Ubuntu 8.04 Serverをインストール
- apt-get update
- python2.5系をインストール
- xen3.2系をインストール
- linux-image-2.6.24-23-xenをインストール
1年近く経過してようやく動いた。
最新最速マシンに手を出すのはもうやめよう…
その先は
これで終わりではない。
今後はEucalyptus環境を構築していく。
仮想化技術Xen-概念と内部構造
posted with amazlet at 09.05.05
David Chisnall
毎日コミュニケーションズ
売り上げランキング: 125284
毎日コミュニケーションズ
売り上げランキング: 125284
2008年08月04日
2008年07月29日
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で表示対象を絞り込んでから実行するのが良い
/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で表示対象を絞り込んでから実行するのが良い。
これでも解決には至らない。
まだ調査は続くのであった。
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 124204
翔泳社
売り上げランキング: 124204
2008年07月28日
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の設定不足疑惑
動作しない報告を幾つか確認してみた。
それら報告では下記作業で動作するようになったそうだ。
- Domain0の/etc/securettyに「xvc0」と「hvc0」を追加
- /etc/xen/domains/centos5.cfgに「extra='xencons=tty1'」を追加
何故だ、何故なんだ…
その他動作しない原因として疑った項目
きっと無駄。
そう分かっていても可能性のある事を消去して行く。
- カーネルのバージョン
- DomainUのディストリビューション
しかし…DomainUは起動して来ない。
次回へ続く。
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 109704
翔泳社
売り上げランキング: 109704
2008年07月24日
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
いよいよ検証作業。
- 非Xenカーネルで起動
- 不要パッケージ(Xen3.2とXen3.0)をapt-get removeする
- システム再起動
- Xen3.1なカーネルを選択して起動
ドキドキしながら起動を見守った…
xendが正常起動している!!
- xendの正常起動を確認
- peth0の存在を確認
そして、また新たな問題が発生したのだった…
次回へつづく。
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 37506
翔泳社
売り上げランキング: 37506
2008年07月23日
イキナリ結論
PhenomにはXen3.1を使え
apt-get祭りの後、再起動すると正常に起動しなかった。
原因を探るべく、幾つか検証して行った。
- とりあえずapt-get大会
- bootに失敗
- Multiboot-modeほげほげほげ と一瞬出て再起動がかかる
- linux-image-2.6.24-19-xenが原因であると仮定
- linux-image-2.6.24-16-xenを確認 →boot失敗
- linux-image-2.6.24-18-xenを確認 →boot失敗
- ⇒もしかしたらカーネルは白?
- Xen-3.2原因であると仮定
- xen-hypervisor-3.1とxen-utils-3.1をインストール
- Xen 3.1 / Linux 2.6.24でboot確認 →成功
- ⇒原因はXen 3.2である事が分かった
よって、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の構築と動作検証だ。
平 初 長谷川 猛 宮本 久仁男 大島 孝子
翔泳社
売り上げランキング: 23248
翔泳社
売り上げランキング: 23248
サーバ環境
- 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

