端の知識の備忘録

技術メモになりきれない、なにものか達の供養先

10gbpsのイントラネット環境を構築してみた #2 NASのセットアップとベンチマーク

前記事

hashicco.hatenablog.com

まとめ

TS-332Xを8TB RAID1で構築。RAMを2GB →8GBに増設し、240GBのSSDキャッシュを搭載してみた結果。

  • 10Gbpsで繋ぐならRAM8GBは必須。1Gbps利用でも2GBではシステムで半分以上使い切っているのでできれば増設したほうが良いと思う。
  • SSDキャッシュはR/Wで構築したほうが当然書き込み速度は上がる。ただしRAID1にすることが推奨されるので、SSDは2枚買う必要がある。
  • メモリ・SSDキャッシュを使い切るまでは1Gbps以上の速度(タスクマネージャーの表示上最大9.9Gbpsまで見ることができた)で転送が行われる。しっかりと10Gbps化した意味がある。

暇な人は下も見ていってください。

買ったNASセットについて

TS-332X-2GB をオリオスペックで税込52,800円で購入。 受発注納期2-3週間予定でしたが4週間かかって到着しました。

https://www.oliospec.com/shopdetail/000000007193/99/page3/disp_pc/www.oliospec.com

特徴としては

  • 3.5インチ 3ベイ + 3 x m.2. SATA の計6本のストレージを搭載可能
  • SFP+ 10 gbpsポートを搭載
  • SSDキャッシュに対応
  • 小さい

というあたり。冗長性確保はRAID1で十分、できれば小さい方が良い、SSDキャッシュとSFP+が使えるという要件から選定しました。

まあこの筐体サイズで6つもストレージつけられるのは面白いなーと言うのが決め手です。

もう少しSSDが安ければオールフラッシュストレージの機種とかも非常に興味があったのですが、2020年現在ではまだ少し高嶺の花ですね。

その点SSDはキャッシュに使う!というコンセプトのこの機種は大変私のニーズに合致していました。2ベイ、2 x m.2. SATA、10gbps対応の機種があればそれがベストでしたが……。

  • RAM

8GBのDDR4 SODIMMをメルカリで2000円くらいで購入。SKhynix 8GB 1Rx8 PC4-2400(型番: HMA81GS6AFR8N-UH)

純正じゃないと保証がどうこうありましたが、流石に純正は法外に高かった(オリオの人に聞いたら4GBで12800円(税別)!とか言ってた)ので普通のノートPC用を買いました。

  • HDD

Buffaloダイレクトの中古整備品で

HGST 8TB HUH728080ALE604 \15,080

TOSHIBA 8TB MN05ACA800 \15,800

を購入しました。

Buffaloダイレクトの中古整備品では使用時間はガチャですが、SMART読みでHGSTのほうが2000時間程度、TOSHIBAが30時間程度と割とあたりを引けたようです。自分の認識として壊れにくいHDDを2台買うよりもちょっと安いHDDを3台買うほうが良いというスタンスなので、わりとよくBuffaloダイレクトを使います。

今回はRAID1で組む予定だったので、同時に壊れなければそれでいいという基準で選定。キャッシュサイズが128MBと256MBでずれているのが気になりましたが、お安かったので黙認。

  • キャッシュ用SSD

最初はCrucial MX500 250GB M.2を1本、中古で3,900円で買いました。キャッシュ用なので新品でなくても良いやということで適当に。

が、なんとQNAP NASSSDのWriteキャッシュを使いたい場合はSSDでRaid1を構築することが推奨されているようで、急遽2本目のSSDを買いました。

丁度アマゾンのタイムセール祭りでKioxiaの240GB SATA SSDSSD-CK240S/Nが\3,582 で売っており、キオクシアという物珍しさと興味からこれを選択。

NASに組み入れる前に軽く単独でベンチもとってみたので、これは別記事で紹介できればと思っています。

テスト環境

PC

  • OS: Windows10 Home
  • CPU: Ryzen ThreadRipper 2920X
  • MB: Asrock X399 phantom gaming 6
  • RAM: 16GB*4
  • システムディスク: HP EX950 NVMe 500GB

接続

PC NIC: HP NC552SFP ー スイッチ:Mikrotik CRS305-1G-4S+IN  ー NAS:TS-332X

使用ベンチマークソフト

NASの構成

  • SATA1 : HGST 8TB HUH728080ALE604
  • SATA2 : Kioxia 240GB SSD-CK240S/N
  • SATA3: TOSHIBA 8TB MN05ACA800
  • M.2. SATA 1: Crucial MX500 250GB
  • M.2. SATA 2: なし
  • M.2. SATA 3: なし

HDDは2台並べると熱が気になりそうだったので、間にSSDをはさみました。

8TB HDD同士でRAID1、そしてSSDは小容量の240GBに合わせてRAID1を組み、SSDはキャッシュとして利用するよう設定。

ちなみに通常の2.5/3.5ベイとM.2. SATAの間でも問題なくRAIDを設定できました。

実験条件

