Compartilhar via


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

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

Quando você obtém instantâneos de backup de VMs, a consistência do aplicativo significa que seus aplicativos começam quando as VMs são inicializados após serem restaurados. Como você pode imaginar, a consistência com o aplicativo é extremamente importante. Para garantir que as VMs do Linux sejam consistentes com o aplicativo, você pode usar a estrutura de pré-script e pós-script do Linux para fazer backups consistentes com o aplicativo. A estrutura de pré-script e pós-script dá suporte a máquinas virtuais Linux implantadas pelo Azure Resource Manager. Scripts para consistência de aplicativos não oferecem suporte a máquinas virtuais implantadas Service Manager ou máquinas virtuais do Windows.

Como funciona a estrutura

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

Os pré-scripts invocam APIs de aplicativo nativas, que fazem quiesce de E/S e liberam o conteúdo na memória para o disco. Essas ações garantem que o instantâneo seja consistente com aplicativo. Os pós-scripts usam APIs de aplicativo nativo para descongelar o iOS, o que permite ao aplicativo retomar as operações normais após o instantâneo da VM.

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

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

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

  2. No GitHub, baixe VMSnapshotScriptPluginConfig.json e copie-o para a pasta /etc/azure em todas as VMs de que 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 em qualquer local na VM. Certifique-se de atualizar o caminho completo dos arquivos de script no arquivo VMSnapshotScriptPluginConfig.json.

  4. Verifique se estas permissões existem para os arquivos:

    • 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, apenas 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, na teoria, esse script pode gerar internamente ou se referir a outros scripts, como um script python.

    • Pós-script permissão "700". Por exemplo, apenas 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, na teoria, esse script pode gerar internamente ou se referir a outros scripts, como um script Python.

    Importante

    A estrutura concede aos usuários muito poder. Proteja a estrutura e garanta que somente o usuário “raiz” tenha acesso aos arquivos de script e JSON 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 em um backup inconsistente.

  5. Configure o VMSnapshotScriptPluginConfig.json conforme descrito aqui:

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

    • preScriptLocation: forneça o caminho completo do pré-script na VM que passará pelo backup.

    • postScriptLocation: forneça o caminho completo do pós-script na VM que passará pelo backup.

    • preScriptParams: forneça os parâmetros opcionais que precisam ser passados para o pré-script. Todos os parâmetros devem estar entre aspas. Se usar vários parâmetros, separe-os 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 usar vários parâmetros, separe-os com uma vírgula.

    • preScriptNoOfRetries: defina o número de vezes que o pré-script deve ser repetido se houver algum erro antes de terminar. 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 caso haja qualquer erro antes do encerramento. Zero significa apenas uma tentativa e nenhuma repetição se houver uma falha.

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

    • continueBackupOnFailure: defina este valor como true se você quiser que o Backup do Azure faça fallback para um backup consistente com sistema de arquivos/consistente com falhas do sistema se o pré-script ou pós-script falhar. Definir isso como false falhará no backup se houver uma falha de script (exceto quando você tiver uma VM de disco único que retorne ao backup consistente com falha, independentemente dessa configuração). Quando o valor de 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 Linux fsfreeze deve ser chamado durante a obtenção do instantâneo da VM para garantir a consistência do sistema de arquivos. Recomendamos manter essa configuração como true, a menos que seu aplicativo tenha dependência na desabilitação do fsfreeze.

    • ScriptsExecutionPollTimeSeconds: defina a hora em que a extensão deve ser suspensa entre cada sondagem para a execução do script. Por exemplo, se o valor for 2, a extensão verificará se a execução do script anterior/posterior 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 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.

Solução de problemas

Adicione o log apropriado ao escrever seu pré-script e pós-script e examine os logs de script para corrigir problemas de script. Se você ainda tiver problemas para executar scripts, veja a tabela a seguir para obter mais informações.

Erro Mensagem de erro Ação recomendada
Pre-ScriptExecutionFailed O pré-script retornou um erro, portanto, o backup pode não ser consistente com o aplicativo. Examine os logs de falha do 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 verificar 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 pré-script esteja presente no caminho especificado no arquivo de configuração para garantir o backup consistente com o aplicativo.
Post-ScriptNotFound O pós-script não foi encontrado no local especificado no arquivo de configuração VMSnapshotScriptPluginConfig.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.
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á automaticamente instalada novamente com o próximo backup para corrigir o problema.
IncorrectJSONConfigFile 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 permissões "700" (ou seja, somente o proprietário deve ter permissões de "leitura", "gravação" e "execução"). Verifique se o usuário "raiz" é o "proprietário" do arquivo de script e se somente o "proprietário" tem 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 permissões "700" (ou seja, somente o proprietário deve ter permissões de "leitura", "gravação" e "execução"). Verifique se o usuário "raiz" é o "proprietário" do arquivo de script e se somente 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 atingiu o tempo limite. Verifique o script e aumente o tempo limite no arquivo VMSnapshotScriptPluginConfig.json que está 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 que está localizado em /etc/azure.

Próximas etapas

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