なぜかバッファロー様のBSL-WS-G21Mの 8port インテリジェント L2 HUBがある。
QNAPの2個のGigaNICIntel PRO/1000 PT Dual Port Server Adapter(2個のGigaNIC)を繋げてみた。
まあー単一ファイルの転送で1Gbps以上の転送速度は出なかった。。。多少期待したけど。。。
っで、2port NIC、4port NICを持つマシン側から見て対外を対象に トータルで2Gbps、4Gbpsは出るのだろうが、
2015y01m06d_013024710.png
1つのファイル転送が2Gbps、4Gbpsになる訳ではないみたい。
2015y01m06d_011840913.png
windows8.1とwindows2012R2とでも確かめてみたけど、、まぁー同じく2Gbps、4Gbpsにはならなかった。まあーそうゆうものなのだろう。
ここではLinuxマシン(CentOS6)でbonding(802.3ad)によるファイル転送速度を調べてみた。

設定

Intel PRO/1000 PT Dual Port Server Adapterを持つPCのネットワーク設定は下記とした。
まずホスト名とかデフォルトGWとか

[root@e ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=e.chaperone.jp
GATEWAY=192.168.0.1
[root@e ~]#

そしてbondingの設定

[root@e ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.0.17
PREFIX=24
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System bond0"
BONDING_OPTS="mode=4 xmit_hash_policy=0"
[root@e ~]#

留意 複数のNICが平等に使用されていないなら xmit_hash_policy=1の値を変更する
そしてこのbond0の構成員となる eth0 と eth1 を定義します。

[root@e ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
HWADDR=00:15:17:8E:E2:44
UUID=6dc320fe-258a-4080-a1e7-8c0d473e9d0e
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
NAME="System eth0"
MASTER=bond0
SLAVE=yes
[root@e ~]#
 
[root@e ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NM_CONTROLLED=no
ONBOOT=yes
UUID=c3e9a74a-8914-4aa6-923d-749509766bf6
HWADDR=00:15:17:8E:E2:45
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
NAME="System eth1"
MASTER=bond0
SLAVE=yes
[root@e ~]#

ってな感じにして、

[root@s ~]# chkconfig NetworkManager off
[root@s ~]# reboot

とします。再起動後にbondingは有効になっていて、ifconfigの値は

[root@e ~]# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:15:17:8E:E2:44
          inet addr:192.168.0.17  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe8e:e244/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:259 errors:0 dropped:0 overruns:0 frame:0
          TX packets:505 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:28551 (27.8 KiB)  TX bytes:67015 (65.4 KiB)
 
eth0      Link encap:Ethernet  HWaddr 00:15:17:8E:E2:44
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:225 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:24757 (24.1 KiB)  TX bytes:2948 (2.8 KiB)
          Interrupt:16 Memory:f0760000-f0780000
 
eth1      Link encap:Ethernet  HWaddr 00:15:17:8E:E2:44
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:34 errors:0 dropped:0 overruns:0 frame:0
          TX packets:477 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3794 (3.7 KiB)  TX bytes:64067 (62.5 KiB)
          Interrupt:17 Memory:f0720000-f0740000
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
 
[root@e ~]#

となっている。っで、bond0の設定状況は、

[root@e ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
 
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
 
802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 1
        Partner Mac Address: b0:c7:45:e6:01:de
 
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:15:17:8e:e2:44
Aggregator ID: 1
Slave queue ID: 0
 
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:15:17:8e:e2:45
Aggregator ID: 1
Slave queue ID: 0
[root@e ~]#

またethtoolでは

[root@e ~]# ethtool bond0
Settings for bond0:
        Supported ports: [ ]
        Supported link modes:   Not reported
        Supported pause frame use: No
        Supports auto-negotiation: No
        Advertised link modes:  Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Speed: 2000Mb/s
        Duplex: Full
        Port: Other
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        Link detected: yes
[root@e ~]#

と確認できる。

L2 HUB

8port インテリジェント L2 HUBのBSL-WS-G21Mは、ブラウザでアクセスしてポートトランク設定で
全ポートでLACPを有効にした。
2015y08m14d_094320796.png
*LACPモードをManualで、一つでもトランクグループを作るとLACPモードが無効になるみたい

検証 ダウンストリーム

bondingデバイスからEthernetデバイスへのデータ転送を検証してみた。
2015y08m29d_021130706.png
こんなデータの流れになる。検証にはepelのiperf3パッケージを使用した。

計測はまず、データの受け口となる c101 と c102 ホストにて下記の様に待ち受けモードを作る

[root@c101 ~]# iperf3 -s -p 5201
 
[root@c102 ~]# iperf3 -s -p 5202

そしてデータ転送側の e ホストから下記コマンドをそれぞれ別のターミナルで連続して実行する。

[root@e ~]# iperf3 -c c101 -p 5201 -t 30
 
[root@e ~]# iperf3 -c c102 -p 5202 -t 30

転送状況は e ホストの bond0 デバイスを iftop コマンド(iftop -i bond0)にて確認した。
2015y08m29d_021801043.png
転送速度は半分の値であった。っで、別の測定アプリとして nmap-ncatパッケージ のnc コマンドでテストを行った。
受信側

[root@c101 ~]# nc -l 11111 > /dev/null
 
[root@c102 ~]# nc -l 11112 > /dev/null

送信側

[root@e ~]#  dd if=/dev/zero bs=1073741824 count=4 | nc -v 192.168.0.101 11111
 
[root@e ~]#  dd if=/dev/zero bs=1073741824 count=4 | nc -v 192.168.0.102 11112

結果、
2015y08m29d_025923362.png
とほぼ全速。

検証 アップストリーム

って逆方向をテスト。
2015y08m29d_022948090.png
パケット発信元は c101 と c102 サイトで、その両方からの通信を e サイトが受け取る。
下記コマンドをそれぞれ別のターミナルで実施する。

[root@e ~]# iperf3 -s -p 5201
 
[root@e ~]# iperf3 -s -p 5202

次に、c101 と c102 からデータを送信する

[root@c101 ~]# iperf3 -c e -t 30 -p 5202
 
[root@c102 ~]# iperf3 -c e -t 30 -p 5201

受け側となる e サイト bond0 デバイスは下記の様に記録される。
2015y08m29d_023506346.png

検証 NFS

NFSサーバにこのIntel PRO/1000 PT Dual Port Server Adapter(2port NIC)を挿して検証してみた。
NFSとして拠出しているパーティション(/home)のHDD速度をddコマンドを使って計測してみた。

[root@nfs ~]# dd if=/dev/zero of=/home/zero1 bs=1G count=10 conv=fsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 42.1407 s, 255 MB/s
[root@nfs ~]#

ローカルで255 MB/s(2,040 Mbps)ほどある。

次に/homeをnfsエキスポートして、マウントしたマシンから計測してみると

[root@n1 ~]# dd if=/dev/zero of=/home/zero1 bs=1G count=10 conv=fsync
10+0 レコード入力
10+0 レコード出力
10737418240 バイト (11 GB) コピーされました、 108.195 秒、 99.2 MB/秒
[root@n1 ~]#

とGigaネットの帯域上限に差し迫る 99.2 MB/秒(793.6 Mbps)であった。

Bondingを施したNFSサーバに2台から同時に書き込みを掛けてみた

[root@n1 ~]# dd if=/dev/zero of=/home/zero1 bs=1G count=10 conv=fsync
10+0 レコード入力
10+0 レコード出力
10737418240 バイト (11 GB) コピーされました、 98.1811 秒、 109 MB/秒
[root@n1 ~]#
 
[root@e ~]# dd if=/dev/zero of=/home/zero2 bs=1G count=10 conv=fsync
10+0 records in
10+0 records out
10737418240 bytes (11 GB) copied, 99.2049 s, 108 MB/s
[root@e ~]#

となり、bondingで109 MB/秒(872 Mbps)、108 MB/s (864 Mbps)を維持した。
NFSサーバでのiftop画面は下記のようになった。
2015y10m04d_153537718.png

Bondingしたethを十分に使っているようだ。
っで、ここで注意。2枚のNICがそれぞれ bonding させたnicと相対するようにxmit_hash_policyの調整/確認は忘れずに行いましょう。
そうでないと半分の50MB/secほどの速度しか出せなくなります。

次に逆のバターン。上記はクライアントからNFSサーバへの書き込みであった。その逆の読み込みの場合だと
*同じディレクトリ先を同時に読めなくて、別のディレクトリにしてます

[root@n1 ~]# dd if=/home/zero1 of=/dev/null conv=fsync
dd: `/dev/null' に対する fsync に失敗しました: 無効な引数です
20971520+0 レコード入力
20971520+0 レコード出力
10737418240 バイト (11 GB) コピーされました、 91.2692 秒、 118 MB/秒
[root@n1 ~]#
 
[root@e ~]# dd if=/home/a/zero2 of=/dev/null conv=fsync
dd: fsync failed for `/dev/null': 無効な引数です
20971520+0 records in
20971520+0 records out
10737418240 bytes (11 GB) copied, 91.7697 s, 117 MB/s
[root@e ~]#

となって、
2015y10m04d_165053073.png


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2015-10-04 (日) 21:50:43 (1604d)