ということで、先日購入した ML110G7 上に、ESXi を入れて、DirectPath I/O を使って
今まで動いていた FreeBSD の zfs root の環境を載せて、さらに、クライアントとして、
Windows 7 でこれまた DirectPath I/O を使ってグラボをパススルーして、一台で二役を
させる方法がうまく動き出したので、後々の自分のためのメモ。うまくいくかどうかは
保証できません。猛犬注意。ぬれていて滑ります。
はまる前に。
ML110G7は起動がものすごく遅いです。いらいらします。お茶でも用意して、のんびり
やりましょう。
準備するもの。
ネットワークにつながったWindows マシン一台。
ML110G7本体。
NTT-X で安売りしています。
CPU Xeon E3 1230
VT-d 使うのでCPU交換は必須です。別にもっと早いCPU でもかまいません。
DDR3のメモリ
仮想マシンたくさん動かすつもりなら多めに。私はとりあえず24GiB用意しました。
Dell SAS 5/iR HBA
これ、銘柄指定じゃなくて、たまたまうちに転がってたから。べつの HBA でもいいんだけど、
ESXi で認識するやつ。
USB3.0 のPCIe 増設ボード。
キーボードをつなぐのに必要です。べつに3.0じゃなくてもいいと思うけど、新たに買うなら
いまさら2.0を選ぶ理由はないよね。
グラボ
ATi の Radeon HD 6450 銘柄指定。これ以外は動かないかも。
インストール手順。
CPUを交換する。メモリを増設する。Dell SAS 5/iR HBA を増設する。グラボを増設する。
USB増設ボードをインストールする。これは一気にやっちゃったほうが再起動の手間がかからなくて
いいかもしれないけど、はまったら1つづつやったほうがいいかも。
内蔵されていたHDDをSAS HBA のほうにつなぎかえます。
今まで、FreeBSD でファイルサーバとして使っていたHDDを移設します。
BIOS の設定で、電源管理をOSコントロールにすることと、オンボードのSATAコントローラを
AHCIモードにしておきます。私はここでしばらくはまりました。
VMWare のサイトから ESXi のiso を落としてきてインストール。このとき、上記のBIOSの設定を
しておかないと、赤い画面になってインストールに失敗します。この際に、インストールする先は
Dell SAS 5/iP HBA のほうにつながっているHDD に入れてください。
インストール後、アドレスがDHCPになっているので、適当に固定アドレスに振ります。
用意したWindowsマシンで上記で背呈した固定アドレスに https でアクセスするとエラーが出るけど
無視していくと vSphere Client がダウンロードできるので、ダウンロードしてインストール。
構成->詳細設定->編集 で、パススルーデバイスのマークという画面が開くので、
Intel Corporation Cougar Point 6 port SATA AHCI controller
Unknown VGA 互換コントローラ
Unknown Unknown
Nec Corporation uPD720200 USB 3.0 Host Controller
をチェック。OKで戻って、サマリタブを開いて一旦再起動。
接続が切れるので、しばらくして再起動できたらもう一度 vSphere Client でつなぎなおします。
再び構成のタブを開いて詳細設定を確認すると以下のようになっていると思います。これでパススルーの
設定は完了。
次に新規仮想マシンを作成します。
「構成」「名前と場所」は適当に。ストレージは内部データストアを選びます。
「ゲストOS」は その他にチェックを入れて、FreeBSD(64ビット)を選択。
ネットワークもデフォルトのままで。
「ディスクの作成」は仮想ディスクサイズは zfs root にするので、8GiB程度で。
「終了準備の完了」になったら、完了前に仮想マシンの設定を編集 にチェックで続行。
新たに仮想マシンのプロパティが開くので、細かい点をいくつか修正。
メモリはzfs使うので8GiB以上。私は16GiB振り分けました。
CPUもコア全部割り当て。
CD/DVD では FreeBSD 8.3 のインストールDVD を選択。
さらに、[追加]ボタンを押して、追加するデバイスタイプにPCIデバイスを選択して、次へ。
接続するデバイスを選択。SATA AHCIコントローラーを選択して次へ。
で、接続されるデバイスを確認して[終了]をクリック。
仮想マシンのプロパティに戻るので、[終了]をクリックして閉じる。
次に、仮想マシンを起動して、FreeBSD をインストールしていきます。この辺は割愛!
インストール後、ブートしたらdmesg を確認して、パススルーした AHCI コントローラと、
その下にぶら下がっている HDD が見えていることを確認。zfs inport できれば大丈夫。
あとは、このあたり を参考にしつつ、
/boot/loader.conf で rootデバイスをzfsに指定してあげれば、zfs root で立ち上がるように
なります。
その後、ports から emulators/open-vm-tools-nox11/ を入れて、時計が狂わないようにしてあげましょう。
その他、/boot/loader.conf に
kern.hz="100"
hint.kern.timecounter.hardware="i8254"
を追加します。
追記
/etc/sysctl.confに
kern.timecounter.hardware="ACPI-safe"
を追加しておかないと、謎の「タイマーが止まる」イベントが発生してバッドエンドです。意外にはまるので注意。
このへんも参照のこと。
ここまでで、ファイルサーバの移行は完了。
つぎに、クライアントの Windows 7 のディスプレイをパススルーします。
インストール手順は上記とほぼ変わりませんが、最近のグラボは HDMI や DisplayPort で音を出すために内部で音源を持っている場合があるので
そちらも一緒にパススルーしてあげます。
また、キーボードはパススルーしたUSBボードにさして上げればVMからでも使えます。音源も同様にUSBのポートに。