Backup consistente com o aplicativo de VMs Linux do Azure usando o Backup do Azure

Este artigo descreve como criar backups consistentes com aplicativos de suas Máquinas Virtuais Linux para o Azure usando o Backup do Azure. Neste artigo, você configurará a estrutura de script para fazer backup de VMs Linux implantadas no Azure. Este artigo também fornece as informações de solução de problemas.

Quando você tira instantâneos de backup de VMs, a consistência do aplicativo significa que seus aplicativos são iniciados quando as VMs são inicializadas após serem restauradas. Como você pode imaginar, a consistência do aplicativo é extremamente importante. Para garantir que suas VMs Linux sejam consistentes com aplicativos, você pode usar a estrutura pré-escrita e pós-script do Linux para fazer backups consistentes com aplicativos. A estrutura pré-escrita e pós-script dá suporte a máquinas virtuais Linux implantadas pelo Azure Resource Manager. Os scripts para consistência de aplicativos não oferecem suporte a máquinas virtuais implantadas pelo Service Manager ou máquinas virtuais 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 de aplicativo nativas para descongelar as E/S, que permitem que o aplicativo retome as operações normais após o instantâneo da VM.

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. Verifique as seguintes permissões para esses arquivos:

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

    • Arquivo pré-script: Permissão "700". Por exemplo, apenas o usuário "root" deve ter permissões de "leitura", "gravação" e "execução" para este 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.

    • Permissão pós-script "700". Por exemplo, apenas o usuário "root" deve ter permissões de "leitura", "gravação" e "execução" para este 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 muito poder. 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 o Linux fsfreeze deve ser chamado enquanto você tira o instantâneo da VM para garantir a consistência do sistema de arquivos. 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 usando Fazer backup de máquinas virtuais do Azure em cofres dos Serviços de Recuperação.

Resolução de Problemas

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 arquivo Pluginhost , 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.
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 permissões "700" (ou seja, apenas "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 permissões "700" (ou seja, apenas "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