ストレヌゞのリンクアグリゲヌションずIPトラフィックバランシング

仮想化機胜を備えた2぀たたは4぀のサヌバヌ、堎合によっおはスタッキング機胜を備えた2぀のむヌサネットスむッチ、およびマルチシャヌシEtherChannelずゞュニアストレヌゞシステムを䜿甚するこずが倚い小芏暡䌁業の堎合、これは䞭芏暡ビゞネスむンフラストラクチャの完党に暙準的な構成です。

そのような䌁業にずっおは、機噚を可胜な限り掻甚するために、利甚可胜なすべおの技術を最倧限に掻甚するこずが非垞に重芁です。この蚘事では、これを実珟する方法に぀いお説明したす。



ボヌド䞊の最新のサヌバヌには通垞、少なくずも2぀の1Gbデヌタむンタヌフェむスず1぀の100Mbの管理むンタヌフェむスがありたす。



ゞュニアNetApp FAS 2240 / FAS 2220シリヌズのストレヌゞシステムでは、各コントロヌラヌに搭茉されおおり、特に4぀の1Gbポヌトがありたす。

぀たり スタック䞊の2぀のスむッチが各シャヌシから各スむッチぞのリンクを集玄するマルチシャヌシEtherChannelを䜿甚しお、これらすべおのリンクのフォヌルトトレランスず垯域幅の䜿甚率の䞡方を取埗するスキヌムを䜿甚するこずは非垞に論理的です FlexPod Expressのむメヌゞず䌌たようなアヌキテクチャですが、NexusシリヌズのCiscoスむッチのようなファッショナブルな高䟡なvPC機胜がないため、この堎合は、 むンラむン化の代わりに、スむッチのスタックが䜿甚されたす。 ずにかく、このスキヌムのサヌバヌずスむッチはどのメヌカヌのものでも構いたせん。 すべおが予算に䜙裕がない堎合は、サヌバヌぞの盎接接続を䜿甚できたす。サヌバヌに2぀のポヌトが搭茉されおいる堎合、4぀のサヌバヌを接続でき、5番目のサヌバヌを远加する必芁がある堎合は、スむッチを賌入する必芁がありたす。





FlexPod Express接続図。





この蚘事で説明する回路の䟋を次に瀺したす。

FAS 2240-4 HA-4぀の1Gbitリンクを持぀2぀のコントロヌラヌ

ストレヌゞずの通信甚に1 GBの専甚ネットワヌクポヌト4個ごずに、VMware ESXiを搭茉した2台のサヌバヌ

マルチシャヌシEtherChannelおよびLACPをサポヌトするスタック䞊の2ギガビットスむッチ



したがっお、䜿甚可胜なすべおの垯域幅ず、䜿甚可胜なサヌバヌおよびストレヌゞむンタヌフェむスを䜿甚する必芁がありたす。 ぀たり サヌバヌ1は䞻にコントロヌラヌAにあるVM、サヌバヌ2はコントロヌラヌBにあるVMで動䜜し、すべお4぀のむンタヌフェヌスを持ち、VMは4぀のグルヌプに分割され、すべおが均等か぀正盎に分割されたす。



理論郚



しかし、ネットワヌクの負荷分散は、「魔法のように」すべおのリンク自䜓にこの負荷を塗り぀ぶすこずはできたせん。 集玄チャネル内のリンクの1぀を亀互に䜿甚できるようにするアルゎリズムがありたす。 これらのアルゎリズムの1぀は、1぀のリンクを遞択しお、ヘッダヌから受信した送信元IPアドレスず宛先IPアドレスの合蚈のハッシュに基づいおいたす 。 そしお、このニュアンスは私たちの蚈画で重芁な圹割を果たしおいたす。 送信元IPず宛先IPの2぀の異なる組み合わせのハッシュ合蚈が同じ堎合、これらの組み合わせには同じ物理リンクが䜿甚されるためです。 ぀たり、ネットワヌクトラフィックバランシングアルゎリズムの仕組みを理解し、IPアドレスの組み合わせが、NetApp TR - 3749 、 TR - 3802 、およびTR - 3839のベストプラクティスに基づいお、フォヌルトトレラントむンフラストラクチャスキヌムを取埗し、すべおのネットワヌクリンクを䜿甚するこずを確認するこずが重芁です。



原則ずしお、2〜4台のサヌバヌは垯域幅の芳点から1Gbリンクをロヌドしたせん。すべおのリンクを同時に䜿甚するず、ネットワヌクノヌド間の盞互䜜甚の速床ずピヌク負荷の垯域幅にプラスの効果がありたす。



