Hyper-v Backup Single Virtual Machine Respaldar una sola máquina

Hola a todos

Hoy voy a mostrar como respaldar una sola maquina virtual en caliente y no todo el volumen como lo hace Windows Server Backup, para esto utilizaremos el programa Diskshadow para generar un “snapshot” del Volumen donde residen nuestras maquinas virtuales, para después copiarlas a nuestro file server mediante el utilitario robocopy

Primero que todo tenemos que ver si nuestro Hyper-V host tiene bien configurado el Volumen Shadow Copy Service, si no así instalar el siguiente parche

Install this update to resolve an issue in which the Hyper-V Volume Shadow Copy Service (VSS) does not back up virtual machines properly

Ejecutamos en una consola con privilegios elevados

vssadmin list writers

deberíamos encontrar algo así

Nombre de editor: ‘Microsoft Hyper-V VSS Writer’
   Id. de editor: {66841cd4-6ded-4f4b-8f17-fd23f8ddc3de}
   Id. de instancia de editor: {0e0b1c16-02f9-45c5-b51d-1d711c5e88ea}
   Estado: [5] Esperando finalización
   Último error: Sin errores

image

En mi caso de ejemplo las maquinas las tengo el el volumen D:maquinas y expondré la unidad Q: como unidad de paso, el alias del volumen D: será MaquinasVirtuales
La maquina a respaldar se llama “Win 7 reload”

Ahora el archivo de texto que se pasa como parámetro al DiskShadow

diskshadow -s D:RespaldaHypervDiskshadow.txt

——————————————–RespaldaHypervDiskshadow.txt————————————————–
unexpose Q:
Delete Shadows all
set context persistent
set verbose on
add volume D: alias MaquinasVirtuales
create
Expose %MaquinasVirtuales% Q:
exec D:HypervBK.bat
Delete Shadows all
unexpose Q:
Exit

———————————————————————————————————————————-

Después de exponer la unidad Q: extraeré las maquinas virtuales con el comando robocopy
———————————————-HypervBK.bat—————————————————————-
robocopy "Q:maquinasWin 7 reload" \MiServidordeArchivosRespaldosVMRespaldo7Reload  /E
verify >nul
—————————————————————————————————————————–

Después podemos generara una tarea programada del comando diskshadow con el parámetro -s D:RespaldaHypervDiskshadow.txt a la hora que queramos

