Compartilhar via


Configurar o backup consistente com o aplicativo para VMs Linux do Azure usando o Backup do Azure

Este artigo descreve como criar backups consistentes com o aplicativo para VMs Linux implantadas no Azure usando o Backup do Azure. Ele aborda a configuração da estrutura de script e a solução de problemas.

Quando o Backup do Azure tira o instantâneo de uma VM, a consistência do aplicativo garante que os aplicativos sejam iniciados corretamente após a restauração da VM. Para conseguir isso, use a estrutura de pré-script e pós-script do Linux, que dá suporte a VMs do Linux implantadas pelo Azure Resource Manager. No entanto, esses scripts não funcionam para VMs do Windows ou implantadas pelo Service Manager.

Como funciona a estrutura?

A estrutura fornece uma opção para executar pré-scripts e pós-scripts personalizados enquanto você tira instantâneos de VM. Os pré-scripts são executados pouco antes de você tirar o instantâneo da VM e os pós-scripts são executados imediatamente após você tirar o instantâneo da VM. Pré-scripts e pós-scripts fornecem a flexibilidade de controlar seu aplicativo e ambiente, enquanto você tira instantâneos de VM.

Os pré-scripts invocam APIs de aplicativos nativos, que desativam as E/S e liberam o conteúdo na memória para o disco. Essas ações garantem que o instantâneo seja consistente com o aplicativo. Os scripts pós-processamento usam APIs de aplicativo nativo para restabelecer os IOs, o que permite que o aplicativo retome as operações normais após a captura instantânea da VM.

Configurar pré-script e pós-script para VM Linux do Azure

Para configurar o Prescript e o pós-script, siga estas etapas:

  1. Entre como o usuário raiz da VM do Linux que você deseja fazer backup.

  2. No GitHub, baixe VMSnapshotScriptPluginConfig.json e copie-o para a pasta /etc/azure para todas as VMs das quais você deseja fazer backup. Se a pasta /etc/azure não existir, crie-a.

  3. Copie o pré-script e o pós-script do aplicativo em todas as VMs das quais você planeja fazer backup. Você pode copiar os scripts para qualquer local na VM. Certifique-se de atualizar o caminho completo dos arquivos de script no arquivo VMSnapshotScriptPluginConfig.json .

  4. Para usar os seguintes arquivos, verifique se você tem as permissões correspondentes:

    • VMSnapshotScriptPluginConfig.json: Permissão 600. Por exemplo, apenas o usuário raiz deve ter permissões de leitura e gravação para esse arquivo e nenhum usuário deve ter permissões de execução .

    • Arquivo de pré-script: Permissão 700. Por exemplo, somente o usuário raiz deve ter permissões de leitura, gravação e execução para esse arquivo. Espera-se que o arquivo seja um script de shell, mas teoricamente esse script pode gerar internamente ou se referir a outros scripts, como um script Python.

    • Pós-escrito Permissão 700. Por exemplo, somente o usuário raiz deve ter permissões de leitura, gravação e execução para esse arquivo. Espera-se que o arquivo seja um script de shell, mas teoricamente esse script pode gerar internamente ou se referir a outros scripts, como um script Python.

    Importante

    A estrutura dá aos usuários vários poderes. Proteja a estrutura e garanta que apenas o usuário raiz tenha acesso a arquivos JSON e de script críticos. Se os requisitos não forem atendidos, o script não será executado, o que resultará em uma falha do sistema de arquivos e um backup inconsistente.

  5. Configure VMSnapshotScriptPluginConfig.json conforme descrito aqui:

    • pluginName: deixe esse campo como está ou seus scripts podem não funcionar conforme o esperado.

    • preScriptLocation: forneça o caminho completo da prescrição na VM que será submetida a backup.

    • postScriptLocation: Forneça o caminho completo do pós-script na máquina virtual que fará backup.

    • preScriptParams: forneça os parâmetros opcionais que precisam ser passados para a prescrição. Todos os parâmetros devem estar entre aspas. Se você usar vários parâmetros, separe os parâmetros com uma vírgula.

    • postScriptParams: forneça os parâmetros opcionais que precisam ser passados para o pós-script. Todos os parâmetros devem estar entre aspas. Se você usar vários parâmetros, separe os parâmetros com uma vírgula.

    • preScriptNoOfRetries: defina o número de vezes que a prescrição deve ser repetida se houver algum erro antes de encerrar. Zero significa apenas uma tentativa e nenhuma repetição se houver uma falha.

    • postScriptNoOfRetries: defina o número de vezes que o pós-script deve ser repetido se houver algum erro antes de terminar. Zero significa apenas uma tentativa e nenhuma repetição se houver uma falha.

    • timeoutInSeconds: Especifique tempos limite individuais para a pré-escrita e a pós-escrita (o valor máximo pode ser 1800).

    • continueBackupOnFailure: defina esse valor como true se quiser que o Backup do Azure volte para um backup consistente do sistema de arquivos/consistente com falha se o pré-script ou pós-script falhar. Definir isso como falso falhará no backup se houver uma falha de script (exceto quando você tiver uma VM de disco único que retorne ao backup consistente com falhas, independentemente dessa configuração). Quando o valor continueBackupOnFailure for definido como false, se o backup falhar, a operação de backup será tentada novamente com base em uma lógica de repetição no serviço (para o número estipulado de tentativas).

    • fsFreezeEnabled: especifique se o fsfreeze do Linux deve ser chamado enquanto você está tirando o instantâneo da VM para garantir a consistência do sistema de arquivos. É recomendável manter essa configuração definida como true, a menos que seu aplicativo tenha uma dependência de desativar o fsfreeze.

    • ScriptsExecutionPollTimeSeconds: defina o tempo que a extensão tem que dormir entre cada sondagem para a execução do script. Por exemplo, se o valor for 2, a extensão verificará se a execução de script pré-/pós-processamento foi concluída a cada 2 segundos. O valor mínimo e máximo que ele pode levar é 1 e 5, respectivamente. O valor deve ser estritamente um inteiro.

  6. A estrutura de script agora está configurada. Se o backup da VM já estiver configurado, o próximo backup invocará os scripts e disparará o backup consistente com o aplicativo. Se o backup da VM não estiver configurado, configure-o usando Fazer backup de máquinas virtuais do Azure em cofres dos Serviços de Recuperação.

