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.