
Après deux semaines en Inde (à Pune), me voici de retour en France, et plus particulièrement en Ile de France... Détail non négligeable car cela implique un temps pourri, une grève impactant nos journées... Bref que du bonheur...
C'est pourquoi, j'ai décidé d'agrémenter mes articles d'images qui me donneront toujours le sourire.. Des photos prises par votre serviteur lors de ses deux derniers séjours au Kenya... et en attendant le prochaine qui aura lieu en Février 2019...
Aujourd'hui, petit article sur ASM et comment s'y retrouver (ou du moins comme j'essaye de m'y retrouver)... Mickael aura surement quelque chose à redire sur ce sujet qu'il a beaucoup travaillé.
Sur ma vm jumbo (le même nom que le lion en photo), regardons un peu d'un point de vue Oracle ce que j'ai comme infos..
SQL> SQL> SQL> col name for a20 SQL> col path for a50 SQL> SQL> select name,path from v$asm_disk; NAME PATH -------------------- -------------------------------------------------- ACFS_01 ORCL:ACFS_01 VOL1 ORCL:VOL1 SQL>
Voila qui est très pratique, je connais les noms et PATH de mes disques.. sauf que ORCL:VOL1.. Sauf que ce que je souhaiterai c'est faire le lien entre mon disque ASM et les disques physiques..
D'un point de vue système, je ne suis pas beaucoup plus aidé..
[root@jumbo bin]#
[root@jumbo bin]# ls -lht /dev/oracleasm/disks/*
brw-rw---- 1 oracle dba 8, 37 Apr 3 09:50 /dev/oracleasm/disks/VOL1
brw-rw---- 1 oracle dba 8, 49 Apr 3 09:50 /dev/oracleasm/disks/ACFS_01
[root@jumbo bin]#
Quoi que... les deux nombres avant la date vont pouvoir nous aider....
toujours coté système.
[root@jumbo bin]# [root@jumbo bin]# ls -lht /dev/sd* |grep 8, |grep 37 brw-rw---- 1 root disk 8, 37 Apr 3 11:38 /dev/sdc5
On sait maintenant que mon disque ASM VOL1 correspond physiquement à la partition /dev/sdc5
On peut le faire dans l'autre sens... Imaginons que nous ayons identifié cette partition /dev/sdc5 comme problématique (performance par exemple..;)... comment faire pour savoir à quel disque ASM cela correspond..
Nous allons utiliser pour cela l'utiliatire kfed qui se trouve dans $GRID_HOME/bin
[root@jumbo bin]# [root@jumbo bin]# cd /u01/app/12.2.0.1/grid/bin/ [root@jumbo bin]# [root@jumbo bin]# [root@jumbo bin]# ./kfed read /dev/sdc5 kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 2147483648 ; 0x008: disk=0 kfbh.check: 694995298 ; 0x00c: 0x296cc962 kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdhdb.driver.provstr: ORCLDISKVOL1 ; 0x000: length=12 kfdhdb.driver.reserved[0]: 827084630 ; 0x008: 0x314c4f56 kfdhdb.driver.reserved[1]: 0 ; 0x00c: 0x00000000 kfdhdb.driver.reserved[2]: 0 ; 0x010: 0x00000000 kfdhdb.driver.reserved[3]: 0 ; 0x014: 0x00000000 kfdhdb.driver.reserved[4]: 0 ; 0x018: 0x00000000 kfdhdb.driver.reserved[5]: 0 ; 0x01c: 0x00000000 kfdhdb.compat: 203424000 ; 0x020: 0x0c200100 kfdhdb.dsknum: 0 ; 0x024: 0x0000 kfdhdb.grptyp: 1 ; 0x026: KFDGTP_EXTERNAL kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER kfdhdb.dskname: VOL1 ; 0x028: length=4 kfdhdb.grpname: DATA ; 0x048: length=4 kfdhdb.fgname: VOL1 ; 0x068: length=4 kfdhdb.siteguid[0]: 0 ; 0x088: 0x00 kfdhdb.sitegui
Beaucoup d'infos, mais j'ai mis en gras (bleu) celles qui m'interessent et qui me permettent de faire le lien entre mon disque physique ainsi que le disque ASM & le DISKGROUP associé.
Si à un instance t, vous avez besoin de faire le point sur vos disques, le script ci-dessous vous aidera peut être. Plus fainéant que moi, ca reste compliqué, donc ce script provient de https://www.thegeekdiary.com/oracle-asm-shell-script-to-map-physical-disk-devices-to-asmlib-disks/
#!/bin/bash ## ASMLIB_DISK -- disk name in ASMLIB ## ASM_DISK -- disk name in ASM ## DEVICE -- physical disk name GRID_HOME=`cat /etc/oratab | grep ^+ASM | awk -F":" '{print $2}'` for ASMLIB_DISK in `ls /dev/oracleasm/disks/*` do ASM_DISK=`$GRID_HOME/bin/kfed read $ASMLIB_DISK | grep dskname | tr -s ' '| cut -f2 -d' '` majorminor=`ls -l $ASMLIB_DISK | tr -s ' ' | cut -f5,6 -d' '` device=`ls -l /dev/ | tr -s ' ' | grep -w "$majorminor" | cut -f10 -d' '` echo "ASMLIB disk name : $ASMLIB_DISK" echo "ASM_DISK name : $ASM_DISK" echo "Physical disk device : /dev/$device" done
Et en sortie sur ma VM cela donne.
ASMLIB disk name : /dev/oracleasm/disks/ACFS_01 ASM_DISK name : ACFS_01 Physical disk device : /dev/sdd1 ASMLIB disk name : /dev/oracleasm/disks/VOL1 ASM_DISK name : VOL1 Physical disk device : /dev/sdc5
Enjoy.
commentaires