Dell Unity:LACPトランクまたはボンド ロード バランシング アルゴリズムを変更する方法(Dell修正可能)
Summary: Link Aggregation Control Protocol (LACP)トラフィックは、LACPトランクまたはボンドを介したUnity SPへの書き込みではバランスされますが、読み取り要求に対して応答が送信される場合は均等に分散されません。
Symptoms
特定のネットワーク条件および環境では、デフォルトのアルゴリズムがデフォルトで単一のインターフェイスを使用する場合があります
例:
送信元MACアドレスが同じ場合(ルーターを使用する場合)、MACは常に同じになり、送信に使用されるポートは常に同じになります
また、特殊な状況下では、異なるMACも同じ値になる場合があります。
たとえば、MACが常に偶数(0、2、4、6、8、A、C、E)で終了し、LACPトランクまたはボンドに2つのポートがある場合、ハッシュの計算により、トラフィックは毎回同じポートを介して転送されます
LACPトランクまたはボンディングは、すべてのインターフェイスではなく単一のインターフェイスを均等に使用して、トラフィックのバランスが取れていないことを示しています
これは、本番ネットワーク上で(ネットワーク スイッチSysAdminsが)確認するか、Unisphereの [SYSTEM >Performance]にあるグラフィカル ネットワーク表示で確認できます。
netstat -i' サービス シェルでの出力。
Cause
Unity上のLACPは、デフォルトの「xmit_hash_policy」としてlayer2を使用します
レイヤ 2+3 を「xmit_hash_policy」として使用することは、特にほとんどの宛先に到達するためにレイヤ 3 ゲートウェイ デバイスが必要な環境において、レイヤ 2 のみの場合よりもトラフィックのバランスのとれた分散を提供することを目的としています
参考:https://www.kernel.org/doc/Documentation/networking/bonding.txt
レイヤ2は、ハードウェアMACアドレスとパケットタイプIDフィールドのXORを使用してハッシュを生成します
計算式は次のとおりです。
hash = source MAC XOR destination MAC XOR packet type ID slave number = hash modulo slave count.
Layer2+3 は、layer2 プロトコル情報と layer3 プロトコル情報の組み合わせを使用してハッシュを生成します
ハッシュは、ハードウェアMACアドレスとIPアドレスのXORの組み合わせを使用して生成されます。
計算式は次のとおりです。
hash = source MAC XOR destination MAC XOR packet type ID hash = hash XOR source IP XOR destination IP hash = hash XOR (hash RSHIFT 16) hash = hash XOR (hash RSHIFT 8) And then hash is reduced modulo slave count.
レイヤ 2 とレイヤ 2+3 はどちらも 802.3ad に準拠しています。
Resolution
Unity OEコード4.3以降の場合:
[Change]を xmit_hash_policy を svc_network_bond command.
Dell Unity™ファミリー バージョン4.3: サービス コマンド テクニカル ノート - 74.
ページ使い:
svc_network_bond [-h|--help] -d <device> {-s -o <option> -v <value>} {-g [-o <option>]}
構文は次の例のようになります。
service@(none) spb:~> svc_network_bond -s -d bond23 -o xmit_hash_policy -v 2
の許容値は次のとおりです。 xmit_hash_policy アール:
0またはレイヤー2デフォルト 設定
このパラメーターは、ハードウェアMACアドレスのXORを使用してハッシュを生成します。
1 または layer3+4 上位レイヤー プロトコル情報(使用可能な場合)を使用してハッシュを生成します。
これにより、特定のネットワークピアへのトラフィックが複数のスレーブにまたがることができますが、単一の接続が複数のスレーブにまたがることはありません
2 または layer2+3 layer2 プロトコル情報と layer3 プロトコル情報の組み合わせを使用してハッシュを生成します。モード 2 または Layer2+3 アルゴリズムは 802.3ad に準拠しています。
Unity OEコード4.2.3.9670635以前の場合:
Dellカスタマー サービスに連絡し、このKBA番号を伝えてください。
Unity OEコード5.3.x以降の場合
変更を行う際にサービス シェルは必要なく、再起動も必要ありません
以下は、実習のxmit_hash_policy.
でUnityアレイを設定する例です。このUnityアレイは、bond22.
と呼ばれるLACPトランクで構成されています。サービス アカウントを使用してUnityアレイにSSHで接続します。
まず、そのxmit_hash_policyが何に設定されているかを確認します。
# svc_network_bond --get --device bond22 -o xmit_hash_policy INFO: Selected device: bond22 INFO: Option to show: xmit_hash_policy INFO: Execution code: 0 xmit_hash_policy=0 #
次に、xmit_hash_policyを2に設定します
# svc_network_bond --set --device bond22 -o xmit_hash_policy -v 2 INFO: Selected device: bond22 INFO: Option to modify: xmit_hash_policy INFO: Requested value: 2 WARNING: Do you want to proceed? [yes/no]: yes <<<<<< sometimes y works and sometimes it fails on the first attempts. Retry then. INFO: Execution code: 0 INFO: Option 'xmit_hash_policy' has been successfully changed. #
# svc_network_bond --get --device bond22 -o xmit_hash_policy INFO: Selected device: bond22 INFO: Option to show: xmit_hash_policy INFO: Execution code: 0 xmit_hash_policy=2 #
Additional Information
netstat と arp サービス シェルを有効にする必要があります。
例 'netstat -i' 出力。これはボンディングのメンバーを示し、トラフィックがハッシュされているかどうかを判断するために使用できます。
この例では、「bond20」(LACPボンド)はインターフェイス「eth20」と「eth21」で構成されています。
Unityからのアウトバウンド トラフィックを表す[TX-OK]列の違いに注目してください。
21:12:03 service@(none) spb:~> netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg bond20 9000 0 101724658 0 11 0 126087418 0 0 0 BMmRU cmin0 9000 0 14341258 0 0 0 11301712 0 0 0 BMRU eth2 1500 0 0 0 0 0 0 0 0 0 BMU eth3 1500 0 0 0 0 0 0 0 0 0 BMU eth10 1500 0 0 0 0 0 0 0 0 0 BMU eth11 1500 0 0 0 0 0 0 0 0 0 BMU eth12 1500 0 0 0 0 0 0 0 0 0 BMU eth13 1500 0 0 0 0 0 0 0 0 0 BMU eth20 9000 0 52249885 0 1 0 38317 0 0 0 BMsRU eth21 9000 0 49474773 0 10 0 126049101 0 0 0 BMsRU eth22 1500 0 0 0 0 0 0 0 0 0 BMU eth23 1500 0 0 0 0 0 0 0 0 0 BMU eth_int 9000 0 14341055 0 0 0 11301598 0 0 0 BMRU eve_br0 1500 0 16 0 0 0 3656 0 0 0 BMRU lo 65536 0 963282566 0 0 0 963282566 0 0 0 LRU mgmt 1500 0 1405994 0 64 0 360538 0 0 0 BMRU mgmt_vdev 1500 0 356150 0 64 0 326216 0 0 0 BMRU srm 1500 0 135650 0 64 0 5 0 0 0 BMRU vetheve1 1500 0 16 0 0 0 3647 0 0 0 BMRU
各IPアドレスのMACアドレス(HWaddress)を示すサービス シェルの「arp」の出力例。
これらは、LACPが複数の物理ポート間でトラフィックを正確にロード バランシングするためには異なる必要があります。
使用しているインターフェイスでフィルタリングする必要があるインターフェイスがいくつかあります。
リアルタイム イベントを監視するには、
'ip addr' 「」を見つけるにはIface」は、調査するIPアドレスに割り当てられています。
19:23:33 service@(none) spa:~> arp Address HWtype HWaddress Flags Mask Iface 10.98.25.61 ether 00:25:b5:02:01:fc C bond20 10.98.25.60 ether 00:25:b5:02:00:1c C bond20 10.98.25.70 ether 00:25:b5:02:00:dc C bond20 10.98.25.63 ether 00:25:b5:02:01:8c C bond20 10.98.25.65 ether 00:25:b5:02:01:6c C bond20 10.98.25.62 ether 00:25:b5:02:01:dc C bond20 10.98.25.64 ether 00:25:b5:02:01:9c C bond20 10.98.25.67 ether 00:25:b5:02:01:0c C bond20 10.98.25.66 ether 00:25:b5:02:01:7c C bond20 10.98.25.59 ether 00:25:b5:02:00:0c C bond20 peer ether 8e:92:80:4d:2d:02 C eth_int 10.98.25.69 ether 00:25:b5:02:00:fc C bond20 10.98.25.1 ether 00:08:e3:ff:fd:90 C bond20 10.98.25.68 ether 00:25:b5:02:01:1c C bond20