仮想環境

2013年01月14日

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

Bash + Vagrant ⇒ Bagrant

これまでに何度も仮想マシンイメージを作って来て、どこか面倒臭さを感じていた。そんな中、Vagrantに出会い、ソレが欲しかったモノの1つであると感じ、調査・検証・評価。そして、bash実装する事にした。

Bagrantの機能
  • Bagrantfileで仮想マシンを定義
  • bagrantコマンドで仮想マシンをビルド・起動・停止
  • ハイパーバイザーはKVM
利用ライブラリ

自作したvmbuilderのみ。

使い方

詳細はhansode/bagrantを参照の事で、起動までは、下記手順で行える。

  1. Bagrantfileを作成 $ bagrant init
  2. 仮想マシンイメージをビルド $ bagrant build
  3. 仮想マシンを起動 $ bagrant up

また、hansode/bagrant-boxがBagrantfileを含んだテンプレート集となっているので、Bagrantfileを自作したい方の参考になるはず。

開発期間

移植作業だったので、結構あっさりと実装出来た気がする。

  • 設計: 3日(主にVagrantの調査)
  • 実装: 2日
今後の予定

開発した動機がそうであるように、何か機能追加される事があったら、自分自身が欲しいと思ったタイミング。

あとがき

これも、まだ、自動化したかった事の1つでしかない。

フィードバックなど

もしBagrantに興味がある方がいらっしゃいましたら、ご一報下さい。

続きを読む


編集
@hansode at 10:00|PermalinkComments(0)TrackBack(0)

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を起動検証




編集
@hansode at 18:50|PermalinkComments(0)TrackBack(0)

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環境を構築して行く。




編集
@hansode at 15:05|PermalinkComments(0)TrackBack(0)

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が動くようにするまでに、かなり強引な作業を続けたので、
下記手順で正しいかどうかに疑問が残る。

  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



編集
@hansode at 20:20|PermalinkComments(0)TrackBack(0)

2008年08月04日

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

現状見解


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

2,3か月置いてみる

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

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

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



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



編集
@hansode at 22:50|PermalinkComments(0)TrackBack(1)

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で表示対象を絞り込んでから実行するのが良い
<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で表示対象を絞り込んでから実行するのが良い。



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


編集
@hansode at 03:20|PermalinkComments(0)TrackBack(0)

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の設定不足疑惑


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

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



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


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

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


編集
@hansode at 17:10|PermalinkComments(0)TrackBack(1)

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


いよいよ検証作業。
  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



編集
@hansode at 18:20|PermalinkComments(0)TrackBack(1)
このエントリーをはてなブックマークに追加

一難去って、また一難


NEC_3111
Powered by PICS


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

怒られた。

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

順調にハメられている。



編集
@hansode at 11:25|PermalinkComments(0)TrackBack(1)

2008年07月23日

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

イキナリ結論


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の構築と動作検証だ。
続きを読む


編集
@hansode at 17:25|PermalinkComments(0)TrackBack(0)