読者です 読者をやめる 読者になる 読者になる

NASをQNAPのTS-451に買い換えた

きっかけ

自宅用のNASとして7年ほど使ってきたNETGEARのReadyNAS NV+がさすがに古くなってきたので買い換えることにした。過去、NASを使うのを止めてクラウドへの移行を試みた時期もあったものの、写真や動画といった大容量のファイルの扱いが不便で結局NASを捨てにるに至っていない。

[QNAP]Turbo NAS TS-451

[QNAP]Turbo NAS TS-451

機種選び

今、ホーム向けのミドルクラスNASを買うとすると、QNAP、Synology、ASUSTORあたりが候補になるかな。7年前はNETGEARとQNAPで随分迷ったんだけど、QNAPはまだ実績も少なくサポート体制も貧弱だったので止めたんだった。今だとASUSTORがそのポジションだろうか。もっとも、今やこのクラスのNASもすっかり身近になって、代理店の体制も整っているので、昔のように懸念もないだろうけど。

パフォーマンスやソフトウェア面の拡張性を考慮してx86系(今やx86搭載機でもだいぶ安い)の4ベイモデルで絞り込むと、QNAPのTS-451とSynologyのDS415+が候補になった。SynologyのDS415playも検討したものの、こちらはボリュームの上限サイズが16TBで少々心許ない。ASUSTORはスペックの割に値段は安いが、まだ歴史が浅く、使い勝手や作り込みが未知数だったのでパス。NETGEARは圧倒的な信用と長期間の保障があるものの、商品力がイマイチで個人がオモチャとして遊ぶには面白みに欠ける。嫌いではないのだけど。

結局、ファンのサイズだとかHDMI端子の有無でTS-451を選ぶことにした。主にハード的な理由。蛇足ながら、個人的な印象としてはハードはQNAP、ソフトウェアはSynologyに長があるように思える。SynologyはCloud連携でOneDriveが、VPNサーバでIPSecを選べるのにQNAPではどちらも使うことができない。管理画面もSynologyの方がデザインも分類もきれいにまとまっている気がする。ついでにSynologyは最近リリースされたベータ版のファームウェアでDockerが使えるようになったらしい。Dockerは好きなのでちょっとうらやましい。

Synology DiskStation DS415+ クアッドコアCPU搭載4ベイNAS CS4960 DS415+

Synology DiskStation DS415+ クアッドコアCPU搭載4ベイNAS CS4960 DS415+

インプレッション

承知していたとはいえ、ガワ、そしてHDDトレイまでもプラスティックで非常に安っぽい。しかも、電源は巨大なACアダプタ。もっとも、このクラスだとSynologyも似たようなものなんだけど。メルコの安物ハブかよ。今まで使っていたReadyNASが電源内蔵のがっしりとした金属製だったので、質感の差はいかんともしがたい。特にHDDを4台搭載したときの重量感は段違い。実用上には支障がないとはいえ、HDDは発熱体だし金属製の方が精神衛生上よろしい。まあ、金属筐体がほしければエンタープライズラインを購入せよってことなんだろうけど。あと、重量が軽いのでHDDのシーク音が響きやすいというのはあるかもしれない。搭載したWDのRedラインが結構ゴリゴリいうタイプだからかもしれないが、そこそこ耳につく。

せっかくなのでメモリも増設した。規格はDDR3L-1600のSODIMM。手元にDDR3-1333しかなかったので、ツクモでCFDのD3N1600PS-L4Gを2枚購入。安メモリだけど動作には問題なかった。この手のアプライアンスの場合は、ベンダ指定品を購入する方がいいとは思うけど。メモリスロットにアクセスするには筐体からライザーカードまですべて分解しないといけないので、構築前に増設しておいた方がいい。

データマイグレーション

