Todos os produtos
Search
Central de documentação

Elastic Compute Service:Criar snapshots consistentes com a aplicação

Última atualização: Aug 25, 2026

Garanta a consistência dos dados em aplicações como bancos de dados ao restaurar snapshots. Para isso, libere os dados da memória para os discos antes de criar o snapshot.

Contexto

Ao criar um grupo consistente de snapshots com o recurso de snapshot consistente com a aplicação ativado, o sistema gera um dos seguintes tipos de snapshot conforme o cenário.

Item

Snapshot consistente com a aplicação

Snapshot consistente com o sistema de arquivos

Consistência de dados

Garante a consistência dos dados nas aplicações, como bancos de dados.

Garante a consistência dos dados nos sistemas de arquivos.

Implementação

  • No Linux, o recurso utiliza scripts shell personalizados. A Alibaba Cloud não garante a consistência da aplicação quando se usam scripts personalizados.

  • No Windows, a implementação usa serviços integrados, como o Volume Shadow Copy Service (VSS).

    Nota

    O VSS é uma tecnologia de backup e recuperação do Windows que cria snapshots enquanto arquivos ou volumes estão em uso. Consulte Volume Shadow Copy Service.

  • No Linux, caso nenhum script shell esteja configurado ou se houver falha na execução, o sistema cria snapshots consistentes com o sistema de arquivos.

  • No Windows, se a opção Contain Writers by Default estiver desmarcada, o sistema gera snapshots consistentes com o sistema de arquivos.

    Nota

    Os Writers são componentes essenciais do VSS que asseguram a consistência dos dados durante o backup. Consulte Volume Shadow Copy Service.

Cenários suportados

Ideal para aplicações que exigem consistência de dados, como bancos de dados e sistemas críticos de negócios.

Recomendado para cenários que demandam consistência geral do sistema de arquivos, como servidores de arquivos e sistemas de gestão documental.

Tags

APPConsistent:True

FsConsistent:True

Funcionamento

O fluxo de criação de snapshots varia entre instâncias Linux e Windows.

Instância Linux

Por padrão, o sistema gera snapshots consistentes com o sistema de arquivos. Após o upload dos scripts prescript.sh e postscript.sh, o sistema verifica a consistência da aplicação com base nesses scripts. Se a verificação for bem-sucedida, os snapshots recebem a marcação de consistentes com a aplicação; caso contrário, permanecem como consistentes com o sistema de arquivos.

A tabela a seguir detalha os dois scripts.

Nome do script

Funcionalidade

Tipo

Caminho

Permissões

Conteúdo

prescript.sh

Suspende todas as operações de escrita na aplicação antes da criação do snapshot para evitar inconsistência de dados.

Shell

/tmp/prescript.sh

Somente o usuário root possui permissões de leitura, escrita e execução nos scripts.

Desenvolva scripts personalizados conforme suas necessidades de negócio. Por exemplo, siga o procedimento em Step 1: Create the prescript.sh and postscript.sh scripts.

postscript.sh

Restaura a aplicação e retoma as operações de escrita após a conclusão da criação do snapshot.

Shell

/tmp/postscript.sh

Importante

O nome, o tipo e o caminho de armazenamento do script são fixos. Utilize exatamente os valores listados acima; caso contrário, os scripts falharão na execução.

  1. Ative o recurso de snapshot consistente com a aplicação e verifique se o Cloud Assistant está instalado na instância.

    Nota

    Se o Cloud Assistant não estiver instalado e você selecionar Enable Application-consistent Snapshot, o plug-in do Cloud Assistant será instalado automaticamente.

  2. O Cloud Assistant executa o script prescript.sh, suspende as operações de E/S e cria os snapshots.

    • Se as configurações do script estiverem corretas e a execução for bem-sucedida, o sistema cria snapshots consistentes com a aplicação.

    • Caso as configurações sejam inválidas ou a execução falhe, o sistema gera snapshots consistentes com o sistema de arquivos.

  3. O Cloud Assistant executa o script postscript.sh para retomar as operações de E/S.

