無事にクライアントPCのリプレースが完了したのですが、10GBASE-T化の話題は別エントリとして先に上げることにしました。ただ先に結論から申しますと、セットアップ自体はビックリするくらい何の苦労もなく終わりました。。。
サーバ(FreeBSD)側設定
初期設定
10GBASE-Tカードを挿してOS起動してからドライバのインストール。とりあえずpkgから落とせるものを使ってみる。
$ pkg search aquantia
aquantia-atlantic-kmod-0.0.5 Aquantia AQtion (Atlantic) Network Driver (Development Preview)
$ sudo pkg install aquantia-atlantic-kmod-0.0.5
インストールしたドライバの手動ロード。問題なければaq0というネットワークデバイスが見える。
$ sudo kldload /boot/modules/if_atlantic.ko
$ ifconfig | grep aq0
aq0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
インストールしたドライバのOS起動時の読み込み設定。/boot/loader.confに以下設定を追加。
if_atlantic_load="YES"
最後に/etc/rc.confでaq0にIPアドレスを設定すればOK。MTUの設定も同時に行えるのでとりあえず9000にしてみた。ネットワークorOS再起動して設定が反映されていればOK。
ifconfig_aq0="inet XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX mtu 9000"
jail設定変更
jail(qjail)で作成している各Jailの使用するNWインターフェースがオンボードNICのままなので、こちらをaq0に変更。最初manを見ずにWeb上で適当に情報を探していたら意外と見つからず苦労した。面倒がらずにmanをちゃんと見ましょう・・
$ sudo qjail config -c aq0 <jail name>
$ sudo qjail list <jail name>
STATUS JID NIC IP Jailname
------ ---- ------ --------------- --------------------------------------------
DS N/A aq0 XXX.XXX.XXX.XXX <jail name>
クライアント(Windows10)側設定
こちらはもっと簡単で、10GBASE-Tカードを挿してOS起動した後ASUSのサイトからドライバをDLしてインストールするだけ。
https://www.asus.com/jp/Networking/XG-C100C/HelpDesk_Download/
ただMTUの設定はnetshコマンドから設定しても永続化されないようで、以下のようにドライバ側のプロパティを変更して対応する必要があった。9014bytes設定がmtu=9000に対応。
ネットワーク速度測定
とりあえずiperfで計測してみたところ以下のような結果に。チューニングの余地はありそうだけど、パラレルでほぼほぼ回線速度の限界値に到達してるのでまあいっか!となった。
- シリアル:3-5Gbps
- パラレル(並列度8):9.7-8Gbps
CrystalDiskMarkの計測結果はこちら。サーバ上のストレージをネットワークドライブとしてマウントして見せてます。最後の項目除けば一応1Gbps以上の性能は出てますね。
ちなみに、適当に数GB程度のファイルをクライアント⇔サーバ間でCIFS経由でやり取りしてみた結果は以下の通り。やはりサーバ側のディスク(4本でRAIDZ構成)がボトルネックになる。
- キャッシュに載れば400-500MB/sから最大1GB/s
- キャッシュに載っていなければ100-120MB/s(ほぼ今まで通り)
てことでもうちょいサーバ⇒クライアントの速度が出て欲しいので、ZILとして使用しているSSDをL2ARCに転用することを検討中。パーティション切ってZILとL2ARC別々に足せるのであればそれがベストなんですが。理屈上はいけるはずよね・・