利用のためのメモ・ページです。xenを利用した仮想化サーバーCentOS5.2の良い点は、仮想化ツールのxenが組み込み済みであること。Virtualization(AMD-V)対応のCPUを利用すればxenの完全仮想化機能を利用することができる。この点でAthron64なサーバーはOK。用途はケースバイケースだが、poundを利用したクラスタリング・システムのワークベンチの構築などにxenは最適。この場合、domain0サーバーではpoundを走らせ、appacheは停止。ゲストOSとして複数のCentOS5.2を組み込み、それぞれをゲスト・httpdサーバーとして構成する。した場合、少なくとも3~5台程度のゲストOSの組み込みが必要となる。従来ならその台数だけサーバー実機を用意しなければならなかった。電気代もバカにならない。仮想化サーバーなら電気代は1台分で全てまかなえる。仮想化を行う場合、CentOS5.2の64bit版を使用しメモリは8GBフル実装が望ましい。最近は2GBのDDR2メモリーもとても安価(2000円以下で買える)なのでメモリーは可能な限り増設すべきだと思う。xen/LinuxはSwapに弱い。メモリーが不足してスワップが走るような状態になると、xenは暴走して突然リセットという事態になる場合がまだある(特にインストール時のファイルを利用したドライブの新規作成時)。xenで仮想化ゲスト・サーバーを組み込む場合、簡単なのは10GB~40GB程度のサイズ指定のファイルベースのゲストOS設定。パーティションを別切りで設定する場合、ファイルシステムは特定ディレクトリを占有するような論理的な構成では組み込めない。物理パーティションが要求される。CentOS5.2の場合、そうした物理パーティションは1台のHDDでは2つまでしか設定できないようなので、ゲストOSを複数用意する場合はdomain0の管理下にあるファイルベースの組み込みが安易ではあるが現実的。ファイルベースで構築するとファイルを管理しているdomain0の負荷が大きくなる。オーバーヘッドも大きくAthron3500+な単独サーバー利用時と比較して1.5倍程度処理が遅くなる。マルチコアなCPUを利用すればこのdomain0の負荷は軽減されるかもしれない。仮想化利用はマルチコアなCPUを利用すべきだが、ワークベンチ利用ならシングルコアなCPUでも十分実用的。トラブルなく安定して使えている。実際にdomain0からゲストOSを全てCentOS5.2(64bit版)で構成してみた。ゲストOSは合計で6セット。ML115G1/8GB/500GBHDD/。シングルコアなので負荷が重くなるとCPU使用率が100%推移することが多々ある。インストール直後やアップデート直後にLinuxはバックグラウンドでmanファイルやライブラリファイルの集約toolが起動して長時間高負荷状態になる。この高負荷状態は一時的・過渡的だから安定稼働状態なればそうそう高負荷にはならない。個人利用ならロードは0.0推移が普通。ゲストOSのインストールや稼働管理を行うために利用するツールはx/gnomeの「仮想化サーバーマネージャー」。簡易だが実に便利なツールだ。ゲストOSをファイルベースで組み込むなら何の設定もなしに速攻で組み込んで行ける。簡易であるが難点はある。スナップショット起動ができないこと。それとゲストOSの起動は手動で行わなければならないこと。24時間運用ならdomain0を再起動する必要はそれほど無いから問題も少ないが面倒ではある。このGUIツールを使う限りcronリブートなどの設定はできない。GUI/gnomeを走らせたままだとCPUの負荷が常時かかる。load換算で0.2程度だが、サーバー利用中は無駄な負荷でもある。本体の起動はレベル3なCUI起動にすべきである。設定時のみstartxコマンドでGUI/gnomeを起動し、サーバー利用時はログアウトしCUIに戻して放置しておくのが良い。GUIからCUIに戻してもxen/ゲストOSは動いたままだから心配はない。xenそれ自体の設定で起動時にゲストOSの自動起動させることは可能。現時点ではワークベンチ的に使用しているので選択的な起動ができる余地があったほうが良いと考えてあえて自動起動するような設定はしていない。これまでdomain0/ゲストOS(CentOS5.2)×6の合計7サーバーを仮想化状態で半年近く安定稼働させていたが、仮想コンソールの表示が遅いので現在はVirtualBoxに切り替えている。MicrosystemsのVirtualBoxを実装し、AMD64bit版のVirtualBox上でCentos5.2を実装してみた。実装上の要点はWindowsVISTA上のホストアダプタ・ブリッジ設定のみ。実に簡単お気軽に実装できた。宅内DNSサーバーを動かしているので、個々のゲストOS/VirtualBoxにも固定IPを振り当て、サーバー利用できるかどうかが要である。VirtualBoxをインストールした後、VirtualBoxを起動し、早速ゲストOSのインストールを行うことができる。インストールは、[新規]ボタンをクリックすることで始められる。OSの名前をCentOS5.2等と適当に設定する。OSタイプはLinux2.6。メモリサイズは512MB。起動ディスクをデフォルトのまま8GBサイズで設定してインストールをDVD-Rの1枚インストールメディアから行うのが簡便だ。初期設定が終わったら、再度セレクタから新規に作成したゲストOS名をクリックすればインストールが開始される。インストールを開始する前にネットワークのホスト設定を行うのがよい。VirtualBoxのゲストOS固有の設定はゲストOS起動中に出来ないのでゲストOS停止中に行わなければならない。VirtualBoxのGUIウインドウのOSセレクタからゲストOSであるCentOS5.2を選択状態にしてからウィンドウ右の[ネットワーク]を選択する。ネットワークの設定ダイアログ上でホストインタフェースを新規作成する。ホストインタフェース1")の二つを同時に選択しマウスの右ボタンを押してブリッジ接続を選ぶ。時間が掛かるが、"ネットワークブリッジ"のアイコンが表示されたら、ネットワークブリッジのプロパティを開き、そこで従来用いてきた接続設定と同様のIP等の設定を行う。私はDHCPを用いていない。固定IP利用「主義」。ユーザPCはDHCP利用でも構わないだろう。その場合、ベースIPは192.168.0.とかサーバー利用するべきゲストOSのIPと同じく設定する必要があるだろう。留意すべきは、VirtualBoxのホストインタフェースの利用。ホストインタフェースの利用は排他的・唯一的で、2つ以上のゲストOSが同時に共有利用することができない。ゲストOSを複数同時起動する場合、ゲストOSそれぞれに割り当てるホスト・インタフェース、アダプタはユニークでなければゲストOS起動時にエラーが生じる。NICの4枚差しまで仮想的に試すことができる。いずれにせよ、ゲストOSを新規インストールするたび毎にホストインターフェースを新規作成しブリッジ接続指定する必要がある。面倒ではあるが、初期これだけのことで仮想的にいくらでもゲストOSを作成することができるのはありがたい。ホストインタフェースをブリッジ接続する可能最大数がいくつかはわからない。実用上は無制限といえる。ブリッジ接続を行うと、旧版のFFFTPが動かなくなる。このバグは既にFFFTPの最新版で対策解消済みであるので、FFFTPユーザはFFFTPをダウンロードするのがよいだろう。ubuntuのvirtualBox用のVDIイメージは正式に配布されている。VDIイメージはそれ自体で保存可能。同一マシン上でコピー利用することはできない。VDIイメージ自体にVirtualBoxの設定項目が保存されるわけでなく、xmlファイルとして別ファイル保存され、そのxmlファイルのパスをVDIイメージが保持するからである。ゲストOSを新規作成する時点で、VDI内蔵の設定ファイルパスで示される設定ファイルが存在していなければVDIイメージを用いたゲストOSの新規作成は可能。設定ファイルが既に存在しているコピーを新規登録で使用しようとすると、その設定ファイルの存在を理由とするエラーが発生して新規登録ができない。基本的なサーバー設定が終わっているVDIイメージをベースに複数のゲストOSが登録できたらずいぶん設定も楽になるのにとやや残念な気がする。それでも他機へのコピー利用は可能だと思う。試してはいないが、Windows上で作成したVDIイメージをLinux上のVirtualBox環境へ持ち込んでみる。いうのも面白いかもしれない。Core)なサーバーと同じ構成で仮想サーバーを構築してみた。xenはCPUの数をゲストOS毎に割り当てることができるから、パフォーマンスの調整ができる。4コア割り当てだとマウスの動きも大分改善される。それでもリアルなサーバー同様とは言い難いほどに遅い。マウスポインタの描画がポーリングというかソフトウェアによる逐一的描画であるからだろう。Linux等のように何をするにせよgnomeが必須などというLinuxディストリビューションも増えているから、画面の描画はユーザビリティという観点からいえば重要な点。この点ではVirtualBoxの方が断然優れている。4コアなサーバーでも期待していたほどに描画性能が上がらなかったので、VirtualBoxのLinux版をインストールしてみた。ML115G1なWindows機はVGAカードを巡るBIOSやWindowsOSの問題などがあって、64bitOSでもメモリは3GBまでしか実装できない。そのためゲストOSを複数同時に稼働させるには環境的にやや貧弱。LinuxをベースにVirtualBoxをインストールしてみた。ゲストOSのインストールはWindows版とほとんど変わらない。唯一、留意点があるとすれば、ネットワーク接続のホストインタフェースの指定のあり方だけ。Linux版ではホストアダプタ1にeth0を指定すればよいだろう。この組み合わせはどのゲストOSでも問題なく同時起動させることができる。割り当てメモリがゲストOSの同時利用の限界となる。2009/1/20現在のVirtualBoxはバージョンが2.1.0。Linuxベース+CentOS5.2ゲストだと、キーボードのキー2つか利用できない。]と[_ろ]キーが無反応となる。打ち込めないのでパイプ利用のコマンドラインが打てない。コマンドならリモート端末側から操作すれば済むことなので問題回避は可能である。これはVirtualBoxのバージョンが上がるのを待つほかないのだろう。仮想化サーバーは現状、電力的にそのマシンの最大電力を否応もなく消費する。WindowsVistaでアイドル時60W程度のマシンで比較すると、省電力対策のないLinuxOSで走らせると80W前後。最低でも20W程度無駄食いになる。24時間運用で20Wは無視できない大きさ。xenカーネルを実装するとそもそもcpufreq機能が効かないので、クライアントOSが実装されていなくても(domain0自体クライアントOSであるが)、たとえばAMDの場合、CPUが備えているCool'n&Quietの機能は殺されたまま。xenもver3.3以上であれば、cpufreqがカーネルに実装されるのでアイドル時に省電力モード運用が期待できる。現状のCentOS5.2ではcpufreqは働かない。centOS5.2やFedora等でも仮想化機能を選択せずに通常のカーネルをインストールすればcpufreqは機能する。そもそもcpufreqは機能していないようである。この点で、linuxOSは電力消費を運用上で実測しつつ確認する必要があるだろう。規定通りインストールした場合、デフォルトのネットワーク設定はNAT設定。Modeとして動作しているWindowsXPのネットワークIPはDHCPのように自動設定される。192.168.1.55といったローカルIP設定や固定のグローバルIP設定を行う必要性がある場合、このままでは不都合である。した場合には、管理ツールでNICのドライバー設定を変更しなくてはならない。ModeのNICに固定IPを割り振りは次のような手順で行う。Modeの設定画面を開く。設定項目からネットワークアダプタの指定を選び設定ダイアログを表示させる。RTL8168B~)を指定する。Modeを再起動する。コントロール・パネルのネットワーク設定を用いてIPの指定を行う。Windows7配下のWindowsXPは任意のローカルIPあるいはグローバルIPで通信を行えるようになる。最近のウィルスソフトなどに付属しているファイアウォールをインストールすれば、特定IP以外から見えなくすることができる。