Introduction à la Haute Disponibilité WMQ en version 7.0.1

dimanche 31 janvier 2010
par Luc-Michel Demey

Concepts HA WMQ

Depuis plusieurs années, la Haute Disponibilité MQ dans les environnements Windows et Unix est basée sur les éléments suivants :

  • Deux serveurs distincts, avec le logiciel WMQ installé
  • Un stockage externe (type baie SSA, baie SAN, ...)
  • Une configuration spécifique du Queue Manager, pour stocker les files d’attente et les logs sur le stockage externe
  • Des outils comme un logiciel de Haute Dispo (HACMP, MSCS, Veritas, ...) et/ou des scripts (Support Pack MC91 par exemple)

Ces outils permettent :

  • de détecter la perte du QM sur le serveur nominal
  • de basculer les volumes disques vers le serveur de backup
  • de basculer l’adresse IP (VIP) vers le serveur de backup
  • de relancer le QM sur le serveur de backup

Apports de la version 7.0.1

La version 7.0.1 de WMQ apporte la fonction de QM de standby, avec bascule automatique. De plus, de nouveaux paramètres dans la définition du canal permettent à un QM partenaire d’atteindre soit le QM nominal, soit le QM de backup, sans avoir à basculer l’IP.
Sur un plan matériel, il est toujours nécessaire de disposer de deux serveurs distincts et d’un stockage réseau. Ce stockage doit se conformer à un certain nombre de spécifications, comme la capacité à libérer les fichiers verrouillés en cas d’arrêt de l’application qui les verrouille. Un exemple est NFS4.

Pour un QM partenaire, l’existence d’un QM de bascule est paramétrée en indiquant dans le CONNAME du canal sender les deux hostnames, séparés par une virgule si le QM partenaire est en 7.0.1.
Exemple :


CONNAME(UNIX01(14141), UNIX02(14141))

Si le QM partenaire est en 6.0, l’utilisation du SupportPack MR01 a un effet identique.

Mise en œuvre

Le principe de la mise en œuvre est le suivant :

Vérification de la compatibilité du file system
La première étape consiste à vérifier la compatibilité du système de fichiers utilisé avec le multi-instance.

  • Sur chaque serveur, on lance la commande :
amqmfsck -v /mqha

Ceci permet de vérifier la capacité du système de fichiers à supporter les locks demandés par WMQ

  • Ensuite, simultanément sur les deux serveurs, on lance la commande :
amqmfsck -c /mqha

Ceci permet d’effectuer un test d’écriture concurrente.

Création du Queue Manager
Cette création n’est à effectuer que sur un des serveurs. On commence par créer les systèmes de fichiers pour MQ, par exemple :

mkdir /mqha/logs
mkdir /mqha/qmgrs

On crée ensuite le Queue Manager avec la commande classique, sans oublier de spécifier des logs linéaires !

crtmqm -ll -ld /mqha/log -md /mqha/qmgrs LMD01

Création de l’instance de backup
Sur le deuxième serveur, il faut créer le Queue Manager de backup, mais avec la commande addmqinf.
Le plus simple est d’utiliser la commande dspmqinf sur le premier serveur, qui donne la syntaxe à utiliser pour créer l’instance de backup sur le deuxième serveur :

dspmqinf -o command LMD01

addmqinf -s QueueManager -v Name=LMD01 -v Directory=LMD01 -v Prefix=/var/mqm -v DataPath=/mqha/qmgrs/LMD01

Démarrage du Queue Manager
Sur un des serveurs (n’importe lequel en fait), démarrer le Queue Manager en mode fail-over :

strmqm -x LMD01

Sur l’autre serveur, démarrer le Queue Manager en mode fail-over :

strmqm -x LMD01

Vérification du fonctionnement

Vérification sur le premier serveur :

dspmq
QMNAME(LMD01)                STATUS(En cours de fonctionnement)

Vérification sur le deuxième serveur :

dspmq
QMNAME(LMD01)                STATUS(Exécuté en tant qu'instance de secours)

Bascule fail-over

Sur le premier serveur :

endmqm –s LMD01

Vérification sur le premier serveur :

dspmq
QMNAME(LMD01)                STATUS(Exécuté ailleurs)

Vérification sur le deuxième serveur :

dspmq
QMNAME(LMD01)                STATUS(En cours de fonctionnement)

Arrêt du Queue Manager

Sur le serveur où le Queue Manager s’exécute :

endmqm LMD01

Ceci arrête le QM actif ET l’instance de backup.

Conclusion

Cette nouvelle fonction apportée par la version 7.0.1 de WebSphere MQ permet de mettre en œuvre, relativement facilement, un mécanisme de Haute Disponibilité MQ entre deux serveurs.
Le niveau de fonctionnalité obtenu est certes moins élevé qu’avec des logiciels spécialisés comme HACMP, mais pour la plupart des cas cela est suffisant.


Brèves

13 juillet - Annonce du Fix Pack 8.0.0.7 pour IBM MQ v8

Le FixPack 7 pour IBM MQ version 8.0 est disponible pour les système distribuées, JMS for z/OS, (...)

2 juin - IBM Integration Bus V10.0 - Fix Pack 10.0.0.9

IBM annonce ce jour le Fix Pack 10.0.0.9 pour IBM Integration Bus V10.0.
Comme d’habitude, (...)

11 mai - IBM MQ 9.0.0.1 est disponible

IBM annonce ce jour la disponibilité de MQ version 9.0.0.1. Il s’agit de la version LTSR (Long (...)

27 mars - MQ-CPH Performance Harness

Le laboratoire IBM d’Hursley a rendu disponible sur Github un outil de simulation de charge pour (...)

1er mars - Mise à jour du SupportPack MH06 : WebSphere MQ - Trace Tools

Le MH06 est un SupportPack qui propose des outils en mode ligne qui aident à analyser les (...)

2 février - IBM MQ : désactivation de nouveaux CipherSpecs SSL/TLS

IBM Annonce que de nouveaux CipherSpecs sont considérés comme "faibles", et à ce titre seront (...)