Troubleshooting ASM disk related issues using kfed and kfod

Overview

 

  • KFOD is a utility  to verify disks before installing Grid Infrastructure
  • KFED is a utility that can be used to read and modify ASM metadata blocks. As a first debug step read the ASM disk header block and verify the ASM disk header status

Gather info for available ASM Disks

 Note ASM disks can be created as 
   - Multipath/(ISCSII) - UDEV  disks 
   - ASMLIB managed disks
   - UDEV managed disk 

List all currently used ASM disk 
[grid@grac41 ASM]$  asmcmd lsdsk -k
Total_MB  Free_MB  OS_MB  Name               Failgroup          Failgroup_Type  Library  Label  UDID  Product  Redund   Path
   10236     4715  10236  DATA_0000          DATA_0000          REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sdb1
   10236     4713  10236  DATA_0001          DATA_0001          REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sdc1
   10236     4711  10236  DATA_0002          DATA_0002          REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sdd1
   10236     4712  10236  DATA_0003          DATA_0003          REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sde1
    2047     1696   2047  OCR_0000           OCR_0000           REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sdf1
    2047     1696   2047  OCR_0001           OCR_0001           REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sdg1
    2047     1697   2047  OCR_0002           OCR_0002           REGULAR         System                         UNKNOWN  /dev/asmdisk1_udev_sdh1
    1019      875   1019  SSD_0000           SSD_0000           REGULAR         System                         UNKNOWN  /dev/asmdisk8_ssd1
    1019      875   1019  SSD_0001           SSD_0001           REGULAR         System                         UNKNOWN  /dev/asmdisk8_ssd2
    1019      875   1019  SSD_0002           SSD_0002           REGULAR         System                         UNKNOWN  /dev/asmdisk8_ssd3
    1913     1521   1913  OPENFILER_DG_0000  OPENFILER_DG_0000  REGULAR         System                         UNKNOWN  /dev/asmdisk_OF-disk1
    1913     1522   1913  OPENFILER_DG_0001  OPENFILER_DG_0001  REGULAR         System                         UNKNOWN  /dev/asmdisk_OF-disk2
    1913     1522   1913  OPENFILER_DG_0002  OPENFILER_DG_0002  REGULAR         System                         UNKNOWN  /dev/asmdisk_OF-disk3
   20473    15407  20473  FRA_0001           FRA_0001           REGULAR         System                         UNKNOWN  /dev/asmdisk_fra1
   20473    15406  20473  FRA_0002           FRA_0002           REGULAR         System                         UNKNOWN  /dev/asmdisk_fra2
    1019      882   1019  ASMLIB_DG_0000     ASMLIB_DG_0000     REGULAR         System                         UNKNOWN  /dev/oracleasm/disks/ASMLIB_DISK1
    1019      882   1019  ASMLIB_DG_0001     ASMLIB_DG_0001     REGULAR         System                         UNKNOWN  /dev/oracleasm/disks/ASMLIB_DISK2
    1019      882   1019  ASMLIB_DG_0002     ASMLIB_DG_0002     REGULAR         System                         UNKNOWN  /dev/oracleasm/disks/ASMLIB_DISK3

What sort of ASM disks are used ?
Multipath managed disks
root@grac43 ASM]# multipath -ll
grac41_disk3 (14f504e46494c45525237556f4c352d574b4e6c2d446e736b) dm-4 OPNFILER,VIRTUAL-DISK
size=1.9G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 23:0:0:0 sdr 65:16 active ready running
  `- 24:0:0:0 sdq 65:0  active ready running
grac41_disk2 (14f504e46494c4552786431396d6c2d6d4950492d52517178) dm-3 OPNFILER,VIRTUAL-DISK
size=1.9G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 19:0:0:0 sdp 8:240 active ready running
  `- 20:0:0:0 sdt 65:48 active ready running
