High-speed 10Gbps full-mesh network based on USB4 for just $47.98

3 years ago (fangpenlin.com)

USB4/thunderbolt is a magical protocol. Turns out the fastest way to move data between 2 modern PCs is to connect their thunderbolt ports with a USB-C cable. The connection shows up as a ethernet port on Windows and I can easily saturate a SSD with its 1GB/s+ transfer rate. And it just works (tm). Reminds me of firewire on these 20 yo Macs.

And What happen if you wire both ports together on the same PC?.. Do you get a broadcast (thunder) storm?

  • Target disk mode over FireWire was magical back in the day. Nothing like turning someone’s laptop into an oversized external hard drive to rescue data or get a borked OS X installation booting again.

    • FireWire had IP networking stacks in Windows and OS X in 2007. You could daisy chain a bunch of devices together to share a network connection.

      11 replies →

    • Way before that there was SCSI.

      The low cost is price. Asus for example with their ASUS ThunderboltEX 4 allows you to have TB4 via PCIe card.

      The neat thing about USB4 was same as PATA and later SATA: widely and relatively cheap available in consumer hardware. SCSI and FireWire were technically superior but were neither cheap nor widely available.

      Oh and I don't know about SCSI but FireWire was actually a security risk.

      3 replies →

    • Target disk mode to my workstation and saving someone's whole system with Disk Warrior used to be my favourite and most rewarding task. APFS did away with that joy, if a Mac OS systems fails now you have almost no chance of saving the system from itself.

    • Yeah, we built a similar system a generation ago using FireWire on x86 and Linux.

      FireWire at 800Mbps beat Gigabit Ethernet in terms of latency for a rather hard real-time system.

      5 replies →

  • I've been playing with Thunderbolt networking over the past week with mixed results. I can get 16Gbps between a couple of Macs. Between a Mac and a PC running Windows 10 I get similar speeds in one direction, but less than 1Gbps in the other direction.

    In terms of scaling this to multiple hosts as the author does, I've read that it is possible to daisy chain, or even use a hub, but it doesn't strike me as the most reliable way to build a network. For an ad hoc connection, though (like null modem cables of yore), it's a great option.

    • I think reliability is a great metric to evaluate this on. I don't have a lot of experience with USB4/Thunderbolt networking, but as far as ring network principals go, when you have a network with only 3 nodes, a ring topology is also a fully connected topology. This means that connectivity between nodes should never fail due to the failure of a node. That screams reliable to me.

      As far as points of failure, there's no additional hub/switch in between the devices, so you have a Thunderbolt controller on each device, two cables, and two ports. If a cable goes bad, so long as there isn't a silent/awkward failure mode, all three nodes can still talk to eachother, at degraded speed. If a switch goes bad, the whole network is down, unless you start talking about redundant switch topologies.

      To your point though, there does seem to be plenty of shenanigans with performance, especially between devices with different Thunderbolt controllers, that may make this less ideal. But IMO, that's more of a question of do you want to with a more battle tested topology, or are you okay with a less battle tested, but still highly performant and "simple" (we won't go into how bonkers the USB/Thunderbolt spec is) topology?

  • You need more like 50 Gbps to saturate a modern Nvme SSD.

    10 Gbps doesn't come close.

    • There was a moment with the spinning rust drives where it would have made sense to have storage in a networked device and not locally but now it rarely makes sense unless an incredibly fast interconnect could be used.

      Of course this example is still interesting and cool.

      9 replies →

  • > Turns out the fastest way to move data between 2 modern PCs ...

    With the caveat being that's only if you're not up for adding PCIe cards.

    If you are ok with adding some PCIe cards, then you can transfer things a lot faster than 1GB/s. :)

  • > The connection shows up as a ethernet port on Windows

    Do you know if this is the case for all thunderbolt generations (speed differences aside)? Does it apply to thunderbolt using mini DisplayPort too or only over USB PHY?

  • > And What happen if you wire both ports together on the same PC?

    A literal loopback interface? Two of them, most likely.

  • > The connection shows up as a ethernet port

    OK but what then? I've had ethernet ports on my computers since I can remember, and that hasn't magically allowed me to transfer data back and forth just by plugging a patch cable into both machines. What software is at work here?

    • Depending on what you want to do on what O/S, batteries may or may not be included. I use Moonlight on a Mac to control a Windows 10 PC running Sunshine--lower latency than Remote Desktop (which I don't have anyway in the Home edition), and nicer looking than Parsec.

      When you connect a patch cable directly (no crossover cable needed in the 21st century), you'll likely find that each system has a self-assigned IP in the 169.254 network.

      1 reply →

  • WTF!

    I have two identical machines that I need to do this with... lemme test it and see.

    ...

    ARGs usb-3... so nopes. (How FN lame is that)

    • Indeed... I just got my first computer with a USB-C port and have been puzzling over what to do with it. Most of the cool tricks seem to require Thunderbolt, which it is not.

Related, Intel was showing off Thunderbolt Share at CES[1]. Allows Thunderbolt 4/5 device-to-device transfer of files. Theoretical speeds in the 20Gbps and 40Gbps for Thunderbolt four and five respective.

One idea for why they were only able to reach 11Gbps is having only one Thunderbolt/USB4 controller[2], meaning the two USB4 ports split the 40Gbps PCIe lane. Throw in a full-duplex connection and you get 10Gbps in one direction.

[1] https://youtu.be/GqCwLjhb4YY?t=81 [2] Just a theory but seems like a sane assumption.

This is a pretty cool solution. I didn't know the capabilities of USB4 before this.

The comparison with the Dell r630 power numbers got me interested since I just purchased a Dell r430 to host my site so I decided to benchmark mine.

Specs:

  * 2x Xeon E5-2680 v3 (same CPU)
  * 64GB RAM
  * 2x power supply (can't remember if it's 500W or 750W each and too lazy to look)
  * 1 SSD & 1 7300 RPM HDD
  * Ubuntu server 22.04.3 LTS

Using a Kill-A-Watt meter I measure ~100 watts after boot. Running sysbench (sysbench --test=cpu --threads=12 --cpu-max-prime=100000 --time=300 run) I get up to ~220 watts.

If my calculations are correct that's 72 kW per day or $11.05 per month at idle:

  0.1 kW * 24 hours * 30 days = 72 kWh
  72 kWh * 15.34 cents/kWh = $11.05 

and 158.4 kW or $24.3 per month during load:

  0.22 kW * 24 hours * 30 days = 158.4 kWh
  158.4 kWh * 15.34 cents/kWh = $24.3

I'm not sure of OP's use case, but these numbers are probably more realistic than using the max wattage of the power supply for most people. I will still be hosting in a co-location for the reliable internet and so I can sleep without the sound of a jet engine taking off. Those fans are loud!

  • > I'm not sure of OP's use case

    Lack of understanding. Even comparing 65W to 1000W should had ring some bells, but.

    > but these numbers are probably more realistic

    Almost, depends on the load (hardware) and load (software), as someone who manages a fleet of 720/730/630, a standby server eats around 150W and under the load up to 300-350W, depending on the package.

    > Using a Kill-A-Watt meter

    You can use built-in measuring in iDRAC.

    • Another data point - I'm running about 500w for my small rack. NAS (20 x 3.5HDD), ICX6610 (3 PoE APs), 2 x R630, and some small devices.

      According to iDRAC, my R630's are drawing almost exactly 100w/each. Each with about 75 pods (k8s nodes).

      1 reply →

    • > You can use built-in measuring in iDRAC.

      Does anyone know if ~modern HP iLO can show power usage too?

      Looking through my Gen8 HP Microservers just now, I'm not seeing power usage info. :(

      "Power Information" is just showing the state of the power supplies (aka "OK", "Good, In Use") and not much else.

      2 replies →

    • Thanks, good to know. I may need to request a 3A 1U in that case.

      I didn't know iDRAC could measure real time power usage. Pretty amazing.

      3 replies →

Nit: This is not a mesh. With only 3 nodes, it's not even a ring but just a direct connection between servers.

A "real" ring is formed when you have more than 3 nodes and so some destinations require more than one hop. A mesh implies a network formed by somewhat arbitrary point-to-point connections with multiple possible routes between two points.

  • Full-mesh typically means each node connects directly to each other node (for some value of directly), so IMHO, a three node system with each node connected to the other two fits the name. I do agree that it's not very interesting with only three nodes.

    • A network where every node has a direct connection is a point-to-point network. Yes, it is a special-case called a fully-connected mesh, but these networks are rarely made (a fully-connected mesh of 32 servers require 32 NICs in each server and 496 cables) and it is not a common term.

      What is usually described as a mesh network (technically: "partially connected mesh") is a network where every node has a route to every other node, and that every node may have a direct connection to any number of nodes, but where there is no guarantee that any two nodes have a direct connection and may need to route over other nodes. The ability to handle this sort of completely arbitrary network topology is the core to mesh networks.

      See https://en.wikipedia.org/wiki/Mesh_networking. There's also the old WiFi mesh spec (https://en.wikipedia.org/wiki/IEEE_802.11s, what the OLPC used), not to mention Zigbee and Bluetooth Mesh.

  • This may not be a ring, but a “real” ring doesn’t require more than 3 nodes. A ring can be formed with as little as 2 nodes.

    If routing was enabled this would definitely be a mesh network. It would be a full mesh network where every node is directly connected to each other and a secondary path through another node is available should the direct path fail.

    • I was speaking from the perspective of a network, where you'd want to distinguish between a direct connection between two computers, and a network where you need to cooperate for routing.

      This is not a ring because it is not configured as such: Rather, each network card has exactly one peer, and there is no knowledge of other peers, making it no different from just a direct connection between two computers.

      If you had redundant paths, it would be a ring yes. A 3-node routable ring is in theory a special-case of a fully-connected mesh, but you do not call ring networks mesh networks. Mesh is usually reserved for when you truly mean to support arbitrary, disorganized network topologies

      See https://en.wikipedia.org/wiki/Mesh_networking

      2 replies →

I still remember connecting two MS-DOS computers together with a parallel cable, that was the easiest way to do "large" file transfers there for a while (used a program called LapLink, iirc)...

  • You could also run PLIP over the same cable. It's like SLIP (which is like PPP) but much faster.

    Where Laplink isn't really a network, just a file transfer thing that requires Laplink to be running on both PCs, PLIP is a network driver that lets you do all the usual network things over the connection.

    And since PCs can have up to 3 parallel ports before things start getting stupid, it's pretty straightforward to have a row of machines with PLIP links going both ways, bridging or routing the interfaces. Or, do PLIP-SLIP-PLIP-SLIP without adding any ports, and you could have a functional-but-brittle-and-slow network for pennies.

    • > You could also run PLIP over the same cable.

      I was running that in the nineties. My main desktop, running Linux, and an ultra old, ultra crappy laptop running Linux too. They'd be connected using PLIP and the desktop, more powerful, was running its own X server but also applications for that were running on the laptop's X server.

      So my brother and I could both be using Netscape to surf the net (we'd call it that back then) at the same time, over the 33.6 modem connection.

      It was really easy to run PLIP and was saving me the trouble to try to get network card running under Linux on my desktop and most importantly saving me the trouble to try to get the PCMCIA crap to work on my laptop.

      Fun times...

      P.S: and, yup, back then laptops had a full parallel port!

      3 replies →

  • Laplink! That part ot my brain hasn't activated in decades...

    My favourite was bootstrapping using 'COPY /B COM1: C:LL3.EXE' to get the Laplink executable to the target machine over Serial, when you didn't have a spare floppy.

> I recall reading some networking books that mentioned interesting ancient network structures a long time ago, such as ring topology networks or daisy chain networks.

IP-over-SCSI was great, you could throw 8 PCs on one SCSI chain. Put two SCSI controllers in each machine, do rows-and-columns, and you could have 64 hosts a maximum of 2 hops from each other, at U320 speeds, in the 1990s.

https://www.linuxjournal.com/article/2344

Imagine a beowulf cluster of hot grits! Er, sorry...

Re speed, looks like the cables are the right ones. Would be nice to find a wiring diagram of the motherboard to see how the pcie lanes are allocated but hard to find on these consumer devices. Perhaps each usb4 port is a single lane gen2 which would top out around 10Gbps. You could try paralleling iperf3 to give you a bit more info. Also check the tx_speed and rx_speed in /sys/bus/thunderbolt/devices to see what it is negotiating.

Company specific TB driver/firmware updates can be found here https://www.thunderbolttechnology.net/updates

  • I believe you might be right regarding the port itself being the issue here. I have a Minisforum UM775 (basically the previous gen of the 790 Pro mentioned in the OP) and despite having two "USB4" ports, only one is rated for 40Gbps while the second one is 10Gbps.

    I cannot find any specifics regarding the ports on this 790 Pro one, but I'm certain that's ultimately the issue: the bottleneck is on that second (the one on the right) USB4 port.

  average residential electricity rate is 15.34 cents per kWh

This didn't seem right, as I pay more than double that here in San Francisco. (I calculated $0.35/kWh by dividing the total I paid for electricity generation and delivery, and dividing it by the number of kWh consumed.)

The linked page cites data from over a decade ago (2012).

> But still, I don’t understand why it can only hit 11Gbps at this moment

The interface/bridge MTUs might want increasing to a larger value. I notice a pretty big difference when connecting Macs together using Thunderbolt with an MTU of 9000 vs 1500.

The speed here is concerning to me. This is way short of what I'd expect or hope for. I hope in the future reviewers start testing this sort of thing when doing in depth reviews; this should be very visible high pressure an objective.

Hopefully there's wins available & this isn't some silly unadvertised hardware gotcha. Higher mtu, trying some parallelism are two good suggestions I heard.

One other thing I'd note: it's only been very recently that Linux has learned how to let the USB and DisplayPort negotiate/allocate bandwidth. It was evenly split between the two until March. Linux 6.3 Adds Thunderbolt/USB4 DisplayPort Bandwidth Allocation Mode. Linux 6.3 Adds Thunderbolt/USB4 DisplayPort Bandwidth Allocation Mode

It's unclear how automatic this bandwidth management is under what systems; users might need to use the new thunderbolt-utils from July to adjust it manually. Intel Rolls Out thunderbolt-utils To Manage USB4/Thunderbolt Devices On Linux. https://www.phoronix.com/news/Intel-Linux-thunderbolt-utils

I really want to hope much better is already possible. I don't own any USB4 systems though! How awesome they are. I hope we see some cool all-in-one's with multiple USB4 in; upcoming Minisforum V3 tablet for example has at least one usb4 that can do DisplayPort In, if I understand, for example, and that capability feels like it should just be coming for free now on PC's USB4 ports!!!

>While the machine itself isn’t expensive, it is not cheap if you consider the cost to operate. A machine like this is very power-hungry. Suppose the power consumption is 1000W per hour.

Alright, a server will be more power hungry than e.g. your desktop, but... This specific Dell R630 has 2x 750W PSUs in it. That 750W is the maximum rating of one power supply, and there's 2 of them for redundancy - not for increased power intake. That server will run at 750W maximum - but that is the absolute, absolute maximum power it should draw. It's when you have all the rails loaded to the limit and running the server to the ground.

A more realistic scenario would be e.g. 100W or so on average.

The worse problem if running this server at home would be the terrible small high-RPM fans they have in 1RU servers. The loud high-pitched whine of them will drive you nuts. A better idea would be to get either a lower-power 1RU pizza box, or something larger that can take larger fans - replacing the fans with something quieter and adjusting the fan controller to spin at lower RPMs.

>1000W per hour

This is just wrong.

  • I run rack servers at home and I 100% call BS on that 1000W number. My older Ivy Bridge Xeon servers only consume 50W on idle, 100W with some load, and <200W with all cores fired running P95 or something. The noise is a concern but it's not an issue if you put it in your basement.

    • I couldn't do it with a single R420. When that first booted up in my basement - good lord I wasn't prepared. There wasn't a soul in my house who wasn't suddenly in there with me trying to understand what had just happened.

      Adjusting the RPMs in software helped a little, but even at the lowest speeds, it was a hovercraft. It had to go.

  • Yeah, I have a bunch of fully loaded R720XDs and with 12 3.5" SATA drives they sit at about 120-140W, both according to the lights-out console and wall wart meters.

  • I swapped out the screamer fans for Noctuas on a 1U server and it's significantly better. Needed a custom mini PCB and a bios setting to ignore fan speed feedback but it's extremely quiet and runs cool.

    I don't think it uses much power when idle either. I think that rack servers being expensive is a myth.

  • noise actually not that bad with some bios configuration tricks - I used to run dell r720 and r420 together with ~20 HDDs near my desk table and most of the day noise was close to some non-silent gaming PC/workstation. Only problem was if is some need to reboot it, in that case it just blow fans to full power and it's loud like vacum cleaner that you for sure don't wanna to use at middle of the night.

  • An addition, you have the ability to chain the PSUs for increased total power at the loss of redundancy.

  • > and there's 2 of them for redundancy - not for increased power intake

    Ahem:

        System Headroom
            Statistic       Reading 
            Instantaneous   1528 W | 5215 BTU/hr 
            Peak            1346 W | 4594 BTU/hr
            

    That's R720 with dual "PWR SPLY,750WP,RDNT,FLX" PSUs. You can configure them for the redundancy mode and you can cap the maximum power per PSU:

        Hot spare is a power supply feature that configures redundant Power Supply Units (PSUs) to turn off depending on the server load. 
        *This allows the remaining PSUs to operate at a higher load and efficiency.*
        This requires PSUs that support this feature, so that it quickly powers ON when needed.
    
        Redundancy Policy:
    
             Not Redundant — In this mode, failure of a single PSU can power off the system.
    
             Input Power Redundant — In this mode, the system is functional in the event of failure of a PSU input circuit,
             provided the PSUs are connected to different input circuits. This is also called AC redundancy. 
    

    > This is just wrong.

    But yes, these guys idle at 150W at have around 300W under load with dual CPUs and a lot of RAM.

This is a great use of the Thunderbolt hardware that comes built into consumer devices.

For throughput try sticking "--parallel 4" or shorthand "-P 4" on the iPerf3 command and see if total throughput changes.

My problem with setups like these is storage. Not much room for expansion in the small boxes and I am not thrilled with external drives. Still had a QNAP or other NAS and hope to get one with compatible USB4 port

  • AFAIK those can have 2/3 NVMe drives, and you can expand them even more with a PCI Express card to add even more NVMe drives

> I don’t understand why it can only hit 11Gbps [...] other people building similar networks were able to hit 20Gbps. [...] So it could simply be that the machine only supports up to this speed [...] it might compete with [Intel's] network controllers, so they capped the speed

I'm bad at low-level networking, but could it be a routing issue? Effectively every machine is also a router, so there might be some wasting going on.

  • The machines are not configured as "routers" in that example. It is just a point-to-point layer 2 network, where each network link serves exactly one possible destination. As simple as it can be.

  • It's more likely to be offloads and processing time - none of these have any of the offloads a regular network card does. Even if the CPU can handle it, it increases latency, and with a single stream like this, that affects throughput badly.

    At 10gigabit/second, with 1518 byte packets, it's 823451.9104 packets per second.

    So in a single stream, you have to process each packet within 1.21microseconds to keep up

    At 20gbps, you have 600nanoseconds per packet.

    There are also almost certainly timing/synchronization issues between different stacks like this. It's horribly inefficient.

    Network cards achieve >10gbps in part by offloading a lot of stuff.

    Even if the CPU can handle the load, just going through different stacks like they are may add enough latency to throw single stream throughput off.

    The posited reason of "not compete with network cards" is beyond stupid. It can't because you can only do a few meters this way, max.

    That's not interesting at all. 25gbps network cards are cheap and for a few meters, a $10-15 25gbps DAC will suffice

    For more than that, 25gbps transceivers are 25 bucks a pop for 25gbps-SR, which will do 100meters.

    With none of the problems of trying to use longer thunderbolt cables, too.

    Intel's 25gbps SKUs are not where they make their money anyway.

  • It's measuring single TCP connection performance which is already difficult to optimize. With jumbo frames and tuned buffer sizes I'd expect it to get higher, but it will likely be serialized to a single core's worth of CPU. Using multiple connections should give a better representation of available link bandwidth.

  • IIRC the specification of Thunderbolt from Intel (which was inherited by USB 4) limits the Ethernet emulation mode to 10 Gb/s.

    Why did they set a limit so low is not known, but the supposition made by another poster that this is a market segmentation feature may be right, because such policies have always been typical for Intel.

    • This post is getting almost 12 Gbps and someone mentioned getting 16 Gbps on Mac so I don't think there's any intentional limit. Thunderbolt is really 22 Gbps anyway and networking over Thunderbolt is just inefficient.

> Given California’s average residential electricity rate is 15.34 cents per kWh

In the bay area it's 2.5x - 3x the rate.

I stopped using my rack server for that reason. I was dumb and didn't consider the electricity costs when buying mine at the time years ago. It sits around collecting dust now.

The author's alternative idea is really good considering 8w idle and 80w peak and I doubt it hits peak for what the author wants to do.

  • It's actually even worse in SDG&E territory. A kWh costs around 32 cents, but "transmission" and "distribution" are again twice that. The end result is about $1.00 / kWh.

    • I’m convinced SDGE is the most hated company in the country. The southeast is so much cheaper for electricity.

Somewhat related, I recently wanted to fix a slow nfs problem (1 server, 1 client -- basically, a file server and a machine with some GPUs). It turns out that used previous generation mellanox 100gig NICs are quite cheap now, and you can direct-connect two machines for about $600.

(What I really wanted was the low latency, but the bandwidth is handy to have sometimes)

10Gbps mesh for only $48, assuming you already have very modern (expensive) USB4 capable machines.

The article also seems to make the assumption that a server would be pulling 1000W all the time, 24/7, which is rarely the case (of course, I can't comment on what their workload might be, but it would be quite unlikely)

Still, I like the direct networking being done here. But saying "you can build a 10Gbps mesh for $50" when you have 3x $750+ machines seems a bit disingenuous. It is not unreasonable to get 10Gb SFP+ NICs on ebay for ~$50 a pop ($150 for 3)

  • $50 would be roughly all-in for the SFP+ NIC, two optics and a generous length of multi-mode fiber. I just did this, and here's the breakdown of my costs from eBay:

    1x Juniper EX3300-24p - $75

    7x SFP+ optics - $7/each

    3x Intel X520-DA2 NIC - $20/each

    4x 3 meter OM3 LC-LC fiber - $6/each

    1x 30 meter OM3 LC-LC fiber - $24

    -----

    Total: $232

    The EX3300-24p has 24x 1gb copper ports with PoE+ on them, and 4x SFP+ ports. If you need more SFP+ ports you'll want to find a different switch - but for a small multi-use home network the EX3300-24p nicely matched my requirements.

I recently wanted to do this and was surprised to learn that USB3 did not have a point-to-point mode like thunderbolt - some controllers had "dual mode" ability but the vast majority don't. I was doing this on Macs with thunderbolts 10 years ago but still couldn't do it on a PC today.

Despite being great in most ways, AMD desktop systems in general rarely have thunderbolt (unlike Intel) - a few niche motherboards have it. You also can't just add it with a PCIe card, it requires special support from the motherboard.

Hopefully this might change with USB4 not sure.. be interesting to see what the lower end motherboards end up shipping support for.

I use a shorter, similar cable when I travel with 2 macbooks (work and personal). I like to use barrier (software kind-of KVM) to share my mouse and keyboard between them and work on one, but use the other one for music and reference material. I get work/personal separation with the convenience of using one mouse and keyboard.

I simply set up static IPs on each one and also setup internet sharing from one to the other. Surprisingly barrier, internet sharing and even charging always works with this arrangement. I only have to connect 1 macbook to wifi and power.

I saw this mini-computer recently, the UM790 Pro, and I almost bought one as well. The AMD Ryzen CPU, AMD Ryzen 9 7940HS CPU, has a rating of ~30,000 on the CPU Benchmarks page (https://www.cpubenchmark.net/high_end_cpus.html) which is quite high end for the size/cost.

The only caveat is that I am running a 10Gbit ethernet network at home and it wasn't that costly to setup. A 10GigE switch costs around $500 CAD right now and that is all you need.

  • > A 10GigE switch costs around $500 CAD right now and that is all you need.

    Surely your machines all need 10GbE NICs as well? Admittedly my hardware isn't the newest (2.5GbE at most), but from a quick search 10Gig PCIe cards are around $150 each. Meanwhile 10-20 Gbps USB3.0 is reasonably common already. Though, using Ethernet still has many other advantages over running USB C cables everywhere.

    • There are also adapters from USB4 to 10 Gb/s Ethernet, for the case when it is desired to use a switch or long cables.

    • My MacMini M2 has one built in. My other machines, yeah, I did buy some, which go for around $100 CAD on Amazon (e.g. TX401). Ethernet is advantageous because my house is wired, so I can have my switching a central location.

    • server-grade 2x SFP+ 10G NIC pulls are pretty easy to pick up from eBay for about $20 each

      With a multigig capable SFP+ module it can handle 2.5G/5G copper as well.

This would only work for close range, right? To do a whole-house thing you'd need to get a bunch of USB-cat6 adapters which would end up being more expensive than a switch?

  • Yes a couple meters max, at full speed. The full speed cables are also quite expensive.

This was a selling point for the tras^H^H cylinder Mac Pros (2013), with Thunderbolt 2. I hear some teams constructed compute clusters based on that...

Didn't read the article, but the math they did about the R730 power draw is NOWHERE near realistic. A 1000Watt power supply unit (PSU) will only draw what is actually being used, not the full capacity 100% of the time. I have a fleet of R720's (generation before the example R730's) and their typical at-wall draw when running many VMs on them is about 150 Watts. So their math for that aspect is 100% WRONG.

That being said, neat concept IMO.

  • I also have a fleet of R720s and can confirm BloodyIron's numbers. Average draw is around 150 watts.

Side note about the author's distrust about cheap switches 'from China': i have installed many switches from different brands over the years, and the most reliable by a large margin where from TP-Link, easily beating the likes of HP, Netgear, Linksys and Cisco.

On actual network gear you'd typically drop the interfaces into a subnet/broadcast domain, but the blogger here has put everything in /32s and it looks like it's creating a peer connection without a shared domain.

Any particular advantage/disadvantage to doing it this way?

  • In this case the primary reason for configuring it as point to point links is that it matches the hardware topology. In theory there is a standards compliant way to create an ethernet-style network from this, but there are two critical software components to that that are not implemented in mainline kernels (namely raw Ethernet over TB and SPB).

    The main disadvantage inherent in the physical topology is that you are always going to do switching/routing decisions on the CPU. But as long as you use that as a virtualization platform or run k8s on that you are going to do that anyway and the additional overhead is probably irrelevant. (This assumes the full mesh topology, which with this hardware is not scalable over 3 nodes, might be to like 5 with somewhat more expensive consumer grade HW and is not really scalable to more than 8 nodes due to the sheer amount of cabling required)

Incredible. Traditional 10Gb network gear is very expensive to buy and to operate. $50 is a lot cheaper.

How good is error handling on USB 4? The rare times I've had data corruption it was almost always when transferring lots of data using USB (this happened to me on multiple drives, computers, usb ports or cables. this was in the early USB 3 days)

Would it not make sense to put the k8s network on 2.5gbe and give the three nodes a usb4 connection to a storage NAS instead? Assuming you can find a nas with 3x usb4 I suppose

  • A NAS typically doesn’t use or support connecting to a PC over USB, that would be DAS(direct attached storage), but even then they don’t support connecting to multiple PCs simultaneously.

    • The PCs in the article are connected to multiple other devices each so seems possible at least in principle.

      I don’t see why the same wouldn’t be possible for a NAS. Stuff like truenas can serve across multiple interfaces

    • Assuming the NAS can do the same networking over USB4 that the author used it could work.

8 Zen4 cores dont beat 16 Zen2 cores in multicore. Either Geekbench 6 does not utilize all cores, or the 3950x setup is borked.

  • Geekbench 5 pretended that all multi-core workloads were embarrassingly parallel by running N independent copies of the single-core test across N cores, with zero communication between threads. Geekbench 6 takes a more realistic approach so Amdahl's Law applies and it doesn't scale linearly with more CPU cores.

  • Geekbench 6 multi-core is a single-task benchmark. It runs one task at a time, using multiple threads when possible. This makes it scale worse and favor single-core performance more than benchmarks that run multiple independent tasks in parallel.

Maybe he can get 20 Gbps between 2 servers. You get half because of USB limitations (2 ports on the same hub).

Neat.

I stopped reading at "California’s average residential electricity rate is 15.34 cents per kWh" and checked my electricity bill. Here in California, I'm paying 40.82 cents per kWh. The website https://www.electricitylocal.com/ seems wildly off.

Edit: I did read the entire article. Just stopped to check what I was paying.

I suspect there will be some extra network latency using usb-c compared to a RJ hardware switch.

  • It is almost certainly the other way around. Even 1000-base-T PHY is complex block of analog magic that draws significant power and adds measurable latency over direct SGMII/optical link. In comparison USB4 is even more directly connected to CPU than the whateverMII interface of PCIe NIC.

    • For a while at work I was trying to use ethernet for embedded stuff because it seemed more modern than CAN, i2c etc. I couldn't figure out why so few microcontrollers support it. It turns out just normal copper 100Mbps ethernet uses about 0.25W per port (0.5W for 1 point-point ethernet link) so it doesn't make sense for embedded applications. Gigbit uses more but I forget how much more.