「QNAP」タグアーカイブ

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でQtier(自動階層化)を有効にする

QNAPのNASを更に高速化すべく、とうとうQtier(自動階層化)に手を出すことにしました。

そもそもQtier(自動階層化)とは?という疑問は、公式サイトの説明が詳しいので省略します。
Qtier™ドライブ自動階層化

TS-673はSATAのSSDを2つ搭載可能なので、それでQtierを構成することも可能なのですが、折角高速なQtierを構築するのですから、NVMeのSSDを使用することにしました。
(SATAのSSDはQNAP TS-673にSSDキャッシュを追加の記事に書いた通りHDDのキャッシュとして使用します)

私が使用しているTS-673は既にSFP+のネットワークカードとトランスコード用のGPUが刺さっているので、PCIeの空きスロットが既にありませんでした。
が、TV録画サーバーをラズベリーパイ4からインテルCPUのNUCに変更したことで、CPUに搭載されているハードウェアエンコードの機能が使えるようになり、GPUを取り外すことができました。
(GTX 1650を使用したQNAPのGPUエンコードとほぼ同じ速度でエンコードが可能でした)

これでPCIeスロットが1つ空いたので、NVMe SSDを増設するための拡張カードを刺すことができます。

QNAPには色々な種類の拡張カードがありますが、今回はTS-673に合ったカードを選択しました。
TS-673はPCIeスロットの仕様がGen 3 x4の2スロットなので、Gen 3 x8の拡張カードを購入しても性能を活かしきれません。
もちろん下位互換があるため動きますので、将来を見据えてより上位機種で使う可能性があるのであれば、Gen 3 x8の拡張カードを購入してもいいでしょう。
(6千円くらい高くなります)

QNAPの拡張カードを取り扱っているお店は少なく、日本のAmazonにもなかったので、オリオスペックさんから通販で取り寄せました。

QNAP QM2-4P-342 クアッド M.2 22110/2280 PCIe NVMe SSD拡張カード

この拡張カードはNVMe SSDを4枚搭載することが可能です!
但し、先に書いた通りTS-673とはGen 3 x4での接続になりますし、拡張カードとSSDの接続はGen 3 x2での接続になります。
(現在一般的なNVMe SSDの性能をフルでは活かしきれませんが、速度が落ちることで熱的には有利になります)

箱の中身はカードとネジ類、熱伝導シート、マニュアルです。

今回使用するSSDは以前デスクトップの倉庫用に購入したトランセンド(Transcend)のTS1TMTE220Sです。
但し、型番は同じでも以前購入した時と仕様が変わってました。
シーケンシャルリード/ライト:3,400/1,900 MB/s
TBW [総書込み容量] :2,200 TBW

今回はNVMe SSDを4枚も用意しなければならないので結構な出費が…

拡張カードにSSDを組み込んでいきます。
まずは拡張カードの4か所のネジを緩めます。
(ネジは完全には取れない仕様です)

ヒートシンクを外すと、SSDを取り付ける部分にラバーのスペーサーがありますので取り外します。
結構のりが残ったり、ラバーが千切れたりしました…

ラバー製のスペーサーを取り外したらSSDを取り付けて付属のネジで止めます。
(ヒートシンクのファンのコネクタを外しておいた方が作業が楽です)

SSDを取り付けたら付属の熱伝導シートを貼りつけます。
結構やわかったので、台紙から剥がす時に千切れたりしないように注意が必要です。

熱伝導シートを貼ったらヒートシンクを戻し、ネジで止めれば拡張カードの方は準備完了です。

ヒートシンクから熱伝導シートがはみだしますが、気にしません!

TS-673に拡張カードを取り付けるわけですが、今回もネットワークカードとSSD拡張カードのどちらを上にするか少し悩みました。

NVMeのSSDを4枚も刺していると熱を持ちそうなので、ネットワークカードでヒートシンクの大半が隠れてしまうのはどうかと思いましたので、今回はSSD拡張カードを下に、ネットワークカードを上にすることにしました。
(SSD拡張カードにはファンがあるので、やっぱり逆か?とか悩みました(笑))

カード同士の隙間は下の写真くらいは空いているので、まあ大丈夫でしょう。

PCIeスロットへのアクセスには電源のネジまで外す必要があるのが面倒です。

ハードウェアの方はこれで終了なので、ここからはQNAPのOSであるQTSでQtierの設定を行います。
Qtierの設定に関しては、以下のサイトに詳しく書かれていましたので参考にさせて頂きました。
Qtierの自動階層化機能のセットアップ手順

オーバープロビジョンのテストは非常に長いです。
今回はSSD4枚でRAID5の構成にしましたでの、テストに半日以上掛かりました…

結果、オーバープロビジョンは必要なしとの判定でした。
Qtierの構築にも数時間掛かります。

Qtierを有効にする前と有効にした後の速度の計測結果です。

