Date: 2017.12.04
Home / NAS. / おうちで自作NAS - 電源ユニット異常から始まり、ZFS mirrorからRAID-Zに再構築。
FreeNASのRAIDをmirror(RAID1相当)からRAID-Z(RAID-5相当)に拡張を行いました。

増強しようと思ったきっかけは容量不足、などではなく、

電源ユニットの交換を考えたところから始まりました。




電源ユニットはSCYTHEのケース「Betty」に付属のSFX電源で、「SCYTHE-300A」というもので稼働させていましたが、結構前からですが電源ユニットの異音が激しくて。
でも常にってわけではなく急に静かになったりと繰り返していたので様子見していたけど、さすがに我慢できなくなってきて。
ケース自体の値段も安いものだったので、電源ユニットはおまけ程度に考えていたのでこれは想定の範囲内で、むしろもった方かなと。

で、どうせ交換するなら配線もやり直しになるし(かなり苦労したので)、そういえばハードディスクは組んだ時に旧NASのHDDをそのまま使いまわしていたので、トータル5年オーバーになってるなーと。
FreeNAS上のS.M.A.R.T.では一切問題出ていないけど、そろそろ予防交換でもするかと併せて行う事に。

であればついでにディスク増やそうかなぁとかまで悪い癖が出てしまい(笑)
とはいっても、マザーボード「ASRock N3700-ITX」はそのまま使うので、SATA3ポートは4ポート。
ZIL/L2ARC用SSDを除くと後1本しか余裕はありませんが。

HDD3本での構成候補としては、以下の3パターンを想定。

①mirrorの本数追加
ZFSのmirrorは単純なRAID1ではなく、ミラーデバイスを複数追加できるらしい。
となると、データの複製が増え、信頼度が上がります。
また、データのリードには複数のミラーから呼び出せるのでRAID0のようにIOPSが向上しますが、その反面、ライト性能は下がります。
ただし、当たり前ですが複製なので容量は全く増えず、コスパは非常に悪い。

②mirror+ホットスペア
①のメリットが更に減るだけで微妙かなぁ。
使用されるまでは書き込みが一切ないので故障の可能性は下がるぐらいか。

③RAID-Z化
容量はディスク3本分で同サイズディスクで今の倍にできる。
ただ、RAID5はブロック単位でディスクに書き込まれ、読み込みもパリティを除いたディスクから同時読み込める為にIOPSが向上しますが、RAID-Zはブロックをパリティを除いたディスクに更に分散させて書き込まれる為、読み込みも1ブロックに対して全ディスクになるので単純計算ではIOPSはディスク1本分と変わらずという。
あと、CPU負荷も上がるようで。ただ、今はIntel Pentium N3700でほとんど遊んでいるのでここは問題なしと判断。
メモリもまだ十分だと思うので、スペックさえあればRAID5よりは全体的には向上するはず。
IOPSに関してもARC(メモリキャッシュ)と溢れたらL2ARC(SSDキャッシュ)で軽減できるし、ディスク1本辺りの読み書きサイズは減るわけで、そこはパフォーマンスがスペックに左右される。
それに常時読み書きする使い方はしないので先を見据えて容量確保かなーと。

というわけでRAID-Z化に踏み切ったわけです。
信頼性に関してはこれまでのmirrorと変わらないですが、データの移行の為にUSBハードディスクを使用して検証を前もって行った事もあって、その仕組みをタスクで回して外部バックアップとして実装しようかなと考えてはいるので。

とりあえず構成は固まったので、いざ手配(本来の目的の電源ユニットも)しますか・・・というところで根本的な問題に直面。
ベティさん、3.5インチディスク2本でも5インチベイと無理矢理使って突っ込んでたので3本目なんて入らねぇ。

で、こうなったわけです。

Thermaltake Core V1 白黒並べてみた

5インチベイ複数使ってマウントするホットプラグ対応のHDDケース(こんなの)買って、もちろんマウントできないのでSATAケーブルとSATA電源をケース外部に取り出して、ドライブ外出しまで考えたんですが、さすがに面倒なのとケースそのものがそんなに安くなかったので断念。
であればと、ESXi機と同じThermaltakeの「Core V1」、同じ色もあれだったのでWhiteバージョンであるSnow Editionの「CA-1B8-00S6WN-01」にしたってわけです。
このケース、見た目もいいしお気に入りなのです。
最初にNAS機をベティさんで組んだ時は場所的に置けないところを予定していたので小さいケースを探したんですが、その後置き場を変えていた事もあって設置も問題なし。

ただ、実はこのケースも3.5インチシャドウベイは2本しかありません。
そして5インチベイもありません。
なもんで、HDD1本どうするかが課題は残ったままになります。

そこで、このケースになれば新電源ユニットはATX電源にする事もできたところをあえてプラグイン仕様SFX電源の「玄人志向 KRPW-SXP400W/90+」にして、ATXブラケット使用して設置する事に。
そして下段のスペースを多く確保し、直置きはさすがにビビリとかも出そうだしちょっとなーと思ったので、「センチュリー 裸族のビキニ HDD用スタンドキット CRBK2」をかまして、脚を付けた状態でケース底に設置するという、またまた無理矢理です。