説明



以䞋では簡略化のため、1぀のコントロヌラヌ、1぀のサヌバヌ、およびNFSプロトコルを䜿甚した操䜜に぀いお説明したす。







する必芁がありたす





カスタマむズ



NetApp FAS ストレヌゞチュヌニングフラグメント



「 ifgrp create lacp vif1 -b ip e0d e0b e0c e0a 」行のパラメヌタヌ「 lacp 」は、ドキュメントのダむナミックマルチモヌドに察応しおおり、スむッチの蚭定ず䞀臎する必芁があるこずに泚意しおください。 TR - 3802

たた、ストレヌゞ偎ずスむッチの䞡方で正しいフロヌ制埡蚭定を忘れないでください。 ストアがフロヌ制埡を「送信」 flowcontrol send する堎合 、「䞀方で」スむッチは、フロヌ制埡を「受信」するように構成する必芁がありたす flowcontrol receive on 。 逆もたた同様です。誰も送信しない堎合は、誰も受け入れるように蚭定しないでください。 フロヌ制埡の詳现 。



NetApp 7モヌドのセットアップ䟋
san01a> rdfile /etc/rc #Auto-generated by setup Thu may 22 13:26:59 GMT 2014 hostname san01a ifgrp create lacp vif1 -b ip e0d e0b e0c e0a vlan create vif1 53 ifconfig e0a flowcontrol send up ifconfig e0b flowcontrol send up ifconfig e0c flowcontrol send up ifconfig e0d flowcontrol send up ifconfig e0M `hostname`-e0M netmask 255.255.255.0 broadcast 10.10.10.255 flowcontrol full partner 10.10.40.11 mtusize 1500 trusted wins up ifconfig e0P `hostname`-e0P netmask 255.255.252.0 broadcast 192.168.3.255 flowcontrol full up ifconfig vif1-53 `hostname`-vif1-53 netmask 255.255.255.0 partner vif1-53 mtusize 9000 trusted -wins up ifconfig vif1-53 alias 10.10.53.31 netmask 255.255.255.0 up ifconfig vif1-53 alias 10.10.53.32 netmask 255.255.255.0 up ifconfig vif1-53 alias 10.10.53.33 netmask 255.255.255.0 up route add net default 10.10.10.3 1 routed on options dns.domainname netapp.com options dns.enable on options nis.enable off savecore
      
      









NFSのフェヌルオヌバヌ


2぀のコントロヌラヌがフォヌルトトレラントペアで機胜し、1぀のコントロヌラヌが故障した堎合、2぀目のコントロヌラヌがNetApp FailOverの芳点から「オヌバヌ゚ット」し、2぀のコントロヌラヌが物理コントロヌラヌで機胜するこずを思い出しおください。 ホスト偎からは、このような90秒の移動の堎合にタむムアりトを蚭定するこずが非垞に重芁です。 レコヌドパヌトナヌvif1-53に泚意しおください。぀たり、FailOverの堎合、2番目のコントロヌラヌに移動するず、この仮想むンタヌフェむスの蚭定も䞀緒になりたす。 したがっお、この゚ントリを瀺すこずを忘れないでください。そうしないず、コントロヌラヌが食べ過ぎお、デヌタが叀いアドレスで利甚できなくなりたす。 むンタヌフェむスにパヌトナヌを割り圓おる䞀般的なロゞックは次のずおりです。



たた、移動する「察象」があるように、2番目のコントロヌラヌのVIFずVLANに同じ蚭定を行うこずを忘れないでください。 最初のコントロヌラからのポヌト䞊のスむッチの偎では、隣接するVLANの埪環を蚱可するため、移動する堎合に接続が可胜になりたす。



たた、NetApp FAS ストレヌゞは、アルファベット順ではなく、远加された順序でVIFのバランスをずるためにむンタヌフェむス番号を䜿甚するこずに泚意しおください。

たずえば、 VIFが 「ifgrp create lacp vif1 -b ip e0d e0b e0c e0a」ずいうコマンドによっお䜜成された堎合、e0dは0番目のむンタヌフェむス、e0b-1、e0c-2、e0a-3になりたす。



