この日記のはてなブックマーク数 Subscribe with livedoor Reader

2011-10-25 Tue


Vyatta君の Id "T0" respawning too fast なるメッセージを止める [XenServer][Vyatta]


XenServer上で Vyatta を動かしていると

INIT: Id "T0" respawning too fast: disabled for 5 miutes


なんてメッセージが頻繁に仮想マシンのコンソールに吐き出されます。これは、XenServerで動かしている Vyatta にttyS0 が存在しないのにも関わらず、標準で ttyS0 のコンソールに関する設定が入っているためです。
なので

http://www.vyatta.org/forum/viewtopic.php?p=2559#2559

を参考に、Vyatta の設定モードから該当の設定を消してやります。

$ configure
# delete system console device ttyS0
# commit
# save


これで OK :-)



2011-10-24 Mon


CentOS5で、Trac と git の連携 [CentOS]


どうやら Trac の Plugin を使えば、Trac でも Subversion じゃなくて、git との連携ができるらしい。
ベースとする Trac はインタアクトさんが配布されている

Trac-0.11.7.ja1
http://www.i-act.co.jp/project/products/products.html

で、git と連携するには

GitPlugin for Trac
http://trac-hacks.org/wiki/GitPlugin

をインストールします。肝心の git 自体は、EPELリポジトリからインストールしてあります。

CentOS5 の python は 2.4 なので、多分これだろうと

sudo easy_install http://github.com/hvr/trac-git-plugin/tarball/trac-0.11-py24


とする。うまくインストール出来た見たいなので

[trac]
# simple single-repository configuration
repository_dir = /var/git/test.git
repository_type = git
[git]
cached_repository = true
persistent_cache = true
shortrev_len = 6
git_bin = /usr/bin/git
[components]
tracext.git.* = enabled
tracopt.ticket.commit_updater.committicketreferencemacro = enabled
tracopt.ticket.commit_updater.committicketupdater = enabled


としてみたら、うまく動いたみたいだ。なお、対象となる git リポジトリは

# mkdir /var/git/
# git init --bare /var/git/test.git
# git --git-dir=/var/git/test.git update-server-info
# chown apache.apache -R /var/git/test.git


として作成済。このリポジトリに https 経由でアクセスさせたいと思って、よくある WebDAV経由での方法をやってみたら push するときに、下記のようにエラー。

$ git push origin master
Username:
Password:
error: Cannot access URL https://git.example.jp/git/test.git/, return code 22
fatal: git-http-push failed


正確なソースがよくわからないけど、どうやら WebDAV だと、push がサポートされないっぽい。最近は、git-http-backend を使うらしい。なので、こいつを使うことに。apache の設定に

SetEnv GIT_PROJECT_ROOT /var/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git /usr/bin/git-http-backend/
<Location /git/test.git>
  AuthType Basic
  AuthName "for developers"
  AuthUserFile /var/www/htpasswd.git
  Require valid-user
</Location>


みたいな設定を入れておく。


2011-10-20 Thu


完全仮想化なCentOS5.6を準仮想化にする [XenServer]


XenServer Tips 完全仮想化のLinux VMを準仮想化対応に変更する
http://techtarget.itmedia.co.jp/tt/news/1109/06/news01.html

という記事が出るよ!という予告があってからわくわくしてたら、CentOSの例がなかったので、しょんぼり。
きっと誰かやってるよね!と Google 先生に聞きながらやってみたら出来たので、以下に備忘録として書いとく。

ちなみに参考URLにも記載しましたが

PV enabling an HVM from VMware on XenServer (CentOS RedHat)
http://itproctology.blogspot.com/2009/06/pv-enable-hvm-on-xenserver.html

がすごく参考になりました

■ HVMなサーバでの作業

1. なにはともあれ、Xen対応kernelをインストールする

# yum install kernel-xen


2. PVドライバ付きの initrd を作成する。

# cd /boot
mkinitrd --omit-scsi-modules --with=xennet --with=xenblk --preload=xenblk initrd-$(uname -r)xen-no-scsi.img $(uname -r)xen


ただ、uname -r の結果と、インストールした kernel-xen のバージョンが違うこともあるので、違っていたら頑張って打ち込む。

# cd /boot
# mkinitrd --omit-scsi-modules --with=xennet --with=xenblk --preload=xenblk \
   initrd-2.6.18-274.3.1.el5xen-no-scsi.img 2.6.18-274.3.1.el5xen


次に、/boot/grub/menu.lst にある kernel-xen のあたりを下記のように書き換える。