Qtierなし(HDD用のSSDキャッシュあり)

NVMe SSDx4 RAID5 Qtier(HDD用のSSDキャッシュあり)

Qtierなしの時よりもシーケンスの速度が落ちてます…
ベンチ対象の共有フォルダに大量データの書き込みやベンチマークを複数回走らせてから、自動階層化の処理を手動で数回実行しても結果は変わりませんでした。
SATA SSDのキャッシュで頭打ちしているような速度なので、SSDキャッシュを無効にして計測しても変わらず。
(SSDキャッシュを無効にしてもランダムが下がらなかったので、Qtier自体は動いていると思われる)

リソースモニタでRAIDへの読み書き状況を見てみると、今回追加したNVMe SSDのRAIDグループ3がフルで使われているわけではないようです。

グループ1:(RAID6) HDDx6
グループ2:(RAID1) SATA SSDx2のキャッシュ
グループ3:(RAID5) NVMe SSDx4のQtier用

グループ3への書き込みは結構速度が出ているようですが、読み込みでは使用されていません…
どういう条件でどう使われるのかがよく分からないので、暫く様子を見てみることにします。

2020/07/22 追記
ベンチ時にCPU使用率を見ていたら、書き込み時にCPU使用率が90%近くまで行ってるのを確認しました。
NVMeでのRAID5はCPU負担が大きいのか、RAID5からRAID10に変更したところ書き込みは速くなりました。

読み込みはCPU使用率が高くないにも関わらず、速くならないままなので、更に様子を見ようと思います。

2020/07/24 追記
NASを再起動したところ、1つのSSDが異常を出してRAIDから外れました。
SSDをPCに付けてみると普通に認識したので、一応初期化してNASに取り付けるもやはりエラーが出る…
一旦RAID10を解除して再度組んでみたところ普通に動いているように見えるも、再起動するとやはりRAIDから外されました。
SSDがおかしいのかM2拡張カードがおかしいのかを切り分けるため、SSDの場所を入れ替えて同じことを繰り返してみました。
再起動する度に同じSSDが異常を起こしているのを確認したのでSSDの初期不良だと判明。

取りあえずNVMe SSDの使用をやめてQtierを解除して前の状態に戻しました。

で、速度を計るもやはり読み込みが遅い…
なぜなのかと悩むこと1時間。
そういえばINTELの10G NICのLAG(リンクアグリゲーション)を組みなおしていたのを思い出しINTELのツールからLAGを無効にすると速度が戻りました。

NAS側もDynamic LAGを組んでいるのですが、こちらは全く問題なし。
ハブもNETGEARのフルマネージスイッチなので細かく設定ができますが、設定を変えてもINTELのLAGが遅いのは解決しませんでした。
結果、INTELのLAGがダメだったということで、LAGを解除してこの問題は解決しました。

Qtierを組んでないのに読み取りが速いのは、メモリを64G積んでいるのでキャッシュが効いているからだと思います。
ランダムライトの4Kが速いのは、メモリとSATAのSSDキャッシュの効果だと思います。
下の写真のように書き込みのヒット率が上がっているので、SSDがデータを受け取っているのだと思います。

初期不良のNVMe SSDが交換されて揃ったら、再度Qtierを組みなおそうと思います。

ちなみに今回使用したTS1TMTE220Sはアマゾンに在庫がなかったのでイートレンドで購入しましたが、イートレンドは初期不良の対応があまりよくないので個人的にはお勧めしません。
お客がメーカーと直接やり取りをし、メーカーが初期不良と認めたら、イートレンドとしてはそこで初めて初期不良として対応するそうです。
自社で初期不良の判断ができないからだそうですが、ちゃんとしたお店なら自社でちゃんんと判断して交換してくれます。
それが初期不良対応というものではないでしょうか。
でなければメーカーの修理・交換と大差ない気がします。
メーカとのやり取りに時間が掛かり、とても初期不良交換とは言い難い時間が掛かります。
(時間が掛かるとその間止まってしまいますし、どうせRAID破損時の予備が必要なので、もう1本SSDを購入しようかと思ってます)

その点、アマゾンは初期不良はほぼ無条件で返品、または交換をしてくれるので安心ですね。

2020/08/02追記
NVMe SSDを追加購入しSSDをRAID10にしてQtierを再構築しました。
Qtierでの計測結果はQNAP TS-673でSMB MultiChannel(マルチチャンネル)を有効にするにて。

※QtierはSSDをキャッシュとして使うわけではなく、直接データをSSDに記録することになります。
しかもOSが自動でSSDとHDDのデータを入れ替えたりします。
SSDが壊れてデータを失えば、全体としてデータを失う可能性がありますので、必ず定期的にバックアップを取るようにしてください。

QNAP TS-673でTS(MPEG2)ファイルをMP4(H.264)に変換する

