Oracle 11.2, l’ASM nouveau est arrivé

Vous en aviez rêvé Oracle l’a réalisé ; Les fichiers autres que ceux de la base de données Oracle, y compris les logiciels de base de données peuvent désormais être stockés et gérés par ASM !

Par l’intermédiaire d’un nouveau système de fichiers nommé ASM Cluster File System (ACFS) qui s’appuie sur ASM Dynamic Volume Manager (ADVM), vous pourrez maintenant stocker tous les types de données dans ASM. De plus la responsabilité pour la gestion des disques revient de nouveau aux administrateurs système; on peut faire toute la gestion ASM sans connaître une seule commande SQL ! Voilà qui devrait stopper nombre de polémiques dans les services informatiques.

Pour le prouver j’ai installé uniquement les composants nécessaires à ASM sur le système Oracle Enterprise Linux 64bits de mon laptop. J’ai créé un utilisateur sysadmin et un groupe sysadmin pour travailler.

Je commence avec ASMLib

La première étape a consisté à découper un peu mon disque externe de manière à disposer de plusieurs partitions de 512Mo disponibles pour ASM. J’ai utilisé pour cela gparted, ce qui m’a permis de réduire une partition FAT32 en quelques clics et de disposer rapidement de 4 tranches (de /dev/sb7 à /dev/sb10)  de 512Mo.

J’utilise ASMLib pour facilité la découverte et le nommage des partitions, pour cela il faut configurer le module, l’initialiser puis créer des disques, voici les commandes que j’ai utilisées :

La vérification de l’accès aux partitions peut se faire avec la commande oracleasm listdisks

… avant de passer aux choses sérieuses

Une des nouveautés de la version 11.2 est l’association d’ASM et du clusterware dans la Grid Infrastructure et donc vraiment indépendamment du logiciel de base de données.

Vous pouvez le télécharger depuis le site OTN pour linux 32bits ou 64bits. Une fois que vous aurez adhéré à la licence de distribution OTN, le fichier zip peut être téléchargé; sa taille est d’environ 1 Go.

Une fois le produit décompressé sur un répertoire dédié, il vous reste à l’installer, et contrairement à certains de chez nous (n’est-ce pas arkzoyd ;)),  j’aime bien d’abord voir les écrans défiler, surtout que du coup, j’ai pu tester quelques nouvelles fonctionnalités appréciables, comme la génération automatique de scripts pour corriger les pré-requis qui ne serait pas atteints.

Donc une installation en mode graphique, via l’exécution du runInstaller de l’infrastructure Grid en tant qu’utilisateur sysadmin. Je vous dispense des copies d’écrans pour ne pas alourdir inutilement cet article.

