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

0

1

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?

Andrei

Posted 2016-10-14T12:07:46.710

Reputation: 143

6 GBit/s is actually 0.75 GB/s, since a byte is 8 bits. 6 GBit/s is 750 MB/s or 6000 MBit/s. – cascer1 – 2016-10-14T12:10:23.143

14x 250 milli bit per second is indeed not 1 giga byte per second. – Hennes – 2016-10-14T12:18:09.583

@cascer1 6GBit/s=0.6GB/s=600Mbit/s. Here's a wikilink https://en.wikipedia.org/wiki/Serial_ATA#SATA_revision_3.0_.286.C2.A0Gbit.2Fs.2C_600.C2.A0MB.2Fs.29 You're talking about gibibits or gibibytes, etc. You have them mixed. Anyway, even if you would be right, it doesn't help the question at all.

– Andrei – 2016-10-14T12:30:33.140

@Hennes You cannot have subunits for bits, so I think it is clear enough that m stands either for 10^6 or 2^20. This doesn't help the question in any way. – Andrei – 2016-10-14T12:33:35.083

1Yes, I could (should) have let the m vs M part slip. But the b (bit) vs B (byte) part is rather important. – Hennes – 2016-10-14T12:35:26.313

I interpreted Gbit as GigaBit (10^9 bits) and GB as GigaByte (810^9 bits), I then interpreted MB as MegaByte (810^6 bits) and mb as MegaBit (10^6 bits)

Conversion table on Wikipedia

I believe this discussion is important to the overall quality of content on the site, we don't want people reading this and assuming a byte is 10 bits.

– cascer1 – 2016-10-14T12:39:22.220

@Hennes bit is always written as bit and b or B means byte. I don't care about IEEE, but only about IEC/ISO. Still not relevant to the question. – Andrei – 2016-10-14T12:43:22.543

Furthermore, I'm not sure where that 600MB/s even comes from. Any conversion method I use (own calculation, Google, Wolfram Alpha, Conversion table on wikipedia) says that 6.0Gbit/s equals 750 MB/s – cascer1 – 2016-10-14T12:45:35.837

@cascer1 8b/10b Encoding. So basically you just divide by 10 and magically receive the actual transfer rate. – Daniel B – 2016-10-14T12:54:27.593

In the context of SATA you should take into account 8b/10b encoding https://en.wikipedia.org/wiki/8b/10b_encoding I think it would have been pointless to mention this in the question itself, as it doesn't change the meaning of the question at all, but it complicates it without adding any new information.

– Andrei – 2016-10-14T12:54:49.167

Answers

1

Wire speed

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.

Data speed

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.

RAID.

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.

Solid state drives.

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.

Hennes

Posted 2016-10-14T12:07:46.710

Reputation: 60 739

This is a bad answer as it completely ignores everything in the question, but the question title. – Andrei – 2016-10-14T12:56:27.737

First part answer the title. Second part (with That means with 4 drives your have 4x SATA-III bandwidth.) ansers question the OP intended. As in, no, does not limit performance under normal circumstances) – Hennes – 2016-10-14T13:01:49.557

I don't understand what do you mean by in most common home setups. Why did you assume this is a common home setup? Why do you mention port multipliers (maybe they are relevant, but I just don't get it)? How do I know it applies to me and I am not in one of the other cases? My question does refer to a case where each drive has its own port and cable, as mentioned in the question. Do you have any minimal documentation, maybe a wiki link, or any kind of supporting logic? Anyway, thank you for the information that you offered. – Andrei – 2016-10-14T13:17:29.793

@DavidSchwartz: there was a massive amendment about 2 mins before your comment. I had the same thought as you until I noticed the edit. – Yorik – 2016-10-14T17:16:06.570

I suppose there's something wrong with my question and it cannot be easily understood, since you first answered too little, and now you answered more than I asked. Anyway, you did also covered my question with your edit, so thank you and I am marking it as an answer. – Andrei – 2016-10-15T11:19:14.543