title CentOS (2.6.18-274.3.1.el5xen-no-scsi)
 root (hd0,0)
 kernel /vmlinuz-2.6.18-274.3.1.el5xen ro root=/dev/VolGroup00/LogVol00 console=xvc0
 initrd /initrd-2.6.18-274.3.1.el5xen-no-scsi.img


CentOS5.6 だと、/etc/inittab に

co:2345:respawn:/sbin/agetty xvc0 9600 vt100-nav


がもともと記載されているので、コンソール周りでのこれ以上の対応は不要だと思います。

もちろん、このセクションの kernel で boot するように

default=0


あたりを適当に書き換える必要があります。

で、ここでのありがちなミスが "modules" を "initrd" に書き換え忘れ。忘れてると、あとで

VFS: Cannot open root device "VolGroup00/LogVol00" or unknown-block(0,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)


とか言って、起動してくれません。

■ XenServerで、PV化を実施する。

次に、VMのパラメータを変更していきます。このあたりは、先日の vyatta のインストール [2011-10-19-1]とほとんど一緒です。
以下は、すべて XenServer上で実施します(対象VM名を HVM2PV にしてあります)

# xe vm-list name-label=HVM2PV params=uuid


ここで得られるのが、vm の uuid です。でこれをもとに作業していきます。

a) boot policyのクリアおよび bootloaderの指定

# xe vm-param-set uuid=<uuid> HVM-boot-policy=
# xe vm-param-set uuid=<uuid> PV-bootloader=pygrub


b) 利用している HDDの vbd uuid を調べる

# xe vm-disk-list uuid=<vm uuid>


で調べた vbd の uuid を指定して bootable にします。

# xe vbd-param-set uuid=<vbd uuid> bootable=true


これで、準仮想化(PV)の VM として起動してくれます。例によって、ログインプロンプトが出たけどコンソールから入力が受け付けられないよ!ってなった場合には、XenCenterを再起動してください。

まぁミスったら、この逆で

# xe vbd-param-set uuid=<vbd uuid> bootable=false
# xe vm-param-set uuid=<uuid> HVM-boot-policy="BIOS order"
# xe vm-param-set uuid=<uuid> PV-bootloader=


にして、起動させ、xen kernel じゃない kernel を grub menu から選択してもらえれば、復旧できるかと思います。

あとは、xen-tools を入れれば、XenMotionも可能になります。ただ、最初に紹介した記事にもあるように、仮想マシンにCDを入れっぱなしの状態にすると、

too many bootable disks


云々と言われて起動しなくなるので、注意が必要です。

参考URL
- http://itproctology.blogspot.com/2009/06/pv-enable-hvm-on-xenserver.html
- http://forums.citrix.com/thread.jspa?threadID=266975


2011-10-19 Wed


XenServer5.x系に Vyattaをインストールする [XenServer][Vyatta]


Vyatta は、ソフトウェアルータとして最近数年注目されています。仮想化の流行によって、その注目度も、さらに加速している気もしますが、XenServerで使ってるぜ!ってあんまり聞かない気がするので、インストール方法を書いときます。利用者が少なくてサポートが後手に...とかなっても悲しいので ;-p

http://www.vyatta.org あたりから

vyatta-livecd-virt_VC6.3-2011.07.21_i386.iso

を入手します。Vyatta 6.3 から、XenServer専用のテンプレート(xvaファイル)は提供されなくなって、すべてのこのISOイメージがベースとなってます
"CIFS ISO Library" あたりに入れておくといいでしょう。もしISO Libraryを 作ってないなら、XenCenterをインストールしている Windowsの1ディレクトリを CIFS ISO Library として登録してしまうと、お手軽で楽。

ともあれ、まず LiveCD で Vyatta を立ち上げます。XenCenterから

1. "New VM" で、VM Template として "Other install media" を指定する。
2. "Install from ISO library or DVD drive" で上記 isoイメージを指定(*1)
3. 1vCPU & Memory 512MB & HDD 4GB あたりで VMを作成(VM名は VC63あたりで)

で、しばらく待つとVMが立ち上がってくるので、Console からログインします。初期ID/Passは、ともに "vyatta"になってます。

で、このままだと普通に LiveCD で Vyatta が立ち上がっただけなので、インストールを開始します。そのまま "install-system"と type してください。

vyatta@vyatta:~$ install-system


でここからちょっと表示と改行タイミングがあってないので、リターンキー3回押したあとに、"Yes"と入力してリターンを押してください。で、再度リターンキーを押すと、インストールが開始されるのが、見えるはずです。

