|
Build Your Own Oracle RAC 10g Release 2
Cluster on Linux and FireWire
by Jeffrey Hunter - OTN
One of the most efficient ways to become
familiar with Oracle Real Application Clusters (RAC) 10g
technology is to have access to an actual Oracle RAC 10g
cluster. There's no better way to understand its
benefits—including fault tolerance, security, load balancing,
and scalability—than to experience them directly.
Unfortunately, for many shops, the price of the hardware
required for a typical production RAC configuration makes this
goal impossible. A small two-node cluster can cost from
US$10,000 to well over US$20,000. That cost would not even
include the heart of a production RAC environment—typically a
storage area network—which can start at US$8,000.
For those who want to become familiar with Oracle RAC 10g
without a major cash outlay, this guide provides a low-cost
alternative to configuring an Oracle RAC 10g Release 2 system
using commercial off-the-shelf components and downloadable
software at an estimated cost of US$1,200 to US$1,800. The
system involved comprises a dual-node cluster (each with a
single processor) running Linux (CentOS 4.2 or Red Hat
Enterprise Linux 4) with a shared disk storage based on IEEE1394
(FireWire) drive technology. (Of course, you could also consider
building a virtual cluster on a VMware Virtual Machine, but the
experience won't quite be the same!)
Please note that this is not the only way to build a low-cost
Oracle RAC 10g system. I have seen other solutions that utilize
an implementation based on SCSI rather than FireWire for shared
storage. In most cases, SCSI will cost more than our FireWire
solution where a typical SCSI card is priced around US$70 and an
80GB external SCSI drive will cost US$700-US$1,000. Keep in mind
that some motherboards may already include built-in SCSI
controllers.
It is important to note that this configuration should never be
run in a production environment and that it is not supported by
Oracle or any other vendor. In a production environment, fibre
channel—the high-speed serial-transfer interface that can
connect systems and storage devices in either point-to-point or
switched topologies—is the technology of choice. FireWire offers
a low-cost alternative to fibre channel for testing and
development, but it is not ready for production.
The Oracle9i and Oracle 10g Release 1 guides used raw partitions
for storing files on shared storage, but here we will make use
of the Oracle Cluster File System Release 2 (OCFS2) and Oracle
Automatic Storage Management (ASM) feature. The two Linux
servers will be configured as follows:
Oracle Database Files
RAC Node Name Instance Name Database Name $ORACLE_BASE File
System / Volume Manager for DB Files
linux1 orcl1 orcl /u01/app/oracle ASM
linux2 orcl2 orcl /u01/app/oracle ASM
Oracle Clusterware Shared Files
File Type File Name Partition Mount Point File System
Oracle Cluster Registry /u02/oradata/orcl/OCRFile /dev/sda1
/u02/oradata/orcl OCFS2
CRS Voting Disk /u02/oradata/orcl/CSSFile /dev/sda1 /u02/oradata/orcl
OCFS2
Note that with Oracle Database 10g Release 2 (10.2), Cluster
Ready Services, or CRS, is now called Oracle Clusterware.
The Oracle Clusterware software will be installed to
/u01/app/oracle/product/crs on each of the nodes that make up
the RAC cluster. However, the Clusterware software requires that
two of its files—the Oracle Cluster Registry (OCR) file and the
Voting Disk file—be shared with all nodes in the cluster. These
two files will be installed on shared storage using OCFS2. It is
possible (but not recommended by Oracle) to use RAW devices for
these files; however, it is not possible to use ASM for these
two Clusterware files.
The Oracle Database 10g Release 2 software will be installed
into a separate Oracle Home, namely
/u01/app/oracle/product/10.2.0/db_1, on each of the nodes that
make up the RAC cluster. All the Oracle physical database files
(data, online redo logs, control files, archived redo logs),
will be installed to different partitions of the shared drive
being managed by ASM. (The Oracle database files can just as
easily be stored on OCFS2. Using ASM, however, makes the article
that much more interesting!)
Note: This article is only designed to work as documented with
absolutely no substitutions. If you are looking for an example
that takes advantage of Oracle RAC 10g Release 1 with RHEL
Oracle RAC, introduced with Oracle9i, is
the successor to Oracle Parallel Server (OPS). RAC allows
multiple instances to access the same database (storage)
simultaneously. It provides fault tolerance, load balancing, and
performance benefits by allowing the system to scale out, and at
the same time—because all nodes access the same database—the
failure of one instance will not cause the loss of access to the
database.
At the heart of Oracle RAC is a shared disk subsystem. All nodes
in the cluster must be able to access all of the data, redo log
files, control files and parameter files for all nodes in the
cluster. The data disks must be globally available to allow all
nodes to access the database. Each node has its own redo log and
control files but the other nodes must be able to access them in
order to recover that node in the event of a system failure.
One of the bigger differences between Oracle RAC and OPS is the
presence of Cache Fusion technology. In OPS, a request for data
between nodes required the data to be written to disk first, and
then the requesting node could read that data. With cache
fusion, data is passed along a high-speed interconnect using a
sophisticated locking algorithm.
Not all clustering solutions use shared storage. Some vendors
use an approach known as a federated cluster, in which data is
spread across several machines rather than shared by all. With
Oracle RAC 10g, however, multiple nodes use the same set of
disks for storing data. With Oracle RAC, the data files, redo
log files, control files, and archived log files reside on
shared storage on raw-disk devices, a NAS, a SAN, ASM, or on a
clustered file system. Oracle's approach to clustering leverages
the collective processing power of all the nodes in the cluster
and at the same time provides failover security.
|