{"id":3127,"date":"2016-05-18T15:15:20","date_gmt":"2016-05-18T18:15:20","guid":{"rendered":"http:\/\/www.radians.com.ar\/blog\/?p=3127"},"modified":"2016-05-18T15:15:20","modified_gmt":"2016-05-18T18:15:20","slug":"azure-como-restaurar-copias-de-seguridad-de-maquinas-virtuales-con-powershell","status":"publish","type":"post","link":"https:\/\/www.radians.com.ar\/blog\/?p=3127","title":{"rendered":"Azure: como restaurar copias de seguridad de maquinas virtuales con PowerShell"},"content":{"rendered":"<p align=\"justify\"><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/Azure_001.png\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; margin-left: 0px; border-left: 0px; display: inline; margin-right: 0px\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/Azure_001_thumb.png\" width=\"260\" align=\"left\" height=\"157\" \/><\/a> Hola, hoy quer\u00eda publicar este contenido que es muy interesante que publico en su momento Keith Mayer en su blog en ingles (<a href=\"https:\/\/blogs.technet.microsoft.com\/heyscriptingguy\/2014\/01\/24\/create-backups-of-virtual-machines-in-windows-azure-by-using-powershell\/\">Blogs TechNet Microsoft<\/a>). <a href=\"http:\/\/www.windowsazure.com\/\">Windows Azure Infrastructure Services<\/a> proporciona la capacidad de migrar f\u00e1cilmente a disposici\u00f3n o almacenamiento, m\u00e1quinas virtuales y redes virtuales de la plataforma global de nube de Windows Azure mediante el uso de una soluci\u00f3n rentable con el modelo: <a href=\"http:\/\/www.windowsazure.com\/en-us\/pricing\/details\/virtual-machines\/\">Pay-As-You-Go<\/a>.<\/p>\n<p align=\"justify\">La parte 1 la pueden encontrar en: <a href=\"http:\/\/www.radians.com.ar\/blog\/?p=3123\">Azure: como crear copias de seguridad de maquinas virtuales con PowerShell<\/a><\/p>\n<h4>Antes de que empieces<\/h4>\n<p align=\"justify\">Para tener \u00e9xito en el seguimiento de los pasos de este art\u00edculo, usted necesita tener primero realizado las siguientes tareas:<\/p>\n<ul>\n<li>\n<div align=\"justify\"><strong>Activar una suscripci\u00f3n de prueba GRATIS Azure de Windows.<\/strong> <strong>         <br \/><\/strong>Inscribite de forma r\u00e1pida para una prueba gratuita de Windows Azure Trial Subscription <a href=\"http:\/\/aka.ms\/WindowsAzureFreeTrial\">http:\/\/aka.ms\/WindowsAzureFreeTrial<\/a>. <\/div>\n<\/li>\n<li>\n<div align=\"justify\"><strong>Provisi\u00f3n al menos una m\u00e1quina virtual en Windows Azure.<\/strong> <strong>         <br \/><\/strong>Puede caminar a trav\u00e9s de las etapas implicadas en la construcci\u00f3n de un entorno de laboratorio bajo demanda basado en la nube de Windows Azure en <a href=\"http:\/\/aka.ms\/SP13CloudLab\">http:\/\/aka.ms\/SP13CloudLab<\/a>.<\/div>\n<\/li>\n<li><strong>Crear una copia de seguridad de al menos una m\u00e1quina virtual en Windows Azure.<\/strong>      <br \/>Puede crear r\u00e1pidamente una copia de seguridad de m\u00e1quina virtual en Windows Azure utilizando los pasos en el art\u00edculo que se encuentre en <a href=\"http:\/\/aka.ms\/BackupWindowsAzureVM\">http:\/\/aka.ms\/BackupWindowsAzureVM<\/a>.<\/li>\n<\/ul>\n<p><a title=\"Get Started with Windows Azure for FREE!\" href=\"http:\/\/aka.ms\/WindowsAzureFreeTrial\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" title=\"image\" style=\"border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px\" border=\"0\" alt=\"image\" src=\"https:\/\/msdnshared.blob.core.windows.net\/media\/TNBlogsFS\/prod.evol.blogs.technet.com\/CommunityServer.Blogs.Components.WeblogFiles\/00\/00\/00\/94\/09\/metablogapi\/image7_120449DA.png\" width=\"525\" height=\"106\" original-url=\"http:\/\/blogs.technet.com\/cfs-file.ashx\/__key\/communityserver-blogs-components-weblogfiles\/00-00-00-94-09-metablogapi\/image7_5F00_120449DA.png\" \/><\/a><\/p>\n<h2>Empecemos!<\/h2>\n<p align=\"justify\">Windows PowerShell y su <a href=\"http:\/\/www.windowsazure.com\/en-us\/downloads\/#cmd-line-tools\">Windows Azure PowerShell Module<\/a> se pueden utilizar para automatizar la copia de seguridad basada en la nube y restaurar procesos con el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dn408552.aspx\">Start-AzureStorageBlobCopy <\/a><\/p>\n<p align=\"justify\">Este cmdlet realiza copias &quot;blob-to-blob&quot; en la nube, que le da el poder para copiar r\u00e1pidamente grandes cantidades de datos sin empujar estos datos hacia atr\u00e1s y hacia adelante sobre su conexi\u00f3n a Internet. El uso de este cmdlet, podr\u00e1s hacer copias de seguridad y restaurar discos duros enteros de la m\u00e1quina virtual en unos pocos minutos o menos!<\/p>\n<p align=\"justify\">Para restaurar las m\u00e1quinas virtuales de Windows Azure, vamos a paso en los siguientes tareas en este art\u00edculo:<\/p>\n<ul>\n<li>\n<div align=\"justify\">Seleccione la m\u00e1quina virtual para restaurar<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Identificar cada disco duro virtual para ser restaurado<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Dar de baja Virtual Machine para restaurar<\/div>\n<\/li>\n<li>\n<div align=\"justify\">Restaurar Windows Azure VM OS Disk <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Restore Windows Azure VM Data Disks <\/div>\n<\/li>\n<li>\n<div align=\"justify\">Reabastecimiento de m\u00e1quinas virtuales<\/div>\n<\/li>\n<\/ul>\n<p align=\"justify\"><strong>Consejo<\/strong><strong>! <\/strong>Para obtener m\u00e1s informaci\u00f3n sobre los conceptos b\u00e1sicos de Windows Azure servicios de infraestructura, tambi\u00e9n podr\u00eda estar interesado en el <a href=\"http:\/\/aka.ms\/EarlyExpertsCloud\">\u201cEarly Experts\u201d Cloud Quest<\/a> y en nuestro scenario-based \u201c<a href=\"http:\/\/aka.ms\/CloudLab\">Cloud Labs<\/a>\u201d step-by-step guides.<\/p>\n<h4>Seleccione la m\u00e1quina virtual para restaurar<\/h4>\n<p align=\"justify\">La m\u00e1quina virtual que desea restaurar desde una copia de seguridad previa se puede seleccionar mediante el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/jj152849.aspx\">Get-AzureVM<\/a> . Al ejecutar <i>Get-AzureVM<\/i> solo devuelve una lista de m\u00e1quinas virtuales actualmente provisionada en Windows Azure.<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Get-AzureVM<\/font><\/strong><\/p>\n<p><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q1.png\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q1_thumb.png\" width=\"544\" height=\"98\" \/><\/a><\/p>\n<p>Para seleccionar una determinada m\u00e1quina virtual, puede pasar el <i>ServiceName<\/i> y valores de <i>nombre<\/i> como par\u00e1metros y ajustar la salida a una nueva variable PowerShell.<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vm = Get-AzureVM \u2013ServiceName kemlabad \u2013Name kemlabad01<\/font><\/strong><\/p>\n<p align=\"justify\">Ahora, nuestra m\u00e1quina virtual de Windows Azure seleccionado puede ser referenciado mediante el uso de los <i>$ vm<\/i> variable en el resto de nuestro script.<\/p>\n<p align=\"justify\">Con el fin de restaurar una copia de seguridad de cada disco duro de la m\u00e1quina virtual, tambi\u00e9n es necesario para apagar temporalmente la m\u00e1quina virtual en un estado en el que la m\u00e1quina virtual no se est\u00e1 ejecutando, pero su configuraci\u00f3n se mantiene en un estado aprovisionado. Podemos lograr esto con el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/jj152831.aspx\">Stop-AzureVM <\/a><\/p>\n<p><a href=\"https:\/\/translate.googleusercontent.com\/translate_c?depth=1&amp;hl=en&amp;ie=UTF8&amp;prev=_t&amp;rurl=translate.google.com&amp;sl=auto&amp;tl=es&amp;u=http:\/\/msdn.microsoft.com\/en-us\/library\/jj152831.aspx&amp;usg=ALkJrhjzU6BRjO1V4ANEzldNZrZGQEoqtw\"><\/a><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vm | Stop-AzureVM \u2013StayProvisioned<\/font><\/strong><\/p>\n<p><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q2.png\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q2_thumb.png\" width=\"544\" height=\"49\" \/><\/a><\/p>\n<p align=\"justify\">Nuestra m\u00e1quina virtual est\u00e1 seleccionado y en el estado de derecho, y que podemos proceder a la siguiente etapa de la b\u00fasqueda de cada disco duro virtual que desea restaurar.<\/p>\n<h4>Identificar cada disco duro virtual para ser restaurado<\/h4>\n<p align=\"justify\">Las m\u00e1quinas 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\u00e1quina virtual tendr\u00e1 un sistema operativo de disco desde el que se arranca y se ejecuta el sistema operativo. Adem\u00e1s, cada m\u00e1quina virtual tambi\u00e9n puede tener uno o m\u00e1s discos de los datos sobre los que se pueden almacenar c\u00f3digo de programa y archivos de datos. Para llevar a cabo una completa restauraci\u00f3n de VM, tendremos que identificar todos los discos duros virtuales que nuestra m\u00e1quina virtual se est\u00e1 usando en ese momento.<\/p>\n<p align=\"justify\">Para almacenar la ubicaci\u00f3n para el disco del sistema operativo, podemos utilizar el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/jj152871.aspx\">Get-AzureOSDisk <\/a><\/p>\n<p align=\"justify\"><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vmOSDisk = $vm | Get-AzureOSDisk<\/font><\/strong><\/p>\n<p align=\"justify\">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\u00e1s interesados \u200b\u200bson los <i>diskname<\/i> y los valores <i>MediaLink<\/i> se muestra a continuaci\u00f3n. Estos valores proporcionan la informaci\u00f3n que necesitaremos hacer copias de seguridad y restaurar adecuadamente cada disco duro virtual que est\u00e1 asociado con una m\u00e1quina virtual.<\/p>\n<p><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q3.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q3_thumb.jpg\" width=\"544\" height=\"96\" \/><\/a><\/p>\n<p align=\"justify\"><i>Los valores de propiedad com\u00fan para un disco duro virtual de Windows Azure<\/i><\/p>\n<p align=\"justify\">Para almacenar la ubicaci\u00f3n de todos los discos de los datos, podemos utilizar el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/jj152871.aspx\">Get-AzureDataDisk<\/a>. Desde VM se pueden aprovisionar con m\u00faltiples discos de los datos, devuelve este cmdlet de una colecci\u00f3n de <i>DataVirtualHardDisks.<\/i><\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vmDataDisks = $vm | Get-AzureDataDisk<\/font><\/strong><\/p>\n<h4>Dar de baja Virtual Machine para restaurar<\/h4>\n<p align=\"justify\">Cuando una m\u00e1quina 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\u00f3n de la m\u00e1quina virtual y quitar la primera m\u00e1quina virtual antes de que el proceso de restauraci\u00f3n puede tener \u00e9xito. Por suerte, podemos llevar a cabo estas tareas f\u00e1cilmente con s\u00f3lo un c\u00f3digo de PowerShell poco m\u00e1s.<\/p>\n<p>En primer lugar, vamos a crear una carpeta local en la que se almacenar\u00e1 nuestra configuraci\u00f3n de m\u00e1quina virtual exportada.<\/p>\n<h5><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$exportFolder = &quot;C:\\ExportVMs&quot;       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">if (!(Test-Path -Path $exportFolder)) {       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; New-Item -Path $exportFolder \u2013ItemType Directory       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<\/font><\/strong>&#160;<a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q4.png\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q4_thumb.png\" width=\"544\" height=\"191\" \/><\/a><\/h5>\n<p align=\"justify\"> A continuaci\u00f3n, vamos a exportar nuestra configuraci\u00f3n de la m\u00e1quina virtual a un archivo XML local. Vamos a utilizar este archivo exportado al final del proceso de restauraci\u00f3n para aprovisionar nuestra m\u00e1quina virtual una vez que las copias de seguridad de discos duros virtuales han sido restaurados.<\/p>\n<p align=\"justify\"><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$exportPath = $exportFolder + &quot;\\&quot; + $vm.Name + &quot;.xml&quot;       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vm | Export-AzureVM -Path $exportPath<\/font><\/strong><\/p>\n<p><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q5.png\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q5_thumb.png\" width=\"544\" height=\"202\" \/><\/a><\/p>\n<p>Una vez que nuestra configuraci\u00f3n de m\u00e1quina virtual se exporta de forma segura a un archivo XML, ahora podemos utilizar la cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windowsazure\/dn495264.aspx\">Remove-AzureVM<\/a> para quitar la m\u00e1quina virtual en la preparaci\u00f3n de la restauraci\u00f3n de cada disco duro de la m\u00e1quina virtual a partir de la ubicaci\u00f3n de copia de seguridad blob.<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Remove-AzureVM -ServiceName $vm.ServiceName -Name $vm.Name<\/font><\/strong><\/p>\n<h4>Restore Windows Azure VM OS Disk<\/h4>\n<p>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\u00f3n.<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vmOSDiskName = $vmOSDisk.DiskName       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vmOSDiskuris = $vmOSDisk.MediaLink       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$StorageAccountName = $vmOSDiskuris.Host.Split(&#8216;.&#8217;)[0]       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vmOSBlobName = $vmOSDiskuris.Segments[-1]       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$vmOSOrigContainerName = $vmOSDiskuris.Segments[-2].Split(&#8216;\/&#8217;)[0]       <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">$backupContainerName = \u201cbackups\u201d<\/font><\/strong><\/p>\n<p><a href=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q6.png\"><img loading=\"lazy\" decoding=\"async\" title=\"www.radians.com.ar\" style=\"border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline\" border=\"0\" alt=\"www.radians.com.ar\" src=\"http:\/\/www.radians.com.ar\/Articulos\/Images2016\/Azurecomorestaurarcopiasdeseguridaddemaq_D66B\/q6_thumb.png\" width=\"544\" height=\"234\" \/><\/a> <\/p>\n<p align=\"justify\">Despu\u00e9s de la eliminaci\u00f3n de una m\u00e1quina virtual de Windows Azure, a veces hay un corto per\u00edodo de tiempo en el que el disco virtual sigue apareciendo como ser conectado a la m\u00e1quina virtual. Antes de continuar, vamos a querer que esperar hasta que el disco virtual se separa mediante el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windowsazure\/dn495125.aspx\">Get-AzureDisk<\/a> dentro de un bucle <em>while.<\/em><\/p>\n<p align=\"justify\"><strong><font color=\"#ff0000\" face=\"OCR A Extended\">While ( (Get-AzureDisk -DiskName $vmOSDiskName).AttachedTo ) { Start-Sleep 5 }<\/font><\/strong><\/p>\n<p align=\"justify\">Una vez que el disco se separa OS, podr\u00e1s extraer el disco en preparaci\u00f3n para la restauraci\u00f3n de la copia de seguridad mediante el uso de la cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windowsazure\/dn495255.aspx\">Remove-AzureDisk<\/a> con el par\u00e1metro <em>-DeleteVHD.<\/em><\/p>\n<p align=\"justify\"><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Remove-AzureDisk -DiskName $vmOSDiskName -DeleteVHD<\/font><\/strong> <\/p>\n<p align=\"justify\">Despu\u00e9s de retirar el disco del sistema operativo y VHD asociado, puede restaurar el disco duro virtual de copia de seguridad mediante el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windowsazure\/dn495267.aspx\">Start-AzureStorageBlobCopy<\/a> y el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windowsazure\/dn495155.aspx\">Get-AzureStorageBlobCopyState<\/a> de la siguiente manera:<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Start-AzureStorageBlobCopy -SrcContainer $backupContainerName -SrcBlob $vmOSBlobName -DestContainer $vmOSOrigContainerName \u2013Force<\/font><\/strong> <\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Get-AzureStorageBlobCopyState -Container $vmOSOrigContainerName -Blob $vmOSBlobName \u2013WaitForComplete<\/font><\/strong><\/p>\n<p align=\"justify\">Ya que estamos realizando una gota gota a copiar en la plataforma en la nube de Windows Azure, la operaci\u00f3n de copia debe completar muy r\u00e1pidamente. Cuando la copia se ha completado, se puede agregar el disco azul de nuevo en su suscripci\u00f3n para el disco del sistema operativo de la m\u00e1quina virtual restaurado.<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Add-AzureDisk -DiskName $vmOSDiskName -MediaLocation $vmOSDiskuris.AbsoluteUri -OS Windows<\/font><\/strong><\/p>\n<p>Esto completa el proceso para restaurar el disco del sistema operativo desde una copia de seguridad basada en la nube.<\/p>\n<h4>Restore Windows Azure VM Data Disks<\/h4>\n<p align=\"justify\">Adem\u00e1s de un disco de OS, las m\u00e1quinas virtuales de Windows Azure tambi\u00e9n pueden estar unidos a uno o m\u00e1s discos de datos persistentes. Podemos utilizar un procedimiento similar para la restauraci\u00f3n 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\u00f3n, vamos a ejecutar los comandos dentro de un bucle <em>foreach<\/em> para procesar cada disco de datos a su vez.<\/p>\n<p> <strong><font color=\"#ff0000\" face=\"OCR A Extended\">ForEach ( $vmDataDisk in $vmDataDisks ) {     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $vmDataDiskName = $vmDataDisk.DiskName     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $vmDataDiskuris = $vmDataDisk.MediaLink     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $vmDataBlobName = $vmDataDiskuris.Segments[-1]     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; $vmDataOrigContainerName = $vmDataDiskuris.Segments[-2].Split(&#8216;\/&#8217;)[0]     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; While ( (Get-AzureDisk -DiskName $vmDataDiskName).AttachedTo ) { Start-Sleep 5 }     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; Remove-AzureDisk -DiskName $vmDataDiskName \u2013DeleteVHD     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; Start-AzureStorageBlobCopy -SrcContainer $backupContainerName -SrcBlob $vmDataBlobName -DestContainer $vmDataOrigContainerName \u2013Force     <br \/><\/font><\/strong><strong><font color=\"#ff0000\" face=\"OCR A Extended\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; Get-AzureStorageBlobCopyState -Container $vmDataOrigContainerName -Blob $vmDataBlobName \u2013WaitForComplete     <br \/><\/font><\/strong><font face=\"OCR A Extended\"><font color=\"#ff0000\"><strong>&#160;&#160;&#160;&#160;&#160;&#160;&#160; Add-AzureDisk -DiskName $vmDataDiskName -MediaLocation $vmDataDiskuris.AbsoluteUri       <br \/><\/strong><strong>&#160;&#160;&#160; }<\/strong><\/font><\/font>  <\/p>\n<p>Despu\u00e9s de ejecutar este fragmento, cada uno de los discos de datos que estaban conectados a la m\u00e1quina virtual ser\u00e1 restaurado.<\/p>\n<h4>Reabastecimiento de m\u00e1quinas virtuales<\/h4>\n<p align=\"justify\">Una vez que todos los discos duros virtuales han sido restaurados, podemos utilizar el cmdlet <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/windowsazure\/dn495105.aspx\">Import-AzureVM<\/a> para aprovisionar la m\u00e1quina virtual. El VM aprovisionar autom\u00e1ticamente apuntar\u00e1 a la copia restaurada de cada disco duro virtual.<\/p>\n<p><strong><font color=\"#ff0000\" face=\"OCR A Extended\">Import-AzureVM -Path $exportPath | New-AzureVM -ServiceName $vm.ServiceName<\/font><\/strong><\/p>\n<p>Cuando el proceso de importaci\u00f3n se ha completado, la m\u00e1quina virtual se restaurar\u00e1 y se inici\u00f3 en la suscripci\u00f3n de Windows Azure.<\/p>\n<h4>\u00a1Felicitaciones! Pero a seguir aprendiendo!<\/h4>\n<p align=\"justify\">Hemos completado el proceso de creaci\u00f3n de copias de seguridad y restauraci\u00f3n de m\u00e1quinas virtuales en Windows Azure con Windows PowerShell! Puede usar los cmdlets y los fragmentos de esta serie de art\u00edculos para construir f\u00e1cilmente un enfoque automatizado para capturar una copia de seguridad de cada m\u00e1quina virtual de Windows Azure en su suscripci\u00f3n, tal vez por una noche.<\/p>\n<p align=\"justify\">Adem\u00e1s, es posible que desee aprovechar estos recursos para continuar su aprendizaje acerca de Windows Azure servicios de infraestructura:<\/p>\n<ul>\n<li>\n<div align=\"justify\"><a href=\"https:\/\/blogs.technet.microsoft.com\/b\/heyscriptingguy\/archive\/2013\/06\/22\/weekend-scripter-getting-started-with-windows-azure-and-powershell.aspx\">Getting Started with Windows Azure and PowerShell<\/a><\/div>\n<\/li>\n<li>\n<div align=\"justify\"><a href=\"https:\/\/blogs.technet.microsoft.com\/b\/heyscriptingguy\/archive\/2013\/09\/07\/weekend-scripter-remoting-the-cloud-with-windows-azure-and-powershell.aspx\">Remoting the Cloud with Windows Azure and PowerShell<\/a><\/div>\n<\/li>\n<li>\n<div align=\"justify\"><a href=\"https:\/\/blogs.technet.microsoft.com\/b\/heyscriptingguy\/archive\/2014\/01\/24\/create-backups-of-virtual-machines-in-windows-azure-by-using-powershell.aspx\">Create Cloud Backups of Windows Azure Virtual Machines using PowerShell<\/a><\/div>\n<\/li>\n<li>\n<div align=\"justify\"><a href=\"http:\/\/aka.ms\/CloudLab\">20 + Key IT Pro Scenarios with Windows Azure Infrastructure Services<\/a><\/div>\n<\/li>\n<li>\n<div align=\"justify\"><a href=\"http:\/\/aka.ms\/eecloud\">Become an \u201cEarly Expert\u201d on Windows Azure in the Cloud Quest!<\/a><\/div>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hola, hoy quer\u00eda publicar este contenido que es muy interesante que publico en su momento&#8230;<\/p>\n","protected":false},"author":1,"featured_media":4291,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[303],"tags":[312],"class_list":["post-3127","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","tag-azure"],"_links":{"self":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3127"}],"version-history":[{"count":1,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3127\/revisions"}],"predecessor-version":[{"id":3128,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3127\/revisions\/3128"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=\/wp\/v2\/media\/4291"}],"wp:attachment":[{"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.radians.com.ar\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}