Synology ds918+ に 2.5Gbps / 5Gbps の USB LAN を接続する

なぜ2.5Gbps の NIC を増設するのか?

近年 10GbE の普及が進んでおり NAS 側が 10GbE に対応するケースが増えてきています。Synology にも対応したラインナップがあるのですが、残念ながら DS918+ には PCIe スロットが無く、10GbE に拡張する手段も用意されていません。

DS918+自体は 1GbE のポートを二つ持っているので、内部設定を無理やり変更して SMB Multichannel を有効化すれば擬似的に帯域を 2Gbps にすることは一応可能です。しかしながら SMB Multichannel はまだベータ扱いで oplock の処理が未実装です。そのため有効化するにはリスクがあります。

どうやって増設する?

QNAP や ASUSTOR であれば、PCIe スロットが無くても USB で 2.5GbE/5GbE を増設することが可能です。しかしながら、Synology は全てのラインナップにおいて USB LAN のドライバが削除されており、標準では USB 接続をサポートしていません。

そこで、2.5GbE のドライバを自身で追加することにしました。今回利用した製品は PLANNEX の USB-LAN2500Rです。

この製品は REALTEKの RTL8156 を搭載していますから、REALTEK のドライバを入れれば良いことになります。

5Gbpsは?

他にもQNAPから5Gbpsに対応したQNA-UC5G1Tも販売されています。

これを使えばさらなる性能向上が期待できるのですが、手元の構成ではストレージの方の性能があまり高くないことと、USB 3.2gen1(=USB 3.0) の 5Gbps(論理データ転送速度は 4Gbps)がボトルネックになって、 コストパフォーマンスもあまり良くなさそうだったので購入を見送りました。

追記QNA-UC5G1T のドライバも作成し、動作確認が取れました。https://github.com/bb-qq/aqc111/

ドライバのダウンロードとインストール

そうして出来たドライバはこちらです。他のアーキテクチャの製品やDSMバージョンについては公式のスクリプトを使ってビルドすれば作成できます。
https://github.com/bb-qq/r8152/releases

パッケージセンターからマニュアルインストールでspkファイルを指定することでインストールできます。インストールすると起動時にドライバが読み込まれるようになります。

DSM のカーネルバージョンが上がると読み込みがエラーになるかもしれませんが、バージョンチェックが働くので、ハングアップするようなことは無いはずです。

