9

I have a notebook (Dell M6500, 16GB Ram, I7-940M) with RAID controller (hardware raid controller). At the moment I have two SATA HDDs in RAID 0 (stripe) for best performance.

I want to buy SSDs (Samsung 840 pro).

Does RAID 0 (striping) with two SSD disk make any sense or just one disk enough?

So 1 ssd 512GB (no raid) or 2 ssd 256GB (raid 0 stripe)?

  • 1
    It's a waste, you ruin latencies by doing that, which is a major reason for the SSD in the first place. – nerdwaller Mar 28 '13 at 15:33
  • No. The OS is asking for 2 SSDs rather than two HDDs. I see no mention of mixing one HDD and one SSD in a stripe. – Hennes Mar 28 '13 at 15:35
  • How much speed is enough? You sound savvy enough to test it out yourself! Save your Hard Drives, and try installs with one or 2 ssds. See if that makes a difference. Please remember that should one SSD fail, you will lose all of the data on the volume if you stripe. – G Koe Mar 28 '13 at 15:44
  • Oops, I misread the question. – allquixotic Mar 28 '13 at 15:46
  • I know that in a stripe configuration if one SSD fail, I will lose all of the data on the volume (I want performance, for backup I have other solution). Just like now (2 disk in raid 0 stripe). The question is if is better performance to have 1 ssd 512GB (no raid) or 2 ssd 256GB (raid 0 stripe). – Andrea Mar 28 '13 at 15:55

11 Answers 11

10

You need to read the question properly.

He is asking about RAID0 STRIPE, not RAID1 MIRROR.

My answer: YES you will have a significant speed improvement.

ref: http://staff.science.uva.nl/~delaat/rp/2009-2010/p30/presentation.pdf

Speed: My workstations do run Linux Mint using software raid (mdadm) and I do run 4 drives in a stripe having XFS as filesystem. Once you sit on such workstation, You do not want to turn back to the old days with ONE platter drive.

Backup your workstation daily with incremental backup, weekly a full backup just in case one SSD crashes.

Your speed is great but if ONE ssd does crash You loose a lot of data. So You are warned.

Backup and use cloud to store additionally files.

Storage: My NAS is purely running FreeBSD ZFS ZRAID2 for storage with 2+4 drives of 3TB, so I have 12TB and 2 drives of 3TB do provide redundancy, so I can loose 2 drives at a time without loosing data. My NAS does run on regular drives.

ZFS is currently the best filesystem for disks, for sure for storage. You can look for FreeBSD or a dedicated NAS software solution such as FreeNAS, ZFSguru, NexentaStor ... I did choose ZFSguru because I do like to teweak the FreeBSD system. I use iSCSI and SMB/NFS shares on it.

Servers:

My favorite is to use platters for ZFS and use SSD for ZIL in ZFS. But it is dark art.

NOTE 1:

Try to avoid hardware raids, in case of failure You need to have the same hardware again. Do not use the cheap raid controllers on the customer motherboards. Try to use software raid supported by the OS, just for sake of recovery, as the OS has more ways to deal with raid as most crappy raid software in those hardware controllers.

NOTE 2:

When using ZFS avoid at all costs hardware raid controllers. Look for motherboards with enough SATA ports to connect Your drives. There are dedicated controllers to without raid functionality.

Setup the raid using ZFS

NOTE 3:

SSDs no longer scale after 4 disks HDDs continue to scale after 5 disks

NOTE 4:

There are different types of SSD

You have SSD SLC and MLC. The first are the most expensive but the fastest and the best for heavy read/write operations.

3

Yes the write speeds do increase. I am running a raid 0 on 4 SSDs at 30GB each my write speed pushes 600MbPS I will be upgrading soon to 2x 256 SATA3 SSD Raid 0 drives, with only one disk it runs at 300MbPS so it is up to you, it also depends on the SATA rating if you have 2 SATA 3 SSDs you can write up too 900MbPS but that requires a Raid 0 set up as well. So it is completely up to you if you would rather have performance. Yes it is faster, and yes you will lose all the data, but if its just for gaming you can rebuild it in less than a day. Also if your options were to either get 2x 256GB SSDs or 1x 512 SSD i would go with the 2x 256 SSD, for much faster writing speeds.

  • 1
    Also the write speeds do have a hard cap depending on the SATA rating, but you can always go with OCZs PCI hard drives for performance. :D – Eryper Mar 28 '13 at 16:55
