ブログ - ボンディングしてみた その4 成功はしたが
元々は,家の中のmacOS同士でファイルのコピーをする際にとても遅いので速くしたいと考えた.
Wi-Fiだから遅いだろうと思い,使ってないEthernetポートを使おうと.そしてネットワークの高速化技術にボンディング,チーミング,トランクなどと呼ばれる技術があることはぼんやりと知っていた.
まず最初にEthernetポートを2つ持っているMac Pro 2013でbondingの設定してみた.使っていたスイッチがリンクアグリゲーションIEEE 802.3adに対応してなかったので失敗.
次に写真とか動画とかのメディア用ファイルサーバとして使っているmac mini 2014にThunderbolt Ethernet Adapterを付けてEthernetを2本にしてリンクアグリゲーションに対応しているスイッチを繋げたことで,macOS側でボンディング接続できた.
ただこれだけだと1つのmacがつながっているだけなので速度アップの効果は体感できないので,mac mini 2014とMac Pro 2013をリンクアグリゲーションに対応しているスイッチに接続してみた.
すると,1つ目のmacを繋げたときは正常に動作するけど,2つ目のmacをつなげると通信できなくなる.使っているスイッチのPanasonic Switch-M8eG(PN28080K)ではLOOP DETECTIONのLEDとLOOP HISTORYのLEDが点滅していて,ループを検知している.
ループを検知したポートを見ると,2台目のmacの1つ目と2つ目のEthernet接続.
Wi-Fiだから遅いだろうと思い,使ってないEthernetポートを使おうと.そしてネットワークの高速化技術にボンディング,チーミング,トランクなどと呼ばれる技術があることはぼんやりと知っていた.
まず最初にEthernetポートを2つ持っているMac Pro 2013でbondingの設定してみた.使っていたスイッチがリンクアグリゲーションIEEE 802.3adに対応してなかったので失敗.
次に写真とか動画とかのメディア用ファイルサーバとして使っているmac mini 2014にThunderbolt Ethernet Adapterを付けてEthernetを2本にしてリンクアグリゲーションに対応しているスイッチを繋げたことで,macOS側でボンディング接続できた.
ただこれだけだと1つのmacがつながっているだけなので速度アップの効果は体感できないので,mac mini 2014とMac Pro 2013をリンクアグリゲーションに対応しているスイッチに接続してみた.
すると,1つ目のmacを繋げたときは正常に動作するけど,2つ目のmacをつなげると通信できなくなる.使っているスイッチのPanasonic Switch-M8eG(PN28080K)ではLOOP DETECTIONのLEDとLOOP HISTORYのLEDが点滅していて,ループを検知している.
ループを検知したポートを見ると,2台目のmacの1つ目と2つ目のEthernet接続.
man ifconfigで確認すると次のような記述が.
引用: macOSのMontereyで対応しているのはlacpとstaticの2つ.デフォルトではlacpになる.
リンクアグリゲーションって色々あるようだけど,Intel PROSetでチームを構成する際に選べるモードから調べたら次のようなものがある模様.
これでいうとmacOSで実装しているLACPモードは「802.3ad DYNAMICに対応したスイッチが必要」で,staticの「静的リンク・アグリゲーション」はスイッチ側でリンクアグリゲーションの設定が必要とある.
状況から,macOS側はlacpで動的リンク・アグリゲーションだけど使っているスイッチのPanasonic Switch-M8eG(PN28080K)は802.3ad DYNAMICに非対応の模様.
そこで使っているスイッチのPanasonic Switch-M8eG(PN28080K)でリンクアグリゲーションの設定でtrunk Groupを作成して再度接続してみたけど動作せず,結局macOS側でbondmodeをstaticに変更することで対応できました.
Mac Pro 2013とmac mini 2014のbondインタフェイスを使って,iperf3でネットワークスピードを計測してみた.
んー.2Gbitとは言わないけど,1.6Gbitくらいスピードが出るのかと思ったら1Gbitを下回ってる.
参考までにiperf3で1Gbpsインタフェイスで通信した結果を引用.
単体より遅くなっているのは,RAID1の時と同じ理由かなぁ.
リンクアグリゲーションとチーミング
https://nw.seeeko.com/archives/232409.html
引用: staticの場合をLAG(Link Aggregation Group)というのだけど,この説明だとスピードアップよりは冗長化と複数通信時の帯域拡張という感じかな.
ということで,iperf3の途中でレシーバ側のMac Pro 2013のLANケーブルを1本抜いてみた.
スピードダウンしてない.冗長化成功.そしてなぜかスピードも単線の時と同等になっている.
次に,両方のケーブルを抜いてみる.
当たり前だけど0bitになってますね.
ネットワークスピードアップを体感するには,ファイルサーバを想定して2台以上のコンピュータからファイルコピーとかして負荷をかけて性能測るのが良いのかな.
引用:
If the interface is a bond pseudo device, this option will set the mode on the bond interface.
The two currently supported modes are lacp and static. The default mode is lacp.
インタフェースがボンド擬似デバイスの場合、このオプションはボンドインタフェースのモードを設定する。
現在サポートされているモードは lacp と static の2つである。 デフォルトのモードは lacp である。
To enable static mode (and turn off LACP), specify static. In static mode, a member interface is made an active part of the link aggregate as long as the link status is active.
static モードを有効にするには(LACP をオフにするには)、static を指定する。 スタティック・モードでは、リンク・ステータスがアクティブである限り、メンバ・インタフェースはリンク・アグリゲートのアクティブな一部となる。
リンクアグリゲーションって色々あるようだけど,Intel PROSetでチームを構成する際に選べるモードから調べたら次のようなものがある模様.
IEEE802.3ad 動的リンク・アグリゲーション
802.3ad DYNAMICに対応したスイッチが必要.
アダプター.フォールト・トレランス(AFT)
障害が起きたアダプタのMACアドレスとL3アドレスをフェールオーバーさせる.
同一のスイッチに接続する必要がある.
アダプティブ・ロードバランシング(ALB)
2ポートから8ポートを経由して複数の宛先アドレスを送信できるようにする.
AFT機能も含まれる.
複数のスイッチに接続することもできる.
スイッチ・フォールト・トレランス(SFT)
2つのスイッチに接続されている2つのアダプタを利用.
アダプタかスイッチが故障した時に切り替わる.
静的リンク・アグリゲーション
スイッチ側のリンクアグリゲーション機能を利用する.
802.3adに対応したスイッチを利用する必要がある.
状況から,macOS側はlacpで動的リンク・アグリゲーションだけど使っているスイッチのPanasonic Switch-M8eG(PN28080K)は802.3ad DYNAMICに非対応の模様.
そこで使っているスイッチのPanasonic Switch-M8eG(PN28080K)でリンクアグリゲーションの設定でtrunk Groupを作成して再度接続してみたけど動作せず,結局macOS側でbondmodeをstaticに変更することで対応できました.
$ sudo ifconfig bond0 bondmode static🆑
$
$ /usr/local/bin/iperf3 -c 192.168.20.35🆑
Connecting to host 192.168.20.35, port 5201
[ 5] local 192.168.20.47 port 58816 connected to 192.168.20.35 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 92.0 MBytes 769 Mbits/sec
[ 5] 1.00-2.00 sec 101 MBytes 848 Mbits/sec
[ 5] 2.00-3.00 sec 101 MBytes 846 Mbits/sec
[ 5] 3.00-4.00 sec 98.6 MBytes 829 Mbits/sec
[ 5] 4.00-5.00 sec 92.9 MBytes 777 Mbits/sec
[ 5] 5.00-6.00 sec 92.8 MBytes 781 Mbits/sec
[ 5] 6.00-7.00 sec 93.5 MBytes 781 Mbits/sec
[ 5] 7.00-8.00 sec 98.5 MBytes 829 Mbits/sec
[ 5] 8.00-9.00 sec 112 MBytes 940 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 937 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 994 MBytes 834 Mbits/sec sender
[ 5] 0.00-10.00 sec 991 MBytes 831 Mbits/sec receiver
iperf Done.
参考までにiperf3で1Gbpsインタフェイスで通信した結果を引用.
$ /usr/local/bin/iperf3 -c 192.168.20.74🆑
Connecting to host 192.168.20.74, port 5201
[ 5] local 192.168.20.47 port 53956 connected to 192.168.20.74 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 116 MBytes 972 Mbits/sec
[ 5] 1.00-2.00 sec 112 MBytes 940 Mbits/sec
[ 5] 2.00-3.00 sec 112 MBytes 941 Mbits/sec
[ 5] 3.00-4.00 sec 112 MBytes 940 Mbits/sec
[ 5] 4.00-5.00 sec 112 MBytes 940 Mbits/sec
[ 5] 5.00-6.00 sec 112 MBytes 940 Mbits/sec
[ 5] 6.00-7.00 sec 112 MBytes 940 Mbits/sec
[ 5] 7.00-8.00 sec 112 MBytes 940 Mbits/sec
[ 5] 8.00-9.00 sec 112 MBytes 941 Mbits/sec
[ 5] 9.00-10.00 sec 112 MBytes 941 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec receiver
iperf Done.
$
リンクアグリゲーションとチーミング
https://nw.seeeko.com/archives/232409.html
引用:
単純化して2本のLAGで考えます。
LAGの場合、1つのパケットを半分にして、2本の回線に同時に流すわけではありません。1つ目のパケットは1本目の回線、2つ目のパケットは2本目の回線などと、パケットを分散することで、冗長化と帯域向上を図っています。
よって、IPアドレスベースなどで負荷分散するため、同じIPアドレスとの通信だと、同じ線を使う。だから、8本あっても、実際には1本しか使われていないかもしれない。
ということで,iperf3の途中でレシーバ側のMac Pro 2013のLANケーブルを1本抜いてみた.
macmini2014:$ iperf3 -c 192.168.20.47🆑
Connecting to host 192.168.20.47, port 5201
[ 5] local 192.168.20.35 port 50956 connected to 192.168.20.47 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 112 MBytes 940 Mbits/sec
[ 5] 1.00-2.00 sec 111 MBytes 929 Mbits/sec
[ 5] 2.00-3.00 sec 110 MBytes 928 Mbits/sec
[ 5] 3.00-4.00 sec 111 MBytes 928 Mbits/sec
[ 5] 4.00-5.00 sec 108 MBytes 911 Mbits/sec🈁
[ 5] 5.00-6.00 sec 111 MBytes 929 Mbits/sec
[ 5] 6.00-7.00 sec 111 MBytes 930 Mbits/sec
[ 5] 7.00-8.00 sec 111 MBytes 930 Mbits/sec
[ 5] 8.00-9.00 sec 111 MBytes 927 Mbits/sec
[ 5] 9.00-10.00 sec 111 MBytes 929 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.08 GBytes 928 Mbits/sec sender
[ 5] 0.00-10.00 sec 1.08 GBytes 925 Mbits/sec receiver
iperf Done.
macmini2014:$
次に,両方のケーブルを抜いてみる.
macmini2014:$ iperf3 -c 192.168.20.47🆑
Connecting to host 192.168.20.47, port 5201
[ 5] local 192.168.20.35 port 50958 connected to 192.168.20.47 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 111 MBytes 934 Mbits/sec
[ 5] 1.00-2.00 sec 111 MBytes 928 Mbits/sec
[ 5] 2.00-3.00 sec 111 MBytes 928 Mbits/sec
[ 5] 3.00-4.00 sec 111 MBytes 928 Mbits/sec
[ 5] 4.00-5.00 sec 110 MBytes 927 Mbits/sec
[ 5] 5.00-6.00 sec 111 MBytes 930 Mbits/sec
[ 5] 6.00-7.00 sec 101 MBytes 844 Mbits/sec
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 🈁
[ 5] 8.00-9.01 sec 0.00 Bytes 0.00 bits/sec
[ 5] 9.01-10.00 sec 0.00 Bytes 0.00 bits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 766 MBytes 642 Mbits/sec sender
[ 5] 0.00-14.52 sec 762 MBytes 440 Mbits/sec receiver
iperf Done.
macmini2014:$
ネットワークスピードアップを体感するには,ファイルサーバを想定して2台以上のコンピュータからファイルコピーとかして負荷をかけて性能測るのが良いのかな.