AMD Athlon 64 X2 5000+でちと遊ぶ。
年の瀬なのだが、パソコン工房に注文していたAMD Athlon 64 X2 5000+ PCが木曜日に届いたので暇を見つけていじっている。
Athlon64X2が更にパワーアップ!! パソコン工房BTO PC
↑をベースにメモリーを4GBに増設、大容量電源に換装した以外は標準構成のまま。
XenExpressで遊ぶ
まずは、XenSourceが最近公開したXenEnterpriseの無償版XenExpressを試してみた。Pacifica/SVM付きのAthlon 64 X2なので、Para-virtualizationとFull-virtualization (HVM)の両方が使えるはずなのでやってみた。配布されているインストールイメージを使ってまっさらなマシンにインストールするだけで、Xen 3.03のVMM + Dom0 Kernelが起動した状態まで一気にセットアップしてくれるという代物だ。あとは適当なコンソールマシンにAdministrator ConsoleをインストールしておけばXenマシンをリモートからモニター&コントロールできる。Administrator Consoleはなかなかイカス!モニタリングできるだけでもVMware Serverに比べて嬉しい。
Windows Server 2003用かWindows XP SP2用のXGT (XenSource Guest Template)を使えば、XenのFull-virtualizationを使ってCentOSでもFedora Core 6(以降、FC6)でも何でもインストールできる。ちょうどVMware Serverと大差ない手順になる。ただし、XenSource XenExpressではHVMをサスペンドすることができないようになっている(Xen 3.03に共通なのかもしれないがよく分からない)。試しにコマンドラインからxm saveしてみたらxm restoreできなくなってしまった…。
追求してみても良かったのだが、そもそもXenExpressはi386用のものしか提供されていないので、Athlon 64 X2的には無意義なのである。なぜならi386用のXen VMM上ではPara-でもFull-でも32bit OSのGuest OSしか動作できないようになっているようだからだ。この点、VMwareではHost OSがi386 OS、x86_64 OSのどちらであっても、Guest OSとして32bit OSと64bit OSの両方が(同時に)動かせるはずである。
お金を出しても買えないメインメモリ
冒頭のパソコン工房のページには以下のような記載がある。
DDR2規格で最大搭載可能4GBデュアルチャンネルメモリに対応
従来のDDRをさらに高速化したDDR2規格のメモリーを搭載。(中略)メモリー4GB搭載時にはマザーボードの仕様により、使用可能容量は3.2GB~3.5GBとなります。(グラフィックカードのご選択によって上下いたします)
だが、釈然としない。ASUSのM2N-SLI Deluxeのスペックページ(ASUSTeK Computer Inc.)を見ると8GBまで積めると書いてある(実際には2GB DDR2はコストパフォーマンスが悪すぎるが)。使用可能容量が3.2GB~3.5GBとなるのはi386 OSを使ったときに限られるのではないのか、と。そういう半端な話は許さんぞ、と。
…試してみる。
まず、FC6 (i386)でfree -m。
total used free shared buffers cached
Mem: 3545 181 3363 0 14 131
-/+ buffers/cache: 35 3509
Swap: 1983 0 1983
確かに3.5GBしか認識していない。パソコン工房の言うとおりだね。次にFC6 (x86_64)でfree -m。
total used free shared buffers cached
Mem: 3947 338 3609 0 30 233
-/+ buffers/cache: 74 3873
Swap: 1983 0 1983
402MBほど増えた、やっぱりね。ちなみにFC6 (i386)でkernel-xenを使い、そのDomain-0に全メモリーを割り当てた場合は以下の通り。
total used free shared buffers cached
Mem: 3920 939 2980 0 176 557
-/+ buffers/cache: 206 3714
Swap: 1983 0 1983
なぜ4GB使えてしまうのかはよく分からないが、こう表示される。x86_64の場合より小さいのはXen VMMが使っている分のメモリがあるからだろう。
…というわけで「お金を出しても買えないメインメモリ」を手に入れるには、迷わずx86_64環境を選択しなくてはならない。
FC6 (x86_64)にVMware Serverをインストールする
配布されているVMware ServerのRPMが、VMware-server-1.0.1-29996.i386.rpmしかないのでx86_64環境でちゃんと動作するのかどうかが少し心配だった。
結論から言えば何の問題もなかった。一部のx86_64 Linux Distributionでは嵌っている記事を割と見かけるが、少なくともFC6でもCentOS 4.4では何の問題も発生せず。拍子抜け。もちろん、VMware Server自体はi386 userlandで動作するのでVMの使用するメモリに関しては4GBないし3.5GBの制限がある。だが、用途として単体のVMに3.5GB以上のメモリを割り当てることはまずないので、この制限自体は問題とならない。
vmware-config.plに失敗するたびに/etc/vmware/locationsがどんどん長くなっていくのははなはだ不快なので、実行する前に↓くらいはやっておくのが常識。
# yum -y install xinetd # touch /usr/src/kernels/2.6.18-1.????.fc6-x86_64/include/linux/config.h
おまけ
CentOS 4.4にするかFC6にするかはちょっと悩むところ。CentOSのstableさは魅力だが、(たまにとは言え)Xen遊びをするならRHEL5/CentOS5がリリースされるまではFC6にせざるを得ない。
AMD64上のVMwareで、2つ以上のCPUを有するVMを作ると、時計が狂いまくる問題はどうなったのか。
→勘違い。Athlon 64 X2でDual CPU VMを動作させることはできるがエミュレーション動作になる。実際にはSingle CPUしかないのでTSCがちゃんとカウントアップされないために時刻が大幅に遅れるようだ。これでは使い物にならないのでSingle CPU VMで動作させるのが正しい。
このエントリーのトラックバックURL: http://as-is.net/mt/mt-tb.cgi/466
>この点、VMwareではHost OSがi386 OS、x86_64 OSのどちらであっても、Guest OSとして32bit OSと64bit OSの両方が(同時に)動かせるはずである。
うちのVMware ServerはWin2k(もちろん32bit)のホストOSにCentOS4.4(x86_64)をゲストOSにして正常稼働してます。
パフォーマンスはネイティブAMD64なLinuxを使ったことないので分かりませんが、動作自体は問題ないですよ。
これがしたくてAM2のX2(4400+)にしたので、動いたときは感動でした。まさにナイスPacifica。
>うちのVMware ServerはWin2k(もちろん32bit)のホストOSにCentOS4.4(x86_64)をゲストOSにして正常稼働してます。
うん?その通りです。だからなんだと言いたくなっちゃいました(笑)
ちなみにx86_64 native OSとx86_64 guest OSの性能差は、簡単なCPUベンチマークを行った限りではほとんどないです。これは、VMwareではエミュレートする命令はほぼ特権命令だけで、通常の命令はそのままCPUで実行されるようになっていますから、当然の結果です。