Como converter discos gerenciados no Azure em não gerenciados

Diferença entre disco gerenciado e disco não gerenciado

Discos gerenciados = são gerenciados pelo Microsoft Azure e você não precisa de nenhuma conta de armazenamento ao criar um novo disco. Como a conta de armazenamento é gerenciada pelo Azure, você não tem controle total dos discos que estão sendo criados.

Discos não gerenciados = é algo que exige que você crie uma conta de armazenamento antes de criar qualquer novo disco. Como a conta de armazenamento é criada e de sua propriedade, você tem controle total sobre todos os dados presentes em sua conta de armazenamento. Além disso, você também precisa cuidar da criptografia, planos de recuperação de dados, etc.

Basicamente a principal vantagem em usar discos não gerenciados ao invés de discos gerenciados é a questão do preço, os discos não gerenciados são muito mais baratos em comparação aos discos gerenciados, em ambientes que precisam armazenar grandes quantidades de dados em disco é um boa alternativa usar os discos não gerenciados.

Cenário:

No Azure temos uma máquina virtual chamado VM-01 e associado a essa máquina virtual temos um disco de dados chamado disco-date02 com 32 GB, vamos converter o disco date-vm-01 gerenciado em disco não gerenciado.

Converter de gerenciado para não gerenciado

Converter um disco gerenciado em um disco não gerenciado basicamente significa que você precisa copiar o arquivo VHD gerenciado para uma de suas contas de armazenamento e criar uma VM usando essa VM copiada. O processo passo a passo para converter  para não gerenciado é o seguinte:

01 – No portal do Azure abra o Cloud Shell

01- Execute o script abaixo para converter um disco gerenciado que está associado a uma máquina virtual em não gerenciável.

02 – O script pode ser executa no PowerShell ou no Cloud Shell, em nosso exemplo vamos executar o script no Cloud Shell.

O script está disponível para download em meu Github.

 

 

 

 

 

Para converter o disco gerenciado para não gerenciado a máquina virtual deve está desalocada.

Observação: Para colocar o script no Cloud Shell pressione Control+Shift+v

# Variáveis com o nome dos recursos
$RG = “RG-teste”
$VMNAME = “VM-01”
$location = “Central US”
$stoname = “stof0547”
$disknameconvestido = “testeconvertido.vhd”
$containerName = “vhds”

# Criar Storage Account

$storageAccount = New-AzStorageAccount -ResourceGroupName $RG `
-Name $stoname `
-Location $location `
-SkuName Standard_LRS `
-Kind StorageV2

$ctx = $storageAccount.Context

# Criar o Container
New-AzStorageContainer -Name $containerName -Context $ctx -Permission blob

# Mostrar o nome dos discos
$vm = Get-AzVM -ResourceGroupName $RG -Name $VMNAME
$vm.StorageProfile.OsDisk | Where-Object {$_.ManagedDisk -ne $null} | Select-Object Name
$vm.StorageProfile.DataDisks | Where-Object {$_.ManagedDisk -ne $null} | Select-Object Name

# Recuperar a chave da conta de armazenamento
Get-AzureRmStorageAccountKey -ResourceGroupName $RG -StorageAccountName $stoname

# Criar um contexto de armazenamento que pode ser usado posteriormente para copiar os VHDs
$StorageAccountKey = “6Ef/N1gsINQlqe7BgIGk5vjgGiM4sccFpA1iY7QCChcA2PVpsQaeM/IgxgLEXFpTzh1KpyGpHBNpAtX52EVz7g==”
$context = New-AzureStorageContext -StorageAccountName $stoname -StorageAccountKey $StorageAccountKey

# Conceder acesso e iniciar a cópia do blob
$diskname = “disco-date02”
$sas = Grant-AzureRmDiskAccess -ResourceGroupName $RG -DiskName $diskname -Access Read -DurationInSecond (60*60*24)
$blobcopyresult = Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestinationContainer $containerName -DestinationBlob $disknameconvestido -DestinationContext $context

# Ver o Status da copia do VHD para o container
$blobcopyresult | Get-AzureStorageBlobCopyState

# Obter o status após reiniciar o Cloud shell
Set-AzureRmCurrentStorageAccount -ResourceGroupName $RG -Name $stoname
Get-AzureStorageBlobCopyState -Container $containerName -Blob $disknameconvestido

03 – No vídeo abaixo mostro a execução do script.

Comente suas sugestões e observações! 

Forte abraço, obrigado e até o próximo post.

Deixe um comentário

O seu endereço de e-mail não será publicado.