2010/09/11

CentOS5でOpenVZ(3)

OpenVZの導入をゼロからやっている身としては、VE構築時の作業は定形スクリプトを書いてしまえばいい。
しかし、不慣れな人には面倒で複雑な作業が盛りだくさんなOpenVZ。
そこで、plesk的なWEBコンソールを探してみた。
とはいうものの、該当するプロジェクト・プロダクトはあるものの殆ど死んでいるor枯れてしなびているものばかりだった。
そのなかでもOpenVZ WEB Panelは、Railsで書かれていてモダンな雰囲気があったので早速試してみた。
本家通りに、
wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh
をHNで実行すると大量に依存ライブラリをインストールしてくれる。
インストール完了後、自動的にwebrickを起動してくれ、http://$HN_IP:3000などとすると
本家のscreenshotと同じ画面が表示される。


初期ログインアカウントは、ID: admin  PSWD:  admin。
ログイン後の画面。






喜んで早速ログインしたがHNの監視が出来ない…。



事前にhw-daemonを起動させておかなければならないらしい。
ここまで自動起動しておきながら、少し不親切。
hw-daemonと同一サーバーかつ、自動インストールした場合はowp起動時に実行されると後々判明...
渋々、 
cd /opt/ovz-web-panel/utils/hw-daemon/
vi hw-daemon.ini  ( テキトーに編集 )
ruby hw-daemon.rb start
として、再びWEB画面でconnect操作するとHN監視を開始出来た。

試しにVEを作成する。


ここの画面で表示されるOS TemplateはOWP起動時の/vz/template/cache/*.tar.gzを出力している模様。
事前にvzpkgcache実行するなどして作成しておかないと表示されず、OWP起動後は認識されなかった。

CentOS5でOpenVZ(2)

レンタルサーバーでファイルシステムをクラスタリングしたい!
自炊するならDRBDとかOCFSなんかが選択肢に上がるけど、普通レンタルサーバーでベアメタルなんて有り得ない。
と言うわけで、OpenVZ上にGlusterFSを導入してみた。

GlusterFSの仕様上、fuseが必要になるけどOpenVZでfuseは少し手がかかる。
事前にHN上でfuseをインストールした後に、
# vzctl set $veid --devices c:10:229:rw --save
# vzctl exec $veid mknod /dev/fuse c 10 229
# vzyum $veid install fuse
などと実行しておかなければならない。

これでようやくGlusterFSが利用できる。
後は前述本家ドキュメントと/etc/glusterfs/*.volを参考にC/S両方を記述する。
この際、クライアントで type cluster/replicate を指定するといわゆるDRBD的なクラスタリングが構築出来る。
ちなみに、サーバー側でtype features/locksを指定しないとハマる。

CentOS5でOpenVZ(1)

某レンタルサーバーのRedhatEL5上で仮想化するのにKVMだとフットプリント+稼働台数制限があるらしく、急遽OpenVZで構築することになった。
CPUとかメモリ使用率を柔軟に制限したい要件と合致していたことが決め手になった。
とはいうものの、RedhatEL5の評価版だと何かと面倒だったからCentOS5で検証した。
以下、その記録。

セットアップ手順は本家を参照。
Linux環境下での「x86_64は鬼門」というのは未だ健在の模様で、ご多分に漏れず色々と問題があった。

まず、標準のリポジトリではx86専用だったため、setx86_64スクリプトを実行してx86_64用のrpmをインストールした。
次にテンプレートは、CentOS5 x86_64用metaを入れる。
早速VEを作成してとemacs-noxなんぞをyumするとrpmがlockされた?らしいエラーメッセージが大量出力された。
基本に立ち戻ってvzpkgcacheを実施、10分程度経ったのちに無事centos-5-x86_64.tar.gzが作成された。
これでようやくまともなVEを作成できた。

しかし、別鯖で同様の手順で構築を実施したら、vzpkgcacheが異常終了した。
面倒だったから先に作ったcacheを流用してお茶を濁した。
そもそも、precreat を使えば良かったとscpで転送中に気がついた…


ちなみに、vzpkgcacheは腐ってるらしく、


 /usr/share/vzpkg/cache-osスクリプト中、以下を修正する必要がある。
VECFG=$VECFGDIR$VEID.conf
VECFGSAMPLE=$VECFGDIRve-basic.conf-sample

VECFG=${VECFGDIR}$VEID.conf
VECFGSAMPLE=${VECFGDIR}ve-basic.conf-sample