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 que está se aproximando do status de Fim da Vida Útil (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.

Fluxo de trabalho de recuperação de pasta de arquivos

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:

  1. 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.

  2. No menu da máquina virtual, selecione Backup para abrir o painel Backup.

    Abra o item de backup do cofre dos Serviços de Recuperação

  3. No menu Painel de backup, selecione Recuperação de arquivos.

    Selecione Recuperação de Arquivos32

    O menu Recuperação de arquivos é aberto.

    Menu de recuperação de arquivos

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.

  1. 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.

  2. 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.

    Baixar Executável

    O Azure baixa o executável ou script para o computador local.

    Mensagem de download para o executável ou script

    Para executar o executável ou script como administrador, é sugerido que você salve o arquivo baixado em seu computador.

  3. 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.

    Palavra-passe gerada

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 ou AzureFrontDoor.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) ou AzureBackup marca de serviço no NSG
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.cn (Para Microsoft Azure operado pela 21Vianet) ou AzureBackup tag de serviço no NSG
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.us (Para Azure US Government) ou AzureBackup tag de serviço no NSG
    • https://pod01-rec2.GEO-NAME.backup.windowsazure.de (Para Azure Alemanha) ou AzureBackup 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.

A captura de tela mostra a saída executável para restauração de arquivos da VM.

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.

Volumes de recuperação anexados

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:

  1. Certifique-se de que o SO é WS 2012 ou superior.

  2. 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.

    Alterações na chave do Registro

- 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.

Menu de recuperação de arquivos do Linux

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:

  1. No arquivo /etc/iscsi/iscsid.conf, altere a configuração de:
    • node.conn[0].timeo.noop_out_timeout = 5 a node.conn[0].timeo.noop_out_timeout = 120
  2. 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.
  3. 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.

Menu de saída LVM do Linux

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

  1. Obter a lista exclusiva de nomes de grupos de volumes dos volumes físicos ou discos
  2. Em seguida, liste os volumes lógicos nesses grupos de volumes
  3. 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.

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:

Fluxo de recursos 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