This is an excerpt from the bestselling book
Oracle Grid & Real Application Clusters. To get immediate
access to the code depot of working RAC scripts, buy it
directly from the publisher and save more than 30%.
Oracle10g introduces Cluster Ready Services
(CRS), which provides many system management services and interacts
with the vendor clusterware to coordinate cluster membership
information. It provides the cluster software, sometimes called the Oracle OSD Clusterware.
The OUI installs CRS on each node on which the
OUI detects that vendor clusterware is running. In addition, the CRS
home is distinct from the RAC-enabled Oracle Home. The CRS home can
be shared either by one or more nodes, or privately to each node,
depending on the settings used when running the OUI. When vendor
clusterware is present, CRS interacts with the vendor clusterware to
coordinate cluster membership information.
For Oracle10g on Linux and Windows-based
platforms, CRS co-exists with but does not inter-operate with vendor
clusterware. Vendor clusterware may be used for all UNIX-based
operating systems except for Linux. Even though, many of the UNIX
platforms have their own clusterware products, use the CRS software
to provide the HA support services. CRS supports services and
workload management and helps to maintain the continuous
availability of the services. CRS also manages resources such as
virtual IP (VIP) address for the node and the global services
The Oracle Cluster Registry (OCR) contains
cluster and database configuration information for Real Application
Clusters Cluster Ready Services (CRS), including the list of nodes
in the cluster database, the CRS application, resource profiles, and
the authorizations for the Event Manager (EVM). The OCR can reside
in a file on a cluster file system or on a shared raw device. When
installing Real Application Clusters, specify the location of the
CRS helps to package a set of application that
work under CRS control and access the RAC database. The application
resource profile defines the resources with which you manage the RAC.
Prior to the 10g release, the cluster manager implementations on
some platforms were referred to as Cluster Manager. In Oracle10g,
Cluster Synchronization Services (CSS) is the cluster manager on all
platforms. The Oracle Cluster Synchronization Service Daemon (OCSSD)
performs this function on UNIX-based platforms.
On Windows-based platforms, the OracleCSService,
OracleCRService, and OracleEVMService provides the cluster manager
functionality. The installation of CRS is covered in later sections.
A Note on SKGXP, SKGXN Libraries
Oracle has defined APIs for inter-process
communication and node membership. These are the APIs that
facilitate integration with vendor clusterware or Oracle provided
clusterware. Oracle communicates between processes on instances and
does not have to know how the data is moved between systems. The
Oracle API for IPC is referred to as system kernel generic interface
inter-process communications (skgxp).
The OSD or clusterware normally provides a
kernel module that receives communications from the skgxp library
and passes it to the correct process on the correct instance on
other nodes. It is the responsibility of the implementer to design
the communication package in the form of a kernel module in
compliance with the specification.
For example, Veritas DBE/AC provides a module
to implement the skgxp functionality. This is available in the form
of a library (libskgxp9.so), which is dynamically linked by Oracle
at execute time. This skgxp interface utilizes the LLT multiplexer (LMX)
via ioctl() calls. The LMX module is a kernel module designed to
receive communications from the skgxp module and pass them to the
correct process on the correct instance on other nodes. The module
multiplexes communications between multiple related processes into a
single multi threaded LLT port between systems.
Oracle has provided another set of APIs to
provide the membership information to the RAC system. This is known
as system kernel generic interface node membership (skgxn). Oracle
RAC makes specific skgxn calls and gets the required membership
information. The skgxn library, in turn, makes ioctl() calls to a
kernel module for membership information. This kernel module is
known as VCSMM (VCS membership module) and is implemented in library
libskgxn2.so. Oracle uses the linked skgxn library to communicate
with VCSMM, which obtains membership information from GAB.