XigmaNAS/NAS4FreeでRAID10ライクなNAS構築 ── GUI操作だけでZFS

スポンサーリンク

私的に構築前ずっと勘違いしてたのは、ZFSとRaid10の共存。Raid10で構成したい+ZFSでも構築したいと考えたものの、2つのキーワードでググっても両立するようなノウハウは無く、、、結論として「ZFSの機能でミラー(仮想デバイスで設定)の組み合わせをストライピング(マネージメントで設定)すればよい」ということ。

ZFSを知ってる人から言えば( ゚Д゚)ハァ?ってことだけれど。ZFSの奥は深く、多機能だと実感。HDD交換以外、5年以上ノートラブルという信頼性も絶大。そして、コマンドオプションも単純なので、比較的オペミス軽減なのも歓迎すべきポイント。

もちろんファイルシステムをZFSにしなければ、NAS4Free上でソフトウェアRaidとして、Raid10設定することもできるけれど、今は無きSunの遺産を使いたいってのも大きな理由(Oracleのモノではない)。

以下は、バージョン11.1.xで「GUI操作のみでZFS構築」を行った手順です。

注:ここで挙げているZFS設定はGUI優先の一例です(XigmaNAS対応)。

ディスク「マネージメント」

「ディスク」→「マネージメント」でOSから見えるディスクを追加登録します。ここでは4台のディスクが対象の例です。

設定すべきは、対象「ディスク」の選択が必須で、今回の場合はS.M.A.R.T.の有効化をしています。最後で少し触れますが、S.M.A.R.T.を有効にしたいためESXi上でRDM設定をしました。

上記を4回(4つのディスク)繰り返します。なお、今回の例ではESXi上でRDMマウントをさせています。理由は後述にて。

上記のようになっていればOK。ここまででディスクマネージメントの完了です。

ZFS「仮想デバイス登録」

「ディスク」→「ZFS」→「仮想デバイス」をたどります。

4台のうち2台ずつを「MIRROR」設定で束ねます。ここでは、「vdev1」「vdev2」などと記載していますが任意の名称です。

ZFS「マネージメント」

「名前」項目を任意の名称にして「仮想デバイスリスト」に表示されている、ここでは「vdev1」「vdev2」を選択して各ミラーしたものをストライピングとして設定すれば完了です。名前の「nas」は任意の名称です。

ZFS「データセット」

最後に「データセット」で「プール」として設定します。名前(プール名)の「nas」は任意のものです。

ここまででZFS設定が完了です。「ボリューム」は使ってません。

CIFS/SMB設定

最後に、CIFSなどのサービス設定をすればWindowsネットワークで次のようにフォルダ表示されます。この記事はZFSのGUI設定がメインのため端折ってます。

あと、ZFSなのでメンテ設定として次のようにScrubをCron登録しておけば、予兆把握に安心です。

ScrubのCron登録

以下のコマンドラインは、「nas」の個所を各自のプール名に置き換えです。

以上の設定後、ZFS情報を確認すると次のようになっています。

アップデートしても影響がないように、ブートディスク外に次のようなスクリプトを置いておけば、Cron実行も安心です。

ここで使用しているディスクは3GbpsのSATA接続のため、Scrubが9時間超と比較的遅め、などということも上画像から分かります。下画像のように、その最中はCPU負荷もかなり上がっており、本環境の場合消費電力もちょうど10W増えてます。

ちなみに、16TBのプールでガリガリディスク読み書きし続けると、メモリー16GBでも少なくスワップも発生する事態。いや、日常的に16GBでは足りないようで(下画像のように)。さすがリソース食いのZFSだけれど、本構成でも常に80MB/秒超のスループットで満足度は高いです。

munin-node、Zabbix Agentを自動インストール

アップデートするとまっさらになってしまうので、モニターアプリ(Munin/Zabbix)は起動時にインストール&設定するようにスクリプトを用意した。

ただし、よく推奨されているembeddedインストールの場合は、/usr/local がパッケージ追加で100%必至。このため、OS Fullでシステム再インストールするのがよく、Fullインストールで最初の方に問われるOSパーティション容量を大きく確保しておけばパッケージをいろいろ追加できるので安心。

MuninでもZFS状況が分かるから助かる。たいした使ってない稼働状況も。。。

ディスクはS.M.A.R.T.監視のためESXi上でRDMに

S.M.A.R.T.監視したいため、ESXi上ではRDM(Raw Device Mapping)マウントさせています。一般的に、RDMはVMDKでなくRAWディスクとしてマウントさせたいという名目が多いですが、筆者の場合は「S.M.A.R.T.監視のため」だけです。

スポンサーリンク