10

I've heard about and read about RAID throughout the years and understand it theoretically as a way to help e.g. server PCs reduce the chance of data loss, but now I am buying a new PC which I want to be as fast as possible and have learned that having two drives can considerably increase the perceived performance of your machine.

In the question Recommendations for hard drive performance boost, the author says he is going to RAID-0 two 7200 RPM drives together. What does this mean in practical terms for me with Windows 7 installed, e.g. can I buy two drives, go into the device manager and "raid-0 them together"?

I am not a network administrator or a hardware guy, I'm just a developer who is going to have a computer store build me a super fast machine next week. I can read the wikipedia page on RAID but it is just way too many trees and not enough forest to help me build a faster PC:

RAID-0: "Striped set without parity" or "Striping". Provides improved performance and additional storage but no redundancy or fault tolerance. Because there is no redundancy, this level is not actually a Redundant Array of Inexpensive Disks, i.e. not true RAID. However, because of the similarities to RAID (especially the need for a controller to distribute data across multiple disks), simple strip sets are normally referred to as RAID 0. Any disk failure destroys the array, which has greater consequences with more disks in the array (at a minimum, catastrophic data loss is twice as severe compared to single drives without RAID). A single disk failure destroys the entire array because when data is written to a RAID 0 drive, the data is broken into fragments. The number of fragments is dictated by the number of disks in the array. The fragments are written to their respective disks simultaneously on the same sector. This allows smaller sections of the entire chunk of data to be read off the drive in parallel, increasing bandwidth. RAID 0 does not implement error checking so any error is unrecoverable. More disks in the array means higher bandwidth, but greater risk of data loss.

So in plain English, how can "RAID-0" help me build a faster Windows-7 PC that I am going to order next week?

3

11 Answers 11

14

A RAID-0 configuration utilizes 2 separate hard disks and writes "chunks" of data to each one to minimize actuator movement and read/write data faster (each arm does half the work in a sense). The caveat with this is that there is a lack of fault tolerance - if one drive dies, all of your data is gone. And since there is 2 drives handling your data, the chances of losing your data is basically doubled. You may want to look into RAID1+0, which give you speed benefits as well as fault tolerance. You can swap in another disk upon failure and have the other disks rebuild it.

The RAID-0 image from wikipedia domonstrates it well:

alt text

imagine the disks are showing a file called A.txt. Now, imagine each section as a 4096-byte cluster for example. Each disk is holding roughly 16384 bytes of this text file, and if one disk dies, there is no way to recover the other half.

If you are limiting yourself to 2 disks, I'd suggest only doing the RAID-0 configuration on the operating system. Any files important to you should be stored on separate media such as an external drive, or if it was a possibility, 1 more hard drive. If it meant the difference between having a fast machine without fault tolerance, or having a slower machine with my files safe, I'd choose a slower machine. For me at least, I'd rather be safe than sorry.