Solucionar problemas de erros de backup consistentes com o aplicativo da VM Linux do Azure

Certifique-se de adicionar o log apropriado ao escrever sua pré-escrita e pós-script e revise seus logs de script para corrigir quaisquer problemas de script. Se você ainda tiver problemas para executar scripts, consulte a tabela a seguir para obter mais informações.

Erro Mensagem de erro Ação recomendada
Pre-ScriptExecutionFailed A prescrição retornou um erro, portanto, o backup pode não ser consistente com o aplicativo. Examine os logs de falha do seu script para corrigir o problema.
Post-ScriptExecutionFailed O pós-script retornou um erro que pode afetar o estado do aplicativo. Examine os logs de falha do script para corrigir o problema e verifique o estado do aplicativo.
Pré-ScriptNotFound A prescrição não foi encontrada no local especificado no arquivo de configuraçãoVMSnapshotScriptPluginConfig.json . Verifique se a prescrição está presente no caminho especificado no arquivo de configuração para garantir o backup consistente com o aplicativo.
Pós-ScriptNotFound O pós-script não foi encontrado no local especificado no arquivo de configuraçãoVMSnapshotScriptPluginConfig.json . Verifique se o pós-script está presente no caminho especificado no arquivo de configuração para garantir o backup consistente com o aplicativo.
Arquivo de host incorreto O Pluginhost arquivo, que vem com a extensão VmSnapshotLinux, está corrompido, portanto, o pré-script e o pós-script não podem ser executados e o backup não será consistente com o aplicativo. Desinstale a extensão VmSnapshotLinux e ela será reinstalada automaticamente com o próximo backup para corrigir o problema.
Arquivo IncorrectJSONConfig O arquivo VMSnapshotScriptPluginConfig.json está incorreto, portanto, o pré-script e o pós-script não podem ser executados e o backup não será consistente com o aplicativo. Baixe a cópia do GitHub e configure-a novamente.
InsufficientPermissionforPre-Script Para executar scripts, o usuário raiz deve ser o proprietário do arquivo e o arquivo deve ter 700 permissões (ou seja, apenas o proprietário deve ter permissões de leitura, gravação e execução ). Certifique-se de que o usuário raiz seja o proprietário do arquivo de script e que apenas o proprietário tenha permissões de leitura, gravação e execução .
InsufficientPermissionforPost-Script Para executar scripts, o usuário raiz deve ser o proprietário do arquivo e o arquivo deve ter 700 permissões (ou seja, apenas o proprietário deve ter permissões de leitura, gravação e execução ). Certifique-se de que o usuário raiz seja o proprietário do arquivo de script e que apenas o proprietário tenha permissões de leitura, gravação e execução .
Pré-scriptTimeout A execução do pré-script de backup consistente com o aplicativo expirou. Verifique o script e aumente o tempo limite no arquivo VMSnapshotScriptPluginConfig.json localizado em /etc/azure.
Pós-ScriptTimeout A execução dos pós-scripts de backup consistentes com o aplicativo atingiu o tempo limite. Verifique o script e aumente o tempo limite no arquivo VMSnapshotScriptPluginConfig.json localizado em /etc/azure.

Próximas etapas

Configurar o backup de VM em um cofre dos Serviços de Recuperação