Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como fazer backup do 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 do Azure Managed Disks via CLI está em visualização e disponível como uma extensão na versão Az 2.15.0 e posterior. A extensão é instalada automaticamente quando você executa os comandos az dataprotection . Saiba mais sobre extensões.
Saiba mais sobre a disponibilidade da região de backup do Disco do Azure, cenários suportados e limitações.
Nota
- Se o disco de destino estiver anexado como um Volume Persistente a um cluster AKS, escolha Backup do Azure para AKS em vez da solução de Backup de Disco autônoma. Ele permite fazer backup do disco como instantâneos junto com o aplicativo conteinerizado de uma maneira compatível com o Kubernetes, tudo como uma única unidade. Além disso, você obtém recursos de restauração entre regiões e proteção contra ransomware com o AKS Backup.
Criar um cofre de backup
O cofre de backups é uma entidade de armazenamento no Azure que armazena dados de backup para várias cargas de trabalho mais recentes suportadas pelo Backup do Azure, como o Banco de Dados do Azure para servidores PostgreSQL, blobs numa conta de armazenamento e Discos do Azure. Os cofres de backup facilitam a organização dos dados de backup e, ao mesmo tempo, minimizam a sobrecarga de gerenciamento. Os cofres de backup são baseados no modelo do Azure Resource Manager do Azure, que fornece recursos aprimorados para ajudar a proteger os dados de backup.
Antes de criar um cofre de backup, escolha a redundância de armazenamento dos dados dentro do cofre. Em seguida, prossiga para criar o cofre de backup com essa redundância de armazenamento e na localização escolhida. Neste artigo, criaremos um cofre de backup TestBkpVault, na região westus, sob o 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 entender os componentes internos de uma política de backup para o backup de disco do Azure, obtenha o modelo de política usando o comando az dataprotection backup-policy get-default-policy-template. Este 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 aciona o backup) e um ciclo de vida (que decide quando excluir/copiar/mover o backup). No Backup de Disco do Azure, os valores padrão para gatilho são um gatilho programado 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 do ISO 8601. No entanto, o prefixo R
de intervalo de repetição não é suportado, pois os backups são configurados para serem executados indefinidamente. Qualquer valor especificado com R
será ignorado.
O Azure Disk Backup oferece vários backups por dia. Se você precisar de backups mais frequentes, escolha a frequência de backup por hora com a capacidade de fazer backups com intervalos de 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 os backups sejam distribuídos igualmente ao longo do dia. Se um backup diário for suficiente, escolha a frequência de backup diária . Na frequência diária de backup, você pode especificar a hora do dia em que os backups são feitos.
Importante
A hora do dia indica a hora de início do backup e não a hora em que o backup é concluído.
O tempo necessário para concluir a operação de backup depende de vários fatores, incluindo o tamanho do disco e a taxa de 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.
Nota
Embora o cofre selecionado possa ter a configuração de redundância global, atualmente, o Backup de Disco do Azure oferece suporte apenas ao armazenamento em instantâneo. Todos os backups são armazenados em um grupo de recursos em 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, consulte o documento do 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 necessário. Em seguida, crie uma nova política com o JSON resultante. Se quiser editar a frequência horária ou o período de retenção, utilize os az dataprotection backup-policy trigger set e/ou az dataprotection backup-policy retention-rule set. Quando o JSON de política tiver todos os valores necessários, prossiga a criar uma nova política a partir do objeto 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 a cópia de segurança
Após o repositório e a política serem criados, há três pontos críticos a considerar para proteger um Disco do Azure.
Principais entidades envolvidas
Disco a proteger
Procure o ID ARM e a localização do disco a proteger. Isso servirá como o identificador do disco. Usaremos um exemplo de um disco chamado CLITestDisk, num grupo de recursos diskrg, numa assinatura diferente.
$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
Grupo de recursos de Snapshot
Os instantâneos de disco são armazenados num grupo de recursos dentro da sua assinatura. Como diretriz, recomendamos a criação de um grupo de recursos dedicado como um armazenamento de dados de instantâneo a ser usado pelo serviço de Backup do Azure. Ter um grupo de recursos dedicado permite restringir as permissões de acesso no grupo de recursos, proporcionando segurança e facilidade de gerenciamento dos dados de backup. Observe a ID ARM do grupo de recursos onde você deseja colocar os instantâneos de 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âneos para poder disparar instantâneos e gerir os seus ciclos de vida. A identidade gerida atribuída pelo sistema do cofre é usada para conceder essas permissões. Use o comando az dataprotection backup-vault update para ativar a identidade gerida atribuída pelo sistema para o Cofre de 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 via RBAC ao vault (representado pelo vault MSI) e ao disco relevante e/ou ao RG do disco. Eles podem ser executados por meio do portal do Azure ou da CLI. Para atribuir permissões relacionadas, consulte os pré-requisitos para configurar o backup de discos gerenciados.
Preparar o pedido
Uma vez que todas as permissões relevantes são definidas, a configuração do backup é realizada em duas etapas. Primeiro, preparamos a solicitação relevante usando o grupo de recursos de cofre, política, disco e instantâneo, utilizando o comando az dataprotection backup-instance initialize. O comando initialize retornará um ficheiro JSON e, em seguida, precisará de atualizar o valor do grupo de recursos da captura instantânea. Em seguida, 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 ficheiro JSON e edite o ID do grupo de recursos de instantâneo sob a secção resource_group_id
.
{
"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"
}
]
}
}
}
}
Nota
O nome da instância de backup é gerado pelos clientes para que esse seja um valor exclusivo. Baseia-se no nome da fonte de dados e em um GUID exclusivo. Depois de listar as instâncias de backup, você deve ser capaz de 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á acionar um backup sob demanda se não quiser aguardar o agendamento da política.
Executar uma cópia de segurança a pedido
Liste todas as instâncias de backup em um vault usando o comando az dataprotection backup-instance list e, em seguida, busque a instância relevante usando o comando az dataprotection backup-instance show . Como alternativa, para cenários em escala, pode-se listar instâncias de backup em 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 marca ao acionar o backup. Para visualizar as regras na política, examine o JSON da política. No exemplo a seguir, a regra com o nome "BackupDaily"
e o nome da tag "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
}
Inicie um backup a pedido 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 tarefas
Monitorize todos os trabalhos usando o comando az dataprotection job list. Você pode listar todos os trabalhos e buscar um detalhe específico do trabalho.
Você também pode usar Az.ResourceGraph para acompanhar todos os trabalhos em todos os cofres de backup. Use o comando az dataprotection job list-from-resourcegraph para obter a tarefa relevante que pode estar distribuída por qualquer cofre de backup.
az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed
Próximos passos
Restaure o Disco Gerenciado usando o portal do Azure, Azure PowerShell, CLI do Azure.