「TS-673」タグアーカイブ

QNAP TS-673でSMB MultiChannel(マルチチャンネル)を有効にする

QNAP TS-673での転送速度の限界に挑んでみたくなり、2つのLANを束ねるLAG(リンクアグリゲーション)をやめ、2つのLANにそれぞれIPを割り当てて並列でSMBの通信を行うMultiChannel(マルチチャンネル)をやってみました。
が、PC側はちゃんとマルチチャンネルの要件を満たしているにも関わらず、マルチチャンネルでの接続ができませんした。
何度やってもマルチチャンネルになりません。

NASとPCがSMBv3で接続されているのも確認しましたが、なぜかマルチチャンネルでの通信ができず。

もしかしてPC側ではなく、QNAP側が対応していないのではないかと思い、SSHでログインしてSMBの設定を確認してみました。

cat /etc/config/smb.conf

すると[global]セクションにマルチチャンネルの設定がありません…

なるほど、これではマルチチャンネルが有効にならないはずです。
ということで[global]セクションにマルチチャンネル有効の設定を追加。

vi /etc/config/smb.conf

以下の行を[global]セクションに追加。

server multi channel support = yes

SMBのサービスを再起動(NASを再起動でもOKです)

/etc/init.d/smb.sh restart

そしてPCから接続するとマルチチャンネルが有効になりました。

NVMe SSDが初期不良で4枚揃っていないので、HDDx6 RAID6 + SSDx2 RAID1キャッシュでの速度を計測してみました。

シーケンシャルのReadでは10GbE帯域を超えることができました!

2020/07/27追記
NAS側の接続で設定を見直し再度LAGを組み、、NAS側はLAGを組んでいてもSMBv3のマルチチャンネルを使えるようになりました。
(PC側はLAGは組まずに2つのIPを持った状態です)
ネットワークスイッチのLAGの設定は以下のようにSrc/Dest IP and TCP/UDP Port fieldsにして、NAS側のポートトランキングのハッシュポリシーをLayer 2+3(MAC+IP)とすることでマルチチャンネルを使えるようになりました。

NETGEARのネットワークスイッチの設定

※Layer3を扱えるフルマネージスイッチでないと、この設定はできないかもしれません。

NASのポートトランキングの設定

CrystalDiskMarkでのベンチマークとNASの通信トラフィック

シーケンシャルリード時のトラフィック

ちゃんと2つのネットワークで均等に通信が行われているのが確認できます。

ベンチ中の最初から最後までのトラフィック

最後のランダムライト(RND4K Q32T1)は片方のネットワークしか利用されていないので、速度に余裕がある場合は両方使わないのかもしれません。
(何度かテストしていると、シーケンシャルリードでも1度だけ片方しか使われない時があったので、状況によってネットワークの使い方が変わるようです)

2020/08/02追記
NVMe SSDのRAID10を組んでQtierを再構築して計測しました。

シーケンシャルは20GbEの限界近くまで行くかと思ってましたが、それほど伸びませんでした。
CPUなどは一般的なPCに比べれば高性能でもありませんし、これくらいが中堅NASのハード上の限界なのかもしれません。

QNAP TS-673にGPGPUを追加

QNAP TS-673にはGPUが搭載されていません。
NASの基本機能としてはGPUは必要ありませんが、同じQNAPでもTVSシリーズはCPUに統合されたGPUを持っており、画面への出力やトランスコード支援機能などを標準で備えています。

では、GPU機能を持たないTS-x73シリーズで同じことが実現できないのかというと、GPUを追加することで実現ができます。
TS-x73シリーズは空きPCIeスロットを2つ持っており、そこにGPUを刺せば普通のPCと同じようにGPUを追加可能です。

追加する際には少しだけ注意が必要です。
まず4ベイのTS-473では筐体サイズの関係でPCIeスロットがロープロファイルのみ対応となっています。
(トランスコード支援が可能なロープロファイルで1スロットのGPUは存在するのか??)
6ベイのTS-673、8ベイのTS-873はフルサイズのカードが刺さりますので問題なしです。

そして3機種共通ですが2スロット占有タイプのGPUを刺すと、PCIeスロットを2つ塞いでしまうので他のカードが刺せなくなります。
私は10Gネットワーク用にMellanox ConnectX®-3 Pro(MCX312B-XCCT)を使用していますので、必然的に1スロットのGPUを探すことになりました。

