Hola.
Un poco de culturilla general.
Discos diferenciales son aquellos que acumulan las diferencias respecto a un padre. Un disco padre, puede tener diferentes discos diferenciales y estos estar asociados a diferentes máquinas virtuales, un ejemplo para entender todo esto, podría ser:
Tenemos un disco con Windows XP al que declaramos como padre y guardamos en una carpeta con permisos de solo lectura, creamos un disco diferencial conectado a este padre que asociamos a una máquina virtual en la que instalamos el sp2. Creamos otro disco duro diferencial conectado a este padre que asociamos a una máquina virtual en la que instalamos sp3. Ahora tenemos dos máquinas virtuales, una con xp sp2 y otra con xp sp3 para que nuestros desarrolladores prueben sus programas. No entro a detallar buenas prácticas en entornos de este tipo, pero raudos y veloces seguro que habéis pensado que el rendimiento del raid donde almacenamos el disco padre, afecta al rendimiento de las VM asociadas a los discos hijos.
Una vez tenemos discos padres y discos diferenciales o hijos, podemos realizar una combinación de ambos poniendo como origen del diferencial el mismo disco padre o crear un tercer disco con la combinación de estos dos. Muy a tener en cuenta esto en el anterior ejemplo, ya que la combinación de un disco padre con el disco hijo, podría afectar a la segunda máquina virtual (atención a esto para el tema que nos ocupa en el artículo).
Entramos en materia.
Dicho todo esto, es cuando podemos decir que una instantánea de una máquina virtual, no es más que un disco diferencial de crecimiento dinámico por cada disco .vhd que contiene la VM, almacenado por defecto en la carpeta “snapshots” que hay en de cada VM, a no ser que cambiemos esta ruta en la consola de administración de hyper-v. Un aspecto importante que tenemos que conocer, es que las snapshots, a pesar de tener una estructura exactamente igual a los discos diferenciales, tienen una extensión .avhd.
Seguro que habéis deducido que esto de las instantáneas no es una maravilla, sobre todo si hacéis una y dejáis el sistema trabajando con ese disco diferencial de crecimiento dinámico.
Por tanto, toca decir que no se recomienda trabajar con snapshots/instantáneas en producción, peeero, me arriesgo a apuntar que si conocemos el funcionamiento interno de esta tecnología, podríamos aventurarnos a utilizarlas y aprovechar su potencial, siempre y cuando repito, conozcamos hasta el último detalle sus pros y sus contras (Alguien me va a matar por esto).
Con cada Snapshot o Instantánea creada en cada VM se crea un disco diferencial asociado a un padre que es un .vhd de la máquina virtual. Podemos ver en el archivo .xml de una máquina virtual, el nombre de cada archivo .avhd de cada disco de cada snapshot nuestra máquina virtual, por ejemplo:
Si borráis una instantánea, el archivo .avhd no se combina con el archivo .vhd padre hasta que no hacéis una apagado ordenado de la máquina virtual y esperáis a la posterior “combinación”, no vale con apagar el host habiendo configurado que cada máquina virtual se apague previamente al apagado del host, por que este no espera a que termine la combinación iniciada con el apagado de la VM.
Por si acaso hacéis o habéis hecho caso omiso de esta y otras advertencias similares y por aquello de la ley de Murphy, va y se os queda colgada una instantánea, podéis recuperar la información almacenada en esta, dentro de su .vhd .
Voy a poner un ejemplo:
Puede pasar que teniendo un disco de tamaño fijo que ocupe una gran parte de la partición física realicemos una instantánea, esta empiece a crecer como disco dinámico que es y se coma el espacio que dejasteis entre en disco .vhd de tamaño fijo y la totalidad de la partición física. Entonces es cuando llegáis al 100 del espacio ocupado, la VM no arranca y aparecen esos sudores fríos, ese pensamiento de por qué elegí esto de la informática, si tengo la misma responsabilidad que un médico y gano mil veces menos (este es otro tema del que hablaremos algún día), etc.
Si recuperáis un archivo .vhd de una copia de seguridad, os podéis encontrar que en él, se encuentren los datos de hasta el día en el que hicisteis una instantánea y que puede que haya pasado mucho tiempo...
Si os encontráis en estos u otros problemas similares, puede que lleguéis a la conclusión de que queréis fusionar una instantánea con un .vhd. Pues bien, paso a detallaros los pasos a seguir para realizar esta acción. Un apunte importante, lo voy a realizar partiendo que la copia la habéis recuperado en otro servidor host de virtualización (vendito portátil que soporta virtualización), en el caso que queráis saber como hacerlo en el mismo host, tendréis que leer un anexo que aparecerá pronto en este mismo blog.
1. Recuperar de la copia de seguridad, los archivos: .XML , .VHD y el .AVHD que indica el XML que está asociado el disco .VHD (mirar la captura de más arriba):
2. Cambiar la extensión del archivo .AVHD a .VHD.
3. En la consola de Hyper-v – – Editar disco y elegir el disco renombrado:
4. Como no encuentra el disco padre, os pedirá la ruta para “Volver a conectar” el disco al archivo .VHD (aquí es importante no estar en el mismo host, si no os modificará el disco que tenéis en producción y esto puede funcionar bien o no, pero mejor no tocar este disco de momento).
5. Volver a Editar el disco y esta vez elegir la opción Combinar:
6. Elegir el disco duro primario, ya que no es el que está en producción (repito):
7. Final feliz.
He visto cosas que me han sorprendido gratamente, como es el recuperar un archivo .avhd en un disco en producción el cual contiene una nueva instantánea y que el asistente: Editar disco – Combinar, me proponga insertar los datos del archivo .avhd antiguo en el nuevo, esto último me hace pensar que podríamos aventurarnos a recuperar una instantánea recuperada del backup en un disco en producción sin el menor riesgo aun teniendo este una nueva instantánea (ya seríais el colmo si habéis vuelto a dejar algo así colgado y funcionando), pero mejor hacerlo como os he dicho, por si acaso.
Menudo ladrillazo.
Saludos.