image

Instância Windows

Após ativar o recurso de snapshot consistente com a aplicação em uma instância Windows, o Cloud Assistant realiza uma verificação de consistência da aplicação usando o VSS. Se a verificação for aprovada, os snapshots recebem a marcação de consistentes com a aplicação; caso contrário, são marcados como consistentes com o sistema de arquivos.

  1. Ative o recurso de snapshot consistente com a aplicação e verifique se o Cloud Assistant está instalado na instância.

    Nota

    Se o Cloud Assistant não estiver instalado e você selecionar Enable Application-consistent Snapshot, o plug-in do Cloud Assistant será instalado automaticamente.

  2. O Cloud Assistant suspende as operações de E/S e cria os snapshots.

    1. O Cloud Assistant invoca o VSS e suspende todas as operações de E/S.

    2. Verifique a opção Contain Writers by Default.

      • Se estiver selecionada, o sistema cria snapshots consistentes com a aplicação.

      • Se estiver desmarcada, o sistema gera snapshots consistentes com o sistema de arquivos.

  3. Retome as operações de E/S.

image

Limitações

  • Suportado apenas em ESSDs com o multi-attach feature desativado.

  • Você pode criar snapshots consistentes com a aplicação somente para discos cloud anexados à mesma instância ECS. Não é possível abranger instâncias diferentes.

Pré-requisitos

  • Uma instância ECS criada e executando um dos seguintes sistemas operacionais:

    • Windows: Windows Server 2012 R2 ou superior.

    • Linux: CentOS 7.6 ou superior, Ubuntu 18.04 ou superior, ou Alibaba Cloud Linux 2.

  • A instância ECS deve estar no estado Running. O Cloud Assistant precisa estar com status Normal na instância. Para visualizar o status do Cloud Assistant, consulte Check Cloud Assistant status and troubleshoot exceptions.

  • Uma função RAM com uma política personalizada para snapshots consistentes com a aplicação deve estar vinculada à instância ECS. Consulte Create a RAM role and attach it to an ECS instance.

    Nota

    O Cloud Assistant exige permissões específicas para acessar a instância ECS e executar comandos. Conceda essas permissões por meio da função RAM.

    • Configure uma função RAM personalizada, como AppSnapshotRoleName.

    • Anexe uma política personalizada à função RAM. O exemplo de política abaixo concede permissões para consultar snapshots, criar snapshots, adicionar tags e consultar informações de disco.

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecs:DescribeSnapshot*",
                      "ecs:CreateSnapshot*",
                      "ecs:TagResources",
                      "ecs:DescribeDisks"
                  ],
                  "Resource": [
                      "*"
                  ],
                  "Condition": {}
              }
          ]
      }

Procedimento

Usar o console ECS

