Nutanix Disaster Recovery est le produit intégré à Prism Central qui permet d’automatiser toute la gestion de plan de reprise d’activité de l’infrastructure virtuelle.
Il est possible de :
- Valider l’ensemble des pré-requis au démarrage du PRA
- Tester pendant la production sur des réseaux de tests dédiés son PRA
- Basculer (en live ou en mode asynchrone) ses machines sur un autre cluster
Si le produit n’est plus à présenté et que de nombreuses démonstration sont disponibles sur le net, il y a une partie qui n’est pas beaucoup détaillé dans la documentation officielle ou sur les ressources externes, l’exécution de scripts à la reprise d’activité ou sur les phases de tests.
Le but de cette article est de détailler la mise en oeuvre et de l’illustrer avec un exemple.
Les cas d’usage de l’exécution de ces scripts peuvent être multiples, voici une liste d’exemples non exhaustive :
- démarrer ou vérifier l’état d’un service Windows/Linux
- appeler un script externe
- exécuter une requête en DB pour vérifier le démarrage d’une instance ou la cohérence des données
- faire un call API pour ajouter une machine dans un pool de worker ou sur un HA-Proxy
- envoyer un message dans un canal Teams/Slack
Fonctionnement et pré-requis
Pour faire appel à ces scripts les Nutanix Guest Tools vont être utilisés, il est donc nécessaire de :
- disposer des NGT en version 1.9 ou supérieure dans les VMs concernées
- d’autoriser les flux nécessaires à la communication IP entre les CVMs et les VMs concernées (port 2074, 5985 et 5986 pour Windows)
Pour pouvoir faire appel aux scripts, il est nécessaires de créés des les répertoires suivants avec droits d’exécution pour l’administrateur local Windows ou compte root Linux :
Pour Windows :
En production : C:\Program Files\Nutanix\scripts\production\vm_recovery.bat
En test : C:\Program Files\Nutanix\scripts\test\vm_recovery.bat
Pour Linux :
En production : /usr/local/sbin/production_vm_recovery
En test : /usr/local/sbin/test_vm_recovery
Le nom du script doit être identique à celui indiqué ci dessus. Les répertoire « scripts\produtction » et « scripts\test » ne sont pas présents de base et doivent être créés sous Windows.
Il est aussi nécessaire d’activer l’option « Manage scripts » dans l’étape de la VM dans le Recovery Plan concerné.
Mise en place
Voici un exemple de mise en place avec une VM Windows Server 2019.
1. Activer la prise en charge du script dans le Recovery Plan
Pour permettre l’utilisation du script, il est nécessaire d’activer l’option en faisant un « Update » du Recovery Plan, et dans « Recovery Sequence » sélectionner la VM et faire un « Manage Scripts » , « Enable ».
2. Créer un script dans la VM
Il est maintenant temps de créer un script dans la VM, ici un bat pour une VM Windows dans le répertoire associé au NGT (Program Files\Nutanix\scripts\production\vm_recovery.bat)
Dans mon exemple, le script va créer une ligne pour logger l’exécution du Failover de la VM avec heure et date.
3. Lancer le Recovery Plan
On lance ensuite le failover du Recovery Plan depuis le Prism Central de destination (cluster qui va hébergé les VMs de PRA). Recovery Plan > FailOver
Si le « Validate » s’exécute correctement c’est que le script est correctement trouvé dans le path associé, sinon une alerte est générée.
On peut voir en suivant l’exécution, une nouvelle tâche apparaître sur l’exécution du script.
4. Vérifier la bonne exécution du script
En se connectant dans la VM déplacée, je peux vérifier l’existence de mon fichier et son output.
Ici mon fichier est bien créé.
Cette procédure est également applicable pour la partie « Test » du Recovery Plan ainsi que sur les machines Linux, moyennant le respect du path du fichier et des droits d’exécution root sur le script / répertoires associés.