1

While you can RAID 0 two SSDs and in some scenarios see much faster read/write speeds (see this review from TechReport for an extreme example with 4 drives in RAID 0). A single SSD will offer good enough performance that I would not recommend it. Two drives in RAID 0 mean if one of them fails you will lose all of your data.

TechReport also has this review comparing SSD scaling across a drive family which can help compare the performance delta with larger drives.

A large part of the answer to this question will depend on your intended usage. Development, photo editing, gaming, etc can all have different storage access patterns. Best bet read reviews on the better tech sites.

  • With dropbox, and other good backup/data management practices, losing my primary OS drive doesn't really bother me all that much. – James Mertz Mar 28 '13 at 21:37
1

Here is the test I have done. you can decide your self looking at the result.

Enviroment

  • CPU: Intel Xenon CPU E5-2650 v3 @ 2.30GHz (core 10, Logical Processor 20)
  • RAM: 32GB
  • File : sample.rar (13.5 GB size)
  • Windows 10

Test

My workstation includes.

  • 2x 1TB SSDs setup as a RAID0 Drive
  • 1 TB Hard drive
  • Used Cygwin terminal, cp and time commands
  • If you are not families with time command uses 'real time' to compare each case

Here is the file copy time for each situation

RAID0 to RAID0

real    0m17.089s
user    0m0.140s
sys     0m10.686s

RAID0 to HDD

real    1m25.302s
user    0m0.437s
sys     0m21.078s

HDD to HDD

real    1m17.935s
user    0m0.265s
sys     0m14.921s

HDD to SSD

real    1m29.908s
user    0m0.359s
sys     0m13.281s

Note: In my workstation I uses this RAIDO drive to Compile 150GB large C++/C# project. This saved me more that two hours because of RAID0 setup. If you need how to setup the RAID0, have a look to the blog post I have wrote http://codeketchup.blogspot.sg/2016/03/how-to-setup-raid-0-with-ssd.html

  • It's hard to tell whether the results here are due to striping, or due to the SSD vs HDD performance. For completeness, you'd need to include non-striped SSD to SSD. – Drew Noakes Oct 11 '18 at 13:07
0

My work computer is a Dell M6500 and I am running a Corsair 240gb SSD. The M6500 has a SATA 2 interface, so you don't get the full speed of the SATA 3 drives. I will say that it is much faster than my personal computer, an M6400 with 2 160gb hdd's in a RAID 0 stripe. I believe you would see a boost with 2 SSDs, but not double what you would get with just 1 SSD.

0

you are after speed and don't care about redundancy.. so I will just answer that. Raid 0 may offer slight improvements so if the cost of 2 256Gb SSD is not to different to 1 512Gb SSD then go for it.

0

That is asking for an opinion, but:

It does make sense if your goal is pure performance for a single volume.

If does not make sense if:

  1. Disk access is fast enough (and even a single modern SSD will be fast enough for almost anything. Especially if the other potential bottlenecks are laptop components).
  2. If you need minimal power usage (you will be suing two drives all the time. A SSD uses less power than a HDD, but it will still be more than in sleep/standby mode).
  3. If reliability is needed (But then again, the same holds for two spinning disks in a RAID 0 / stripe)

All of this assume that "with one enough" you mean "Is one SSD (not in a stripe) enough. Mixing a SSD and a HDD should technically work, but depending on the RAID it might yield the worst of both worlds.

0

2X or Nx can speed up only if you do not saturate the bus, some motherboard share the bandwith along all sata ports they have, while others allow you to reach that bandwith on each port at the same time.

And remember... read speed is not the same as write speed... normally write speed is much slower than read (try to fast write on a SSD 32GiB in a row) most of them will go very fast a few megabytes and then drop down to a 25MiB/s or less (they use internal cache with a DDR3 memory inside the SSD, when filled they can not continue reciving data a that high speed, so writes get slower).

