Partilhar via


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

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

Quando o Backup do Azure tira 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 Linux implantadas pelo Azure Resource Manager. No entanto, esses scripts não funcionam para VMs do Service Manager ou do Windows.

Como funciona o quadro?

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 imediatamente 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. Os pré-scripts e pós-scripts fornecem a flexibilidade para controlar seu aplicativo e ambiente, enquanto você tira instantâneos da 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 snapshot seja consistente com o aplicativo. Os pós-scripts usam APIs nativas da aplicação para descongelar os I/O, permitindo que a aplicação retome as operações normais após o instantâneo da máquina virtual.

Configurar pré-script e post-script para VM Linux do Azure

Para configurar Prescript e post-script, 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 pré-script e o pós-script para 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: Permissão 600. Por exemplo, somente 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: Permission 700. Por exemplo, somente o usuário root 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 se referir a outros scripts, como um script Python.

    • Pós-script Permissão 700. Por exemplo, somente o usuário root 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 se referir a outros scripts, como um script Python.

    Importante

    A estrutura dá aos usuários poder numeroso. Proteja a estrutura e garanta que apenas o usuário root 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 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 como esperado.

    • preScriptLocation: Forneça o caminho completo do prescript na VM cujo backup será feito.

    • postScriptLocation: forneça o caminho completo do post-script na VM cujo backup será feito.

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

    • postScriptParams: Fornece os parâmetros opcionais que precisam ser passados para o post-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 o prescritivo deve ser repetido se houver algum erro antes de encerrar. Zero significa apenas uma tentativa e nenhuma nova tentativa se houver uma falha.

    • postScriptNoOfRetries: defina o número de vezes que o post-script deve ser repetido se houver algum erro antes de encerrar. Zero significa apenas uma tentativa e nenhuma nova tentativa se houver uma falha.

    • timeoutInSeconds: especifique tempos limite individuais para o prescript e o post-script (o valor máximo pode ser 1800).

    • continueBackupOnFailure: defina esse valor como true se quiser que o Backup do Azure retorne a um backup consistente do sistema de arquivos/com falhas se o pré-script ou o pós-script falharem. Definir isso como false falhará no backup se houver uma falha de script (exceto quando você tiver uma VM de disco único que recorra ao backup consistente com falhas, independentemente dessa configuração). Quando o valor continueBackupOnFailure é 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 deve ser chamado o comando fsfreeze do Linux ao efetuar o instantâneo da VM para garantir a consistência do sistema de ficheiros. Recomendamos manter 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 e a execução do script. Por exemplo, se o valor for 2, a extensão verificará se a execução do script pré/pós foi 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 utilizando a opção "Fazer backup de máquinas virtuais do Azure para 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 ao escrever seu prescript e post-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 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 post-script 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 pré-script não foi encontrado no local especificado no arquivo de configuração VMSnapshotScriptPluginConfig.json . Certifique-se de que o prescript esteja presente no caminho especificado no arquivo de configuração para garantir o backup consistente com o aplicativo.
Post-ScriptNotFound O post-script não foi encontrado no local especificado no arquivo de configuração VMSnapshotScriptPluginConfig.json . Verifique se o post-script 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 extensão VmSnapshotLinux, está corrompido, portanto, pré-script e 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.
IncorrectJSONConfigFile O arquivo VMSnapshotScriptPluginConfig.json está incorreto, portanto, o pré-script e o post-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 root 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 root é 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 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 root é 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 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.
Post-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óximos passos

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