Recuperar ficheiros a partir da cópia de segurança de máquinas virtuais do Azure
Atenção
Este artigo faz referência ao CentOS, uma distribuição Linux com status de Fim de Vida (EOL). Por favor, considere o seu uso e planejamento de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.
O Backup do Azure fornece a capacidade de restaurar máquinas virtuais (VMs) do Azure e discos de backups de VM do Azure, também conhecidos como pontos de recuperação. Este artigo explica como recuperar arquivos e pastas de um backup de VM do Azure. A restauração de arquivos e pastas está disponível apenas para VMs do Azure implantadas usando o modelo do Gerenciador de Recursos e protegidas em um cofre dos Serviços de Recuperação.
Nota
Esse recurso está disponível para VMs do Azure implantadas usando o modelo do Gerenciador de Recursos e protegidas em um cofre dos Serviços de Recuperação. Não há suporte para a recuperação de arquivos de um backup de VM criptografado.
Passo 1: Gerar e baixar script para procurar e recuperar arquivos
Para restaurar arquivos ou pastas a partir do ponto de recuperação, vá para a máquina virtual e execute as seguintes etapas:
Entre no portal do Azure e, no painel esquerdo, selecione Máquinas virtuais. Na lista de máquinas virtuais, selecione a máquina virtual para abrir o painel dessa máquina virtual.
No menu da máquina virtual, selecione Backup para abrir o painel Backup.
No menu Painel de backup, selecione Recuperação de arquivos.
32
O menu Recuperação de arquivos é aberto.
Importante
Os usuários devem observar as limitações de desempenho desse recurso. Como apontado na seção de nota de rodapé da folha acima, esse recurso deve ser usado quando o tamanho total da recuperação é de 10 GB ou menos. As velocidades de transferência de dados esperadas são de cerca de 1 GB por hora.
No menu suspenso Selecionar ponto de recuperação, selecione o ponto de recuperação que contém os arquivos desejados. Por padrão, o ponto de recuperação mais recente já está selecionado.
Selecione Baixar executável (para VMs do Windows Azure) ou Baixar script (para VMs do Azure Linux, um script Python é gerado) para baixar o software usado para copiar arquivos do ponto de recuperação.
O Azure baixa o executável ou script para o computador local.
Para executar o executável ou script como administrador, é sugerido que você salve o arquivo baixado em seu computador.
O executável ou script é protegido por senha e requer uma senha. No menu Recuperação de Ficheiros, selecione o botão Copiar para carregar a palavra-passe na memória.
Etapa 2: Verifique se a máquina atende aos requisitos antes de executar o script
Depois que o script for baixado com êxito, verifique se você tem a máquina certa para executá-lo. A VM onde você está planejando executar o script não deve ter nenhuma das seguintes configurações sem suporte. Se isso acontecer, escolha uma máquina alternativa que atenda aos requisitos.
Discos dinâmicos
Não é possível executar o script executável na VM com qualquer uma das seguintes características: Escolha uma máquina alternativa
- Volumes que abrangem vários discos (volumes estendidos e distribuídos).
- Volumes tolerantes a falhas (volumes espelhados e RAID-5) em discos dinâmicos.
Espaços de Armazenamento do Windows
Não é possível executar o executável baixado na mesma VM de backup se a VM de backup tiver Espaços de Armazenamento do Windows. Escolha uma máquina alternativa.
Backups de máquinas virtuais com discos grandes
Se a máquina de backup tiver um grande número de discos (>16) ou discos grandes (> 4 TB cada), não é recomendado executar o script na mesma máquina para restauração, pois isso terá um impacto significativo na VM. Em vez disso, é recomendável ter uma VM separada apenas para recuperação de arquivos (VMs Azure VM D2v3) e, em seguida, desligá-la quando não for necessário.
Consulte os requisitos para restaurar arquivos de VMs de backup com disco grande:
SO Windows
SO Linux
Depois de escolher a máquina correta para executar o script ILR, verifique se ele atende aos requisitos do sistema operacional e aos requisitos de acesso.
Etapa 3: Requisitos do sistema operacional para executar o script com êxito
A VM na qual você deseja executar o script baixado deve atender aos seguintes requisitos.
Para o sistema operacional Windows
A tabela a seguir mostra a compatibilidade entre os sistemas operacionais do servidor e do computador. Ao recuperar ficheiros, não pode restaurá-los para uma versão anterior ou futura do sistema operativo. Por exemplo, não pode restaurar um ficheiro de uma VM do Windows Server 2016 para o Windows Server 2012 ou um computador com o Windows 8. Pode restaurar ficheiros de uma VM para o mesmo sistema operativo do servidor ou para o sistema operativo cliente compatível.
SO do Servidor | SO cliente compatível |
---|---|
Windows Server 2022 | Windows 11 e Windows 10 |
Windows Server 2019 | Windows 10 |
Windows Server 2016 | Windows 10 |
Windows Server 2012 R2 | Windows 8.1 |
Windows Server 2012 | Windows 8 |
Windows Server 2008 R2 | Windows 7 |
Para Linux OS
No Linux, o SO do computador utilizado para restaurar os ficheiros tem de suportar o sistema de ficheiros da máquina virtual protegida. Ao selecionar um computador para executar o script, verifique se o computador tem um SO compatível e utiliza uma das versões identificadas na seguinte tabela:
SO Linux | Versões |
---|---|
Ubuntu | 12.04 e posterior |
CentOS | 6.5 e posterior |
RHEL | 6.7 e posterior |
Debian | 7 e posterior |
Oracle Linux | 6.4 e posterior |
SLES | 12 e posterior |
openSUSE | 42.2 e posterior |
Componentes adicionais
O script também requer que os componentes do Python e Bash sejam executados e ligados de forma segura ao ponto de recuperação.
Componente | Versão | Tipo de SO |
---|---|---|
bash | 4 e posterior | Linux |
Python | 2.6.6 e posterior | Linux |
.NET | 4.6.2 e posterior | Windows |
TLS | 1.2 deve ser suportado | Linux/ Windows |
Além disso, certifique-se de ter a máquina certa para executar o script ILR e que ele atenda aos requisitos de acesso.
Etapa 4: Requisitos de acesso para executar o script com êxito
Se você executar o script em um computador com acesso restrito, verifique se há acesso a:
download.microsoft.com
ouAzureFrontDoor.FirstParty
etiqueta de serviço no NSG na porta 443 (saída)- URLs do Serviço de Recuperação (GEO-NAME refere-se à região onde reside o cofre dos Serviços de Recuperação) na porta 3260 (saída)
https://pod01-rec2.GEO-NAME.backup.windowsazure.com
(Para regiões públicas do Azure) ouAzureBackup
marca de serviço no NSGhttps://pod01-rec2.GEO-NAME.backup.windowsazure.cn
(Para Microsoft Azure operado pela 21Vianet) ouAzureBackup
tag de serviço no NSGhttps://pod01-rec2.GEO-NAME.backup.windowsazure.us
(Para Azure US Government) ouAzureBackup
tag de serviço no NSGhttps://pod01-rec2.GEO-NAME.backup.windowsazure.de
(Para Azure Alemanha) ouAzureBackup
marca de serviço no NSG
- Resolução DNS pública na porta 53 (saída)
Nota
Os proxies podem não suportar o protocolo iSCSI ou dar acesso à porta 3260. Portanto, é altamente recomendável executar este script em máquinas que têm acesso direto, conforme necessário acima, e não nas máquinas que redirecionarão para proxy.
Nota
No caso, a VM de backup é Windows, então o geo-nome será mencionado na senha gerada.
Por exemplo, se a senha gerada for ContosoVM_wcus_GUID, o geo-name será wcus e a URL será: <https://pod01-rec2.wcus.backup.windowsazure.com
>
Se a VM de backup for Linux, o arquivo de script baixado na etapa 1 acima terá o nome geográfico no nome do arquivo. Use esse nome geográfico para preencher o URL. O nome do script baixado começará com: 'VMname'_'geoname'_'GUID'.
Assim, por exemplo, se o nome do arquivo do script for ContosoVM_wcus_12345678, o nome geográfico será wcus e a URL será: <https://pod01-rec2.wcus.backup.windowsazure.com
>
Para Linux, o script requer componentes 'open-iscsi' e 'lshw' para se conectar ao ponto de recuperação. Se os componentes não existirem no computador onde o script é executado, o script pedirá permissão para instalar os componentes. Forneça consentimento para instalar os componentes necessários.
O acesso a download.microsoft.com
é necessário para baixar componentes usados para construir um canal seguro entre a máquina onde o script é executado e os dados no ponto de recuperação.
Além disso, certifique-se de ter a máquina certa para executar o script ILR e que ele atenda aos requisitos do sistema operacional.
Etapa 5: Executando o script e identificando volumes
Nota
O script é gerado apenas em inglês e não está localizado. Portanto, pode exigir que a localidade do sistema esteja em inglês para que o script seja executado corretamente
Para Windows
Depois de atender a todos os requisitos listados nas Etapas 2, 3 e 4, copie o script do local baixado (geralmente a pasta Downloads), consulte a Etapa 1 para saber como gerar e baixar o script. Clique com o botão direito do mouse no arquivo executável e execute-o com credenciais de administrador. Quando solicitado, digite a senha ou cole a senha da memória e pressione Enter. Depois que a senha válida é inserida, o script se conecta ao ponto de recuperação.
Quando você executa o executável, o sistema operacional monta os novos volumes e atribui letras de unidade. Pode utilizar o Explorador do Windows ou o Explorador de Ficheiros para procurar essas unidades. As letras de unidade atribuídas aos volumes podem não ser as mesmas letras da máquina virtual original. No entanto, o nome do volume é preservado. Por exemplo, se o volume na máquina virtual original era "Disco de Dados (E:\
)", esse volume pode ser anexado no computador local como "Disco de Dados ('Qualquer letra':\
). Navegue por todos os volumes mencionados na saída do script até encontrar seus arquivos ou pasta.
Para VMs de backup com discos grandes (Windows)
Se o processo de recuperação de arquivos travar depois de executar o script de restauração de arquivos (por exemplo, se os discos nunca forem montados ou forem montados, mas os volumes não aparecerem), execute as seguintes etapas:
Certifique-se de que o SO é WS 2012 ou superior.
Verifique se as chaves do Registro estão definidas como sugerido abaixo no servidor de restauração e certifique-se de reinicializar o servidor. O número ao lado do GUID pode variar de 0001-0005. No exemplo a seguir, é 0004. Navegue pelo caminho da chave do Registro até a seção de parâmetros.
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Disk\TimeOutValue – change this from 60 to 2400 secs.
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0003\Parameters\SrbTimeoutDelta – change this from 15 to 2400 secs.
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0003\Parameters\EnableNOPOut – change this from 0 to 1
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4d36e97b-e325-11ce-bfc1-08002be10318}\0003\Parameters\MaxRequestHoldTime - change this from 60 to 2400 secs.
Para Linux
Depois de atender a todos os requisitos listados na Etapa 2, Etapa 3 e Etapa 4, gere um script Python para máquinas Linux. Consulte a Etapa 1 para saber como gerar e baixar scripts. Faça o download do script e copie-o para o servidor Linux relevante/compatível. Talvez seja necessário modificar as permissões para executá-lo com chmod +x <python file name>
o . Em seguida, execute o arquivo Python com ./<python file name>
.
No Linux, os volumes do ponto de recuperação são montados na pasta onde o script é executado. Os discos anexados, volumes e os caminhos de montagem correspondentes são mostrados de acordo. Esses caminhos de montagem são visíveis para os usuários que têm acesso ao nível da raiz. Navegue pelos volumes mencionados na saída do script.
Para VMs de backup com discos grandes (Linux)**
Se o processo de recuperação de arquivos travar depois de executar o script de restauração de arquivos (por exemplo, se os discos nunca forem montados ou forem montados, mas os volumes não aparecerem), execute as seguintes etapas:
- No arquivo /etc/iscsi/iscsid.conf, altere a configuração de:
node.conn[0].timeo.noop_out_timeout = 5
anode.conn[0].timeo.noop_out_timeout = 120
- Depois de fazer as alterações acima, execute novamente o script. Se houver falhas transitórias, certifique-se de que haja um intervalo de 20 a 30 minutos entre as reexecuções para evitar picos sucessivos de solicitações que afetem a preparação do alvo. Esse intervalo entre as reexecuções garantirá que o destino esteja pronto para conexão a partir do script.
- Após a recuperação de arquivos, certifique-se de voltar ao portal e selecionar Desmontar discos para pontos de recuperação onde não foi possível montar volumes. Essencialmente, esta etapa limpará quaisquer processos/sessões existentes e aumentará a chance de recuperação.
Matrizes LVM/RAID (para VMs Linux)
No Linux, o LVM (Logical Volume Manager) e/ou matrizes RAID de software são usados para gerenciar volumes lógicos em vários discos. Se a VM Linux protegida usar LVM e/ou matrizes RAID, você não poderá executar o script na mesma VM.
Em vez disso, execute o script em qualquer outra máquina com um sistema operacional compatível e que suporte o sistema de arquivos da VM protegida.
A saída de script a seguir exibe os discos LVM e/ou RAID Arrays e os volumes com o tipo de partição.
Para colocar essas partições online, execute os comandos nas seções a seguir.
Para partições LVM
Depois que o script é executado, as partições LVM são montadas no(s) volume(s) físico(s)/disco(s) especificado(s) na saída do script. O processo consiste em
- Obter a lista exclusiva de nomes de grupos de volumes dos volumes físicos ou discos
- Em seguida, liste os volumes lógicos nesses grupos de volumes
- Em seguida, monte os volumes lógicos para um caminho desejado.
Listando nomes de grupos de volumes de volumes físicos
Para listar os nomes dos grupos de volumes:
sudo pvs -o +vguuid
Este comando listará todos os volumes físicos (incluindo os presentes antes de executar o script), seus nomes de grupo de volumes correspondentes e os IDs de usuário exclusivos (UUIDs) do grupo de volumes. Um exemplo de saída do comando é mostrado abaixo.
PV VG Fmt Attr PSize PFree VG UUID
/dev/sda4 rootvg lvm2 a-- 138.71g 113.71g EtBn0y-RlXA-pK8g-de2S-mq9K-9syx-B29OL6
/dev/sdc APPvg_new lvm2 a-- <75.00g <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5
/dev/sde APPvg_new lvm2 a-- <75.00g <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5
/dev/sdf datavg_db lvm2 a-- <1.50t <396.50g dhWL1i-lcZS-KPLI-o7qP-AN2n-y2f8-A1fWqN
/dev/sdd datavg_db lvm2 a-- <1.50t <396.50g dhWL1i-lcZS-KPLI-o7qP-AN2n-y2f8-A1fWqN
A primeira coluna (PV) mostra o volume físico, as colunas subsequentes mostram o nome do grupo de volumes relevante, formato, atributos, tamanho, espaço livre e a ID exclusiva do grupo de volumes. A saída do comando mostra todos os volumes físicos. Consulte a saída do script e identifique os volumes relacionados ao backup. No exemplo acima, a saída do script teria mostrado /dev/sdf e /dev/sdd. E assim, o grupo de volume datavg_db pertence ao script e o grupo de volume Appvg_new pertence à máquina. A ideia final é garantir que um nome de grupo de volumes exclusivo tenha um ID exclusivo.
Grupos de volumes duplicados
Há cenários em que os nomes de grupos de volumes podem ter 2 UUIDs depois de executar o script. Isso significa que os nomes do grupo de volumes na máquina onde o script é executado e na VM de backup são os mesmos. Em seguida, precisamos renomear os grupos de volumes de VMs de backup. Dê uma olhada no exemplo abaixo.
PV VG Fmt Attr PSize PFree VG UUID
/dev/sda4 rootvg lvm2 a-- 138.71g 113.71g EtBn0y-RlXA-pK8g-de2S-mq9K-9syx-B29OL6
/dev/sdc APPvg_new lvm2 a-- <75.00g <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5
/dev/sde APPvg_new lvm2 a-- <75.00g <7.50g njdUWm-6ytR-8oAm-8eN1-jiss-eQ3p-HRIhq5
/dev/sdg APPvg_new lvm2 a-- <75.00g 508.00m lCAisz-wTeJ-eqdj-S4HY-108f-b8Xh-607IuC
/dev/sdh APPvg_new lvm2 a-- <75.00g 508.00m lCAisz-wTeJ-eqdj-S4HY-108f-b8Xh-607IuC
/dev/sdm2 rootvg lvm2 a-- 194.57g 127.57g efohjX-KUGB-ETaH-4JKB-MieG-EGOc-XcfLCt
A saída do script teria mostrado /dev/sdg, /dev/sdh, /dev/sdm2 conforme anexado. Assim, os nomes VG correspondentes são Appvg_new e rootvg. Mas os mesmos nomes também estão presentes na lista VG da máquina. Podemos verificar se um nome VG tem dois UUIDs.
Agora precisamos renomear nomes VG para volumes baseados em script, por exemplo: /dev/sdg, /dev/sdh, /dev/sdm2. Para renomear o grupo de volumes, use o seguinte comando
sudo vgimportclone -n rootvg_new /dev/sdm2
sudo vgimportclone -n APPVg_2 /dev/sdg /dev/sdh
Agora temos todos os nomes VG com IDs exclusivos.
Grupos de volumes ativos
Verifique se os grupos de volumes correspondentes aos volumes do script estão ativos. O comando a seguir é usado para exibir grupos de volumes ativos. Verifique se os grupos de volumes relacionados ao script estão presentes nesta lista.
sudo vgdisplay -a
Caso contrário, ative o grupo de volumes usando o seguinte comando.
sudo vgchange –a y <volume-group-name>
Listando volumes lógicos em grupos de volumes
Depois de obter a lista exclusiva e ativa de VGs relacionados ao script, os volumes lógicos presentes nesses grupos de volumes podem ser listados usando o seguinte comando.
sudo lvdisplay <volume-group-name>
Este comando exibe o caminho de cada volume lógico como 'Caminho LV'.
Montagem de volumes lógicos
Para montar os volumes lógicos no caminho de sua escolha:
sudo mount <LV path from the lvdisplay cmd results> </mountpath>
Aviso
Não use 'mount -a'. Este comando monta todos os dispositivos descritos em '/etc/fstab'. Isso pode significar que dispositivos duplicados podem ser montados. Os dados podem ser redirecionados para dispositivos criados por um script, que não persistem os dados e, portanto, podem resultar em perda de dados.
Para matrizes RAID
O comando a seguir exibe detalhes sobre todos os discos raid:
sudo mdadm –detail –scan
O disco RAID relevante é exibido como /dev/mdm/<RAID array name in the protected VM>
Use o comando mount se o disco RAID tiver volumes físicos:
sudo mount [RAID Disk Path] [/mountpath]
Se o disco RAID tiver outro LVM configurado, use o procedimento anterior para partições LVM, mas use o nome do volume no lugar do nome do disco RAID.
Passo 6: Fechar a ligação
Depois de identificar os arquivos e copiá-los para um local de armazenamento local, remova (ou desmonte) as unidades adicionais. Para desmontar as unidades, no menu Recuperação de Arquivos no portal do Azure, selecione Desmontar Discos.
Depois que os discos forem desmontados, você receberá uma mensagem. Pode levar alguns minutos para que a conexão seja atualizada para que você possa remover os discos.
No Linux, depois que a conexão com o ponto de recuperação é cortada, o sistema operacional não remove os caminhos de montagem correspondentes automaticamente. Os caminhos de montagem existem como volumes "órfãos" e são visíveis, mas lançam um erro quando você acessa/grava os arquivos. Eles podem ser removidos manualmente executando o script com o parâmetro 'clean' (python scriptName.py clean
). O script, quando executado, identifica quaisquer volumes existentes de quaisquer pontos de recuperação anteriores e os limpa mediante consentimento.
Nota
Certifique-se de que a conexão é fechada depois que os arquivos necessários são restaurados. Isso é importante, especialmente no cenário em que a máquina na qual o script é executado também está configurada para backup. Se a conexão ainda estiver aberta, o backup subsequente pode falhar com o erro "UserErrorUnableToOpenMount". Isso acontece porque as unidades/volumes montados são considerados disponíveis e, quando acessados, podem falhar porque o armazenamento subjacente, ou seja, o servidor de destino iSCSI pode não estar disponível. A limpeza da conexão removerá essas unidades/volumes e, portanto, elas não estarão disponíveis durante o backup.
Segurança
Esta seção discute as várias medidas de segurança tomadas para a implementação da recuperação de arquivos de backups de VM do Azure.
Fluxo de recursos
Esse recurso foi criado para acessar os dados da VM sem a necessidade de restaurar os discos inteiros da VM ou da VM e com o número mínimo de etapas. O acesso aos dados da VM é fornecido por um script (que monta o volume de recuperação quando executado como mostrado abaixo) e forma a pedra angular de todas as implementações de segurança:
Implementações de segurança
Selecione Ponto de recuperação (quem pode gerar script)
O script fornece acesso aos dados da VM, por isso é importante regular quem pode gerá-los em primeiro lugar. Você precisa entrar no portal do Azure e estar autorizado pelo Azure RBAC a gerar o script.
A recuperação de arquivos precisa do mesmo nível de autorização necessário para a restauração de VM e restauração de discos. Em outras palavras, somente usuários autorizados podem visualizar os dados da VM podem gerar o script.
O script gerado é assinado com o certificado oficial da Microsoft para o serviço de Backup do Azure. Qualquer adulteração do script significa que a assinatura está quebrada, e qualquer tentativa de executar o script é destacada como um risco potencial pelo sistema operacional.
Montar volume de recuperação (quem pode executar script)
Somente um administrador pode executar o script e ele deve ser executado no modo elevado. O script executa apenas um conjunto de etapas pré-geradas e não aceita entrada de nenhuma fonte externa.
Para executar o script, é necessária uma senha que só é mostrada ao usuário autorizado no momento da geração do script no portal do Azure ou PowerShell/CLI. Isso é para garantir que o usuário autorizado que baixa o script também seja responsável por executá-lo.
Procurar ficheiros e pastas
Para procurar arquivos e pastas, o script usa o iniciador iSCSI na máquina e se conecta ao ponto de recuperação configurado como um destino iSCSI. Aqui você pode imaginar cenários em que se está tentando imitar/falsificar qualquer um dos componentes.
Usamos um mecanismo de autenticação CHAP mútua para que cada componente autentique o outro. Isso significa que é extremamente difícil para um iniciador falso se conectar ao destino iSCSI e para um destino falso ser conectado à máquina onde o script é executado.
O fluxo de dados entre o serviço de recuperação e a máquina é protegido pela construção de um túnel TLS seguro sobre TCP (o TLS 1.2 deve ser suportado na máquina onde o script é executado).
Qualquer ACL (Lista de Controle de Acesso) de arquivo presente na VM pai/de backup também é preservada no sistema de arquivos montado.
O script dá acesso somente leitura a um ponto de recuperação e é válido por apenas 12 horas. Se desejar remover o acesso anteriormente, entre no portal do Azure/PowerShell/CLI e execute a desmontagem de discos para esse ponto de recuperação específico. O script será invalidado imediatamente.
Próximos passos
- Saiba como restaurar arquivos via PowerShell
- Saiba como restaurar ficheiros através da CLI do Azure
- Depois que a VM for restaurada, saiba como gerenciar backups