also does it make sense for the 9305-24i to be more expensive than the 9500-16i, seeing as the latter is PCIE 4.0 and newer, or is that fact the 24i has 6 x MiniSAS HD ports more desirable and flexible vs 2 x SFF-8654 ports?
I am drawn more to the 9500-16 because a single SFF-8654 cable can be broken out into
8 sata/sas cables or
2 U.2/M.2 cables, so if my theory is correct, you could run 8 HDDs in Raid 10/5/6 or the ZFS equivalents and then have 2 NVMEs in Raid 1/0 as superfast pool or cache all via one HBA card, all in the PCIE 4.0 x 8 (15.754 GB/s) slot, and in my usecase, a TrueNas VM in proxmox, that is the only card i would need to passthrough for everything, which is very exciting
I have learnt alot about bifurcation, PCIe Switching /PLX Switch cards in the last few days and thought to share the information,
Firstly in my response to my original post, it makes sense why PCIe 3.0 x8 Cards (9207-8i, 9300-16i, 9305-16/24i etc) are all what people need in terms of bandwidth
Version | x1 | x2 | x4 | x8 | x16 |
3.0 | 0.985 GB/s | 1.969 GB/s | 3.938 GB/s | 7.877 GB/s | 15.754 GB/s |
4.0 | 1.969 GB/s | 3.938 GB/s | 7.877 GB/s | 15.754 GB/s | 31.508 GB/s |
5.0 | 3.938 GB/s | 7.877 GB/s | 15.754 GB/s | 31.508 GB/s | 63.015 GB/s |
Also PCIe 2.0 x8 is 3.938 GB/s for the older gen HBAs
I forgot that HBAs are just
'dumb' cards that split bandwidth equally, so a PCIe 3.0 x8 with ~8GB/s bandwitch, using SAS expanders/ backplanes, you can easily saturate 24 drives because itll be ~8000/24 = 333.33 MB/s of bandwidth allocated to each drive, which is higher that the peak 250 MB/s of modern day SATA HDDs (unless you start to use
Dual Actuator drives or 10K, but those are not as common), and therefore if you plan to use a max of 16 HDDs, a PCIe 2.0 x8 is also enough because ~4000/16 is 250 MB/s, which is around about the peak of modern day hard drives, but if you start to mix HDDs and SSD (Sata 6Gb/s) because, if for example you are using 8 HDDs and 4 SATA SSDs via a HBA, in a PCIe 2.0 x8, because ~4000/12 is 333.33 MB/s so while the 8 HDDs will be able to fully saturate the 333.33 MB/s max bandwidth, the SSDs will be bottlenecked as they can easily reach 550 MB/s, but because HBAs just split the bandwidth equally, they'll be limited to 333.33MB/s, so thats why having a PCIe 3.0 x8 HBA would be better because then the 12 drives will have a max bandwidth allocation of 666.66 MB/s (an annoying sequence of numbers), and therefore you'll be able to saturate both drives fully
I must add that HBAs split it
equally via the ports to take a 9305-16i, which is a PCIE3.0 x8 that has 4 MiniSAS-HD ports, each port has a max theoretical bandwidth of 2GB/s, you could allocate 2 ports (4GB/s) to a SAS expander for HDDs and use 16 HDDs for 250MB/s per drive, and the other 2 ports for 8 SSDs which a max of 500MB/s per SSD (which is very close to SATA 6Gb/s speeds)
[see the edit below for a newer opinion on HBAs & SAS Expanders \/]
So going back to my original post the 9500-16i is PCIe 4.0 x8 so ~16 GB/s split between 2 x8 SFF-8654 SlimSAS ports, so 8GB/s each, if you was to use one of the SFF-8654 ports to
2 U.2 /
2 M.2, because the bandwitch is split equally, the U.2/M.2 NVMe will be running at PCIe 4.0 x2 (PCIe 3.0 x4 effectively) 4 GB/s which is annoying for raid 1/mirror purposes because the max sequential read speeds are held back, (unless you are fine with the speed) on the other hand, using a
x8 SFF-8654 SlimSAS to 2x MiniSAS HD SFF-8643 and an
Adaptec AEC-82885T SAS Expander, (which is pretty cool because it supports both internal and external expansion) you can easily connect 24-36 HDDs or 14-16 SATA SSDs or mixing and matching with the massive 8GB/s bandwidth available, again HBA's split equally per port so you'd have to bare that in mind.
So back to the bifurcation dilemmas we have, by using a PCIe switch card / PLX Switch card, it can dynamically allocate the bandwidth when it’s actually needed, but the problem is that those cards are expensive, for example Highpoints lineup of PCIe 4.0 PLX Switch cards for M.2 / U.2 are expensive because they are filling a niche (i'll explain why its a niche later) the
rocket 1580 which can support 8 x U.2 drives cost
600$, the
rocket 1508 which supports 8 x M.2 drives cost
800$, and the
rocket 1504 which supports 4 x M.2 drives cost
640$, these are very expensive because it uses PCIe 4.0 which is still new for PLX chips, they are especially cool because you can put it in a X8 slot and still be fine bandwidth wise, it depends on your use case, the reason why you can find alot of PCIe 3.0 PLX cards is because its an old chip that has been produced for years now and therefore is cheap, also PCIe 3.0 is still fast if you are limited by 10Gb/25Gb network speeds, you can actually get external NVMe enclosures for U.2 drives (which have PCIe switching built in), but they are
very expensive and are PCIe 3.0, or buying
C-Payne PCIe 4.0 PLX switch device are again very expensive, but PLX switching is very cool because the bandwith is managed dynamically and in theory you can use any device in those X16 slots (although it comes with a latency cost).
The reason why cards that don't require bifurcation are so niche these days, is because of where server / workstation platofrms have been going, EPYC, Threadripper, Xeons have had 64-128 lanes for a couple generations now (and have therefore killed the need for expanding IO past its normal/hardware limit), and because older EPYC or Threadripper go relatively cheaply on marketplaces, it just makes sense to get a 2nd gen EPYC and a decent motherboard, and now you have 128 PCIE 4.0 lanes, paired with cheaper bifurcation cards / splitters / adapters, its very appealing. i was listening to
MLID podcast with a former AMD Product Manager, and he basically said the market/demand dictates alot of things and the reason why consumer AMD and Intel wont go past 30+ PCIe lanes these days is because most consumers just don't need it (its definetly possible though), if they do, they just need to move up to TR or EPYC with has a crazy amount of I/O potential
But anyways if you read all of this, i appreciate you
[Jan/24 Edit:] some corrections based on new information
The 8i or 16i in a HBA refers to how many SAS 12Gb or SATA 3/6Gb lanes it can handle, so the max bandwidth for a 8i card (9207-8i) is (8x12Gb) 9600MB/s split by 2 ports, which is 4800 MB/s per port on the HBA (the per port max bandwidth is useful when using a SAS expander). Similarly with a 16i card, it would be 16 x12Gb 19200MB/s, but saying that, the actual max speed usable to the CPU / system would be limited by the PCIe lane speed, eg 3.0 x8 = 8000 MB/s, so when using just a HBA by itself, let's say a 16i card, connecting 12HDDs and 4 SSDs on a 3.0 X8 (8GB/s) card, you should still be okay because the HBA allocates each connection a max of SAS 12Gb or SATA 3/6Gb bandwidth, but you are limited by the PCIe lane bandwidth.
The best way to think about HBAs & SAS Expanders is like a network switch trying to access the internet with high speed uplinks(4i or 8i or 16i or 24i) but they are ultimately limited by the WAN speeds (PCIe lane bandwidth). if you take a 9207-8i which has 2x 4i ports and you are only using SATA 6Gb/s drives (8x6Gb/s - 4800 MB/s), if you allocate both ports to a SAS expander, you can connect to 19 HDDs(250MB/s) that can be saturated fully all the time, but also you can connect to 24 or 48 drives if you don't mind the 200 MB/s or 100 MB/s bandwidth allocated to each drive, or if they all drives don't need the bandwidth at the same time due to mixed workloads, they can all be run together without bottlenecks
This reddit thread has some key infortmation in it