kumpei.ikuta.me

mdadm + LVM で貧者の冗長ストレージ(計画)

デカくて冗長な NAS が欲しくなったので、自前で構築します。

金について

ハードウェア・ソフトウェアの面倒を自分で見るよりも、適当なクラウドサービスに金を出したほうが(手間賃まで考慮すれば)安いのでは?と思い概算してみます。

  • Google Drive
    • 20TB で 13,000 円 / month
  • Google Cloud Storage (東京リージョン, Standard Storage)
    • 20TB で 460 ドル / month + 転送量課金
  • Amazon S3 (東京リージョン)
    • 20TB で 500 ドル / month + 転送量課金
  • Wasabi
    • 20TB で 119 ドル / month

めちゃくちゃに高い。最安は Google Drive ですが、 13,000 円というのは 8TB HDD の最安値くらいの価格 です(as of writing this)。

一方、自前での構築を考えます。先述の 8TB HDD を 4 発買えば 24TB の RAID 5 アレイが手に入ります。サーバハードウェアや HDD エンクロージャなど諸々の雑費を加味しても 10 万円ほどの初期投資で間に合うでしょう。

もちろん各種クラウドストレージを使えば信頼性は格段に高いし、メンテナンスの手間はかかりません。しかし、それらのメリットに月間 13,000 円の価値が感じられるかというと微妙なところだと思います(当然人によるけど)。また、この 13,000 円という差額はストレージを拡張すればするほど増えていくことになるわけです。

てなわけで、オンプレでの構築をすることにしました。

ハードウェアについて

ディスクについては上述した Seagate の BarraCuda 8TB 一択です。カタログ的には 24h 稼動を想定されていない一般 PC 用モデルですが、各社 NAS 向けモデルと比較して圧倒的に安価です。これを使い続けて壊れたら交換する、という方式のほうが安く上がると思います(厳密な計算はしてませんが)。

また、他の諸々については適当でいいでしょう。サーバについては Pentium G5400 が入った適当なデスクトップ PC を、HDD エンクロージャについては 裸族のスカイタワー CRST1035U3IS6G を使うことにします。

市販の NAS キットは使いません。ベイ数の多いものは 10 万円を超え、とても買えるものではないからです。また、拡張性にも欠けます。

ソフトウェアについて

ソフトウェア RAID を実現する手段について、現代の Linux 環境であれば

  • mdadm
  • ZFS
  • Btrfs

の 3 択になると思います(bcachefs にも RAID 機能があるらしいですが、さすがに Linux カーネルに乗っていないファイルシステムを使うのは怖いです 1 )。

で、まず Btrfs は RAID 5/6 がまだ Unstable と Wiki に赤文字で怖そうに書いてあった ので除外します。また ZFS については、ディスクを後から追加してプールを拡大するという操作がとてもしづらそうだった(仮想マシンで試した)のでやはり除外します。

ということで消去法的に最も枯れた mdadm を用いることにしました。さらに、将来的には複数の RAID アレイを扱う必要性も出てくることに備え、LVM で mdadm のアレイ達をまとめるという構成にします。わかりにくいので(将来の自分のために)図を描きました。

mdadm + LVM の構成図(LVM の PV / VG は省略)
mdadm + LVM の構成図(LVM の PV / VG は省略)

こうしておくことで、将来どれだけディスクが増えても、システムから見えるのはただの巨大な LVM の論理ボリュームということになります。また、ファイルシステムについては XFS を使います。枯れていて、ext4 よりも巨大なボリュームを扱うことに長けているらしい ので。

次回予告


  1. 厳密には ZFS も mainline カーネルには載ってないわけだけど。 ↩︎

back to index