最強 STRONGER
SilverStone さんありがとう!

Introduction

健康診断で肝機能障害を引き当てましたが、みなさまいかがお過ごしでしょうか。
どうやら肝臓のキャパシティは絶望的なようですが、ストレージサーバは5年ぶりにリプレースしたことでキャパシティが無限になりました。無限ではないですが。
旧機と比較してメンテナンス性が著しく向上した最強のストレージサーバを作れてしまったので、ブログに残しておこうと思った次第です。
肝臓もリプレースしたいすね。

旧機

5年前の2017年4月に、FreeNAS (現 TrueNAS) を使用したストレージサーバを自作しました。

この時が初の自作 PC ってやつでもあったワケですが、PC の組み方なんて知るワケなかったので、(今の)ぼくのかんがえる最強のストレージサーバを作った - Blend day’s Note の構成を参考にさせていただき (完全に丸パクリした) 構築したことを覚えています。
BIOS が上がった時はクソみたいに Thumbs up していたみたいですね。

この頃は専門学校2年目でしたでしょうか。時の流れは残酷なものです。

構成 (2017)

Node 804 は最大8台の HDD を収めることができますが、当時はまだ RAID-Z を使用しておらず、HDD 1台のみで運用していました。(カネがないので)
3TB もあれば結構持ってくれていましたが、さすがに足りなくなり手元にあった 2TB の WD Green を適当にぶっ刺していたりもしました。
上記構成で、費用は5万ほどでした。
HDD が8台挿せるような構成は、QNAP のようなアプライアンス製品だと HDD を抜いても15万くらい取られるので、えらい自信のある価格設定なんどすなぁと思わざるを得ません。

という構成を、2021年までダラダラと続けることになります。

構成 (2021)

1月くらいに手を入れました。

  • RAM: DDR3-1600 8GB * 4
  • Storage: WD Blue 4TB * 5
  • OS: XigmaNAS

ZFS はアホみたいにメモリを食い荒らすため、メモリは積めるだけ積んだほうがよいです。そのため 32GB まで増設しました。
3TB + 2TB の単体運用もそろそろしんどくなってきて、HDD も積めるだけ積むかとなったのもこの頃です。
WD Blue 4TB を選択したのは、値段的に手が出せる範囲でコスパが良かったからだった気がします。実際今も安いですし。

OS も変更しまして、FreeNAS にサヨナラしました。
この頃には既に FreeNAS から TrueNAS へと名称が変わっていたと思いますが、USB ブートが非推奨となったので XigmaNAS へと移行しました。
TrueNAS、UI などはかなり現代的になっていてよかったのですが、CIFS でマウントできれば何でもよい身としては XigmaNAS でも全く問題なかったのです。

5台も Disk を追加したらもちろん RAID を組むワケで、RAID-Z2 をセットアップしました。
使用可容量は 10TB ほどです。古い Disk からデータを移しても残り 7TB はあったはずなので、3年くらいは持つかなと高を括っていた記憶があります。
持ちませんでした。

リプレース

さて、好みの美少女イラストを見境なく片っ端から NAS にブチ込みまくっていたら容量はどうなるでしょうか。一瞬で逼迫します。
1日平均 18GB ほどを消費していたようなので、これを1年続けていたら 6570GB が消費されることになります。
グラフに表すと下記のようになりました。


病気。

自分の手元に絵が残っていないと不安になるので多分病気なんだと思うのですが、やめる気は無いので逼迫しているストレージを拡張する必要があります。
ですが、RAID-Z は後から RAID 構成を変えることはできません。
全ての Disk を1台ずつ引っこ抜いて Rebuild させながら、より容量の多い Disk と交換していけば増やせはするようですが、そんな危険で面倒くさいことは死んでもやりたくありません。
そのため、新しいマシンを用意して、新たに Disk Array を構築してデータを移すのが妥当な案でしょう。
どうせ新しいのを組むなら 14TB を挿しまくって (18TB よりもコスパがよい)、病気みたいな容量の Array を作りたいなと思い耽っていましたが、14TB を10台買うと37万円くらいします。
マシンを用意する金はあっても Disk を買う金はありません。
RAID 構成でケチるとどうなるかは旧機で理解しているので、スケーラビリティを担保しつつ初期投資をどれだけ抑えられるかが課題になります。

脱 RAID-Z

そもそも RAID 自体、それ自身が持つ冗長性に耐えられない数の Disk 故障が発生してしまうと、Disk Array 全体に回復不可能な障害が発生します。最悪の場合データの全消失を招きます。
RAID はバックアップではないということは耳にタコができるくらい聞いていますが、それでも 10TB をバックアップするというのは現実的ではありません。
RAID に代わる耐障害性の高いストレージの構築手段は他にあるでしょうか。
ありました。 SnapRAID です。
SnapRAID を使用したストレージサーバの構築方法は過去の記事にて解説しています。

機器選定

  • アプライアンス (QNAP): 知らん OS つかいたくないので無し

そのため前回同様自作で進めます。

ケース

Hotswap ができるとよいですね。メンテが非常につらいので。
今回は SilverStone RM41-506 を採用しました。
5.25” スロットが6基あるので、SilverStone FS305-12G を2基積みました。

