for i in `ls -l /dev/oracleasm/disks | grep oracle | awk '{print $NF","substr($5,1,length($5)-1)","$6}'`
do
ASM_DEVICE_NAME=`echo $i|awk '{print $1}' FS=","`
MAJOR_NUMBER=`echo $i|awk '{print $2}' FS=","`
MINOR_NUMBER=`echo $i|awk '{print $3}' FS=","`
HOST_DEVICE=`ls -l /dev/ | grep " "${MAJOR_NUMBER}", *"${MINOR_NUMBER}" " | awk '{print $NF}'`
echo $HOSTNAME"|"$ASM_DEVICE_NAME"|/dev/"$HOST_DEVICE
done
------------------------------------------------------------------
If you want find which ASM disk is mapped which device, then you must use oracleasm querydisk with ASM disk name.
As see you, ASMDISK01 is valid ASM disk on device [8,17].
What is means?
It means ASMDISK01 is mapped to device [8,17].
How to find [8,17] device?
We must use Linux ls –l command as below.
Now, we can say ASMDISK01 is mapped to /dev/sdb1.
--------------------------------------
0 brw-rw—- 1 grid asmadmin 8, 18 Apr 12 18:43 /dev/oracleasm/disks/ASMDISK02
2 columns after group (asmadmin) refer to major/minor
e.g. for ASMDISK01 major = 8, minor = 17
– see the contents of /proc/partitions to find which partition is mapped to which major/minor
8 0 83886080 sda
8 1 104391 sda1
8 2 5116702 sda2
8 3 5116702 sda3
8 4 1 sda4
8 5 73545538 sda5
8 16 93487104 sdb
8 17 4008186 sdb1
8 18 4008217 sdb2
8 19 4008217 sdb3
8 20 1 sdb4
…
8 29 4008186 sdb13
8 30 4008186 sdb14
8 31 4008186 sdb15
Here sdb1 is mapped to major 8 and minor 17
Hence, partition /dev/sdb1 is mapped to ASMDISK01.
do
ASM_DEVICE_NAME=`echo $i|awk '{print $1}' FS=","`
MAJOR_NUMBER=`echo $i|awk '{print $2}' FS=","`
MINOR_NUMBER=`echo $i|awk '{print $3}' FS=","`
HOST_DEVICE=`ls -l /dev/ | grep " "${MAJOR_NUMBER}", *"${MINOR_NUMBER}" " | awk '{print $NF}'`
echo $HOSTNAME"|"$ASM_DEVICE_NAME"|/dev/"$HOST_DEVICE
done
------------------------------------------------------------------
[grid@oel62-rac1 ~]$ oracleasm listdisks ASMDISK01 ASMDISK02 ASMDISK03 ASMDISK04 ASMDISK05 [grid@oel62-rac1 ~]$
If you want find which ASM disk is mapped which device, then you must use oracleasm querydisk with ASM disk name.
[grid@oel62-rac1 ~]$ oracleasm querydisk -d ASMDISK01
Disk "ASMDISK01" Is a valid ASM disk On device[8,17]
As see you, ASMDISK01 is valid ASM disk on device [8,17].
What is means?
It means ASMDISK01 is mapped to device [8,17].
How to find [8,17] device?
We must use Linux ls –l command as below.
[grid@oel62-rac1 ~]$ ls -l /dev/* | grep 8, | grep 17 brw-rw---- 1 root disk 8, 17 Apr 16 15:27
Now, we can say ASMDISK01 is mapped to /dev/sdb1.
--------------------------------------
# ls -ls /dev/oracleasm/disks/ASMDISK*0 brw-rw—- 1 grid asmadmin 8, 17 Apr 12 18:43 /dev/oracleasm/disks/ASMDISK01
0 brw-rw—- 1 grid asmadmin 8, 18 Apr 12 18:43 /dev/oracleasm/disks/ASMDISK02
2 columns after group (asmadmin) refer to major/minor
e.g. for ASMDISK01 major = 8, minor = 17
– see the contents of /proc/partitions to find which partition is mapped to which major/minor
# cat /proc/partitionsmajor minor #blocks name
8 0 83886080 sda
8 1 104391 sda1
8 2 5116702 sda2
8 3 5116702 sda3
8 4 1 sda4
8 5 73545538 sda5
8 16 93487104 sdb
8 17 4008186 sdb1
8 18 4008217 sdb2
8 19 4008217 sdb3
8 20 1 sdb4
…
8 29 4008186 sdb13
8 30 4008186 sdb14
8 31 4008186 sdb15
Here sdb1 is mapped to major 8 and minor 17
Hence, partition /dev/sdb1 is mapped to ASMDISK01.
No comments:
Post a Comment