最初に候補に上がったのがGT 1030(GTXではなくGTなのです)でしたが、GT 1030だとトランスコード支援機能に対応してないようです。
QNAPの対応機器一覧でGT 1030にはHD Station / Linux Station / Container StationしかなくHardware Transcodingの文字がありません。
次に候補に上がったのがELSA GTX 1650でしたが、現時点ではQNAPのNVIDIA GPU Driverが正式対応していません。
※バージョン的には現在のQNAPのバージョン3.0.5がNVIDIA driver version 418.56を含む形なので、次のバージョンがリリースされれば、GTX 1650をサポートしている418.74以降を含む可能性が高いと思われます。
そして少ない1スロットGPUで、且つトランスコードが可能なものを探したところELSA GTX 1050 Tiが候補に上がりました。

しかし既に販売終了品なので程度の良い中古を購入することにしました。
GTX 1650が正式サポートされれば新品を買えるんですけどね。

ELSA GeForce GTX 1050 Ti 4GB SP

貴重な1スロットタイプのGPUです。

下の写真の赤枠の部分ですが、材質はなんとプラスチック製です。
最初に写真を見た時は金属で放熱してくれるのだろうと思っていましたが、全く放熱には関係しません。
ただのダミーで見た目だけです!

そしてTS-673のPCIeスロットに刺す際に、どちらのカードを上にしようかちょっと悩みました。

Mellanox ConnectX®-3 Proはファンを搭載しておらず、ヒートシンクのみで冷やすタイプです。
ですので、GPUの上に置くとカード間のスペースが殆どない状態で空気の対流が少なく、更にGPUの背面の熱が直接来るので、冷えないどころかどんどん温度上昇しそうな気が。
逆にGPUを上にしてもMellanox ConnectX®-3 Proはロープロファイルサイズなので、GPUのファンを遮るのはほんのちょっとです。

ということで、Mellanox ConnectX®-3 Proを下側に、ELSA GeForce GTX 1050 Ti 4GB SPを上側に刺すことにしました。

カード間のクリアランスは下の写真の通りほんの少ししか開いてません。

TS-673の電源コネクタ部分との干渉もギリギリでした。
端が少し斜めに作られてなかったら干渉していたと思われます。
(この部分はプラ製なので最悪切ればいいだけですが)

QNAPのNVidiaドライバを入れて、ハードウェア項目でトランスコードを行えるように設定してあげれば、しっかりとトランスコードでGPUが使用されるのを確認しました。

尚、GPUとモニターを接続していれば、起動時には起動画面が、起動後はコンソール画面がモニターに表示されます。
マウスやキーボードを繋げば、普通のLinux機のようにコンソールにログインして使用することも可能です。

QNAP TS-673にSSDキャッシュを追加

QNAP TS-673は本体にSATA 6Gb/s M.2 SSDのスロットを2つ持っています。
NVMeではなくSATAのSSDです。

当初は拡張カードを追加してNVMeのSSDでキャッシュを作ろうと思っていました。
しかし折角専用のスロットを搭載しているので、SATAでSSDキャッシュを作成することにしました。

今回使用したのはWesternDigital製 WD REDシリーズ NASシステム向けのM.2 SSDです。

WESTERN DIGITAL WDS500G1R0B WD Red SSD 500GB SATA 6Gb/s

これを選んだのは耐久性が高そうなのと、NASで使ってるHDDもWesternDigital製 WD REDシリーズだから、なんとなく揃えてみたくなったためです(笑)

TS-673のM2スロットには温度センサーが付いており、QNAPの説明でもできるだけヒートシンクを付けるべきとのことで、今回は別にヒートシンクを購入し、SSDに取り付けることにしました。
Amazonで2個セットで安いのが売ってたので、それを買って本体に取り付ける前にSSDと合体。

あとは本体のM2スロットに取り付ければ終了です。
※分解などが記載されているマニュアルは以下のURLでダウンロード可能です。
TS-x73 ユーザー ガイド

取り付けるだけではキャッシュとして動作しませんので、「ストレージ&スナップショット」の「キャッシュ加速」にて、RAID1でSSDキャッシュとして設定します。
ちなみにRAID0では読み取り専用のキャッシュしか作成できませんので、必ずペアで冗長なRAID構成にする必要があります。

SSDキャッシュありとなしでベンチマークを計測してみました。

SSDキャッシュなし

SSDキャッシュあり

大きく変わるのはRAND4K Q32T16のWriteくらいで、あとは誤差範囲だと思います。
シーケンシャルの速度が上がらないのは予め分かっていました。
なぜかということ、SSDキャッシュ作成の際のキャッシュモード選択にて、ランダムI/Oのタイプを選択したからです。
これには色々と理由がありますが、長くなるので省きます。

