Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como fazer backup de um disco gerenciado do Azure usando a CLI do Azure. Você também pode usar a API REST para criar uma política de Backup e configurar o backup para o Disco Gerenciado do Azure.
Importante
O suporte para backup e restauração de Managed Disks do Azure por meio da CLI está em versão prévia e disponível como uma extensão nas versões Az 2.15.0 e posteriores. A extensão é instalada automaticamente quando você executa os comandos az dataprotection. Saiba mais sobre extensões.
Saiba mais sobre a disponibilidade do backup de disco do Azure por região, os cenários com suporte e as limitações.
Observação
- Se o disco de destino estiver anexado como um Volume Persistente a um cluster do AKS, escolha o Backup do Azure para AKS em vez da solução autônoma de Backup de Disco. Ele permite fazer o backup do disco como instantâneos junto com o aplicativo em contêineres de uma maneira que reconhece o Kubernetes, tudo como uma única unidade. Além disso, você obtém recursos de restauração entre regiões e proteção de ransomware com o Backup do AKS.
Criar um cofre de backup
O cofre de backup é uma entidade de armazenamento no Azure que armazena dados de backup de várias cargas de trabalho mais recentes com suporte no Backup do Azure, como servidores do Banco de Dados do Azure para PostgreSQL, blobs em uma conta de armazenamento e discos do Azure. Os cofres de backup facilitam a organização dos dados de backup, minimizando a sobrecarga de gerenciamento. Os cofres de backup são baseados no modelo de Azure Resource Manager do Azure, que fornece recursos avançados para ajudar a proteger os dados de backup.
Para criar um cofre de backup, escolha a redundância de armazenamento dos dados no cofre. Depois, crie o cofre de Backup com essa redundância de armazenamento e a localização. Neste artigo, criaremos um Cofre de backup TestBkpVault, na região westus, no grupo de recursos testBkpVaultRG. Use o comando az dataprotection vault create para criar um Cofre de backup. Saiba mais sobre como criar um cofre de backup.
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"type": "Microsoft.DataProtection/backupVaults"
}
Após a criação do cofre, vamos criar uma política de backup para proteger os discos do Azure.
Criar uma política de backup
Para compreender os componentes internos de uma política de backup para o Azure Disk Backup, recupere o modelo de política usando o comando az dataprotection backup-policy get-default-policy-template. Esse comando retorna um modelo de política padrão para um determinado tipo de fonte de dados. Use este modelo de política para criar uma nova política.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk
{
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"name": "DiskPolicy",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
O modelo de política consiste em um gatilho (que decide o que dispara o backup) e um ciclo de vida (que decide quando excluir/copiar/mover o backup). No Azure Disk Backup, os valores padrão para o gatilho são um gatilho agendado a cada 4 horas (PT4H) e para manter cada backup por sete dias.
Gatilho agendado:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
}
}
Ciclo de vida de retenção padrão:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
Importante
O agendamento do backup segue o formato de duração ISO 8601. No entanto, não há suporte para o prefixo R de intervalo repetido, pois os backups são configurados para serem executados indefinidamente. Qualquer valor especificado com R será ignorado.
O Azure Disk Backup oferece múltiplos backups por dia. Se precisar de uma frequência de backups maior, escolha a frequência de backup por Hora com a capacidade de fazer backups com intervalos a cada 4, 6, 8 ou 12 horas. Os backups são agendados com base no intervalo de Tempo selecionado.
Por exemplo, se você selecionar a Cada 4 horas, os backups serão feitos aproximadamente no intervalo de cada 4 horas para que sejam distribuídos igualmente ao longo do dia. Se um backup diário for suficiente, escolha a frequência de backup Diário. Na frequência de backup diária, você pode especificar a hora do dia em que os backups são feitos.
Importante
A hora do dia indica o horário de início do backup e não o horário em que o backup é concluído.
O tempo necessário para concluir a operação de backup depende de vários fatores, como o tamanho do disco e a rotatividade entre backups consecutivos. No entanto, o backup de disco do Azure é um backup sem agente que usa instantâneos incrementais, o que não afeta o desempenho do aplicativo de produção.
Observação
Embora o cofre selecionado possa ter a configuração de redundância global, no momento, o Backup de disco do Azure dá suporte apenas ao armazenamento de dados de instantâneos. Todos os backups são armazenados em um grupo de recursos na sua assinatura e não são copiados para o armazenamento do cofre de backup.
Para saber mais detalhes sobre a criação de políticas, confira como criar a política de Backup de Disco do Azure.
Depois que o modelo for baixado como um arquivo JSON, você poderá editá-lo para agendamento e retenção, conforme o necessário. Depois, crie uma política com o JSON resultante. Se você quiser editar a frequência por hora ou o período de retenção, use os comandos az dataprotection backup-policy trigger set e/ou az dataprotection backup-policy retention-rule set. Quando o JSON da política tiver todos os valores necessários, crie uma política com base no objeto de política usando o comando az dataprotection backup-policy create.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy",
"name": "mypolicy",
"properties": {
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Configurar o backup
Depois que o cofre e a política forem criados, haverá três pontos críticos a serem considerados para proteger um disco do Azure.
Entidades-chave envolvidas
Disco a ser protegido
Busque a ID do ARM e a localização do disco a ser protegido. Isso funcionará como o identificador do disco. Usaremos o exemplo de um disco chamado CLITestDisk no grupo de recursos diskrg em uma assinatura diferente.
$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
Grupo de recursos de instantâneo
Os instantâneos do disco estão armazenados em um grupo de recursos na sua assinatura. Como diretriz, é recomendado criar um grupo de recursos dedicado como um armazenamento de dados de instantâneo a ser usado pelo serviço de Backup do Azure. Com um grupo de recursos dedicado, é possível restringir as permissões de acesso no grupo de recursos, fornecendo segurança e facilidade de gerenciamento dos dados de backup. Observe a ID do ARM para o grupo de recursos em que você deseja inserir os instantâneos do disco
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"
Cofre de backup
Os cofres de backup exigem permissões no disco e no grupo de recursos de instantâneo para poder disparar instantâneos e gerenciar os respectivos ciclos de vida. A identidade gerenciada atribuída pelo sistema do cofre é usada para atribuir essas permissões. Use o comando az dataprotection backup-vault update para habilitar a identidade gerenciada atribuída pelo sistema no cofre dos Serviços de Recuperação.
az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned
Atribuir permissões
Você precisa atribuir algumas permissões ao cofre por meio do RBAC (representado pela MSI do cofre) e ao disco relevante e/ou ao RG do disco. Esse processo pode ser executado por meio do portal ou da CLI do Azure. Para atribuir permissões relacionadas, confira os pré-requisitos para configurar o backup de discos gerenciados.
Preparar a solicitação
Depois que todas as permissões relevantes forem definidas, a configuração do backup será executada em duas etapas. Primeiro, preparamos a solicitação relevante usando o cofre, a política, o disco e o grupo de recursos de instantâneo relevantes por meio do comando az dataprotection backup-instance initialize. O comando inicializar retorna um arquivo JSON para que você possa atualizar o valor do grupo de recursos de instantâneo. Depois, enviamos a solicitação para proteger o disco usando o comando az dataprotection backup-instance create.
az dataprotection backup-instance initialize --datasource-type AzureDisk -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk" > backup_instance.json
Abra o arquivo JSON e edite a ID do grupo de recursos de instantâneo em resource_group_id na seção data_store_parameters_list.
{
"backup_instance_name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"data_source_info": {
"datasource_type": "Microsoft.Compute/disks",
"object_type": "Datasource",
"resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resource_location": "southeastasia",
"resource_name": "CLITestDisk",
"resource_type": "Microsoft.Compute/disks",
"resource_uri": ""
},
"data_source_set_info": null,
"object_type": "BackupInstance",
"policy_info": {
"policy_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policy_parameters": {
"data_store_parameters_list": [
{
"data_store_type": "OperationalStore",
"object_type": "AzureOperationalStoreParameters",
"resource_group_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
}
}
}
}
Observação
O nome da instância de backup é gerado para cada cliente, portanto, esse valor será exclusivo. Ele se baseia no nome da fonte de dados e em um GUID exclusivo. Depois de listar as instâncias de backup, você poderá verificar o nome da instância de backup e o nome da fonte de dados relevante.
Use o arquivo JSON editado para criar uma instância de backup do disco gerenciado do Azure.
az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "southeastasia",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceSetInfo": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/sarath-rg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupInstances"
}
Depois que a instância de backup for criada, você poderá disparar um backup sob demanda se não quiser aguardar o agendamento da política.
Executar um backup sob demanda
Liste todas as instâncias de backup no cofre usando o comando az dataprotection backup-instance list e busque a instância relevante com o comando az dataprotection backup-instance show. Como alternativa, para cenários em escala, você pode listar as instâncias de backup entre cofres e assinaturas usando o comando az dataprotection backup-instance list-from-resourcegraph.
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDisk --datasource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk
[
{
"datasourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"extendedLocation": null,
"id": "//subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"identity": null,
"kind": "",
"location": "",
"managedBy": "",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"plan": null,
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"baseUri": null,
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "westus",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceProperties": null,
"dataSourceSetInfo": null,
"datasourceAuthCredentials": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"protectionState": "ProtectionConfigured",
"resourceGroup": "testBkpVaultRG",
"sku": null,
"subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tags": null,
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "microsoft.dataprotection/backupvaults/backupinstances",
"vaultName": "TestBkpVault",
"zones": null
}
]
Você pode especificar uma regra e um nome de tag ao disparar o backup. Para ver as regras da política, verifique o arquivo JSON da política. No exemplo a seguir, a regra com o nome "BackupDaily" e o nome de marca "default" é exibida e usaremos essa regra para o backup sob demanda.
"name": "BackupDaily",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2022-09-27T23:30:00+00:00/P1D"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
Execute um backup sob demanda usando o comando az dataprotection backup-instance adhoc-backup.
az dataprotection backup-instance adhoc-backup --name "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166" --rule-name "BackupDaily" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" --retention-tag-override "default"
Acompanhar trabalhos
Acompanhe todos os trabalhos usando o comando az dataprotection job list. Você pode listar todos os trabalhos e buscar um detalhe de trabalho específico.
Você também pode usar o Az.ResourceGraph para acompanhar todos os trabalhos em todos os cofres de Backup. Use o comando az dataprotection job list-from-resourcegraph para obter o trabalho relevante que pode estar em qualquer cofre de Backup.
az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed
Próximas etapas
Restaurar o Disco Gerenciado usando o portal do Azure, o Azure PowerShell, a CLI do Azure.