一般のご家庭に25GbEネットワークを導入する
師走と言えば大掃除。 一般のご家庭に溜まる可燃ゴミの掃除はもちろんのこと、デジタルデータに溢れる令和の時代は、データ掃除も入念に行う必要があります。 PCやiPadやNASなど、いたるところに散らばるデータの掃除には、高速ネットワーク環境を家庭内に構築しないと始まりませんよね。 そこで高速なネットワーク環境を導入し始めました。
そう、25GbEの敷設です!
目次
25GbE導入の経緯
平成末期に幾度ものNASの移行
2016年、自分でNASを構築する楽しみを感じていたこともあり、NAS4FreeやRockstor、そしてOpenMediaVaultと、OSSのNAS用ディストリビューションをとっかえひっかえしていました。
ストレージプールの復元に失敗してデータを失うことが何度かあったものの、ずっと構築を続けられるんじゃないかと感じたくらい楽しかったのを覚えています。 しかし2018年のある日、突然考え方に変化が起こりました。
電源の壊れたNASを新しい筐体に入れ直してるんだけど適当なOS突っ込んで自分で管理する楽しさよりQNAPに任せて楽チンの方がいい気もしてきた
— 🔥ワンストップ申請🔥 (@mzyy94) May 8, 2018
この時を境に、構築と失敗を繰り返し数TBもの消失したデータに想いを馳せ、「安定したアプライアンスとして提供されているNASを購入した方がしあわせになれるかもしれない」と考えが変わってしまったのです。
そしてその年の末に、当時の家庭向け6ベイ最上位モデルとも言えるQNAPのTVS-672XTを購入し、自作NASマイブームの終焉を迎えました。
10GbEでも十分だったNASの移行
2016年に10GbE NICを導入したのも、NASの移行を頻繁に行なっていたことが理由でした。
当時のNASはHDDを4つ積んでRAID5相当で組んだシンプルなストレージ構成ではあったものの、1 GbEでは通信速度が頭打ちとなってしまってストレージのスピードを発揮し切れていなかったのです。 10GbEの導入でディスクをフルスピードで稼働させ、快適なデータ転送を行えるようになりました。
もちろん、QNAPのNASにも10GbEで爆速の移行を成し遂げたものです。 当時はこれで十分でした。当時は。
NASの高機能化と10GbEの限界
数年前から市販されているNASは高速化のため、SSDを搭載できるようなものが増えてきました。 とりわけハイエンド向けのものとなると、NVMeのPCI Express 3.0 x4接続に対応しており、そのスピードは従来のHDDのみで構成されたNASとは桁違いの速さを誇ります。 QNAP TVS-672XTも例に漏れずNVMe SSDに対応しており、NAS上で行ったベンチマークテストでは3.0GB/sを超えるスピードを叩き出しました。
そう、10Gbpsを凌ぐストレージスピードを出すほどにNASは進化しているのです。10GbEは遅いのです。
この時、次のNAS移行時には10GbEを超える通信環境の必要性を確信しました。
10GbEを超えるイーサネット通信規格
5GやWi-Fi 6など高速無線通信が当たり前となりつつあるこの時代。有線LANも妥協の見られるマルチギガビットの広まりとともに、10ギガビットが一般に普及し始めている段階です。
10GbEより高速なイーサネット通信は、25GbE、40GbE (56GbE)、100GbEとラインナップが並んでいます。 これらは普及価格帯にまだ遠く、25GbEを例にとっても代表的なIntel XXV710搭載の25GbEネットワークカードは1枚5万円を超え、ケーブル含め双方向通信を構築するだけでも10万円以上の予算が必要になってきます。 これにスイッチングハブやルーターなどの導入を考えるともう一桁上がり、逸般の誤家庭でも25GbEネットワーク構築には大きな勇気が必須となります。
まだ「やっと10GbEが一般のご家庭に広まりつつある時代」に、10GbEよりさらに高速なイーサネット通信機器を構築しようとしているので、なまじ安価に揃えられるはずがありません。
一般的には高速ストレージ間通信にはイーサネットではなく、Fibre ChannelやInfiniBandなどのインターコネクトが用いられます。 それらを用いることも考えたものの、TCP/IPとイーサネット通信を前提とした家庭内のネットワークにおいては、(IPoIBなどあれど)NASにはイーサネットを選択した方が賢い。そんな思いから25GbE導入にこだわり始めました。
25GbE元年となった2020年
今年の初め、QNAPから自社NAS向けの25GbEネットワークカードがリリースされました。
QNAPは、iSERサポートともにMellanox ConnectX-4 Lx SmartNICを搭載したNASとPC用の新しい25GbE NICを発表 | QNAP
Intelより比較的安価なMellanox製ではあるものの、QNAPアクセサリーストアに掲載の品はIntelのそれの約半額という、破格の価格設定に驚きました。 このリリースは、一般家庭へも10万円足らずで手軽に25GbEを導入できる時代になった瞬間とも言えます。25GbE元年と言っても過言ではないでしょう。
情報引用元: Dual-port SFP28 25GbE network expansion card; low-profile form factor; PCIe Gen3 x8
不安定になるNAS
これでいつNASが不安定になっても遅い10GbEにイライラすることなく、高速にNASの移行が行えると安堵していた矢先に、待ってましたと言わんばかりにQNAPのNASが不安定になってきたのです。
QNAPのNASに搭載されるOSであるQTS上で、ファイルの移動を行うと失敗するようになり、それだけならまだしも移動に失敗したファイルが消失するなんてことが起きるようになりました。 他にも謎のバックグラウンドタスクがI/OやCPUを占有する事象もあり、ファームウェア初期化でも改善しませんでした。
— 買い替え時だな
こうして、25GbEの導入を決めたのでした。
(完)
機材購入
25GbEカードの購入
NASを買い替え、移行する目的で25GbE通信環境を構築するので、25GbEスイッチングハブや25GbEルーターは今回は導入しません。 25GbEネットワークカードとDAC(Direct Attached Copper)ケーブルを調達するのみです。
QNAPアクセサリーストアーから25GbEカード2枚とSFP28のDACケーブル1本を購入しました。
お値段はというと、US$ 247が2つとUS$ 118が1本で合計US$ 612(送料無料)。 QNAPアクセサリーストアは台湾からの発送にもかかわらず、日本へ無料配送してくれるのはとてもありがたいですね(受け取り時に輸入消費税+手数料で約4,000円ほどの支払いあり)。
翌日発送で注文6日後に受け取りました。
Tip
追記(2021/5/27) 今年に入ってからSynologyもほとんど同じ仕様の25GbEカードを発売しました。 E25G21-F2 | Synology Incorporated
移行先のNASの購入
25GbEカードと同時期に注文しておいたSynologyのDS1621+に移行します。
𝑚𝑦 𝑛𝑒𝑤 𝑔𝑒𝑎𝑟 pic.twitter.com/IxXX3C13B0
— 🔥ワンストップ申請🔥 (@mzyy94) December 6, 2020
Mellanox ConnectX®-4 Lx Ethernet Adapter Card
今回購入した25GbEカードのQXG-25G2SF-CX4には、Mellanox ConnectX®-4 Lxネットワークコントローラーが搭載されています。
ConnectX®-4 Lx EN Cards | NVIDIA
そしてこのコントローラーを搭載したカードの詳細仕様は、以下のPDFに書かれています。
抜粋すると、以下のようなスペックを誇ります。
- ネットワーク速度: 最大25GbE/10GbE/1GbE
- ネットワークポート数: 2
- ネットワークインターフェース: SFP28
- ホストインターフェース: PCIe 3.0 x8
ネットワークインターフェースは一般的なRJ45やSFP+ではなく、SFP28です。 SFP28コネクタはSFP+と互換があり、コントローラーが対応していればSFP28ケーブルを既設のご家庭の10GbEネットワークに接続し、10GbE通信を確立することができます。 実際に購入したカードとSFP28ケーブルで既設ネットワークのSFP+ポートに接続することで、10GbEでの通信の確立ができました。
参考資料: SFP vs SFP+、SFP28 vs SFP+、QSFP vs QSFP28の違い | FSコミュニティ
十分にスピードを出すにはホストインターフェースにPCIe Gen 3.0 x8が必要なようですが、Gen 2.0やx4でも動作すると書かれています。
引用元: pb-connectx-4-lx-en-card.pdf
セットアップ
構成
さて、機材は揃ったので環境構築をしていきます。 今回移行するNASの構成は下表の通りです。
型番 | QNAP TVS-672XT | Synology DS1621+ |
---|---|---|
CPU | Intel Core i3-8100T | AMD Ryzen Embedded V1500B |
RAM | DDR4-2666 64GB | DDR4-2666 32GB |
PCIe | PCI Express 3.0 x4 | PCI Express 3.0 x4 |
SSD 1 | Samsung 960 EVO 500GB | AGI AGI512G16AI198 512GB |
SSD 2 | Samsung 970 EVO 500GB | Crucial P1 500GB |
OS | QTS 4.5.1 | DSM 7.0 Beta |
25GbE NICのQXG-25G2SF-CX4とはどちらもPCIe 3.0 x4での接続となるので、少しパフォーマンスは落ちる見込みです。
25GbE NICの接続と認識
それぞれのNASに25GbEカードを取り付け、SFP28ケーブルで接続し通信できる状態を準備します。
QNAP TVS-672XT
移行元のTVS-672XTは、この25GbEカードと互換性があり、取り付けるだけで認識しました。
Synology DS1621+
移行先のDS1621+ですが、これには互換性情報が見つかりませんでした。 しかしSynologyの他のモデルにはConnectX-4 Lx ENのカードと互換性があるとの情報があったので、淡い期待と共に接続状態を見ると、25000Mbpsでリンクアップしていました。 DSM 6.2でもDSM 7.0 Betaでも、両方ともリンクアップしていたので、DS1621+も取り付けるだけで動作するようです。
検証
ただ導入して高速にNASの移行を済ますだけではもったいないので、通信速度の実測値が期待通りか検証します。
検証環境
2台のNASを1本のSFP28ケーブルで繋いだ構成で、各NASの25GbEポートに以下のIPアドレスを割り当てました。
- TVS-672XT: 10.0.1.1/16
- DS1621+: 10.0.1.2/16
デフォルトMTU 1500では小さすぎるので、それぞれのNASでMTUを9000に変更しました。
検証内容
ネットワーク通信速度とデータ転送速度の計測を行います。
ネットワーク通信速度
ネットワーク通信速度の計測にはiperf3を用います。
利用するバージョンは3.9(iperf-3.9.tar.gz)で、Debian上でStatic linkで(./configure --enable-static-bin
)ビルドしたバイナリを各NASに配置します。
追加の計測オプションは無しでサーバー(iperf3 -s
)とクライアント(iperf3 -c
)を交代し、交互に各5回測定して結果を示します。
データ転送速度
データ転送速度の計測は、SMB 3を用いたファイル転送時の転送レートを見ます。 各NASのOSに標準搭載されたSMBの機能を利用し、DS1621+のDSM 7.0 BetaでTVS-672XTをマウントし、マウントしたTVS-672XTからDS1621+へとファイルを転送します。 読み込みキャッシュをクリアしてしまったため、転送するファイルはTVS-672XT上のSSD上に配置されているものとし、DS1621+ではSSD読み書きキャッシュを有効にします。
結果
ネットワーク通信速度 TVS-672XTがクライアント
転送量 | ビットレート | 再送回数 |
---|---|---|
26.2 GBytes | 22.5 Gbits/sec | 0 |
26.1 GBytes | 22.5 Gbits/sec | 0 |
25.9 GBytes | 22.3 Gbits/sec | 0 |
26.2 GBytes | 22.5 Gbits/sec | 0 |
26.1 GBytes | 22.4 Gbits/sec | 0 |
期待通りの転送速度を発揮していました。Blu-rayディスクのデータが10秒足らずで転送できることを考えると興奮しますね。
ネットワーク通信速度 DS1621+がクライアント
転送量 | ビットレート | 再送回数 |
---|---|---|
18.4 GBytes | 15.8 Gbits/sec | 37 |
16.6 GBytes | 14.3 Gbits/sec | 76 |
16.4 GBytes | 14.1 Gbits/sec | 93 |
21.3 GBytes | 18.3 Gbits/sec | 17 |
19.0 GBytes | 16.4 Gbits/sec | 80 |
期待を大きく下回る速度となってしまいました。 再送が発生しているのが結果からわかります。 2つあるSFP28ポートのもう一つに差し込んでみても同様の結果となっているので、ポートが悪いというわけではないようです。
調査してみたところ、iperf3サーバーとして動かしているTVS-672XTのCPU利用率が、iperf3で通信をすると90%を超えることがわかりました。 DS1621+の方はというと、サーバー・クライアント共に15%前後の利用率に留まっていました。
直接的に何がCPUを利用しているのかを調査しそびれましたが、TVS-672XTの再起動とバックグラウンドアプリケーションの停止をして解決を図りました。 相変わらず通信開始でCPU利用率は跳ね上がるものの、40%前後で落ち着くようになりました。
その状態で再計測しました。
転送量 | ビットレート | 再送回数 |
---|---|---|
25.1 GBytes | 21.5 Gbits/sec | 60 |
26.8 GBytes | 23.0 Gbits/sec | 545 |
26.8 GBytes | 23.0 Gbits/sec | 194 |
25.2 GBytes | 21.7 Gbits/sec | 497 |
27.2 GBytes | 23.4 Gbits/sec | 87 |
相変わらず再送は多いですが、期待通りの結果が得られました。 再送がなぜ起きるのかは、今後の調査課題とします。
データ転送速度
Synology DSM 7.0 BetaのFile Stationを用いて、大小様々なファイルの含まれるフォルダを転送しました。
ピーク時で約1.8Gbpsと、遅すぎる結果となりました。 大きな単一ファイルの転送では改善するものの、終始2Gbps台と振るわない結果でした。
リソースモニタを確認すると、どうやらDS1621+のディスク書き込み速度で頭打ちとなっているようでした。 SSDの書き込みキャッシュ機能がうまく効いていないようです。悲しい。 SSDキャッシュは利用を進めていくことで学習していくようなので、今後に期待するとします。
SSDキャッシュが最大限に効いた場合のファイル転送速度を想定して、SMB 3でマウントしているディレクトリに含まれる単一ファイルを/dev/nullに吐き出したものを参考値として計測してみました。
SMB 3のオーバーヘッドがあれど、1.4GB/sと11.2GbpsのパフォーマンスがSMB 3転送で期待できる結果となりました。 10GbEから25GbEに乗り換えた甲斐があったと実感させられます。
まとめ
25GbEはいいものです。帯域が豊かになります。 いい感じにSSDキャッシュが熟してきたら、VMイメージをNAS上に置いてハイパフォーマンスマシンから25GbE越しに起動する、なんてこともしてみたいです。
時代は5Gでも10Gでもなく、25Gです。