Oracle RAC Cluster using ASM for storage would require the shared disks to be accessed by all nodes of the RAC cluster.
The multi-writer option in vSphere allows the VMFS-backed disks to be shared by multiple VM's simultaneously. By default, the simultaneous multi-writer "protection" is enabled for all .vmdk files ie all VM's have exclusive access to their .vmdk files. So in order for all of the Oracle RAC VM's to access the shared vmdk's , the multi-writer protection needs to be disabled.
KB Article 1034165 provides more details on how to set the multi-writer option manually to allow VM's to share vmdk's (link below).
<a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1034165" title="Multi-Writer"></a>
The above method would require the VM's to be powered off before the multi-writer option can be set in the .vmx configuration file. This means that the Oracle RAC instance would have to be shutdown and the VM completely powered off before the option can be set leading to an Instance outage.
Oracle DBA's would rather a method where they could add shared disks on the fly to a running Oracle RAC cluster without any downtime.
A colleague and I working for VMware PSO some time back (now I have moved under the Global Center Of Excellence group ) wrote a POWERCli script called the “addSharedDisk” which adds
a new shared disk to the existing Oracle RAC nodes along with setting the multi-writer flag setting , setting the disks as independent-persistent and eager-zero thick formatting.
This script can be used to add shared disk on the fly while the Oracle RAC Clusters is up and running thus avoiding any outage.
- This is an generic script provided and can be customized as per your requirement
- This script is provided for educational purposes only , please use at your own risk
- No Support will be provided for this script
- All values provided in this script is for example only, you would need to provide real values
This script accepts at the command prompt
- The number of shared disks to be created( maximum 55)
- The number of nodes that you need this shared disk be added to
-the script places all shared VMDK files in the same datastore as the boot disk VMDK files. This can be customized to place shared vmdk's on different datastores for IO load balancing
-the script can be further customized to place vmdk's on different SCSI controllers.
-the script has the logic to check the network requirements of the Oracle RAC interconnect adapters(assumption of the script is 2 Private Adapters are deployed per VM) . (can be removed or commented out if not required)