SMB Multichannel: How It Works & Troubleshooting Guide

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
double your wired ethernet speed with this one weird trick oh god what have I become this is just this is unacceptable I just don't understand SMB multi channel uh what that means is on Windows plugging in more than one wired ethernet adapter in your computer and being able to sort of bond those connections together or well use those connections in an aggregated form to get better throughput A lot of motherboards these days have dual 1 gig interfaces if you could plug both of them in and they could be aggregated somehow easily then you could double the speed at which you can copy files to and from the network well I've recently taken a look at both of these feus network attached storage devices this two drive one more recently and this older one a little while ago this is a five Drive Nas and this is a two Drive NAS from Theus both of these perform really well both of them have multiple ethernet interfaces you can just plug both ethernet interfaces in and if if your computer's sufficiently new Windows 8.1 or later although it works better on Windows 10 with the threshold update the the August update from 2016 uh you can just plug in a second ethernet wire to these devices and be reading and writing at 200 megabytes per second well really depending on the speed of the mechanical hard drives but up to you know 200 megabytes per second because of their dual ethernet interfaces but it can sometimes be tricky and you can sometimes be in an impossible situation with regard to configuring your Hardware to actually get it to work some motherboards have two ethernet interfaces but the two ethernet interfaces on the motherboard support different Hardware features and unless you reconfigure the one that supports more features to actually have less features then uh you would never get that that bonding multi- Channel performance a lot of you may have noticed that uh you know the Intel Nick teaming thing isn't really a thing with Windows 10 anymore when Intel's not really been good about supporting that Microsoft hasn't really supported that with Windows 10 well this is part of why SMB multi Channel Microsoft expects you to just plug in you know your second Network Port your second network card and and sort of be off and using it they've supported this in the data center for a long time and they've supported this on higher-end workstations but the configuration was a little fiddly if you plug it in and it works you know and you can copy stuff if you got a Home Server you know you got two computers running Windows 10 you just use that as your Home Server you're not using a Theus device does not depend on Theus this video then you can just plug it in and if it works great you can turn the video off you don't need to know anything if you're looking at like how to set this up on Linux well this isn't a video about how to set this up on Linux although I might do something like that on the Linux channel the truth is the Linux software is not there yet it's being worked on but it's not really ready yet um so for the Linux Channel this may be something that we do in the future but I'll talk more about Linux in a minute but if it doesn't work for you how do you troubleshooted well if you don't understand what's happening under the hood you're going to spend a lot of time really spinning your wheels not really knowing what's going on and really not understanding the SB multi Channel thing is something from the Enterprise that's made its way sort of into the home at least if you're running Windows 10 pro at home or you have a lot of Windows machines at home or if you're running something like this in a in a smaller medium-sized business well the bad news is that it's also brought some baggage from the Enterprise and a lot of assumptions are made on Microsoft's part about really understanding how this stuff works in the Enterprise and there's not really a good set of documentation out there to explain how it would work to a small business I mean these types of devices and some of the stuff that Microsoft is doing now with the lower tier the lower tier skus of Windows Server are really targeted at small companies that really don't have a lot of it expertise and so you get situations where somebody buys one of these and they plug it in but it never really runs at full speed they never really get the full benefit out of it because they don't understand SB multi Channel or their workstations don't properly support it or something else like like that now these out of the box you just plug it in it works you don't have to do any configuration you don't have to do any anything it will work on these devices but the clients on the network may need a little setup you may have to pick up some Hardware something like that so in order to troubleshoot it you have to understand what's happening and so I'm going to start at a very basic level when you have a computer let's say a desktop computer and it's got multiple ethernet cards it's not plugged into the network at all right now we're going to plug in the first network card what happens your computer sends a broadcast to the network it's a special type of broadcast it's called a DHCP request uh if you've got DHCP configured if you don't have DHCP configured in this case with SNB multi Channel you're asking for trouble uh there's probably uh you could probably ask about that on the forms it's not really relevant for this video but you know if you're not using a DHCP server the time has come use a DHCP server it makes your life easier if you're worried about configurations or security or something you should look into a decent switch like this 24 Port microti Cloud switch which I'm going to hopefully review at some point in the future it's got 10 two 10 gig SFP plus ports into 24 1 gig ports going to talk about that more in a minute uh you can use something like that for better security and better control just set up a dhtp server honestly the time has come to set up a DHCP server and I guarantee that you already have a piece of hardware on your network that will totally be a DHCP server without any headache when you plug your computer in it sends a special type of broadcast called a DHCP request and that DHCP request is answered by your DHCP server now your DHCP server responds with a usable IP address to the computer that you've plugged in and uh there's other information in there like Gateway and a DNS server a DNS server is what converts names like google.com into an IP address that your computer can then access well in the DHCP request that your computer sends at least in the case of Windows it sends the name of the computer and so a typical home network or a typical small business Network might be 192.168.0 something all of your devices are 1 192.168.0 something and so what happens when you plug in the desktop computer with that first Network like say that the computer's name like desktop db8 something or other you plug it in and it sends a dhtp broadcast since it sends a dhtp request and it says you know my name is this and you know what you know where's the DHCP server the DHCP server makes a note of the computer's name and responds by assigning it an IP address now if you're running a Linux router um certain Cisco routers certain other things uh nothing else happens it just it ignores the name of the computer doesn't do anything with it and assigns it if you're on active directory which is an Enterprise technology the computer's name will be added to DNS and so DNS is also serviced by your active directory controllers typically or at least the DNS is said to be active directory linked meaning that records can be looked up in DNS that have to do with active directory um because Microsoft and so you end up in a situation where that desktop b85 if you do a a a DNS lookup through your DNS servers that are typically an active directory server it'll return the IP address of that computer that's the normal Enterprise setup well with these on a home network and a small business Network you don't necessarily have an active directory controller you don't necessarily have the situation where your DHCP server can communicate DNS records to your DNS server they may be the same machine they may be different machines a typical home router or a typical small business router is handling DHCP and DNS we like pfSense we did a video on setting up your own home router with an operating system called pfSense which is based on free BSD and out of the box uh the DHCP server on pfSense will just give you an IP address it can be configured to take the name of the computer and add that to to DNS and it can also be configured to serve as a DNS forwarder or a DNS server and so I would recommend if you're using PF sensor or using another router that you configure it so that when your DHCP server hands out a lease that it also configures a DNS entry you can run ip config /all and look at your DNS servers in the list if it looks like a public IP address like you know 4.2.2 do2 or 8.8.8.8 or 8.8.4.4 or like 205 something if it's not 192.168 something then uh your DNS servers are out with your ISP and your your isp's DNS server is not going to be able to tell you what the Lan IP address is of your you know of your Theus server or of your Windows server or of your other windows 10 system on the network in that case Windows falls back to a broadcast it'll send a broadcast that says hey who has this name Windows is actually very chatty on the network like if you if you set up a packet Monitor and you're doing capture on the network and you're looking at all the stuff that Windows is doing it's very very chatty um so the machines are always talking to each other they're always sending broadcasts and just all kinds of crazy stuff happening because windows but the deal with the broadcast is that it can't can't handle multiple IP addresses wait a minute multiple IP addresses what are you talking about so we got the computer we plugged it in the dhtp server gave it an IP address get that second network adapter or second third and fourth in the case of a four Network port adapter like the one on the desk here you plug in the other network adapter and then that also sends DHCP requests they're not sharing the same IP address that's not how this works it'll send a DHCP request it'll get another IP address and so all of a sudden your computer has two IP addresses or three or four IP addresses on your same local subnet on your same local network and then all of a sudden you're in an interesting situation when it comes to broadcasts and DNS so if you're running a Windows Server a Windows DNS server uh and it does the IP address look up then it will return all four IP addresses of your system if you've configured the DHCP server to propagate the DNS entries to your DNS server from your DHCP requests the DHCP responses uh the DNS server should return all of the IP addresses associated with that particular computer for those active DHCP leases Windows does that but you know other stuff is not guaranteed to do that because again S&B multi Channel comes from the Enterprise Microsoft would never it's like somebody's using something else for DNS or DHCP what what sort of blasphemy is this if you're running a mixed Network where you've got a lot of Linux machines and a lot of Windows machines you can set up a separate segment of your network you could set up a VLAN you can set up a different physical interface and run Windows DNS and DHCP at least a Windows DNS forwarder and sort of overcome those problems the Windows 10 uh threshold update the August 2016 Windows 10 update added a lot more stuff and a lot more robust sort of features to the algorithm for SNB multi channel so that is less necessary than it used to be the very first version of SNB multi Channel this is just kind of a tangent you could probably skip over this part but the very first version of SMB multi channel uh actually worked best when you had different physical networks for each interface so if you going to run a computer with two ethernet interfaces you would get two switches and run two cables and one would be 192.168.0 do something and the other one would be 1 192.168.1 something and two and three and four and so on and so forth and that worked really well with broadcasts too because when Windows sent a broadcast on the first Network it would return one IP address but it could send a broadcast on the second Network and when it sent a broadcast on the second Network because those broadcast were isolated from the first Network it could actually get a second IP address from that broadcast so that would actually work that would actually work really well but Microsoft sort of recognizing it's like well wait a minute these Technologies are being used sort of out outside the Enterprise they're being used in small and mediumsized businesses you know sophisticated home setups we should make the protocol a little bit more robust so they did and it works better but you should understand that originally it was architected to have totally separate networks and that's important if you're running l Linux too because Linux has got a little bit of a lag time in terms of their implementation and a lot of the documentation and examples that are out there for Linux actually still have it set up with multiple different subnets so you know it's sort of sort of a fun interesting note so if I could summarize all of that it is uh does it matter if you're not using Windows for your DHCP server or your DNS server both of these devices because they come with Windows storage server can totally do both of those things even without active directory you don't have to have active directory you can just you know we could just roll with it and the answer is a has a resounding maybe but now you know and now you know some steps that you can do for troubleshooting now you know that you can do an NS lookup from the command prompt and see what you get in terms of returning an IP address if you get one or two IP addresses for a particular workstation now you know what to look for second thing that can interfere with SNB multi Channel a lot of motherboards have a built-in Nick and there's a particular type of Technology called receive side scaling receive Sid scaling means some different things in terms of implementation and the book definition and what you actually run into in the real world and what you run into in the Enterprise What receives side scaling is supposed to be and this is a generic definition that has some very subtle nuances and some very you know sort of loopholes and some gotas is that when you have a high performance network adapter it is supposed to be able to Route the incoming packets or outgoing packets um from the network to a specific CPU core or a specific interrupt Handler to make it more efficient okay what does that actually mean got a gigabit network adapter and if the CPU is too slow to keep up with that gigabit Network stream and you get a four core CPU normally the interrupt would only be serviced by a single core well with receive side scaling the network Hardware can split up that que into multiple cues and have each Q serviced by a different CPU core in parallel normally I mean think about it normally networks especially when we're talking about these older network adapters like these Intel 1000 pts uh the network stream is just one thing you've got a single Network stream this card's got two networks on it you got two Network streams there's two you know interrupt cues and the interrupts happen and they're serviced by single CPU core great well on Modern multicore systems there's a technology that sort of underpins that called msix msix takes sort of a global mode interrupt and and sort of shunts it to a specific CPU core and the specific CPU core can be picked by software it can be picked by the operating system if you've got true and proper MSI support and so there's a Powershell command in Windows called get net adapter RSS and in get net adapter RSS there's an indirection table entry and the indirection table if it's empty then your CPU doesn't properly support RSS although technically it does and we'll talk about that in a minute but uh the the network adapter that's in your computer doesn't properly support RS and so you will not be able to use the whole multicore parallel processing multiq thing to handle multiple Network streams efficiently it it's it'll still work but it's just not going to handle the multiple Network streams efficiently and how that will manifest if you're using SNB multi channel is that you've got two network cards and you're running it and it's it looks like SNB multi channel is working but the performance is actually awful but there's some workarounds and there's some things you can try to improve performance and you typically would see that with like you know a low performance older core I3 crap like that some Hardware is advertised as being receive Sid scale capable like for example Intel i217 218 219 V those Nicks are part of the chipset they're not really they're not really part of the PCH but they're there are dedicated resources provided by Intel uh as part of the Intel processor for the I 217 218 219 V network adapters for motherboards that choose to incorporate them and if you look at the Intel documentation it's like receive side scaling totally supported totally there not really sort of it supports receive side scaling but only receive side scaling when it's shunted directly to I think core zero it's either core Zer or core 4 depending on which which way you're going to count on the CPU but you don't get a pick like the software the operating system can't use msix to Route those interrupts to a specific core so if you're running like folding at home and core zero is really busy and operating system says core 3 is is Idle uh the operating system is not going to be able to shunt the interrupts that occur as a result of traffic coming in on the network adapter to that other CPU core can only be serviced by that specific CPU core and so to say that receive side scaling is supported is a little misleading and so that's sort of frustrating so you can run into some really Oddball situations like for example there's an Intel workstation board that doesn't implement the i217 218 219 V it implements a real Tech and an i210 the i210 is external it's a PCI Express interface on the motherboard it's not provided as part of the CPU chipset interface so this kind of unusual but then you look at it and it's like wait the real Tech supports receive s scaling and the 210 supports receive side scaling but the I 217 218 219 V would not have supported receive side scaling properly and so it doesn't work in a mixed configuration however if you disable receive side scaling in the drivers on motherboard that do have a mixed configuration it will totally work sometimes it works anyway depending on a whole bunch of factors like if you've got a mixed configuration where you've got receive side scaling on one adapter and and you've got entries in the indirection table on one adapter and no entries on the other adapter sometimes it will work but like Z87 and z97 if you're going to run a card like this one like this this pt1000 this does not support receive side scaling with msix um and so it's a little problem atic in that regard it'll work anyway if you've got a fast CPU but if you're using one of these with an I3 it's not going to work this is an Intel 210 it's a single port card if one of your network adapters has an indirection table and you use this card this will work because it supports an indirection table and this will work even with an I3 even with a relatively low performance I3 this will totally work fine and you've also got other situations like this four port card it's like should I get a four-port card and just run everything off the four port card not necessarily mixing Network Brands and network adapters you know real Tech Plus Intel doesn't really always make a difference you know with the mix configuration the Intel and the real Tech we were still able to do 200 megabytes per second on a modern board it was fine but there are weird edge cases so like if you put two Intel 210s in a Z87 or z97 board uh it's problematic and the reason is because of the DMI the DMI interface H DMI 2.0 is too slow to handle that many interrupts but if you can mix it with one onboard Nick and one added Nick that doesn't overrun the DMI 2.0 interface and everything works fine if you move one of your I 210s to like the PCI Express by8 slot which is directly into the CPU you'll have much better performance than when you're going through the DMI and that's especially true if you're using a multiport card so that's something to keep in mind now for the Skylake systems DMI 3.0 is so fast that for you know gigabit and even you know 4 gigabit it really honestly didn't matter so there's a full textual writeup on all these weird edge cases and the situations that you might into on the forums but you should understand that it's dangerous territory mixing uh cards that support msix as part of RSS and cards that don't and you can run a Powershell command to see that you can also run a Powershell command to see the status of the multi Channel connections and the guide for that is on the Forum and so hopefully this overview hopefully sort of me explaining it uh will help you understand what's going on that you can make sense of the written documentation it's a lot to cover in a video format and it's a lot to cover you know like what if this happens and what if that happens this video would probably be an hour long but hopefully the written guide as a companion to this explanation will help you understand and also give you a little preview of the microtic cloud series switch now this is something that I picked up it was on sale uh you should be able to pick these up for less than $300 maybe even around $200 if they're on sale this is so far proving to be a nice little switch for like a home setup or small business setup it's 24 gbit ports it has a series console it also has two 10 GB sfp+ interfaces so that you could plug this into a server or something like that now in terms of Linux multi Channel I mentioned Linux multi Channel and it's almost there but it's just not quite there the only situation that I was able to get Linux multi Channel working is when the client and server had a match Network config so if I had four gigabit ports in the server and four gigabit ports in the client SB multi channel on Linux worked fine if one of those connections drops or a cable comes unplugged or something like that it will lead to data corruption so you have to be careful about that at least with the current implementation of of SMB multi Channel it also a lot of the documentation seems to want you to do separate subnets so I did separate subnets I did not test it with each interface being on its own subnet because the software is not ready yet I spent a lot of time trying to get a 10 gig server to a multi-gigabit client to work that works great with Windows but on Linux with Samba it's not there yet it doesn't seem to be able to deal with that situation at least I couldn't get it to work so if you get it to work or you have fun or whatever let me know what your steps were we can include it in the documentation there's a link to the Forum hopefully in the not too distant future when the uh Samba software is a little bit farther along uh we could do another video or demonstration or whatever SMB multi Channel about 75% of the time is a plug-and-play technology if you have a lot of Windows machines or you have to deal with a lot of you know Windows copy file back and forth this is not terrible um I still like Linux better and I think Linux just generally works better and it's generally much less of a black box but I figured that there were a lot of you out there that are running home setups with Windows and troubleshooting SMB multi Channel we had some comments on the last thus video that were like hey I plugged it in some weird stuff is happening and I messaged some of those people and it's like okay well let's create a video for this let's create a video that demonstrates it and if you have problems or get stuck or whatever come to the forums and we'll we'll do our best to try to help you and there's a good ride up in the Forum as well so give it a shot plug and plug play not Plug and Play let me know I'm wend I'm signing out and I'll see you in the level one [Music] forums
Info
Channel: Level1Techs
Views: 112,365
Rating: undefined out of 5
Keywords: technology, ux, programming, level1, l1, level one, smb multichannel, Windows SMB, troubleshooting
Id: 0rFL8PGkmMU
Channel Id: undefined
Length: 22min 42sec (1362 seconds)
Published: Thu Jan 19 2017
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.