Achieving High Availability with Oracle and VMware: VCS 6.0.2
Last week Veritas Cluster Server 6.0.2 for Linux (and 6.0.1 for Windows) was released with new features to allow application failover in VMware environments. Basically that means VCS running in the guest but with a full integration with VMware, which means that capabilities like vMotion and DRS are allowed. It provide applicaiton visiblity and availability and do not prevent the agility of virtual environments with VMware. It enhances application recovery and allows Virtual Machine maintenance (patching OS and similar) by having another VM that will be able to run the applicaiton.
What I really like here is the integration engineering has done with vSphere. Native solutions not only treat VMs like physical servers (and therefore breaking vMotion and DRS), but also don´t have any integration with vSphere. Today I wanted to take a look to that integration for one Oracle Database running inside a VM. I want to show here how easy has become to provide High Availability for Oracle when it is running in VMware.
First thing to notice is how easy is now to deploy the software into the Virtual Machines. The binaries installation and configuration can be done from vSphere. Just right click on the VM, select Symantec High Availability and click on Install Guest Components.
Fig 1: Deploy VCS from vSphere console
You can also install and configure VCS in the traditional way, the difference now is the integration with VMware. For example, at the end of the software install it recognize a VM is being used:
You are running this virtual machine under VMware environment. You may access cluster view for this virtual machine using vSphere client. To access cluster view for the virtual machine using vSphere client, log in to vCenter Server through vSphere client, navigate to the virtual machine in inventory view and click on 'Symantec High Availability' tab. You may also access the cluster view from a browser. To access the cluster view through a browser, open the below URL in a browser: https://<VM_IP_or_Hostname>:5634/vcs/admin/application_health.html
You may have the VCS or SFHA binaries already installed in your VM Template. That is my case where I also have Oracle installed, and therefore I take the benefits of VMware, where with just one click, and after entering the hostname and IP address I have a new VM where Oracle is up and running. I have the binaries installed together with the OS and the data files in a separate VMDK disk. For this example, I have deployed to VMs: rhoracle31 and rhoracle32, that will form the rhoracle3 cluster. In any of those VMs I just need to click on the Symantec High Availability tab and Configure application for high availability.
Fig 2: Initiate application HA configuration from vSphere
Once we click on Configure applicatoin for high availability, the wizard will be initiated. This wizard will not only configure the service group for the application but also all the cluster infrastructture. In just a few steps, the cluster and the application service group will be ready. I remember the first time I configured a cluster around 15 years ago and a lot of manual steps were needed at that point. Clearly the CPI installer has been doing tremendous progress, and this is just the last suscess. Interestingly, if you take a look to the market on what other vendors and native tools are doing, they are still 10 years back, where a lot of manual configuration and scripting is needed. Nothing compared to what VCS is bringing to the market now.
The first window will just explain the process and pre-requisites, so I am not going to paste it here. The next step will be to select the applicaiton we are going to make high available. Generic Application can be used for any application where we have a way to start, stop and monitor it. Note the link to download Application Agents directly from SORT. Any traditional VCS agent will be available here too.
Fig 3: Select Oracle Agent
The first thing the wizar does is to detect the Oracle Listener. I didn´t have to type anything here! So I just select the LISTENER and click next.
Fig 4: Listener discovered details
The second step will detect the Oracle instances configured in the server, what Listeners are related and the mount points where the data resides. Once again, I didn´t have to type any value here. I just clickd on my db1 instance as it is the one I want to configure with HA
Fig 5: Oracle instances discovery
Next step will be used to specify the systems that will conform the cluster. The first dialog window will only show the VM I was using to run the configuration from. Click on the edit to specify the user and password that will be used to run the deployment. Then click on Add System button to specify the second node of the cluster, rhcluster32 in my test bed. Use Advanced Settings to specify the authentication type to be used.
FIg 6: VCS Cluster Systems
The network details will be given in the next window. Here I only need again to accept the default settings. My public network will be used only as a low priority network.
Fig 7: Network details
Next step is to specify a Virtual IP address that Oracle Listener will be using. Here I typed the IP address to be used.
Fig 8: Virtual network details
As previously mentioned, one of the great things if this new version is the integration with the hypervisor. That integration allows to attach and detach the disks with information from one VM to other. In order to do this, communication with the ESX host is needed. Here I typed the ESX where my VM are able to run. In my case I only have one (I will accept donations to buy another one, in any case) so here are my details. Type here all the ESX hosts where your VMs will be able to run.
Fig 9: ESX hosts details
And finally here you have the summary of the configuration that is going to be run. I simply modified the Cluster Name, because by default it use the Cluster ID number and I prefer the other name. All depends on your preferences.
Fig 10: Summary details
The implementation dialog will show the status for each of the steps performed, until it is finally completed.
Fig 11: Implementation
Now the Symantec High Availability tab shows the cluster configuration with the Oracle Application service group. The green click on rhoracle31 Virtual Machine shows that the service group is online in that VM. Clicking on the VM all the resources conforming the service group are shown. The first one at the bottom is the VMwareDisk, which is the VMDK disks where the datafile resides. This agent takes care of moving that disk between the VMs. On top of that resource I have the disk group and the volume containing the data. I have used Storage Foundation here. Then the mount point and on top the Oracle Instance.
On the left I have the NIC card and the Virtual IP address. On top of the Oracle Instance and the Virtual IP the LISTENER resource is finally configured. This shows what is the start and stop order for each of the resources. Blue means the resource is online, grey is offline, and a red cross will show a faulty resource.
Fig 12: Symantec High Availability tab
As a summary, we have configured a cluster with a few clicks that is running on VMware. Also we have provide applicaiton failover capabilities for an Oracle instance. All this fully integrated with vSphere. All the potential of VCS and capabilities of VMware working together. Best of both worlds.
And you can still use Veritas Operation Manager or VCS Java Console to administer your cluster configuration if needed. There is no difference in functionality at all. Here the view from the Java Console
Fig 13. VCS Java Console view
And remember that you can move those VMs with vMotion to any ESX server in your configuration as far as the ESX will have access to the VMDK file where Oracle data files resides.