認識すると ifconfig -a の出力に eth2 が出現します。
# lsusb
|__usb1          1d6b:0002:0404 09  2.00  480MBit/s 0mA 1IF  (Linux 4.4.59+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__1-4         f400:f400:0100 00  2.00  480MBit/s 200mA 1IF  (Synology DiskStation XXXXXXXXXX)
|__usb2          1d6b:0003:0404 09  3.00 5000MBit/s 0mA 1IF  (Linux 4.4.59+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__2-1         0bda:8156:3000 00  3.20 5000MBit/s 512mA 1IF  (Planex USB 10/100/1G/2.5G LAN 000000001)

無事5Gbpsで認識できています。以前は再起動をまたぐと設定をやり直す必要がありましtが、今のバージョンでは設定が維持され組み込みの LAN ポートと同様に使えるようになりました。

実際のパフォーマンス

iperf3 をつかってパフォーマンスを計測しました。

環境

Aquantia製の AQC107 を搭載した AQN-107 と直結させて計測しています。
追記:Aquantiaは買収されてカード単体での流通がなくなりました、同じチップを搭載した同等品は以下になります。 AQN-107 はチップメーカ Aquantia 自身が販売するリファレンスカードです。ASUS 等から同じチップを搭載したカードが販売されています。
ASUSの方がややヒートシンクが大きめですが、AQN-107の方が安価になっていますので2.5/5Gbpsで使うのがメインならAQN-107で十分だと思います。

iperf のバイナリはこちらで配布されている物を利用しました。
http://www.jadahl.com/iperf-arp-scan/DSM_6.2/
spk ファイルですので、ドライバと同様にパッケージセンターからインストールできます。

Docker を使うとより手軽に iperf を利用できますが、NAT 処理が CPU を消費するため、正しく性能を計測することが出来ませんので注意して下さい。

結果

実際の結果はこうなりました。

Connecting to host 192.168.0.xxx, port 5201
[  4] local 192.168.0.xxx port 50366 connected to 192.168.0.xxx port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   266 MBytes  2.23 Gbits/sec
[  4]   1.00-2.00   sec   274 MBytes  2.30 Gbits/sec
[  4]   2.00-3.00   sec   278 MBytes  2.33 Gbits/sec
[  4]   3.00-4.00   sec   278 MBytes  2.33 Gbits/sec
[  4]   4.00-5.00   sec   278 MBytes  2.33 Gbits/sec
[  4]   5.00-6.00   sec   278 MBytes  2.34 Gbits/sec
[  4]   6.00-7.00   sec   274 MBytes  2.30 Gbits/sec
[  4]   7.00-8.00   sec   267 MBytes  2.24 Gbits/sec
[  4]   8.00-9.00   sec   269 MBytes  2.26 Gbits/sec
[  4]   9.00-10.00  sec   271 MBytes  2.27 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  2.67 GBytes  2.29 Gbits/sec                  sender
[  4]   0.00-10.00  sec  2.67 GBytes  2.29 Gbits/sec                  receiver

iperf Done.
無事 2.5Gbps に迫る速度が出せました。

追記:5GbpsのQNA-UC5G1T結果は以下のようになりました。(ジャンボフレーム有効の場合)

iperf3 -c 192.168.xx.xx -P 2
Connecting to host 192.168.xx.xx, port 5201
[  4] local 192.168.yy.yy port 54613 connected to 192.168.xx.xx port 5201
[  6] local 192.168.yy.yy port 54614 connected to 192.168.xx.xx port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   198 MBytes  1.66 Gbits/sec
[  6]   0.00-1.00   sec   186 MBytes  1.56 Gbits/sec
[SUM]   0.00-1.00   sec   384 MBytes  3.22 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   1.00-2.00   sec   211 MBytes  1.77 Gbits/sec
[  6]   1.00-2.00   sec   189 MBytes  1.58 Gbits/sec
[SUM]   1.00-2.00   sec   400 MBytes  3.36 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   2.00-3.00   sec   209 MBytes  1.75 Gbits/sec
[  6]   2.00-3.00   sec   190 MBytes  1.60 Gbits/sec
[SUM]   2.00-3.00   sec   400 MBytes  3.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   3.00-4.00   sec   209 MBytes  1.76 Gbits/sec
[  6]   3.00-4.00   sec   188 MBytes  1.57 Gbits/sec
[SUM]   3.00-4.00   sec   397 MBytes  3.33 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   4.00-5.00   sec   224 MBytes  1.88 Gbits/sec
[  6]   4.00-5.00   sec   176 MBytes  1.47 Gbits/sec
[SUM]   4.00-5.00   sec   400 MBytes  3.36 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   5.00-6.00   sec   209 MBytes  1.75 Gbits/sec
[  6]   5.00-6.00   sec   191 MBytes  1.60 Gbits/sec
[SUM]   5.00-6.00   sec   400 MBytes  3.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   6.00-7.00   sec   210 MBytes  1.76 Gbits/sec
[  6]   6.00-7.00   sec   189 MBytes  1.59 Gbits/sec
[SUM]   6.00-7.00   sec   399 MBytes  3.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   7.00-8.00   sec   212 MBytes  1.78 Gbits/sec
[  6]   7.00-8.00   sec   186 MBytes  1.56 Gbits/sec
[SUM]   7.00-8.00   sec   398 MBytes  3.34 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   8.00-9.00   sec   212 MBytes  1.78 Gbits/sec
[  6]   8.00-9.00   sec   189 MBytes  1.59 Gbits/sec
[SUM]   8.00-9.00   sec   401 MBytes  3.36 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   9.00-10.00  sec   207 MBytes  1.73 Gbits/sec
[  6]   9.00-10.00  sec   193 MBytes  1.62 Gbits/sec
[SUM]   9.00-10.00  sec   400 MBytes  3.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  2.05 GBytes  1.76 Gbits/sec                  sender
[  4]   0.00-10.00  sec  2.05 GBytes  1.76 Gbits/sec                  receiver
[  6]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec                  sender
[  6]   0.00-10.00  sec  1.83 GBytes  1.57 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec  3.89 GBytes  3.34 Gbits/sec                  sender
[SUM]   0.00-10.00  sec  3.89 GBytes  3.34 Gbits/sec                  receiver

iperf Done.

SMB 経由のファイルコピーでは 435MB/s の速度が出ていますが、iperf でそれを下回ってしまう理由はよく分かっていません。

最後に

純正のオプションを使うよりもお手軽かつ安価に通信速度を向上させることが出来ました。DS918+は他に選択肢がありませんでしたが、10GbE 増設に対応している機種であっても、USB NIC の増設は悪くない選択肢だと思います。

コメント

  1. 初めまして。
    SynologyのNASにUSBの(無線)LANアダプターを追加して
    高速化出来ないか調べていたところ
    こちらのブログにたどり着きました。

    公開されているドライバを使わせて貰い
    無事に2.5Gbpsで通信出来るようになりました。

    本当にありがとう御座いました。

    DS918+とDS218を利用してまして、
    初めに記事を読んだ時は、'他のアーキテクチャの~'とあり
    ビルドの仕方というのがわからないので
    DS218の方は諦めようかと思っていましたが
    そちらも公開して下さっており感動致しました。

    ちなみにDS218では、リア側のUSBポートは不安定となり、
    フロント側のUSBポートで安定致しました。

    ドライバをダウンロードしてから作業時間が取れずに
    遅くなってしまいましたが、重ねて御礼申し上げます。

    返信削除

コメントを投稿

このブログの人気の投稿

国産キャリア版Xperia 1 (802SO) のbootloaderをunlockしてrootを取得する

Xperia 1 (802SO) のrootを何も失わずに取得する