Partilhar via


Configurar o backup consistente de aplicações para VMs Azure Linux usando o Backup do Azure

Este artigo descreve como criar backups consistentes com aplicativos para máquinas virtuais (VMs) Linux implantadas no Azure usando o Backup do Azure. Ele aborda como configurar a estrutura de script e a solução de problemas.

Quando o Backup do Azure tira um 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 obter esse comportamento, use a estrutura de prescrição e postscript do Linux, que dá suporte a VMs Linux implantadas com o Gerenciador de Recursos do Azure. Esses scripts não funcionam para VMs implantadas com o System Center Service Manager ou o Windows.

Como funciona o quadro?

A estrutura fornece uma opção para executar pré-scripts e pós-scripts personalizados ao capturar instantâneos de VM. Os scripts de preparação são executados antes de criar um instantâneo da VM. Postscripts são executados imediatamente após você tirar o instantâneo da VM. Prescripts e postscripts oferecem flexibilidade para controlar o aplicativo e o ambiente ao tirar capturas instantâneas de VM.

Os scripts invocam as APIs das aplicações nativas, que inativam as E/S e descarregam o conteúdo em memória para o disco. Essas ações garantem que o snapshot seja consistente com o aplicativo. Os scripts de pós-processamento usam APIs de aplicações nativas para descongelar as E/S, permitindo que a aplicação retome as operações normais após o instantâneo da VM.

Configurar prescript e postscript para VMs Linux do Azure

Para configurar o prescript e o postscript, siga estes passos:

  1. Entre como o usuário raiz na VM Linux da qual 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 prescript e o postscript do seu 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: A permissão é 600. Por exemplo, apenas o usuário root deve ter permissões de leitura e gravação para esse arquivo, e nenhum usuário deve ter permissões de execução.
    • Arquivo pré-script: A 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 shell script, mas teoricamente, esse script pode gerar internamente ou referir-se a outros scripts, como um script Python.
    • Postscript: A 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 shell script, mas teoricamente, esse script pode gerar internamente ou referir-se a outros scripts, como um script Python.

    Importante

    O quadro confere aos utilizadores numerosos 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 poderá ser executado, o que resulta em uma falha do sistema de arquivos e backup inconsistente.

  5. Configure VMSnapshotScriptPluginConfig.json conforme descrito aqui:

    • pluginName: Deixe este campo como está, ou seus scripts podem não funcionar conforme o esperado.
    • preScriptLocation: Forneça o caminho completo do pré-script na VM para backup.
    • postScriptLocation: Forneça o caminho completo do postscript na VM para backup.
    • preScriptParams: Forneça os parâmetros opcionais que devem ser passados para o prescript. 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 devem ser passados para o postscript. 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 o pré-script deve ser tentado novamente caso ocorra um erro antes da interrupção. Zero significa apenas uma tentativa, e nenhuma nova tentativa se houver uma falha.
    • postScriptNoOfRetries: Defina o número de vezes que o postscript deve ser repetido se ocorrer um erro antes de terminar. Zero significa apenas uma tentativa, e nenhuma nova tentativa se houver uma falha.
    • timeoutInSeconds: Especifique tempos limite individuais para o prescript e o postscript (o valor máximo é 1800).
    • continueBackupOnFailure: defina esse valor como true se quiser que o Backup do Azure retorne a um backup consistente com o sistema de arquivos/consistente com falhas se o prescript ou postscript falhar. Definir esse valor como false falhará no backup se ocorrer uma falha de script. (Uma exceção é quando você tem uma VM de disco único que retorna ao backup consistente com falhas, independentemente dessa configuração.) Quando o continueBackupOnFailure valor é definido como false, se o backup falhar, a operação de backup é 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 Linux fsfreeze deve ser chamado enquanto você tira o instantâneo da VM para garantir a consistência do sistema de arquivos. Recomendamos que você mantenha essa configuração definida como true , a menos que seu aplicativo dependa da desativação do fsfreeze.
    • ScriptsExecutionPollTimeSeconds: Defina o tempo que a extensão tem para dormir entre cada sondagem para a execução do script. Por exemplo, se o valor for 2, a extensão verifica se a execução do prescript ou postscript é concluída a cada 2 segundos. O valor mínimo e máximo que 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 acionará o backup consistente com o aplicativo. Se o backup da VM não estiver configurado, configure-o seguindo as etapas em Fazer backup de máquinas virtuais do Azure em cofres dos Serviços de Recuperação.

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

Certifique-se de adicionar o log apropriado enquanto escreve o prescript e o postscript. Revise seus logs de script para corrigir quaisquer problemas de script. Se você ainda tiver problemas para executar scripts, consulte a tabela a seguir.

Erro Mensagem de erro Ação recomendada
Pre-ScriptExecutionFailed O prescript retornou um erro, portanto, o backup pode não ser consistente com o aplicativo. Observe os logs de falha do script para corrigir o problema.
Post-ScriptExecutionFailed O postscript retornou um erro que pode afetar o estado do aplicativo. Observe os logs de falha do script para corrigir o problema e verifique o estado do aplicativo.
Pre-ScriptNotFound O script predefinido não foi encontrado no local especificado no arquivo de configuração VMSnapshotScriptPluginConfig.json. Verifique se o prescript está presente no caminho especificado no arquivo de configuração para garantir o backup consistente com o aplicativo.
Post-ScriptNotFound O postscript não foi encontrado no local especificado no arquivo de configuração VMSnapshotScriptPluginConfig.json. Verifique se o postscript está presente no caminho especificado no arquivo de configuração para garantir o backup consistente com o aplicativo.
IncorrectPluginhostFile O Pluginhost arquivo, que vem com a VmSnapshotLinux extensão, está corrompido, portanto, o prescript e o postscript não podem ser executados e o backup não é consistente com o aplicativo. Desinstale a VmSnapshotLinux extensão. Ele é reinstalado automaticamente com o próximo backup para corrigir o problema.
IncorrectJSONConfigFile O arquivo VMSnapshotScriptPluginConfig.json está incorreto, portanto, o prescript e o postscript não podem ser executados e o backup não é consistente com o aplicativo. Baixe a cópia do GitHub e configure-a novamente.
InsufficientPermissionforPre-Script Para executar scripts, o usuário root deve ser o proprietário do arquivo. 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 é o proprietário do arquivo de script e que apenas o proprietário tem permissões de leitura, gravação e execução.
InsufficientPermissionforPost-Script Para executar scripts, o usuário root deve ser o proprietário do arquivo. 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 é o proprietário do arquivo de script e que apenas o proprietário tem permissões de leitura, gravação e execução.
Pre-ScriptTimeout A execução do prescript para backup consistente de aplicação ultrapassou o tempo limite. Verifique o script e aumente o tempo limite no arquivo VMSnapshotScriptPluginConfig.json localizado em /etc/azure.
Post-ScriptTimeout A execução do postscript para backup consistente com o aplicativo atingiu o tempo limite. Verifique o script e aumente o tempo limite no arquivo VMSnapshotScriptPluginConfig.json localizado em /etc/azure.