Todos os produtos
Search
Central de documentação

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

Última atualização: Jul 03, 2026

Em uma instância do Elastic Compute Service (ECS) em execução, alguns dados de aplicações, como bancos de dados, podem ainda estar na memória ou em processo de gravação nos dispositivos de armazenamento. Snapshots não registram dados pendentes de gravação em disco, o que pode causar perda de dados ou inconsistência na aplicação durante a restauração. A Alibaba Cloud integra o serviço de snapshot ao Cloud Assistant para oferecer o recurso de snapshot consistente com a aplicação, garantindo a integridade dos dados das suas aplicações ao restaurar snapshots.

Informações básicas

Ao criar um grupo consistente de snapshots, ative o recurso de snapshot consistente com a aplicação. O sistema gera snapshots consistentes com a aplicação ou com o sistema de arquivos conforme o cenário de negócio. A tabela a seguir descreve os dois tipos de snapshots.

Item

Snapshot consistente com a aplicação

Snapshot consistente com o sistema de arquivos

Consistência de dados

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

Assegura a consistência dos dados no nível do sistema de arquivos.

Implementação

  • No Linux, o recurso utiliza scripts shell personalizados de acordo com suas aplicações. Ao usar scripts personalizados, a Alibaba Cloud não garante a consistência da aplicação.

  • No Windows, recursos nativos como o Volume Shadow Copy Service (VSS) implementam a funcionalidade de snapshot consistente com a aplicação.

    Nota

    O VSS é uma tecnologia de backup e recuperação do Microsoft Windows que cria snapshots mesmo quando arquivos ou volumes estão em uso. Para mais informações, consulte Volume Shadow Copy Service.

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

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

    Nota

    Os Writers são componentes essenciais da arquitetura VSS. O sistema operacional Windows fornece Writers para assegurar a consistência dos dados durante o backup. Para mais detalhes, veja Volume Shadow Copy Service.

Cenários suportados

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

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

Tags

APPConsistent:True

FsConsistent:True

Funcionamento dos snapshots consistentes com a aplicação

A seção abaixo explica o funcionamento dos snapshots consistentes com a aplicação.

Instância Linux

Ao ativar o recurso de snapshot consistente com a aplicação em uma instância Linux, o sistema adota inicialmente o estado consistente com o sistema de arquivos. Após o upload dos scripts shell preparados previamente (prescript.sh e postscript.sh), o sistema valida a consistência da aplicação com base nesses scripts. Se a validação for bem-sucedida, os snapshots recebem a marcação de consistentes com a aplicação. Caso contrário, são classificados como consistentes com o sistema de arquivos.

A tabela a seguir detalha os scripts prescript.sh e postscript.sh.

Nome do script

Funcionalidade

Tipo

Caminho

Permissões

Conteúdo

prescript.sh

Suspende todas as operações de escrita na aplicação antes de executar tarefas que possam afetá-la. Isso evita inconsistências causadas por novos dados gerados durante o processo.

Shell

/tmp/prescript.sh

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

Desenvolva os scripts personalizados conforme suas necessidades de negócio. Por exemplo, siga o procedimento em Etapa 1: Criar os scripts prescript.sh e postscript.sh.

postscript.sh

Após a conclusão de uma operação que afeta a aplicação, como um backup de dados, este script restaura a aplicação e retoma as operações de escrita.

Shell

/tmp/postscript.sh

Importante

O nome do script, o tipo e o caminho de armazenamento para criar snapshots consistentes com a aplicação são fixos. Utilize esses valores exatos ao desenvolver seus scripts personalizados. Caso contrário, a execução dos scripts pode falhar.

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

    Nota

    Se o Cloud Assistant não estiver instalado e você selecionar a opção Enable Application-consistent Snapshot, o plug-in necessário será instalado automaticamente na instância.

  2. O Cloud Assistant acessa a instância ECS para executar comandos relevantes automaticamente, rodar o script prescript.sh, suspender operações de I/O e criar os snapshots.

    • Se as configurações do script estiverem corretas e ele for executado com êxito, serão gerados snapshots consistentes com a aplicação.

    • Caso as configurações (como permissões, caminho ou nome) sejam inválidas ou a execução falhe, o sistema criará snapshots consistentes com o sistema de arquivos em vez de consistentes com a aplicação.

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

image

Instância Windows

Ao 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 em conjunto com o VSS. Se a verificação for aprovada, os snapshots são marcados como consistentes com a aplicação. Em caso de falha, são classificados como consistentes com o sistema de arquivos.

  1. Ative o recurso de snapshot consistente com a aplicação na instância ECS desejada e confirme a instalação do Cloud Assistant.

    Nota

    Se o Cloud Assistant não estiver instalado e você marcar a opção Enable Application-consistent Snapshot, o plug-in correspondente será instalado automaticamente.

  2. O Cloud Assistant acessa a instância ECS para executar comandos pertinentes, suspender operações de I/O e gerar os snapshots.

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

    2. Verifique se a opção Contain Writers by Default está selecionada.

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

      • Se estiver desmarcada, serão gerados snapshots consistentes com o sistema de arquivos.

  3. Retome as operações de I/O.