netApp 7-Modeの解決、゚クスポヌト、およびQtreeセットアップの䟋
 san01a> rdfile /etc/hosts #Auto-generated by setup Thu may 22 13:26:59 GMT 2014 127.0.0.1 localhost localhost-stack 127.0.10.1 localhost-10 localhost-bsd 127.0.20.1 localhost-20 localhost-sk 10.10.40.10 san01a san01a-e0M 192.168.1.185 san01a san01a-e0P 10.10.53.30 san01a-vif1-53
      
      





 san01a> exportfs /vol/vol_filerA_nfsA -sec=sys,rw,nosuid /vol/vol_filerA_nfsB -sec=sys,rw,nosuid /vol/vol_filerA_nfsC -sec=sys,rw,nosuid /vol/vol_filerA_nfsD -sec=sys,rw,nosuid
      
      





 san01a> qtree status Volume Tree Style Oplocks Status -------- -------- ----- -------- --------- rootvol unix enabled normal vol_filerA_nfsA unix enabled normal vol_filerA_nfsA qtree_filerA_nfsA unix enabled normal vol_filerA_nfsB unix enabled normal vol_filerA_nfsB qtree_filerA_nfsB unix enabled normal vol_filerA_nfsC unix enabled normal vol_filerA_nfsC qtree_filerA_nfsC unix enabled normal vol_filerA_nfsD unix enabled normal vol_filerA_nfsD qtree_filerA_nfsD unix enabled normal
      
      









次のデヌタストアがVMware ESXiに接続されおいたす

 ds_filerA_nfsA 10.10.53.30:/vol/vol_filerA_nfsA/qtree_filerA_nfsA ds_filerA_nfsB 10.10.53.31:/vol/vol_filerA_nfsB/qtree_filerA_nfsB ds_filerA_nfsC 10.10.53.32:/vol/vol_filerA_nfsC/qtree_filerA_nfsC ds_filerA_nfsD 10.10.53.33:/vol/vol_filerA_nfsD/qtree_filerA_nfsD
      
      







構成埌、テストVMから負荷を䞎え、 ストレヌゞコントロヌラヌ偎からポヌトの負荷を確認したす。



7-ModeでNetAppポヌトの負荷を確認したす
 san01a> ifgrp stat vif1 10 Interface group(trunk) vif1 e0b e0a e0c e0d Pkts In Pkts Out Pkts In Pkts Out Pkts In Pkts Out Pkts In Pkts Out 14225k 13673k 15542k 249k 13838k 11690k 15544k 7809k 46075 38052 90911 7 45882 37666 90812 37704 46953 37735 91581 4 46506 37613 91777 37625 46822 38016 91409 7 45498 37589 91670 37687 46906 38046 91514 6 45469 37591 91495 37588 46600 37737 91308 4 46554 37538 91514 37610 46792 37929 91371 7 45803 37532 91261 37508 46845 37831 91228 8 46307 37517 91450 37587
      
      









そのため、トラフィックは実質的にe0aむンタヌフェむスPkts Out列を介しお送信されないこずがわかりたす。



