I have delivered two Expert Panel sessions during the Oracle Open World 2013 conference. One of the sessions was ‘Oracle RAC SIG Meeting: Expert Panel’ where I was lucky enough and glad to share the stage with ASM technology guru Mr. Nitin Vengulkar. It was an open discussion session where audience got a chance to fire all the questions, their doubts, concerns about Oracle 12c enhancements. Surprisingly, all the questions were primarily focused on two essential features of 12c, Flex Cluster and Flex ASM. Being with Nitin and other Oracle Cluster experts on the stage, it was pretty comfortable and easy for me to address some of the questions asked me by the audience.
As part of two articles series (this month and the next month), I shall be covering the most essentials of Oracle Flex ASM and Oracle Flex Cluster features covering those important questions asked by the audience during the session. This paper will explain and illustrates all the core details of Oracle Flex ASM technology.
Oracle 12c Flex ASM architecture significantly differs with the traditional standard ASM instance architecture. A typical standard standalone ASM configuration require an ASM instance existence on every single node in the cluster, and all the RDBMS instances running on the node rely on the local ASM instance to access the storage and will have a direct access to the underlying shared disks. With Oracle Flex ASM in 12c, a small number of ASM instances will be configured on a subset of nodes in the cluster rather than on every single node, in addition an ASM instance can be configured on a dedicated node, instead of on a database node. In the event of an ASM instance crash or failure for whatever reasons, in a standard ASM configuration all the database instances running on the node will suffer failure too.
Unlike standard ASM instance, Oracle Flex ASM is not required to configure to run on each node in the cluster, whereas, the Oracle Flex ASM instance is defined/configured based on the cardinality, default to three, in the cluster with the flexibility to modify the default value using the srvctl modify asm command. Therefore, an Oracle Flex ASM in 12c overcomes from single-point-of-failure situation in the event of ASM instance failure by reconnecting the existing database instances connections to a remote ASM instance in the cluster using a preconfigured ASM network connection.
The diagrams below illustrate the architectural difference between a classic ASM instance and new Oracle Flex ASM.
Standard ASM instance
Oracle Flex ASM instance
Flex ASM in Oracle 12c is an optional deployment feature, where an individual can choose either a standard ASM or Flex ASM type configuration during the course Oracle 12c Grid Infrastructure setup. For an Oracle Flex Cluster setup, Oracle Flex ASM option is selected automatically and three ASM instance by default will be configured on three of Hub Nodes. If a standard cluster deployment is selected, then, you will have a choice to choose either a standard ASM configuration or Flex ASM configuration, as show in the following screen shot:
Converting a typical standard ASM into a full-fledged Oracle Flex ASM will be done in two simple steps. You will have to use the ASM Configuration Assistance (ASMCA) tool and followed by the ConvertToFlexASM.sh script execution to complete the conversion procedure. Before you begin the conversion procedure, ensure the prerequisite step, ASM Network interface is ready.
$ ./asmca –silent –convertToFlexASM –asmNetworks eth1/192.168.0.1 –asmListenerPort 1521
Once the above command is successfully executed, run the following script to complete the conversion on local node.
To list the current ASM configuration mode in the cluster, connect to the ASM instance using the asmcmd command line interface and execute the following command:
You either receive ASM Cluster: Flex mode enable or Normal output based on the current ASM configuration.
As explained previously, when Flex ASM is enabled, by default, three ASM instances are configured on three individual nodes in the cluster. If you want to increase or decrease the count (cardinality) of total number Flex ASM instances, use the following modify command:
$ ./srvctl modify asm –count 4
The above command will modify the default Flex ASM instance cardinality count
$ ./srvctl config asm
$ ./srvctl status asm
The above command will fetch the current asm configuration setting values in the cluster
$ ./srvctl status asm –details
The above command will display the list of nodes on which Oracle Flex ASM instance is active
In addition to the typical network interfaces for public, private network, you will require an additional (optional) and dedicated private network interface for ASM instance traffic in Oracle Flex ASM deployment. Either you configure a separate physical network interface (NIC) for ASM network or optionally share the same private network interface (NIC) to configure ASM network, as show in the following screen shot:
The goal of ASM network in Flex ASM is to isolate the internal network traffic required for ASM instances and RDBMS instances inter communication by configuring a dedicated private ASM network setup. RDBMS instances then use those preconfigured (optionally redundant) network connections to connect to Flex ASM instances in order to provide load balancing and failover across the Flex ASM instances in the cluster. A local ASM listener will be configured automatically on each node where an Oracle Flex ASM instance is running.
The following command will fetches the ASM network configuration details along with the other Cluster network configuration details:
$ ./oifcfg getif
Also use the following command to verify the ASM listener status on the target servers:
$ ./crsctl stat res –t
The following outlines a few enhancements when Flex ASM is configured:
Conclusion: In a nutshell, an Oracle Flex ASM provides the flexibility to failover RDBMS instances connections to a remote ASM instance in the event of an ASM instance failure on a local node. Also, supports load balancing of RDBMS instances workload across ASM instances and outstrip the need to ASM instance configuration on every single node in the cluster.
This article was contributed by Syed Jaffar Hussain