Will mirroring with an SSD improve read performance?

8

4

If you use Windows 7 to mirror a volume across an SSD drive and a mechanical hard drive, will the read performance be similar to a single SSD drive?

I.e. is Windows smart enough to read from them both and use the data that comes back first?

Jon-Eric

Posted 2010-06-18T01:39:17.817

Reputation: 1 994

Wouldn't this be a question of your motherboard/chipset I/O bandwidth? – wag2639 – 2010-06-18T07:45:18.780

It does sound theoretically possible, but my guess is your RAID controller would have to know that your SSD is faster than the HDD. I'm no expert on RAID, but I'm guessing no RAID controllers support this. – Benjotron – 2010-06-24T16:58:45.303

I think you are going to just have to try it and let us know how it went. ;) – NitroxDM – 2010-08-10T06:59:49.887

You don't want to read from both. Remember that rotating disks can almost always convert writes to fast sequential writes (you end up with fragmentation, not seeking during write). On the other hand, seeking during read is unavoidable. Reading from the HDD would kill its write performance, better to always read the SSD. – Ben Voigt – 2011-01-13T22:24:28.137

@Benjotron: I don't think the OP has a RAID controller, otherwise Windows would hardly know there are multiple drives. In case you mean a fake RAID: those things are useless at best.

– maaartinus – 2011-09-09T23:49:29.600

Answers

14

In my test with two conventional hard drives, read performance was as good as the fastest hard drive but write performance was as bad as the slowest.

(Note the scales are different.)

Slow Drive - 46 MB/s

Fast Drive - 60 MB/s

Mirrored - 46 MB/s

Jon-Eric

Posted 2010-06-18T01:39:17.817

Reputation: 1 994

3

You'd need to use something like --write-behind available on Linux.

– maaartinus – 2011-09-09T23:52:03.120

2

(Disclaimer: it's really all theory for me - I've only played with RAID arrays once!)

This sounds like a really bad idea to me - as I understand things you want to have similar performance characteristics for drives mounted in RAID arrays. Maybe you wanted to mix a highspeed 'traditional' drive's continuous read speed with an SSD's low seek times? If so, you might be interested in a hybrid drive (NB it doesn't stripe data, but it does try to intelligently cache).

is Windows smart enough to read from them both and use the data that comes back first?

It doesn't quite work like that: the controller doesn't ask for the same information from both drives and then wait to see which comes back first. If you've got simple mirroring (ie RAID 1) then I'd imagine the controller will ask for 1/n of the total size wanted from each of n drives. For example, if you want to read 1024KB from an array of four drives. I imagine the controller will ask drive 1 for the first 256KB, drive 2 for the second, drive 3 for the third, and drive 4 for the last. The speed-up comes from four similarly performant drives delivering the data in parallel (so you'd expect total time to be quartered, with a little extra for overhead). Now if three of the drives are high performance, and one of the drives is dead slow, the slow drive's going to be the bottle-neck. So if you marry an SSD and a traditional HD you might end up with the worst of both worlds.


Edit:

I agree that in the simplest implementation, the slowest drive will be the bottleneck. However there are some smarter raid implementations out there. I'd like to know if Windows 7's implementation is smart enough to avoid that bottleneck.

I'm not sure what you mean by 'avoid that bottleneck'... what do you expect it to do? The performance gain comes from having drives performing reads in parallel. Now it depends what your usage patterns will be, but if you're performing lots of small reads for example, your traditional HD might never finish seeking (I'm imagining an 'intelligent' controller that doesn't just wait for the HD, but requests the same data from the SSD if it's sitting idle - dunno if that's realistic). So you get normal SSD speeds and thrash your traditional HD. You can also expect your write speeds to be bottle-necked. So what's the point?

Andy

Posted 2010-06-18T01:39:17.817

Reputation: 2 959

I agree that in the simplest implementation, the slowest drive will be the bottleneck. However there are some smarter raid implementations out there. I'd like to know if Windows 7's implementation is smart enough to avoid that bottleneck. – Jon-Eric – 2010-06-21T17:18:30.227

@Andy, you seem to have completely missed the point about using Windows 7 software RAID, we have no interest in what the controller does. Windows will issue requests to one or both of the drives - the controller has no choices to make. – mjaggard – 2013-02-19T15:48:18.757

@mjaggard My argument isn't affected by whether it's h/ware of s/ware RAID: wherever you see controller in my answer, I'm referring to whatever is handling the RAID. The principle of having a weak link in a RAID array is what I'm getting at. – Andy – 2013-03-01T15:15:46.143

0

Windows 7 is support RAID-1 and it is work great for mirrored volumes. Read performance will be faster than single SSD drive because OS can use split seeks technology, in other words OS can read data from both hard drives in parallel. Check wiki page about RAID for details.

mOlind

Posted 2010-06-18T01:39:17.817

Reputation: 450

p.s. OS didn't read same data, it read different parts of file at one moment and then join it in memory. – mOlind – 2010-06-21T14:35:46.457

The key is that if one of the drives is really slow (non-SSD) and the other is fast (SSD), I think you DON'T want to blindly split the seeks. I want to know if Windows 7 is smart enough to handle this situation. – Jon-Eric – 2010-06-21T17:15:45.990