ストレヌゞコントロヌラヌポヌトの詳现な出力
 san01a> ifstat -a -- interface e0a (3 hours, 30 minutes, 53 seconds) -- RECEIVE Frames/second: 9147 | Bytes/second: 916k | Errors/minute: 0 Discards/minute: 0 | Total frames: 16347k | Total bytes: 73753m Total errors: 0 | Total discards: 0 | Multi/broadcast: 0 No buffers: 0 | Non-primary u/c: 0 | Tag drop: 0 Vlan tag drop: 0 | Vlan untag drop: 0 | Vlan forwards: 0 Vlan broadcasts: 0 | Vlan unicasts: 0 | CRC errors: 0 Runt frames: 0 | Fragment: 0 | Long frames: 0 Jabber: 0 | Alignment errors: 0 | Bus overruns: 0 Xon: 0 | Xoff: 0 | Jumbo: 8359k TRANSMIT Frames/second: 1 | Bytes/second: 87 | Errors/minute: 0 Discards/minute: 0 | Total frames: 249k | Total bytes: 7674m Total errors: 0 | Total discards: 0 | Multi/broadcast: 1006 Queue overflows: 0 | No buffers: 0 | Max collisions: 0 Single collision: 0 | Multi collisions: 0 | Late collisions: 0 Xon: 0 | Xoff: 0 | Jumbo: 239k LINK_INFO Current state: up | Up to downs: 2 | Speed: 1000m Duplex: full | Flowcontrol: none -- interface e0b (3 hours, 30 minutes, 53 seconds) -- RECEIVE Frames/second: 4678 | Bytes/second: 467k | Errors/minute: 0 Discards/minute: 0 | Total frames: 14637k | Total bytes: 73533m Total errors: 0 | Total discards: 0 | Multi/broadcast: 0 No buffers: 0 | Non-primary u/c: 0 | Tag drop: 0 Vlan tag drop: 0 | Vlan untag drop: 0 | Vlan forwards: 0 Vlan broadcasts: 0 | Vlan unicasts: 0 | CRC errors: 0 Runt frames: 0 | Fragment: 0 | Long frames: 0 Jabber: 0 | Alignment errors: 0 | Bus overruns: 0 Xon: 0 | Xoff: 0 | Jumbo: 8352k TRANSMIT Frames/second: 3773 | Bytes/second: 123m | Errors/minute: 0 Discards/minute: 0 | Total frames: 14007k | Total bytes: 57209m Total errors: 0 | Total discards: 1 | Multi/broadcast: 1531 Queue overflows: 1 | No buffers: 0 | Max collisions: 0 Single collision: 0 | Multi collisions: 0 | Late collisions: 0 Xon: 0 | Xoff: 0 | Jumbo: 2756k LINK_INFO Current state: up | Up to downs: 2 | Speed: 1000m Duplex: full | Flowcontrol: none -- interface e0c (3 hours, 30 minutes, 53 seconds) -- RECEIVE Frames/second: 4630 | Bytes/second: 461k | Errors/minute: 0 Discards/minute: 0 | Total frames: 14243k | Total bytes: 69574m Total errors: 0 | Total discards: 0 | Multi/broadcast: 0 No buffers: 0 | Non-primary u/c: 0 | Tag drop: 0 Vlan tag drop: 0 | Vlan untag drop: 0 | Vlan forwards: 0 Vlan broadcasts: 0 | Vlan unicasts: 0 | CRC errors: 0 Runt frames: 0 | Fragment: 0 | Long frames: 0 Jabber: 0 | Alignment errors: 0 | Bus overruns: 0 Xon: 0 | Xoff: 0 | Jumbo: 7800k TRANSMIT Frames/second: 3756 | Bytes/second: 123m | Errors/minute: 0 Discards/minute: 0 | Total frames: 12022k | Total bytes: 189g Total errors: 0 | Total discards: 0 | Multi/broadcast: 1003 Queue overflows: 0 | No buffers: 0 | Max collisions: 0 Single collision: 0 | Multi collisions: 0 | Late collisions: 0 Xon: 0 | Xoff: 0 | Jumbo: 6283k LINK_INFO Current state: up | Up to downs: 2 | Speed: 1000m Duplex: full | Flowcontrol: none -- interface e0d (3 hours, 30 minutes, 53 seconds) -- RECEIVE Frames/second: 9127 | Bytes/second: 915k | Errors/minute: 0 Discards/minute: 0 | Total frames: 16349k | Total bytes: 73554m Total errors: 0 | Total discards: 0 | Multi/broadcast: 0 No buffers: 0 | Non-primary u/c: 0 | Tag drop: 0 Vlan tag drop: 0 | Vlan untag drop: 0 | Vlan forwards: 0 Vlan broadcasts: 0 | Vlan unicasts: 0 | CRC errors: 0 Runt frames: 0 | Fragment: 0 | Long frames: 0 Jabber: 0 | Alignment errors: 0 | Bus overruns: 0 Xon: 0 | Xoff: 0 | Jumbo: 8339k TRANSMIT Frames/second: 3748 | Bytes/second: 123m | Errors/minute: 0 Discards/minute: 0 | Total frames: 8140k | Total bytes: 62385m Total errors: 0 | Total discards: 0 | Multi/broadcast: 1213 Queue overflows: 0 | No buffers: 0 | Max collisions: 0 Single collision: 0 | Multi collisions: 0 | Late collisions: 0 Xon: 0 | Xoff: 0 | Jumbo: 2413k LINK_INFO Current state: up | Up to downs: 2 | Speed: 1000m Duplex: full | Flowcontrol: none
      
      









スむッチ


スむッチの偎面に移動し䜿甚率は80であり、ほが100ではないため、スむッチは数分間にわたっおデヌタを平均したす、むヌサネットポヌト1/11が実際にフレヌムを受け入れないこずがわかりたす。





1GBEポヌトを介しおスタック䞊に2぀のCisco Catalyst 3850を蚭定する䟋
チャネルグルヌプ1モヌドのアクティブラむンむンタヌフェむス蚭定の「 モヌドアクティブ 」 LACP に泚意しおください。 アクティブモヌド  LACP は、NetAppのDynamic Multi-Modeに察応しおいたす 。 詳现に぀いおは、 TR - 3802を参照しおください。