Contraintes obligatoires:  le nom de votre machine doit être associé à votre adresse IP dans le fichier /etc/hosts (ce qui n’est pas le cas si vous êtes en configuration DHCP), et vous devez pouvoir accéder au serveur X (avec xhost + ou ssh -X par exemple) depuis l’utilisateur sysadmin:

  • Le premier écran concerne les options d’installation, il faut choisir « Installer et configurer Oracle Grid Infrastructure pour un serveur autonome ». Cette option installera une couche CRS « light » utilisant un registre OCR stocké dans un fichier local, pas de voting disk, et les binaires nécessaires pour la couche ASM.
  • L’écran suivant permet la sélection des « langues du produit » ; à vous de voir mais il n’y a pas d’occitan ;)
  • Le 3ème écran « Créer un groupe de disque ASM »  va initialiser l’instance +ASM et créer un groupe de données. Pour cela, il faut préciser le nom du groupe, (e.g. « DATA »), la redondance (e.g. « Externe »). Cochez les disques que vous souhaiter intégrer au groupe; pour ma part, j’ai pris DATA1 et DATA2 ce qui me donnera 1Go de disponible. Si les disques n’apparaissent pas, il faut « modifier le chemin de repérage » (précisez ORCL:* avec ASMLib)
  • L’écran suivant vous demande de saisir le mot de passe de l’instance ASM , j’ai choisi d’utiliser le même mot de passe pour tous les comptes. Ne tenez pas compte de l’erreur INS-30011 comme quoi votre mot de passe ne répond pas à la politique sécuritaire d’Oracle, pour vos tests
  • Puis il faut définir les « Groupes du système d’exploitation privilégiés ». J »ai choisi de laisser le groupe sysadmin pour les 3 responsabilités OSDBA, OSOPER, OSASM (là aussi, voilà une nouveauté dans la répartition des responsabilités)
  • Il faut ensuite « Indiquer l’emplacement d’installation » , pour moi ORACLE_BASE=/opt/appli/product et ORACLE_HOME=/opt/appli/product/grid
  • S’il n’y a pas d’inventaire Oracle, l’écran suivant le demande. « Créer un inventaire » sous le répertoire /opt/appli/product/oraInventory par exemple.
  • C’est sur l’écran suivant « Effectuer les vérifications des pré-requis »  que l’on trouve une nouvelle subtilité. Je n’avais pas du tout modifié ma configuration noyau, je me suis donc retrouvé avec pratiquement tout le paramétrage ne répondant pas aux critères (nombre de sémaphores, segments de mémoire partagée etc..) soit au total plus d’une dizaine de valeurs. J’ai simplement appuyé sur le bouton « Corriger et vérifier une nouvelle fois », une boite de dialogue m’a demander d’exécuter le script de correction nommé /tmp/CVU_11_2.0.1.0_sysadmin/runfixup.sh sous root depuis un autre terminal, ce que j’ai fait, j’ai ensuite validé et cliqué sur « OK ». Voici ce qui a été réalisé dans mon cas : 

    Suite à cela, le test des pré-requis est relancé et je n’ai plus d’erreur … Ce script généré automatiquement fait gagner beaucoup de temps et évite des erreurs potentielles de saisie dans le fichier sysctl.conf. En fait tout n’a pas été parfait ! Il restait la taille du swap, trop petit selon l’installer, que j’ai décidé d’ignorer en cochant la case du statut en face du test. J’ai également du ajouter les packages manquant avant de poursuivre. Voici leur liste pour information :
  • La suite est beaucoup plus classique avec un affichage du récapitulatif ou on peut voir que la taille requise pour l’installation est de 2.95 Go. Autre petit plus il y a un bouton « Enregistrer le fichier de réponse »  qui va permettre de stocker un fichier de réponse réutilisable pour les installations en mode silencieux cette fois.
  • L’installation se termine traditionnellement par la demande d’exécution de scripts par root : orainstRoot.sh sous le répertoire de l’inventaire et root.sh sous le répertoire d’installation de l’infrastructure Grid. L’exécution de root.sh déclenche la configuration du clusterware « light » et le démarrage du process ohasd qui gère le démarrage et la surveillance des ressources qui lui sont associées, comme l’instance +ASM qui est ensuite opérationnelle. Voici la sortie de l’exécution du script, notez le vocabulaire utilisé comme (1) « Oracle High Availability Services » pour le process ohasd qui est inscrit dans le fichier /etc/inittab pour être appelé au démarrage du serveur; (2) la création d’une sauvegarde automatique du registre, (3) la mise à jour de l’inventaire pour une configuration à un seul noeud :

Vous pouvez maintenant créer ce fameux système de fichiers ASM ! Pour cela il est recommandé de vérifier que les 4 modules nécessaires sont bien chargés par le noyau :

. Attention ils ne sont pas chargés automatiquement au démarrage. Il faut créer un fichier type
/etc/init.d/acfsload contenant les lignes suivantes:

Il faut également lui donner les bons droits et le charger dans la configuration de linux :

Pour créer le volume, j’ai utilisé asmcmd qui contient maintenant toutes les commandes de gestion et d’administration d’ASM, comme par exemple startup ou shutdown. Tapez la commande help pour vous en rendre compte.

Deux variables sont à déclarer, une fois que l’on est connecté avec l’utilisateur sysadmin :

Avant de pouvoir créer le  volume nommé volume1 dans le groupe DATA

Il faut noter l’information correspondant au « Volume Device » de la commande volinfo car elle sera réutilisée ensuite, dans
mon cas:  /dev/asm/volume1-39 :

