[ 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 http://otn.oracle.com/tech/linux/asmlib/ 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. For example, if you were running Red Hat Advanced Server 2.1, and the kernel you were using was the 2.4.9-e.27enterprise kernel, you would choose the oracleasm-2.4.9-e.27enterprise package. So, to install these packages on Red Hat Advanced Server 2.1 on an Intel x86 machine, you might use the command: rpm -Uvh oracleasm-support-2.0.0-1.i386.rpm oracleasmlib-2.0.0-1.i386.rpm oracleasm-2.4.9-e.27enterprise-1.0.4-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. 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/sdg 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/sdg Checking if device "/dev/sdg" is an Oracle ASM disk [ OK ] [root@ca-test1 /]# /etc/init.d/oracleasm querydisk /dev/sdh Checking if device "/dev/sdh" 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:*".