自宅システムのストレージ構成

11月 2nd, 2009 No comments »

image

さんざん悩んだ末に、ストレージの割り当てがようやく決まった。ポイントは二つ。

  • ファイルサーバは使わずに、メインPCのRAID1(ミラーリング)ボリュームにデータを集める。
  • TeraStationはバックアップ(WHS)専用にする。

サーバ環境

ESXiにはローカルディスクを入れて、WHS以外の仮想マシンはそこに作る。仮想ディスクは、たまにTeraStationの方に手動でバックアップする。

TeraStationはWHS専用にして、バックアップのために用いる。常時起動しておく必要はないので、使わないときはWHSをサスペンドし、電源を落とす。

デスクトップ環境

メインPCには、システムディスクとデータディスクを用意する。データディスクはRAID1でミラーリングする。

消えて欲しくないファイルはデータディスクに入れる。仮想マシンの仮想ディスクもデータディスクに入れる。

メインPC、及び仮想マシンは、定期的にWHSにバックアップする。WHSが使えない仮想マシンについても、仮想ディスクをまるまるバックアップする。

これでようやく安心して作業を始められるよ・・

リモートのDVD/CD-ROMをマウントする

11月 1st, 2009 No comments »

ss

最近はネットブックなど、DVD/CDドライブのないマシンも増えたけれど、なんだかんだで使いたいときが時々ある。

そういうときは

  • USB接続のドライブを使う
  • 別PCで中身を抜き出し、USBメモリ/ネットワークでコピーする
  • 別PCでISOイメージに変換して、それを持ってきてマウントする

といったことをやるのが一般的かと思うけど、iSCSIというプロトコルを使うと、リモートのDVD/CDドライブをあたかもローカルドライブのように扱えるようになる。

iSCSIに対応したソフトウェアとしては、Alcohol 52%というフリーソフトが使えるみたい(他にもあるかな?)。最初にこれをリモート側のPCに入れて、上のスクリーンショットのようにDVD/CDドライブを共有設定しておく。

次にローカル側でiSCSIイニシエータ(Vista以降では標準搭載)を起動し、リモートPCのアドレスを入れると、共有したドライブがローカルから見えるようになる。

単なるファイル共有とは違って、iSCSIだと本当にローカルドライブと同じように扱えようになる。リモート側でCDを入れるとローカル側で自動再生されるし、CDを焼いたりイジェクトすることも可能。

iSCSIの自動接続を設定すると、リモートのPCを落としてもずっと再接続しようとしてしまうので、手動で接続したほうがいいかもしれない。

ローカル側はOSの標準機能だけで出来るのがいい。USB接続のドライブが使えないときには便利。

VMware ESXiで使えそうなiSCSIストレージ

10月 29th, 2009 No comments »

サーバを仮想化する上で悩むのがストレージをどうするか。自宅サーバなら内蔵HDDでもいいんだけど、本格的に運用するならSANの導入を考えたい。

2chとかで盛んに情報交換されてるけど、調べれば調べるほど、どれがいいのかわからなくなる。とりあえず個人でも導入できそうな範囲で、適当にピックアップ・・

ソフトウェア

FreeNAS

FreeBSDベースのNAS専用ディストリビューション。

ファイルサーバとして使う分には申し分ないんだけど、iSCSIターゲットがどうも不安定・・。高負荷になると落ちるという話をよく見る。

バージョン0.7からは、ファイルシステムにZFSがサポートされるという話なので、ストレージレベルでのバックアップに便利かも。

Openfiler

こちらはLinuxベースのNAS専用ディストリビューション。

自分は試したことがないんだけど、ESXiとの相性がいいらしい。フリーで安定して使うならこれが一番?

ZFSのような新しいファイルシステムは取り入れられてないようなので、いろいろやってみたい人には物足りないかも?

OpenSolaris

ZFSの本家。iSCSIターゲットもあるので、SANとしても使える。

フル機能のOSなので、インストールサイズが大きい(5GBくらい)。でも容量さえあればUSBブートも可能。

覚えることが多そうだけど、コマンドでもGUIでもいろいろ管理が出来るので、本格的にシステム構築するにはいいか?

Windows Storage Server

Windows Serverをストレージ専用にパッケージングした製品。

NAS製品への組み込み用途が中心で、ソフトウェアとして単体で購入するものではなかったんだけど、最新版(Storage Server 2008)がTechNetやMSDNからダウンロード出来るようになったようで、導入の敷居が下がった。

iSCSIターゲットが用意されており、シャドーコピーによるスナップショットも出来るようだ。Windowsに慣れてるならこれがいいかも?

試そうと思ったけど、システムだけで20GB以上のストレージが必要で、延々と数時間もパッチを当てるのにうんざりしてやめてしまった。本腰を入れてサーバを構築しようというのでなければ、Windows Server 2003のほうが手軽そう。

Windowsで動くiSCSIターゲットとしてはStarwind iSCSI Targetというのが使える。iSCSI経由でリモートのRAMディスクをマウントしたり、ISOファイルをマウント出来たりする。フリー版もある。(スナップショットとかは有償)

専用機

TeraStation

iSCSIが使えるストレージ専用機。手軽に導入できるという点ではよいか。

不具合なのか相性なのか、ESXiから一つのボリュームしかマウントできないという問題がある。(TeraStationを二つ繋ぐことも出来ない)

