Thursday, August 19, 2010

Oracle VM: ha_check_cpu_compatibility

When you create Oracle VM server pool, it's required that all the servers in the pool have the same type and family of CPUs. Beginning in Oracle VM Server 2.2.1 (or Oracle VM Server 2.2.0 with upgraded agent ovs-agent-2.3-38), Oracle VM agent will enforce the pre-check by default when you create a server pool or add a new server to an existing server pool. The pre-check includes the server version, agent version, CPU compatibility, storage repositories, NFS, OCFS2 configuration, and so on. It is to ensure successful setup of the server pool and OCFS2 cluster integrity.
This also applies to repository initialization.
Still there might be use cases where you want to set up the testing environment where different type of servers may be formed into the server pool. For example, the testing environment may be to verify network or storage configuration of multi-node server pool, but it's not required to perform live migration or HA.

Warning: Oracle VM 2.2 requires all processors in a given pool to be of the same type. The bypass procedure provided below is available for test and experimental environments,and is not recommended or supported by Oracle.

Solution

Here we provide the steps to manually bypass certain pre-check function. The steps are provided to facilitate testing only, should not be used in any production environment:

1. Log into the Server Pool Master and verify that you are running ovs-agent-2.3-38 or later.
# rpm -q ovs-agent
ovs-agent-2.3-38

2. Edit the file /opt/ovs-agent-2.3/OVSSiteCluster.py and locate the following lines:
rs.append(("ha_check_oracle_vm_version", ha_check_oracle_vm_version(hosts)))
rs.append(("ha_check_agent_version", ha_check_agent_version(hosts)))
rs.append(("ha_check_cpu_compatibility", ha_check_cpu_compatibility(hosts)))
rs.append(("ha_check_hostname_ip", ha_check_hostname_ip(hosts)))
rs.append(("ha_check_storage_repos", ha_check_storage_repos(hosts, ha_enable)))
rs.append(("ha_check_ocfs2_config", ha_check_ocfs2_config(hosts)))
3. Comment out the specific line to bypass the pre-check. For example, to bypass the CPU compatibility check change the line as below:
# rs.append(("ha_check_cpu_compatibility", ha_check_cpu_compatibility(hosts)))
4. Restart the agent
# service ovs-agent restart
OVSAgentServer shutdown...
OVSAgentServer stopped.
OVSAgentServer is now starting...
OVSAgentServer started.

if you need to restart without having to shut down running VM's, do:
# service ovs-agent restart --disable-nowayout
5. This procedure will need to be executed on any pool server that might become a master via HA. After completing it, you will be able to add a server node that had previously failed with the ha_check_cpu_compatibility error.

Friday, August 6, 2010

Oracle VM ha_check_cpu_compability

If you received this error related to ha_check_compability on Oracle VM and you are using ovs-agent-2.3-38 or later, then you should edit /opt/ovs-agent-2.3/OVSSiteCluster.py and comment this line
rs.append(("ha_check_cpu_compatibility", ha_check_cpu_compatibility(hosts)))