TrueNAS RAIDZ1 vs RAIDZ2

自宅サーバ

TrueNAS で RAIDZ1 vs RAIDZ2 を実測比較 — 自宅サーバのNAS構成はどう選ぶべきか

自宅サーバのNASを組むとき、必ず悩むのが「RAIDZ1 か RAIDZ2 か」。容量を取るか、安全を取るか——ネット上には一般論があふれていますが、同一ハードウェアで両者を実測して比べたデータは意外と見つかりません。

そこで手持ちのHDD 4本を使い、TrueNAS SCALE 上で RAIDZ1 と RAIDZ2 を組み替えながら、通常時性能・縮退時(ディスク1本喪失)性能・resilver(再構築)時間まで一通り測ってみました。結論から言うと、いくつかの「定説」が覆る結果になりました。

TL;DR

  1. 1GbE ネットワーク越しの利用なら、RAIDZ1/RAIDZ2 の性能差は完全にゼロ(すべてリンク上限で頭打ち)
  2. シーケンシャル書き込みは「データディスク本数」にきれいに比例する
  3. ランダム4K IOPSは構成によらず「HDD 1本分」——RAIDZに何本足しても増えない
  4. 意外な発見: RAIDZ1はディスクが1本壊れると、シーケンシャル読み出しがむしろ速くなる(+63〜110%)
  5. RAIDZ2の追加コスト(CPU・resilver時間)は実測レベルでは小さい。最大の差は「resilver中に保護が残るか」

検証環境

項目内容
プラットフォームTrueNAS SCALE 25.10
M/B / CPUASUS P9D-I / Xeon E3-1226 v3(4C4T)
RAM16GB(ECC)
ネットワーク1GbE(実効上限 約118MB/s)
HDDWD Blue 1TB(7200rpm)×2、WD Red 1TB(5400rpm)×1、WD Red 4TB(5400rpm)×1

4TB Red は vdev の最小メンバー(1TB)に切り詰められるため、実質「1TB×4本」として動作します。ディスクの素性がバラバラなのは自宅サーバらしいところですが、3構成とも同じディスク群を使うため相対比較は成立します

比較した3構成

パターン構成実効容量(実測)
ARAIDZ1 × 3本1.75TiB
BRAIDZ1 × 4本2.50TiB
CRAIDZ2 × 4本1.70TiB

BとCが同一ハード4本での直接対決、Aは「最小構成RAIDZ1」の参考値です。

測定条件

  • fio によるローカル測定: Seq 1M(32GiB)/ Rand 4K(120秒)、各3回平均
  • compression=off / atime=off、測定前に pool export/import で ARC(RAMキャッシュ)をフラッシュ
  • SMB測定: Windows 11 + CrystalDiskMark 8(16GiB)
  • 縮退テスト: 同一ディスクを zpool offline して統一
  • resilver: ディスクの署名を wipefs で消去し、zpool replace による完全再構築を測定(offline→onlineでは差分同期になり一瞬で終わってしまうため)

結果1: 通常時性能

測定項目A: Z1×3B: Z1×4C: Z2×4
Seq Write (MB/s)255365254
Seq Read (MB/s)190206316
Rand 4K Write (IOPS)672717650
Rand 4K Read (IOPS)311317324
Write時CPU (%)19.826.922.8

ポイントは3つ。

① Seq Write はデータディスク本数に比例する。 A(データ2本)255 → B(データ3本)365 で約1.4倍。C はパリティ2本を引いてデータ2本なので、Aとほぼ同じ値に戻ります。「RAIDZ2にすると書き込みが遅くなる」のではなく、「同じ本数ならデータに使える本数が減る」が正確な理解です。

② ランダム4K IOPS は3構成とも同じ(311〜324)。 RAIDZ は何本で組んでも 1 vdev の IOPS ≈ HDD 1本分、という定説をきれいに確認できました。ランダム性能が欲しいならRAIDZの本数を増やしても無駄で、ミラーのvdev数を増やすかSSDを使うしかありません。

③ RAIDZ2 のパリティ計算(P+Q)コストは小さい。 同じスループットの A と C を比べると CPU は 19.8% → 22.8% の +3ポイント。10年前のXeonでもこの程度なので、現代のCPUなら気にする必要はないでしょう。

結果2: SMB(1GbE)経由 — 差は完全に消える

CDM(16GiB)ABC
SEQ1M Q8T1 Read / Write118.6 / 118.3118.6 / 118.4118.5 / 118.3
RND4K Q32T1 Read / Write25.8 / 5.325.4 / 6.129.8 / 5.6

シーケンシャルは3構成とも 小数点以下まで同じ118MB/s = 1GbEの実効上限に張り付きました。ローカルでは1.4倍あったBの書き込み優位も、ネットワークの向こうからは一切見えません。

RND4K Read が fio の実測(約1.3MB/s相当)より大幅に高いのはARC(RAMキャッシュ)とクライアント側キャッシュの効果です。逆に言えば、NASのランダム読みの体感はキャッシュが支配するということでもあります。

結果3: 縮退時(ディスク1本喪失)— 定説が覆る

「ディスクが壊れたらパリティ再構築しながら読むので遅くなる」——そう予想していましたが、結果は逆でした。

測定項目A: Z1×3B: Z1×4C: Z2×4
Seq Write (MB/s)257(±0%)345(-6%)248(-2%)
Seq Read (MB/s)310(+63%)431(+110%)301(-5%)
Rand 4K Read (IOPS)229(-26%)231(-27%)217(-33%)

