Installing Oracle ASMLib
ASMLib is a support library for the Automatic Storage Management feature of Oracle Database 10g. This document is a set of tips for installing the library and its supporting driver. The complete installation guide is part of the Oracle Database 10g Documentation.

Installing ASMLib
  This document describes the steps required to install the Linux specific ASM library and its assocated driver. This library is provide to enable ASM I/O to Linux disks without the limitations of the standard Unix I/O API. The steps below are steps that the system administrator must follow.

Locating the ASMLib Packages
  The ASMLib software is available from the Oracle Technology Network. Go to ASMLib download page and follow the link for your platform.

You will see 4-6 packages for your Linux platform. The oracleasmlib package provides the actual ASM library. The oracleasm-support package provides the utilities used to get the ASM driver up and running. Both of these packages need to be installed.

The remaining packages provide the kernel driver for the ASM library. Each package provides the driver for a different kernel. You must install the appropriate package for the kernel you are running. Use the "uname -r command to determine the version of the kernel. The oracleasm kerel driver package will have that version string in its name. For example, if you were running Red Hat Enterprise Linux 4 AS, and the kernel you were using was the 2.6.9-5.0.5.ELsmp kernel, you would choose the oracleasm-2.6.9-5.0.5-ELsmp package. So, to install these packages on RHEL4 on an Intel x86 machine, you might use the command:

  rpm -Uvh oracleasm-support-2.0.0-1.i386.rpm \
    oracleasm-lib-2.0.0-1.i386.rpm \
    oracleasm-2.6.9-5.0.5-ELsmp-2.0.0-1.i686.rpm
If you were on a different machine, the package names would be slightly different, replacing 'i686' with the appropriate architecture. Use the package names relevant for your distribution.
NOTE: Distributions with the Linux 2.4 kernel still use the 1.0 kernel driver, while distributions based on the Linux 2.6 kernel use the 2.0 kernel driver. All distributions use version 2.0 of the support and library packages. See the driver matrix for more information.

Once the command completes, ASMLib is now installed on the system.

Configuring ASMLib
  Now that the ASMLib software is installed, a few steps have to be taken by the system administrator to make the ASM driver available. The ASM driver needs to be loaded, and the driver filesystem needs to be mounted. This is taken care of by the initialization script, /etc/init.d/oracleasm.

Run the /etc/init.d/oracleasm script with the 'configure' option. It will ask for the user and group that default to owning the ASM driver access point. If the database was running as the 'oracle' user and the 'dba' group, the output would look like this:

  [root@ca-test1 /]# /etc/init.d/oracleasm configure
  Configuring the Oracle ASM library driver.
 
  This will configure the on-boot properties of the Oracle ASM library
  driver.  The following questions will determine whether the driver is
  loaded on boot and what permissions it will have.  The current values
  will be shown in brackets ('[]').  Hitting  without typing an
  answer will keep that current value.  Ctrl-C will abort.

  Default user to own the driver interface []: oracle
  Default group to own the driver interface []: dba
  Start Oracle ASM library driver on boot (y/n) [n]: y
  Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
  Writing Oracle ASM library driver configuration            [  OK  ]
  Creating /dev/oracleasm mount point                        [  OK  ]
  Loading module "oracleasm"                                 [  OK  ]
  Mounting ASMlib driver filesystem                          [  OK  ]
  Scanning system for ASM disks                              [  OK  ]
This should load the oracleasm.o driver module and mount the ASM driver filesystem. By selecting enabled = 'y' during the configuration, the system will always load the module and mount the filesystem on boot.

The automatic start can be enabled or disabled with the 'enable' and 'disable' options to /etc/init.d/oracleasm:

  [root@ca-test1 /]# /etc/init.d/oracleasm disable
  Writing Oracle ASM library driver configuration            [  OK  ]
  Unmounting ASMlib driver filesystem                        [  OK  ]
  Unloading module "oracleasm"                               [  OK  ]

  [root@ca-test1 /]# /etc/init.d/oracleasm enable
  Writing Oracle ASM library driver configuration            [  OK  ]
  Loading module "oracleasm"                                 [  OK  ]
  Mounting ASMlib driver filesystem                          [  OK  ]
  Scanning system for ASM disks                              [  OK  ]

Making Disks Available to ASMLib
  The system administrator has one last task. Every disk that ASMLib is going to be accessing needs to be made available. This is accomplished by creating an ASM disk. The /etc/init.d/oracleasm script is again used for this task:
  [root@ca-test1 /]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdg1
  Creating Oracle ASM disk "VOL1"                            [  OK  ]
Disk names are ASCII capital letters, numbers, and underscores. They must start with a letter.

Disks that are no longer used by ASM can be unmarked as well:

  [root@ca-test1 /]# /etc/init.d/oracleasm deletedisk VOL1
  Deleting Oracle ASM disk "VOL1"                            [  OK  ]
Any operating system disk can be queried to see if it is used by ASM:
  [root@ca-test1 /]# /etc/init.d/oracleasm querydisk /dev/sdg1
  Checking if device "/dev/sdg1" is an Oracle ASM disk        [  OK  ]
  [root@ca-test1 /]# /etc/init.d/oracleasm querydisk /dev/sdh1
  Checking if device "/dev/sdh1" is an Oracle ASM disk        [FAILED]
Existing disks can be listed and queried:
  [root@ca-test1 /]# /etc/init.d/oracleasm listdisks
  VOL1
  VOL2
  VOL3
  [root@ca-test1 /]# /etc/init.d/oracleasm querydisk VOL1
  Checking for ASM disk "VOL1"                               [  OK  ]
When a disk is added to a RAC setup, the other nodes need to be notified about it. Run the 'createdisk' command on one node, and then run 'scandisks' on every other node:
  [root@ca-test1 /]# /etc/init.d/oracleasm scandisks
  Scanning system for ASM disks                              [  OK  ]

Discovery Strings for Linux ASMLib
  ASMLib uses discovery strings to determine what disks ASM is asking for. The generic Linux ASMLib uses glob strings. The string must be prefixed with "ORCL:". Disks are specified by name. A disk created with the name "VOL1" can be discovered in ASM via the discovery string "ORCL:VOL1". Similarly, all disks that start with the string "VOL" can be queried with the discovery string "ORCL:VOL*".

Disks cannot be discovered with path names in the discovery string. If the prefix is missing, the generic Linux ASMLib will ignore the discovery string completely, expecting that it is intended for a different ASMLib. The only exception is the empty string (""), which is considered a full wildcard. This is precisely equivalent to the discovery string "ORCL:*".

NOTE: Once you mark your disks with Linux ASMLib, Oracle Database 10g R1 (10.1) OUI will not be able to discover your disks. It is recommended that you complete a Software Only install and then use DBCA to create your database (or use the custom install).

 
Left Curve
Learn More
Right Curve
 · Storage on Automatic
 · Oracle Database 10g

Left Curve
Discussion Forums
Right Curve
 · Database
 · Linux