A highly resilient raid solution!
By Red Squirrel
Before we start, let's first start by a quick introduction to what raid is, and why you should use it. If you are familiar with raid, you may skip to the 2nd page of this article. Raid stands for Redundant Array of Independent Disks. Some also say it stands for Redundant Array of Inexpensive Disks. This can be true but is not always the case, so the first is usually the accepted term. What raid does is it takes multiple hard drives or other storage devices and puts them together, creating a single volume. This is done for different reasons such as performance and redundancy.
Software vs Hardware Raid
For raid to happen, something needs to take the disks, and process/encode the information. This process requires a "program" and some resources. There are two main areas where raid is implemented. Sometimes it is done at hardware level, other times at software level. Hardware level raid happens before the operating system sees it, and thus is usually independent of the OS. Basically, a raid card is used to connect the drives to it. Most raid cards will have a bios or other management utility which will allow you to configure the raid without the need for the operating system, or using an utility in the OS to talk to the card directly. It is also said to be higher performance, though this can possibly be debatable with today's high end CPUs. I have not done any benchmarks myself so I cannot comment further on that.
Software raid does not require any special raid card, and is handled by the operating system. The operating system will see all the disks individually, then present a new "raided" volume to itself, which is what can be formatted and treated as a hard drive. The advantage to this is that it costs much less, and in the case of Linux raid, actually offers features that even the most expensive raid cards wont have, such as being able to convert or grow raid volumes on the fly while the data remains live. The disadvantage is having to rely on the operating system. You can not easily put the operating system itself on a raid, because the operating system needs to be started for the raid to work. If you use a 3rd party software such as Acronis, it will not see the raid as the operating system is not started. It also uses the cpu while a raid card has it's own cpu, though the advantage of that is today's cpus are so fast that it will barely put a dent in it, and may even increase the performance.
Another advantage of software raid is there are less points of failure. If a hardware raid card fails, it may be very hard to recover the array as it will be encoded by that specific raid card's standard. In some cases you may be able to buy the same card and recover the array, but other times even that wont work. With software raid, any controller will work, as long as it can present the disks to the OS. You can even have raids that span multiple controllers. Ideally, a non raid card can be used, but a raid card is fine as most will just present the drives to the OS without raid.
If you do go with hardware raid, beware of cheap raid cards, as often they are what is referred to as "fake raid". Basically this is a card that requires the OS to have the proper drivers, and is actually somewhat software controlled. If you're going to use such card, may as well just use software raid. If you want real hardware raid, be ready to pay upwards $1,000 or even more for a good card. This is where Linux raid is nice as you can get a solid solution without paying that kind of money.
Also one thing to note with raid, vs other systems like JBOD, is that in most cases, all disks need to be the same size. If they are not, they are treated as if they were all the same size as the smallest disk. Because of the way raid works, this makes sense as the disks are evenly used at the same time.
There are many different ways of combining drives to create a single volume. Some are geared at performance, while others are geared at redundancy which means if a drive fails the raid remains online with all data intact. There are many levels, but here are the most widely used:
The images on the right represents multiple hard drives, and the red one being a failed drive. The string ABCDEF is written to the array. Depending on the raid level, the failed disk's data may be on another disk, aka, redundancy.
Note that this is a very basic explanation of raid levels as this article is more focus on MDADM raid rather than explaining raid itself. There are also many other raid levels such as raid 2 raid 3 raid 4 raid 5e (enhanced) and even raid 5ee (extra enhanced??), but these are the main ones.
This site best viewed in a W3C standard browser at 800*600 or higher
Site design by Red Squirrel | Contact
© Copyright 2020 Ryan Auclair/IceTeks, All rights reserved