Sunday, July 5, 2009

CLUSTER VERIFICATION UTILITY FAQ

The Oracle Clusterware utility for Oracle RAC comes in two forms: the cluvfy utility which is available after installation of the clusterware software and the runcluvfy.sh shell script which can be used before installation.

In this example we are using cluvfy utility.
export CV_HOME=/oracrs/oradata i.e where cvupack.zip was unzipped.
export CV_JDKHOME=/usr/java/jdk1.4.2 i. location of JRE 1.4 on the box.
Usage:
./cluvfy stage -pre crsinst -n node1,node2 -verbose

Refrence from Metalink note 316817.1

CLUSTER VERIFICATION UTILITY FAQ
=======================================
Concept
What is CVU? What are its objectives and features?
What is a stage?
What is a component?
What is nodelist?
Do I have to be root to use CVU?
What about discovery? Does CVU discover installed components?
What about locale? Does CVU support other languages?
@How do I report a bug?

Installation
What are the requirements for CVU?
How do I manually install CVU?
From where can I download CVU?
What Linux versions are supported ?
How do I make Cluvfy work with Suse 9 ES?
What Windows versions are supported?
What Solaris versions are supported?
What AIX versions are supported
What HP-UX versions are supported?

Usage
How do I know about cluvfy commands? The usage text of cluvfy does not show individual commands.
What are the default values for the command line arguments?
Do I have to type the nodelist every time for the CVU commands? Is there any shortcut?
How do I get detailed output of a check?
How do I check network or node connectivity related issues?
How do I check whether OCFS is properly configured?
How do I check the CRS stack and other sub-components of it?
How do I check user accounts and administrative permissions related issues?
How do I check minimal system requirements on the nodes?
Can I check if the storage is shared among the nodes?
Is there a way to compare nodes?
Why the peer comparison with -refnode says “passed” when the group or user does not exist?
Is there a way to verify that the CRS is working properly before proceeding with RAC install?
At what point cluvfy is usable? Can I use cluvfy before installing CRS?
How do I turn on tracing?
Where can I find the CVU trace files?
Why cluvfy reports “unknown” on a particular node?
What does cluvfy error “Could not find a suitable set of interfaces for VIPs” mean?
Where can I find the disk rpm?