シーケンシャルのReadがなぜか遅いな~と思ってたのですが、設定を再確認したらジャンボフレームを設定するのを忘れてました…
ということで、ジャンボフレームを設定して再計測。

ジャンボフレームON&SSDキャッシュなし

ジャンボフレームON&SSDキャッシュあり

しっかり速度がでるようになりました。
ジャンボフレームをONにしてもRAND4K Q32T16のWriteは変わらずSSDキャッシュの恩恵を受けているようです。

エクスプローラー経由での大きなファイルのコピー処理でもしっかりと速度がでています。

PCからTS-673へコピー

TS-673からPCへコピー

QNAP TS-673に10Gのネットワークカードを追加

QNAP TS-673の互換性一覧ページでネットワークカードの互換性を調べたところ、Synology DS1618+で使用しているMellanox ConnectX®-3 Pro(MCX312B-XCCT)も使用可能でした。
但し、QNAP TS-673のPCIeスロットのブラケットはフルハイトなので、ロープロファイルのブラケットからの交換が必要でした。

取り付けもカバーを外すだけではなく、電源まで外さないと取り付けられないという設計の悪さ。
まあ何度も付け外しするものでもないので、面倒なのは最初だけではありますが、もう少し何とかならなかったのかとは思いました。
※分解などが記載されているマニュアルは以下のURLでダウンロード可能です。
TS-x73 ユーザー ガイド

QNAP TS-673のメモリ交換

QNAP TS-673を購入する時にメモリの規格などを事前に調査しました。
QNAPのページには以下のように書かれていました。
システムメモリ 4 GB SO-DIMM DDR4(2 x 2 GB)
最大メモリ 64 GB(4 x 16 GB)

そしてTS-673が採用しているSoCは
AMD RシリーズRX-421NDクアッドコア2.1 GHzプロセッサー(ターボコア3.4 GHz)

AMDのサイトでAMD Rシリーズを見てみると以下のように書かれています。
AMD’s first embedded processor with dual-channel 64-bit DDR4 or DDR3 with Error-Correction Code (ECC), with speeds up to DDR4-2400 and DDR3-2133, and support for 1.2V DDR4 and 1.5V/1.35V DDR3

SoCとしてはECCメモリをサポートしていると。
QNAPの製品でECCメモリをサポートしているのは、基本的に高価なモデルしかありませんが、ミドルレンジの製品で動くとなるとECCメモリ信者には朗報です。
(SynologyはAtomなどのミドルレンジモデルでも結構対応してたりします)

ただ正直なところ、この情報だけでECCメモリを買う勇気などなく、普通ならNon-ECCのメモリを買うところですが
Synology DS1618+のメモリを32Gに増設に書いているように、既にDDR4-2400のECCメモリを所持しているわけです。

ということで、購入せずともただで試せますので、実際にTS-673でECCメモリが動くのかを試してみました。
※分解などが記載されているマニュアルは以下のURLでダウンロード可能です。
TS-x73 ユーザー ガイド

標準で搭載されているメモリを取り外して

ECCメモリへ載せ替えるだけです。
簡単です、5分で終わります。

果たして起動するのか…

普通に起動しました!

リソースモニターでも32GのECCメモリを認識しています。

SSHでログインして「dmidecode」コマンドを使用してメモリ情報を見てみます。

[~] # dmidecode --type memory
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0 present.

Handle 0x0051, DMI type 16, 23 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: Multi-bit ECC
        Maximum Capacity: 32 GB
        Error Information Handle: Not Provided
        Number Of Devices: 4

Handle 0x0053, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: No Module Installed
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: CHANNEL A
        Type: DDR4
        Type Detail: None
        Speed: Unknown
        Manufacturer: A1_Manufacturer0
        Serial Number: A1_SerialNum0
        Asset Tag: A1_AssetTagNum0
        Part Number: A1_PartNum0
        Rank: Unknown
        Configured Clock Speed: Unknown
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: Unknown

Handle 0x0054, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 16384 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: CHANNEL A
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Transcend
        Serial Number: 00000001
        Asset Tag: A1_AssetTagNum1
        Part Number: TS2GSH72V4B
        Rank: 2
        Configured Clock Speed: 1866 MT/s
        Minimum Voltage: 1.25 V
        Maximum Voltage: 1.35 V
        Configured Voltage: 1.35 V

