Accueil > Divers (et d’été) > Informatique > Vmware ESX > Faire un rsync entre deux serveurs ESX
Faire un rsync entre deux serveurs ESX
vendredi 6 avril 2018, par
La commande « rsync » n’existe malheureusement pas sur le système ESX et la synchronisation de fichiers n’est donc pas native ce qui ne simplifie pas la vie pour migrer d’un serveur à un autre si on ne possède pas la version payante avec Vsphere.
De nombreux forums proposent de télécharger une version de rsync mais cela pose évidement des problèmes de sécurité, car quelle confiance accorder à ces binaires non certifiés ?
Une solution très simple est la suivante :
- activer SSH sur les deux serveurs (source et cible)
- sur une machine Linux ayant accès en SSH aux deux serveurs (ce peut être une VM), installer le package « sshfs »
- monter les deux datastores via sshfs : « sshfs root@esx-old :/vmfs/volumes/datastore/ /mnt/esx-old » et « sshfs root@esx-new :/vmfs/volumes/datastore/ /mnt/esx-new »
- faire le rsync en local entre les deux répertoires ainsi montés
Bien évidement les VM concernées doivent être arrêtées.
Cette mécanique fonctionne pour tous serveurs distants ne disposant pas de la commande rsync mais acceptant de faire un sshfs...
Ce n’est pas optimal en termes de flux réseau mais c’est simplissime et cela fonctionne !
Par ailleurs, voici une méthode pour optimiser le temps d’interruption des VMs lors d’une migration « à la main » entre deux ESXi. Comme les fichiers actifs -machines allumées) sont verrouillés, le rsync va échouer et il faudra le faire « machine éteinte ». Il est possible de diminuer le temps d’interruption en commençant par faire des snapshots des différentes VMs. Les fichiers de snapshot pourront être synchronisés par le rsync et seul le delta sera à synchroniser « machines éteintes ». La création des snapshots peut se faire en ligne de commande par un script du type suivant :
#!/bin/sh
REASON="Snapshot pour migration `date '+%Y%m%d-%H%M%S'`"
vim-cmd vmsvc/getallvms | sed 's/ .*//g' | grep '^[0-9]*$' | sort -n | while read i
do
echo vim-cmd vmsvc/snapshot.create $i "$REASON"
done
Si les snapshots ne sont pas nécessaires, il est conseillé de les détruire après migration pour optimiser la vitesse d’exécution des VMs...