Help me plan a network - 10 Gbps probably

Hello,

I need some basic help to design a network. This is not very TrueNAS-specific, so if someone knows a better place to ask, please point me to it.

The setup is supposed to be as follows:

  1. One data storage system, probably running TrueNAS.
  2. Three to five processing systems, each reading the data continuously.

Each processing system consumes on average 500 MB (megabytes) per second, with peaks up to 2GB (gigabytes) per second. These speeds are not expected to increase, and I can let go of the peaks so 1 GB (gigabyte) per second sustained seems an appropriate requirement.

The processing systems are running Windows, so the choices are (I suppose) SMB or iSCSI.

The data storage should be able to produce 4 GB (gigabytes) of data per second sustained.

If the speeds were an order of magnitude lower, I would be comfortable using run-of-the-mill twisted pair. However, I have zero experience dealing with 10Gbps or higher networks.

Now the questions:

  1. A while ago I have seen a good reference for 10Gbps and higher networking here on the forums. I can’t seem to be able to find it now. Can anyone please provide a link? Or a link any other good human-written high-level overview?
  2. What are the key words to search for, and possibly some well-used brand names to consider?
  3. What are the typical first-timer gotchas, if any?

Thanks.

Not sure if this is the thread you’re referring to?

Yes, thanks.

Go for Fiber and DAC cables, avoid copper (too much heat). The Intel X710 is a good choice (approx 70 euros used). Personally I like Mikrotik switches and routers, some of them support 10Gbit and work very well (but this is semi-pro hardware).

1 Like

I think you need to plan for a faster network or I am misunderstanding your setup.
4GB/s sustained from data storage would be 32Gbps and you have to add network overhead so just say 40Gbps.
This would mean that four workstations at 10Gbps, you would need a switch with a 40Gbps connection to the file server. You are not leaving yourself any room for expansion. If your plan was a 10Gpbs connection to the file server, you are already behind and can only support one workstation

You may be better off looking at 25Gbps or 40Gbps at each workstation with 100G from file server to the switch.

2 Likes

This is correct, yes. Right now, I am thinking,

About switches.

In a gigabit world, there are 10/100/1000 switches, so you can plug in one 1000Mbps server and four 100Mbps clients and it will work. Also, every port is 10/100/1000, mix and match as needed. However, I see the SFP switches have only one speed specified per port. This suggests they can’t mix-and-match speeds. I don’t know if it is correct or not.

About multiport cards.

There are cards that have two or four SFP+ ports. I am looking at this spec for https://resource.fs.com/mall/resource/intel-x710-series-ethernet-network-adapter-datasheet-20250923184134.pdf. It says ā€œdual port, 10Gbps per portā€. So maybe I shall have two of these and arrange the entire system in a four-ended star layout. NAS in a middle with 2x dual port network cards (four ports total), and one client per port. There is no switch in this scheme, and each client has its own link. This actually makes a nice self-contained unit, and I am starting to like the idea. The command-and-control requirement is negligible and can be done via motherboard ports, no problem. I should worry about PCI lanes in the NAS, but this is the thing I am aware of.

There will be no expansion as such. The entire system is built for a specific task, and the expansion, if needed, will be to procure an identical rack.

Given the above, is there anything wrong with the switchless option?

You might be better off planning on 25Gbps or 40Gbps NICs with your direct connect idea. 25Gbps may be about the same price as 10Gbps
I have my TrueNAS connected to my Windows PC with 10Gbps fiber, no switch, so your idea is fine.

Take a look at the 25 and 40 NIC cards on FS. Price out DAC or transceivers and matching fiber cable, depending on what you want. If you go Intel, you may need to specifiy ā€˜Intel’ coded DAC or transceivers as some of their NIC only work with ā€˜Intel’. If you are getting it all from FS, I’m sure they will get you what you need and it matches.

These cards are usually placed in workstations or servers with good air cooling flow. You might have to ensure enough air is flowing over them.

Okay so a direct-connect option.

Without a switch, there are three components.

  1. Network cards, probably 6x identical dual port cards, two for the NAS and one per client.
  2. Transceivers matching the cards.
  3. Cable matching the transceivers.

This leaves very few possible compatibility problems indeed, and I can go with 25Gbps or 40Gbps as long as I purchase a matching set at the same time.

Yeah this works out pretty clear now, thanks a lot everyone, especially @SmallBarky .

1 Like

If your connection distance is short, DAC may be the easier choice instead of transceivers with separate fiber cables. (just a few meters). You don’t have to worry about ā€˜fiber polarity’ with these as it is matching a transceiver optical side with a receiver optical side. The LC type connectors can be swapped on one end so instead of a straight through A - A and B - B it becomes A - B and B - A. I had to do that to my MMF fiber cable with LC connectors.

https://www.fs.com/glossary/mtpmpo-polarity-g397.html

1 Like

