Hola, hoy quería publicar este contenido que es muy interesante que publico en su momento Keith Mayer en su blog en ingles (Blogs TechNet Microsoft). Windows Azure Infrastructure Services proporciona la capacidad de migrar fácilmente a disposición o almacenamiento, máquinas virtuales y redes virtuales de la plataforma global de nube de Windows Azure mediante el uso de una solución rentable con el modelo: Pay-As-You-Go.
La parte 1 la pueden encontrar en: Azure: como crear copias de seguridad de maquinas virtuales con PowerShell
Antes de que empieces
Para tener éxito en el seguimiento de los pasos de este artículo, usted necesita tener primero realizado las siguientes tareas:
-
Activar una suscripción de prueba GRATIS Azure de Windows.
Inscribite de forma rápida para una prueba gratuita de Windows Azure Trial Subscription http://aka.ms/WindowsAzureFreeTrial. -
Provisión al menos una máquina virtual en Windows Azure.
Puede caminar a través de las etapas implicadas en la construcción de un entorno de laboratorio bajo demanda basado en la nube de Windows Azure en http://aka.ms/SP13CloudLab. - Crear una copia de seguridad de al menos una máquina virtual en Windows Azure.
Puede crear rápidamente una copia de seguridad de máquina virtual en Windows Azure utilizando los pasos en el artículo que se encuentre en http://aka.ms/BackupWindowsAzureVM.
Empecemos!
Windows PowerShell y su Windows Azure PowerShell Module se pueden utilizar para automatizar la copia de seguridad basada en la nube y restaurar procesos con el cmdlet Start-AzureStorageBlobCopy
Este cmdlet realiza copias "blob-to-blob" en la nube, que le da el poder para copiar rápidamente grandes cantidades de datos sin empujar estos datos hacia atrás y hacia adelante sobre su conexión a Internet. El uso de este cmdlet, podrás hacer copias de seguridad y restaurar discos duros enteros de la máquina virtual en unos pocos minutos o menos!
Para restaurar las máquinas virtuales de Windows Azure, vamos a paso en los siguientes tareas en este artículo:
-
Seleccione la máquina virtual para restaurar
-
Identificar cada disco duro virtual para ser restaurado
-
Dar de baja Virtual Machine para restaurar
-
Restaurar Windows Azure VM OS Disk
-
Restore Windows Azure VM Data Disks
-
Reabastecimiento de máquinas virtuales
Consejo! Para obtener más información sobre los conceptos básicos de Windows Azure servicios de infraestructura, también podría estar interesado en el “Early Experts” Cloud Quest y en nuestro scenario-based “Cloud Labs” step-by-step guides.
Seleccione la máquina virtual para restaurar
La máquina virtual que desea restaurar desde una copia de seguridad previa se puede seleccionar mediante el cmdlet Get-AzureVM . Al ejecutar Get-AzureVM solo devuelve una lista de máquinas virtuales actualmente provisionada en Windows Azure.
Get-AzureVM
Para seleccionar una determinada máquina virtual, puede pasar el ServiceName y valores de nombre como parámetros y ajustar la salida a una nueva variable PowerShell.
$vm = Get-AzureVM –ServiceName kemlabad –Name kemlabad01
Ahora, nuestra máquina virtual de Windows Azure seleccionado puede ser referenciado mediante el uso de los $ vm variable en el resto de nuestro script.
Con el fin de restaurar una copia de seguridad de cada disco duro de la máquina virtual, también es necesario para apagar temporalmente la máquina virtual en un estado en el que la máquina virtual no se está ejecutando, pero su configuración se mantiene en un estado aprovisionado. Podemos lograr esto con el cmdlet Stop-AzureVM
$vm | Stop-AzureVM –StayProvisioned
Nuestra máquina virtual está seleccionado y en el estado de derecho, y que podemos proceder a la siguiente etapa de la búsqueda de cada disco duro virtual que desea restaurar.
Identificar cada disco duro virtual para ser restaurado
Las máquinas virtuales de Windows Azure se pueden aprovisionar con dos tipos generales de discos duros virtuales: Discos del sistema operativo y discos de datos. Cada máquina virtual tendrá un sistema operativo de disco desde el que se arranca y se ejecuta el sistema operativo. Además, cada máquina virtual también puede tener uno o más discos de los datos sobre los que se pueden almacenar código de programa y archivos de datos. Para llevar a cabo una completa restauración de VM, tendremos que identificar todos los discos duros virtuales que nuestra máquina virtual se está usando en ese momento.
Para almacenar la ubicación para el disco del sistema operativo, podemos utilizar el cmdlet Get-AzureOSDisk
$vmOSDisk = $vm | Get-AzureOSDisk
Para cualquier disco duro virtual que se desea hacer copias de seguridad o restaurar, los dos valores de la propiedad en la que vamos a estar más interesados son los diskname y los valores MediaLink se muestra a continuación. Estos valores proporcionan la información que necesitaremos hacer copias de seguridad y restaurar adecuadamente cada disco duro virtual que está asociado con una máquina virtual.
Los valores de propiedad común para un disco duro virtual de Windows Azure
Para almacenar la ubicación de todos los discos de los datos, podemos utilizar el cmdlet Get-AzureDataDisk. Desde VM se pueden aprovisionar con múltiples discos de los datos, devuelve este cmdlet de una colección de DataVirtualHardDisks.
$vmDataDisks = $vm | Get-AzureDataDisk
Dar de baja Virtual Machine para restaurar
Cuando una máquina virtual se aprovisiona en Windows Azure, la plataforma coloca un contrato de arrendamiento en cada disco duro virtual para asegurar que los discos no se eliminan de forma inadvertida. Esto significa que tendremos que exportar la configuración de la máquina virtual y quitar la primera máquina virtual antes de que el proceso de restauración puede tener éxito. Por suerte, podemos llevar a cabo estas tareas fácilmente con sólo un código de PowerShell poco más.
En primer lugar, vamos a crear una carpeta local en la que se almacenará nuestra configuración de máquina virtual exportada.
$exportFolder = "C:\ExportVMs"
if (!(Test-Path -Path $exportFolder)) {
New-Item -Path $exportFolder –ItemType Directory
}
A continuación, vamos a exportar nuestra configuración de la máquina virtual a un archivo XML local. Vamos a utilizar este archivo exportado al final del proceso de restauración para aprovisionar nuestra máquina virtual una vez que las copias de seguridad de discos duros virtuales han sido restaurados.
$exportPath = $exportFolder + "\" + $vm.Name + ".xml"
$vm | Export-AzureVM -Path $exportPath
Una vez que nuestra configuración de máquina virtual se exporta de forma segura a un archivo XML, ahora podemos utilizar la cmdlet Remove-AzureVM para quitar la máquina virtual en la preparación de la restauración de cada disco duro de la máquina virtual a partir de la ubicación de copia de seguridad blob.
Remove-AzureVM -ServiceName $vm.ServiceName -Name $vm.Name
Restore Windows Azure VM OS Disk
Para restaurar el sistema operativo de disco duro virtual relevante de copia de seguridad, vamos primero necesitamos definir algunas variables de las cuentas de nombre de disco, blob, contenedores de almacenamiento y duros virtuales. Vamos a utilizar estos valores de las variables durante el proceso de restauración.
$vmOSDiskName = $vmOSDisk.DiskName
$vmOSDiskuris = $vmOSDisk.MediaLink
$StorageAccountName = $vmOSDiskuris.Host.Split(‘.’)[0]
$vmOSBlobName = $vmOSDiskuris.Segments[-1]
$vmOSOrigContainerName = $vmOSDiskuris.Segments[-2].Split(‘/’)[0]
$backupContainerName = “backups”
Después de la eliminación de una máquina virtual de Windows Azure, a veces hay un corto período de tiempo en el que el disco virtual sigue apareciendo como ser conectado a la máquina virtual. Antes de continuar, vamos a querer que esperar hasta que el disco virtual se separa mediante el cmdlet Get-AzureDisk dentro de un bucle while.
While ( (Get-AzureDisk -DiskName $vmOSDiskName).AttachedTo ) { Start-Sleep 5 }
Una vez que el disco se separa OS, podrás extraer el disco en preparación para la restauración de la copia de seguridad mediante el uso de la cmdlet Remove-AzureDisk con el parámetro -DeleteVHD.
Remove-AzureDisk -DiskName $vmOSDiskName -DeleteVHD
Después de retirar el disco del sistema operativo y VHD asociado, puede restaurar el disco duro virtual de copia de seguridad mediante el cmdlet Start-AzureStorageBlobCopy y el cmdlet Get-AzureStorageBlobCopyState de la siguiente manera:
Start-AzureStorageBlobCopy -SrcContainer $backupContainerName -SrcBlob $vmOSBlobName -DestContainer $vmOSOrigContainerName –Force
Get-AzureStorageBlobCopyState -Container $vmOSOrigContainerName -Blob $vmOSBlobName –WaitForComplete
Ya que estamos realizando una gota gota a copiar en la plataforma en la nube de Windows Azure, la operación de copia debe completar muy rápidamente. Cuando la copia se ha completado, se puede agregar el disco azul de nuevo en su suscripción para el disco del sistema operativo de la máquina virtual restaurado.
Add-AzureDisk -DiskName $vmOSDiskName -MediaLocation $vmOSDiskuris.AbsoluteUri -OS Windows
Esto completa el proceso para restaurar el disco del sistema operativo desde una copia de seguridad basada en la nube.
Restore Windows Azure VM Data Disks
Además de un disco de OS, las máquinas virtuales de Windows Azure también pueden estar unidos a uno o más discos de datos persistentes. Podemos utilizar un procedimiento similar para la restauración de estos discos a lo que hemos utilizado anteriormente para el disco del sistema operativo. Sin embargo, ya que los discos de datos se devuelven como una colección, vamos a ejecutar los comandos dentro de un bucle foreach para procesar cada disco de datos a su vez.
ForEach ( $vmDataDisk in $vmDataDisks ) {
$vmDataDiskName = $vmDataDisk.DiskName
$vmDataDiskuris = $vmDataDisk.MediaLink
$vmDataBlobName = $vmDataDiskuris.Segments[-1]
$vmDataOrigContainerName = $vmDataDiskuris.Segments[-2].Split(‘/’)[0]
While ( (Get-AzureDisk -DiskName $vmDataDiskName).AttachedTo ) { Start-Sleep 5 }
Remove-AzureDisk -DiskName $vmDataDiskName –DeleteVHD
Start-AzureStorageBlobCopy -SrcContainer $backupContainerName -SrcBlob $vmDataBlobName -DestContainer $vmDataOrigContainerName –Force
Get-AzureStorageBlobCopyState -Container $vmDataOrigContainerName -Blob $vmDataBlobName –WaitForComplete
Add-AzureDisk -DiskName $vmDataDiskName -MediaLocation $vmDataDiskuris.AbsoluteUri
}
Después de ejecutar este fragmento, cada uno de los discos de datos que estaban conectados a la máquina virtual será restaurado.
Reabastecimiento de máquinas virtuales
Una vez que todos los discos duros virtuales han sido restaurados, podemos utilizar el cmdlet Import-AzureVM para aprovisionar la máquina virtual. El VM aprovisionar automáticamente apuntará a la copia restaurada de cada disco duro virtual.
Import-AzureVM -Path $exportPath | New-AzureVM -ServiceName $vm.ServiceName
Cuando el proceso de importación se ha completado, la máquina virtual se restaurará y se inició en la suscripción de Windows Azure.
¡Felicitaciones! Pero a seguir aprendiendo!
Hemos completado el proceso de creación de copias de seguridad y restauración de máquinas virtuales en Windows Azure con Windows PowerShell! Puede usar los cmdlets y los fragmentos de esta serie de artículos para construir fácilmente un enfoque automatizado para capturar una copia de seguridad de cada máquina virtual de Windows Azure en su suscripción, tal vez por una noche.
Además, es posible que desee aprovechar estos recursos para continuar su aprendizaje acerca de Windows Azure servicios de infraestructura: