VMware ESXi と FreeNAS で仮想化環境を構築しよう

概要

サーバを 2 台使って、 VMware ESXi と FreeNAS を構築します。
VMware ESXi が稼動してるサーバには HDD を一切接続せずに、 FreeNAS 上の NFSVMware のストレージとして使用します。

なぜ 2 台使うのか

ML115 は電源容量が 365W と非常に少なく*1、 CPU やメモリ、その他ハードウェアデバイスを接続した上で、大量の HDD を接続するとすぐに電源が足りなくなってしまいます。

また、 ML115 の電源は特殊な形状・ネジ配置になっており*2、通常の ATX 電源は使用できません*3。ですので、容量の大きい電源に交換するという方法以外で解決する必要がありました。

電力消費の大きい CPU と HDD を別々のマシンに分離することで解決するのが、今回の方法です。

また VMware ESXi では、ローカルに接続された HDD を独自のファイルシステムでフォーマットするため、 HDD クラッシュ時のサルベージで非常に手間がかかります。

必要なもの

ハードウェア
  • サーバ 2 台 (僕は ML115 G5 を 2 台使います)
  • USB メモリ 2 本 (容量は 1GB くらいあれば良いと思います、数百円程度で購入できるはずです)
  • HDD たくさん
ソフトウェア

VMware ESXi のセットアップ

VMware ESXi を動作させるマシンでは HDD を動作させないので、 CPU やメモリのアップグレードがオススメです。
私は CPU を AthlonII X4 630 に、メモリは 8GB(2GBx4) に換装しました。

HDD や光学ドライブは使用しませんので、電源ケーブルを抜いておくのがオススメです。

インストール方法

VMware ESXi のインストーラディスクからイメージファイルを抽出し、 dd コマンドを使って USB メモリに VMware ESXi を直接コピーします。

Windows マシンでは DD for Windows というソフトを使えば良いようです。
Mac OSX や Linux その他 Unix コマンドが使用できる環境下では、 dd コマンドを使用しましょう。

Mac OSX では、 USB メモリが自動的にマウントされて非常に面倒なので umount コマンドで手動アンマウントしましょう。

mount コマンドで /dev/disk1 とかがマウントされているとこを調べて umount -f でアンマウントします。

umount -f /Volumes/USB_Memory

その後 dd コマンドでイメージをコピーすることでブート可能な USB メモリを作成することが出来ます。

USB メモリをサーバに刺して VMware ESXi を起動する

マシンに USB メモリをおもむろに突き刺してください。そして、 USB から起動しよう。
ML115 にはなぜかマザボに直接 USB 端子が付いていて、 USB メモリを箱の中に隠すことが出来ます。
USB メモリをうっかり蹴飛ばすなどの事故が未然に防げるのでオススメです。

とりあえず、 VMware ESXi が起動したところで 1 台目は放置しておきます。

FreeNAS のセットアップ

FreeNAS は LiveCD があるのですが、 LiveCD では設定ファイルを保存できないので、 USB メモリ上にインストールします。
このマシンには HDD を積んであるので HDD に直接インストールしても良いのですが、出来ることなら HDD を全て繋げて RAID を構築したいところです。
なので、 USB メモリにインストールします。

FreeNAS の LiveCD を CD-R に焼く

FreeNAS の embedded 版のイメージファイルを dd で書き込むと言ったようなことも出来ますが、 dd で書き込むため、パーティションのサイズが実際の USB メモリよりも小さくなります。

FreeNAS は通常の FreeBSD として扱うことができ、追加モジュールなどを組み込むことも出来ますので、 USB の資源は最大限に活用したいものです。

ですので、一旦 CD-R に焼き、 USB メモリにインストールします*4

ポイントは USB メモリを通常のストレージと扱って普通にインストールするということです。

あと USB メモリは UFS でフォーマットしておきましょう。

FreeNAS で NFS の設定をする

HDD をたくさん刺しましょう。 FreeBSD ですので、 ZFS を使用した RAID5 (RAID-Z) を構築するのも良いかもしれないですね。

FreeNAS の設定はググればたくさん出ると思いますので、各自しらべて設定をしましょう。

重要なのは NFS を有効にし、 VMware ESXi でストレージとして認識可能にすることです。

VMware ESXi の設定を行なう

VMware ESXi は VIC (VMware Infrastructure Client) を用いて操作を行ないます。 VIC を動作させるためには Windows か Linux が必要になります*5

VIC から仮想マシンを作成し、データストアには FreeNAS で作成した NFS を指定しましょう。
NFS で指定することによって、通常のファイルシステム上に VMware のイメージファイルを作成することが出来ます。
また、それらのイメージファイルは ESXi だけでなく、他の VMware 製品でも利用することが出来ます。

VMware ESXi で楽しもう

僕のように、メインで使用するマシンが MacBook であったりすると、 VIC を利用するために VirtualBox を起動しなくてはいけませんが、 ESXi 上に Windows Server を構築し、そこに VIC をインストールすることで解決することが出来ます。

また、 VI Remote CLI (VMware Infrastructure Remote CLI) というツールを使用することで、コマンドラインから操作することが出来ます。
Linux にインストールすることも出来るのですが、 Virtual appliance for the VMware Infrastructure Remote CLI と呼ばれる、 VI Remote CLI がインストール済みの LinuxVMware ESXi にインポートするのも良いでしょう。

まとめ

  • VMware を扱うときには Windows か Linux が無いと辛い
  • VMware ESXi は独自ファイルシステムでフォーマットするのはやめてほしい
  • VIC がイマドキ J# で書かれてるなんて信じられない
  • J# で実装するくらいなら、 Java で書いた方が Mac OSX ユーザも幸せになれてよかったのにな
  • VMware は Windows が要らなくなったら革命する(俺の中で)

*1:http://www26.atwiki.jp/ml115_g5/pages/11.html

*2:http://www26.atwiki.jp/ml115_g5/pages/31.html

*3:ケースに穴を開けることで解決することも出来るようです http://d.hatena.ne.jp/kurohige2/20091215/1260877213

*4:仮想マシン上に FreeNAS をインストールして、そこで USB メモリに書き込むという方法も出来ると思います

*5:僕はあいにく OSX しか持ち合わせていなかったので VirtualBox 上に Windows をインストールし、そこから VIC を起動するというようなことをしていました