Handle 0x0055, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: No Module Installed
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: CHANNEL B
        Type: DDR4
        Type Detail: None
        Speed: Unknown
        Manufacturer: A1_Manufacturer2
        Serial Number: A1_SerialNum2
        Asset Tag: A1_AssetTagNum2
        Part Number: A1_PartNum2
        Rank: Unknown
        Configured Clock Speed: Unknown
        Minimum Voltage: Unknown
        Maximum Voltage: Unknown
        Configured Voltage: Unknown

Handle 0x0056, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 16384 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: CHANNEL B
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Transcend
        Serial Number: 00000100
        Asset Tag: A1_AssetTagNum3
        Part Number: TS2GSH72V4B
        Rank: 2
        Configured Clock Speed: 1866 MT/s
        Minimum Voltage: 1.5 V
        Maximum Voltage: 1.5 V
        Configured Voltage: 1.5 V

Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC

ハード情報的にはMulti-bit ECCをサポートしていると。

Total Width: 72 bits
Data Width: 64 bits
Size: 16384 MB

そしてECCの誤検知用メモリ分もしっかりと認識しているようです。
実際にエラーチェックが行われているかまでは確認できませんが、SoCのサポートやこれらの情報からECCメモリとして使えている可能性が非常に高いと思われます。

2020/05/03 追記
SAMSUNG B-dieのECCメモリを更に32G(16Gx2)入手したので、合計でECCメモリ64Gに増設してみました。

システム上で64G全て認識しています。

「dmidecode」コマンドでのメモリ情報も問題なくECCメモリとして認識しているようです。

[~] # dmidecode --type memory
# dmidecode 3.1
Getting SMBIOS data from sysfs.
SMBIOS 3.0 present.

Handle 0x0051, DMI type 16, 23 bytes
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: Multi-bit ECC
        Maximum Capacity: 64 GB
        Error Information Handle: Not Provided
        Number Of Devices: 4

Handle 0x0053, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 16384 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: CHANNEL A
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Transcend
        Serial Number: 00000001
        Asset Tag: A1_AssetTagNum0
        Part Number: TS2GSH72V4B
        Rank: 2
        Configured Clock Speed: 1866 MT/s
        Minimum Voltage: 1.5 V
        Maximum Voltage: 1.5 V
        Configured Voltage: 1.5 V

Handle 0x0054, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 16384 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: CHANNEL A
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Samsung
        Serial Number: 2ED60400
        Asset Tag: A1_AssetTagNum1
        Part Number: M474A2K43BB1-CRC
        Rank: 2
        Configured Clock Speed: 1866 MT/s
        Minimum Voltage: 1.5 V
        Maximum Voltage: 1.5 V
        Configured Voltage: 1.5 V

Handle 0x0055, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 16384 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 0
        Bank Locator: CHANNEL B
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Transcend
        Serial Number: 00000100
        Asset Tag: A1_AssetTagNum2
        Part Number: TS2GSH72V4B
        Rank: 2
        Configured Clock Speed: 1866 MT/s
        Minimum Voltage: 1.5 V
        Maximum Voltage: 1.5 V
        Configured Voltage: 1.5 V

Handle 0x0056, DMI type 17, 40 bytes
Memory Device
        Array Handle: 0x0051
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 16384 MB
        Form Factor: SODIMM
        Set: None
        Locator: DIMM 1
        Bank Locator: CHANNEL B
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Samsung
        Serial Number: 00D60400
        Asset Tag: A1_AssetTagNum3
        Part Number: M474A2K43BB1-CRC
        Rank: 2
        Configured Clock Speed: 1866 MT/s
        Minimum Voltage: 1.5 V
        Maximum Voltage: 1.5 V
        Configured Voltage: 1.5 V

QNAP TS-673を購入

自宅のNASはSynologyのDS1618+を使用していましたが、QNAPの方がハード的に攻めている感じもあり、同じ6bayのモデル+ミドルレンジのQNAP製品に買い替えることにしました。
買い替えにあたっての一番大きな理由は、10GbE環境でSSDキャッシュを使用したかったからです。
Synologyからも間もなく10GbEとNVMeSSDが同時に使えるコンボカードが発売予定ですが、まあQNAP製品も使って見たかったので、いい機会と思い買い替えることに。

QNAP(キューナップ) TS-673

QNAP TS-673はPCIe Gen 3 x4のスロットを2つ装備しています。
Synology DS1618+はPCIe Gen 3 x8を1スロットです。
使用可能な帯域的には同じなのですが、1スロットでは物理的に1枚しかカードがさせないので…