Almost all modern servers are shipped with RAID controllers – redundant array of independent disks. Despite the fact that this technology was invented more than twenty years ago, nowadays the importance of it can scarcely be exaggerated. In most cases your hosting provider cares about RAID initial setup. So if you don’t want to know how setup RAID you don’t have to. At the same time you often can encounter a problem of your RAID controller type determination. So let’s consider various RAID types. No difference which Linux distribution you use – Ubuntu, Fedora, Debian, etc. – there are three types of RAID:
3. on-board solutions (sometimes called “fake RAID” or “host RAID”).
In the simplest case you have only software RAID. It could be determined without any software just by looking at /proc/mdstat file.
/proc/ is a Linux pseudo-filesystem which kernel uses for keeping various system parameters including this one. In spite of it’s just a file it’s very useful for managing and monitoring software RAID. If you have software RAID you will see something similar to the following:
[root@storage ~]$ cat /proc/mdstat Personalities : [raid1] [raid10] md2 : active raid10 sda3 sdd3 sdc3 sdb3 959194880 blocks 64K chunks 2 near-copies [4/4] [UUUU] md1 : active raid10 sda2 sdd2 sdc2 sdb2 17385216 blocks 64K chunks 2 near-copies [4/4] [UUUU] md0 : active raid1 sda1 sdb1 sdd1 sdc1 96256 blocks [4/4] [UUUU]unused devices: [root@storage ~]$
Besides you can simply run df command and if you see md devices it means you have software RAID.
[root@storage ~]$df -h Filesystem Size Used Avail Use% Mounted on /dev/md2 915G 512G 403G 56% / tmpfs 5.9G 1.6M 5.9G 1% /dev/shm /dev/md0 92M 43M 44M 50% /boot
To figure out your RAID level you should check first line of each device description.
md2 : active raid10 sda3 sdd3 sdc3 sdb3
As you can see here we have block device md2 that has level 10 (or 1+0 if you will). String “sda3 sdd3 sdc3 sdb3” means that we have four devices (or more exactly partitions) in our RAID device md2. Four U letters in brackets [UUUU] indicate that all of our devices are active. So if you need check your software status you can do that just by checking /proc/mdstat. If one or more HDD failed you will see something like this:
[root@fs ~]$ cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid6 sdh1 sdg1 sde1 sdb1 sda1 1953545728 blocks level 6, 128k chunk, algorithm 2 [6/5] [UU_UUU] unused devices:
At this point you can stop reading if you are sure you have only one RAID controller and it’s software one on your server.
But what should you do if you know you have hardware RAID?
Of course you can contact your provider support and ask them but for some reasons it’s not always possible. It would be a good idea to install all necessary software from the very beginning. You might need lshw and or lspci.
If your server is run by Ubuntu or Debian use aptitude or apt-get to install them:
[root@fs ~]$ aptitude install lshw pciutils
If your choice is RPM-based system such as Fedora or Centos use yum:
[root@fs ~]$ yum install lshw pciutils
Once you have these tools you can use them to find your RAID type.
[root@storage2 ~]# lspci | grep -i raid 03:00.0 RAID bus controller: 3ware Inc 9690SA SAS/SATA-II RAID PCIe (rev 01) Subsystem: 3ware Inc 9690SA SAS/SATA-II RAID PCIe
In most cases this output is your actual RAID controller. To check it use lshw.
Most common hardware RAID controller vendors
[root@sorage3 ~]# lspci | grep -i raid 06:00.0 RAID bus controller: Hewlett-Packard Company Smart Array Controller (rev 04) [root@storage3 ~]# [root@storage4 ~]# lspci | grep -i raid 01:00.0 RAID bus controller: Adaptec AAC-RAID (rev 09) [root@storage4 ~]# [root@storage5 ~]# lspci | grep -i raid 01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 1078 (rev 04) [root@storage5 ~]#
On-board RAID controllers
Some motherboards contain a chipset with RAID functions. It is a device with simple functions like XOR and the other simple ones. Sometimes such controllers called fake RAID. One important thing about on-board RAID is HDDs mapped via /dev/mapper/chipsetName_randomName. So you can always check them out with these files. To verify if your RAID controller is an on-board solution you need to check you motherboard specification. To find you motherboard model use lshw or dmidecode.
Base Board Information Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD Product Name: MS-7142 [root@storage6 ~]# lspci -vv | grep -i raid 00:08.0 RAID bus controller: Promise Technology, Inc. PDC20270 (FastTrak100 LP/TX2/TX4) (rev 02) [root@storage6 ~]#
To check which controllers contain our motherboard we should check its specification.
So it really contains on-board RAID controllers so it’s a fake RAID.
To check its status we can use dmraid tool.
[root@storage7 ~]# dmraid -r /dev/hde: pdc, "pdc_cbeedhjag", mirror, ok, 156301312 sectors, data@ 0 /dev/hdg: pdc, "pdc_cbeedhjag", mirror, ok, 156301312 sectors, data@ 0 [root@storage7 ~]#
For more information about fake rake in Linux and Ubuntu in particular see this.
Some final thoughts about RAID
1. RAID is not a equivalent for backup. It couldn’t save you from a mistakes like accident files removal.
2. If you don’t know which RAID level to use choose at least RAID 1. It’s pretty cheap and reliable.
3. Always monitor your controllers and HDD status. It could really save you from disasters.
4. If you have limited project budget use soft RAID.
Didn’t find the answer to your question? Ask it our administrators to reply we will publish on website.