General Questions:
How do I check that user equivalence through SSH is setup properly?
How can I check the requirements for installing Oracle Clusterware or RAC from Oracle Database Release 10g Release1 (10.1) ?
What is CVU`s configuration file? How do I use it?
How do I run CVU from installation media?
What database versions are supported by CVU?

Limitations:
What are the known issues with gf release?
What kinds of storage does cluvfy check for shared-ness?

What is CVU? What are its objectives and features?
CVU brings ease to RAC users by verifying all the important components that need to be verified at different stages in a RAC environment. The wide domain of deployment of CVU ranges from initial hardware setup through fully operational cluster for RAC deployment and covers all the intermediate stages of installation and configuration of various components. The command line tool is cluvfy. Cluvfy is a non-intrusive utility and will not adversely affect the system or operations stack.

What is a stage?
CVU supports the notion of Stage verification. It identifies all the important stages in RAC deployment and provides each stage with its own entry and exit criteria. The entry criteria for a stage define a specific set of verification tasks to be performed before initiating that stage. This pre-check saves the user from entering into a stage unless its pre-requisite conditions are met. The exit criteria for a stage define another specific set of verification tasks to be performed after completion of the stage. The post-check ensures that the activities for that stage have been completed successfully. It identifies any stage specific problem before it propagates to subsequent stages; thus making it difficult to find its root cause. An example of a stage is “pre-check of database installation”, which checks whether the system meets the criteria for RAC install.

What is a component?
CVU supports the notion of Component verification. The verifications in this category are not associated with any specific stage. The user can verify the correctness of a specific cluster component. A component can range from a basic one, like free disk space to a complex one like CRS Stack. The integrity check for CRS stack will transparently span over verification of multiple sub-components associated with CRS stack. This encapsulation of a set of tasks within specific component verification should be of a great ease to the user.

What is nodelist?
Nodelist is a comma separated list of hostnames without domain. Cluvfy will ignore any domain while processing the nodelist. If duplicate entities after removing the domain exist, cluvfy will eliminate the duplicate names while processing. Wherever supported, you can use ‘-n all’ to check on all the cluster nodes. Check this for more information on nodelist and shortcuts.
[ go to the top ]

Do I have to be root to use CVU?
No. CVU is intended for database and system administrators. CVU assumes the current user as oracle user.

What about discovery? Does CVU discover installed components?
At present, CVU discovery is limited to these components. CVU discovers available network interfaces if you do not specify any interface or IP address in its command line. For storage related verification, CVU discovers all the supported storage types if you do not specify a particular storage. CVU discovers CRS HOME if one is available.

What about locale? Does CVU support other languages?
CVU supports all the languages that are supported by other Oracle products.

@How do I report a(or tons of) bug?
is not covered in those documents, file a bug against product# 5,
@component: OPSM and sub-component: CLUVFY. Please provide the relevant log file while filing a bug.
[ go to the top ]

What are the requirements for CVU?

CVU requires:
1._ An area with at least 30MB for containing software bits on the invocation node.
2._ Java 1.4.1 location on the invocation node.
3._ A work directory with at least 25MB on all the nodes. CVU will attempt to copy the necessary bits as required to this location. Make sure, the location exists on all nodes and it has write permission for CVU user. This dir is set through the CV_DESTLOC environment variable. If this variable does not exist, CVU will use “/tmp” as the work dir.

How do I manually install CVU?
Here is how one can install CVU from a zip file(cvupack.zip).
1.) create a cvhome( say /home/mycvhome ) directory. It should have at least 30M of free disk space.
2.) cd /home/mycvhome
3.) copy the cvupack.zip file to /home/mycvhome
4.) unzip the file:
Example : unzip cvupack.zip
5.) set these environmental variables:
CV_HOME: This should point to the cvhome.
Example: setenv CV_HOME /home/mycvhome
CV_JDKHOME: This should point to a valid jdk1.4 home with hybrid support. By default the installation points to the right JDK
Example: setenv CV_JDKHOME /usr/local/packages/jdk14
CV_DESTLOC (optional ): This should point to a writable area on *all* nodes. The tool will attempt to copy the necessary bits as required to this location. Make sure, the location exists on all nodes and it has write permission for CVU user. It is strongly recommended that you should set this variable. If this variable has not been set, CVU will use “/tmp” as the default.
Example : setenv CV_DESTLOC /tmp/cvu_temp

To verify, run /home/mycvhome/bin/cluvfy. This should show the usage.

From where do I download CVU
http://www.oracle.com/technology/products/database/clustering/cvu/cvu_download_homepage.html

What Linux distributions are supported?
This release supports
RedHat 2.1AS (Note that the CVU for 2.1 and other versions are not binary compatible)
RedHat 3 (Update 2 or higher)
RedHat 4
Suse 9.

How do I make Cluvfy work with Suse 9 ES?
For this you will have to edit the configuration file called cvu_config under
CV_HOME/cv/admin directory. Modify the property CV_ASSUME_DISTID=Taroon to CV_ASSUME_DISTID=Pensacola

What Windows versions are supported?
This release supports Windows 2000 and Windows 2003

What Solaris versions are supported?
This release supports Solaris 8, Solaris 9 and Solaris 10

What AIX are versions are supported?
This release supports AIX 5L (5.1,5.2,5.3)

What HP-UX versions are supported?
This release supports 11.11 and 11.23

[ go to the top ]

How do I know about cluvfy commands? The usage text of cluvfy does not show individual commands.
Cluvfy has context sensitive help built into it. Cluvfy shows the most appropriate usage text based on the cluvfy command line arguments.

If you type ‘cluvfy’ on the command prompt, cluvfy displays the high level generic usage text, which talks about valid stage and component syntax.

If you type ‘cluvfy comp -list’, cluvfy will show valid components with brief description on each of them. If you type ‘cluvfy comp -help’, cluvfy will show detail syntax for each of the valid components. Similarly, ‘cluvfy stage -list’ and ‘cluvfy stage -help’ will list valid stages and their syntax respectively.

If you type an invalid command, cluvfy will show the appropriate usage for that particular command. For example, if you type ‘cluvfy stage -pre dbinst’, cluvfy will show the syntax for pre-check of dbinst stage.
[ go to the top ]

What are the default values for the command line arguments?
Here are the default values and behavior for different stage and component commands:

For component nodecon:
If no -i is provided, then cluvfy will get into the discovery mode.
For component nodereach:
If no -srcnode is provided, then the local(node of invocation) will be used as the source node.
For components cfs, ocr, crs, space, clumgr:
If no -n argument is provided, then the local node will be used.
For components sys and admprv:
If no -n argument is provided, then the local node will be used.
If no -osdba argument is provided, then ‘dba’ will be used.
If no -orainv argument is provided, then ‘oinstall’ will be used.
For component peer:
If no -osdba argument is provided, then ‘dba’ will be used.
If no -orainv argument is provided, then ‘oinstall’ will be used.

For stage -post hwos:
If no -s argument is provided, then cluvfy will get into the discovery mode for shared storage verification.
For stage -pre crsint:
If no -c argument is provided, then cluvfy will skip OCR related checks.
If no -q argument is provided, then cluvfy will skip voting disk related checks.
If no -osdba argument is provided, then ‘dba’ will be used.
If no -orainv argument is provided, then ‘oinstall’ will be used.
For stage -pre dbinst:
If no -osdba argument is provided, then ‘dba’ will be used.
If no -orainv argument is provided, then ‘oinstall’ will be used.
[ go to the top ]

Do I have to type the nodelist every time for the CVU commands? Is there any shortcut?
You do not have to type the nodelist every time for the CVU commands. Typing the nodelist for a large cluster is painful and error prone. Here are few short cuts.

To provide all the nodes of the cluster, type ‘-n all’. Cluvfy will attempt to get the nodelist in the following order:
1. If a vendor clusterware is available, it will pick all the configured nodes from the vendor clusterware using lsnodes utility.
2. If CRS is installed, it will pick all the configured nodes from Oracle clusterware using olsnodes utility.
3. If neither the Vendor Clusterware or Oracle clusterware is installed, then it searches for a value of CV_NODE_ALL in the configuration file.
4. If none of the above, it will look for the CV_NODE_ALL environmental variable. If this variable is not defined, it will complain.

To provide a partial list(some of the nodes of the cluster) of nodes, you can set an environmental variable and use it in the CVU command. For example:
setenv MYNODES node1,node3,node5
cluvfy comp nodecon -n $MYNODES
[ go to the top ]

How do I get detail output of a check?
Cluvfy supports a verbose feature. By default, cluvfy reports in non-verbose mode and just reports the summary of a test. To get detailed output of a check, use the flag ‘-verbose’ in the command line. This will produce detail output of individual checks and where applicable will show per-node result in a tabular fashion.

How do I check network or node connectivity related issues?
Use component verifications commands like ‘nodereach’ or ‘nodecon’ for this purpose. For detail syntax of these commands, type cluvfy comp -help on the command prompt.

If the ‘cluvfy comp nodecon’ command is invoked without -i argument, cluvfy will attempt to discover all the available interfaces and the corresponding IP address & subnet. Then cluvfy will try to verify the node connectivity per subnet. It would also obtain the list of interfaces that are suitable for use as VIPs and the list of interfaces to private interconnects. You can run this command in verbose mode to find out the mappings between the interfaces, IP addresses and subnets.

You can check the connectivity among the nodes by specifying the interface name(s) through -i argument.
[ go to the top ]

Can I check if the storage is shared among the nodes?
Yes, you can use ‘comp ssa’ command to check the sharedness of the storage. Please refer to the known issues section for the type of storage supported by cluvfy.

How do I check whether OCFS is properly configured?
You can use the component command ‘cfs’ to check this. Provide the OCFS file system you want to check through the -f argument. Note that, the sharedness check for the file sytem is supported for OCFS version 1.0.14 or higher.

How do I check the CRS stack and other sub-components of it?
Cluvfy provides commands to check a particular sub-component of the CRS stack as well as the whole CRS stack. You can use the ‘comp ocr’ command to check the integrity of OCR. Similarly, you can use ‘comp crs’ and ‘comp clumgr’ commands to check integrity of crs and clustermanager sub-components. You can use the `comp nodeapp` command to check whether the node applications, namely VIP, GSD and ONS, have been configured properly.

To check whether the Oracle Clusterware has been installed properly, run the stage command ’stage -post crsinst’.

How do I check user accounts and administrative permissions related issues?
Use admprv component verification command. Refer to the usage text for detail instruction and type of supported operations. To check whether the privilege is sufficient for user equivalence, use ‘-o user_equiv’ argument. Similarly, the ‘-o crs_inst’ will verify whether the user has the correct permissions for installing CRS. The ‘-o db_inst’ will check for permissions required for installing RAC and ‘-o db_config’ will check for permissions required for creating a RAC database or modifying a RAC database configuration.
[ go to the top ]

How do I check minimal system requirements on the nodes?
The component verification command sys is meant for that. To check the system requirement for RAC, use ‘-p database’ argument. To check the system requirement for CRS, use ‘-p crs’ argument. To check the system requirements for installing the Oracle Clusterware or RAC from Oracle Database 10g release 1 (10.1), use the -r 10gR1 argument.

Is there a way to compare nodes?
You can use the peer comparison feature of cluvfy for this purpose. The command ‘comp peer’ will list the values of different nodes for several pre-selected properties. You can use the peer command with -refnode argument to compare those properties of other nodes against the reference node. To compare the properties pertaining to Oracle Database 10g release 1 (10.1), use the -r 10gR1 argument.

Why the peer comparison with -refnode says passed when the group or user does not exist?
Peer comparison with the -refnode feature acts like a baseline feature. It compares the system properties of other nodes against the reference node. If the value does not match( not equal to reference node value ), then it flags that as a deviation from the reference node. If a group or user does not exist on reference node as well as on the other node, it will report this as ‘passed’ since there is no deviation from the reference node. Similarly, it will report as ‘failed’ for a node with higher total memory than the reference node for the above reason.
[ go to the top ]

Is there a way to verify that the CRS is working properly before proceeding with RAC install?
Yes. You can use the post-check command for cluster services setup(-post crsinst) to verify CRS status. A more appropriate test would be to use the pre-check command for database installation(-pre dbinst). This will check whether the current state of the system is suitable for RAC install.

At what point cluvfy is usable? Can I use cluvfy before installing CRS?
You can run cluvfy at any time, even before CRS installation. In fact, cluvfy is designed to assist the user as soon as the hardware and OS is up. If you invoke a command which requires CRS or RAC on local node, cluvfy will report an error if those required products are not yet installed.

How do I turn on tracing?
Set the environmental variable SRVM_TRACE to true. For example, in tcsh “setenv SRVM_TRACE true” will turn on tracing.

Where can I find the CVU trace files?
CVU log files can be found under $CV_HOME/cv/log directory. The log files are automatically rotated and the latest log file has the name cvutrace.log.0. It is a good idea to clean up unwanted log files or archive them to reclaim disk place.
Note that, no trace files will be generated if tracing has not been turned on.

Why cluvfy reports “unknown” on a particular node?
Cluvfy reports unknown when it can not conclude for sure if the check passed or failed. Please refer to the Oracle Database Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide for details on this.

What does cluvfy error “Could not find a suitable set of interfaces for VIPs” mean?
Cluvfy reports this error when it could not discover at least one subnet that connects all the nodes using the same interface name and does not support IP addresses like 10.*,172.16.*-172.31.* and 192.168.*. Related Note 316583.1

Where can I find the disk rpm
The disk rpm can be found in the cvuqdisk-1.0.1-1.rpm under “Disk1/rpm

[ go to the top ]

How do I check that user equivalence through SSH is setup properly
To verify user accounts and administrative permissions-related issues, use the component verification command admprv as follows:
cluvfy comp admprv [ -n node_list ] [-verbose]
| -o user_equiv [-sshonly]
| -o crs_inst [-orainv orainventory_group ]
| -o db_inst [-orainv orainventory_group ] [-osdba osdba_group ]
| -o db_config -d oracle_home
For example cluvfy comp admprv -n all -o user_equiv -verbose. More details are in the Oracle Database Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide

How can I check the requirements for installing Oracle Clusterware or RAC from Oracle Database Release 10g Release1 (10.1) ?
runcluvfy.sh stage -pre crsinst -r 10gR1 -n node1,node2. More details are in the Oracle Database Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide

What is CVU`s configuration file? How do I use it?
Please review the documentation at Oracle Database Oracle Clusterware and Oracle Real Application Clusters Administration and Deployment Guide

