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
@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?
"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.
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.
If this post resolved your issue, help others by selecting ACCEPT AS SOLUTION or adding a KUDO. Cannot find the answer you need? No need to open a support case - just CHAT and we’ll handle it for you.