Sunday 23 June 2019

hard drive - How do PCIe to SATA expansion cards work, and does my PC support them?


I've recently been looking into getting a PCIe to SATA expansion card, which I think is otherwise known as a port multiplier (which was the first result in Google when I searched for such an adapter). I need one because I no longer have any free SATA ports on my system, but I'm confused about how exactly these cards work and how I can determine whether my PC will support them.


According to the above-linked Wikipedia page:



Many common controllers do not support this feature, as it is not a requirement for a SATA controller.



Elsewhere I've seen it implied that this means support comes down to the motherboard, and whether the SATA controller on the motherboard supports such expansion cards.


However, port multipliers like the following work by connecting to the PCIe port directly - why then would the card be subject to the motherboard's own implementation of SATA? Am I fundamentally misunderstanding how this technology works?


If support for SATA port multipliers does boil down to the motherboard, how can I determine whether my motherboard supports them? My motherboard is an ASRock H61M-HVS and supports SATA 2.0 (3GB/s), but searching the manual for "multiplier" doesn't return any results.



Answer



There are four basic "levels" of adding more SATA ports:




  • A USB-SATA adapter is cheap and easy, and quite fast with modern UASP (USB-attached-SCSI) support. However, they may not be good long-term as many of them do not support TRIM and cheaper (3.0/3.1gen1, 5 Gbps) ones are still slightly slower than internal SATA 3.0 (6 Gbps). Additionally, you end up sharing USB bandwidth if you have multiple drives. The simpler ones only support 2.5" drives as they do not provide 12V power. These contain a built-in SATA controller; some docks support multiple ports/drives.




  • A SATA Port Multiplier is possibly the cheapest option, and effectively shares the bandwidth from a single upstream SATA port. These are not always supported and I would generally discourage using them unless absolutely necessary (i.e. the other options are unsuitable). Unless you can find documentation (often in the SATA controller's spec sheet) and preferably also empirical evidence of support, you're better off avoiding port multipliers. These use (extend) the onboard controller.




  • A SATA HBA, also known as a "SATA PCIe card", is a reasonable option for adding small numbers of additional ports. These add an extra SATA controller via PCIe, and do not interact with the onboard controller. Some also offer "RAID" but it's usually just a form of fakeRAID and you're better off using pure software RAID. Look up the SATA controller model for more details. These are typically available in PCIe x1 lane and up.




  • The hardcore option is a SAS HBA. These are generally designed for enterprisey uses and are typically more robust than SATA HBAs. You may need a specialised cable, but you should be able to connect SATA drives with no issues. These additionally support SAS port multipliers, which are more reliable and better supported than their SATA counterparts. Again, look at the controller model for details (and be aware that many server OEMs rebadge them). Many also come with RAID (often hardware RAID) support. These tend to be PCIe x4/x8 and up.




Generally, for internal expansion, you're looking at either of the last two, in the form of a PCIe card. Plain SATA is usually cheaper, but if you cannot find one matching your needs (many ports, 6 Gbps speeds, etc.) it may be worthwhile to look at a SAS one, many of which are available second-hand on your favorite auction sites as companies replace older equipment. Keep in mind the cabling differences and PCIe lane requirements.


No comments:

Post a Comment

How can I VLOOKUP in multiple Excel documents?

I am trying to VLOOKUP reference data with around 400 seperate Excel files. Is it possible to do this in a quick way rather than doing it m...