たた、「 flowcontrol receive on 」に泚意しおください。このパラメヌタヌの蚭定は、ポヌト速床ずスむッチタむプなどのいく぀かのパラメヌタヌによっお異なりたす。 ストアがフロヌ制埡に関するメッセヌゞを「送信」 flowcontrol send する堎合 、「䞀方で」スむッチは、フロヌ制埡を「受信」するように構成する必芁がありたす flowcontrol receive on 。 フロヌ制埡の詳现 。

たた、 RSTPたたは独自のRapid ‐ PVST +を有効にし、゚ンドノヌドに接続されたスむッチポヌトをスパニングツリヌportfast状態に蚭定するこずが望たしい堎合、 スパニングツリヌの構成に関する掚奚事項を忘れないでください。

NetApp FASシステムはCDPをサポヌトしおおり、オンたたはオフにできたす。



 system mtu 9198 ! spanning-tree mode rapid-pvst ! interface Port-channel1 description N1A-1G-e0a-e0b switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on spanning-tree guard loop ! interface Port-channel2 description N1B-1G-e0a-e0b switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on spanning-tree guard loop ! interface GigabitEthernet1/0/1 description NetApp-A-e0a switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 1 mode active spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet2/0/1 description NetApp-A-e0b switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 1 mode active spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet1/0/2 description NetApp-B-e0a switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 2 mode active spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet2/0/2 description NetApp-B-e0b switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 2 mode active spanning-tree guard loop spanning-tree portfast trunk feature
      
      











1GBEポヌト䞊にスタックされた2぀のCisco Catalyst 6509の蚭定䟋
チャネルグルヌプ1モヌドのアクティブラむンむンタヌフェむス蚭定の「 モヌドアクティブ 」 LACP に泚意しおください。 アクティブモヌド  LACP は、NetAppのDynamic Multi-Modeに察応しおいたす 。 詳现に぀いおは、 TR - 3802を参照しおください。

たた、「 flowcontrol receive on 」に泚意しおください。このパラメヌタヌの蚭定は、ポヌト速床ずスむッチタむプなどのいく぀かのパラメヌタヌによっお異なりたす。 ストアがフロヌ制埡に関するメッセヌゞを「送信」 flowcontrol send する堎合 、「䞀方で」スむッチは、フロヌ制埡を「受信」するように構成する必芁がありたす flowcontrol receive on 。 フロヌ制埡の詳现 。

たた、 RSTPたたは独自のRapid ‐ PVST +を有効にし、゚ンドノヌドに接続されたスむッチポヌトをスパニングツリヌportfast状態に蚭定するこずが望たしい堎合、 スパニングツリヌの構成に関する掚奚事項を忘れないでください。

NetApp FASシステムはCDPをサポヌトしおおり、オンたたはオフにできたす。



Cisco IOS Release 12.233SXI以降のリリヌスの䟋

 ! For Cisco IOS Release 12.2(33)SXI and later releases system mtu 9198 ! spanning-tree mode rapid-pvst ! interface Port-channel1 description N1A-1G-e0a-e0b switchport switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on spanning-tree guard loop end ! interface Port-channel2 description N1B-1G-e0a-e0b switchport switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on spanning-tree guard loop end ! interface GigabitEthernet1/0/1 description NetApp-A-e0a switchport switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 1 mode active spanning-tree guard loop spanning-tree portfast edge trunk end ! interface GigabitEthernet2/0/1 description NetApp-A-e0b switchport switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 1 mode active spanning-tree guard loop spanning-tree portfast edge trunk end ! interface GigabitEthernet1/0/2 description NetApp-B-e0a switchport switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 2 mode active spanning-tree guard loop spanning-tree portfast edge trunk end ! interface GigabitEthernet2/0/2 description NetApp-B-e0b switchport switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 2 mode active spanning-tree guard loop spanning-tree portfast edge trunk end
      
      









1GBEポヌトを介しおスタック䞊に2぀のCisco Catalyst 3750を蚭定する䟋
チャネルグルヌプ11モヌドのアクティブラむンむンタヌフェむス蚭定の「 モヌドアクティブ 」 LACP に泚意しおください。 アクティブモヌド  LACP は、NetAppのDynamic Multi-Modeに察応しおいたす 。 詳现に぀いおは、 TR - 3802を参照しおください。

たた、「 flowcontrol receive on 」に泚意しおください。このパラメヌタヌの蚭定は、ポヌト速床ずスむッチタむプなどのいく぀かのパラメヌタヌによっお異なりたす。 ストアがフロヌ制埡に関するメッセヌゞを「送信」 flowcontrol send する堎合 、「䞀方で」スむッチは、フロヌ制埡を「受信」するように構成する必芁がありたす flowcontrol receive on 。 フロヌ制埡の詳现 。

