Home Artists Posts Import Register

Content

This is the next video in the queue. We had enough leftover material from the "Troubleshooting SMB Multichannel" that I will turn it into an article with a bit more b-roll and powershell. Why SMBMultichannel? Well if you're on windows and you've got two NICs (even mismatched NICs) you can plug your computers in with multiple nics and copy files back and forth even faster than you were already. 

Please let us know your feedback!

Here's a preview of that article:

What is SMB Multichannel and Why Should I care?


Do you want to double your LAN speeds for file shares simply by plugging in 2/3/4 or more wires? Use windows machines? Then read up. Maybe I should make this a video. It is mentioned briefly when I review a Thecus product that implements multichannel in a slick way. 


SMBMultichannel is a protocol improvement to windows file sharing best found on Windows Server 2012R2 and Windows 8.1 and up. However recent improvements to Windows 10 have made it easier than ever to get SMBMultichannel working. What it does is let you use more than one network adapter (with more than one IP on your local subnet) simply by plugging in another network card. You don't have to do any software config (that's the promise allthrough it's not entirely true), does not require a special ethernet switch or any configuration on the switch at all, and also simultaneously lowers CPU uage. 


It is important to understand that SMBMultichannel has some hooks into important hardware stuff happening under the hood. If you aren't arware how it works under the hood, it will seem random as to when it works and when it doesn't. One of the things windows tries to do, if you hardware supports it, is something called Recieve Side Scaling. This isn't *just* increasing the buffer of packets that can be recieved before acknowledgements are sent (something sender + reciever have to agree on), but it is also about offloading interrupts to the CPU when events occur, like data buffer full, to a specific core on the CPU so that the other cores on the CPU can continue to work independently. 


When you run get-smbclientnetworkinterface for example, the RSS Capable line here may indicate false (for example on the i217/i218/i219v) even though the intel spec sheet says that RSS capable is true for this chipset. This leads to the somewhat humorous situation where when some motherboards that also implement the i210/i211 PCIe NIC onboard, that this nic is more functional in terms or RSS and interrupt offloading than the one provided "built-in" to the intel CPUs. This technology is called MSI-X. 

In the case of i219/i218/i217 chipsets, the core that handles the ethernet is essentially hard wired to one core; it cannot be remapped to other cores. So some would say that Intel saying this PHY being capable of RSS is misleading, wrong and has led to loads of heartburn and angst. It is a somewhat fixable situation in the case of gigabit though! 



In EARLIER scenarios, with the first versions of SMB 3.02, Windows 8, and Windows 2012, it was important that each nic be on its own TCP Subnet so that things like LM broadcast name-to-IP lookups returned different IPs (that is no longer the case). This was great, though, because it meant even the most rock-dumb-stupid ethernet adapters would work with multichannel -- no harwdare counterpart required! The recent Threshold updates to Windows 10 mean more of this is handled in the protocol and so DNS lookups and the like matter less than ever. It is still the case that you may be in a situation where your hardware is in a mode where it somewhat supports multichannel, but it doesn't work. So you have to be aware that there is this situation with No-RSS (which is really more properly named No MSI-x) which is a mode where you have some RSS support, but not complete RSS support, and it doesn't work. It does NOT auto fall back to this rock-dumb-simple mode (!) because it uses considerably more CPU overhead.


There isn't a single guide on the internet that explains this properly unless you've already got a lot of knowledge for how this works in business. 



EXAMPLE: 


PS C:\WINDOWS\system32> Get-SmbClientNetworkInterface


In each of these examples: 


Interface Index RSS Capable RDMA Capable Speed    IpAddresses                                        Friendly Name

--------------- ----------- ------------ -----    -----------                                        -------------

3               False       False        1 Gbps   (ipv4,ipv6 addresses}          Ethernet 2

(random other intefaces you may have)

12              False       False        1 Gbps   {ipv4,ipv6 addresses}          Ethernet



PS C:\WINDOWS\system32> Get-SmbClientNetworkInterface