grac41_disk1 (14f504e46494c45523264556151442d5261336d2d566e4250) dm-2 OPNFILER,VIRTUAL-DISK
size=1.9G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
  |- 21:0:0:0 sds 65:32 active ready running
  `- 22:0:0:0 sdu 65:64 active ready running

 Check your Multipath Devices 
[root@grac43 ASM]# ls -l  /dev/mapper/grac41*
lrwxrwxrwx. 1 root root  7 Apr 27 10:44 /dev/mapper/grac41_disk1 -> ../dm-2
lrwxrwxrwx. 1 root root 19 Apr 27 10:44 /dev/mapper/grac41_disk1p1 -> ../asmdisk_OF-disk1
lrwxrwxrwx. 1 root root  7 Apr 27 10:44 /dev/mapper/grac41_disk2 -> ../dm-3
lrwxrwxrwx. 1 root root 19 Apr 27 10:44 /dev/mapper/grac41_disk2p1 -> ../asmdisk_OF-disk2
lrwxrwxrwx. 1 root root  7 Apr 27 10:44 /dev/mapper/grac41_disk3 -> ../dm-4
lrwxrwxrwx. 1 root root 19 Apr 27 10:44 /dev/mapper/grac41_disk3p1 -> ../asmdisk_OF-disk3

[root@grac43 ASM]# ls -l /dev/asmdisk_OF*
brw-rw----. 1 grid asmadmin 252, 5 Apr 27 11:26 /dev/asmdisk_OF-disk1
brw-rw----. 1 grid asmadmin 252, 6 Apr 27 10:49 /dev/asmdisk_OF-disk2
brw-rw----. 1 grid asmadmin 252, 7 Apr 27 10:49 /dev/asmdisk_OF-disk3
..
[root@grac43 ASM]# ls -l /dev/dm*
brw-rw----. 1 root disk 252, 0 Apr 27 10:44 /dev/dm-0
brw-rw----. 1 root disk 252, 1 Apr 27 10:44 /dev/dm-1
brw-rw----. 1 root disk 252, 2 Apr 27 10:44 /dev/dm-2
brw-rw----. 1 root disk 252, 3 Apr 27 10:44 /dev/dm-3
brw-rw----. 1 root disk 252, 4 Apr 27 10:44 /dev/dm-4

--> Disks ( /dev/mapper/grac41_disk1 ) are mapped to DM devices ( ../dm-2 ) 
[root@grac43 ASM]# ls -l /dev/mapper/grac41_disk1 /dev/mapper/grac41_disk2 /dev/mapper/grac41_disk3
lrwxrwxrwx. 1 root root 7 Apr 27 10:44 /dev/mapper/grac41_disk1 -> ../dm-2
lrwxrwxrwx. 1 root root 7 Apr 27 10:44 /dev/mapper/grac41_disk2 -> ../dm-3
lrwxrwxrwx. 1 root root 7 Apr 27 10:44 /dev/mapper/grac41_disk3 -> ../dm-4

--> Partitions have its own Multipath devices
[root@grac43 ASM]# ls -l   /dev/asmdisk_OF-disk1 /dev/asmdisk_OF-disk2 /dev/asmdisk_OF-disk3
brw-rw----. 1 grid asmadmin 252, 5 Apr 27 11:30 /dev/asmdisk_OF-disk1
brw-rw----. 1 grid asmadmin 252, 6 Apr 27 10:49 /dev/asmdisk_OF-disk2
brw-rw----. 1 grid asmadmin 252, 7 Apr 27 10:49 /dev/asmdisk_OF-disk3

ASMLIB  managed disks  
[grid@grac41 ASM]$ /etc/init.d/oracleasm listdisks 
ASMLIB_DISK1
ASMLIB_DISK2
ASMLIB_DISK3

UDEV managed disks  
[grid@grac41 ASM]$ cd /etc/udev/rules.d
[grid@grac41 rules.d]$ more 99-oracle-asmdevices.rules
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB009fb575-e6eaab6e", NAME="asmdisk1_udev_sdb1", OWNE
R="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent", RESULT=="1ATA_VBOX_HARDDISK_VB60d9eca1-f7af15e8", NAME="asmdisk1_udev_sdc1", OWNE
R="grid", GROUP="asmadmin", MODE="0660"
..
--> Here we can see that some of our DISK are based on UDEV rules
    In short you can combine UDEV, ASMLIB and MULTIPATH based ASM disks on a single system

 

Checking all ASM disks by reading AMS disk header using kfed

Run as grid user the  following script kfed.sh
--> You need to use partitions for the kfed command 
    You must change ASM_DISK_PATH and ASM_HOME to reflect your installation 

------------------------------ Script kfed.sh ----------------------------------------
#! /bin/sh
#
# You many need to change ASM_DISK_PATH to pick up  all availabe ASM disks
#
#   /dev/mapper/grac41_disk*p1   for MULTTPATH devices 
#   /dev/asmdisk_OF-disk*        for UDEV configuration or
#   dev/oracleasm/disks/*        for ASMLIB managed disks
#   

rm /tmp/kfed*out
ASM_DISK_PATH='/dev/asm* /dev/oracleasm/disks/*' # <--------- needs editing
ls -l $ASM_DISK_PATH
cd /u01/app/11204/grid/bin                      # <asm_home>   # <--------- needs editing
for i in `ls  $ASM_DISK_PATH`
   do
   echo ./kfed read $i  >> /tmp/kfed_DH.out 
   ./kfed read $i >> /tmp/kfed_DH.out
   echo ./kfed read $i blkn=1  >> /tmp/kfed_FS.out
   ./kfed read $i blkn=1  >> /tmp/kfed_FS.out
   echo  ./kfed read $i  aun=1 blkn=254 >> /tmp/kfed_BK.out
   ./kfed read $i  aun=1 blkn=254 >> /tmp/kfed_BK.out
   echo  ./kfed read $i aun=2 blkn=1 >> /tmp/kfed_FD.out
   ./kfed read $i aun=2 blkn=1 >> /tmp/kfed_FD.out
   echo   ./kfed read $i aun=2 blkn=2   >> /tmp/kfed_DD.out
   ./kfed read $i aun=2 blkn=2 >> /tmp/kfed_DD.out
done
cat /tmp/kfed_DH.out | egrep 'type|name|kfed|block.blk'
echo " -> Further details can be found in files listed by  : ls -l /tmp/kfed*out "

------------------------------- End script------------------------------------------------

Output from kfed.sh could look like :
[grid@grac41 ASM]$   kfed.sh
brw-rw----. 1 grid asmadmin   8,  17 Apr 29 10:08 /dev/asmdisk1_udev_sdb1
brw-rw----. 1 grid asmadmin   8,  33 Apr 29 10:07 /dev/asmdisk1_udev_sdc1
brw-rw----. 1 grid asmadmin   8,  49 Apr 29 10:08 /dev/asmdisk1_udev_sdd1
.....
brw-rw----. 1 grid asmadmin   8, 161 Apr 29 10:08 /dev/oracleasm/disks/ASMLIB_DISK1
brw-rw----. 1 grid asmadmin   8, 225 Apr 29 10:08 /dev/oracleasm/disks/ASMLIB_DISK2
brw-rw----. 1 grid asmadmin   8, 241 Apr 29 10:08 /dev/oracleasm/disks/ASMLIB_DISK3

total 0
-rw-r--r--. 1 grid oinstall  119666 Apr 29 10:08 /tmp/kfed_BK.out
-rw-r--r--. 1 grid oinstall 1172661 Apr 29 10:08 /tmp/kfed_DD.out
-rw-r--r--. 1 grid oinstall  119345 Apr 29 10:08 /tmp/kfed_DH.out
-rw-r--r--. 1 grid oinstall 1226766 Apr 29 10:08 /tmp/kfed_FD.out
-rw-r--r--. 1 grid oinstall 4893821 Apr 29 10:08 /tmp/kfed_FS.out
./kfed read /dev/asmdisk1_udev_sdb1
kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD
kfbh.block.blk:                       0 ; 0x004: blk=0
kfdhdb.dskname:               DATA_0000 ; 0x028: length=9
kfdhdb.grpname:                    DATA ; 0x048: length=4
kfdhdb.fgname:                DATA_0000 ; 0x068: length=9
kfdhdb.capname:                         ; 0x088: length=0
./kfed read /dev/asmdisk1_udev_sdc1
kfbh.type:                            1 ; 0x002: KFBTYP_DISKHEAD
kfbh.block.blk:                       0 ; 0x004: blk=0
kfdhdb.dskname:               DATA_0001 ; 0x028: length=9
kfdhdb.grpname:                    DATA ; 0x048: length=4
kfdhdb.fgname:                DATA_0001 ; 0x068: length=9
kfdhdb.capname:                         ; 0x088: length=0
...

Collect ASM related Data like verions, OS protections, Partition Layout, Performance, AMS Disk Info using kfod

  
------------------------------ Script check_asm_dsk.sh  ----------------------------------------

#!/bin/bash 
#
# ./check_asm_dsk.sh >CHECK_ASM_DSK.OUT 2>&1; cat  CHECK_ASM_DSK.OUT
#
ASM_DISK_STRING="/dev/asmdisk* /dev/oracleasm/disks/*"    #  ASM Disk Discovery String  <--------- needs editing
ASM_OWNER=grid                                            #  <asm_home sfw owner here>  <--------- needs editing
DB_OWNER=oracle                                           #  <db_home sfw owner here>   <--------- needs editing
ASM_OH=/u01/app/11204/grid                                # ASM ORACLE_HOME             <--------- needs editing
DB_OH=/u01/app/oracle/product/11204/racdb                 # DB ORACLE_HOME              <--------- needs editing

 echo $ id 
 id 
 echo $ id $ASM_OWNER  
 id  $ASM_OWNER                                                   #  <asm_home sfw owner here>   <--------- needs editing
 echo $ id $DB_OWNER 
 id   $DB_OWNER                                                  #  <db_home sfw owner here>   <--------- needs editin
 echo $ ls -ltra $ASM_OH/bin/oracle 
 ls -ltra $ASM_OH/bin/oracle                   # <asm_home>/bin/oracle   # <--------- needs editing
 echo $  -ltra /u01/app/oracle/product/11204/racdb/bin/oracle
 ls -ltra /u01/app/oracle/product/11204/racdb/bin/oracle   #  <oracle_home>/bin/oracle <--------- needs editing
 echo $ cat /etc/*-release
 cat /etc/*-release
 echo $ cat /etc/issue
 cat /etc/issue
 echo $ cat /proc/version
 cat /proc/version
 echo $ lsb_release -id
 lsb_release -id
 echo $ uname -a
 uname -a
 echo $  rpm -qa|grep oracleasm
 rpm -qa|grep oracleasm
 echo $ /etc/init.d/oracleasm status 
 /etc/init.d/oracleasm status
 echo $ /sbin/lsmod | grep oracleasm
 /sbin/lsmod | grep oracleasm
 echo $ df -ha
 df -ha
 date
 echo $ ls -ltra  $ASM_DISK_STRING 
 ls -ltra  $ASM_DISK_STRING 
 for i in `ls  $ASM_DISK_STRING`   
   do
   echo "$ dd if=$i of=/dev/null bs=1048576 count=5"
   dd if=$i of=/dev/null bs=1048576 count=5         #<----- the following command only attempts to read a devie (it does not write anything)
   echo  ""
 done

 echo $ cat /proc/partitions
 cat /proc/partitions
 echo "-> ASMLIB disks discover"
 /etc/init.d/oracleasm querydisk -d  `/etc/init.d/oracleasm listdisks -d` |
 cut -f2,10,11 -d" " | perl -pe 's/"(.*)".*\[(.*), *(.*)\]/$1 $2 $3/g;' |
 while read v_asmdisk v_minor v_major
 do
 v_device=`ls -la /dev | grep " $v_minor, *$v_major " | awk '{print $10}'`
 echo "ASM disk $v_asmdisk based on /dev/$v_device [$v_minor, $v_major]"
 done

 echo $ /etc/init.d/oracleasm listdisks    # (either from /usr/sbin or /etc/init.d directories)
 /etc/init.d/oracleasm listdisks           # (either from /usr/sbin or /etc/init.d directories)
 echo $ /usr/sbin/./oracleasm-discover
 /usr/sbin/./oracleasm-discover
 cd /u01/app/11204/grid/bin                # (ASM Oracle Home)     <--------- needs editing
 echo $ ./kfod asm_diskstring=$ASM_DISK_STRING disks=all
 ./kfod asm_diskstring=$ASM_DISK_STRING" disks=all
# Display ASMLIB managed Diks only 
    # Use /dev/oracleasm/disks/* instead of ORCL:* to avoid user and grop are reported as unknown 
 echo $ ./kfod asm_diskstring="/dev/oracleasm/disks/*" disks=all
 ./kfod asm_diskstring="/dev/oracleasm/disks/*" disks=all"
 echo $ ./kfod disks=all
 ./kfod disks=all
 echo $ cat /etc/sysconfig/oracleasm
 cat /etc/sysconfig/oracleasm
 exit
------------------------------ End Script check_asm_dsk.sh  ----------------------------------------

[grid@grac41 ASM]$ bash
[grid@grac41 ASM]$ ./check_asm_dsk.sh >CHECK_ASM_DSK.OUT 2>&1; cat  CHECK_ASM_DSK.OUT

Output from script ./check_asm_dsk.sh

$ id
uid=501(grid) gid=54321(oinstall) groups=54321(oinstall),500(vboxsf),504(asmadmin),506(asmdba),507(asmoper),54322(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$ id grid
uid=501(grid) gid=54321(oinstall) groups=54321(oinstall),500(vboxsf),54322(dba),504(asmadmin),506(asmdba),507(asmoper)
$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),500(vboxsf),54322(dba),506(asmdba)
$ ls -ltra /u01/app/11204/grid/bin/oracle
-rwsr-s--x. 1 grid oinstall 209914471 Sep 12  2013 /u01/app/11204/grid/bin/oracle
$ -ltra /u01/app/oracle/product/11204/racdb/bin/oracle
-rwsr-s--x. 1 oracle asmadmin 239626641 Sep 14  2013 /u01/app/oracle/product/11204/racdb/bin/oracle
$ cat /etc/lsb-release /etc/oracle-release /etc/redhat-release /etc/system-release
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Oracle Linux Server release 6.5
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Oracle Linux Server release 6.5
$ cat /etc/issue
Oracle Linux Server release 6.5
Kernel \r on an \m

$ cat /proc/version
Linux version 2.6.39-400.214.4.el6uek.x86_64 (mockbuild@ca-build44.us.oracle.com) (gcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC) ) #1 SMP Tue Mar 25 18:05:58 PDT 2014
$ lsb_release -id
Distributor ID:    OracleServer
Description:    Oracle Linux Server release 6.5
$ uname -a
Linux grac41.example.com 2.6.39-400.214.4.el6uek.x86_64 #1 SMP Tue Mar 25 18:05:58 PDT 2014 x86_64 x86_64 x86_64 GNU/Linux
oracleasmlib-2.0.4-1.el6.x86_64
kmod-oracleasm-2.0.6.rh1-2.el6.x86_64
oracleasm-support-2.1.8-1.el6.x86_64
$ /etc/init.d/oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
oracleasm              53865  1 
$ df -ha
df: `/root/.gvfs': Permission denied
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_oel64-lv_root
                       38G   26G   11G  72% /