Instância Linux

  1. Faça o upload dos scripts prescript.sh e postscript.sh preparados para a instância ECS.

    Consulte Use Workbench.

    Nota

    Para detalhes sobre os scripts, consulte How it works.

  2. Acesse ECS console - snapshot consistency group.

  3. No canto superior esquerdo da página, selecione uma região e um grupo de recursos.

  4. Na aba Snapshot-consistent Groups, clique em Create Snapshot-consistent Group.

  5. Na caixa de diálogo Create Snapshot, configure os parâmetros a seguir para criar um grupo consistente de snapshots.

    1. Por padrão, o parâmetro Resource Type vem definido como Instance.

    2. Selecione uma instância Linux na lista suspensa Select Instances. Na seção Select Cloud Disks, marque os ESSDs para os quais deseja criar snapshots.

    3. Expanda Advanced Settings e defina as configurações de snapshot consistente com a aplicação.

      • Ao selecionar Enable Application-consistent Snapshot e configurar corretamente os scripts, o sistema cria snapshots consistentes com a aplicação.

      • Se você marcar Enable Application-consistent Snapshot mas não configurar os scripts adequadamente, o sistema gera snapshots consistentes com o sistema de arquivos.

        Nota

        Caso o Cloud Assistant não esteja instalado e você selecione Enable Application-consistent Snapshot, o plug-in do Cloud Assistant será instalado automaticamente.

      • Também é possível ativar o recurso File System I/O Suspension and Resume e definir um tempo limite.

        Nota

        Ao ativar File System I/O Suspension and Resume, o sistema suspende as operações de E/S durante a criação do snapshot para evitar inconsistência de dados. Se o tempo limite exceder 16 segundos e a suspensão não for concluída nesse período, a operação falhará, o que pode causar inconsistência de dados.

      • Para mais detalhes sobre os parâmetros, consulte a seção Procedure.

    4. Clique em OK.

      Após a criação, uma mensagem exibe o ID do comando do Cloud Assistant e o ID da tarefa. Use o ID da tarefa para verificar se os snapshots consistentes com a aplicação foram criados.

  6. Na aba Command Execution Result da página ECS Cloud Assistant, clique no ID da tarefa e verifique se os snapshots consistentes com a aplicação foram criados.

    image

    O valor de ExitCode é 0 conforme mostrado na figura anterior, indicando que os snapshots consistentes com a aplicação foram criados com sucesso. O ID do grupo consistente de snapshots aparece na saída do comando.

    Nota

    Se ExitCode não for 0, ocorreu um erro. Solucione o problema com base no valor de ExitCode. Consulte a seção Error codes.

  7. Visualize as informações sobre o grupo consistente de snapshots criado e os snapshots contidos nele.

    1. Acesse ECS console - snapshot consistency group.

    2. Na aba Snapshot-consistent Groups, localize o grupo consistente de snapshots criado e clique no ID do grupo para visualizar os detalhes do snapshot.

    3. Na seção Snapshot Information, verifique se o snapshot é consistente com a aplicação ou com o sistema de arquivos com base na tag.

      • Se a tag AppConsistent:True estiver presente, trata-se de um snapshot consistente com a aplicação.

        image

      • Caso a tag FsConsistent:True apareça, o snapshot é consistente com o sistema de arquivos.

        image

Instância Windows

  1. Acesse ECS console - snapshot consistency group.

  2. No canto superior esquerdo da página, selecione uma região e um grupo de recursos.

  3. Na aba Snapshot-consistent Groups, clique em Create Snapshot-consistent Group.

  4. Na caixa de diálogo Create Snapshot, configure os parâmetros a seguir para criar um grupo consistente de snapshots.

    1. Por padrão, o parâmetro Resource Type vem definido como Instance.

    2. Selecione uma instância Windows na lista suspensa Select Instances. Na seção Select Cloud Disks, marque os ESSDs para os quais deseja criar snapshots.

    3. Expanda Advanced Settings e defina as configurações de snapshot consistente com a aplicação.

      • Ao selecionar Enable Application-consistent Snapshot e Contain Writers by Default, o sistema cria snapshots consistentes com a aplicação. Após marcar Enable Application-consistent Snapshot, a opção Contain Writers by Default torna-se visível.

      • Se você selecionar apenas Enable Application-consistent Snapshot, o sistema gera snapshots consistentes com o sistema de arquivos.

        Nota

        Caso o Cloud Assistant não esteja instalado e você selecione Enable Application-consistent Snapshot, o plug-in do Cloud Assistant será instalado automaticamente.

      • Para mais detalhes sobre os parâmetros, consulte a seção Procedure.

    4. Clique em OK.

      Após a criação, uma mensagem exibe o ID do comando do Cloud Assistant e o ID da tarefa.

  5. Na aba Command Execution Result da página ECS Cloud Assistant, clique no ID da tarefa e verifique se os snapshots consistentes com a aplicação foram criados.

    image

    O valor de ExitCode é 0 conforme mostrado na figura anterior, indicando que os snapshots consistentes com a aplicação foram criados com sucesso. O ID do grupo consistente de snapshots aparece na saída do comando.

    Nota

    Se ExitCode não for 0, ocorreu um erro. Solucione o problema com base no valor de ExitCode. Consulte a seção Error codes.

  6. Visualize as informações sobre o grupo consistente de snapshots criado e os snapshots contidos nele.

    1. Acesse ECS console - snapshot consistency group.

    2. Na aba Snapshot-consistent Groups, localize o grupo consistente de snapshots criado e clique no ID do grupo para visualizar os detalhes do snapshot.

    3. Na seção Snapshot Information, verifique se o snapshot é consistente com a aplicação ou com o sistema de arquivos com base na tag.

      • Se a tag AppConsistent:True estiver presente, trata-se de um snapshot consistente com a aplicação.

        image

      • Caso a tag FsConsistent:True apareça, o snapshot é consistente com o sistema de arquivos.

        image