19 comentarios en “Hyper-v Backup Single Virtual Machine Respaldar una sola máquina”

  1. Hola Ruben
    Tendrias que ya tener en otra maquina “HOST” una maquina con la misma configuracion que la maquina de origen.

    Y tendrias que apuntar el robocopy a esa direccion

    O hacer un export de la maquina “en frio” y despues solo reemplazar el disco duro VHD por el que respaldaste en caliente con este procedimiento

    robocopy “Q:maquinasWin 7 reload” “\MiServidorHyper-vMaquinasWin 7 reload” /E
    verify >nul

    Prueba y me cuentas

    salu2

  2. Hola Pablo;
    Gracias a tu ejemplo he podido realizar la copia de una sola maquina virtual pero… no he podido restaurarla.
    Lo he intentado de varias formas pero no me lo permite. Podrias indicar el modo de resturar despues de utilizar este metodo de copia.
    Muchas gracias y disculpa.

  3. Hola Joe

    Recuerda que esto no es un Export de una maquina es solo copiar el disco duro VHD hacia otra ubicacion

    Para tenerla de nuevo, solo debes crear una nueva maquina virtual y adjuntarle el/los Disco(s) VHDs que respaldaste

    Saludos

    Cualquier cosa .. no dudes en preguntar 🙂

  4. Hola Pablo!!

    ¿este procedimiento funcionaria tambien si quiero hacer los respaldos en cintas magneticas?

    o como podria especificar que almacene en la cinta magnetica si el windows server 2008 no me muestra la unidad en un explorador, pero si aparece instalada en el administrador de dispositivos.

  5. @Erik

    mmm deberias usar el wbadmin … es la herramienta de linea de comando del Windows Server backup y probar la opcion de addtarget

    ¿El Windows server backup, detecta la unidad de Cinta?

    -addtarget
    Specifies the storage location for backups. Requires you to specify a destination for backups as a disk identifier (see Remarks). The disk is formatted before use, and any existing data on it is permanently erased.

    http://technet.microsoft.com/es-es/library/cc742130(WS.10).aspx

  6. Funciona de Maravillas, tengo agendado los miercoles y viernes, lastimosamente tengo algunas versiones de linux y windows Xp que se guardan mientras se inicia el snapshot.

    Muchas gracias Pablo

  7. @Fabian

    Las maquinas con linux, Siempre se guardaran ya que no tienen VSS

    Con XP, algo te debe pasar.
    1) Instalar los integration components
    2) Que los discos de XP sean Básicos
    3) Que la configuracion de la VM, tenga habilitado el backup en la opciones de integracion

  8. Pablo,
    Excelente post! La unica duda que te queria consultar es sobre el siguiente escenario a ver si me lo podes aclarar.
    Tengo dos servidores con Hyper-V (configurados identicamente) uno activo y el otro pasivo. Exporte la configuracion de las VMs al nodo pasivo. Posteriormente configure una tarea programada de modo que diariamente copie el vhd del nodo activo al pasivo. A modo informativo estas VMs tienen asignada la Mac address de manera estatica.
    En caso de que el nodo activo falle quisiera levantar el nodo pasivo de manera manual pero el tema es que levanta la maquina virtual OK pero no tengo conecto conectividad de red, es decir, figura conectado a la red que yo quiero pero cuando quiero hacer ping al default gateway o a cualquier equipo me tira time out. Si vuelvo a encender la vm del nodo activo puedo hacer ping sin problemas. Tenes idea a que se debe este comportamiento?
    Muchas gracias

    Saludos.

  9. Hola,

    He metido la tarea en un fichero .bat, y si lo ejecuto funciona perfectamente, pero si lo ejecuto desd el cobian backup, me lanza el siguiente error:

    Microsoft DiskShadow versión 1.0
    Copyright (C) 2007 Microsoft Corporation
    En el equipo: PCMVRT2, 15/02/2011 10:56:04

    -> unexpose Q:

    Error de la llamada de COM “(*vssObject)->InitializeForBackup”.

    ¿A que puede ser debido esto? Esta solucion es la leche, sólo me falta este detalle para poder exportar el VHD a varios sitios, usando cobian programado.

    Un saludo.

  10. @lucas

    El problema que la tarjeta de red no es la misma que la del origen “ojo… no importa si la MAC es la misma o no”, el problema es que son 2 tarjetas distintas… el exporta copia toda la información del HW

    Solución

    Primero realiza un export al nodo pasivo de tu maquina virtual, con vhds y todo

    Y después con el bat solo sobrescribes los VHDs 🙂

    @Juan

    la primera linea de
    unexpose Q:
    es solo para asegurarme que ya no este montada la letra Q:
    Puedes eliminar la primera linea sin ningún problema

    Saludos y gracias por los comentarios

  11. Funciona Excelente!,
    Pero tuvimos algunos problemitas con el script, en la linea de:
    unexpose Q:

    La quitamos en la primera línea y funcionó, gracias!

  12. hola quisiera saber porque cuando ejecuto el scritp
    me dise que add no se reconose como comando interno externo igual para delete create unexpose gracias

  13. Hola amigo, te cuento que estoy tratando de realizar un backup con este script pero me da el siguiente mansaje:

    -> Expose %HyperV% G:
    -> %HyperV% = {aca pone un id}
    The drive letter is already in use.

    Donde G: es mi unidad RDX (destino) y HyperV es el alias que le asigno.

    Que puede estar pasando?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *