まとめ的な内容は、Google Sitesの方に置くことにした。
さんざん悩んだ末に、ストレージの割り当てがようやく決まった。ポイントは二つ。
ESXiにはローカルディスクを入れて、WHS以外の仮想マシンはそこに作る。仮想ディスクは、たまにTeraStationの方に手動でバックアップする。
TeraStationはWHS専用にして、バックアップのために用いる。常時起動しておく必要はないので、使わないときはWHSをサスペンドし、電源を落とす。
メインPCには、システムディスクとデータディスクを用意する。データディスクはRAID1でミラーリングする。
消えて欲しくないファイルはデータディスクに入れる。仮想マシンの仮想ディスクもデータディスクに入れる。
メインPC、及び仮想マシンは、定期的にWHSにバックアップする。WHSが使えない仮想マシンについても、仮想ディスクをまるまるバックアップする。
これでようやく安心して作業を始められるよ・・
自宅用にESXiを動かしたいのだけど、24時間稼働だとどうしてもファンの音と電気代が気になる。
というわけで、静音性と省電力に優れたマシンを検討してみた。
まず問題となるのがCPU。自宅サーバなんてほどんどCPUパワーを使わないので、多少非力でも省電力なものが欲しい。でも、ESXiを動かすならVT対応が必須(64ビット仮想マシンを動かすのに必要)。
省電力プロセッサといえばIntel Atomが思い浮かぶけど、64bitでVT対応のものがまだないようなのでボツ。
となると、Intel Core 2のモバイル向けが無難かな、ということで、Core 2 DuoのPenryn辺りを考える。
問題はマザーボードで、モバイル用CPU(Socket P)に対応したものって案外少ない(しかも高い)。そんな中、AOpenのMP45-Dというベアボーンがよさげという話を聞いたので調べてみると、Intelのネットワークカードが使われてるみたいだし、ESXiも動きそう。
というわけで、システム一式そろえてみた。
| ベアボーン | AOpen MP45-D (Intel GM45 + ICH9M) |
約37,000円 |
| CPU | Intel Core 2 Duo 2.40GHz (P8600) | 約13,000円(中古) |
| メモリ | DDR2-800 SO-DIMM 2GB×2 | 約7,000円 |
| HDD | SATA HDD(2.5in) 320GB | 約5,000円(中古) |
合計6.2万円。もっと安くできる構成もありそうだけど、まあいいや。
本体の大きさはMac miniとほとんど同じ。拡張性はほとんどない。
ストレージは2.5インチHDDが一つしか入らないけど、eSATAで外付けドライブを接続できる。ただし、ポートマルチプライヤには対応していないため、接続できるHDDは最大二つ。あるいは外付けドライブでハードウェアRAIDする必要がある。
説明書通りにパーツを取り付けて終わり。メモリがちょっと刺しづらいけど、トラブルもなくあっさり完成。
ひとまず”Load Optimized Defaults”で初期値に設定。
VTが無効になってるので、“CPU Feature”の”Virtualization Technology”を”Enabled”に変更。
CPUの省電力機構を生かすために、”CPU C State Capability”を”C6”に変更。
グラフィックは最初しか使わないので、”Advanced Chipset Features”からビデオメモリを最小値に変更。
設定が終わればキーボードも外すので、”Standard CMOS Features”からエラーを出さないように変更。
ストレージは初期値でAHCIになってる。ハードウェアRAIDは搭載されてないみたい。
最初はUSBメモリから起動してiSCSIストレージを使おうと思っていたのだけど、起動すると「Panic: Cannot get disk parameters.」と出て止まってしまう。どうやらBIOSでUSBをHDDとして認識させないといけないらしいのだが、そのような設定項目がないので断念。
ストレージをどうするかはいろいろ考えられるだろうけど、とりあえず内蔵ディスク+手動バックアップでいいや、ってことで普通にインストール。何の問題もなく動作した。
高負荷だとファンの音が聞こえるけど、普段はハードディスクの回転音以外は聞こえない。
パワーチェッカーで消費電力を見てみると、仮想マシンを何個か起動した状態で18W。負荷の高いときでも30Wくらいで動いてるみたい。これなら一ヶ月の電気代は300円以下に抑えられそう。前に買ったATOM+IONマシンが常時30Wくらいであることを考えると、ACアダプタのベアボーンってのが更なる省電力になってるのかな。
これでいくつものサーバを動かせるんだから、すごい時代になったなぁ。
外付けHDD(eSATA)でハードウェアRAIDによるミラーリングをしようかと思って、「裸族の二世帯住宅2.5」というのを買ってみた。
結果としては失敗。熱暴走するのかなんだかわからないけど、負荷を掛け続けると動作がおかしくなってしまう。(青のLEDが点滅を始める)
結局、内蔵ディスクをSSDに入れ替えることにした。コスト的には上昇するけど、静音性と省電力を考えると、この辺りが落としどころか。
ストレージは難しいなぁ・・
ストレージ(Intel SSD)の性能を測ってみた。左は実機に直接接続した場合で、右は仮想マシンからアクセスした場合。
仮想マシンのほうがやや性能が落ちる傾向にあるけど、ほとんど気にならないレベル。
仮想マシンとして動くWindows Server 2003に、StarWind iSCSI Target(無料版)を入れて、Windows 7からiSCSIディスクとしてマウントしたときの性能は次のような感じ。(左:RAMディスク 右:SSD)
RAMディスクでも、仮想マシンの電源を落とさない限りはデータが失われることもないので、これはこれで使いどころがあるかもしれない。
SRVエントリを設定できるDNSサービスが見当たらないので、外部DNSサーバを自分で立てることにした。
Ubuntu Server 9.04をVMware ESXi 4.0にインストール。
(インストール時に[F4]を押して”Install a minimal virtual machine”を選ぶと仮想マシンに最適化される)
パッケージとして「DNS server」を選択すればBIND 9がインストールされる。
/etc/bind/db.example.com として次のようなファイルを作成。
;
; BIND reverse data file for example.com zone
;
$TTL 604800
@ IN SOA ns1.example.com. root.example.com. (
2009100701 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
IN NS ns2.example.com.
ns1 IN A (自分のグローバルIPアドレス)
ns2 IN A (セカンダリDNSのIPアドレス)
...
/etc/bind/named.conf に次の設定を追加。
zone "example.com" {
type master;
file "/etc/bind/db.example.com";
allow-transfer {
(セカンダリDNSのIPアドレス);
};
};
ここで /etc/init.d/bind9 restart して、設定を確認する。
# apt-get install dnsutils ... # dig @localhost ns1.example.com ; <<>> DiG 9.5.1-P2 <<>> @localhost ns1.example.com ; (2 servers found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54049 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; QUESTION SECTION: ;ns1.example.com. IN A ;; ANSWER SECTION: ns1.example.com. 604800 IN A (自分のグローバルIPアドレス) ;; AUTHORITY SECTION: example.com. 604800 IN NS ns1.example.com. example.com. 604800 IN NS ns2.example.com. ;; ADDITIONAL SECTION: ns2.example.com. 604800 IN A (セカンダリDNSのIPアドレス) ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Oct 7 16:20:45 2009 ;; MSG SIZE rcvd: 98
DNSサーバはNATの内側に置いたので、「TCP/UDP両方」の53番ポートを転送するようにルータを設定する。
これでプライマリDNSの準備完了。
グローバルIPアドレスが一つしかないので、セカンダリDNSにはマイハマネットさんを使わせていただくことにした。
ユーザ登録して、自分のIPアドレスとドメインを入力。設定がうまくいってれば、ZoneタブのところにプライマリDNSの設定内容が表示される。
ドメインはムームードメインで取った。メニューから「ネームサーバ設定変更」を選んで、「取得したドメインで使用する」を選ぶ。
まず、「取得したドメインでネームサーバを登録する場合はこちらをご利用ください。」のリンクをクリックして、プライマリ/セカンダリDNSのIPアドレスを登録。
続いて、下記の通りネームサーバを設定する。これでしばらく待てば、設定したDNSサーバに要求がくるようになる。
WindowsマシンのバックアップにWHSを立ち上げているので、これをDNSとDHCP(ついでにWINS)サーバにしてみた。
まず、WHSに直接、あるいはリモートデスクトップでログインし、コントロールパネルから「プログラムの追加と削除」を開く。左のタブから「Windowsコンポーネントの追加と削除」を開いて、「ネットワークサービス」の詳細をクリックすると次の画面が出てくる。
ここで「WINS」「DNS」「DHCP」にチェックを入れるとインストールが始まる。Home ServerのインストールCDを要求されるので、あらかじめISOファイルを用意しておくと楽。
管理ツールから「DNS」を開く。
メニューから「DNSサーバの構成」を選び、初期設定を行う。逆引き等はやらない。LAN内でしか使わないので、「非セキュリティ保護の動的更新」を許可しておく。
あとは作成したゾーンの「新しいホスト(A)」として、サーバとかの静的アドレスを登録していくだけ。
管理ツールから「DHCP」を開く。メニューから「新しいスコープ」を選んで初期設定を行う。
スコープの設定として、「更新を要求しないDHCPクライアント」のレコードを更新するようにしておくと、LinuxなどからDHCP要求した場合にでも、DNSに自動的に名前が登録されるので便利。
入れただけで何も設定していない。DHCPのパラメータとして、WINSサーバのアドレスだけ渡すようにしてある。
これだけでもNetBIOSのブロードキャストが減るようなので、ネットワーク的にはやさしいかも。