「NAS」カテゴリーアーカイブ

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 NASとLinux(Debian Buster)を1台のUPSに連動させる

基本的な内容はSynologyのNASと変わりません。
今回は相違点のみ書きますので、詳しくは以前のSynologyの記事を参考にしてください。

Synology NASとLinux(Debian Buster)を1台のUPSに連動させる その1
Synology NASとLinux(Debian Buster)を1台のUPSに連動させる その2

QNAP TS-673に繋いだUPS情報のネットワーク共有設定をします。

IPアドレスには連動させたいPCのIPを指定して、TS-673にUPS情報を取得しにくるのを許可します。

TS-673のupsmon.confは以下の場所にありました。
/etc/default_config/ups/upsmon.conf

upsmon.confの中身を覗くと
MONITOR qnapups@localhost 1 admin 123456 masterという記述がありました。

ユーザー名:admin
パスワード:123456
で接続すればOKです。

ちなみに@前の文字もupsではなくqnapupsになっているので、NASのIPを192.168.1.100と仮定すると、Debian側の/etc/nut/upsmon.confの接続部分の記述は以下のように書く必要があります。

MONITOR qnapups@192.168.1.100 1 admin 123456 slave

これで無事にQNAPのNASともUPS情報のネットワーク連携ができました。

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枚しかカードがさせないので…

Synology DS1618+のメモリを32Gに増設

Synology DS1618+が標準で搭載しているメモリは4Gです。
4Gでも普通に動きはしますが、スロット空きが1つあるのでSynology純正の4Gメモリを増設して8Gで運用していました。

NASの場合通常は8Gも積んでいれば特殊なことをしない限り十分なメモリ量と言われています。
が、実は最近のNASのメモリはそう単純でもなく、積めば積むほどキャッシュとして利用してくれたりします。

私はDS1618+の拡張カードに10ギガビットのネットワークカードを選択したので、NVMeのSSDをキャッシュとして利用することができません。
(2020年に10ギガネットワーク+NVMe SSDx2の拡張カードが出るらしいですが、2019年現在はまだありません)
そこで少しでもキャッシュを利用できるようにメモリを最大の32Gまで増設することにしました。
メモリスロットは2つしかありませんので、既存の4Gx2メモリと16Gx2メモリを交換する形となります。

今回選択したのはSynology純正のメモリではなくTranscend TS2GSH72V4Bというメモリです。
※純正以外のメモリを使用した場合のメーカー補償はありませんのでご注意ください。
DDR4-2400 ECC SO-DIMM 16GBを2枚搭載することで32Gとなります。

ECCメモリが何なのか?必要なのか?については以下のサイトが参考になるかと思います。
個人的には普通にPCを使っている分には必要ないと思います。
ECC 対応メモリは必要なのか?

Transcend TS2GSH72V4B

なぜこのメモリを選択したかというと、そもそもSynology純正のD4ECSO-2400-16Gという16GのメモリがDDR4-2400 ECC SO-DIMMのため選択肢がそれほど多くなく、その中から安めのものというと数種類しかありません。
更にメモリの基板を見比べたところ、純正の基板とチップやパターンの配置がOEMでは?と思えるほど同じに見えたのがTranscend TS2GSH72V4Bでした。

下の画像はSynology純正D4ECSO-2400-16G

下の画像はTranscend TS2GSH72V4B

チップやパターンの配置など基板のシルク印刷以外は同じに見えます。
ただよく見るとチップは同じSAMSUNG製ですが、型番がSynology純正がK4A8G085WB-BCRCでTrancend製がK4A8G085WC-BCTDでした。
SAMSUNGのデータシートを見ると
K4A8G085WB-BCRCB-die 8Gb 2400Mbps 1.2V
K4A8G085WC-BCTDC-die 8Gb 2666Mbps 1.2V
となっており、周波数とダイの違い(B-die/C-die)がありました。
(当然ながらロットによっても変わると思いますので、たまたま私が購入したロットがそうだった可能性もあります)

まあ今時のメモリは相性問題も殆ど出なくなりましたので、そこまで神経質にならなくてもいいのですが、仮に動かなかった時に普通のノートPCなどでは未対応のECCメモリは売りにくいだろうなと…
ちなみにCFDのメモリはCFDの互換テストでDS1618+が互換性ありになっていましたので、問題なく動きそうだったのですが品切れでした。

メモリの交換は非常に簡単で、DS1618+を裏返すとネジが2本あるので外すだけです。
純正と入れ替えてネジを元に戻せば終了。

起動時のメモリチェックに時間が掛かるようになったのか、起動が若干遅くなった気がします。
(NASなので再起動の機会も殆どなく、正確に測ったわけではないので気のせいかもしれませんが…)

交換後にガジェットのリソースモニターを見てみると…

使用中のメモリはたったの2%です。
これだけ見ていると必要以上のメモリを追加してしまったように見えます。
(ECC対応メモリになったので、例え使い切れなくても全くの無駄ではないですが)

更に詳しくメモリの使用状況を見るためにアプリの方のリソースモニターを開いてみます。

メモリの項目が一気に増えます。
ここで気になるのがキャッシュ済みとフリーの項目です。
再起動直後はキャッシュ済みは殆どなく、フリー領域が殆どとなります。
ここまで見ても32Gのメモリが必要か?と疑いたくなる状況です。

下の画像は1日NASを使用した後のメモリ状況です。

キャッシュ済みが殆どを占めているのが確認できます。
もちろんアプリを起動したりしてメモリが必要な状況が発生すると、キャッシュ済み領域が解放されてアプリなどに割り当てられます。
この様に一見必要以上と思わるようなメモリを積んだ状況でも、余ったメモリ領域が無駄に遊ばされることなく、キャッシュ領域として使用されていることが分かって頂けるかと思います。

現在のNASは賢く、メモリは積めるだけ積んだ方が性能に寄与するということになります。
但し、それだけメモリにお金は掛かりますし、若干ですが消費電力も増えますので、その辺りとのトレードオフとなります。

尚、SSDをキャッシュとして利用する場合は、単にアクセス速度に寄与するだけでなく、SSDのキャッシュにヒットした場合はHDDにアクセスしないため、HDDをハイバネートで停止する運用をしていた場合にHDDがスピンアップしません。
SSDキャッシュにはSSDキャッシュの利点がアクセス速度とは別にありますので、早くネットワークとNVMe SSDのコンボカードが出ることに期待しています。

現在のSynologyの一般価格帯ラインナップには、10GネットワークとNVMe SSDを両立できる機種がありません。
(拡張カードを利用してもです)
QNAP製品には既に存在していますので、SynologyはQNAPに比べるとハード面では周回遅れ感があります。
OSやアプリなどの完成度は高いと思いますので、ハード面でも頑張って欲しいと思います。