proc                     0     0     0    - /proc
sysfs                    0     0     0    - /sys
devpts                   0     0     0    - /dev/pts
tmpfs                 4.0G  120M  3.9G   3% /dev/shm
/dev/sda1             485M  146M  314M  32% /boot
none                     0     0     0    - /proc/sys/fs/binfmt_misc
sunrpc                   0     0     0    - /var/lib/nfs/rpc_pipefs
ns1:/shared_data_nfs   35G   24G  9.7G  71% /u01/oradata
oracleasmfs              0     0     0    - /dev/oracleasm
kits                  2.8T  1.3T  1.5T  48% /media/sf_kits
patches               2.8T  1.3T  1.5T  48% /media/sf_patches
Thu May  1 14:12:52 CEST 2014
$ ls -ltra /dev/asmdisk1_udev_sdb1 /dev/asmdisk1_udev_sdc1 /dev/asmdisk1_udev_sdd1 /dev/asmdisk1_udev_sde1 /dev/asmdisk1_udev_sdf1 /dev/asmdisk1_udev_sdg1 /dev/asmdisk1_udev_sdh1 /dev/asmdisk8_ssd1 /dev/asmdisk8_ssd2 /dev/asmdisk8_ssd3 /dev/asmdisk_fra1 /dev/asmdisk_fra2 /dev/asmdisk_OF-disk1 /dev/asmdisk_OF-disk2 /dev/asmdisk_OF-disk3 /dev/oracleasm/disks/ASMLIB_DISK1 /dev/oracleasm/disks/ASMLIB_DISK2 /dev/oracleasm/disks/ASMLIB_DISK3
brw-rw----. 1 grid asmadmin 252,   7 May  1 14:08 /dev/asmdisk_OF-disk1
brw-rw----. 1 grid asmadmin 252,   5 May  1 14:08 /dev/asmdisk_OF-disk2
brw-rw----. 1 grid asmadmin 252,   6 May  1 14:08 /dev/asmdisk_OF-disk3
brw-rw----. 1 grid asmadmin   8, 129 May  1 14:08 /dev/asmdisk8_ssd2
brw-rw----. 1 grid asmadmin   8, 145 May  1 14:08 /dev/asmdisk8_ssd3
brw-rw----. 1 grid asmadmin   8, 193 May  1 14:08 /dev/asmdisk_fra1
brw-rw----. 1 grid asmadmin   8, 177 May  1 14:08 /dev/asmdisk8_ssd1
brw-rw----. 1 grid asmadmin   8,  17 May  1 14:08 /dev/asmdisk1_udev_sdb1
brw-rw----. 1 grid asmadmin   8, 209 May  1 14:12 /dev/asmdisk_fra2
brw-rw----. 1 grid asmadmin   8,  65 May  1 14:12 /dev/asmdisk1_udev_sde1
brw-rw----. 1 grid asmadmin   8,  49 May  1 14:12 /dev/asmdisk1_udev_sdd1
brw-rw----. 1 grid asmadmin   8,  33 May  1 14:12 /dev/asmdisk1_udev_sdc1
brw-rw----. 1 grid asmadmin   8,  81 May  1 14:12 /dev/asmdisk1_udev_sdf1
brw-rw----. 1 grid asmadmin   8,  97 May  1 14:12 /dev/asmdisk1_udev_sdg1
brw-rw----. 1 grid asmadmin   8, 113 May  1 14:12 /dev/asmdisk1_udev_sdh1
brw-rw----. 1 grid asmadmin   8, 241 May  1 14:12 /dev/oracleasm/disks/ASMLIB_DISK3
brw-rw----. 1 grid asmadmin   8, 225 May  1 14:12 /dev/oracleasm/disks/ASMLIB_DISK2
brw-rw----. 1 grid asmadmin   8, 161 May  1 14:12 /dev/oracleasm/disks/ASMLIB_DISK1
$ dd if=/dev/asmdisk1_udev_sdb1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.15644 s, 33.5 MB/s