Sometimes you must do benchmarks, if you want fast boot (read is important, write not so much), if you want to write huge files with random data ensure your benchmark writes at least a few GiB as fast as posible, some SSD have 1 or 2 GiB of RAM inside the SSD for write cache... so better fill it full to do the benchmark.

About IOPs: This is the most important thing on ANY kind of storage (usb, sticks, platter disks, ssd, etc), for example for small files, or better said, for small chunks of data written/readed, ensure (for SSD) it says more than ... value.

Now answering your question: -If the 'big' one has less than 2x of IOPs than one of 'small' ones, do not buy the 'big' one... buy what gives you the 'max' IOPs

Beleave me, IOPs is much more important than read/write speeds that come in 'specs'... because: -They say the highest value reached (for write speed they use internal RAM on the SSD and do not write enough data to fill it... and some also use PC RAM as write cache, so they say some GiB/s write speed, such speed is your PC main RAM, data is not yet flush on the SSD)

NOW, for all those saying Raid0 will make you loose ...

If you do this, nothing get lost: 1.- Use RAID 0 for Operating System 2.- Create a clone of the Operating System on a USB enclosure (better if USB 3.1 Gen 2... 10Gib/s)

If one disk fail, you take out the failed one, put a new one, restore the clone and in a few minutes the system is booting again.

Now how to make that boot also fast after one or more disks on a RAID 0 die: 1.- After you have the Operating System as you want, create a clone on USB 2.- Take out that two or more disks in RAID 0 and put them in a safe place 3.- Put on the PC new ones and recover the clone

When one disk die, you have that other ones ready to be placed and boot... just a few seconds to do the swap and reboot... then create another set to put in a safe place.

This works for any kind of Linux Software RAID... Platter disks and also SSD.

The cost: Have the double of disks ... some working, others prepared with the data and ready to boot from them.

Now for data (not system) in RAID 0 and a zero loose on fail (except changes made prior to backup): 1.- After any write, BackUP the changes to external media (i personally use 5 different copies in different kinf of mediums, SSD, platter hdd, dvd, memory cards and usb sticks) 2.- Prior to power off system ensure your backups are in sync

Remember RAID 0 is great for 'speed' while you use it... but any fail and all what is ONLY there will get lost (the key is that word: ONLY).

Think you have a clone of the system on external USB enclosure... loosing the system is no problem, boot a Live Linux and restore the clone to the same disk (case software fault) or to new diks (case hardware fail).

Think you have all your data on some BackUP (more than one copy), loosing data inside the chase is not a problem, just copy back the data from the BackUP after fix what cause the fail (replace disks, etc).

Now think you also do not want to wait for such 'copy back'... that can be done by having a second set of disks in a ready to use state.

And finally think on... after a fail, while working do a background task to re-create such second set of 'ready to use'.

If you take this habbits... you will not ever again not use Linux RAID 0 ...

... except when you have a lot of RAM and can use ZFS.

ZFS main gains: 1.- Checksums on read/write, so can detect Bits changes when in off state 2.- Has a parameter that can let you have more than one copy of each file or folder you want (with and without RAIDZ levels) 3.- If you can afford loosing 50% or more of the space, you can use ZFS copies=N on just one disk (notebook) and in case some data get corrupted while in off mode, ZFS can still read correct (it stores multiple copies on the same disk)... also you can use it in parrallel with RAIDZ levels of ZFS.. it is making more redundancy.

ZFS copies=N is like old RAID 1 level but with checksums and auto-fix in case of detect bad data.

Waring about ZFS: RAM bit fail on some ZFS parts can ruin all ZFS and loose all such data... so never use one and only one ZFS to store data... have BackUP of all and have it allways.

0

I do not had tested with mdadm or hardware raid0, but i tested with LVM stripping.

The short answer is, combined read speed is lower than only one SSD read spead, if you use short stripes (for eample 4KiB stripe).

It looks like a race condition, seems like LVM is sending one block request to each SSD at a time, not in parrallel.