Interface Index RSS Capable RDMA Capable Speed    IpAddresses                                        Friendly Name

--------------- ----------- ------------ -----    -----------                                        -------------

3               False       False        1 Gbps   {ipv4,ipv6 addresses}          Ethernet 2

(random other intefaces you may have)

12              False       False        1 Gbps   {ipv4,ipv6 addresses}          Ethernet



Note that these two examples are Intel i218v + i210 and i218v + Realtek gigabit whatever. And multichannel IS WORKING. 


So for you, it SHOULD work even though RSS capable is FALSE for both adapters. You can copy a large file and then run:


PS C:\WINDOWS\system32> Get-SmbMultichannelConnection


and see: 


Server Name Selected Client IP    Server IP   Client Interface Index Server Interface Index Client RSS Capable Client

                                                                                                               RDMA

                                                                                                               Capable

----------- -------- ---------    ---------   ---------------------- ---------------------- ------------------ --------

server      True     {your ip1} {server ip} 3                      14                     False              False

server      True     {your ip2} {server ip} 12                     14                     False              False




However, if you see this:


Interface Index RSS Capable RDMA Capable Speed    IpAddresses                                        Friendly Name

--------------- ----------- ------------ -----    -----------                                        -------------

3               True    False        1 Gbps   {ipv4,ipv6 addresses}          Ethernet 2

(random other intefaces you may have)

12              False       False        1 Gbps   {ipv4,ipv6 addresses}          Ethernet


Your configuration will attempt to use ONLY MSI-X resources for multichannel. Meaning it will NOT use the other RSS (MSI-X) capable adatper! However, if you disable it AND your CPU is fast enough to push 2 gigabits, you will see that windows will aggreagate the performance of the two NICs for a single file transfer.  You can disable it most of the time directly in device manager on the properties of the card. If you only intend to use one NIC, leave it enabled. This is partly why, in most scenarios, the onboard i210 or i211 on your motherboard will perform better than the "built-in" i217/i218/i219.


By the way! If you are on a SERVER then don't disable RSS Capable -- instead get some new NICs that are all RSS capable and do it that way. And remember "Supports RSS" does not necessarily mean that it supports RSS+MSI-X (and saying the hardware does RSS w/o also supporting MSI-X is pretty tongue-in-cheek anyway). 


If you are running 10 gigabit, you will see RDMA capable as being TRUE (or you should). RDMA is the "next tier" of low-cpu-overhead fast file trasnfer support, and it is really only relevant for 10 and 40 gigabit adapters. 


You should also note if you do have a NAS that runs Windows Server, you can get some other benefits for configuring windows server to be your networks DNS and DHCP. The DNS resolver can be a caching forwarder. IPv6 



Further Reading:

MS Blog:

https://blogs.technet.microsoft.com/josebda/2012/06/28/the-basics-of-smb-multichannel-a-feature-of-windows-server-2012-and-smb-3-0/


Intel Says RSS/Multichannel not supported (they mean MSI-X as clearly Multichannel works fine in rock-dumb mode):

http://www.intel.com/content/www/us/en/support/network-and-i-o/000017506.html


Sad struggle on the intel forums where "the fix" is not clearly outlined like above:

https://communities.intel.com/thread/80805










Files

Level1Reviews: Thecus W2810 Pro

Thanks for watching our videos! If you want more, check us out online at the following places: + Website: http://level1techs.com/ + Forums: http://forum.level1techs.com/ + Store: http://store.level1techs.com/ + Patreon: https://www.patreon.com/level1 + L1 Twitter: https://twitter.com/level1techs + L1 Facebook: https://www.facebook.com/level1techs + Wendell Twitter: https://twitter.com/tekwendell + Ryan Twitter: https://twitter.com/pgpryan + Krista Twitter: https://twitter.com/kreestuh + Business Inquiries/Brand Integrations: Queries@level1techs.com *IMPORTANT* Any email lacking "level1techs.com" should be ignored and immediately reported to Queries@level1techs.com.

Comments

Anonymous

Wow, such content, many time. Thank