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.
初めまして。
返信削除SynologyのNASにUSBの(無線)LANアダプターを追加して
高速化出来ないか調べていたところ
こちらのブログにたどり着きました。
公開されているドライバを使わせて貰い
無事に2.5Gbpsで通信出来るようになりました。
本当にありがとう御座いました。
DS918+とDS218を利用してまして、
初めに記事を読んだ時は、'他のアーキテクチャの~'とあり
ビルドの仕方というのがわからないので
DS218の方は諦めようかと思っていましたが
そちらも公開して下さっており感動致しました。
ちなみにDS218では、リア側のUSBポートは不安定となり、
フロント側のUSBポートで安定致しました。
ドライバをダウンロードしてから作業時間が取れずに
遅くなってしまいましたが、重ねて御礼申し上げます。