I've been reading on SAS expanders, and the documentation everywhere is pretty consistent, in their function, and I found a great diagram:
https://preview.redd.it/5wsn7ol1cb3e1.png?width=797&format=png&auto=webp&s=b0c1466eae25325a4ee56954e156668732b85af4
But there's something I'm not really clear on, which is the exact function of the connection between the expander and the HBA; the link between the SAS expander and HBA is described like a network switch, but is it switching based on the available bandwidth in aggregate, or is it individual lanes? In the above example it's 8x1.2GB/s links, so does that mean it's got 9.6GB/s of available bandwidth to divide however it needs to (not unlike a 10gb/s uplink on a gig switch) or is it 8 1.2GB/s paths that are multiplexed to the drives as needed?
The difference I see here is that if it's an "uplink" of sorts where it's just using it for bandwidth it doesn't really matter, since it's such a massive pipe. But in a situation where it's "paths" and there are more active simultaneous disks than there are paths, it's oversubscribed and there could be performance limitations since I wouldn't expect the expander doesn't buffer data. That is to say, an HBA with 48 devices behind it screaming at once would be queued to "talk" 8 at a time.