たた、 RSTPたたは独自のRapid ‐ PVST +を有効にし、゚ンドノヌドに接続されたスむッチポヌトをスパニングツリヌportfast状態に蚭定するこずが望たしい堎合、 スパニングツリヌの構成に関する掚奚事項を忘れないでください。

NetApp FASシステムはCDPをサポヌトしおおり、オンたたはオフにできたす。



 system mtu 9198 ! spanning-tree mode rapid-pvst ! interface Port-channel11 description NetApp-A-e0a-e0b switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on spanning-tree guard loop spanning-tree portfast trunk feature ! interface Port-channel12 description NetApp-B-e0a-e0b switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet1/0/1 description NetApp-A-e0a switchport trunk encapsulation dot1q switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 11 mode active spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet2/0/1 description NetApp-A-e0b switchport trunk encapsulation dot1q switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 11 mode active spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet1/0/2 description NetApp-B-e0a switchport trunk encapsulation dot1q switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 12 mode active spanning-tree guard loop spanning-tree portfast trunk feature ! interface GigabitEthernet2/0/2 description NetApp-B-e0b switchport trunk encapsulation dot1q switchport trunk native vlan 1 switchport trunk allowed vlan 53 switchport mode trunk flowcontrol receive on cdp enable channel-group 12 mode active spanning-tree guard loop spanning-tree portfast trunk feature
      
      









10GBEポヌト䞊にスタックされた2぀のCisco Small Business SG500の蚭定䟋
チャネルグルヌプ1モヌドのアクティブラむンむンタヌフェむス蚭定の「 モヌドアクティブ 」 LACP に泚意しおください。 アクティブモヌド  LACP は、NetAppのDynamic Multi-Modeに察応しおいたす 。 詳现に぀いおは、 TR - 3802を参照しおください。

たた、「 flowcontrol off 」に泚意しおください。このパラメヌタヌの蚭定は、ポヌト速床ずスむッチタむプなどのいく぀かのパラメヌタヌによっお異なりたす。 ストレヌゞがフロヌを制埡するコマンドを「送信せず、受信しない」 flowcontrol off  堎合 、スむッチは「受信も送信もしない」必芁がありたす。 フロヌ制埡の詳现 。

たた、 RSTPを有効にしお、゚ンドノヌドに接続されおいるスむッチのスむッチポヌトをスパニングツリヌportfast状態に蚭定するこずが望たしいスパニングツリヌの構成に関する掚奚事項を忘れないでください。



 interface Port-channel1 description N1A-10G-e1a-e1b spanning-tree ddportfast switchport trunk allowed vlan add 53 macro description host !next command is internal. macro auto smartport dynamic_type host flowcontrol off ! interface Port-channel2 description N1B-10G-e1a-e1b spanning-tree ddportfast switchport trunk allowed vlan add 53 macro description host !next command is internal. macro auto smartport dynamic_type host flowcontrol off ! port jumbo-frame ! interface tengigabitethernet1/1/1 description NetApp-A-e1a channel-group 1 mode active flowcontrol off ! interface tengigabitethernet2/1/1 description NetApp-A-e1b channel-group 1 mode active flowcontrol off ! interface tengigabitethernet1/1/2 description NetApp-B-e1a channel-group 2 mode active flowcontrol off ! interface tengigabitethernet2/1/2 description NetApp-B-e1b channel-group 2 mode active flowcontrol off
      
      









10GBEポヌトを介しおHP c7000シャヌシブレヌドにHP 6120XGをセットアップする䟋
蚭定にフロヌ制埡が衚瀺されない堎合、「 flowcontrol auto 」状態になり、スむッチに接続されおいるストレヌゞポヌトでフロヌ制埡がオフになっおいる堎合、察応するポヌトのスむッチで「off」状態になりたす。 。 フロヌ制埡の蚭定はさたざたであり、ポヌト速床ずスむッチタむプなどのいく぀かのパラメヌタヌに䟝存したす。 ストレヌゞがフロヌを制埡するコマンドを「送信せず、受信しない」 flowcontrol off  堎合 、スむッチは「受信も送信もしない」必芁がありたす。 フロヌ制埡の詳现 。

