Search

Wednesday, June 22, 2016

Choosing RAID level for Oracle Server

RAID is the stands for Redundant Arrays of Inexpensive Disks. There are many different types RAID Level, and each has its own related advantages and disadvantages. For Oracle9i databases, many of the RAID schemes do not posses the high performance required for an Oracle database, and most Oracle professionals choose a RAID scheme that combines mirroring and block-level striping.
It is important to note that the use of RAID does not guarantee against disk failure. Oracle recommends that all Oracle production databases be run in archivelog mode regardless of the RAID architecture, and you must perform periodic Oracle backups. Remember that there are many components to I/O subsystems—including controllers, channels, disk adapters, SCSI adapters—and a failure of any of these components could cause unrecoverable disk failures of your database.
When choosing a RAID level for oracle server, there are a number of important points that you need to take into consideration:
 
Needs of Application performance: Not every application is created equal. Some applications are light on I/O needs, while others thrash the storage system all day long. Make sure you choose a RAID level that matches your workload.
 
Needs of more Storage Capacity: Different RAID levels all result in different amounts of net usable space remaining after accounting for RAID overhead. If capacity is your prime concern that will affect your choice of RAID.
Cost: In fact achieving the necessary balance between cost and performance is your job. Choosing the right RAID level can play a big part in achieving this balance.
 
Needs of 24hrs Availability: Every business is different. Perhaps your business is willing to pay a little more to ensure less downtime than another business. In these cases, you need to pick a RAID level that matches the system’s availability needs demanded by your organization.
 
Below are the most commonly used RAID architectures details:
RAID 0 (Striping)
RAID 0 is commonly referred to as block-level striping. This is an excellent method for performing load balancing of the Oracle database on the disk devices (as there is no RAID overhead), with RAID 0, the Oracle datafile is automatically striped one block at a time across all of the disk devices, thus every datafile has pieces residing on each disk, and the disk I/O load will become very well balanced. It is very fast but no protection from data loss. Any drive error will kill whole array, thus not preferable for Oracle Production server.
 
RAID 1 (Mirroring)
RAID 1 is commonly called disk mirroring. Since the disks are replicated, RAID 1 may involve double or triple mirroring. The RAID 1 architecture is designed such that a disk failure will cause the I/O subsystem to switch to one of the replicated disks with no service interruption. In fact there is no write performance benefit. However read performance increase with good controller. The key benefit is surviving one of the drives in case of crashed. 
 
RAID 0+1 or RAID 10 (Striped Mirror)
Raid 0+1 is the combination of block-level striping and disk mirroring. The advent of RAID 0+1 has made Oracle-level striping obsolete since RAID 0+1 stripes at the block level, dealing out the table blocks, one block per disk, across each disk device. RAID 0+1 is also a far better striping alternative since it distributes the load evenly across all of the disk devices, and the load will rise and fall evenly across all of the disks. This relieves the Oracle administrator of the burden of manually striping Oracle tables across disks.
 
RAID 5 (Striping with parity)
For heavy read workload RAID 5 provides very good performance. However, on heavy write workloads, RAID 5 need to write parity information begins to noticeably affect overall storage performance. It is a good approach for Oracle data warehouses where the load speeds are not important and where the majority of the system I/O is read-only activity. With RAID 5 your array can loose single disk and remain functional, although in degrade situation. In a rebuild situation, RAID 5 can suffer a heavy performance hit until the rebuild operation completes.
 
RAID 50 (Hot space)
RAID 50 was implemented as a striped (RAID level 0) array. RAID 50 is more fault tolerant than RAID 5 but has twice the parity overhead.  High data transfer rates are achieved due to its RAID 5 array segments.  High I/O rates for small requests are achieved due to its RAID 0 striping.  It may be a good solution for sites that would previously using RAID 5 but need some additional performance boost.
 
RAID 6 (Striping with dual parity)
Like other RAID levels, read performance under RAID 6 is very good, but write performance takes an even bigger hit than it does with RAID 5 due to dual parity write needs. Rebuild operations can have a major performance impact. RAID 6 provide very high levels of availability since you can lose two disks in each RAID 6 array and remain functional.
 
Conclusion
As we already discuss some important point that you need to take into consideration while choosing RAID level for your oracle server because following the rule of thumb in this case can mislead you sometimes. If you really don’t know what RAID level to choose then:
·        If you can offer then it is better to use RAID 1+0 for all your oracle files.
·        To reduce costs move datafiles with lower access rates to RAID 5
·        To reduce costs further move the other datafiles to RAID 5
·        To reduce costs further experiment with moving redoes logs and rollback/undo tablespaces to RAID 5.
·        If cost dictates it, move all your Oracle files on to RAID 5.