Sommaire

Pourquoi ASM ?

ASM est Automatic Storage Management ; sous cette dénomination, se cache différentes technologies :

  • asmlib : va permettre à l'instance ASM d'écrire sur les disques
    • asmlib vient en supplément de udev ; en effet, udev ne garanti pas de toujours mapper un disque iSCSI sur le même /dev/sd* sur les différentes machines qui montent le disque iSCSI
    • asmlib vient en remplacement des LVM
    • asmlib est en charge de l'identification des disques ASM et de les présenter sous une arborescence unifiée (/dev/oracleasm/disk)
    • asmlib présente ses disques avec un propriétaire autre que root (choisi lors de la configuration d'asmlib)
  • L’instance +ASM
    • C'est un ensemble de processus (une instance rdbms light) en charge de la configuration du stockage
    • +ASM va écrire les méta-data pour la configuration des disques, disque groupes
    • +ASM va s'occuper de la redondance/répartition des données
    • +ASM renseigne les instances Oracle de leur stockage
    • +ASM ne réalise pas les écritures des instances ; ce sont les instances (RDBMS) qui écrivent sur les disques ASM (via le dbwriter)

Installation ASM

Par défaut, la distribution Oracle Linux embarque certains packages pour asm. S'il vous en manque (c'était mon cas), il vous faudra aller sur OTN.

Les différentes étapes a suivre pour installer ASM sont :

  • Télécharger le package oracleasmlib pour la distribution
  • Envoi et installation du package sur la VM
  • Installation du package oracleasm-support à partir du la distribution Oracle
  • Configuration de l'Oracle ASM : Le compte unix qui sera propriétaire des disques est oracle:oinstall ; les disques seront scannés et mis a disposition a chaque redémarrage.
  • A 2:10, vous pouvez voir que même si oracleasm est configuré et démarré, le scan des disques ne donne rien sous /dev/oracleasm/disks. Cela est dû a SELinux qui est démarré ! SELinux bloque le compte oracle lorsqu'il tente de poser un label sur les disques.
  • On désactive SELinux et on redémarre.
  • un reboot plus tard (et après avoir confirmé que le iSCSI est bien connecté a notre SAN software), oracleasm liste bien les disques disponibles ; nous avons bien les devices présents sous /dev/oracleasm/disks

Créer & mettre en place des disques groupes

Ca ne vous a pas échappé, dans l'étape précédente, mes disques étaient déjà formatés pour ASM. C'est pour cela qu'il ont été directement découverts et listés dans /dev/oracleasm/disks/. Je n'ais pas réalisé les étapes dans l'ordre de la vidéo du coup, rattrapage avec la vidéo suivante :

  • Création de 4 nouveaux disques dans notre SAN software (LUN de 3 à 6)
  • Découverte des nouveaux disques par iSCSI sous Oracle linux
  • Création des partitions sur ces disques : 1 partition principale qui occupe tout l'espace disponible sur le LUN
  • Écriture du header sur le disque pour qu'il soit reconnu par ASMlib
  • Création d'un nouveau Disk Group DATA_DG avec les LUN3, LUN4 et LUN5. L'espace disponible est de 10162MB
  • Ajout du 4ème disque : LUN6 ; l'espace disponible monte a 15281MB.

Comment calculer le USABLE_FILE ?

Le usable_file est finalement la mesure qui vous importe pour savoir l'espace disponible pour les futures instances qui utiliseront ce disk_group ASM. Voici la méthode de calcul pour un Disk group en Normal Redundancy : Usable File Space = (SUM(Disks_space)*0.99-MAX(Disks_space) ) / 2

Cette méthode de calcul est légèrement pessimiste mais vous permettra d'avoir de bonnes surprises. Le 1% perdu est utilisé par les headers ASM. Voici une simulation de différentes configurations pour lesquelles on calcule l'espace disponible. RACarchitecture_storage_usableSpace

Vous notez que l'ajout du LUN8 ne va pas augmenter d'espace disponible de beaucoup : la LUN fait 20GB mais l'ajout dans le DiskGroup n'ajoute que 5GB ! Cela est dû à la méthode de répartition d'ASM lorsque vous êtes en Normal Redundancy (c'est pire en High Redundancy) où ASM garanti les performances même si le plus gros disque devient inaccessible. A l'ajout du LUN9 de 20GB lui aussi, l'espace disponible augmente bien de 10GB. Il est largement conseillé d'utiliser toujours des LUN de même taille.