以下の3パターンでベンチを取得。ReadのみのキャッシュではCrucial MX500 250GBを単独で使用しました。

CrystalDiskMarkは繰り返し回数を3回にした以外はデフォルトで実行。

データサイズは16MiB, 1GiB, 8GiB, 64GiBの4種。2GB RAM環境では時間がかかりすぎるので64GiBは行わなかった。

  • RAM:2GB, SSDキャッシュ: Readのみ
  • RAM:8GB, SSDキャッシュ: Readのみ
  • RAM:8GB, SSDキャッシュ: Write, Read

まとめ

単位はすべてMB/s

データサイズ 1GiB:

- 2GB, Read only 8GB, Read only 8GB, R/W
read seq Q8 176.59 1182.61 1184.04
read rnd Q32 4.20 71.62 107.62
write seq Q8 202.81 213.47 406.01
write rnd Q32 2.98 3.94 48.95

データサイズ 8GiB:

- 2GB, Read only 8GB, Read only 8GB, R/W
read seq Q8 217.31 849.31 1166.66
read rnd Q32 2.81 7.72 58.71
write seq Q8 215.16 221.46 376.43
write rnd Q32 1.93 3.06 59.58

データサイズ 64GiB:

- 2GB, Read only 8GB, Read only 8GB, R/W
read seq Q8 -- 829.39 1150.76
read rnd Q32 -- 2.78 36.15
write seq Q8 -- 206.39 410.38
write rnd Q32 -- 2.42 48.51

まず言えるのはメモリの量は大事。RAMの量が少ない2GBでは、ReadのSSDキャッシュを設定してもSeqで200MB/s、Rndで数MBと、素のHDDとあまり変わらない速度しか出ないようだ。

そしてRAMを8GBにすることで、Seqで1000MB/sを超えるReadが確認される。これでようやく10GbE環境を整えた意味が出てくるというものだ。

SSDを2枚も使ってR/Wキャッシュにした効果も、きちんとWriteの速度上昇という形で現れている。特にランダム書き込みについてはWriteキャッシュがないとかなり数字が落ち込む。少し不思議だがなぜか8GiB以上のデータサイズにおけるランダム読み込みも、Writeキャッシュの導入で速度がかなり改善できる現象が確認できた。

これだけ速度が出ていれば、ほぼほぼ内蔵ディスクと変わらないか、何ならそれより速いくらいのディスクとして使える。とても嬉しい結果であった。

  • RAM:8GB, SSDキャッシュ: Write, ReadにおけるRAM使用量

先程のCrystalDiskMarkの結果から、速度への影響が最も大きいと思われるRAMの、ベンチマーク中の使用状況についても少し見てみた。

QNAPの管理画面のダッシュボードからRAMの使用量が確認できるので、「RAM:8GB, SSDキャッシュ: Write, Read」の条件でベンチマークをしているときにその値を記録したのが以下。

- 通常時:キャッシュ256MB, 空き6.15GB前後
- 16 MiB: キャッシュ272MB, 空き6.13GB前後
- 1 GiB: キャッシュ1.25GB, 空き5.14GB前後
- 8,64 GiB: キャッシュ6GB, 空き280MB前後

RAM使用量

16MiBや1GiBのときの使用量が「通常時のキャッシュ+データサイズ」となっていることから、これらのデータサイズでのベンチマークではほぼRAMキャッシュのみでデータの転送が処理されているものと思われる。

一方8GiB以上のデータサイズではRAMキャッシュを上限まで使い切っていることが確認できる。

ちなみにRAM2GBではシステムに殆どのメモリが使用されてしまい、データキャッシュとして使えるRAMは残っていなかった。その結果極端にCrystalDiskMarkの結果が悪かったのだろう。

  • 実使用でのデータ転送

あまり参考になるわけではないが、試しに自分のメインPCに入っていたデータの移行にかかる時間を計測してみた。

システムのM.2. NVMe SSDに置かれた動画、画像、音楽、テキスト、ソフトウェアを含む111GBの雑多なダウンロードフォルダの移動に18分という結果であった。

ざっと平均すれば100MB/sは出ている計算となり、実ファイルの移行でも十分な速度が出ている印象だ。ちなみに内臓のHDD 4TB(SEAGATEのVN型番のやつ)に移したときは30分以上はかかっていたので、細かいサイズのデータの書き込みをきちんとSSDキャッシュが吸収してくれていることを実感できた気がする。

というか自分のPCにこれしかデータ入ってないとか、正直8TBは過剰だった気がしてきた……

キオクシアSSDの使ってみたレポート:

Kioxia SSD SSD-CK240S/N ベンチマーク - 端の知識の備忘録

【番外編】TS-332Xの設定詳細: いつか書く(信頼度:低)

おまけ

全結果の画像

8GB, R/W 16MiB
8GB, R/W 1GiB
8GB, R/W 8GiB
8GB, R/W 64GiB

8GB, Read only 16MiB
8GB, Read only 1GiB
8GB, Read only 8GiB
8GB, Read only 64GiB

2GB, Read only 16MiB
2GB, Read only 1GiB
2GB, Read only 8GiB