NFS対応NAS

iSCSIじゃないけど、NFSに対応したNASならいろいろあるみたい。iSCSIにこだわらないなら、こっちのほうがいいかもね。

他にお手頃なのはあるかなぁ。

VMware ESXiを20Wで運用する(小型・静音・省電力)

10月 27th, 2009 No comments »

DSC_7015

自宅用にESXiを動かしたいのだけど、24時間稼働だとどうしてもファンの音と電気代が気になる。

というわけで、静音性と省電力に優れたマシンを検討してみた。

CPU選び

まず問題となるのが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とほとんど同じ。拡張性はほとんどない。

DSC_7000 DSC_7002

ストレージは2.5インチHDDが一つしか入らないけど、eSATAで外付けドライブを接続できる。ただし、ポートマルチプライヤには対応していないため、接続できるHDDは最大二つ。あるいは外付けドライブでハードウェアRAIDする必要がある。

説明書通りにパーツを取り付けて終わり。メモリがちょっと刺しづらいけど、トラブルもなくあっさり完成。

BIOSの設定

ひとまず”Load Optimized Defaults”で初期値に設定。

DSC_7005

VTが無効になってるので、“CPU Feature”の”Virtualization Technology”を”Enabled”に変更。

CPUの省電力機構を生かすために、”CPU C State Capability”を”C6”に変更。

DSC_7009

グラフィックは最初しか使わないので、”Advanced Chipset Features”からビデオメモリを最小値に変更。

 DSC_7004

設定が終わればキーボードも外すので、”Standard CMOS Features”からエラーを出さないように変更。

DSC_7010

ストレージは初期値でAHCIになってる。ハードウェアRAIDは搭載されてないみたい。

ESXiのインストール

最初はUSBメモリから起動してiSCSIストレージを使おうと思っていたのだけど、起動すると「Panic: Cannot get disk parameters.」と出て止まってしまう。どうやらBIOSでUSBをHDDとして認識させないといけないらしいのだが、そのような設定項目がないので断念。

ストレージをどうするかはいろいろ考えられるだろうけど、とりあえず内蔵ディスク+手動バックアップでいいや、ってことで普通にインストール。何の問題もなく動作した。

esxi

雑感

高負荷だとファンの音が聞こえるけど、普段はハードディスクの回転音以外は聞こえない。

パワーチェッカーで消費電力を見てみると、仮想マシンを何個か起動した状態で18W。負荷の高いときでも30Wくらいで動いてるみたい。これなら一ヶ月の電気代は300円以下に抑えられそう。前に買ったATOM+IONマシンが常時30Wくらいであることを考えると、ACアダプタのベアボーンってのが更なる省電力になってるのかな。

これでいくつものサーバを動かせるんだから、すごい時代になったなぁ。

追記(10/30)

外付けHDD(eSATA)でハードウェアRAIDによるミラーリングをしようかと思って、「裸族の二世帯住宅2.5」というのを買ってみた。

DSC_7018

結果としては失敗。熱暴走するのかなんだかわからないけど、負荷を掛け続けると動作がおかしくなってしまう。(青のLEDが点滅を始める)

結局、内蔵ディスクをSSDに入れ替えることにした。コスト的には上昇するけど、静音性と省電力を考えると、この辺りが落としどころか。

ストレージは難しいなぁ・・

追記(11/9)

ストレージ(Intel SSD)の性能を測ってみた。左は実機に直接接続した場合で、右は仮想マシンからアクセスした場合。

native virtual

仮想マシンのほうがやや性能が落ちる傾向にあるけど、ほとんど気にならないレベル。

仮想マシンとして動くWindows Server 2003に、StarWind iSCSI Target(無料版)を入れて、Windows 7からiSCSIディスクとしてマウントしたときの性能は次のような感じ。(左:RAMディスク 右:SSD)

ram ssd

RAMディスクでも、仮想マシンの電源を落とさない限りはデータが失われることもないので、これはこれで使いどころがあるかもしれない。

関連する記事

自宅DNSサーバの設定メモ

10月 7th, 2009 No comments »

SRVエントリを設定できるDNSサービスが見当たらないので、外部DNSサーバを自分で立てることにした。

BINDのインストール

dns

Ubuntu Server 9.04をVMware ESXi 4.0にインストール。

(インストール時に[F4]を押して”Install a minimal virtual machine”を選ぶと仮想マシンに最適化される)

パッケージとして「DNS server」を選択すればBIND 9がインストールされる。

BINDの設定

/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の準備完了。

セカンダリDNSの設定

グローバルIPアドレスが一つしかないので、セカンダリDNSにはマイハマネットさんを使わせていただくことにした。

ユーザ登録して、自分のIPアドレスとドメインを入力。設定がうまくいってれば、ZoneタブのところにプライマリDNSの設定内容が表示される。

maihama

ドメインの登録

ドメインはムームードメインで取った。メニューから「ネームサーバ設定変更」を選んで、「取得したドメインで使用する」を選ぶ。

まず、「取得したドメインでネームサーバを登録する場合はこちらをご利用ください。」のリンクをクリックして、プライマリ/セカンダリDNSのIPアドレスを登録。

続いて、下記の通りネームサーバを設定する。これでしばらく待てば、設定したDNSサーバに要求がくるようになる。

muumuu