Linux OS Service 'oracleasm'
- Service Name
oracleasm
- Description
The oracleasm service is used to provision, configure and manage Oracle Automatic Storage Management (ASM) disks via the Oracle Automatic Storage Management library driver (ASMLib). The oracleasm services creates the necessary library interface through which ASM disk devices are made available to Oracle ASM (instance).
- Nature
System service
- Configuration File
/etc/sysconfig/oracleasm
- Oracle Enterprise Linux Version(s)
- OEL 4
- OEL 5
- Requirement
Optional - needed only if operating system-level management and configuration of Oracle ASM disk devices is required. Not needed if Oracle ASM (instance-only) management of ASM group/disk devices is required/preferred.
oracleasm
/etc/init.d/oracleasm$ oracleasm -hUsage: oracleasm [--exec-path=<exec_path>] <command> [ <args> ] oracleasm --exec-path oracleasm -h oracleasm -VThe basic oracleasm commands are: configure Configure the Oracle Linux ASMLib driver init Load and initialize the ASMLib driver exit Stop the ASMLib driver scandisks Scan the system for Oracle ASMLib disks status Display the status of the Oracle ASMLib driver listdisks List known Oracle ASMLib disks querydisk Determine if a disk belongs to Oracle ASMlib createdisk Allocate a device for Oracle ASMLib use deletedisk Return a device to the operating system renamedisk Change the label of an Oracle ASMlib disk update-driver Download the latest ASMLib driver| Option | Description |
|---|---|
configure | Use the configure option to reconfigure the Automatic Storage Management library driver, if necessary:# /etc/init.d/oracleasm configure |
enable disable | Use the disable and enable options to change the actions of the Automatic Storage Management library driver when the system starts. The enable option causes the Automatic Storage Management library driver to load when the system starts:# /etc/init.d/oracleasm enable |
start stop restart | Use the start, stop, and restart options to load or unload the Automatic Storage Management library driver without restarting the system:# /etc/init.d/oracleasm restart |
createdisk | Use the createdisk option to mark a disk device for use with the Automatic Storage Management library driver and give it a name:# /etc/init.d/oracleasm createdisk DISKNAME devicename |
deletedisk | Use the deletedisk option to unmark a named disk device:# /etc/init.d/oracleasm deletedisk DISKNAMECaution: Do not use this command to unmark disks that are being used by an Automatic Storage Management disk group. You must delete the disk from the Automatic Storage Management disk group before you unmark it. |
querydisk | Use the querydisk option to determine if a disk device or disk name is being used by the Automatic Storage Management library driver:# /etc/init.d/oracleasm querydisk {DISKNAME | devicename}
|
listdisks | Use the listdisks option to list the disk names of marked Automatic Storage Management library driver disks:# /etc/init.d/oracleasm listdisks |
scandisks | Use the scandisks option to enable cluster nodes to identify which shared disks have been marked as Automatic Storage Management library driver disks on another node:# /etc/init.d/oracleasm scandisks |
Q&A
- Is /dev/oracleasm created?
When ASMLIB is configured, a special filesystem is created and mounted: /dev/oracleasm.
$ df -haFilesystem Size Used Avail Use% Mounted on/dev/hdc2 13G 11G 1.9G 85% /none 0 0 0 - /procnone 0 0 0 - /dev/ptsusbdevfs 0 0 0 - /proc/bus/usb/dev/hdc1 101M 14M 81M 15% /bootnone 250M 0 250M 0% /dev/shm/dev/sda1 8.4G 4.8G 3.2G 60% /oradata2/dev/sde1 8.3G 6.6G 1.4G 84% /oradata3oracleasmfs 0 0 0 - /dev/oracleasmWhen command oracleasm createdisk is executed, a block device is created under /dev/oracleasm/disks. This is the device discovered by ASMLIB using the string ORCL:*.
$ ll /dev/oracleasm/diskstotal 0brw-rw---- 1 oracle dba 8, 97 Apr 28 15:20 VOL001brw-rw---- 1 oracle dba 8, 81 Apr 28 15:20 VOL002brw-rw---- 1 oracle dba 8, 65 Apr 28 15:20 VOL003brw-rw---- 1 oracle dba 8, 49 Apr 28 15:20 VOL004brw-rw---- 1 oracle dba 8, 33 Apr 28 15:20 VOL005brw-rw---- 1 oracle dba 8, 17 Apr 28 15:20 VOL006brw-rw---- 1 oracle dba 8, 129 Apr 28 15:20 VOL007brw-rw---- 1 oracle dba 8, 113 Apr 28 15:20 VOL008- Checking if ASMLIB was installed properly:
[root@arlnx2 asm_tar]# /etc/init.d/oracleasm statusChecking if ASM is loaded: [ OK ]Checking if /dev/oracleasm is mounted: [ OK ]If the command fails, use strace and generate a log file:
strace -f -o asm_status.out /etc/init.d/oracleasm status
Additional information to verify the installation can be found in note 269194.1
- Listing the ASMLIB disks:
$ /etc/init.d/oracleasm listdisks
VOL001
VOL002
VOL003
VOL004
VOL005
VOL006
VOL007
VOL008
$ ll /dev/oracleasm/diskstotal 0brw-rw---- 1 oracle dba 8, 97 Apr 28 15:20 VOL001brw-rw---- 1 oracle dba 8, 81 Apr 28 15:20 VOL002brw-rw---- 1 oracle dba 8, 65 Apr 28 15:20 VOL003brw-rw---- 1 oracle dba 8, 49 Apr 28 15:20 VOL004brw-rw---- 1 oracle dba 8, 33 Apr 28 15:20 VOL005brw-rw---- 1 oracle dba 8, 17 Apr 28 15:20 VOL006brw-rw---- 1 oracle dba 8, 129 Apr 28 15:20 VOL007brw-rw---- 1 oracle dba 8, 113 Apr 28 15:20 VOL008
You will find an entry under /dev/oracleasm/disks. This is the block device associated to the physical device. If the file exist the command will return information, but if not, plese execute:
strace -f -o asm_listd.out /etc/init.d/oracleasm listdisks- How to identify the physical disk bound to the ASMLIB disk.
Use /etc/init.d/oracleasm querydisk <NAME> where NAME is any name under /dev/oracleasm/disks.
[root@arlnx2 asm_tar]# /etc/init.d/oracleasm querydisk -d VOL1Disk "VOL1" is a valid ASM disk on device [8, 33]
The command reports the device identified with major,minor numbers which are unique numbers associated to each disk. File /proc/partitions can be used to find the name of the device associated with those numbers:
$ more /proc/partitionsmajor minor #blocks name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq 8 0 8891620 sda 39715 78016 941080 417000 156198 242472 3189752 214180 0 420630 631180 8 1 8891376 sda1 39691 77970 940922 416780 156198 242472 3189752 214180 0 420410 630960 8 16 8891620 sdb 87 250 803 740 0 0 0 0 0 740 740 8 17 8891376 sdb1 57 193 632 480 0 0 0 0 0 480 480 8 32 17783250 sdc 745 2993 8321 8300 0 0 0 0 0 5250 8300 8 33 977904 sdc1 87 139 644 1040 0 0 0 0 0 1040 1040 8 34 977920 sdc2 35 193 456 230 0 0 0 0 0 230 230 8 35 1 sdc3 4 0 8 40 0 0 0 0 0 40 40 8 37 977904 sdc5 57 193 632 1240 0 0 0 0 0 1240 1240 8 38 977904 sdc6 57 193 632 1170 0 0 0 0 0 1170 1170
Also connected as root you can run the same command but referencing the physical device:
[root@arlnx2 dbs]# /etc/init.d/oracleasm querydisk /dev/sdc1Disk "/dev/sdc1" is marked an ASM disk with the label "VOL1"
Any error on this command will require using strace:
strace -f -o asm_query.out /etc/init.d/oracleasm querydisk <NAME>- How to identify if ASMLIB is used or not
SQL> select path ,library from v$asm_disk;PATH LIBRARY-------------------- ------------------------------------------------------------ORCL:VOL001 ASM Library - Generic Linux, version 2.0.2 (KABI_V2)ORCL:VOL002 ASM Library - Generic Linux, version 2.0.2 (KABI_V2)ORCL:VOL003 ASM Library - Generic Linux, version 2.0.2 (KABI_V2)ORCL:VOL004 ASM Library - Generic Linux, version 2.0.2 (KABI_V2)PATH LIBRARY-------------------------------------------------- ------------------------------------------------------------/dev/oracleasm/disks/ASM7 System/dev/oracleasm/disks/ASM2 System/dev/oracleasm/disks/ASM1 System/dev/oracleasm/disks/ASM5 System/dev/oracleasm/disks/ASM6 System/dev/oracleasm/disks/ASM4 System/dev/oracleasm/disks/ASM3 SystemTroubleshooting ASM/ASMLIB issues
1) In order to check if the ASMLIB API is correctly configured, please execute the next commands and provide us the output (from each node if this is RAC):
$> cat /etc/*release $> uname -a $> rpm -qa |grep oracleasm $> df -ha
2) Check the discovery path (from each node if this is RAC):
$> /etc/init.d/oracleasm status $> /usr/sbin/oracleasm-discover $> /usr/sbin/oracleasm-discover 'ORCL:*'3) Please check if the ASMLIB devices can be accessed (from each node if this is RAC):
$> /etc/init.d/oracleasm scandisks $> /etc/init.d/oracleasm listdisks $> /etc/init.d/oracleasm querydisk <each disk from previous output> $> ls -l /dev/oracleasm/disks
4) Upload the next files from each node if this is RAC:
=)> /var/log/messages* =)> /var/log/oracleasm=)> /etc/sysconfig/oracleasm
5) Please show us the partition table (from each node if this is RAC):
$> cat /proc/partitions
6) If you are using multipath devices (mapper devices or emcpower) then show me the output of:
$> ls -l /dev/mpath/* $> ls -l /dev/mapper/* $> ls -l /dev/dm-* $> ls -l /dev/emcpower*
Or if you have another multipath configuration then list the devices:
$> ls -l /dev/<multi path device name>*
7) Finally connect to your ASM instance, execute the next script and upload me the output file (from each node if this is RAC):
spool asm<#>.htmlSET MARKUP HTML ON set echo onset pagesize 200alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';select 'THIS ASM REPORT WAS GENERATED AT: ==)> ' , sysdate " " from dual;select 'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ' , MACHINE " " from v$session where program like '%SMON%';select * from v$asm_diskgroup;SELECT * FROM V$ASM_DISK ORDER BY GROUP_NUMBER,DISK_NUMBER; SELECT * FROM V$ASM_CLIENT; select * from V$ASM_ATTRIBUTE;select * from v$asm_operation;select * from gv$asm_operationselect * from v$version;show parameter asmshow parameter clustershow parameter instance_typeshow parameter instance_nameshow parameter spfileshow sgaspool offexit