FreeNASでZFSなストレージサーバを構築する

ずっと自宅のPC環境にRAIDが無く、データの保持にかなり不安があった。
しかも、バックアップ領域も無かった。
流石に、2TB級のディスクが丸々失われると、精神的にしばらく立ち直れないので、
年末に発起してストレージサーバの構築に投資してみた。


筐体は、友人の中古を2万円で購入。
スペックは下記のとおり。

CPU Core2Quad Q6600
メモリ 2GB
ビデオカード 忘れた
NIC 1Gbpsオンボード Marvel製Chip


CPUクーラーが折れてたので、
3000円ぐらいのものを適当に購入。
HDDは、2TBを4台で4万円弱。
これをRAID5にする。


当初RAIDカードを買おうか悩んでいたが、
FreeNASでZFSが使えることを知り、そっちにシフトする。
ZFSにかなり興味があったのでちょうど良かった。
ここでFreeNASを選んだのは、構築時の手間から逃げるというヘタレ的な理由による。
何せ、BSD系もSolaris系もまともに運用した経験が無いので、とりあえずFreeNASで作って使えそうなら、入れ替えりゃいいやという思想でFreeNASだったりする。

FreeNASのインストール方法

何故かLiveCD版から起動して、USBメモリにインストールしようとすると書き込みでこけるという症状が発生。
仕方ないので、7.2系最新版embeddedのisoイメージをDLしてきて、
MacUSBメモリを接続。
ddコマンドでUSBメモリに直接イメージを焼きこむ。

gunzip -c FreeNAS-amd64-embedded-0.7.2.5543.img | dd of=/dev/disk2

無事起動。

ZPOOLの作成

7.2を入れる前に、8.0betaを使ってzfsの試験をしてたので、
ゴミが残っていたのか、WebUIからzpoolが作成できない。
ところどころで引っ掛かるなあ、と思いつつコマンドライン
無理やりフォーマットを繰り返してたらちゃんと作成できた。
何が原因だったのか、未だによく分からない。

zpool create -m /mnt/pool1 pool1 raidz /dev/ad10 /dev/ad11 /dev/ad12 /dev/ad13

RAIDレベルは予定通り5相当のRAID-Zを利用。

コマンドラインから作るとWebUI側でプールが認識されていないので、
現在のディスク構成をインポートする必要がある。
「ディスク」→「ZFS」→「設定」→「同期」とメニューを進んでいけば、
現在の検出内容をWebUI側に反映させることが出来る。
そこから先は、WebUIで設定可能だった。

ZFSデータセットの作成

ZFSでは、zpoolを作ったら、ファイルシステム自体でマウントポイントを処理してマウントしてくれる。
zpool直下で使うことも可能だが、ZFSの機能を活かすために、下位のデータセットを作成する。
ZFSでは、zpool以下にディレクトリを作るようにポンポンとファイルシステムを作っていけるらしい。


データセットごとの容量は、zpool全体の容量を共有することになる。
制限を加えたい場合は、zfsのオプションでクォータを設定する。


作成したデータセットは、下記。

データセット オプション
pool1/data オプションなし
pool1/backup compress=gzip-4
pool1/timemachine compress=gzip-4,quota=500G

dataはそのまま、NASとしてデータ置き場。
backupは、メインマシンのシステムバックアップとか、VMWareのイメージとかを置く。
容量節約を狙って、圧縮オプションを入れてみる。
timemachineは、名前の通りMacのTimeMachine置き場。こちらも圧縮オプションをOn。
データが溜まりすぎないように、500Gまでのクォータを設定。

samba, AFP, NFSの設定

WebUIから直感的に設定出来たので、省略w

所感

ちょこちょこ詰まったけど、Solaris入れるよりは大分楽だったんじゃないだろうか。

運用開始後の使用感

読み書きは大分早い。実効で70MByte/sぐらいは出てる。500Mbpsぐらいか。
ただ、書き込みの瞬間にガツッと引っ掛かる感じ。
メモリにあったデータをディスクに書き出す時にIO負荷が大きい。
ディスク書き込みが一気にまとまってやってくるのは、メモリが足りないからだろうか?
ARCに余裕があれば、ほどほどにやってくれる?
どこかでメモリを足して調べてみたい。


sambaの反応が微妙に悪い。
スループットはいいんだが(500Mbpsは出る)、読み出す瞬間が遅い。
ディレクトリ開く時とか、ファイルを開く瞬間に引っ掛かる。
NFSとかAFPだとそういう症状は無い。
Windowsのキャッシュが悪いのかな。
Linuxからcifsマウントした時の反応は、まだ未検証。


IntelNIC重要。
蟹チップじゃ全然1Gbps出ないし、
Marvelのチップは、FreeNASとやたら相性悪くて、
ちまちま接続が切れる症状が出ていた。
結局、デスクトップPCとFreeNAS側の両方にIntelPCI Express x1のNICを足した。
やっぱ、ちゃんとしたNIC挿すと速度が全然違う。