J’ai ensuite créé le système de fichiers associé par les commandes unix traditionnelles :

Je retrouve bien le système de fichier monté sur le répertoire  /acfsdata. Il ne reste plus qu’à l’utiliser les commandes Linux :

J’ai réalisé quelques tests de performance basiques en comparant les opérations entre un système de fichier de type ext3 sur le disque interne de mon laptop, un système de fichier de type ext3 sur un disque usb externe, et le système de fichier acfs sur le même disque usb externe, bien que peu significatif sur un l’environnement utilisé (disque interne de laptop et disque USB), voici le tableau des résultats, les chiffres donnés correspondant à une valeur moyenne sur 10 répétitions de la commande :

Commande ext3 interne ext3 usb externe acfs usb externe
dd if=/dev/zero of=/fs/475M
bs=1M count=450
2,8s    170Mo/s 2,9s    165Mo/s 1,74s    270Mo/s
cp /<fs_ext3_interne/475M /fs_externe 4,8 s 4,1 s

On constate de très bonnes performances du système de fichier acfs par rapport au classique ext3, avec près  de 50% de mieux pour le dd et près de 15% de mieux sur la copie.

Maintenant que vous avez un système de fichier à disposition, je vous laisse le soin de procéder à d’autres tests, mais avant de terminer cet article, voici quelques captures d’écrans du tout nouvel assistant dédié à ASM: asmca. Avec lui vous pouvez réaliser de manière graphique les opérations précédentes et visualiser l’espace dans les groupes de disques. Si vous aimez les assistants, cet outil est pour vous :

GroupesASM

VolmesASM

acfsASm

C’est propre et c’est pratique, alors si vous souhaitez vous faciliter la vie…

C’est tout pour aujourd’hui, mais vous pourrez aussi découvrir les autres nouvelles fonctionnalités, comme celles qui permettent de choisir une zone optimale pour le placement des données, l’attribution de droits de type ACL sur les fichiers et la possibilité, réclamée par tous de pouvoir renommer un groupe de disque ASM, sans avoir à le supprimer. N’hésitez pas à nous faire part de vos retours d’utilisation de cette nouvelle mouture, qui s’annonce assez incroyable.

Eric Leygonie

About Eric Leygonie

Eric Leygonie has written 58 post in this blog.

Directeur technique agence régionale chez Easyteam