他のケースも考えてはいましたが、一般的なサーバシャーシは電源の調達が非常にめんどくさい (あと、法外に高い) ので、ATX 電源が積めて Disk をたくさん挿せて、コストパフォーマンスも高い構成を考えると、上記で採用した構成が妥当かなといった所です。

また、コイツはラックマウント型なのでマウントレールも買っておいたほうがよいです。(SilverStone RMS06-22 を買いました)
というか、マウントレールってクッソ高い (\15,536) んすね。。。

MB

デスクトップ PC から流用しました。
GIGABYTE X570 AORUS PRO です。

CPU

上記同様流用しました。
AMD Ryzen 9 3900X です。

内蔵 GPU が無いので GT710 を適当にブッ刺しました。

内蔵 GPU が、無いぞうw

CPU Cooler

めんどいのでリテールクーラで冷やしています。

RAM

流用しました。
Corsair CMK32GX4M2D3200C16 4枚で 64GB です。
(1枚ぶっ壊れて交換したので CMK32GX4M2B3200C16 になっちゃってますが)

PSU

流用しました。
Corsair CP-9020151-JP です。

SATA Card

ポート足らんので買います。
SilverStone ECS06 を2個、12ポート分です。
オンボードに6ポートあるので1個だけで足りはしますが、MB を取り付けるとポートがストレージケースの下に埋もれてしまうのでメンテが非常に大変になります。
なので2つ挿しています。しゃあない。

SSD Expansion Slot

SilverStone EXB02 を使用して、Boot 用の SSD を挿入しています。
こういうの もあるみたいですが、怖くて手が出ませんでした。

Storage

WesternDigital WD40EZRZ を10台。
旧機に5台挿していたものと、予備の5台を全部挿しました。
安いですがあんま速くないのでおすすめはしません。

備考

ほとんどデスクトップマシンから引き抜いちゃっているので、ゼロから組むとしたら下記のような構成にすると思います。

あと、SATA ケーブルを11本引き回すので配線がぐっちゃぐちゃになるのは覚悟しときましょう。

技術選定

OS

Rocky Linux 8.4 を使用します。CentOS に魂を売ったので。
Alma Linux のほうが活発に見えますが、お好きな方で。

File System

XFS。RHEL8 からデフォルトのアレです。
なんもオプションいじらなくても inode が枯渇するなんてこともなくてよいと思います。

SnapRAID & mergerfs

RAID はカスなので、上の方で書いたとおり SnapRAID を使います。
mergerfs で Data Disk を統合すれば使いやすくなります。
SnapRAID は後から容量を増やすことが簡単なので、18TB の Disk で固めれば 144TB までスケールします。病気。

Remote Mount

だるいんで SSHFS しか使ってません。
CIFS も卒業できてよいですね。

その他

後は sync, scrub を Cron で回したり、smartd と各種監視ツール等で面倒みる感じになります。

データ移行

新機に5台挿して旧機から rsync をブン回していました。
8TB ほど移しましたが3日以上かかった気がする。。。
移し終えたら、旧機から Disk を抜いて残りのスロットに挿せば完了です。
拡張する際は SnapRAID の Config に Disk を追記するだけなので、非常に楽でした。

発生した問題

バカみたいに SEGV する

殺すぞ

メモリがダメそうな予感がしたので MemTest86 を回してみました。

殺すぞ

調子悪かったのは1枚だけのようだったので、機器選定に書いたとおり1枚だけ交換するハメになりました。
それ以降は正常に sync できるので問題なさそうです。

突然 Hang する

コンソールもカチカチになるので電源ブチ落とすしかなくなることが1日1回起こってしまいます。
再起動後に Syslog を確認してもマジでなんも出ていないので、まだ解決に至っていません。
なんでやろなぁ。。。

これが RAID で頻発すると大問題ですが、SnapRAID なのでそれほど慌てていないです。
しんどいのではやいとこ何とかしたいですが。。。

費用

新規購入のものだけ

1
2
3
4
5
6
7
RM41-506 : \23,413
FS305-12G: \16,727 * 2 = \33,454
RMS06-22 : \15,536
ECS06 : \9,650 * 2 = \19,300
EXB02 : \5,258
----
Total : \96,961

計算しなきゃよかった

流用パーツも合わせるとアプライアンスのほうが安いですね。。。
Ryzen9 とか RAM64GB とかじゃなければもっと安く済みますが。

HDD が8台挿せるような構成は、QNAP のようなアプライアンス製品だと HDD を抜いても15万くらい取られるので、えらい自信のある価格設定なんどすなぁと思わざるを得ません。

俺が悪かった。

締め

というワケで、いい感じにストレージサーバを構築できたという話でした。
144TB でも足りなくなったら。。。 やはり MinIO とか使わないといけないのでしょうか。

ストレージサーバを自作するメリットは、Hardware/Software の両面を自分でコントロールできるという点でしょうか。
個人的にはコントロールが効くほうが安心できます。
メンテしたくなければ QNAP とか Synology でいいと思います。費用もぶっちゃけ変わらない気がする。

みんなも NAS 組人 (くみんちゅ) になろう。