RAIDZ1 は縮退するとシーケンシャル読み出しが大幅に速くなります。 通常時のRAIDZ読み出しは、各ディスク上のパリティブロックを「読み飛ばし」ながら進むため、実はセミシーケンシャルなアクセスになっています。ディスクが1本欠けると残りのディスクを頭から全部読んでパリティ演算で復元する動きになり、こちらの方がHDDには都合が良いのです(測定値のばらつきも消えて±0.1MB/sまで安定しました)。

ただしランダム読みは素直に25〜33%低下します。また、性能が落ちないからといって縮退状態の放置は禁物です。A/B(RAIDZ1)はこの状態で冗長性ゼロ、次の1本で全損します。

結果4: resilver(交換ディスクの再構築)

項目ABC
再構築量(対象ディスク分)24.1G16.4G24.1G
所要時間3:333:104:39(+31%)
実効速度約121MB/s約93MB/s約93MB/s
resilver中の残存冗長性なしなし1本分あり

RAIDZ2 のresilverはRAIDZ1より約3割長くかかりました(読むディスク数と演算量が多いため)。しかし注目すべきは最下段です。resilver中——つまり全ディスクが数時間フル稼働する、故障が最も起きやすい時間帯——に追加故障へ耐えられるのはRAIDZ2だけ

なお今回はテストデータ48GBなので数分で終わっていますが、resilver速度は約90〜120MB/sで一定です。実運用で8TBが埋まっていれば丸1日級になり、この「無防備な1日」を許容できるかがZ1/Z2選択の本質になります。

考察: ネットワークを2.5GbE/5GbEにしたら?

実測値と各リンクの実効上限(2.5GbE≒295MB/s、5GbE≒590MB/s)を突き合わせると:

  • 2.5GbE: Bの書き込み(365)とCの読み出し(316)がリンク上限に到達。1GbEでは隠れていた構成の個性が初めて体感できる帯域。費用対効果の最適点
  • 5GbE: 全実測値が上限未満となり完全にプール律速へ。このクラスのHDD構成には過剰気味
  • ランダム4K: リンクを太くしてもほぼ改善しない(帯域ではなく往復レイテンシとシークの問題)

自宅サーバ向け: 構成の選び方

実測から導かれる原則はシンプルです。

1GbEなら性能は判断材料にならない。選択軸は「容量効率」と「復旧中のリスク窓」の2つだけ。

用途別推奨

用途・条件推奨構成根拠
メディア・録画など再取得可能なデータRAIDZ1×3〜4性能差が出ない以上、容量効率が正義。縮退時も読み出しは落ちない(実測ではむしろ向上)
失えないデータ(バックアップ併用が大前提)RAIDZ2×4〜resilver中も保護が残る唯一の構成。性能面の代償は実測上ほぼゼロ
大容量HDD(8TB以上)で組むRAIDZ2resilverが1日級になり、RAIDZ1の「無防備な窓」が許容しにくい
VM・コンテナ・DBを置くミラー×N組RAIDZのIOPSは何本でもHDD1本分(実測)。vdev数で稼ぐしかない
2.5GbE化予定+書き込み重視RAIDZ1×4実測365MB/sで2.5GbEをほぼ使い切れる

手持ち本数別の目安

本数推奨
2本ミラー
3本RAIDZ1(バックアップ併用前提)
4本分岐点。容量→Z1(2.50T)/ 安全→Z2(1.70T)。差は容量0.8Tとリスク窓の質
5〜6本RAIDZ2
8本以上RAIDZ2、IOPSが要るならミラー多組にvdev分割

大事な注意: RAIDはバックアップではない

最後に、構成選択より優先すべき話を。RAIDZが守ってくれるのは物理ディスクの故障だけです。誤削除、ランサムウェア、プール操作ミス(実際、今回の検証中もコマンド一行でプールを消しています)、電源・コントローラ障害、災害——「プールごと失う事象」にはRAIDZ2でも無力です。

とはいえ、自宅で全データに3-2-1バックアップを適用するのは費用的に非現実的でもあります。現実解はデータの仕分け(トリアージ)です:

  1. 失えないデータ → まずバックアップ(zfs send/receive レプリケーション+定期スナップショット)。構成選択はその後
  2. 再取得可能なデータ → 「意図的にバックアップなし+RAIDZ」は合理的な設計判断。まずいのは”無自覚に”バックアップがないこと
  3. 中間の重要度なら「スナップショット+RAIDZ2」も選択肢。スナップショットは読み取り専用なので、SMB経由のランサムウェアからは暗号化できず、誤削除にも効く——残余リスク(火災・多重故障・操作ミス)を理解したうえでなら十分実用的

まとめ

  • 1GbEの自宅NASにおいて、RAIDZ1とRAIDZ2の性能差を体感することはない。迷う時間だけ損
  • 選択の本質は「容量0.8T分の得(Z1)」vs「resilver中も守られる安心(Z2)」
  • 大容量ディスク時代のresilverは長丁場。ディスクが大きいほどRAIDZ2に寄せるのが安全
  • ランダム性能が欲しければRAIDZの本数ではなく、ミラー構成かSSD(special vdev等)を検討する
  • そして何より、構成選択の前にバックアップ戦略を。RAIDは可用性の道具であって、バックアップの代替ではない

測定の生データ(fio JSON・vmstatログ)と詳細な検証手順は別途記録あり。検証は2026年7月に実施、TrueNAS SCALE 25.10 / OpenZFS環境での結果です。

コメント

タイトルとURLをコピーしました