Start


Olá Pessoal!!!

Hoje vou demostrar a vocês como fazer o Backup do VHD no Microsoft Azure, lembrando que esse backup não é recomendado para ambiente de produção. Ele desliga o Servidor e provisiona ele temporariamente para efetuar a copiar do VHD.

Primeiro tem que configurar sua conta de e-mail no Powershell, segue o link com o passo a passo da configuração do Azure Powershell.

http://azure.microsoft.com/en-us/documentation/articles/install-configure-powershell/?fb=pt-br

Após a instalação do Azure Powershell execute o seguinte comando

Esse comando irá listar todos os Servidores e Serviços

Get-AzureVM

Agora vou explicar como funciona o Script passo a passo

MAQUINA DE TESTE = SRV-01 / Nome do Servidor

Get-AzureVM = Esse comando mostra todas as VMs e Serviços da conta do Azure.

$vm = Get-AzureVM -ServiceName SRV-01 -Name SRV-01 = Seta a variável “$vm” para a máquina SRV-01

$vm | Stop-AzureVM -StayProvisioned = Para a VM mas a mantem provisionada

Get-AzureOSDisk = Mostra o disco do OS da VM selecionada

$vmOSDisk = $vm | Get-AzureOSDisk  = Seto a variável “$vmOSDisk” para pegar o Disco o disco do OS da variável “$vm

Get-AzureDataDisk = Mostra todos os discos da VM selecionada

$vmDataDisks = $vm | Get-AzureDataDisk = Seta a variável “$vmDataDisks” para pegar todos os discos da varíavel “$vm

$StorageAccountName = $vmOSDisk.MediaLink.Host.Split(‘.’)[0] = Seto a variável “$StorageAccountName”  para achar o nome do meu Storage Container

Get-AzureSubscription | Set-AzureSubscription -CurrentStorageAccount $StorageAccountName = Defino que o storage container da minha conta vai ser o mesmo onde estava minha máquina

$backupContainerName = “backups” = Seto que a variável “$backupContainerName” vai se chamar “backups”

if (!(Get-AzureStorageContainer -Name $backupContainerName -ErrorAction SilentlyContinue)) {New-AzureStorageContainer -Name $backupContainerName -Permission Off} = Crio um storage container com o nome definido na variável “$backupContainerName

$vmOSBlobName = $vmOSDisk.MediaLink.Segments[-1] = Seto a variável “$vmOSBlobName” para pegar o Blob Name da variável “$vmOSDisk

 $vmOSContainerName = $vmOSDisk.MediaLink.Segments[-2].Split(‘/’)[0] = Seta a variável “$vmOSContainerName” Para pegar o container onde está o VHD da variável “$vmOSDisk

Start-AzureStorageBlobCopy -SrcContainer $vmOSContainerName -SrcBlob $vmOSBlobName -DestContainer $backupContainerName = Comando que executa a cópia dos aquivos VHD.

Ele vai ficar assim

1 -$vm = Get-AzureVM -ServiceName SRV-01 -Name SRV-01

2 – $vm | Stop-AzureVM -StayProvisioned

3 – $vmOSDisk = $vm | Get-AzureOSDisk

4 – $vmDataDisks = $vm | Get-AzureDataDisk

5 – $StorageAccountName = $vmOSDisk.MediaLink.Host.Split(‘.’)[0]

6 – Get-AzureSubscription | Set-AzureSubscription -CurrentStorageAccount $StorageAccountName

7 – $backupContainerName = “backups”

8 – if (!(Get-AzureStorageContainer -Name $backupContainerName -ErrorAction SilentlyContinue)) {New-AzureStorageContainer -Name $backupContainerName -Permission Off}

9 – $vmOSBlobName = $vmOSDisk.MediaLink.Segments[-1]

10 – $vmOSContainerName = $vmOSDisk.MediaLink.Segments[-2].Split(‘/’)[0]

11-Start-AzureStorageBlobCopy -SrcContainer $vmOSContainerName -SrcBlob $vmOSBlobName -DestContainer $backupContainerName -Force

12 – Get-AzureStorageBlobCopyState -Container $backupContainerName -Blob $vmOSBlobName -WaitForComplete

13 – $vm | Start-AzureVM

Normalmente esse Script demora alguns minutos para ser executado em média de uns 5 minutos. Caso queria configurar para deixar ele automatizado pode utilizar o serviço de Task do Windows.

Dica = Caso tenha bastante Servidores, utiliza o Windows PowerShell ISE nele você consegue criar e salvar  Script com a extensão “.ps1” ficando mais fácil de deixar o Task do Windows executando ele diariamente.

No próximo post vou demostrar a vocês como efetuar o Restore do VHD.

Obrigado e até mais.