Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como criar backups consistentes com o aplicativo para VMs (máquinas virtuais) linux implantadas pelo 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 comecem corretamente após a restauração da VM. Para obter esse comportamento, use a estrutura de pré-script e pós-script do Linux, que dá suporte a VMs do Linux implantadas com o Azure Resource Manager. Esses scripts não funcionam para VMs implantadas com o System Center Service Manager ou o Windows.
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 scripts de pré-execução são executados antes de você capturar o instantâneo da VM. Os pós-scripts são executados imediatamente após você tirar o instantâneo da VM. Os pré-scripts e os pós-scripts oferecem a flexibilidade para controlar seu aplicativo e ambiente enquanto você tira instantâneos de VM.
Os pré-scripts invocam APIs de aplicativo nativas, que silenciam a 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 de pós-processamento usam APIs de aplicativo nativo para descongelar as operações de entrada/saída, o que permite que o aplicativo retome as operações normais após o snapshot da VM.
Configurar scripts de pré-execução e pós-execução para VMs Linux do Azure
Para configurar o prescript e o postscript, siga estas etapas:
Entre como o usuário raiz da VM do Linux que você deseja fazer backup.
No GitHub, baixe VMSnapshotScriptPluginConfig.json e copie-o para a pasta /etc/azure para todas as VMs que você deseja fazer backup. Se a pasta /etc/azure não existir, crie-a.
Copie o pré-script e o pós-script para seu aplicativo em todas as VMs das quais você pretende 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.
Para usar os seguintes arquivos, verifique se você tem as permissões correspondentes:
- VMSnapshotScriptPluginConfig.json: a permissão é 600. Por exemplo, somente o usuário raiz deve ter permissões de leitura e gravação nesse arquivo e nenhum usuário deve ter permissões de execução.
- Arquivo pré-descrito: 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 script de shell, mas teoricamente, esse script pode gerar internamente ou se referir 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 script de shell, mas teoricamente, esse script pode gerar internamente ou se referir a outros scripts, como um script Python.
Importante
A estrutura oferece aos usuários vários poderes. Proteja a estrutura e verifique se apenas o usuário raiz tem acesso a arquivos JSON e script críticos.
Se os requisitos não forem atendidos, o script não poderá ser executado, o que resultará em uma falha do sistema de arquivos e um backup inconsistente.
Configure VMSnapshotScriptPluginConfig.json conforme descrito aqui:
-
pluginName: deixe esse campo como está ou seus scripts podem não funcionar conforme o esperado. -
preScriptLocation: informe o caminho completo do pré-script na VM que será copiada em backup. -
postScriptLocation: informe o caminho completo do pós-script na VM que será copiada em backup. -
preScriptParams: forneça os parâmetros opcionais que devem ser passados para o script. 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 repetido em caso de erro antes do término. Zero significa apenas uma tentativa e nenhuma repetição se houver uma falha. -
postScriptNoOfRetries: defina o número de vezes que o postscript deverá ser repetido se ocorrer um erro antes de terminar. Zero significa apenas uma tentativa e nenhuma repetição se houver uma falha. -
timeoutInSeconds: especifique tempos limite individuais para o pré-script e o postscript (o valor máximo é 1800). -
continueBackupOnFailure: defina esse valor como true se quiser que o Backup do Azure tenha um fallback para um backup consistente com falhas/com o sistema de arquivos, em caso de falha do pré-script ou do pós-script. A configuração desse valor como false falhará no backup se ocorrer uma falha de script. (Uma exceção é quando você tem uma VM de disco único que faz fallback para o backup consistente com falhas, seja qual for essa configuração.) Quando o valor decontinueBackupOnFailurefor definido como false, se o backup falhar, será feita uma nova tentativa da operação de backup com base em uma lógica de repetição no serviço (para o número estipulado de tentativas). -
fsFreezeEnabled: especifique se o Linuxfsfreezedeve ser chamado enquanto você está tirando 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 tenha uma dependência de desabilitarfsfreeze. -
ScriptsExecutionPollTimeSeconds: defina o tempo que a extensão precisa 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 de prescript ou postscript é 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.
-
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 seguindo as etapas em Fazer backup de máquinas virtuais do Azure para cofres dos Serviços de Recuperação.
Solucionar problemas de erros do backup consistente com aplicativos de VMs do Linux do Azure
Lembre-se de adicionar logs apropriados enquanto escreve o pré-script e o pós-script. Examine os logs de script para corrigir problemas de script. Se você ainda tiver problemas ao executar scripts, consulte a tabela a seguir.
| Erro | Mensagem de erro | Ação recomendada |
|---|---|---|
Pre-ScriptExecutionFailed |
O pré-script retornou um erro, portanto, o backup pode não ser consistente com aplicativos. | Examine os logs de falha do script para corrigir o problema. |
Post-ScriptExecutionFailed |
O postscript 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. |
Pre-ScriptNotFound |
O pré-script não foi encontrado no local especificado no arquivo de configuração VMSnapshotScriptPluginConfig.json. | Verifique se o pré-script está presente no caminho especificado no arquivo de configuração para garantir o backup consistente com aplicativos. |
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 arquivo Pluginhost, que é fornecido 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 é consistente com aplicativos. |
Desinstale a VmSnapshotLinux extensão. Ele reinstala automaticamente com o próximo backup para corrigir o problema. |
IncorrectJSONConfigFile |
O arquivo VMSnapshotScriptPluginConfig.json está incorreto, portanto, o script de pré-execução e o postscript não podem ser executados e o backup não é consistente com o estado do 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. O arquivo deve ter 700 permissões. (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. O arquivo deve ter 700 permissões. (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 para o backup consistente com aplicativos atingiu o tempo limite. | Verifique o script e aumente o tempo limite no arquivo de VMSnapshotScriptPluginConfig.json localizado em /etc/azure. |
Post-ScriptTimeout |
A execução do pós-script para o backup consistente com aplicativos atingiu o tempo limite. | Verifique o script e aumente o tempo limite no arquivo de VMSnapshotScriptPluginConfig.json localizado em /etc/azure. |