What are the different RAID levels for Linux / UNIX and Windows Server?

Q. What are the different RAID levels? Which one is recommended for file server and database server?

A. A Redundant Array of Independent Drives (or Disks), also known as Redundant Array of Inexpensive Drives (or Disks) (RAID) is an term for data storage schemes that divide and/or replicate data among multiple hard drives. RAID can be designed to provide increased data reliability or increased I/O performance, though one goal may compromise the other.

There are total 10 types of RAID levels:

  • RAID level 0
  • RAID level RAID level 1
  • RAID level 2
  • RAID level 3
  • RAID level 4
  • RAID level 5
  • RAID level 6
  • RAID level 10
  • RAID level 50
  • RAID level 0+1

Commonly used RAID levels for UNIX / Linux and Windows server

Following are commonly used RAID levels :

RAID level Minimum hard disks Suggested application Notes
RAID 0 – Striped Set without parity 2 Hard disks 1. Video Production and Editing
2. Image Editing
3. Any application requiring high bandwidth
Provides improved performance and additional storage but no fault tolerance from disk errors or disk failure. Any disk failure destroys the array, which becomes more likely with more disks in the array.
RAID 1 – Mirrored Set (2 disks minimum) without parity. 2 Hard disks 1. Office application
2. Financial application
3. Payroll application etc
Provides fault tolerance from disk errors and single disk failure. Increased read performance occurs when using a multi-threaded operating system that supports split seeks, very small performance reduction when writing. Array continues to operate so long as at least one drive is functioning
RAID 5 3 Hard disks 1. File and Application servers
2. Internet Web, E-mail servers
3. Intranet servers
Highest Read data transaction rate, Medium Write data transaction rate, Overall good (aggregate) transfer rate. drive failure requires replacement, but the array is not destroyed by a single drive failure. Upon drive failure, any subsequent reads can be calculated from the distributed parity such that the drive failure is masked from the end user. The array will have data loss in the event of a second drive failure and is vulnerable until the data that was on the failed drive is rebuilt onto a replacement drive
RAID 10 (nested RAID 1+0) 4 Hard disks 1. Database server (such as Oracle / MySQL / MS-SQL) which requiring high performance and fault tolerance Provides fault tolerance and improved performance but increases complexity.

See also – Understanding RAID and required number of minimum disk in graphical format

🐧 If you liked this page, please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
7 comments… add one
  • Overand Oct 22, 2008 @ 6:11

    I beg to differ – RAID 5 is not used for database servers- there is a significant “write penalty” for small writes – the entire stripe across all of the drives in the array must be written to. There is even a group called “BAARF” – Battle Against Any Raid Five – – that is basically a bunch of database admins who are horrified at the usage of raid 5 in inappropriate situations.

    Database *backups* – sure. But not live databases.

    • Rex Sep 29, 2020 @ 21:22

      I don’t believe the comment that all the disks on a raid-5 stripe need to be read and rewritten for a write is correct. The only blocks in the stripe that need to be read and rewritten are the data block being updated and the parity block. the raid controller can recalculate the parity data from the source block and the modified block. Every bit in the block that is the same between source and target results in the parity bit remaining, if the source bit and target bits are different, the parity bit needs to be flipped.

      Obviously this depends on the granularity of the striping of the parity. If the striping is on a byte-by-byte basis, then it all needs to be read/recalculated/rewritten. But if the parity is on a block by block basis, then only the 2 blocks need to be manipulated.

  • 🐧 nixCraft Oct 22, 2008 @ 11:23

    Overand,

    The faq has been updated. Thanks for your post.

  • TomasM Oct 22, 2008 @ 15:55

    It looks that with increasing HDD capacities RAID 5 will be not able to provide data safety…

    Very good article: Why RAID 5 stops working in 2009 at blogs.zdnet.com/storage/?p=162&tag=nl.e539

    “With a 7 drive RAID 5 disk failure, you’ll have 6 remaining 2 TB drives. As the RAID controller is busily reading through those 6 disks to reconstruct the data from the failed drive, it is almost certain it will see an URE.

    So the read fails. And when that happens, you are one unhappy camper. The message “we can’t read this RAID volume” travels up the chain of command until an error message is presented on the screen. 12 TB of your carefully protected – you thought! – data is gone. Oh, you didn’t back it up to tape? Bummer!

    So now what?
    The obvious answer, and the one that storage marketers have begun trumpeting, is RAID 6, which protects your data against 2 failures. Which is all well and good, until you consider this: as drives increase in size, any drive failure will always be accompanied by a read error. So RAID 6 will give you no more protection than RAID 5 does now, but you’ll pay more anyway for extra disk capacity and slower write performance.”

  • BenG Nov 6, 2008 @ 17:30

    What about RAID 5+0 and a hot spare?

  • Keld Simonsen Dec 18, 2008 @ 13:24

    There is a wiki for Linux Raid at http://linux-raid.osdl.org – it describes a RAID10 level which is quite like what you describe here as RAID10 or more correctly as RAID1+0, but it is not nested and in some common uses it is double as fast as RAID1+0.

  • Rushikesh Pathak Jul 23, 2015 @ 7:14

    how much stripes are there in RAID 0 level having (say) 2 disks & 20 blocks?

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.