$ dd if=/dev/asmdisk1_udev_sdc1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.167998 s, 31.2 MB/s

$ dd if=/dev/asmdisk1_udev_sdd1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.188401 s, 27.8 MB/s

$ dd if=/dev/asmdisk1_udev_sde1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.199952 s, 26.2 MB/s

$ dd if=/dev/asmdisk1_udev_sdf1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.259633 s, 20.2 MB/s

$ dd if=/dev/asmdisk1_udev_sdg1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.233417 s, 22.5 MB/s

$ dd if=/dev/asmdisk1_udev_sdh1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.23723 s, 22.1 MB/s

$ dd if=/dev/asmdisk8_ssd1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.212136 s, 24.7 MB/s

$ dd if=/dev/asmdisk8_ssd2 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.0576401 s, 91.0 MB/s

$ dd if=/dev/asmdisk8_ssd3 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.0530667 s, 98.8 MB/s

$ dd if=/dev/asmdisk_fra1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.201408 s, 26.0 MB/s

$ dd if=/dev/asmdisk_fra2 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.247131 s, 21.2 MB/s

$ dd if=/dev/asmdisk_OF-disk1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.301265 s, 17.4 MB/s

$ dd if=/dev/asmdisk_OF-disk2 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.31729 s, 16.5 MB/s