As noted, think there is confusion of Gb vs GB , Mb/MB

40Gb is essentially dead, switches for it are harder to find cheap with many ports, unless you get a used BrocadeICX 6610 or something…

25Gb is more common and then the jump to 100Gb, but now you are getting into more expensive switches on the 100Gb end for more than 1 or 2 ports.

If you do go the route of direct connect, Chelsio T-580’s dual port 40Gb NIC’s can be had used decent price, but, most are low profile and finding full profile bracket is hard (I know, I’ve been searching)

Or your looking at some Mellanox x4/5 100Gb SFP+ NICs.

I don’t know what you mean exactly. An SFP+ port carries a transceiver or a DAC cable. A DAC cable is suitable for < 5m. For >5m you need fiber and transceivers. The speed from point to point is configured automatically using the highest available speed on both sides.

You usually use two switches :

  • One switch with multiple SFP+ ports (don’t mix with SFP which is limited to Gigabit speed) for high speed and
  • One switch with multiple Gigabit copper ethernet for 10/100/1000 speed.

Both switches are linked together using a single 10Gbit DAC cable or two 10Gbit DAC cables. You don’t mix copper and fiber.

Don’t plan to use 10Gbit copper, as transceivers with copper run very hot and can lower speed and efficiency. 10Gbit speed is essentially achieved with a DAC or fiber. Vendors all offer 10Gbit/s copper, but this is not a suitable solution in the real world.

Also you may consider SMB multichannel. SMB Multichannel allows communications at 20Gbit/s using two 10Gbit NICs. You need two NICs on the client side and two NICs on the NAS side.

ISCSI is multichannel by default I guess (but never used it).

It is very likely that SMB or your NAS will be the bottleneck.

Mikrotik has very nice and cheap switches, but this is semi pro hardware and there is a leaning curve.

The CRS317 a very cheap 10Gbit switch, which is suitable for SMB multichannel and will keep your budget low:

Mikrotik range jumps directly to 50 /100 and 200 Gbit in affordable switches:

I don’t know you project SPECs. Seems like SMB multichannel / ISCCI multichannel and 10Gbit/s switch are the way to go. Network adapters usually have two SFP+ ports, so use both ports on the client side and both ports on the server side. You can’t go at higher speed. All needed hardware is cheap.

Just my 2 cents.

Ive done this, as have many others.

If you have such a specific need, and can accommodate the cards (free slots OK), I would ditch the switch. You don’t need it. Get a 4 way SFP+ card 2nd hand off eBay for the server - Chelsio 540 or Intel x710 T4 (T4R if available, 10G power is not trivial) would be an example of what I’m thinking, or 2 x 2 port cards, and direct connect each client to it.

That way you get full bandwidth on a 10G only setup, rather than needing a 40G+ setup.

As to details, those are the only 2 cards I’d consider really. You don’t need esoteric, commodity solid are plenty good enough, and both product lines have plenty of used on sale cheaper that can almost always be trusted. Both have solid *nix and windows drivers. Chelsio windows drivers used to be better replaced by chelsio’s website own DLs, to get fullest configurability access, don’t know if that’s true any more.

Your next job is to decide copper RJ45 (10GBase-T), copper direct attach (DAC) or optical links (usually 10GBase-SR).

RJ-45 used to cost more but that’s come down a lot. It uses considerably more energy (hence heat when you put 2 or 4 on a card). But its very common, hence cables are cheap, and crucially you can skip the cost of 8 SFP+ modules that way.l, the cables plug direct into the sockets as usual. In future you can expand with a used 10G RJ45 switch cheap used, as well. Its exactly as you’re used to, and will switch down to lesser speeds if needed.

DAC is suggested by others. I don’t have experience. I went for the 3rd option when 10GBase-T cost more, my latest one I went directly for 10GBase-T because I had existing Cat6A cables.

Optic cabling was new to me but turned out easy. Needs SR SFP+ modules to plug into SFP+ network cards, and OM2 cables. As they’re optical, you can’t cut them, buy (very?) long and curl them up. Very low power, very reliable.

Gotchas and stuff? Honestly not many. Main one is, when considering card cost, factor in modules and cable cost not just card. Some cards need modules, some don’t. Also if you care about it, factor in cost of extra power for copper vs optical. Last and maybe most important, if you DIY your own network cables, be aware 10G is much more sensitive to interference, untwisted length at plug, all cores close to same length (nanoseconds count), quality of connection, shielding at plug, etc. Research what’s needed for it (not difficult, like 1G but a bit more care). If unsure buy not make, but you shoud be able to make 10G if you make 1G.

Also look at options. Key ones are queue lengths, jumbo frames, buffers, interrupt coalescing, and offloading. If you need explaining ask. Basically they ensure the NIC does all the work it can, as 10G is demanding on the host, especially 4 port 10G.