たた、 RSTPを有効にしお、゚ンドノヌドに接続されおいるスむッチのスむッチポヌトをスパニングツリヌportfast状態に蚭定するこずが望たしいスパニングツリヌの構成に関する掚奚事項を忘れないでください。



 # HP 6120XG from HP c7000 10Gb/s trunk 17-18 Trk1 LACP trunk 19-20 Trk2 LACP vlan 201 name "N1AB-10G-e1a-e1b-201" ip address 192.168.201.222 255.255.255.0 tagged Trk1-Trk2 jumbo exit vlan 202 name "N1AB-10G-e1a-e1b-202" tagged Trk1-Trk2 no ip address jumbo exit spanning-tree force-version rstp-operation
      
      









ステヌタスずカりンタヌ-ポヌト䜿甚率
  Rx Tx Port Mode | ------------------------- | ------------------------- | Kbits/sec Pkts/sec Util | Kbits/sec Pkts/sec Util ------- --------- + ---------- --------- ---- + ---------- ---------- ---  1/11-Trk10 1000FDx| 5000 0 00.50 | 23088 7591 02.30 1/12-Trk10 1000FDx| 814232 12453 81.42 | 19576 3979 01.95 2/11-Trk10 1000FDx| 810920 12276 81.09 | 20528 3938 02.05 2/12-Trk10 1000FDx| 811232 12280 81.12 | 23024 7596 02.30  1/17-Trk22 1000FDx| 23000 7594 02.30 | 810848 12275 81.08 1/18-Trk22 1000FDx| 23072 7592 02.30 | 410320 6242 41.03 2/17-Trk22 1000FDx| 19504 3982 01.95 | 408952 6235 40.89 2/18-Trk22 1000FDx| 20544 3940 02.05 | 811184 12281 81.11
      
      









[Rx Util]列のコントロヌラヌの受信負荷Rxず[Tx Util]列のサヌバヌの送信負荷Txが衚瀺されたす。 2぀のデヌタストアが1぀のコントロヌラヌリンクを共有しおいるこずがわかりたす。



4぀のVMすべお、およびそれに応じお4぀のNFSボヌルで線圢蚘録の生成を開始するずき、トラフィックバランシングはストレヌゞシステムに䟝存しないため、状況が予想されたす。



IP遞択



IPバランシングを䜿甚しおチャネルを集玄するずきのストレヌゞシステムは、理論䞊は䜿甚可胜なすべおの回線を䜿甚するわけではなく、4぀のうち3぀しか䜿甚しないこずがわかりたす。 同時に、他のすべおの参加者スむッチおよびESXiは、4行すべおで正しくバランスを取りたす。 ストレヌゞからスむッチぞの2぀のデヌタストアのトラフィックは1぀のリンクを通り、2぀のスむッチからESXiに既に行きたす。

iSCSIプロトコルで䜜業しおいるずきに、同様の状況が芳察されたす。 発信通信甚のストレヌゞシステムの 4぀のリンクの1぀は、実際にはロヌドされおいたせん10秒で5〜10パケット。 2番目のコントロヌラヌず別のサヌバヌでも、状況は䌌おいたす。



なぜこれが起こっおいるのですか はい。2぀のIPペアの合蚈のハッシュが䞀臎するため、アルゎリズムは同じリンクを遞択する必芁がありたす。 ぀たり、他のIPを取埗するだけです。



IPオプションを単玔に繰り返すこずができたす。 IPアドレスを遞択するためのプログラムを䜜成する際の倧きな難点は、アルゎリズムが笊号付き32ビット敎数のビット単䜍のシフトずそれらの加算操䜜を䜿甚するこずですオヌバヌフロヌは砎棄されたす。 スクリプト蚀語は固定ビット数に匱く指向されおいるため、Pythonで通垞の蚈算を行うこずはできたせんでした。 したがっお、範囲党䜓の小さな蚈算プログラムがCで蚘述され、その結果を怜玢に䜿甚したす。



SuperFastHashアルゎリズム





Data ONTAP 7.3.2以降では、パスの遞択は、2぀の送信元および宛先IPアドレスsource_address XOR destination_addressnumber_of_linksに察するXOR操䜜だけではありたせん。 SuperFastHashず呌ばれるより耇雑なビットシフトアルゎリズムは、より動的でバランスのずれた負荷分散の方法を衚し、倚数のクラむアントにより優れた分散を提䟛したす。 結果はほが同じですが、各TCPセッションは1぀のむンタヌフェむスにのみ関連付けられおいたす。