地デジやBS・CSをRaspberry Pi 4で録画し、TSファイルからH.264に変換するところまでやっていましたが、変換に録画時間と同じくらいの時間が掛かります。
Raspberry Pi 4もハードウェアトランスコードには対応しているようですが、どっちにしても同じくらい遅いのに変わりはありません。

QNAP TS-673にはトランスコードの機能がありますし、GPUも追加しているので変換はTS-673に任せることにしました。
Raspberry Pi 4はTSファイルでの録画までとなりCPUを殆ど使わなくなるため、使い方的にはちょっともったいない気もしますが…

TSファイルの保存先をTS-673のNFSにしているので、あとはTS-673側でトランスコードの設定をするだけです。
マルチメディアコンソールのトランスコードの設定で、リアルタイムスキャンを選んでTSファイルの保存先を指定するだけです。
フォルダの指定時に480Pやオリジナルなど欲しい解像度を選択すれば、その解像度のファイルが生成されます。

設定はたったこれだけです。
GPUを積んでいればGPUを使用したハードウェアトランスコードが行われます。
GTX 1650使用(GPU使用率20%前後)で2時間のFullHDの動画を、オリジナル解像度のままで約10分程度でH.264のMP4に変換してくれます。

変換したMP4ファイルは、指定したフォルダの下の@Transcodeフォルダ内に選択した解像度の分だけ生成されます。
変換元のTSファイルを自動削除したり、変換後のファイルを特定のフォルダに移動したりはできないので、そこは手動で行う必要があります。
これらの処理はRaspberry Pi 4で動かしているアプリだとできるので、TS-673でトランスコードする場合は少し勝手が悪くなってしまいます。
TS-673でのトランスコード後の処理をどこかに記述できればいいのですが、ざっと見た感じでは発見できませんでした。

QNAP TS-673にGPGPUを追加 その2

QNAP TS-673にGPGPUを追加の続きとなります。

一旦はQNAP TS-673にQNAPドライバのサポート対象であるGTX 1050 Tiを挿して使用していましたが、GTX 1650でも動作するのか試したく購入しました。

ELSA GeForce GTX 1650 SP(GD1650-4GERSP)

下の写真は全て上がGTX 1650で下がGTX 1050 Tiとなります。

サイズは全く同じです。
基盤のパターンなどは違いますが、よく見ないとどちらがどちらか分からないほどです。
唯一見た目で違うのは、ブラケットにある端子の種類くらいです。

箱は同じELSAのGTX 1050 Tiよりも一回り大きいです。
基盤のサイズは同じなので、無駄に箱を大きくする必要があったのか…

とまあ、外見上の違いはここまでとして、実際にQNAP TS-673上でトランスコードができるのかです。
現時点で使用可能なQNAPのNVIDIA GPU Driver 3.0.5(NVIDIA driver version 418.56)ではGTX 1650を正式サポートしていません。
(GTX 1650をサポートしているのはNVIDIA driver versionは418.74以降となります)

ダメもとでQNAP TS-673に挿してみたところ、認識自体は問題なくしており、起動時の画面もHDMI経由で表示されました。
OS起動後もハードウェアとして認識されており、トランスコードも可能と表示されました。

実際にQNAPのアプリでオンザフライのトランスコードを試してみたところ、これも問題なく動きました。

ということで、現在の最新バージョンであるQNAPのNVIDIA GPU Driver 3.0.5でも問題なくELSA GeForce GTX 1650 SPにてハードウェアトランスコーディングが可能でした。

QNAP TS-228AにWD Elements Desktop 外付けハードディスクの中身を入れる

NASのバックアップ用に使用するために購入したQNAP TS-228Aですが、バックアップのためにはそれなりの容量のHDDが必要になります。
8TBや10TBのHDDは最安のものでも結構します。
今回はバックアップ用なので、信頼性と価格・容量のバランスが出来るだけいいものを選びたい。
そういうタイミングの時にNAS用のヘリウム入り高級HDDが入っていると噂のWD デスクトップHDD 8TB USB3.0 WD Elements Desktop 外付けハードディスク / WDBBKG0080HBK-JESNがAmazonでタイムセールに!

ポチっとしたわけですが、ここにも書かれている通り3.3V問題が発生した場合、変換ケーブルが使えないNASでは使用ができないわけです。
まあその時はその時と考えて取りあえず購入。

届いたら早速外付けHDDのガワを取り外し

中を見たら当たりのヘリウム版WD80EMAZ-00WJTA0が入っておりました。
(CrystalDiskInfoで00WJTA0なのも確認済み)
厳密には元になっているHDD Ultrastar DC HC510と回転数も違いますし、全く同一のものではありません。
それでもその辺の安物のHDDよりは明らかに品質高いと思われます。
(あくまでも個人的感想です)

あとは取り出したHDDをTS-228Aに入れて起動して…

問題なく認識して動きました!

ということで、TS-228Aは3.3V問題は発生しないようです。

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機のようにコンソールにログインして使用することも可能です。