今更ながらFreeNASを試してみた

FreeNAS。その名の通り無料で使えるFreeBSDNASディストリビューションFreeBSD自体は使ったことがないんだけど、webGUIでほぼすべて設定ができるというので試してみた。

今まで存在は知っていたし、ZFSが使えてiSCSIが使えることも知ってはいたんだけど、OpenSolaris使ってるのでスルーしていた。OpenSolarisの方がzfsもzpoolのバージョンも新しいし。FreeBSDは移植?になるんで必然的に追随するのにタイムラグが結構出てくるワケで。

しかし、前々から社内で出ている案件で共有サーバどうしようというのが持ち上がっていて試しに使ってみるかということで調査してみた。その設定とかメモで残しておく。まだ本採用は決定してないけど、試しに一部署で新規に共有設置案件があるので導入してみるつもりです。FreeNASについてはググればいっぱい情報出てくるのであくまで自分用。

手を出したわけ

まずは以下を参考にした。
Think IT 第4回:FreeNASでストレージ専用機の構築

試しに使うにあたって色々調べて上記のページをまず見つけた。

  • USBメモリにインストールできる
  • 故にディスクをフルに使える
  • 管理はwebGUIからすべて可能
  • ZFSが使える
  • 日本語化されている

大体これぐらいのことがわかったのであとはwebGUIの使い勝手のみと思ったので、実際に試すのがよかろうということでインストール。試したマシンはDELL Power Edge SC430(CPU:Pentium 4 3.2GHz)のメモリ1Gです。

インストール

LiveCDから起動してUSBかHDDにインストールってのはメディアの無駄なので、上記サイトを参考にimgから直接USBメモリにインストールした。
FreeNAS
からダウンロード。今回は64bitマシンじゃなかったので

  • FreeNAS-i386-embedded-0.7.1.5024.img

をダウンロード。

次にイメージを解凍してそのままUSBメモリに書き込む。今回はLinuxマシン上で行った。その方が簡単なので。
下記の例ではUSBメモリはsdaとしているので、実際にはdmesgでデバイス名を確認してから行うのが吉です。

# gzip -cd FreeNAS-i386-embedded-0.7.1.5024.img | dd of=/dev/sda bs=16k

これで完了です。

設定とか

このUSBメモリからブートしてLANの設定でDHCPにするとIPアドレスを自動で取ってきます。あとはブラウザからそのアドレスにアクセスして設定を行います。

  • ユーザー:admin
  • パスワード:freenas

がデフォルトの設定なので、ログイン。

まず言語設定の変更

  • [sytem]-[general]のメニューで言語設定をjapaneseにすれば日本語化されます。

次にパスワードを変更。

  • [システム]-[基本]-[パスワード]

これでまずはOK。あとはそれぞれの用途にあった設定でいいでしょう。

もうちょい詳しく知りたい場合は以下のサイトが参考になりました。

ここにZFSのディスク設定とかも書いて有ります。

機能とか感想とか

今回はダウンロードしてインストールしたあとはドキュメントは何も見ずにwebGUIをいじりながら操作してみました。何も見なくても

  • ネットワークの設定(固定IPやDNS、NTPの設定)
  • ZFSの設定(これはZFS自体をある程度知っていたからですが)
  • sambaの設定
  • メール通知の設定
  • HDDのS.M.A.R.Tの設定やディスク温度監視、メールアラート

などが簡単にできました。メニューたどりながらやればちゃんとわかるものになってます。かなり操作はいい感じだと思います。
他にもFWの設定やcronの設定もできますし、ファイルエディタもあるのでシェルスクリプトも書けるでしょう(試してない)。とりあえず今回はsamba目的だったのでまだ他は突っ込んで調べてませんがかなりお手軽なのはわかりました。

ユーザーごとのアクセス制限の必要はないんですが、試しにやったところ簡単にできました。sambaのパラメータ設定も追加記入で反映させられるのでグループ単位のアクセスもできます(今回はお手軽にvalid usersパラメータ)。実際にどうやるのが一番うまいのかわかりませんが、とりあえ今回はこれぐらいでいいかなと。Active DirectoryLDAPも設定できるので本格的に運用するならそちらがいいでしょう。

また

  • ネットワークとCPUの負荷状況をリアルタイムでグラフ描画
  • プロセスのリアルタイム確認
  • 設定のバックアップとリストア

もできます。システム領域のUSBメモリが壊れてもバックアップがあれば

  1. 別のUSBでブートしてリストア
  2. ZFSのimport

で簡単に復旧できます。

FreeNASをZFSで業務で使うのどうなのみたいな話も一部あるみたいですが、自分は全然イケルなーと思いました。ZFSでsendができるのでバックアップをそれでとっていれば大丈夫じゃないかな?と思ってます。「ダウンタイムはゼロで絶対落とせません」とかでもないですしね。今考えている対策としてはシェルスクリプトとcronでzfs send/receiveしてバックアップするという感じでしょうか。
バックアップの設定もwebGUIからできるのでいいですね。受け側のサーバにOpenSolaris使えばバックアップサーバとしては十分だと思います。*1
詳細は以下を参照。
ZFS データを送信および受信する (Solaris ZFS 管理ガイド) - Sun Microsystems


ちなみにsambaで2.5GBぐらいのデータ転送したときのCPU使用率は10%前後で推移していました。ZFSを使用するとはいえそんな頻繁に大きなデータの読み書きがあるわけでもないし、CPU的にはPentium4レベルで何の問題もなさそうです。
とりあえずざっと触っていけそうだったのでこんな感じで実際に試用してみるつもりです。何か発見やトラブルがあれば追記するか記事にしたいと思います。

*1:ZFSのバージョン違ってもsend/receiveってできるんでしたっけ?