さて、古いNASから新しいNASにデータを移行させなければならない。今回は新しいNAS(TS-451)から古いNAS(ReadyNAS NV+)の共有フォルダをNFSでマウントしてrsyncでファイルをコピーすることにした。因みに、反対に移行元でNFSマウントとrsyncを実行した場合は、どうもCPUがボトルネックになっているようでスループットが4MB/s程度と振るわなかった。NFSを使わずrsyncのデーモン(rsync://)を指定した場合も同様。

  1. 移行元、移行先の双方でNFSサービスを有効にする。移行先でも有効にするのは、NFSでマウントするにはportmapが必要なため(NFSを有効にすれば必要なportmapも立ち上がってくる)。移行後にNFSを使う予定がないなら、作業完了後に改めて止めてしまってもかまわない。
  2. コピー時にパーミッション関係のエラーが発生しないように、移行元の共有フォルダ設定で移行先のNASIPアドレスにroot権限を付与する。(要はno_root_squashを指定する)
  3. 移行先で共有フォルダをマウントして、rsyncを実行する。最後にパーミッションを付け直してやる。

# mkdir /mnt/nfs_tmp
# mount -t nfs 10.0.0.100:/data /mnt/nfs_tmp
# rsync -rltDv /mnt/nfs_tmp/ /share/data 2>/share/homes/admin/data_err.txt
# chown -R user:everyone /share/data/

rsyncのオプションは-aでもいいんだけど、移行元と移行先のUIDが違ったりして面倒なので、ファイルオーナーやパーミッション関係のオプションを落としてコピーした。

Kodi(旧XBMC)のスキップ秒数を調整する

HDMIで映像を出力できるので、管理画面からHDステーション(HybridDesk Station)を有効にしてKodiを使ってみる。因みに、動画再生ソフトはHD Player(XMBC)とKodiの2つがインストールできる。XMBCは今はKodiと呼ばれているので、なぜ同じようなものが2つもあるのかはよくわからない。取りあえず、Kodiを使うことにした。
CPUに余裕があるだけあって、Raspberry Piと違い実用的に使える。MPEG-2 TSの再生なんかも問題なし。メモリを買うときにツクモで見かけた2000円弱の純正リモコンがあるとさらに便利。スマホのリモコンアプリでもいいし、MPC用のリモコンも使えるみたい。(Youtubeアプリを使うときはリモコンアプリじゃないと文字入力ができなくてつらい。)
ただ、リモコンのスキップボタンが前方後方とも30秒スキップでいささか使いづらい。Kodiの公式wikiを確認すると、設定ファイルでそれぞれスキップ時間を指定できるようなので、設定ファイルを編集した。

# vi /share/CACHEDEV1_DATA/.qpkg/KODI/root/.kodi/userdata/advancedsettings.xml

<advancedsettings>
<video>
<timeseekforward>30</timeseekforward>
<timeseekbackward>-10</timeseekbackward>
</video>
</advancedsettings>

取り合えず、使用しているテレビとあわせて30秒スキップ、10秒バックにした。因みに、ファイル状況を確認してみると、HDStationはディレクトリをchrootしているぽい。

注意点など

findコマンドはexecオプションが使えない

移行の際にWindowsのThumbs.dbやMacの.DS_Storeといったゴミファイルを削除しようと-execオプション付きでfindを実行しようとするも、失敗してしまう。どうもbusyboxを使っているらしく、execの実装がないみたい。フォーラムには、ipkg install findutilsでフル版のfind入れれば使えるよと書かれているけれど、アプライアンスのシステム周りをいじるのは後々のトラブルの原因になりそうで気が進まない。NFSマウントさせた*nixあたりで実行するのが手っ取り早いか。

不可視の.@__thumbフォルダが大量作成される

シェルから共有フォルダを見てみると、共有フォルダのあちらこちらに.@__thumbというフォルダが散見される。どうもメディアライブラリ機能がオンになっていると、スキャン対象となっているフォルダの各階層に.@__thumbというフォルダを作ってサムネイルを勝手に保存していくらしい。お節介がすぎる。取りあえず、メディアフォルダから通常使っているデータフォルダを除外した。

HDMI出力はHDMI-CECに対応していない

HDMI-CECってなんぞやというと、HDMIに制御信号を流すための規格。よくテレビメーカ各社が○○リンクと称して、周辺機器の電源投入や入力の自動切替機能などをうたっているアレ。これに対応していると、先ほど書いた機能の他にも、例えばテレビリモコンのコードをパススルーしてKodiの操作ができたりするのだけど(KodiにおけるCECの詳細はここ)、残念ながらQNAPのNASはCECに対応していない模様。残念。Raspberry Piでさえ対応しているんだからさー。因みに、Asustorは外部アダプターをつなげればCEC対応にできるみたい。 外部アダプターを購入しなければならないとはいえ、libCECを組み込めば良いだけだし、QNAPも対応して欲しい。