5
  • 3
    RAID 1+0 will require 4 drives to get any of the benefit, otherwise it's just a RAID 1. You might want to note that as the OP was only planning on getting 2 drives.
    – MDMarra
    Oct 25, 2009 at 21:15
  • 5
    He never said that he's limited to 2 disks. He just wants to know how having 2 can increase performance.
    – user1931
    Oct 25, 2009 at 21:25
  • 2
    As noted RAID-0 lacks the all important fault tolerance (redundancy) part. I would steer clear of it unless performance is the ONLY priority and even then it isn't all it is cracked up to be. It is good for copying large amounts of data but access times are not reduced and that is what is usually most noticeable in general use. Any reasonable SSD will produce a much more noticeable performance boost although with a much smaller capacity.
    – user10762
    Oct 25, 2009 at 23:29
  • 1
    RAID-0 trades reliability for speed. i.e. Your throughput speed is (very roughly) doubled and your fault tolerance is halved. If either drive in a RAID-0 array fails you loose ALL the data. RAID-0 is great for temporary storage of scratch data and also for your boot system (assuming it's well backed up) but don't use RAID-0 for long term storage of data you can't replace.
    – Chris Nava
    Oct 26, 2009 at 3:00
  • +1 for being the one of only two people to actually point out that 2x drives = 2x drive loss, unless some sort of fault-tolerance is added.
    – Lee B
    Mar 6, 2010 at 7:48
7

When you use RAID0 (striping), each block of data is written partially to one disk and partially to the other disk(s).

Say you write a 1MB file, if you have a single hard disk, it just writes the file. For the sake of argument lets say this takes 10 seconds.

With 2 disks in RAID0, each disk writes 0.5MB, for the sake of argument, this takes half the time, hence the performance increase.

Reading data is faster in a similar way, instead of reading 1MB from a single disk, 0.5MB will be read from 2 disks.

Note that RAID0 is not fault tolerant, i.e. the loss of a single disk in a RAID0 set will result in loss of the entire volume.

Windows 7 can create RAID0 volumes in the Disk Management tool. Your disks will need to be upgraded to dynamic disks and then you can create multi-disk volumes. Windows calls a RAID0 volume a "striped volume".

1
  • 2
    now that is speaking my language: "Windows 7 can create RAID0 volumes in the Disk Management tool." but is RAID-0 even relevant for a developer machine? I would think it would be more efficient (instead of "doubling the chance of failure" -- not something I want to do) to e.g. have an SSD which has the operating system and applications on it and a HDD which has my data, visual-studio projects on it, wouldn't that make more sense than RAID-0 in terms of speeding up my machine? Oct 25, 2009 at 21:29
2

RAID-0 alternates data on two (or more) drives to double (or more) the speed of read access. But this speed comes at the cost of a HIGHER risk of losing your data since if either drive fails, all your data is lost.

RAID-1 mirrors your data by writing a copy on both drives which results in a LOWER risk of losing your data, but it doesn't usually read any faster.

If you have 4 drives, then you can get the best of both worlds by using RAID-10 which is really RAID 1+0, ora mirrored data set (RAID 1) which is then striped (RAID 0).

You may also have heard of RAID-5 which lots of servers use because it not only stripes data but saves parity info as well so that any single drive can fail, and all the data will be safe and can be reconstructed onto a blank drive when the failed drive is replaced.

However, now that terabyte drives are becoming common, the statistical likelihood of an error on a drive is so high, due to the large amount of data, that there is a serious risk of failure of RAID-5 systems where a second drive goes before the first one can be replaced. It's mainly an issue in systems with small numbers of drives, less than 8 or so.

The solution? Use RAID-10 and it turns out that RAID-10 is faster than the fancy RAID-5 since no parity calculations are needed.

So for a fast development machine, I strongly suggest using RAID-10 so that you get all the speed benefits of striping without risking your data. Have a look at this article which also has a nice diagram of RAID-10 that is currently missing from the Wikipedia article. And note that going to 4 drives, may only double your storage, but it increases your read time by four times! If you use a compiled language then you will see almost all of that four times increase in faster compiles.

1
  • +1 for being the one of only two people to actually point out that 2x drives = 2x drive loss, unless some sort of fault-tolerance is added.
    – Lee B
    Mar 6, 2010 at 7:48
1

Essentially, RAID-0 is a way of treating 2 drives like one. And as such, with two drives comes two buses, two buses equals more speed.

Think of it this way. Instead of writing a 1MB file to a single hard drive, you write every odd bit to one disc and all the even bits two a second disc. Theoretically, you can then write and read data 2x faster. But the file is split between the drives. Therefore if one disc fails, all the data on the second disc is completely useless.

2
  • 1
    Modern 7200RPM drives can't saturate a single bus. The benefits in this case are the splitting of the blocks in a stripe across the two disks
    – MDMarra
    Oct 25, 2009 at 21:18
  • 1
    @MarkM "Modern 7200RPM drives can't saturate a single bus" I agree, if a single drive could saturate the bus, there would be little point in RAID0. But this answer is still correct in pointing out that the (theoretical) transfer rates ought to be doubled.
    – sblair
    Oct 27, 2009 at 12:16
1

So in plain English, how can "RAID-0" help me build a faster Windows-7 PC that I am going to order next week?

Unless you need lots of disk space for video editing: Do not use RAID-0. Instead spent the money for the second drive on a small SSD (80GB' ish).

If you want to use it, then thi sis the simplest explanation I can give:

Imagine a secretaty writing or reading froma book. Her speed is limited.

Now if you had two secretaries and two books then you could double the speed, but in practice most of the time one of them would be idle and the other would be hard at work. (E.g. read a chapter from one of the books will mean that the secretary with the book is reading as fast as she can, while the other has nothing to do).

Here is where we try to be clever with RAID 0: We alternate each word. Word 1 is in the first book, word 2 in the second book, word 3 in the first book, word 4 in the second, ....

Now when you read a chapter from the array both secretaries are busy. In theory you double your performance.


That is the least technical explanation I can give. Slightly more technical but very good is this answer on out sistersite.

0

RAID 0 will effectively stretch a single block of data over the two drives so that when that block needs to be written or read it is done partly on both drives, making the operation faster. If you have a 16K stripe size, for example, 8K will reside on each drive.

The problem is, as you have stated, there is no parity. If one drive dies, all of your data is gone, as half of every block will be on the dead drive. Usually I don't recommend that any drives be configured in a RAID 0, but if you must I wouldn't put your OS on it. I'd maybe get a small fast drive (think SSD) for the OS and RAID 0 2 other drives and just install your applications to that.

0

If I wanted a developer machine, where I do my development work on it, I'd want something reliable - so I'd go for RAID 1, where any data written is copied to your second drive.

This way, there's an exact copy of everything in your first drive, so if your first drive fails, you can switch over to your second drive and your system will feel like nothing went wrong at all.


But if you're still keen on going for speed then RAID 0 is like this:

You have two drives, drive1 and drive2.

You write a file, say, of 1MB, to your desktop. Now, when your RAID controller receives the file to write to the drives, it'll split your file into half - 0.5MB and 0.5MB, and write each of that into the respective drives, resulting in half the time needed to write the file.

And vice-versa when you're reading out the file. 0.5MB is taken from drive1 and 0.5MB is taken from drive2, so you get the file in half the time (in theory) than you would with only one drive. (We're not delving into random read access times yet)

So that is a super simplified version of RAID 0 and 1.


I personally run my Windows 7 installation on RAID 0 (2x 250GB), and I can vouch for the performance increase in write times. I installed Adobe Master Collection CS3, Full Suite, in about 1-2 minutes, compared to my old system with just a single 7200rpm drive, which took about 5+ minutes.

0

What RAID 0 does is basically have half of your data on one drive, and half on the other. What sucks is if 1 drive dies you lose all of the data. Do frequent backups. It basically doubles speed in some aspects, and stays the same in others.

0

Raid 0 is thebest thing when you work this way.

1.- You want/need fast speed on read/write task (like compiling a project with more than one million small files) 2.- Before you power off the PC you allways do a BackUp on external media

Why all people say if one disk of the array all data is lost? That is totally false if you have all in a BackUP.

What you loose is the access to the information stored on the array in normal access (forensic access may be able to recover some parts).

Raid X must not be used (never ever) as a BackUP replacement, so loosing the Array just because all disks fail at same time can happen (and sometimes happens), so any one using Raid (any level) still need to have BackUPs.

I allways do this (with Linux, not Windows, i will tell why not Windows later): Use three disks (max that my motherboard can, two Sata and one Pata) in Raid 0,then i partition the raid 0 for Linux root, another for Swap (only 2GiB of RAM, max motherboard can handle) and another for my data... and alwways have a BackUP on 5 external (USB) devices (Pendrives, DVD, HDD, etc.).

So if anything goes bad with any internal disk, i just replace it wit a new one, recreate the Raid and partitions and put back all data (OS files, boot, my data, etc)... just a few minutes... and ON again.

Gain: i triple the speed of all disks access... my motherboard is Sata I, and i get 80MiB/s of each of my disks (great considering 80MiB/s from Pata one is near the top).

On the Pata part i do have only one device (my motherboard reduces a lot the bandwith if i put two devices on same port, like HDD Master and DVD Slave, also it reduces the speed if i put two devices one on each port like HDD Master port 0 and DVD Master port 1, it seems absurd but it shares the bandwith between both ports), so i use the DVD onto an external USB enclosure (it allows to boot from such).

Now why on Linux and not on Windows?

My motherboard has no Raid capabilities, so Windows will never ever boot from Raid 0 without hardware assist, no mather if it is a ful Hardware Raid or just a Fake Raid, you need some hardware raid controller to get Windows boot from Raid0... the counter part, or just the opposite with Linux.

On Linux you can Boot from any kind of Raid, also ZFS... and you also can have grub.cfg file inside a Raid 0, and boot from that (grub stage need to know about lvm, etc, that can be if when install-grub2 you tell it to pre-load lvm module)... and also more... grub2 can boot with its files residing on an encrypted (LUKS) over another encrypted ... and so on as many levels you want, each with its own passphrase, algorithm etc, and on top of that or in the middle or on multiple points you can LVM (Raid) as you want... you can make it as complex as you want... also it allows you to use internal and external USB devices as parts, etc.

Windows is very limited, and on Windows Side (pure software without hardware) it needs all the disks to be Dynamic (not Basic) so you can not boot from them.

To make Windows boot device be Raid 0 it is mandatory to have hardware raid (pure 100% or just fake raid).

Also VHD/VHDX can not be Dynamic if you plan to boot Windows from inside them over real hardware (no virtual machine)... so again, no way...

Now i have two SSD that can write at >500MiB/s (tested on a friends Sata III Motherboard) the Pata part (Only giving 96 MiB/S) would look like a bottle neck, i only get 137 MiB/s on each Sata I port, so 137+137+96 would be 370... wrong... on Raid 0 it would be 3* slowest so, 3* 96 = 282, so using only two Sata i get 2*137=274, the gain of using that Pata SSD (using Sata to Pata adapter of course) is very near to 282, so i will stay only using two Sata and on BIOS disable the Pata ports... and surprise...

After disabling Pata ports, i got 146MIB/s on each Sata port... who knows why that increase? So 2*146=292 more than 282 i got when using three disks.

So i must say to all... test and test, and try absurd things on such test... like disabling Pata ports make Sata ports be a little faster.

But for Windows... Raid 0 on boot drive needs hardware raid, Raid 0 on dada disks that do not have boot nor system partitions can be done from disk managment.

So if you have three or more disks and Windows... one disk for Boot and System as Basic disk, and the rest make them Raid 0.

I do not understand why Raid 1 or Raid 5 on anything that is not server like (where you need zero down time)... Any Raid level does not avoid the need for BackUP, and if you BackUP all why do you need any level of Raid, except Raid 0?

For developers, etc (not servers) if disks fails, you can have plenty of time (one day or two) to restore all... and with a good clones of the system, a good BackUP of your data, andhaving on a desk another disk you can be ON in less than a few hours (power down pc, replace damaged disk, restore the Raid configuration, restore System, restore data from BackUP).

Anything not needed zero down time, just use Raid0 and ensure BackUPs are not forget to be done.

One more point... (i learn it the hard way)... with Windows... i save a text file (or a lot of them) on a NORMAL NTFS partition, i still work with other folders on that partition for some hours, i read such files some hours later... then i shutdown Windows normally, no warning, no signal anything goes wrong... next day i read that files and some of them were likesome days ago, did not reflect what was written and readed after... like if the file has gone to an old point in time... i lost part of my work... very weird, but happend to me three times... you think and you see data is saved on the files, after a reboot you see it really was not.

It is a BIG BUG telated to how Windows caches writes to disk and how NTFS journaling is very bad implemented... so i never ever trust Windows again... prior to reboot i do a BackUP on external media (USB pendrives, encrypted HDD with VeraCrypt, etc... where write cache is not managed by Windows itself) and then i force a Flush (VeraCrypt unmount) and a Windows eject USB, then i re-plug it and confirm (Bit2Bit) all data is identical... then Safe eject again USB, reboot or powedown.

At next boot i re-test again external BackUP... and sometimes find that: 1.-Files that was written to internal non Raid NTFS that were copied to external USB are OK on external USB 2.-Such files are in an OLD state on internal disk, so i must recover the new version from USB

It is really absurd... but the BUG caused this: 1.-Data is asked to be written to a file, write cache is ON, data is on RAM, never goes to disk (the BUG) 2.-You read the file (from RAM since it is on cache), never read again from disk 3.-You shutdown the Windows, RAM cache is not written to disk (the BUG) so next time file is readed, it has data on an old state.

Whatis really weird... i never ever see that BUG if NTFS partition is over a Windows Software Raid0... but if it is a Normal NTFS over a Basic Disk, it happens on Vista, 7, 8, 8.1 and 10 (version 1709 not jet seen, not enough time since updated to it)... it happens me near three times per year and been a developer is a total pain when happens.... fixed BUGs on source code reappears, etc.... till i follow theese steps: 1.-BackUP prior to shutdown over USB with no write cache on that device (using 7-Zip to compress and pack the >million small files onto a Big one). 2.-Safe eject USb 3.-Shutdown, reboot, etc 4.-On next boot, first thing i do is consider all data on internal disk can be on an old state... so i restore from USB all data. Now i am sure that windows BUG will not affect me again.

Since all that is a total loose of time and be not sure what was really saved i migrated to a mix solution Windows over VirtualBOX over Linux over Linux software Raid 0.

I start Linux, the VirtualBOX, then Windows... and on it i disable write cache on all disks... Linux cache is much better and i never see a similar BUG on LInux.

Linux OS is over Raid 0, VirtualBOX uses files as Virtual Disks (one for system, one for my projects, etc), each are over Linux Software Raid 0.

I gain in no pain about Windows not writting data (BUG of write cache ON) sice write cache inside Windows is OFF on all partitions Windows see. I gain Linux RAID 0 speed and Linux disk cache, for both, Windows System and Windows data virtual disks. I gain a lot of time... saving a 32GiB each day to USB 3.1 Gen 2 (10Gib/s, >1GiB/s) is done in less than a minute (in a Sata III motherboard) and in Sata I motherboard it is 32GiB/(2*146)=112 seconds (a little bit more than two minutes).

So Backuping all Windows and data tooks me lees than three minutes a day... so why not Raid 0? If i loose all it tooks me less than three minutes to restore such files... not counting Linux clone restore (that is about 20 minutes), 10 to replace hard disk, 5 to boot into a Live distro and five to recreate the Raid 0 and Linux clone restore.

So if one disk fails, i only need less than a half hour to be working again... and that at a cost of less than three minutes per day (for BackUP)... and BackUP day is a must, no matterwhatRaid you use, no matter if it is ZFS, etc.

There is allways the chance of human error, what if you delete the wrong folder? etc... BackUPs are the top most important thing to have when something goes really wrong.

And better to have historical BackUPs, notjustthelast state.

Having a really good BackUP habbits, Raid 0 is a really improvement with zero lost risks (you have BackUPs so data is lost from Raid array but not from your BackUP).

0
0

I understand this post is old but no one mentions data recovery software to rebuild the missing blocks from the failed hard disk in a RAID0. Today with good recovery software data from failing drives can easily be recovered even when there is a breakdown and to retrieve the information it may require the drive to be opened etc to recover the lost information that can be recovered in most cases even though lost blocks will be on the dead drive.

-1

In "plain english", by analogy:

You're a bread server. Break a loaf of bread, put half in each hand. You now have a raid-0 loaf. It seems like it is twice as fast to hand off the loaf of bread, since you are using two hands, but it is actually only as fast as the person (controller) can handle a request from someone for a single bread and put it back together. In a specific set of circumstances, it is faster, for instance, if two people each ask you for half a loaf of bread and you use your two separate hands to hand them off without caring which it came from. 2 people satisfied at once. That's a fast and loose approximation of the performance of raid-0.

Where a single person is asking for a single full loaf of bread, half in each hand, it MAY OR MAY NOT be faster having it in RAID-0. It all has to do with the loaf of bread size. If a single full loaf can be handled in 1 hand, then RAID-0 is slower than a single drive. The analogy here is the drive's readahead and block transfer size. If the data fits in one block transfer and/or readahead scan, then asking for it from two drives adds the latency to both position the drive heads (or the hands), and then put the loaf back together.

In several ways this is accurate. The performance of RAID-0 is 100% constrained by the bandwidth of the controller and the bus. For instance, it can seem like soft- RAID-0-ing two sata-ii ports on the motherboard will produce 2x sata-ii speeds. In many cases, a sata-ii chipset controller only has sata-ii bandwidth available, so even a RAID-0 request that hits both drives equally will max out at a single sata-ii port speed. The same is true for dedicated hardware RAID cards that are not attached to a fast enough bus. (e.g. pci-express x1). Bread can only be handled and given as fast as the person's brain doing it can coordinate.

Now failures:

Now, if one of your hands gets chopped off, you lose half a loaf of bread forever. It fell somewhere along with your hand. You never have a whole loaf. That isn't as good a approximation, since you can still eat half a loaf of bread.

Here is where technical accuracy deviates somewhat from the analogy. When your data gets broken in half, it is pretty useless (usually entirely). BUT since some mundanes here are concerned about technical accuracy in a post asking for "plain english", I will point out that it is not correct that all the data is lost if a single drive dies in RAID-0. It depends on whether a single "modular" (in plain english) data object (perhaps a file, perhaps not) fits within a single stripe, occupying a single drive. If say your stripe is 64K, and your file is 63K, then if it is on the surviving disk, then your file has survived. It now becomes a job for data forensics and having FS table entries on the surviving drive. If the data/loaf was split across two drives, then the loss of one is the loss of half of the loaf. It is your decision whether the other half is still usable somehow. Just usually it wont be without a lot of work.

In "practical terms", you won't see a lot of benefit from software-raiding two drives together, 7200 or otherwise in the device manager. Code usually fits into a single stripe, so only one drive would be active at a time. The OS will fit mostly into ram. There are only a few circumstances where RAID-0 will give a performance boost. Get an SSD, almost all circumstances are covered.

roughly speaking, "parity" is extra data that can be used to determine if original file contents are accurate or corrupt. More accurately, it is a bit that checks if two original bits are together even or odd. Say, data bit A on one drive, and data bit B on another drive. Parity P would be a combination of A and B from different drives. (say A + B = P) (where '+'=xor here). If drive_a with A fails, then with parity, A can be recovered, from A = P - B. RAID-0 has no parity. That means that if one drive_A fails, then the data on drive_A has been lost forever. RAID with parity can reconstruct the missing drive. Because RAID-0 also splits up individual files, loss of drive_A is loss of bits in the files split across the drive, and usually also the filesystem table and journal itself.

In plain english, RAID-0 on its own really can't help you build a faster PC. There are too many other variables. For instance, without a dedicated controller, you can't RAID-0 your boot drive. That means it has to be a separate partition or drive -- ergo, the OS is not "accelerated". So will you RAID-0 two data drives for programming? Have big files?

2
  • "If one of your hands gets chopped off, you lose half a loaf of bread forever." is not quite right. You lose the whole loaf of bread. If one drive fails you lose all the data.
    – DavidPostill
    Jan 23, 2017 at 23:02
  • that's what I said. "this isn't a good approximation, since you can still eat a half loaf of bread". BUT, depending upon the size of the data, whether it fits within a stripe and the location of the FS metadata, you may not lose ALL THE DATA. But it does become a job for forensic recovery.
    – Beracah
    Jan 24, 2017 at 4:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .