Tuesday, October 11, 2016

RAC -- using different OS versions supported or not?

This blog post is written regarding a question that one of my customers asked a few days ago.
The question arised, when a customer wanted to utilize new servers for a mission critical 2 node Oracle RAC cluster environment.
The new servers had the same CPU architecture (Intel X86) as the current ones , but their Operating System were different than current ones.
So , the current machines were running with Oracle Linux 5.8 , but the new ones were installed with RHEL 6.

The customer wanted to expand their RAC by adding these new RHEL 6 machines using addnode.sh and then delete the old ones, so to minimize the downtime which may be required when they are renewing their RAC nodes.

The questions was : Can we use different OS versions (considering Oracle Linux is equivalent with Rhel) in RAC nodes? At least during this upgrade?

Well, I m sharing the answer because , it is interesting and it is something that I needed to research before answering it.

So, with RAC we have the rules:
  • The machine in a cluster can have different speeds and sizes.
  • Oracle Clusterware and RAC do not support heterogenous platforms (machines with different chipsets, i.e 1 machine Intel and  1 machine Sparc). However; you can have Intel 64 processor and another node using an AMD64 processor in the same cluster because the processors use the same x86-64 ISA. (interesting) 
  • Oracle Clustware and RAC support mixed servers in the same cluster, but these servers must run the same OS (same OS binary). 
  • The CPU architecture should be the same accroos the machines. This is because,  running 32 bit and 64 bit software versions in the same cluster stack is not supported.
The above rules and statements are good to know, but the following were crucial for answering the cuıstomer's questions
  • Oracle supports the rolling upgrade of the OS in a cluster when the new OS is certified with the version of the Oracle Database you use.  However, there is an important note regarding this; that is; "mixed operating system versions are only supported for the duration of an upgrade (i.e., within 24 hours)"
  • Additional note: During rolling upgrades of the operating system, Oracle supports using different operating system binaries when both versions of the operating system are certified with the Oracle Database release you are using.
Well, in the statement in bold, it is clearly said that it is possible for a rolling upgrade of the OS. But the customer wanted to know, if they can add new rac nodes to the cluster and then delete old ones.

Well, in rolling upgrade we still have the upgraded node running with the other nodes for a period of time, although these other nodes are not upgraded yet.
So it is similar to adding new nodes (with newer version of the OS) to a cluster and then removing the old ones..

At this point, the answer seemed to be YES . It seemed supported. (only supported during the renewing of the nodes)
That is, the customer could have a different OS versions during this work, but only during this work...  ( Bytheway, I didnt test this yet, so I find it still risky, even the cluster check may prevent the customer to add a different versioned OS)

However, since it is not clearly documented; what seemed to be recommended is to follow an  approach like "upgrade the OS on the current nodes, then add the new nodes to the cluster".

So , what was the question again?
The questions was : Can we use different OS versions (considering Oracle Linux is equivalent with Rhel) in RAC nodes? At least during this upgrade?

My answer: Maybe you can :) but don't do it.
Your new environment is RHEL 6, your old was RHEL 5. So it is risky, there is a major version change there. (if the old one would be RHEL 5.1 and the new one would be RHEL 5.2, then my answer might be YES)

So, do it this way -> Upgrade OS on your RAC nodes  in a rolling fashion and then use addnode.sh to  add the new ones. (and then delete old ones..)

1 comment :