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
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
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
Hola Pablo.
Súper interesante el artículo, lo voy a probar hoy en mi oficina 😉
Saludos
Gonzalo
Esto también funciona con WS2008R2?
Si sin problemas … Salu2
Se podria adaptar esto para hacer un export en caliente?
Nos podrias indicar como?
Saludos.
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
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.
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 🙂
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.
@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
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
@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
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.
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.
@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
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!
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
hola compañeros tengo problemas con en scritp
no me reconose ciertos comandos.
@Efrain Cuales??
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?