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.

Overview of Oracle Flex ASM

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.

Standard ASM Instance vs Oracle Flex ASM Architecture

The diagrams below illustrate the architectural difference between a classic ASM instance and new Oracle Flex ASM.

Standard ASM instance 

  • The above diagram depicts a 3 node cluster setup, where a Standard ASM instance is configured on each single node and has direct access to the underlying Storage and RDBMS instances on respective nodes have one-to-one access.

 Oracle Flex ASM instance

  • On the other hand, in an Oracle Flex ASM in a 4 node Cluster, Oracle ASM instance is configured to run on Node 1,2 & 3 and the Node 4 as ASM client will access the remote ASM instance of Node 1.

Deploying Flex ASM

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 standard ASM to Flex ASM

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/ –asmListenerPort 1521

Once the above command is successfully executed, run the following script to complete the conversion on local node.

$ $ORACLE_BASE/cfgtoollogs/asmca/scripts/converttoFlexASM.sh

Verify and modify the Flex ASM configuration

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:

ASMCMD> showclustermode

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

Flex ASM Networks

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

Miscellaneous Flex ASM enhancements

The following outlines a few enhancements when Flex ASM is configured:

  • Larger LUN size support, up to 32PB
  • Supports 511 Disk Groups
  • Supports renaming ASM disks and Disk Groups names

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