SMB-MC only works between a client and a particular node. In other words, for the purposes of load balancing I/O, the client will only "know" about the IP addresses on the node it is connected to, and will not use other nodes' IP addresses in its balancing logic. Additionally, when a share is mapped from a client to a node, only a single TCP connection will be seen regardless of the presence of Multi-channel. To see SMB-MC in action, you'll have to generate some I/O and then look at either TCP connection via netstat, and/or client statistics via 'isi statistics client' ('isi smb sessions' will always show just a single connection).
Here's an example from my lab. 192.168.200.112 and 192.168.200.136 are the two 10G IPs on my Win2012 client, and 192.168.200.31 and 192.168.200.34 are the two 10G IPs on the Isilon node I connected to. All four NICs are connected to the same flat 10G network.
After initially mapping a share from the client, I see this:
x200-1# netstat -an | grep EST | grep '.445'
tcp4 0 0 192.168.200.31.445 192.168.200.136.59615 ESTABLISHED
and
x200-1# isi smb session list
Computer User
---------------------
192.168.200.136 root
---------------------
Total: 1
However, initiating a large-file copy on the client from that node, I see this:
x200-1# netstat -an | grep EST | grep '.445'
tcp4 0 0 192.168.200.34.445 192.168.200.112.59622 ESTABLISHED
tcp4 0 0 192.168.200.34.445 192.168.200.112.59621 ESTABLISHED
tcp4 0 0 192.168.200.34.445 192.168.200.112.59620 ESTABLISHED
tcp4 0 0 192.168.200.34.445 192.168.200.112.59619 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59618 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59617 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59616 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59615 ESTABLISHED
and
x200-1# isi statistics client
Ops In Out TimeAvg Node Proto Class UserName LocalName RemoteName
You can see the I/O being load balanced in the 'netstat' and 'isi statistics' output between Isilon IPs .31 and .34 and client IPs .112 and .136, even though there's still technically a single SMB session between that client and that node. That's SMB-MC at work.
So you might want to try looking at your statistics again when I/O is occurring (and you might want to also look at 'isi statistics client' from our CLI).
As for the balancing of SmartConnect amongst nodes, that might be a separate issue.
You can see the I/O being load balanced in the 'netstat' and 'isi statistics' output between Isilon IPs .31 and .34 and client IPs .112 and .136, even though there's still technically a single SMB session between that client and that node. That's SMB-MC at work.
Ok, thank you kipcranford.
That's it. Nearly the same behaviour as at our cluster. One SMB session for OneFS but 1x4 TCP (or 2x 4?) connections to one single node from/to one single client.
kipcranford
125 Posts
0
February 24th, 2016 09:00
Hi Phil,
SMB-MC only works between a client and a particular node. In other words, for the purposes of load balancing I/O, the client will only "know" about the IP addresses on the node it is connected to, and will not use other nodes' IP addresses in its balancing logic. Additionally, when a share is mapped from a client to a node, only a single TCP connection will be seen regardless of the presence of Multi-channel. To see SMB-MC in action, you'll have to generate some I/O and then look at either TCP connection via netstat, and/or client statistics via 'isi statistics client' ('isi smb sessions' will always show just a single connection).
Here's an example from my lab. 192.168.200.112 and 192.168.200.136 are the two 10G IPs on my Win2012 client, and 192.168.200.31 and 192.168.200.34 are the two 10G IPs on the Isilon node I connected to. All four NICs are connected to the same flat 10G network.
After initially mapping a share from the client, I see this:
x200-1# netstat -an | grep EST | grep '.445'
tcp4 0 0 192.168.200.31.445 192.168.200.136.59615 ESTABLISHED
and
x200-1# isi smb session list
Computer User
---------------------
192.168.200.136 root
---------------------
Total: 1
However, initiating a large-file copy on the client from that node, I see this:
x200-1# netstat -an | grep EST | grep '.445'
tcp4 0 0 192.168.200.34.445 192.168.200.112.59622 ESTABLISHED
tcp4 0 0 192.168.200.34.445 192.168.200.112.59621 ESTABLISHED
tcp4 0 0 192.168.200.34.445 192.168.200.112.59620 ESTABLISHED
tcp4 0 0 192.168.200.34.445 192.168.200.112.59619 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59618 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59617 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59616 ESTABLISHED
tcp4 0 0 192.168.200.31.445 192.168.200.136.59615 ESTABLISHED
and
x200-1# isi statistics client
Ops In Out TimeAvg Node Proto Class UserName LocalName RemoteName
----------------------------------------------------------------------------------------
231.0 27.0k 161.3M 5674.4 1 smb2 read root 192.168.200.31 192.168.200.136
229.3 26.8k 160.8M 5659.8 1 smb2 read root 192.168.200.34 192.168.200.112
----------------------------------------------------------------------------------------
Total: 2
x200-1# isi smb session list
Computer User
---------------------
192.168.200.136 root
---------------------
Total: 1
You can see the I/O being load balanced in the 'netstat' and 'isi statistics' output between Isilon IPs .31 and .34 and client IPs .112 and .136, even though there's still technically a single SMB session between that client and that node. That's SMB-MC at work.
So you might want to try looking at your statistics again when I/O is occurring (and you might want to also look at 'isi statistics client' from our CLI).
As for the balancing of SmartConnect amongst nodes, that might be a separate issue.
philippspohr
1 Rookie
•
107 Posts
0
February 24th, 2016 23:00
Ok, thank you kipcranford.
That's it. Nearly the same behaviour as at our cluster. One SMB session for OneFS but 1x4 TCP (or 2x 4?) connections to one single node from/to one single client.