Actualizar la versión de QEMU, sin “reiniciar”

Hay dos maneras de modificar / actualizar la versión de QEMU sin “reiniciar”.

 

La primera, es haciendo una migración en caliente. Si tenemos dos servidores físicos con el mismo almacenamiento compartido (o incluso sin eso, utilizando la opción –copy-storage-all), podemos ejecutar un comando para migrar el servidor en caliente de uno a otro.

El truco aquí consiste en que al arrancar el qemu-kvm en el servidor remoto se hace con el ejecutable de la versión actualizada. Obviamente, tiene que poder arrancar, sin eso, fallará la migración, pero, al menos, el servidor virtual seguirá funcionando en origen.

 

La segunda manera, es hacer un “virsh save” y luego un “restore.

El comando “save” de libvirt te guarda un fichero con la memoria y las especificaciones de la máquina virtual. Dentro del fichero, por ejemplo, va el XML de definición.

El servidor virtual se detiene del todo, pero…con truco. Cuando se restaura la máquina virtual la ejecución continua en el mismo punto en el que se guardó 😉

De nuevo, al hacer el restore de la máquina virtual, si antes hemos modificado la versión de qemu-kvm, se intentará arrancar con la nueva versión.

 

Algún error que me ha dado alguna vez al hacer este tipo de upgrades era que el servidor estaba definido con el tipo de máquina “pc”.

Y al restaurarlo, ese “pc” en realidad es un alias a la última versión de máquina ACTUAL. Con modificar el fichero de save para poner un tipo de maquina más antiguo, funcionaba.

Para ver los diferentes tipos de VM posibles, se ejecuta el comando, donde se ve que “pc” se corresponde, en este caso, con pc-i440fx-1.5.

 

Para modificar el fichero donde hemos guardado la VM, se utiliza el comando

Cuidado con este comando, porque no permite hacer cualquier modificación. Parece ser que el tamaño de las modificaciones que se hacen en el XML guardado no pueden superar en tamaño a lo que había antes.

 

Leave a Comment

Your email address will not be published. Required fields are marked *