$ dd if=/dev/asmdisk_OF-disk3 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.2728 s, 19.2 MB/s

$ dd if=/dev/oracleasm/disks/ASMLIB_DISK1 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.232534 s, 22.5 MB/s

$ dd if=/dev/oracleasm/disks/ASMLIB_DISK2 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.206302 s, 25.4 MB/s

$ dd if=/dev/oracleasm/disks/ASMLIB_DISK3 of=/dev/null bs=1048576 count=5
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.200658 s, 26.1 MB/s

$ cat /proc/partitions
major minor  #blocks  name

   8        0   49152000 sda
   8        1     512000 sda1
   8        2   42300416 sda2
   8        3    6337427 sda3
   8       16   10485760 sdb
   8       17   10482381 sdb1
   8       32   10485760 sdc
   8       33   10482381 sdc1
   8       48   10485760 sdd
   8       49   10482381 sdd1
   8       64   10485760 sde
   8       65   10482381 sde1
   8       80    2097152 sdf
   8       81    2096451 sdf1
   8       96    2097152 sdg
   8       97    2096451 sdg1
   8      112    2097152 sdh
   8      113    2096451 sdh1
   8      128    1048576 sdi
   8      129    1044193 sdi1
   8      144    1048576 sdj
   8      145    1044193 sdj1
   8      160    1048576 sdk
   8      161    1044193 sdk1
   8      176    1048576 sdl
   8      177    1044193 sdl1
   8      192   20971520 sdm
   8      193   20964793 sdm1
   8      208   20971520 sdn
   8      209   20964793 sdn1
   8      224    1048576 sdo
   8      225    1044193 sdo1
   8      240    1048576 sdp
   8      241    1044193 sdp1
 252        0   40235008 dm-0
 252        1    5210112 dm-1
  65       16    1966080 sdr
  65       17    1959898 sdr1
  65       32    1966080 sds
  65       33    1959898 sds1
  65       48    1966080 sdt
  65       49    1959898 sdt1
  65       80    1966080 sdv
  65       81    1959898 sdv1
  65       64    1966080 sdu
  65       65    1959898 sdu1
  65        0    1966080 sdq
  65        1    1959898 sdq1
 252        2    1966080 dm-2
 252        3    1966080 dm-3
 252        4    1966080 dm-4
 252        5    1959898 dm-5
 252        6    1959898 dm-6
 252        7    1959898 dm-7
-> ASMLIB disks discover
ASM disk ASMLIB_DISK1 based on /dev/sdk1 [8, 161]
ASM disk ASMLIB_DISK2 based on /dev/sdo1 [8, 225]
ASM disk ASMLIB_DISK3 based on /dev/sdp1 [8, 241]
$ /etc/init.d/oracleasm listdisks
ASMLIB_DISK1
ASMLIB_DISK2
ASMLIB_DISK3
$ /usr/sbin/./oracleasm-discover
Using ASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so
[ASM Library - Generic Linux, version 2.0.4 (KABI_V2)]
Discovered disk: ORCL:ASMLIB_DISK1 [2088387 blocks (1069254144 bytes), maxio 512]
Discovered disk: ORCL:ASMLIB_DISK2 [2088387 blocks (1069254144 bytes), maxio 512]
Discovered disk: ORCL:ASMLIB_DISK3 [2088387 blocks (1069254144 bytes), maxio 512]
$ ./kfod asm_diskstring=/dev/asmdisk* /dev/oracleasm/disks/ASMLIB_DISK1 /dev/oracleasm/disks/ASMLIB_DISK2 /dev/oracleasm/disks/ASMLIB_DISK3 disks=all
_asm_a/llow_only_raw_disks        KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]
_asm_l/ibraries        ASM Libraries[_asm_libraries=lib1,lib2,...]
_asms/id        ASM Instance[_asmsid=sid]
a/sm_diskstring        ASM Diskstring [asm_diskstring=discoverystring, discoverystring ...]
c/luster        KFOD cluster [cluster=TRUE/(FALSE)]
db/_unique_name        db_unique_name for ASM instance[db_unique_name=dbname]
di/sks        Disks to discover [disks=raw,asm,badsize,all]
ds/cvgroup        Include group name [dscvgroup=TRUE/(FALSE)]
g/roup        Disks in diskgroup [group=diskgroup]
h/ostlist        hostlist[hostlist=host1,host2,...]
metadata_a/usize        AU Size for Metadata Size Calculation
metadata_c/lients        Client Count for Metadata Size Calculation
metadata_d/isks        Disk Count for Metadata Size Calculation
metadata_n/odes        Node Count for Metadata Size Calculation
metadata_r/edundancy        Redundancy for Metadata Size Calculation
n/ohdr        KFOD header suppression [nohdr=TRUE/(FALSE)]
o/p        KFOD options type [OP=DISKS/CANDIDATES/MISSING/GROUPS/INSTS/VERSION/CLIENTS/RM/RMVERS/DFLTDSTR/GPNPDSTR/METADATA/ALL]
p/file        ASM parameter file [pfile=parameterfile]
s/tatus        Include disk header status [status=TRUE/(FALSE)]
v/erbose        KFOD verbose errors [verbose=TRUE/(FALSE)]
KFOD-00101: LRM error [102] while parsing command line arguments
$ ./kfod disks=all
--------------------------------------------------------------------------------
 Disk          Size Path                                     User     Group   
