QNAP TS-673での転送速度の限界に挑んでみたくなり、2つのLANを束ねるLAG(リンクアグリゲーション)をやめ、2つのLANにそれぞれIPを割り当てて並列でSMBの通信を行うMultiChannel(マルチチャンネル)をやってみました。
が、PC側はちゃんとマルチチャンネルの要件を満たしているにも関わらず、マルチチャンネルでの接続ができませんした。
何度やってもマルチチャンネルになりません。
NASとPCがSMBv3で接続されているのも確認しましたが、なぜかマルチチャンネルでの通信ができず。
もしかしてPC側ではなく、QNAP側が対応していないのではないかと思い、SSHでログインしてSMBの設定を確認してみました。
cat /etc/config/smb.conf
すると[global]セクションにマルチチャンネルの設定がありません…
なるほど、これではマルチチャンネルが有効にならないはずです。
ということで[global]セクションにマルチチャンネル有効の設定を追加。
vi /etc/config/smb.conf
以下の行を[global]セクションに追加。
server multi channel support = yes
SMBのサービスを再起動(NASを再起動でもOKです)
/etc/init.d/smb.sh restart
そしてPCから接続するとマルチチャンネルが有効になりました。
NVMe SSDが初期不良で4枚揃っていないので、HDDx6 RAID6 + SSDx2 RAID1キャッシュでの速度を計測してみました。
シーケンシャルのReadでは10GbE帯域を超えることができました!
2020/07/27追記
NAS側の接続で設定を見直し再度LAGを組み、、NAS側はLAGを組んでいてもSMBv3のマルチチャンネルを使えるようになりました。
(PC側はLAGは組まずに2つのIPを持った状態です)
ネットワークスイッチのLAGの設定は以下のようにSrc/Dest IP and TCP/UDP Port fieldsにして、NAS側のポートトランキングのハッシュポリシーをLayer 2+3(MAC+IP)とすることでマルチチャンネルを使えるようになりました。
NETGEARのネットワークスイッチの設定
※Layer3を扱えるフルマネージスイッチでないと、この設定はできないかもしれません。
CrystalDiskMarkでのベンチマークとNASの通信トラフィック
ちゃんと2つのネットワークで均等に通信が行われているのが確認できます。
最後のランダムライト(RND4K Q32T1)は片方のネットワークしか利用されていないので、速度に余裕がある場合は両方使わないのかもしれません。
(何度かテストしていると、シーケンシャルリードでも1度だけ片方しか使われない時があったので、状況によってネットワークの使い方が変わるようです)
2020/08/02追記
NVMe SSDのRAID10を組んでQtierを再構築して計測しました。
シーケンシャルは20GbEの限界近くまで行くかと思ってましたが、それほど伸びませんでした。
CPUなどは一般的なPCに比べれば高性能でもありませんし、これくらいが中堅NASのハード上の限界なのかもしれません。