Testing Multicasting for Oracle 11.2.0.2 Grid Infrastructure

Oracle 11.2.0.2 Grid Infrastructure uses multicasting during installation of CSSD. Multicasting is usually enabled by default, but can be disabled by some network administrators at switch level.

If multicasting is not enabled then installation of the Grid Infrastructure will fail when root.sh is run on the second node. By default Oracle uses multicast address 230.0.1.0. If this is not available then configuration of CSSD will fail. A patch is available for Bug 9974223 - Grid Infrastructure needs multicast communication on 230.0.1.0 address working. The patch allows Oracle to use an alternative multicast address 224.0.0.251 if the 230.0.1.0 address is not available. The patch must be installed during the Grid Infrastructure installation, prior to running the root.sh or rootupgrade.sh scripts on each node. A new version of OPatch is also required to install this patch. Obviously installing this patch increases the complexity of the Grid Infrastructure installation / upgrade.

Oracle has issued a utility that checks whether the patch is required. The utility can be downloaded from MOS Note 1212703.1 Grid Infrastructure install or upgrade may fail due to Multicasting. The utility can be downloaded and installed by the grid user (as opposed to root).

The downloaded file is called mcasttest.tgz; it should be unzipped and unarchived into an empty directory using:

[grid@server19]$ gunzip mcasttest.tgz
[grid@server19]$ tar xfv mcastest.tar

The files are unarchived into a subdirectory called mcasttest which contains the following files:

[grid@server19]$ ls -l
-rwxr-xr-x 1 grid oinstall 15048 mcast2.aix.ppc64
-rwxr-xr-x 1 grid oinstall 73380 mcast2.hpux.ia64
-rwxr-xr-x 1 grid oinstall 32768 mcast2.hpux.parisc64
-rwxr-xr-x 1 grid oinstall 10232 mcast2.linux.x32
-rwxr-xr-x 1 grid oinstall 14799 mcast2.linux.x64
-rwxr-xr-x 1 grid oinstall 11852 mcast2.solaris.sparc64
-rwxr-xr-x 1 grid oinstall 11328 mcast2.solaris.x64
-rwxr-xr-x 1 grid oinstall 12093 mcasttest.pl
-rw-r--r-- 1 grid oinstall  3455 README.txt

As you can see there is a Perl script called mcasttest.pl and a series of binaries for each of the major Unix-like platforms supported by Oracle. The dates have been omitted to fit the listing on the page.

The mcasttest.pl script takes the following options:

# Options:
# -n node,node,...             List of cluster nodes
# -i interface,interface,...   List of interfaces to test
# -m IP,IP,...                 Multicast Address(es) to test
# -d directory                 Directory to place executable
# -g debug level               Debug Level 'low' or 'high'

The -n option specifies a list of nodes e.g -n server19,server20

The -i option specifes a list of interfaces e.g. -i bond2

By default the utility will test the following multicast addresses and ports:

The Perl script processes the options, determines the operating system type and then executes the appropriate binary.

So far we have seen three possible outcomes. All examples were run by the grid user:

Example 1: Both addresses succeed (tested on Solaris SPARC)

$ ./mcasttest.pl -n server21,server22 -i e1000g2
###########  Setup for node server21  ##########
Checking node access 'server21'
Checking node login 'server21'
Checking/Creating Directory /tmp/mcasttest for binary on node 'server21'
Distributing mcast2 binary to node 'server21'
###########  Setup for node server22  ##########
Checking node access 'server22'
Checking node login 'server22'
Checking/Creating Directory /tmp/mcasttest for binary on node 'server22'
Distributing mcast2 binary to node 'server22'
###########  testing Multicast on all nodes  ##########

Test for Multicast address 230.0.1.0

Nov 22 13:24:43 | Multicast Succeeded for e1000g2 
  using address 230.0.1.0:42000

Test for Multicast address 224.0.0.251

Nov 22 13:24:44 | Multicast Succeeded for e1000g2 
  using address 224.0.0.251:42001

In the above example the multicast test was successful for both nodes. No further action is require to install Grid Infrastructure.

Example 2: First address fails, second address succeeds (tested on Linux x86-64)

$ ./mcasttest.pl -n server23,server24 -i bond1
###########  Setup for node server23  ##########
Checking node access 'server23'
Checking node login 'server23'
Checking/Creating Directory /tmp/mcasttest for binary 
  on node 'server23'
Distributing mcast2 binary to node 'server23'
###########  Setup for node server24  ##########
Checking node access 'server24'
Checking node login 'server24'
Checking/Creating Directory /tmp/mcasttest for binary 
  on node 'server24'
Distributing mcast2 binary to node 'server24'
###########  testing Multicast on all nodes  ##########

Test for Multicast address 230.0.1.0

Nov 19 11:29:11 | Multicast Failed for bond1 
  using address 230.0.1.0:42000

Test for Multicast address 224.0.0.251

Nov 19 11:29:12 | Multicast Succeeded for bond1 
  using address 224.0.0.251:42001

In this example the test for the 230.0.1.0 address has failed, but the test for the 224.0.0.251 address has been successful. In this case the patch for bug 9974223 should be installed.

Example 3: Both addresses fail (tested on Solaris SPARC)

$ ./mcasttest.pl -n server21,server22 -i e1000g2
###########  Setup for node server21  ##########
Checking node access 'server21'
Checking node login 'server21'
Checking/Creating Directory /tmp/mcasttest for binary on node 'server21'
Distributing mcast2 binary to node 'server21'
###########  Setup for node server22  ##########
Checking node access 'server22'
Checking node login 'server22'
Checking/Creating Directory /tmp/mcasttest for binary on node 'server22'
Distributing mcast2 binary to node 'server22'
###########  testing Multicast on all nodes  ##########

Test for Multicast address 230.0.1.0\n\nNov 22 10:40:40 | Multicast Failed for e1000g2 
  using address 230.0.1.0:42000

Test for Multicast address 224.0.0.251

Nov 22 10:41:11 | Multicast Failed for e1000g2 
  using address 224.0.0.251:42001

In this example both addresses have failed. Installation of Grid Infrastructure will definitely fail. It will be necessary either to enable multicasting for the existing switches or to use new switches for the private network which permit multicasting.