================================================================================
   1:      10236 Mb /dev/asmdisk1_udev_sdb1                  grid     asmadmin
   2:      10236 Mb /dev/asmdisk1_udev_sdc1                  grid     asmadmin
   3:      10236 Mb /dev/asmdisk1_udev_sdd1                  grid     asmadmin
   4:      10236 Mb /dev/asmdisk1_udev_sde1                  grid     asmadmin
   5:       2047 Mb /dev/asmdisk1_udev_sdf1                  grid     asmadmin
   6:       2047 Mb /dev/asmdisk1_udev_sdg1                  grid     asmadmin
   7:       2047 Mb /dev/asmdisk1_udev_sdh1                  grid     asmadmin
   8:       1019 Mb /dev/asmdisk8_ssd1                       grid     asmadmin
   9:       1019 Mb /dev/asmdisk8_ssd2                       grid     asmadmin
  10:       1019 Mb /dev/asmdisk8_ssd3                       grid     asmadmin
  11:       1913 Mb /dev/asmdisk_OF-disk1                    grid     asmadmin
  12:       1913 Mb /dev/asmdisk_OF-disk2                    grid     asmadmin
  13:       1913 Mb /dev/asmdisk_OF-disk3                    grid     asmadmin
  14:      20473 Mb /dev/asmdisk_fra1                        grid     asmadmin
  15:      20473 Mb /dev/asmdisk_fra2                        grid     asmadmin
  16:       1019 Mb /dev/oracleasm/disks/ASMLIB_DISK1        grid     asmadmin
  17:       1019 Mb /dev/oracleasm/disks/ASMLIB_DISK2        grid     asmadmin
  18:       1019 Mb /dev/oracleasm/disks/ASMLIB_DISK3        grid     asmadmin
  19:       1019 Mb ORCL:ASMLIB_DISK1                        <unknown> <unknown>
  20:       1019 Mb ORCL:ASMLIB_DISK2                        <unknown> <unknown>
  21:       1019 Mb ORCL:ASMLIB_DISK3                        <unknown> <unknown>
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME                                                          
================================================================================
     +ASM2 /u01/app/11204/grid                                                  
     +ASM1 /u01/app/11204/grid                                                  
