「QNAP」タグアーカイブ

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

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