Saturday, April 21, 2018

hard drive - Can the transfer rate of SATA limit the performance of a RAID array?


Let's say I have 4 drives and each of them has a transfer rate (random/sequential,read/write, it doesn't matter for the purpose of this question) of 250Mb/s. I put them in RAID 0. This means that I can get a performance of 250Mb/s*4=1GB/s.


Let's say that all these drives are connected to SATA III ports, so 6GBit/s or 600Mb/s.


Will the speed of SATA III (0.6Gb/s) limit the maximum performance of the RAID0 (1GB/s) because 0.6Gb/s is the maximum speed of the controller that controls all the physical ports?


Or every port has its own 0.6Gb/s lane, so SATAIII will not limit the RAID0 performance?


Answer



SATA-II's maximum wire speed is 3.0Gbit/sec. That is the speed at which the wiere can be toggled. It is not the same as maximum useful data transfered over this wire. For SATA-II the maximum data your can pump over it seems to be 230-270MByte/sec.


For SATA-III you can roughly double these numbers.


As long as you can pump quicker over the wire than the disk can read or write it you will not be limited.


Now lets look at these speeds:
Single classic rotating platter harddrives which are currently on the market (2016) max out way below this. A single HDD will not saturate a SATA-II or SATA-III channel.


Now you mention RAID. These are at least three ways to do RAID:



  1. With a dedicated hardware RAID card.

  2. Software RAID with each drive connected to its own SATA port.

  3. RAID with each drive connected to a port multiplier and the port multiplier being connected to a single SATA or eSATA port on the motherboard.


Case 1: Hardware RAID:


Hardware RAID cards are usually not limited by SATA limits. Most seem to offer one cable per drive and then you have the nont-limiting bandwith of each cable/channel per drive.


Case 2: Software RAID with each drive connected to its own SATA port:
Identical to hardware RAID case. Each drive has its own channel.
One HDD on one channel is not limited.
Two HDDs on two channels are not limited.
Three HDDs on three channels are not limited.
Four HDDs on four channels are not limited.


Case 3: Port multipliers:


Each drive is not limited in its speed when communicating with the port multiplier. But the communicating speed between the port multiplier and the motherboard might get overwhelmed. This is not likely a big issue until you use 4+ modern drives on a single port multiplier connected to a SATA-III channel.


This setup is also quite rare. It edges toward business cases where the user of SAS HBA's and HW RAID cards (usually SAS based) is much more the norm.


Still, it can be a limit, so to answer the question in your title:



Can the transfer rate of SATA limit the performance of a RAID array?



Technically: Yes. It can.


In practise: It will not with HDD.


With solid states drives things become quite different. Many modern SSDs are quite capable of filling the SATA-III bus. If you use multiple drives on multiple SATA busses (think multiple SATA cables) then this remains the case. If you are building a RAID out of SSDs then: Yes, a RAID array can be limited by SATA limits.


The solutions for that were SATA express (barely used, but faster) and the M.2. M.2 offers up to 4 PCI-e lanes to communicate with an NVME SSD, and even that limit is currently reached by newer SSDs. (Example: Samsung 961 with 3200MB/sec read speed).



Recap:
If you use a normal user setup with classic harddisks or not top of the line SSDs: No, SATA will not or barely limit you.


No comments:

Post a Comment

hard drive - Leaving bad sectors in unformatted partition?

Laptop was acting really weird, and copy and seek times were really slow, so I decided to scan the hard drive surface. I have a couple hundr...