How to : Oracle ASM & Multipath : Ajout d’un disque SAN à un diskgroup sur Unix

Pour compléter l’article « How to : Oracle ASM – Ajout d’un disque SAN à un diskgroup sur Windows » , voici son homologue pour les environnements Unix. Ici, la méthode finale sous ASM reste quasi identique, il s’agit donc ici de d’indiquer comment repérer les devices MPATH pour les ajouter sous ASM.

En synthèse des opérations, on s’assure que le nouveau disque SAN soit bien visible depuis multiplath. Ensuite, une fois que le bon disque a été identifié parmi la liste ci dessus, on peut passer à la création des partitions.

Petit moyen simple, pour savoir si les disques « MPATH » sont utilisés ou non, on peut (si on est en gestion disques LVM) lancer la commande suivante :

pvdisplay |grep mpath

Cela permet d’isoler par déduction le disque SAN qui n’est pas encore utilisé par ORACLEASM.

Exemple de cas : J’ai déjà 2 disques SAN rattachés à mon serveur, et on m’en a ajouté un autre dont j’ignore la taille :

[root@SRV1 ~]# multipath -ll
mpathe (36005076802818c85780000000000004d) dm-2 IBM,2145
size=60G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 0:0:3:0 sdd 8:48 active ready running
| |- 1:0:1:0 sdn 8:208 active ready running
| |- 0:0:1:0 sdb 8:16 active ready running
| `- 1:0:2:0 sdt 65:48 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
 |- 0:0:2:0 sdc 8:32 active ready running
 |- 1:0:0:0 sdm 8:192 active ready running
 |- 0:0:0:0 sda 8:0 active ready running
 `- 1:0:3:0 sdu 65:64 active ready running
mpathg (3600507640081009790000000000000fd) dm-4 IBM,2145
size=100G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 0:0:4:1 sdf 8:80 active ready running
| |- 1:0:4:1 sdw 65:96 active ready running
| |- 0:0:5:1 sdh 8:112 active ready running
| `- 1:0:5:1 sdy 65:128 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
 |- 0:0:7:1 sdl 8:176 active ready running
 |- 1:0:6:1 sdaa 65:160 active ready running
 |- 0:0:6:1 sdj 8:144 active ready running
 `- 1:0:7:1 sdac 65:192 active ready running
mpathf (3600507640081009790000000000000a0) dm-3 IBM,2145
size=200G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 0:0:4:0 sde 8:64 active ready running
| |- 1:0:4:0 sdv 65:80 active ready running
| |- 0:0:5:0 sdg 8:96 active ready running
| `- 1:0:5:0 sdx 65:112 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
 |- 0:0:6:0 sdi 8:128 active ready running
 |- 1:0:6:0 sdz 65:144 active ready running
 |- 0:0:7:0 sdk 8:160 active ready running
 `- 1:0:7:0 sdab 65:176 active ready running

Dans cette liste de 3 disques SAN, il me faut donc découvrir lequel n’est pas encore utilisé :

[root@SRV1 ~]# pvdisplay |grep mpathf
 PV Name /dev/mapper/mpathfp1
[root@SRV1 ~]# pvdisplay |grep mpathe
 PV Name /dev/mapper/mpathe
[root@SRV1 ~]# pvdisplay |grep mpathg
[root@SRV1 ~]#
[root@SRV1 ~]#

Hop j’ai un candidat, le MPATHG car les autres semblent dispose de partitions, et sont alloués à des VG :

[root@SRV1 ~]# pvdisplay |grep mpath
 PV Name /dev/mapper/mpathfp1
 PV Name /dev/mapper/mpathe
[root@SRV1 ~]# pvdisplay /dev/mapper/mpathfp1
 --- Physical volume ---
 PV Name /dev/mapper/mpathfp1
 VG Name datavg-san
 PV Size 200,00 GiB / not usable 1,34 MiB
 Allocatable yes
 PE Size 4,00 MiB
 Total PE 51199
 Free PE 15103
 Allocated PE 36096
 PV UUID 8k1Cgo-sf4E-tttd-ubFs-lvSJ-KukX-fdZdUR

[root@SRV1 ~]# pvdisplay /dev/mapper/mpathe
 --- Physical volume ---
 PV Name /dev/mapper/mpathe
 VG Name oraexport
 PV Size 60,00 GiB / not usable 4,00 MiB
 Allocatable yes
 PE Size 4,00 MiB
 Total PE 15359
 Free PE 511
 Allocated PE 14848
 PV UUID AGzG9E-Ew3P-oDmq-LSLr-rKbI-2ZCz-JzkYdO

Je suis donc sur que le device MPATHG est LE disque à prendre. Je créée donc mon disque ASM avec OracleASM, en vue de l’ajouter à mon groupe ASM existant :

[root@SRV1 ~]# oracleasm listdisks
VOL1
VOL2
[root@SRV1 ~]# oracleasm createdisk VOL3 /dev/mapper/mpathg
Writing disk header: done
Instantiating disk: done
[root@SRV1 ~]# oracleasm listdisks
VOL1
VOL2
VOL3