Last, for the server, look carefully at your system spec. Feeding a 40G pipeline will pull data fast off the pool - and there’s a big gotcha there. The CPU has to checksum it all, at 40G rate pretty much, in real time. Some systems can, some hit CPU starvation. Your pool (ssds for special vdevs I hope, and fast enough for data vdevs) need to be able to feed the pipe. And so on. (And if your pool has dedup enabled, say so, that’s going to ramp the system demand up 10x.)

Allocate plenty RAM to network and zfs, give it larger queues maybe. 10G can empty a buffer in milliseconds, if either end stalls.

And, critically, CPU starvation and inability of disks and checksumming to keep up, can cause the system to starve usual network processing, causing TCP window to plummet to zero, and killing e.g. not just data links but SSH and webUI connections too. If you see a pattern where data is fine for many minutes then hits zero and stalls mid session for ā€œno obvious reasonā€, and sessions get dropped including SSH or web or iscsi, that’s what to suspect. If that happens, ask.

Beware that copper RJ45 (10GBase-T) can get very hot, nearly 100°C and then it lowers speed (without warning you). So if you plan to use your setup in a professional environment and you don’t have cooling in your premises, it may be a problem. I experienced that so many times that I dropped all copper and resold RJ45 transceivers as I was never sure to get the right speed.

Always prefer DAC or fiber cables, they are cheap and never heat, so you can use them all year long. People usually like copper because RJ45 is well-known, so they think this is suitable but it is not for heating issues.

On the converse DAC and fiber transceivers never heat more than 50°C and run all year long. You don’t even have to cool them, even in summer.

Mikrotik 10Gbit switches are so cheap that I would not bother with a direct connection. You can get the CRS317 for a few hundred bucks (400euros on eBay, maybe less if you find the right deal). If you are close (<5m), always prefer DAC cables.

Of course you can go with direct connections if you install multiply cards in your server, your own choice, it will work for sure.

You server and the clients will probably be the bottleneck, not the network.

1 Like

What @Archivist says.

Except I still feel, maybe check the cost of card and switches. The alternative to 4 x 10G links for the speed you want, requires moving into aggregated 10G, or 25-50G card and switch. Cost is…. not trivial. For the setup described honestly I’d switch the server from 1 port 40G to 4 ports 10G and direct connect each client to a port. Moving to a 25-40G switch and card when you can avoid it, is costly. Also means you can trivially add a 5th or 6th client if needed and if the server can feed them without upgrading to faster networking or new levels of gear.

But its true both are valid, and equally easy.

To explain more about copper RJ45 (10GBase-T), it is designed for home use on existing copper cables. When used at 100% speed during several minutes or an hour, the transceiver heats-up and there is no way to stop the heating. This is physical. So at some point the speed is lowered to Gigabit and it heats down … until it switches to 10Gbit and then heats-up again. There is no way to stop this and this is probably why 10Gbit copper is never used in datacenters or professionnel environments. Also 10Gbit copper transceivers are very expensive, when DAC and fiber is cheap. So if you plan 100% speed all year long, copper is no go, avoid it.

I am going to look around for what is available shopping-wise.

@stilez

I am not much worried about the server spec. The clients are well-specified, and one was tested to be able to consume about 1 gigabyte per second (CPU-limited) when reading source data from directly attached flash. So the client configurations are pretty much final, except for the network.

The server I have much freedom in configuring. The dataset is very small (say 8TB or so) and it is read-only (never changes). So it goes on all-flash, and that should provide the read speed. (if it does not, add more flash). (Beware running out of PCI lanes - seen that already). Something like a single 4-way bifurcated x16 PCI-E slot should be all right for the entire pool (I am thinking 4x 2TB M.2 NVMe).

If your workload is a read only blob that never changes and is all that clients ask for, it should eventually be stuffed into the ARC. Cached in ram like that, it’ll fly effortlessly across the network near line speed. Of course I think there’s a tweak to allow the arc to grow to a certain percentage of free ram, so naturally you’ll want to figure that out while you stuff it with about 64+ gb of ram. This seems like a good opportunity to play with that new NVME OF implementation, I don’t know anything about it. It’s good to know how the storage is going to be accessed. It opens a lot of doors for tuning.

So the shopping list currently is, for one server and four clients

6x Mellanox ConnectX-3 Pro 40Gb Ethernet PCIe CX314A MCX314A-BCCT (two for server + one per client)

4x one meter QSFP+ 40Gb DAC (everything is in the same rack, 20U total height, NAS in the middle, so one meter is enough) ( 40G QSFP+ Cable, QSFP+ to QSFP+ Direct Attach Copper(DAC) Twinax Cables - FS Europe ).

and that’s it?

That should be it, except I’d go for 25G rather than 40G. 40G is a dead end, dead standard, and will throw you into another rabit hole trying to get most out of what is really a bundle of four 10G links with a small number of clients.

Passive DAC’s go up to 7m now it seems from most I see, such as