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にてハードウェアトランスコーディングが可能でした。

Raspberry Pi 4をICE Towerでファンレス運用

TV放送の録画機としてラズベリーパイ4(Raspberry Pi 4B 4GB)を使用しています。
ラズベリーパイのLinux上でPLEXのチューナーとUSB接続し、NASの共有しているフォルダに録画ファイルを保存します。
単純にTSファイルの保存までであればCPUの負荷は殆ど掛かりませんが、TSファイルの保存後にMP4にエンコードする際、4コア全体として見ると50%前後のCPUを使用します。
今までのラズベリーパイ3Bであれば、ヒートシンクを付けるだけで熱問題はクリアできていたのですが、ラズベリーパイ4になってからはCPUの性能アップに伴い発熱もヒートシンクのみでは厳しい状況となっています。

最初は普通のファン付きケースを購入したのですが、ファンは故障が割と発生するのと音の発生源にもなるので、ファンレスの運用ができないものかと検討してみました。
24時間運用の方は、ファンの音が気になる方も多いのではないでしょうか。

52Piというところが出している圧倒的に冷えるICE Towerという製品があるのですが、ヒートパイプ付きの大型ヒートシンクが付いており、ファン停止でも運用が可能なのでは?と思い、実際に可能か購入して試してみました。

ICE Tower

ICE TOWERのケース付属の黒モデルが売ってたので、黒モデルを買ってみました。
ICE Towerとケースで1つの製品としてパッケージされているわけではなく、ICE Tower本体とケースは別々の製品で一緒に同梱されているだけでした。

ケースとその付属品

ICE Towerとその付属品

それぞれにファンが付属するので、結果的にファンが2つ付いてくることになるのですが、ICE Tower付属のファンはブラックモデルでもLEDが光って24時間運用にはうざいので、ケースに付属の光らないファンと交換できるのはうれしい人もいると思います。
(今回はファンレスでの運用を計画していますが、真夏などは一時的にファンを使うという運用もありかと思います)

ヒートシンクのフィンに折れなどもなく、奇麗に仕上げられています。
CPUとの接合部分も黒で塗られてますので、気になる人は接合部分だけ紙やすりなどで磨けばいいかと思いますが、今回のテストでは磨かずにそのまま使用しました。

説明書はケース用、ICE Tower用がそれぞれに入っていますが、ケースとICE Towerを一緒に組み込むための説明書は入っていません。

説明書通りにICE Towerの金具を取り付けると、ケースの一番上の板がケースに取り付けられなくなるので、予めICE Towerの金具を板に通してからネジ止めしておきます。

ケースを通常通り組み立てて行き、最後の板の前にICE Towerを組み込もうとすると、CPUとICE Towerの接合部分に大きな隙間が空いてしまいます。
その隙間は熱伝導シートで埋めることができないほどです。
セットで売っているのですから、そのままポン付けできると思っていましたが、その考えは甘かったようです。
熱伝導シートを2~3枚重ねれば隙間を埋めることは可能だと思いますが、流石に熱伝導シートの重ね貼りは抵抗があるのでやりませんでした。

この隙間は、下の画像に写っている上から2番目の板の厚みが厚すぎることで起こります。

この板を削って厚みを減らすのは面倒そうなので、この板は使わずにワッシャーなどを使って調整することにしました。

私の環境では厚めのワッシャー1枚とICE Towerに付属のナットを1つ入れることで、ICE TowerとCPUの隙間が丁度いい感じになりました。
隙間の状態を確認したらCPUグリスを塗って、実際にICE Towerを組み込みます。
(今回は熱伝導シートは利用せずに手持ちのCPUグリスを使用しています)

ワッシャーがGPIOの端子に接触しないように、先に端子にテープを貼って、隙間を確保してからネジを締めていきました。
(最後にワッシャーがGPIO端子に干渉していないのを確認してからテープを除去しました)

ちなみにケースに付属してくるヒートシンクは、ICE Towerの金具と干渉するので、1箇所を除き使用することはできませんでした。
これはケースに組み込まずにICE Tower単体で使用しても同じように干渉しますので、ICE Towerを使用する場合は、基本的にCPU以外のチップの冷却はできないと考えてください。

CPUとICE Towerの隙間もバッチリです。

光るファンは要らないので、ケースに付属の光らないファンと交換。

これでケース付きのICE Towerの組み込み完了!

組み込みが完了したので、実際に4コアに負荷を掛けて温度がどう推移していくのかを見てみました。
負荷と温度計測は、以下のサイトのスクリプトを利用させて頂きました。
pi 4 負荷テストとCPU温度
※リンク先の応答がないため削除されている可能性があります。

全て室温25℃で約10分の計測となります。
(約1分おきにCPU温度が出力されるスクリプトです)
各テストの間隔は一定時間を置いて、CPUを十分に冷却してから開始しています。
またTOPコマンドで確認したところ、4コア全てがほぼ100%のCPU使用率になっていることを確認しました。
(sysbenchにて4スレッドのベンチマークが走るスクリプトになっています)

ICE Towerファン停止
temp=42.0’C
temp=47.0’C
temp=48.0’C
temp=49.0’C
temp=51.0’C
temp=51.0’C
temp=51.0’C
temp=52.0’C

ICE Towerファン3.3V駆動
temp=36.0’C
temp=38.0’C
temp=39.0’C
temp=38.0’C
temp=39.0’C
temp=38.0’C
temp=37.0’C
temp=38.0’C

ICE Towerファン5V駆動
temp=33.0’C
temp=36.0’C
temp=37.0’C
temp=35.0’C
temp=35.0’C
temp=35.0’C
temp=35.0’C
temp=35.0’C

5Vでファンを動かすと、温度は殆ど上がりません。
ICE Tower 流石の性能です。
3.3Vでも殆ど温度は上がらないので、ファン運用する方は3.3Vで十分だと思います。
ファンレスでも52℃までしか上がっておらず、恐らく室温が35℃になるような夏でも問題なくファンレス運用が可能そうです。

私の使い方である、TV録画+MP4エンコードならCPU使用率は50%前後の推移なので、このベンチ結果であれば年中ファンレスでも余裕だと思います。

ラズベリーパイ4でファンレス運用を考えている方は、ICE Towerを試してみてはいかがでしょうか。

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問題は発生しないようです。

Western Digital
¥27,747 (2024/01/29 16:50時点 | Yahooショッピング調べ)

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 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情報のネットワーク連携ができました。

主にPC、車・バイク、トイガンなどについて書いてます