QTS 改め TrueNAS Scale の物理構成

Summary

前回の初期化試験で背面にあるリセットボタン3秒押しでの admin アカウントパスワード時に暗号化ボリュームのロックがされず、中身が閲覧できてしまうバグを見つけました。 QNAP にもサポートチケットを切って確認したが仕様ということなので QTS の利用を諦らめた。ため、 TrueNAS Scale のテストと構築を試してみる。

設計

Slot用途
QTS VersionQTS 5.1.2.2533
PCIE10GbE x2QXG-25G2SF-CX6
Memory16GB x2Kingston C8D24D4S7D8K1A - 16
M.2 PCIe SSD 1,2WD Red SN700
3.5’’ SATA HDD 1,2DataWD WUH721816ALE6L4 16TB
3.5’’ SATA SSD 5,6VM StoreSamsung 870 EVO
USB HDDバックアップ用Toshiba MG08ACA16TE

弊宅のハードウェアを再掲する。

TrueNAS Scale は ZFS でストレージを構成するため ZFS の構成を調査する

ZFS にはキャッシュ機能が複数あり通常であれば ARC(DRAM) がこれとなる。 ARC は読み書きのキャッシュとして利用され TrueNAS Scale 23.10 時点では RAM 容量の 50% が自動で割り当てられる。

Topic
つまり、メモリーはパフォーマンスを気にする場合は積めるだけ積め 以上!!!

書込みキャッシュ

  • ZIL/SLOG
    • Pool 設定の Log VDEVs に該当する
    • 設定すると ネットワークまたはアプリーケーションからくる書き込みリクエストを 5秒間キャッシュとして書き込む
    • 書き込み中の電源損失はデータロストになる可能性があるためUPSなどを設置する必要がある
    • 書き込みドライブはミラーを推奨
    • 容量の推奨下記
      • 式: ((<Network Speed>*1000*1000)/8)*5= <必要容量(MB)>
        Network Speed必要容量(MB)
        1.0Gbps625
        2.5Gbps1,562
        10.0Gbps6,250
        20Gbps12,500

読込みキャッシュ

  • ARC
    • RAM で実施される 読込み/書き込みキャッシュ
    • 搭載 RAM の 50% が標準で使われる
  • L2ARC
    • Pool 設定の Cache VDEVs に該当する
    • RAM が 64GB 以下の場合は設定するべきではない
    • L2 キャッシュ ARC に収まらないキャッシュデータを NVMe などの高速ストレージで保持することで読み取り性能を上げる
    • 大事なのはランダム読み取りパフォーマンス
    • 複数 Pool にまたがる L2ARC は作れない(専用で用意する必要がある)
    • 容量は RAM の 1-5倍迄が目安
    • L2ARC のセクターあたり 88byte の RAM が必要
      • 計算式: (((<L2ARC容量>*1024*1024)/4096)*88)/1000=<L2ARC RAM 使用量(MB)>
        L2ARC容量L2ARC RAM 使用量(MB)
        16GB360.45
        32GB720.90
        64GB1,441.80
        128GB2,883.58
        240GB5,406.72
        256GB5767.19
        480GB10,813.44
        512GB11,534.34
        960GB21,626.88

性能比較

fio で Disk benchmark を走らせて確認することにする。

L2ARC は搭載RAM 64GB 以下では非推奨であるが速度が変わるのか確認する。試験方法は TrueNAS Scale 23.10 内蔵の fio に上記記事で書いた fio.txt を使ってベンチをかける。 Data vDevs は 16TB でメーカー公称と弊宅実測で1台あたり 258MB/s は出る。

結論として弊宅の構成では L2ARC の恩恵は微かである。 1GbE=125MB/s, 10GbE=1,250MB/s であることを考えても SLOG まであれば十分である。 SLOG には 調達済みだったため WD Red SN700 500GB を Miror にして利用する