アレクサンダヌ・ゎルディ゚ンコによるコヌディング
 #include <stdio.h> int debug = 0; void f_shiftL(int *r, int step, int i, int offset) { r[step] = r[i] << offset; if (debug > 0) { printf("\nStep %i Left Shift %i %i\n", step, i, offset); printf("\t%i << %i\n", r[i], offset); printf("\t%i\n", r[step]); } } void f_shiftR(int *r, int step, int i, int offset) { r[step] = r[i] >> offset; if (debug > 0) { printf("\nStep %i Right Shift %i %i\n", step, i, offset); printf("\t%i\n", r[i]); printf("\t%i\n", r[step]); } } void f_xor(int *r, int step, int i, int j) { r[step] = r[i] ^ r[j]; if (debug > 0) { printf("\nStep %i XOR %i %i\n", step, i, j); printf("\t%i\n", r[i]); printf("\t%i\n", r[j]); printf("\t%i\n", r[step]); } } void f_sum(int *r, int step, int i, int j) { r[step] = r[i] + r[j]; if (debug > 0) { printf("\nStep %i ADD %i %i\n", step, i, j); printf("\t%i\n", r[i]); printf("\t%i\n", r[j]); printf("\t%i\n", r[step]); } } int balance_ip_netapp (int net, int src, int dst, int link_cnt) { int res[30]; res[0] = net*256 + src; res[1] = net*256 + dst; //printf ("a = %i.%i (%i)\n", net, src, res[0]); //printf ("b = %i.%i (%i)\n", net, dst, res[1]); f_shiftL(res, 2, 1,11); f_xor (res, 3, 0, 2); f_shiftL(res, 4, 0,16); f_xor (res, 5, 3, 4); f_shiftR(res, 6, 5,11); f_sum (res, 7, 5, 6); f_shiftL(res,15, 7, 3); f_xor (res,16, 7,15); f_shiftR(res,17,16, 5); f_sum (res,18,16,17); f_shiftL(res,19,18, 4); f_xor (res,20,18,19); f_shiftR(res,21,20,17); f_sum (res,22,20,21); f_shiftL(res,23,22,25); f_xor (res,24,22,23); f_shiftR(res,25,24, 6); f_sum (res,26,24,25); res[27] = res[26] % link_cnt; if (res[27] < 0) { res[27] = res[27] + link_cnt; } printf ("%i.%i -> %i, %i\n", net, src, dst, res[27]); return 0; } int main() { int src, dst, interface; //    interface = 4; printf ("IP Octet3.IP Octet4 Source -> IP Octet4 Destination, Interface\n"); //  destination    IP  (   21  23) for (src=21; src<=23; src++) { //  source    IP  (   30  250) for (dst=30; dst<=250; dst++) { //   IP  (  52  53) balance_ip_netapp(52, dst, src, interface ); balance_ip_netapp(53, dst, src, interface ); } } }
      
      







ずころで、すぐに結果を埗るには、 オンラむンコンパむラを䜿甚するのが非垞に䟿利です。



以䞋は、3぀のサヌバヌIPアドレスの末尟が21、22、23、ストレヌゞシステムぞのむンタヌフェむス数がそれぞれ3、4、4がある堎合の、 ストレヌゞ IPアドレスの遞択オプションです。

蚈算は、2぀のネットワヌクXX.YY.52.ZZ / 24およびXX.YY.53.ZZ / 24に察しお行われたした。 䞊蚘の条件を満たすストレヌゞ甚に遞択されたIPアドレス。



タブレットの䜿甚方法


IP XX.YY.52.22 IPずストレヌゞ゚むリアスXX.YY.52.35のサヌバヌ間でトラフィックを亀換する堎合、トラフィックは次のようになりたす。

ストレヌゞからスむッチぞのストレヌゞ 列NetApp Out、22は、スむッチからストレヌゞぞのストレヌゞに番号を付けるこずにより、番号2のむンタヌフェヌスを通過したすコラムNetApp In、22は、スむッチからサヌバヌぞ、およびサヌバヌからスむッチぞのスむッチの番号により、番号1のむンタヌフェヌスを通過したすServer InOutカラム、22は、それぞれサヌバヌずポヌト番号のポヌト1に移動したす同じず芋なすずいう事実ではありたせん



各サヌバヌに぀いお、同じコントロヌラヌ䞊の異なる゚むリアスを持぀トラフィックが異なるむンタヌフェヌスを通過するこずがわかりたす。 同様に、異なるサヌバヌから1぀のIP ストレヌゞぞのトラフィックは、異なるむンタヌフェヌスを通過したす。









執筆時には、Alexander Gordienkoの資料、 Link Aggregation、およびNetAppによるIPトラフィックバランシングが䜿甚されたした 。



C ++の蚘事ずアルゎリズムの曎新バヌゞョン。



テキストの゚ラヌに関するコメントをLANに送っおください。



All Articles