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.

PNG - 494 octets

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

5 septembre - Mise à jour du Support Pack MS0T : WebSphere MQ Explorer

Mise à jour du Support Pack MS0T : WebSphere MQ Explorer en version 7.0.1.3 Rappel : Ce (...)

2 septembre - Mise à jour du Support Pack MQ03

Mise à jour du Support Pack MS03 : WebSphere MQ - Save Queue Manager object definitions using (...)

30 août - Fin de support WAS 6.0 le 30/09/2010

Rappel : Fin de support IBM pour WAS 6.0 (z/OS et distribué) le 30 Septembre 2010. Il est (...)

26 août - WMQ : Disponibilité du Fix Pack 7.0.1.3

Le Fix Pack 7.0.1.3 pour WebSphere MQ version 7 est disponible.

30 juillet - IBM Message Service Client for C/C++

Une mise à jour de ce Support Pack en version 2.0.1 est disponible : The IBM® Message Service (...)

28 juillet - IBM WebSphere Application Server Migration Toolkit

Un nouvelle version 1.2 qui facilité la migration des applications Java 1.4 et Java EE 5 depuis (...)

8 juillet - Annonce : IBM WebSphere MQ Telemetry V7.0.1

Annonce ce jour d’une nouvelle extension de WMQ : WebSphere MQ Telemetry V7.0.1. Elle remplace (...)

18 juin - WAS : Disponibilité du FixPack 11 pour WAS 7

Le FixPack 7.0.0.11 pour WAS 7.0 est disponible. Egalement pour IHS V7, PLG 7.0, et DMZ Proxy. (...)