GiBARCSLOGL2ARCSLOG + L2ARC
Read Avg646.3895.5527.0704.5
Write Avg279.6363.5193.8257.3
1GiB-RO-SEQ-1MQ08T11106.02758.0828.02459.4
1GiB-RO-SEQ-1MQ01T1999.02845.01297.0992.4
1GiB-RO-RND-4kQ32T153.0177.041.0164.6
1GiB-RO-RND-4kQ01T149.0178.040.0159.3
4GiB-RO-SEQ-1MQ08T11614.01025.01049.01406.3
4GiB-RO-SEQ-1MQ01T11671.01398.01089.01502.4
4GiB-RO-RND-4kQ32T10.766.00.92.8
4GiB-RO-RND-4kQ01T10.70.81.02.4
10GiB-RO-SEQ-1MQ08T11212.01143.0960.0880.0
10GiB-RO-SEQ-1MQ01T11050.01155.01017.0882.5
10GiB-RO-RND-4kQ32T10.50.50.71.4
10GiB-RO-RND-4kQ01T10.50.60.71.2
1GiB-RW-SEQ-1MQ08T1663.02479.01115.01695.6
1GiB-RW-SEQ-1MQ01T11591.0434.0506.0524.0
1GiB-RW-RND-4kQ32T1219.0266.01.9118.4
1GiB-RW-RND-4kQ01T1246.0255.062.7126.8
4GiB-RW-SEQ-1MQ08T1222.0191.0220.0157.5
4GiB-RW-SEQ-1MQ01T1168.0193.0164.0198.4
4GiB-RW-RND-4kQ32T10.525.01.01.5
4GiB-RW-RND-4kQ01T10.845.01.52.6
10GiB-RW-SEQ-1MQ08T1121.0207.0127.0128.0
10GiB-RW-SEQ-1MQ01T1123.0203.0125.0132.3
10GiB-RW-RND-4kQ32T10.628.01.21.7
10GiB-RW-RND-4kQ01T10.636.01.21.9
dbench.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/bin/env bash
set -eu

DESC=${1}
TARGET=/mnt/tank1/tmp

for size in "1GiB" "4GiB" "10GiB"
do
  echo "fio testing... ${size}"
  SIZE=${size} DESC=${DESC} TARGET=${TARGET} fio -f fio.txt --output-format=terse | awk -F ';' '{print $3, ($7+$48) / 1000}'
done

Direct 16:06 - 16:25 SLOG 15:33 - 16:00

L2ARC 16:30 - 17:01 SLOG + L2ARC 17:19 - 17:38

最終的な構成

最初とあまり変わらないが Data Pool の SLOG として SN700 を利用することにしてあとは構成変更せずに作成することにした。

Slot用途
TrueNAS Scale23.10
PCIE10GbE x2QXG-25G2SF-CX6
Memory16GB x2Kingston C8D24D4S7D8K1A - 16
USB SSDOSSSD-PST250U3BA
M.2 PCIe SSD 1,2SLOGWD Red SN700
3.5’’ SATA HDD 1,2Data PoolWD WUH721816ALE6L4 16TB
3.5’’ SATA SSD 5,6VM PoolSamsung 870 EVO
USB HDDバックアップ用Toshiba MG08ACA16TE

OS 用は USB フラッシュメモリーで妥協予定だったが、 TrueNAS Scale の推奨要件で SSD が推奨されていることと USB フラッシュメモリーは非推奨い現在なっているため USB SSD を購入した。購入前の下調べで TBW や MTBF/MTTR 系の情報が一切なく大丈夫なのかと思ったが通常の USB メモリーより高耐久なのは間違えなさそうなためこちらにすることにした。スペースの問題もあるため飛び出し 17mm は魅力的であった。

実際現物を確認すると、下記の様であったが S.M.A.R.T に対応していて一応健康状態を確認できそうである。ので監視をしっかり仕込めば実用の範囲内に見えるのでこれを OS Disk として利用していく。 TrueNAS Scale は事前の情報で設定情報さえ取ってあれば再インストールで修復することもできると聴いてるのでそれが可能なら設定を自動でバックアップするか、大きめの変更を実施したさいに手動でバックアップを作成して別のストレージに保存すれば OS Disk 障害にも対応できそうである。

CrystalDiskInfo

Built with Hugo
テーマ StackJimmy によって設計されています。