So if time to process the request is bigger than what the SSD takes to send data to RAM, 2 or more SSD will not be sending data to RAM, they will be most of the time waiting for commands and processing such commands.

Only when i start putting big strip sizes the combined read speed start going higher than single SSD, and i ama talking about 1MiB stripes; gain was about 1.3 to 1.5 times faster with 2xSSD than just only one.

So first, check how good is your SSD in 4KiB with queue depth of one, if it is really good, do not try stripping with small stripe sizes, better at all do not do stripping.

I had also test in two parrallel process, both dd commands to see if reading from both at the same time reduces the speed of them, the reduction is minimal.

So it is much better to use them for different things (OS / APPS) than striping them.

If disks where not SSD but rotational ones, striping makes a huge gain.

It is somehow that OS sends request to one disk at a time, and while OS is sending the request to the next disk in the stripping set, the previous one has sent all data to ram in such time, so must wait doing nothing, waiting for next request.

So i think LVM stripe is poorly implemented and can be improve by sending a request queue of stripes, so each SSD has more data to sent to ram on each request.

Math equation is: Time to start sending data versus time to send data to ram.

If first part is greater than second part of the equation, stripping only makes things go slower than only using one, to get a really big improve second part of equation must be much bigger than first part.

For GOOD SSD, fisrt part (on LVM) is bigger than second part. For GOOD rotation HDD, fisrt part (on LVM) is much more small than second part.

That is based on my own tests done with LVM2 on two fast SSD (>35Mib/S on 4KiB with a queue depth of one), i tested with stripes of 4KiB up to 1MiB; until 128KiB stripe size the combined speed was lower than using only one SSD, then combined speed is a little bigger till 1MiB that was the max (1.3x faster with 2 SSD than with just one)

So only a gain of 30%, while if i use them in parrallel on diferent tasks (not striping) i have a 96% gain (i can use 98% read speed on each at the same time).

Putting that in numbers, one SSD linear read at 386MiB/s, 2xSSD LVM2 4KiB stripe linear read at 186MiB/s, so it is much, much slower than using only one SSD; 2xSSD LVM2 1MiB stripe linear read at 487MiB/s; linear reading from both at the same (non stripped) in different process i get 374MiB/s from each, so combined it is 2x374=738MiB/s

So my conclusion based on the tests results is: With LVM2 the is very low gain on huge stripe sizes (1MiB) and a big lost with normal stripe sizes (4KiB upto 64KiB).

Please note i read with dd command from bulk device (/dev/sda, /dev/sdb) and from bulk logical volume (/dev/mapper/test-test), with status=progress and a block size of 1MiB with a count of 10000, so i read 10GiB; and i do a reboot after each test to fully avoid caches, etc.

I use SystemRescueCD live Linux version to avoid reboots differences, like booting form an inmutable disk (read-only media).

I hope someday i get knownledge to use Linux mdadm to test with software raid.

0

tl;dr basic benchmarking suggests RAID 0 (striping) can significantly improve throughput for SSD drives.

Benchmark Configuration

  • 2 x 1TB SSDs (SanDisk X600 SD9TB8W-1T00-1001, 2.5" 7mm Self Encrypting Drive)
  • Windows 10, software RAID
  • Lenovo P720 workstation, Intel Xeon Silver 4110 2.10GHz
  • ATTO Disk Benchmark 4.00.0f2

RAID 0 (striping)

enter image description here

RAID 1 (mirroring)

enter image description here

Individual disk

enter image description here

-1

I think it's a difficult question to answer. If you were talking about a desktop PC with a good hardware raid controller it would definitely get you better performance. In a laptop doing software raid you may find that you create a bottleneck on your CPU that will prevent much of a performance boost. Depending on how old the laptop is you may also find your performance limited by the SATA bus if it's running SATA II which can be maxed out by a modern SSD. I suspect you would get a performance boost but perhaps not enough to justify the effort, you won't know unless you test it.

  • I have laptop with hardware raid controller. – Andrea Mar 28 '13 at 18:32
  • That will definitely make it more likely you'll get a boost. – Col Mar 28 '13 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.