17 thoughts on “Oracle 11.2, l’ASM nouveau est arrivé

  1. Pingback: Pendant les vacances, consultez les dix articles les plus lus du blog EASYTEAM « EASYTEAM LE BLOG

  2. Francois

    Une bouteille à la mer

    Je n’ai jamais été capable de compléter une installation grid avec serveur autonome, après la lectures de 5-6 sites et 25 essais d’installation j’ai toujours un plantage à la fin. Le support Oracle est dans l’incapacité la plus complète pour m’aider.

    [INS-20802]

    Reply
    • Eric Leygoniestforlong

      Comme tout ce qui est installation Oracle , 2 éléments sont primordiaux, les pré-requis et les JVM déja installés (ou installations précédentes). En dehors de cela il peut y avoir des bugs spécifiques sur votre plate forme. Le sauvetage de naufragé n’est pas l’objectif de ce blog, mais en contactant Easyteam via le formulaire à l’url suivante http://www.easyteam.fr/contact nous pourrons vous proposez de l’aide.
      Cdlt

      Reply
  3. -phil-

    Navré Grégory mais je n’ai pas bien compris ce que tu voulais dire.
    Est-ce que la doc veut dire qu’il faut installer Grid Infrastructure en « full » pour que cette problématique soit solutionnée ? Qu’est-ce que ça implique ?

    ++

    Reply
    • Arkzoyd

      Oui. C’est ce que je voulais mettre en avant: une solution possible c’est d’installer le version multiserver de la grid infrastructure sur 1 seul serveur:
      . Ça résoud les problèmes techniques dont vous discutez
      . C’est supporté en terme technique et de licenses

      En plus avec un Stockage externalisé ça facilite les évolutions vers RAC ou RAC one node. Bien sur il faut un peu plus de travail, une adresse IP scan, une équivalence SSH…

      Mais je vous fais confiance à tous les 2 pour faire fonctionner le redémarrage automatique et dans le bon ordre des services avec Oracle restart.

      Reply
  4. -phil-

    oups, ca parait plus clair tout d’un coup :)
    merci pour l’info stforlong

    ps. c’est assez maladroit de la part d’oracle je trouve. proposer une solution sur une release finale alors même que son implémentation est « hasardeuse »…
    ah larry, on va tout nous mener lol

    Reply
    • arkzoyd

      Il est possible d’installer la Grid Infrastructure sur vos les serveurs les serveurs qui utilise Oracle comme l’indique le Licensing Guide. La syntaxe exacte, c’est :

      The Grid Infrastructure can be installed and used on any server where any of the following conditions are met:
      […]
      3. Oracle Clusterware is used to protect a software product from failures. Oracle Clusterware can be used to protect a software product in cases that do not meet conditions 1 or 2 above if either of the following conditions are met:
      o The software being protected is from Oracle
      o The software being protected uses an Oracle database

      Et avec la Grid Infrastructure au lieu de restart, les problèmes de redémarrage sont tous réglés.

      Reply
      • Arnaud Ladrière

        Intéressant ca, ca voudrait dire que je suis pas obligé de licencier du RAC ni même de la base pour utiliser GI, tant que je l’utilise pour un produit oracle sous licence !

        Reply
    • Hervé Etché

      Est ce que vous avez déjà essayé et réussi cette installation (GI en cluster sur un seul noeud au lieu de oracle restart)? ou c’est juste une interprétation de ce que dit oracle?

      Reply
      • Eric Leygoniestforlong

        Pour l’instant c’est uniquement une interprétation de la documentation. La demande de nos clients à porter seulement sur des installations d’infrastructure à plusieurs noeuds. Je ferais une nouvelle entrée dans le blog dés que je l’aurai testé. Par contre nous avons testé la mixité d’une version Grid 11GR2 et d’une base de données 11GR1 , elle nécessite quelques patches spécifiques pour que cela fonctionne correctement.

        Reply
  5. -phil-

    Hello,
    merci pour cet excellent tutorial.

    J’avoue toutefois avoir un pb qui comme à m’agacer.
    J’ai suivi la procedure sans soucis. Par contre, pour une raison inconnue, à chaque reboot je perds mes FS !!
    Je suis obligé de reactiver le volume asm puis de remonter les fs avec mount.acfs -o all
    une idée ?

    PS1. mon instance +ASM tourne bien
    PS2. j’ai bien mis mes script dans l’init.d + activation runlevel 3/5

    merci
    phil

    Reply
    • Eric Leygoniestforlong

      Bonjour Phil,
      Il semblerait qu’avec ce type d’installation ‘Oracle Grid Infrastructure pour un serveur autonome’ (aka Oracle Restart) , il n’y ait pas tous les mécanismes en place pour le restart, voici un petit extrait de la doc:
      « Oracle Restart does not support root-based Oracle ACFS resources for this release. As a result, the following operations are not automatically performed:
      * Loading Oracle ACFS drivers
      * Mounting Oracle ACFS file systems listed in the Oracle ACFS mount registry
      * Mounting resource-based Oracle ACFS database home file systems
      The Oracle ACFS resources associated with these actions are not created for Oracle Restart configurations. »
      Il faut donc trouver une astuce pour réaliser ces opérations, c’est en partie fait, mais apparemment il manque encore des choses, je vais regarder cela de plus près, le premier qui y arrive préviens les autres

      Reply
    • arkzoyd

      Pourquoi certains font fonctionner Oracle sur CentOS quand ils peuvent utiliser OEL? Fedora et Ubuntu, je comprends… mais CentOS ?

      Reply
    • Eric Leygoniestforlong

      J’en suis sur. Je pense vraiment que les deux modes sont complémentaires et répondent chacun à des besoins différents. Continuons à en décrire les différentes caractéristiques et surtout continue à nous faire profiter pleinement de ta maîtrise du mode silencieux pour tous les outils graphiques qui le possèdent.

      Reply

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

%d blogueurs aiment cette page :