Introduction à la Haute Disponibilité WMQ en version 7.0.1

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.

_c_2010_Demey_Consulting.png

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.