タグ : Server

ちょっとした KVM サポートツール

そろそろよかろうと思って、サーバーを jessie に上げたら、Xen が起動しない。ホスティングサーバーの変更もあったので、思い切って仮想化基盤を KVM に変更……というか、回帰しました。

ところが、xen-tools のようなお手軽ツールがありません。いや、あることはあるのですが、古いバージョンにしか対応してなくて、しかも最近全くメンテされてない状態。

一応、昔気に入ってて、日本語翻訳までした Proxmox VE も見てみたのですが、えらく進化してしまって、機能てんこ盛りで、こんなんイラネ。VNC もセキュリティに気を遣うのはわかるんですが、ごく一部のクライアントしか対応してないプロトコルしか外に出さない=使いにくい Java クライアントとか、HTML 5 版のやっぱり使いにくいクライアントしか想定にないみたいで、愛想が尽きた。

まあ、イメージは素の状態から CD イメージとか、debootstrap とか使って作るので、VM の作成や削除の機能はいらないや。となると、VM の起動/停止が簡単にできればそれでいいんだけど……ないですね。そんなツール。

ということで、vmmaestro という名前だけは大層なシェルスクリプトをでっち上げました。GitHub にて絶賛公開中。一応、vhost-net とか、x-data-plane とかにも対応してます。

Debian で Xen 4.1 を

パッケージで入れられてしめしめとか思ってたら、何か依存関係でも壊したのか、起動しないゲストがあったでござる。ということで、バニラな方法で入れ直す。元ネタは昨日と同じでこちら → Xen 4.1 from source with Debian Squeeze 2.6.32-5-xen-amd64 dom0 (test)

Xen.org からソースを取ってきます。現時点での最新版は、4.1.2。


wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz

ビルドに必要なパッケージをインストールします。/etc/apt/source.list に以下の行を追加して、


deb-src http://ftp.jp.debian.org/debian/ sid main

以下を実行。


apt-get build-dep xen
apt-get build-dep xen-utils-common

build-dep で入らないパッケージを追加で入れます。


apt-get install libx11-dev libssl-dev python2.6-dev

で、おもむろにビルド


make xen
make tools
make stubdom

エラーがなければインストール。


make install-xen
make install-tools PYTHON_PREFIX_ARG=
make install-stubdom

Domain 0 に必要なサービスデーモンの起動設定を忘れずに。


update-rc.d xencommons defaults
update-rc.d xendomains defaults

4.0 までと互換性のある、xm ツールセットを使う場合は、xend も起動するようにしておきます。


update-rc.d xend defaults

ひとまず以上で、Xen が起動するはずです。再起動して確認しましょう。


xl list

次のように、Domain-0 がリストされない場合、たいていは GRUB の設定ミスです。

ゲストの作成、管理は色々な方法がありますが、素で Xen を使う場合、xen-tools でゲストを作るようにしておくと、余計なデーモンが常駐したりしないので、その分管理が簡単になります。ですが、パッケージの xen-tools は当然のことながら、xen のパッケージに依存していますのでこの場合は入れられません。従って、これもソースから入れることになります。

まず、xen-tools の実行に必要なパッケージをさくさく入れます。

次にソースを取得します。パッケージよりちょっとだけリビジョンが上がっています。


wget http://xen-tools.org/software/xen-tools/xen-tools-4.2.1.tar.gz

ソースを展開して、インストールすればおしまいです。意外に簡単。


make install

また、xen-tools では RedHat なディストリビューションを入れるのに、Rinse を使うので、CentOS とかゲストに入れたいと考える人は、入れなくてはなりません。まずは、Rinse の実行に必要なパッケージを入れます。


apt-get install rpm rpm-common rpm2cpio

次にソースを取得します。パッケージより大幅にリビジョンが上がっています。


wget http://www.steve.org.uk/Software/rinse/rinse-1.9.1.tar.gz

ソースを展開して、インストールすればおしまいです。これも簡単。


make install

Debian Squeeze に Xen 4.1 を入れる

XenServer 6.0 の基盤になってたり、他のディストリがこぞって採用してるのが、Xen 4.1 なのですが、時期の関係で、Squeeze には、4.0 が収録されています。何か中途半端。sid にはパッケージがありますので、そっからソースを取ってきて(さすがにバイナリは持ってきても動かないので)、ビルドする方法を見つけましたので、備忘録がてら。

元ネタはこちら → Xen 4.1 from source with Debian Squeeze 2.6.32-5-xen-amd64 dom0 (test)

まずは、source.list に1行追加。


deb-src http://ftp.jp.debian.org/debian/ sid main

squeeze や wheezy の行があれば、コメントアウトしておきます。

で、おもむろに、ビルド…する前に、パッケージをひとつ追加しておきます。ないとコンパイルがエラーになるので。


apt-get install ipxe-qemu

PXEブートに使うファームのQEMU用ROMイメージなんですが、なぜか Xen をインストールしても、build-dep しても入りません。

まずはビルド環境を整えます。


apt-get update
apt-get build-dep xen
apt-get build-dep xen-utils-common

Xen のソースと Debian パッチの取り寄せ、ビルドも apt-get で済むのが便利なところ。


cd /usr/src/
apt-get source xen -b
apt-get source xen-utils-common -b

エラーがなければパッケージができているので、dpkg でインストールすればおしまい。


dpkg -i *xen*deb

 

Twitter links powered by Tweet This v1.8.3, a WordPress plugin for Twitter.