source app-cred-origine-openrc.sh
Pour de multiples raisons, il peut être nécessaire de transférer une machine virtuelle d’un environnement Openstack vers un autre.
Cette page a pour but de proposer une méthode simple pour migrer une VM d’un environnement Openstack à un autre, en conservant les données et la configuration de la VM d’origine.
Avant de commencer, assurez-vous :
de disposer des Application Credentials (identifiant d’application) pour l’Openstack origine et l’Openstack destination
d’avoir installé la CLI OpenStack dans un environnement virtuel Python (venv)
les images des volume de VM devront être téléchargés temporairement, il faut donc s’assurer de disposer localement d’un espace disque suffisant
Voir la documentation https://docs.meso.umontpellier.fr/fr/CLOUD/cli
Il s’agit dans un premier temps de récupérer le volume de démarrage de la VM d’origine sous la forme d’un fichier transférable.
Sourcer le fichier openrc avec l’Application Credential pour l’Openstack d’origine :
source app-cred-origine-openrc.sh
Deux cas peuvent se présenter :
Arrêter la VM :
openstack server stop my-vm
Prendre un snapshot de la VM :
openstack server image create --name my-vm-image my-vm
Télécharger l’image :
openstack image save --file my-vm-image.qcow2 my-vm-image
Il est nécessaire de supprimer la VM (l’instance) afin de pouvoir récupérer son volume de boot.
|
Attention : si au moment de la creation de la VM , l’option Delete Volume on Instance Delete a été choisie, le volume de démarrage sera supprimé en même temps que l’instance. Pour vérifier ce statut :
+--------------------------------------+--------------------------------------+------------------------+ | Server ID | Volume ID | Delete On Termination? | +--------------------------------------+--------------------------------------+------------------------+ | 59d41e87-17d3-41ed-8f47-c9b9d61d399c | 1754978c-5a6b-455a-8ee8-220d2ab1677b | True | +--------------------------------------+--------------------------------------+------------------------+ Pour modifier ce status :
+--------------------------------------+--------------------------------------+------------------------+ | Server ID | Volume ID | Delete On Termination? | +--------------------------------------+--------------------------------------+------------------------+ | 59d41e87-17d3-41ed-8f47-c9b9d61d399c | 1754978c-5a6b-455a-8ee8-220d2ab1677b | False | +--------------------------------------+--------------------------------------+------------------------+ |
Arrêter la VM :
openstack server stop my-vm
openstack volume list
+--------------------------------------+-------------------+--------+------+------------------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------------------+--------+------+------------------------------------------------+ | 1754978c-5a6b-455a-8ee8-220d2ab1677b | | in-use | 10 | Attached to my-vm on /dev/vda | +--------------------------------------+-------------------+--------+------+------------------------------------------------+
Supprimer l’instance :
openstack server delete my-vm
openstack volume list
+--------------------------------------+-------------------+-----------+------+------------------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------------------+-----------+------+------------------------------------------------+ | 1754978c-5a6b-455a-8ee8-220d2ab1677b | | available | 10 | | +--------------------------------------+-------------------+-----------+------+------------------------------------------------+
Créer une image à partir du volume :
openstack image create --volume 1754978c-5a6b-455a-8ee8-220d2ab1677b --disk-format qcow2 my-vm-image
Attendre que l’image soit en status active :
openstack image show my-vm-image -c status
+--------+--------+
| Field | Value |
+--------+--------+
| status | active |
+--------+--------+
Télécharger l’image
openstack image save --file my-vm-img.qcow2 my-vm-image
Sourcer le bon fichier de Credentials pour l’openstack de destination
source app-cred-destination-openrc.sh
Recréer l’image à partir du fichier local
openstack image create --file my-vm-image.qcow2 --disk-format qcow2 my-vm-img
Recréer un volume à partir de l’image (avec --size = même taille que le volume d’origine )
openstack volume create --image my-vm-img --size 10 --bootable my-vm-vol
Recréer une instance sur ce volume (adapter la flavor et le network selon le besoin)
openstack server create --volume my-vm-vol --flavor cpu.small.2-4-10 my-new-vm
La nouvelle VM est automatiquement démarrée. Il est possible de supprimer l’image intermédiaire (ici my-vm-img) .
|
Remarques :
|