How do I run CVU from installation media?
After mounting the CRS DVD, cd to the Disk1/cluvfy and execute runcluvfy with the same arguments as cluvfy.
For example
./runcluvfy stage -pre crsinst -n ,

What database versions are supported by CVU?
Current CVU release supports only 10g RAC and CRS and is not backward compatible. In other words, CVU can not check or verify pre-10g products.

What are the known issues with this release?
Shared storage accessibility(ssa) check reports
1).Current release of cluvfy has the following limitations on Linux regarding shared storage accessibility check.
a. Currently NAS storage ( r/w, no attribute caching) and OCFS( version 1.0.14 or higher ) are supported.
b For sharedness check on NAS, cluvfy requires the user to have write permission on the specified path. If the cluvfy user does not have write permission, cluvfy reports the path as not-shared.

2.) CVU complains missing packages in Suse
The preinstallation stage verification checks for Oracle Clusterware and Oracle Real Applications Clusters and reports missing packages. Ignore the following missing packages and continue with the installation:
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.1

3.) Cluvfy complains about missing Vendor Clusterware packages (e.g. Sun Cluster, ORCLudlm) when deployment is planned with Oracle Clusterware without any vendor clusterware. This is a known issue and is documented in all the release notes

What kind of Storage does cluvfy check for shared-ness?
Cluvfy currently can only check for scsi disks and may error out for special devices like EMC powerpath