一度入れてしまえばそうそう困る事でもないし、ケースの見た目重視です。
ただ白黒を並べてみたかったってのもありますが(笑)もうこれだけで満足です。

そしてそのハードディスクですが、今回はWESTERN DIGITALのNAS向け「WD Red 3TB WD30EFRX」を3本用意。
Redも悪名高きIntelli Parkが搭載されています。
まあ、GreenやBlueは8秒で磁気ヘッドが退避されますが、Redはデフォルト300秒(5分)の設定なようで無理に無効化する必要ないという意見もあるようですが、どちらにせよRAID構成ならやめておいた方がいいというのもあるので切っておく事に。
ただ、Greenの時同様に、「WDIDLE3 for Windows」を使って無効化しようとしたのですが、WD Diskとして全く認識してくれず・・・
直接SATA接続で試したわけではなく、USB変換で行っていたのでそこが原因なのかもしれないけど、かといって環境もなかったので諦めて他の手段探してみていたところ、「ExamDisk」というツールでもできそうだというのを見つけたので試してみました。

起動して、「設定」を選択。
ExamDisk メイン画面

「IntelliPark」欄に現在の設定が入っているのを確認できます。
なお、ExamDiskでのIntelliPark設定値は
0・・・無効
1~128・・・数値×0.1秒
129以上・・・(数値-128)×30秒
という仕様のようです。
なので、画像だと設定値が「138」ですが、この公式に当てはめると(138-128)×30=300秒で正しい事が確認できます。
ExamDisk IntelliPark変更前

無効にするには設定値を「0」にして「OK」を選択。
その後、反映するには一度HDDの電源をオフにする必要があります。
ExamDisk IntelliPark変更後

電源入れ直して繋いで確認したらきちんと0秒に変わっている事が確認できました。
暫く繋ぎっぱなしにして「Crystal Disk Info」で「ロード/アンロードサイクル回数」が無駄に増えない事を確認しています。
ExamDisk IntelliPark反映後

これでハードディスクの準備も完了です。

これらのディスクをただSATA接続してFreeNASを起動すれば別ディスクとして認識してくれます。
物理パスが同じでも、あくまでシリアルとかでしか判別していないので。
なのでハードウェアRAIDと違って便利なのは、旧ボリュームやデータセットの設定をとりあえず残しておいて別環境の構築ができる、問題があれば旧ディスクを繋ぎ直せばそっちも使用可能になります。
ボリュームに対するHDDが存在しないとエラーが出っぱなしにはなりますが、移行が完全にできたのを確認してからボリュームを削除した方が安心かなと。
特に、ZIL/L2ARCを旧ボリュームに設定したまま取り外してしまうとちょっと面倒です。

ZIL/L2ARCを新しいボリュームに設定しようとすると、すでに別ボリュームに割り当てられているエラーが出ます。
で、「zpool remove」で削除しようとすると、ボリュームがないとこれまた怒られます。
旧ボリュームが生きている状態で「zpool remove」で割り当てを削除して、その後新ボリュームに割り当て直すのが正しい手順になりますので。(SSDをフォーマットすればできるのかもしれないけど。)

その他、HDDを入れ替えをした場合にしないといけない事としては、まずはボリューム作成。
ディスク3本でボリューム作成しようとすると「RaidZ」になってくれます。
FreeNAS RaidZボリューム作成

その後、データセット作成→共有(SMB)設定とすればNASとして復活します。
共有(SMB)設定については旧ボリュームの設定を新しいデータセットを指定するように編集でも問題なく簡単です。

他に、まずはS.M.A.R.T.の設定。
これはあくまで物理パス(ada0とか)に対して実行されるものなので、SATAポートが同じだと変更は不要、足した場合はタスクに追加してやればOKです。
後はScrub設定。
これはボリュームに対して行われるもので、ボリューム作成したタイミングで追加はされているはず。
なので必要に応じて時間等をいじればOKですね。
他に使用環境に応じて他の共有設定(NFSやiSCSI等)、rsync、リプリケーション、スナップショットを設定しておく必要はあります。

後はデータ移行ですが、USBハードディスクに一旦退避する形で行いました。
もちろんHDDは完全に入れ替えになるので、実際は先にバックアップを取っていますが、データのバックアップをどうするかを検討した時に3パターンを検討しました。

①Windows上で普通にコピー
②Rsyncで同期
③Snapshotを使った方法

FreeNAS上だけで完結した方が早いと思ったので①は除外。
で、色々調べてみると②か③でならば③の方が安定してそうって事でSnapshotを利用してみる事にしました。
前述もしましたが、これを応用して外部バックアップにも流用できそうなので。
細かい事は記事分けてまた書きます。

とりあえず、悩まされていた異音もなくなったのでこれで安心です。

【関連記事】
おうちで自作NAS - FreeNAS 関連記事一覧。


Secret

TrackBackURL
→https://000dandelion000.blog.fc2.com/tb.php/261-85f579e0