2.5Gb Mini-PCIe NICs in USFFs

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

gargravarr

Member
Jul 1, 2021
47
3
8
Hey folks,
Not sure if this is specifically networking or the USFFs themselves. Haven't had any luck on Reddit though. This is mostly copy/pasted from that thread.

I'm running a Proxmox cluster on a quartet of old HP 260 G1 USFFs. They're very low power and cheap so I have no need to upgrade them.

Recently I've started using 2.5Gb networking - much as I would love to jump to 10Gb, cost/heat/not really being able to push packets that fast are issues I'm facing. I've added Realtek RTL8156-based USB3.0 NICs to each of the nodes, with a 2.5Gb/10Gb dumb switch between them. This serves two purposes - migration between the nodes via dedicated IPs, and shared storage over iSCSI from my TrueNAS machine via different dedicated IPs. The TrueNAS system is all Intel with 4x 2.5Gb I226 NICs and an X520-DA2 10Gb card. I currently have it connected via 10Gb DAC to the unmanaged switch. Each of the hypervisor NICs has two IPs - one for the migration network, one for iSCSI, all in the same layer-2 space (as I can't VLAN it). All 4 nodes connect to the same iSCSI IP on TrueNAS (which is separate to the web UI and file servers).

This setup works, but it doesn't reach the potential of 2.5Gb - in fact, it barely hits 1Gbps. This seems to be a known issue with the RTL8156 in the USB NICs. iperf3 does show the bandwidth hitting 2.43-2.50Gb in testing but in practise this doesn't seem to happen. During my overnight backups, I do see traffic hit a little over 1Gbps from TrueNAS when it does the dump to local disks before pushing to my other NAS, but doing a shared-storage migration of just the RAM between nodes only seems to reach 80-100MB/s. The TrueNAS machine can sustain 290MB/s during ZFS send/receive so I don't think it's a problem on that side. I did have to apply the steps in this post here: Fixing performance issues with Realtek RTL8156B 2.5GbE USB dongle in Ubuntu - CNX Software

From what I've heard, this is partially explained by the RTL8156, and partially by the USB connection. The 260s do have a Mini PCIe slot for optional wifi. I've managed to source some Intel I226 m.2 M-key cards from Ali Express. I thought I might be able to use a Mini PCIe to m.2 M-key adapter since it's all PCIe, but I'm having no luck - the 260 is not recognising any combination of cards. As the cards are pretty cheap, I bought a few different ones - some Realtek dual-port m.2, some Realtek single-port Mini PCIe. Unfortunately the latter turned out to be 1Gb cards, and testing them was the same result - no sign of life and no recognition in the OS. It's further complicated because the slots are half-length, so I generally have to break off the full-length section of the adapter which means it's not returnable if tests are negative. I have a 5th 260 G1 for testing with.

The slot does work, as I have one of the official HP wifi cards and that's recognised. I wondered if there might be an expansion card allow-list like Lenovo do (damn them), but I swapped in a spare non-HP wifi card and that was recognised too. I've considered whether the whole different-key setup with m.2 cards is the issue, but the fact that the native Mini PCIe card didn't work either is bugging me. Side note, I've tested the cards by getting a PCIe->m.2 M-key adapter and putting them into a spare machine, and all the NICs are detected. When plugged into the HPs, nothing is detected in those slots, native mini-PCIe or adapted m.2.

So I'm wondering, is it actually possible to add any NICs to these USFFs via the Mini PCIe slot? Or is there something that means it's not pure PCIe that I'm trying to tap into? I'm looking at another set of cheap Mini-PCIe NICs on AliExpress: https://www.aliexpress.com/item/1005006266147212.html but I'm hesitant to buy any more when I've had zero success with the first ones.

TIA!
 

Tech Junky

Active Member
Oct 26, 2023
370
124
43

M2 >> 10GE

mPCIE to me doesn't seem to have enough bandwidth to get 10GE. It might with the right slot / gen version though. There's a handful though of these M2 conversion units floating around for niche applications.

Personally I avoid RTL when possible and prefer Aquantia based options for mGIG speeds. Though RTL bought AQ so... there's that as well.
 

nexox

Well-Known Member
May 3, 2023
700
289
63
Lots of what you're trying to do is outside my experience, but I do know that some Mini PCIe slots don't actually have PCIe wired up - they're just SATA and/or USB, and some Mini PCIe wifi cards really use USB to connect to the host, while others will connect the bluetooth controller over USB and Wifi over PCIe. Part of the reason M.2 replaced Mini PCIe so quickly was because of this mess, now we have various keys in the socket to indicate what the electrical connection is (or should be, some manufacturers still fail to fully implement everything as required in the spec.)

Also, lots of non-managed switches will pass VLAN tags these days, you could probably run every port as a trunk and still get some layer 2 separation, for whatever that's worth.

If I had to guess I'd say your 2.5Gb USB adapters are about the best you're going to get with those systems, maybe there's one with a better controller than the Realtek.
 

blunden

Active Member
Nov 29, 2019
492
155
43
The original RTL8156 has some issues. The RTL8156BG and RTL8156BSG should be the newer revision that tends to work just fine. Most dongles you buy now, including the cheap ones tend to be the new revision now.

PCI-E in some form is better for a long term deployment though, if available. :)
 

gargravarr

Member
Jul 1, 2021
47
3
8

M2 >> 10GE

mPCIE to me doesn't seem to have enough bandwidth to get 10GE. It might with the right slot / gen version though. There's a handful though of these M2 conversion units floating around for niche applications.

Personally I avoid RTL when possible and prefer Aquantia based options for mGIG speeds. Though RTL bought AQ so... there's that as well.
Yeah... that's why I want to use 2.5Gb...

Lots of what you're trying to do is outside my experience, but I do know that some Mini PCIe slots don't actually have PCIe wired up - they're just SATA and/or USB, and some Mini PCIe wifi cards really use USB to connect to the host, while others will connect the bluetooth controller over USB and Wifi over PCIe. Part of the reason M.2 replaced Mini PCIe so quickly was because of this mess, now we have various keys in the socket to indicate what the electrical connection is (or should be, some manufacturers still fail to fully implement everything as required in the spec.)

Also, lots of non-managed switches will pass VLAN tags these days, you could probably run every port as a trunk and still get some layer 2 separation, for whatever that's worth.

If I had to guess I'd say your 2.5Gb USB adapters are about the best you're going to get with those systems, maybe there's one with a better controller than the Realtek.
I knew about the bluetooth bit, didn't think the wifi would be too. So I did some further testing. The wifi card is definitely connected via PCIe interface - under Ubuntu, I'm able to see it in `lspci` and see that it has a link width of 2.5GT/s 1x. And on the motherboard itself, it's labelled 'X1PCIEXP'. So it should in theory be able to support a 2.5Gb NIC.

I tried an m.2->SATA card in a Mini-PCIe->m.2 adapter (how many adapters can you chain...) and it did show up under Ubuntu, so there's definitely PCIe there. However, still no 2.5Gb NIC with the same arrangement, or Mini-PCIe->1Gb.
The original RTL8156 has some issues. The RTL8156BG and RTL8156BSG should be the newer revision that tends to work just fine. Most dongles you buy now, including the cheap ones tend to be the new revision now.

PCI-E in some form is better for a long term deployment though, if available. :)
Think my USB NICs are the original 8156, they don't mention any suffixes in `lsusb`.
 
  • Like
Reactions: nexox