なにをやったかというと

Would you like to continues? (Yes/No) [Yes]: <- リターン1回目
Partition (Auto/Union/Parted/Skip) [Auto]: <- リターン2回目
Install the image on? [sda]: <- リターン3回目
Continue? (Yes/No) [No]: Yes <- "Yes"の入力とリターン4回目
How big of a root partition should I create? (1000MB - 4295MB) [4295]MB: <- リターン5回目


を入力したことになります。

で、

Which one should I copy to sda? [/opt/vyatta/etc/config/config.boot]:


と聞かれるので、そのままリターンを押します。すると vyatta ユーザの初期パスワードを聞いてくるので、適当に付けてやります

Enter vyatta password: <- 類推しづらいパスワードを入力
Retype vyatta password: <- 確認のため、再度パスワードを入力


さらに

Which drive should GRUB modify the boot partition on? [sda]:


で、そのままリターンを押します。すると、paravirtual で動作させるかどうか聞いてきますので、Yes と答えます。

conversion to PV domU? [No]: Yes <- "Yes"の入力とリターン


これでインストールは完了です。次に XenTools を導入します。一旦、VMをshutdownしましょう

vyatta@vyatta:~$ shutdown
Proceed with shutdown? [confirm] <- リターンを入力


shutdown が確認できたら、LiveCD を Eject して VMをスタートさせます。
VMが起動してきたら、ID : vyatta で、先ほど設定したパスワードと共にログインします。また、VM の DVD Drive 1 には xs-tools.iso を指定しておきます。

あとは、下記を実行(debパッケージのバージョンは、導入している XenServerのバージョンによって異なります)

$ sudo su -
# mount /dev/cdrom /mnt
# dpkg -i /mnt/Linux/xe-guest-utilities_5.6.100-651_i386.deb
# umount /mnt
# shutdown


これで、Xen Tools の導入が完了です。が、まだ終わりません。この状態だと、完全仮想化で動くので、パフォーマンスもよくないですし、XenMotion もできません。このため、このVMを準仮想化として動作させるように XenServer 側で設定していきます。

まず、XenServer(ホスト側)にログインし、対象のVMの uuid を調べます。

# xe vm-list name-label=VC63


次に、PV で起動するようにブート関連のパラメータ設定を変更していきます。<uuid> には、上記コマンドで調べたVM の uuid を指定します。長いですが、数文字打ち込んで "Tab" キーを押せば補完入力も可能です。

# xe vm-param-set uuid=<uuid> HVM-boot-policy=
# xe vm-param-set uuid=<uuid> PV-bootloader=pygrub


次に、boot させるHDDの属性を変更します。まず最初に

# xe vbd-list vm-name-label=VC63


で、VMにつながっている HDD をチェックします。今回の例だと、device が hda と表示されているはずです。これを bootable=true にします。

# xe vbd-param-set uuid=<uuid> bootable=true


ここで指定する uuid は、vdi-uuid *ではない* ことに注意してください。vbd の uuidです。

ここまでくればあと1歩。これで reboot すれば、準仮想化として動作するはずです。が、ログインプロンプトまで順調に表示されるものの、入力ができない状態に陥るかと思います。
理由はよくわかりませんが、慌てずに一旦 XenCenter を終了させ、再度 XenCenter を起動させてみてください。今度は普通につながるはずです。

あとはよく使う Firewall のルールを入れ、/config/config.boot から "interface ethernet"を削除してからこのVMをテンプレート化してしまえば、仮想ルータを作り放題です :-)

参考: http://www.vyatta.org/getting-started/how-to-install

Referrer (Inside): [2011-10-20-1]

2011-10-17 Mon


XenServer Configuration Limits [XenServer]


XenServer Configuration Limits
https://support.citrix.com/servlet/KbServlet/download/28909-102-661481/XenServer-6.0-Configuration-Limits.pdf

XenServer 6.0 系ですが、制限事項などがまとまってます。



Twitter って便利ですねぇ [よもやま]


Twitter で書きたいことがさくっと書けちゃうので、そっちでガス抜きされちゃって、Blogの更新しなくなって、もう2年も経つんですね。びっくり。
ただ、あとで振り返る時の閲覧性が、Evernote と組み合わせても、イマイチなので、ぼちぼち気がついた時にでも、こっちにも書く予定...


IPv4/IPv6 meter
検索キーワードは複数指定できます
ChangeLogを検索
Google
Web www.kunitake.org
思ったより安い……時もある、Amazon

カテゴリ