Chamar uma operação de API

  1. Chame a operação RunCommand para criar snapshots consistentes com a aplicação em uma ou mais instâncias ECS via Cloud Assistant.

    Configure parâmetros como RegionId, Type, CommandContent e InstanceId. A seção a seguir fornece exemplos de CommandContent e descreve os parâmetros do conteúdo do comando.

    Instância Linux

    acs-plugin-manager --exec --plugin app-snapshot-plugin --params=-RamRoleName=\"AppSnapshotRoleName\",-EnableFsFreeze=true,-TimeoutInSeconds=30,-PreScriptPath=\"/tmp/prescript.sh\",-PostScriptPath=\"/tmp/postscript.sh\",-ExcludeDiskId=\"\",-Name=\"LinuxApp1\",-Description=\"LinuxApp\"

    • acs-plugin-manager --exec --plugin app-snapshot-plugin especifica o plug-in app-snapshot-plugin para o Cloud Assistant.

    • --params= define os parâmetros do plug-in. A tabela a seguir descreve esses parâmetros.

      Parâmetro

      Tipo

      Obrigatório

      Descrição

      RamRoleName

      String

      Sim

      A função RAM vinculada à instância ECS.

      EnableFsFreeze

      Boolean

      Não

      Define se o Linux FsFreeze deve ser ativado para colocar os sistemas de arquivos em modo somente leitura antes da criação do snapshot.

      Valor padrão: True.

      TimeoutInSeconds

      Integer

      Não

      O tempo limite para operações de E/S. Unidade: segundos.

      Valor padrão: 30.

      PreScriptPath

      String

      Não

      O caminho do script prescript.sh. Exemplo: /tmp/prescript.sh. O script deve atender aos seguintes requisitos:

      • Permissões: Definir como 700 (somente root pode ler, escrever e executar).

      • Conteúdo do script: Desenvolva scripts personalizados conforme suas necessidades de negócio.

      Importante

      Para instâncias Linux, este parâmetro é obrigatório. Se o script tiver permissões, caminhos ou nomes de arquivo inválidos, o sistema criará snapshots consistentes com o sistema de arquivos.

      PostScriptPath

      String

      Não

      O caminho do script postscript.sh. Exemplo: /tmp/postscript.sh. O script deve atender aos seguintes requisitos:

      • Permissões: Definir como 700 (somente root pode ler, escrever e executar).

      • Conteúdo do script: Desenvolva scripts personalizados conforme suas necessidades de negócio.

      Importante

      Para instâncias Linux, este parâmetro é obrigatório. Se o script tiver permissões, caminhos ou nomes de arquivo inválidos, o sistema criará snapshots consistentes com o sistema de arquivos.

      ExcludeDiskId

      String

      Não

      Os discos cloud a serem excluídos dos snapshots.

      Name

      String

      Sim

      O nome do grupo consistente de snapshots.

      Description

      String

      Não

      A descrição do grupo consistente de snapshots.

    Instância Windows

    acs-plugin-manager --exec --plugin app-snapshot-plugin-win --params=-RamRoleName=\"AppSnapshotRoleName\",-EnableWriters=true,-ExcludeDiskId=\"\",-Name=\"APPSnapshot-1\",-Description=\"AppSnapshot\"

    • acs-plugin-manager --exec --plugin app-snapshot-plugin-win especifica o plug-in app-snapshot-plugin-win para o Cloud Assistant.

    • --params= define os parâmetros do plug-in. A tabela a seguir descreve esses parâmetros.

      Parâmetro

      Tipo

      Obrigatório

      Descrição

      RamRoleName

      String

      Sim

      A função RAM vinculada à instância ECS.

      EnableWriters

      Boolen

      Não

      Define se snapshots consistentes com a aplicação devem ser criados. Valores válidos:

      • true

      • false

      Valor padrão: true.

      ExcludeDiskId

      String

      Não

      Os discos cloud a serem excluídos dos snapshots.

      Name

      String

      Sim

      O nome do grupo consistente de snapshots.

      Description

      String

      Não

      A descrição do grupo consistente de snapshots.

  2. Chame a operação DescribeInvocationResults usando o InvokeId retornado.

  3. Verifique se os snapshots consistentes com a aplicação foram criados.

    • ExitCode indica o resultado:

      • 0: Snapshots consistentes com a aplicação criados com sucesso.

      • Se o valor de ExitCode não for 0, ocorreu um erro. Corrija o erro com base no código de erro retornado. Consulte a seção Error codes deste tópico.

    • Output contém a saída do comando. Se o grupo consistente de snapshots for criado, o ID do grupo será exibido.

      [time=\"2025-03-04 16:09:25.8200239\"][message=\"Finish SnapshotGroup=ssg-2zefohc25d7n1grq**** Creation, TotalCost=3.8204978s, QueryCost=2.9307022s\"]\n[level=\"info\"][time=\"2025-03-04 16:09:25.8200239\"][message=\"Prepare to Thaw FileSystem or Applications\"]\n[requestor=\"\n\"]\n[level=\"info\"][time=\"2025-03-04 16:09:27.7133096\"][message=\"Thaw Write Request Done\"]\n[level=\"info\"][time=\"2025-03-04 16:09:28.0355042\"][message=\"Tag snapshots with AppConistent\"]\n[level=\"info\"][time=\"2025-03-04 16:09:28.0365941\"][message=\"Take AppConsistent snapshots successfully\"]

Códigos de erro

Código de erro (ExitCode)

Descrição

0

O snapshot foi criado conforme esperado.

1

Uma ou mais condições não foram atendidas:

  • A categoria do disco cloud não é suportada.

  • O nome do snapshot é inválido.

  • Problemas de conectividade de rede.

  • Nenhuma função RAM está vinculada à instância.

  • O sistema operacional da instância não é suportado.

2

O tipo ou a quantidade de parâmetros após a string --params é inválido.

3

Ocorreu um dos seguintes erros:

  • Nenhum ESSD está anexado à instância.

  • A função RAM não tem permissões para chamar operações de API relacionadas a snapshots.

4

Não foi possível criar o grupo consistente de snapshots.

5

O grupo consistente de snapshots não está no estado esperado.

6

A solicitação para criar o grupo consistente de snapshots atingiu o tempo limite.

7

Um snapshot de disco no grupo consistente de snapshots não está no estado esperado.

8

Não foi possível adicionar tags ao snapshot.

9

Não foi possível executar o script prescript.sh.

10

Não foi possível executar o script postscript.sh.

11

Não foi possível suspender as operações de E/S.

12

Não foi possível retomar as operações de E/S.

13

Nenhuma função RAM está vinculada à instância.

14

O número de snapshots excedeu o limite máximo.

15

O snapshot não está no estado esperado.

16

Um snapshot anterior está sendo criado, impedindo a criação de novos snapshots.

255

Ocorreu um erro desconhecido.

Referências

É possível criar snapshots consistentes com a aplicação para bancos de dados MySQL ou SQL Server. Consulte Best practices for creating application-consistent snapshots for MySQL (Linux) ou Best practices for SQL Server application-consistent snapshots (Windows).