$ cat /etc/sysconfig/oracleasm
#
# This is a configuration file for automatic loading of the Oracle
# Automatic Storage Management library kernel driver.  It is generated
# By running /etc/init.d/oracleasm configure.  Please use that method
# to modify this file
#

# ORACLEASM_ENABLED: 'true' means to load the driver on boot.
ORACLEASM_ENABLED=true

# ORACLEASM_UID: Default user owning the /dev/oracleasm mount point.
ORACLEASM_UID=grid

# ORACLEASM_GID: Default group owning the /dev/oracleasm mount point.
ORACLEASM_GID=asmadmin

# ORACLEASM_SCANBOOT: 'true' means scan for ASM disks on boot.
ORACLEASM_SCANBOOT=true

# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER=""

# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan
ORACLEASM_SCANEXCLUDE=""

# ORACLEASM_USE_LOGICAL_BLOCK_SIZE: 'true' means use the logical block size
# reported by the underlying disk instead of the physical. The default
# is 'false'
ORACLEASM_USE_LOGICAL_BLOCK_SIZE=false

References

  • http://asmsupportguy.blogspot.de/2010/04/kfed-asm-metadata-editor.html
  • http://asmsupportguy.blogspot.de/2012/04/asm-in-exadata.html
  • http://asmsupportguy.blogspot.de/2011/09/asm-toolbox.html

Leave a Reply

Your email address will not be published. Required fields are marked *