image

Limites

  • Snapshots consistentes com a aplicação são suportados apenas por Enterprise SSDs (ESSDs) com o recurso multi-attach desativado.

  • É possível criar snapshots consistentes com a aplicação para discos de nuvem anexados à mesma instância ECS, mas não para discos em instâncias diferentes.

Pré-requisitos

  • Uma instância ECS criada e executando uma das seguintes versões de sistema operacional:

    • 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 deve apresentar status Normal na instância. Para verificar o status do Cloud Assistant, consulte Status e solução de problemas do Cloud Assistant.

  • Uma função do Resource Access Management (RAM) deve estar vinculada à instância ECS, e essa função deve ter uma política personalizada com permissões para snapshots consistentes com a aplicação. Para mais detalhes, veja Criar uma função RAM e vinculá-la a uma instância ECS.

    Nota

    A criação de snapshots consistentes com a aplicação exige que o Cloud Assistant acesse a instância ECS e execute comandos. Antes de invocá-lo, conceda as permissões necessárias por meio da função RAM.

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

    • Anexe uma política personalizada à função RAM. O código abaixo exemplifica uma política que concede permissões para consultar snapshots, criar snapshots, adicionar tags e obter informações de discos.

      {
          "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 prévio dos scripts prescript.sh e postscript.sh preparados para a instância ECS.

    Para mais informações, consulte Usar o Workbench.

    Nota

    Para detalhes sobre os scripts prescript.sh e postscript.sh, veja Funcionamento dos snapshots consistentes com a aplicação.

  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 descritos na tabela 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. Em seguida, na seção Select Cloud Disks, escolha os ESSDs da instância 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 os scripts corretamente, o sistema gera snapshots consistentes com a aplicação.

      • Se você marcar Enable Application-consistent Snapshot mas não configurar os scripts ou configurá-los incorretamente, serão criados 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 necessário será instalado automaticamente na instância.

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

        Nota

        Ao ativar o recurso File System I/O Suspension and Resume, o sistema pausa as operações de I/O nos sistemas de arquivos durante a criação do snapshot para evitar inconsistências. Se o parâmetro Timeout Period for definido com um valor maior que 16 e a suspensão de I/O não for concluída nesse período, a operação falhará, podendo resultar em inconsistência de dados.

      • Para detalhes sobre os parâmetros, consulte a seção Procedimento deste tópico.

    4. Clique em OK.

      Após a criação do grupo consistente de snapshots, uma mensagem exibirá 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 gerados.

  5. Na aba Command Execution Result da página ECS Cloud Assistant, clique no ID da tarefa para confirmar a criação dos snapshots consistentes com a aplicação.

    image

    O valor de ExitCode é 0, conforme mostrado na figura anterior. Isso indica que os snapshots consistentes com a aplicação foram criados com êxito pelo Cloud Assistant. Nesse caso, o ID do grupo consistente de snapshots aparece na saída do comando.

    Nota

    Se o valor de ExitCode for diferente de 0, ocorreu um erro. Solucione o problema com base no valor da coluna ExitCode. Para mais informações, consulte a seção Códigos de erro deste tópico.

  6. Visualize as informações do grupo consistente de snapshots criado e dos snapshots contidos nele.

    1. Na aba Snapshot-consistent Groups, localize o grupo criado e clique no respectivo ID para ver os detalhes dos snapshots.

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

      • A presença da tag AppConsistent:True indica a criação de um snapshot consistente com a aplicação.

        image

      • A presença da tag FsConsistent:True indica a criação de um snapshot consistente com o sistema de arquivos.

        image

Instância Windows

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

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

  3. Na caixa de diálogo Create Snapshot, configure os parâmetros listados na tabela abaixo para criar o grupo consistente de snapshots.

    1. O parâmetro Resource Type tem como valor padrão Instance.

    2. Escolha uma instância Windows na lista Select Instances. Depois, na seção Select Cloud Disks, selecione os ESSDs da instância para os quais deseja gerar snapshots.

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

      • Selecione Enable Application-consistent Snapshot e Contain Writers by Default para criar snapshots consistentes com a aplicação. Após marcar Enable Application-consistent Snapshot, a opção Contain Writers by Default ficará visível.

      • Se selecionar apenas Enable Application-consistent Snapshot, o sistema gerará snapshots consistentes com o sistema de arquivos.

        Nota

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

      • Para mais detalhes sobre os parâmetros, veja a seção Procedimento deste tópico.

    4. Clique em OK.

      Após a criação do grupo consistente de snapshots, uma mensagem exibirá o ID do comando do Cloud Assistant e o ID da tarefa.

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

    image

    O valor de ExitCode é 0, conforme ilustrado acima. Isso confirma que os snapshots consistentes com a aplicação foram gerados com sucesso pelo Cloud Assistant. Nessa situação, o ID do grupo consistente de snapshots aparece na saída do comando.

    Nota

    Se o valor de ExitCode não for 0, houve um erro. Solucione o problema com base no valor da coluna ExitCode. Consulte a seção Códigos de erro para mais informações.

  5. Consulte as informações do grupo consistente de snapshots criado e dos snapshots associados.

    1. Na aba Snapshot-consistent Groups, encontre o grupo criado e clique no seu ID para acessar os detalhes dos snapshots.

    2. Na seção Snapshot Information, identifique pela tag se o snapshot é consistente com a aplicação ou com o sistema de arquivos.

      • A tag AppConsistent:True sinaliza um snapshot consistente com a aplicação.

        image

      • A tag FsConsistent:True sinaliza um snapshot consistente com o sistema de arquivos.

        image

Chamar uma operação de API

  1. Invoque a operação RunCommand para usar o Cloud Assistant na criação de snapshots consistentes com a aplicação em uma ou mais instâncias ECS.

    Defina parâmetros como RegionId, Type, CommandContent e InstanceId conforme sua necessidade. A seção a seguir apresenta exemplos de CommandContent e descreve os parâmetros especificados no 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 refere-se ao plug-in app-snapshot-plugin usado para executar comandos do Cloud Assistant.

    • --params= define os parâmetros de configuração do plug-in. A tabela abaixo 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 recurso Linux FsFreeze deve ser ativado para colocar os sistemas de arquivos em modo somente leitura antes da criação dos snapshots.

      Valor padrão: True.

      TimeoutInSeconds

      Integer

      Não

      Tempo limite para operações de I/O. Unidade: segundos.

      Valor padrão: 30.

      PreScriptPath

      String

      Não

      Caminho onde o script prescript.sh está armazenado. Exemplo: /tmp/prescript.sh. O script prescript.sh deve atender aos seguintes requisitos:

      • Permissões: Defina o valor de permissão como 700, permitindo leitura, escrita e execução apenas ao usuário root.

      • Conteúdo do script: Desenvolva o conteúdo personalizado conforme suas necessidades de negócio.

      Importante

      Este parâmetro é obrigatório para snapshots consistentes com a aplicação em instâncias Linux. Configurações inválidas no script (permissões, caminhos ou nomes de arquivo) resultarão na criação de snapshots consistentes com o sistema de arquivos.

      PostScriptPath

      String

      Não

      Caminho onde o script postscript.sh está armazenado. Exemplo: /tmp/postscript.sh. O script postscript.sh deve atender aos seguintes requisitos:

      • Permissões: Defina o valor de permissão como 700, permitindo leitura, escrita e execução apenas ao usuário root.

      • Conteúdo do script: Desenvolva o conteúdo personalizado conforme suas necessidades de negócio.

      Importante

      Este parâmetro é obrigatório para snapshots consistentes com a aplicação em instâncias Linux. Configurações inválidas no script (permissões, caminhos ou nomes de arquivo) resultarão na criação de snapshots consistentes com o sistema de arquivos.

      ExcludeDiskId

      String

      Não

      Discos de nuvem a serem excluídos dos snapshots.

      Name

      String

      Sim

      Nome do grupo consistente de snapshots.

      Description

      String

      Não

      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 refere-se ao plug-in app-snapshot-plugin-win usado para executar comandos do Cloud Assistant.

    • --params= define os parâmetros de configuração do plug-in. A tabela a seguir detalha 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

      Discos de nuvem a serem excluídos dos snapshots.

      Name

      String

      Sim

      Nome do grupo consistente de snapshots.

      Description

      String

      Não

      Descrição do grupo consistente de snapshots.

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

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

    • ExitCode retorna um código de erro.

      • O valor 0 indica que os snapshots consistentes com a aplicação foram criados com sucesso.

      • Se o valor de ExitCode não for 0, ocorreu um erro. Corrija o problema com base no código retornado na coluna ExitCode. Consulte a seção Códigos de erro para mais detalhes.

    • Output contém a saída da execução do comando. Se o grupo consistente de snapshots foi criado, informações como o ID do grupo serão exibidas.

      [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

Snapshot criado com êxito.

1

Uma ou mais condições não foram atendidas. Possíveis erros incluem:

  • Categoria do disco de nuvem não suportada.

  • Nome do snapshot inválido.

  • Problemas de conectividade de rede.

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

  • Sistema operacional da instância não suportado.

2

Tipo ou quantidade inválida de parâmetros após a string --params.

3

Possíveis erros incluem:

  • Nenhum ESSD anexado à instância.

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

4

Falha ao criar o grupo consistente de snapshots.

5

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

6

Tempo esgotado na solicitação de criação do grupo consistente de snapshots.

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

Falha na execução do script prescript.sh.

10

Falha na execução do script postscript.sh.

11

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

12

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

13

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

14

Limite máximo de snapshots excedido.

15

O snapshot não está no estado esperado.

16

Criação de snapshot anterior em andamento; novos snapshots não podem ser criados.

255

Erro desconhecido.

Referências

É possível criar snapshots consistentes com a aplicação para bancos de dados MySQL ou SQL Server. Para mais informações, consulte Melhores práticas para criar snapshots consistentes com a aplicação para MySQL (Linux) ou Melhores práticas para criar snapshots consistentes com a aplicação para SQL Server (Windows).