ONTAP Hardware
ONTAP Hardware
Hi Everyone ,
Just want to ask why is that the input of lacp packets is not balance for 2 ports? and what can we do to solve the issue?
Thanks,
Scott
default: transmit 'IP Load balancing', Ifgrp Type 'multi_mode', fail 'log'
lif1: 2 links, transmit 'IP Load balancing', Ifgrp Type 'lacp' fail 'default'
Ifgrp Status Up Addr_set
up:
e0b: state up, since 09Apr2015 12:45:37 (02:10:16)
mediatype: auto-1000t-fd-up
flags: enabled
active aggr, aggr port: e0a
input packets 701473, input bytes 302470990
input lacp packets 12663, output lacp packets 212566
output packets 754728, output bytes 1067802842
up indications 10, broken indications 7
drops (if) 0, drops (link) 1
indication: up at 09Apr2015 12:45:37
consecutive 0, transitions 17
e0a: state up, since 02Apr2015 21:51:27 (6+17:04:26)
mediatype: auto-1000t-fd-up
flags: enabled
active aggr, aggr port: e0a
input packets 1330436934, input bytes 139326254469
input lacp packets 19331, output lacp packets 19293
output packets 998858144, output bytes 2890679595869
up indications 2, broken indications 0
drops (if) 0, drops (link) 0
indication: up at 02Apr2015 21:51:27
consecutive 0, transitions 2
Hi,
The following are the common causes for misconfigured port channel groups:
The network switch is not configured correctly.
The cables from the storage controller NICs are connected to the wrong network switch ports.
The wrong ports are specified in the ifgrp configuration on the storage controller.
Cabling or hardware issue and/or bad Ethernet cable or switch port/module.
You can refer below kb article which discuss about troubleshooting of LACP port channel
https://kb.netapp.com/support/index?page=content&id=3013774&actp=search&viewlocale=en_US&searchid=1428903550631
You can also refer Technical Report TR-3802 for best practices on the configuration of LACP port channel groups
http://www.netapp.com/us/media/tr-3802.pdf
Thanks
@hariprak
Thanks for the reply. Base from the logs the state of the 2 ports are UP and input/output LACP packets are incrementing. I just want to know why is that its not balance and i want to know why it is happening. Did i missed a configuration on the NetApp side or the switch side?
e0b:
input lacp packets 12663, output lacp packets 212566
eoa:
input lacp packets 19331, output lacp packets 19293
thanks!
thanks for the reply! how can you interpret the logs? So you mean to say that there is a misconfiguration on the switch side? How can I check on this?
From the Data ONTAP network management Guide, at https://library.netapp.com/ecm/ecm_download_file/ECMP1368834 page #96,
"The Data ONTAP load balancing algorithm determines the member port to be used to transmit outbound traffic, and does not control how inbound frames are received. The switch determines the member (individual physical port) of its port channel group to be used for transmission, based on the load balancing algorithm configured in the switch's port channel group. Therefore, the switch configuration determines the member port (individual physical port) of the storage system to receive traffic. For more information about configuring the switch, see the documentation from your switch vendor."
There is some confusion as to how IP and MAC based load-balancing work.
The lacp vif in question uses an IP based load balancing, which uses an algorithm that determines a particular physical port in the ifgroup, to send packets to any given IP address at any pint in time. What that means is if you have hosts A, B, C and D talking to the storage controller, with an LACP vif comprised of e0a,e0b,e0c and e0d, chances are like, host A will always talk to e0a, host B to e0b and so on. So, if your host B is more talkative than others, e0b port will see more traffic than e0a.
Here is a very simple calculation that shows how this algorithm works.
Assume that we have a storage controller, whose e0a and e0b ports are aggregated into an LACP vif. e0a being the first port added to the vif, it gets an id 0, and e0b will have id 1.
Consider the IP of this vif is 192.168.0.10 and we have 2 hosts at 192.168.0.13 and 192.168.0.14
Lets take the last octet of the source IP (netapp) and destination IP (hostA) which would be 10 and 13.
Now, perform an XOR between 10 and 13 , which is 7.
Divide this number by the # of members in the Vif, (7 / 2 ) which gives result 3 with a reminder 1.
doing the same calculation for hostB : 10 XOR 14 = 4 . dividing 4 by 2 gives value 2 with reminder 0.
In this case, host A will always talk to port with ID 1 (which is e0b), and Host B will talk to port with ID 0 (e0a). All your other hosts will be distributed between these two ports based on the source/destination IP pair, and the #of ports in the vif.
Hope that was clear. As I mentioned earlier, This example is only for explaining the concept, if you really want to know the actual algorithm please have a look at this KB article. https://kb.netapp.com/support/index?page=content&id=1014277
The only load balancing method that can give a near-true load balancing is the round robin, (-b rr switch of ifgrp create command) However, it may cause out-of-order packet delivery and related problems.