Mon disque étant ajouté et formaté ASM, je peux maintenant passer coté Oracle pour augmenter l’espace disque de mon groupe asm « DATA »

J’identifie déjà si mon disque ajouté est bien candidat « PROVISIONED » à être ajouté au groupe DATA :

SQL> col path for a40
SQL> set lines 200
SQL> SELECT MOUNT_STATUS,HEADER_STATUS,MODE_STATUS,STATE,TOTAL_MB,FREE_MB,NAME,PATH,LABEL FROM V$ASM_DISK;

MOUNT_S HEADER_STATU MODE_ST STATE TOTAL_MB FREE_MB NAME PATH LABEL
------- ------------ ------- -------- ---------- ---------- ------------------------------ ---------------------------------------- -------------------------------
CLOSED PROVISIONED ONLINE NORMAL 0 0 ORCL:VOL3 VOL3
CACHED MEMBER ONLINE NORMAL 139486 27206 VOL1 ORCL:VOL1 VOL1
CACHED MEMBER ONLINE NORMAL 139486 27216 VOL2 ORCL:VOL2 VOL2

C’est donc bien le cas, mon VOL3 est visible et prêt a être utilisé. Voyons également la notion de rebalance, car quand je vais ajouter mon disque il va y avoir une auto répartition des datas réalisés par ASM, et en fonction de la taille du disque ajouté il convient de faire quelques réglages, pour éviter que ca prenne un temps fou.

SQL> sho parameter asm_power_limit

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_power_limit integer 1

La configuration est DEFAULT, ie les opérations ne vont pas « trop » solliciter les ressources machines / SAN (CPU / IO) pour ne pas impacter les performances, dans le cas où par exemple cette opération serait lancée en pleine journée.

Je le passe cependant à 4 pour que le REBALANCE soit plus rapide, la machine étant critique et le moindre risque est à éviter ..

SQL> alter diskgroup DATA add disk 'ORCL:VOL3' rebalance power 4;
alter diskgroup DATA add disk 'ORCL:VOL3' rebalance power 4;
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15038: disk '' mismatch on 'Sector Size' with target disk group [512] [4096]

Ah dommage … Le problème vient que la taille des secteurs de ma partition MPATHG est en 512 bytes au lieu de 4096. Dans cette situation je ne peux pas ajouter de disque de la sorte à mon diskgroup qui lui a été créée sur une base de taille de secteur de 4k.

[]<>/root[]:fdisk -l /dev/mapper/mpathg |grep "Sector"
Sector size (logical/physical): 512 bytes / 512 bytes

Il s’agit ici d’une particularité liée à la baie SAN, qui ne permet pas de forcer la taille de secteur.

Ne pouvant supprimer le groupe DATA pour le refaire avec le nouveau disque, je dois passer par la création d’un second diskgroup, qui servira pour les nouvelles databases. Attention, il ne sera pas possible d’agrandir (par exemple) un tablespace existant (sur le groupe de disque avec un sector size à 4096) sur ce nouveau groupe de disque. il faut en effet que la sector Size soit la même.

SQL> create diskgroup DATA2 external redundancy disk 'ORCL:VOL3' ;

Diskgroup created.


SQL> SELECT MOUNT_STATUS,HEADER_STATUS,MODE_STATUS,STATE,TOTAL_MB,FREE_MB,NAME,PATH,LABEL FROM V$ASM_DISK;

MOUNT_S HEADER_STATU MODE_ST STATE TOTAL_MB FREE_MB NAME PATH LABEL
------- ------------ ------- -------- ---------- ---------- ------------------------------ ---------------------------------------- -------------------------------
CACHED MEMBER ONLINE NORMAL 139486 30029 VOL1 ORCL:VOL1 VOL1
CACHED MEMBER ONLINE NORMAL 139486 30030 VOL2 ORCL:VOL2 VOL2
CACHED MEMBER ONLINE NORMAL 102400 102350 VOL3 ORCL:VOL3 VOL3


SQL> select NAME,SECTOR_SIZE,BLOCK_SIZE,ALLOCATION_UNIT_SIZE,STATE,TOTAL_MB,FREE_MB ,DATABASE_COMPATIBILITY,COMPATIBILITY from v$asm_diskgroup;

NAME SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE STATE TOTAL_MB FREE_MB DATABASE_C COMPATIBILITY
------------------------------ ----------- ---------- -------------------- ----------- ---------- ---------- ---------- ------------------------------------------------------------
DATA 4096 4096 1048576 MOUNTED 278972 59894 10.2.0.0.0 11.2.0.0.0
DATA2 512 4096 1048576 MOUNTED 102400 102350 10.1.0.0.0 10.1.0.0.0

Mais l’objectif est atteint, celui de voir comment intégrer un disque SAN géré par multipath à ASM 😉

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s