Tous les produits
Search
Centre de documentation

Elastic Compute Service:Créer des snapshots cohérents au niveau de l'application

Dernière mise à jour :Aug 25, 2026

Garantissez la cohérence des données au sein des applications, telles que les bases de données, lors de la restauration à partir de snapshots en vidant les données en mémoire vers les disques avant la création du snapshot.

Contexte

Lorsque vous créez un groupe de snapshots cohérents avec la fonctionnalité de snapshot cohérent au niveau de l'application activée, le système crée l'un des types de snapshots suivants selon votre scénario.

Élément

Snapshot cohérent au niveau de l'application

Snapshot cohérent au niveau du système de fichiers

Cohérence des données

Garantit la cohérence des données au sein des applications, telles que les bases de données.

Garantit la cohérence des données au sein des systèmes de fichiers.

Implémentation

  • Sous Linux, la fonctionnalité repose sur des scripts shell personnalisés. Alibaba Cloud ne garantit pas la cohérence des applications lorsque des scripts personnalisés sont utilisés.

  • Sous Windows, la fonctionnalité utilise des services intégrés tels que Volume Shadow Copy Service (VSS).

    Remarque

    VSS est une technologie de sauvegarde et de récupération Windows qui crée des snapshots pendant que les fichiers ou volumes sont en cours d'utilisation. Consultez Volume Shadow Copy Service.

  • Sous Linux, si aucun script shell n'est configuré ou si l'exécution d'un script échoue, des snapshots cohérents au niveau du système de fichiers sont créés.

  • Sous Windows, si l'option Contain Writers by Default est désélectionnée, des snapshots cohérents au niveau du système de fichiers sont créés.

    Remarque

    Les writers sont un composant clé de VSS qui garantit la cohérence des données pendant la sauvegarde. Consultez Volume Shadow Copy Service.

Scénarios pris en charge

Convient aux applications nécessitant une cohérence des données, telles que les bases de données et les systèmes métier critiques.

Adapté aux scénarios nécessitant une cohérence globale du système de fichiers, tels que les serveurs de fichiers et les systèmes de gestion documentaire.

Tags

APPConsistent:True

FsConsistent:True

Fonctionnement

Le workflow de création de snapshot diffère entre les instances Linux et Windows.

Instance Linux

Par défaut, le système crée des snapshots cohérents au niveau du système de fichiers. Après avoir téléchargé les scripts prescript.sh et postscript.sh, le système vérifie la cohérence de l'application sur la base des scripts. Si la vérification réussit, les snapshots sont marqués comme cohérents au niveau de l'application ; sinon, ils restent cohérents au niveau du système de fichiers.

Le tableau suivant décrit les deux scripts.

Nom du script

Fonctionnalité

Type

Chemin d'accès

Autorisations

Contenu

prescript.sh

Suspend toutes les opérations d'écriture sur l'application avant la création du snapshot pour éviter toute incohérence des données.

Shell

/tmp/prescript.sh

Seul l'utilisateur root dispose des autorisations de lecture, d'écriture et d'exécution sur les scripts.

Compilez des scripts personnalisés en fonction de vos exigences métier. Par exemple, suivez la procédure décrite dans Étape 1 : Créer les scripts prescript.sh et postscript.sh.

postscript.sh

Restaure l'application et reprend les opérations d'écriture une fois la création du snapshot terminée.

Shell

/tmp/postscript.sh

Important

Le nom du script, son type et son chemin de stockage sont fixes. Utilisez exactement les valeurs indiquées ci-dessus, sinon l'exécution des scripts échouera.

  1. Activez la fonctionnalité de snapshot cohérent au niveau de l'application et vérifiez que Cloud Assistant est installé sur l'instance.

    Remarque

    Si Cloud Assistant n'est pas installé et que vous sélectionnez Enable Application-consistent Snapshot, le plug-in Cloud Assistant s'installe automatiquement.

  2. Cloud Assistant exécute le script prescript.sh, suspend les opérations d'E/S et crée les snapshots.

    • Si les paramètres du script sont corrects et que le script s'exécute avec succès, des snapshots cohérents au niveau de l'application sont créés.

    • Si les paramètres du script sont invalides ou si l'exécution du script échoue, des snapshots cohérents au niveau du système de fichiers sont créés à la place.

  3. Cloud Assistant exécute le script postscript.sh pour reprendre les opérations d'E/S.

image

Instance Windows

Après avoir activé la fonctionnalité de snapshot cohérent au niveau de l'application pour une instance Windows, Cloud Assistant effectue une vérification de cohérence de l'application avec VSS. Si la vérification réussit, les snapshots sont marqués comme cohérents au niveau de l'application ; sinon, ils sont marqués comme cohérents au niveau du système de fichiers.

  1. Activez la fonctionnalité de snapshot cohérent au niveau de l'application et vérifiez que Cloud Assistant est installé sur l'instance.

    Remarque

    Si Cloud Assistant n'est pas installé et que vous sélectionnez Enable Application-consistent Snapshot, le plug-in Cloud Assistant s'installe automatiquement.

  2. Cloud Assistant suspend les opérations d'E/S et crée les snapshots.

    1. Cloud Assistant appelle VSS et suspend toutes les opérations d'E/S.

    2. Vérifiez l'option Contain Writers by Default.

      • Si elle est sélectionnée, des snapshots cohérents au niveau de l'application sont créés.

      • Si elle est désélectionnée, des snapshots cohérents au niveau du système de fichiers sont créés.

  3. Reprenez les opérations d'E/S.

image

Limites

  • Pris en charge uniquement sur les ESSD avec la fonctionnalité multi-attach désactivée.

  • Vous pouvez créer des snapshots cohérents au niveau de l'application uniquement pour les disques cloud attachés à la même instance ECS, et non sur différentes instances.

Prérequis

  • Une instance ECS est créée et exécute l'un des systèmes d'exploitation suivants :

    • Windows : Windows Server 2012 R2 ou version ultérieure.

    • Linux : CentOS 7.6 ou version ultérieure, Ubuntu 18.04 ou version ultérieure, ou Alibaba Cloud Linux 2.

  • L'instance ECS est dans l'état Running. Cloud Assistant est dans l'état Normal sur l'instance. Pour afficher l'état de Cloud Assistant, consultez Vérifier l'état de Cloud Assistant et résoudre les exceptions.

  • Un rôle RAM avec une stratégie personnalisée pour les snapshots cohérents au niveau de l'application est attaché à l'instance ECS. Consultez Créer un rôle RAM et l'attacher à une instance ECS.

    Remarque

    Cloud Assistant nécessite des autorisations spécifiques pour accéder à l'instance ECS et exécuter des commandes. Accordez ces autorisations via le rôle RAM.

    • Configurez un rôle RAM personnalisé, tel que AppSnapshotRoleName.

    • Attachez une stratégie personnalisée au rôle RAM. La stratégie d'exemple suivante accorde des autorisations pour interroger les snapshots, créer des snapshots, ajouter des tags et interroger les informations sur les disques.

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

Procédure

Utiliser la console ECS

Instance Linux

  1. Téléchargez les scripts prescript.sh et postscript.sh préparés sur l'instance ECS.

    Consultez Utiliser Workbench.

    Remarque

    Pour plus de détails sur les scripts, consultez Fonctionnement.

  2. Accédez à Console ECS - groupe de cohérence des snapshots.

  3. Dans le coin supérieur gauche de la page, sélectionnez une région et un groupe de ressources.

  4. Dans l'onglet Snapshot-consistent Groups, cliquez sur Create Snapshot-consistent Group.

  5. Dans la boîte de dialogue Create Snapshot, configurez les paramètres suivants pour créer un groupe de snapshots cohérents.

    1. Par défaut, le paramètre Resource Type est défini sur Instance.

    2. Sélectionnez une instance Linux dans la liste déroulante Select Instances. Dans la section Select Cloud Disks, sélectionnez les ESSD pour lesquels vous souhaitez créer des snapshots.

    3. Développez Advanced Settings et configurez les paramètres de snapshot cohérent au niveau de l'application.

      • Si vous sélectionnez Enable Application-consistent Snapshot et configurez correctement les scripts, des snapshots cohérents au niveau de l'application sont créés.

      • Si vous sélectionnez Enable Application-consistent Snapshot mais ne configurez pas correctement les scripts, des snapshots cohérents au niveau du système de fichiers sont créés.

        Remarque

        Si Cloud Assistant n'est pas installé et que vous sélectionnez Enable Application-consistent Snapshot, le plug-in Cloud Assistant s'installe automatiquement.

      • Vous pouvez également activer la fonctionnalité File System I/O Suspension and Resume et spécifier un délai d'expiration.

        Remarque

        Si vous activez File System I/O Suspension and Resume, le système suspend les opérations d'E/S pendant la création du snapshot pour éviter toute incohérence des données. Si le délai d'expiration dépasse 16 secondes et que la suspension n'est pas terminée dans ce délai, la suspension échoue, ce qui peut entraîner une incohérence des données.

      • Pour plus de détails sur les paramètres, consultez la section Procédure.

    4. Cliquez sur OK.

      Après la création, un message affiche l'ID de commande Cloud Assistant et l'ID de tâche. Utilisez l'ID de tâche pour vérifier si des snapshots cohérents au niveau de l'application ont été créés.

  6. Dans l'onglet Command Execution Result de la page ECS Cloud Assistant, cliquez sur l'ID de tâche et vérifiez si des snapshots cohérents au niveau de l'application ont été créés.

    image

    La valeur de ExitCode est 0 comme illustré dans la figure précédente, ce qui indique que les snapshots cohérents au niveau de l'application ont été créés avec succès. L'ID du groupe de snapshots cohérents apparaît dans la sortie de la commande.

    Remarque

    Si ExitCode n'est pas 0, une erreur s'est produite. Résolvez le problème en fonction de la valeur de ExitCode. Consultez la section Codes d'erreur.

  7. Affichez les informations sur le groupe de snapshots cohérents créé et sur les snapshots du groupe.

    1. Accédez à Console ECS - groupe de cohérence des snapshots.

    2. Dans l'onglet Snapshot-consistent Groups, recherchez le groupe de snapshots cohérents que vous avez créé et cliquez sur l'ID du groupe de snapshots cohérents pour afficher les détails du snapshot.

    3. Dans la section Snapshot Information, vérifiez si un snapshot est un snapshot cohérent au niveau de l'application ou un snapshot cohérent au niveau du système de fichiers en fonction du tag.

      • Si le tag AppConsistent:True apparaît, un snapshot cohérent au niveau de l'application a été créé.

        image

      • Si le tag FsConsistent:True apparaît, un snapshot cohérent au niveau du système de fichiers a été créé.

        image

Instance Windows

  1. Accédez à Console ECS - groupe de cohérence des snapshots.

  2. Dans le coin supérieur gauche de la page, sélectionnez une région et un groupe de ressources.

  3. Dans l'onglet Snapshot-consistent Groups, cliquez sur Create Snapshot-consistent Group.

  4. Dans la boîte de dialogue Create Snapshot, configurez les paramètres suivants pour créer un groupe de snapshots cohérents.

    1. Par défaut, le paramètre Resource Type est défini sur Instance.

    2. Sélectionnez une instance Windows dans la liste déroulante Select Instances. Dans la section Select Cloud Disks, sélectionnez les ESSD pour lesquels vous souhaitez créer des snapshots.

    3. Développez Advanced Settings et configurez les paramètres de snapshot cohérent au niveau de l'application.

      • Si vous sélectionnez Enable Application-consistent Snapshot et Contain Writers by Default, des snapshots cohérents au niveau de l'application sont créés. Après avoir sélectionné Enable Application-consistent Snapshot, vous pouvez voir l'option Contain Writers by Default.

      • Si vous sélectionnez uniquement Enable Application-consistent Snapshot, des snapshots cohérents au niveau du système de fichiers sont créés.

        Remarque

        Si Cloud Assistant n'est pas installé et que vous sélectionnez Enable Application-consistent Snapshot, le plug-in Cloud Assistant s'installe automatiquement.

      • Pour plus de détails sur les paramètres, consultez la section Procédure.

    4. Cliquez sur OK.

      Après la création, un message affiche l'ID de commande Cloud Assistant et l'ID de tâche.

  5. Dans l'onglet Command Execution Result de la page ECS Cloud Assistant, cliquez sur l'ID de tâche et vérifiez si des snapshots cohérents au niveau de l'application ont été créés.

    image

    La valeur de ExitCode est 0 comme illustré dans la figure précédente, ce qui indique que les snapshots cohérents au niveau de l'application ont été créés avec succès. L'ID du groupe de snapshots cohérents apparaît dans la sortie de la commande.

    Remarque

    Si ExitCode n'est pas 0, une erreur s'est produite. Résolvez le problème en fonction de la valeur de ExitCode. Consultez la section Codes d'erreur.

  6. Affichez les informations sur le groupe de snapshots cohérents créé et sur les snapshots du groupe.

    1. Accédez à Console ECS - groupe de cohérence des snapshots.

    2. Dans l'onglet Snapshot-consistent Groups, recherchez le groupe de snapshots cohérents que vous avez créé et cliquez sur l'ID du groupe de snapshots cohérents pour afficher les détails du snapshot.

    3. Dans la section Snapshot Information, vérifiez si un snapshot est un snapshot cohérent au niveau de l'application ou un snapshot cohérent au niveau du système de fichiers en fonction du tag.

      • Si le tag AppConsistent:True apparaît, un snapshot cohérent au niveau de l'application a été créé.

        image

      • Si le tag FsConsistent:True apparaît, un snapshot cohérent au niveau du système de fichiers a été créé.

        image

Appeler une opération API

  1. Appelez l'opération RunCommand pour créer des snapshots cohérents au niveau de l'application pour une ou plusieurs instances ECS via Cloud Assistant.

    Configurez des paramètres tels que RegionId, Type, CommandContent et InstanceId. La section suivante fournit des exemples de CommandContent et décrit les paramètres du contenu de la commande.

    Instance 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 spécifie le plug-in app-snapshot-plugin pour Cloud Assistant.

    • --params= spécifie les paramètres du plug-in. Le tableau suivant décrit ces paramètres.

      Paramètre

      Type

      Obligatoire

      Description

      RamRoleName

      String

      Oui

      Le rôle RAM attaché à l'instance ECS.

      EnableFsFreeze

      Boolean

      Non

      Indique s'il faut activer Linux FsFreeze pour définir les systèmes de fichiers en lecture seule avant la création du snapshot.

      Valeur par défaut : True.

      TimeoutInSeconds

      Integer

      Non

      Le délai d'expiration pour les opérations d'E/S. Unité : secondes.

      Valeur par défaut : 30.

      PreScriptPath

      String

      Non

      Le chemin d'accès du script prescript.sh. Exemple : /tmp/prescript.sh. Le script doit répondre aux exigences suivantes :

      • Autorisations : Définies sur 700 (seul root peut lire, écrire et exécuter).

      • Contenu du script : Compilez des scripts personnalisés en fonction de vos exigences métier.

      Important

      Pour les instances Linux, ce paramètre est obligatoire. Si le script comporte des autorisations, des chemins d'accès ou des noms de fichiers invalides, des snapshots cohérents au niveau du système de fichiers sont créés à la place.

      PostScriptPath

      String

      Non

      Le chemin d'accès du script postscript.sh. Exemple : /tmp/postscript.sh. Le script doit répondre aux exigences suivantes :

      • Autorisations : Définies sur 700 (seul root peut lire, écrire et exécuter).

      • Contenu du script : Compilez des scripts personnalisés en fonction de vos exigences métier.

      Important

      Pour les instances Linux, ce paramètre est obligatoire. Si le script comporte des autorisations, des chemins d'accès ou des noms de fichiers invalides, des snapshots cohérents au niveau du système de fichiers sont créés à la place.

      ExcludeDiskId

      String

      Non

      Les disques cloud à exclure des snapshots.

      Name

      String

      Oui

      Le nom du groupe de snapshots cohérents.

      Description

      String

      Non

      La description du groupe de snapshots cohérents.

    Instance 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 spécifie le plug-in app-snapshot-plugin-win pour Cloud Assistant.

    • --params= spécifie les paramètres du plug-in. Le tableau suivant décrit ces paramètres.

      Paramètre

      Type

      Obligatoire

      Description

      RamRoleName

      String

      Oui

      Le rôle RAM attaché à l'instance ECS.

      EnableWriters

      Boolen

      Non

      Indique s'il faut créer des snapshots cohérents au niveau de l'application. Valeurs valides :

      • true

      • false

      Valeur par défaut : true.

      ExcludeDiskId

      String

      Non

      Les disques cloud à exclure des snapshots.

      Name

      String

      Oui

      Le nom du groupe de snapshots cohérents.

      Description

      String

      Non

      La description du groupe de snapshots cohérents.

  2. Appelez l'opération DescribeInvocationResults avec l'identifiant InvokeId renvoyé.

  3. Vérifiez si des snapshots cohérents au niveau de l'application ont été créés.

    • ExitCode indique le résultat :

      • 0 : Des snapshots cohérents au niveau de l'application ont été créés.

      • Si la valeur de ExitCode n'est pas 0, une erreur s'est produite. Corrigez l'erreur en fonction du code d'erreur renvoyé. Consultez la section Codes d'erreur de cette rubrique.

    • Output contient la sortie de la commande. Si le groupe de snapshots cohérents est créé, l'ID du groupe s'affiche.

      [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\"]

Codes d'erreur

Code d'erreur (ExitCode)

Description

0

Le snapshot est créé comme prévu.

1

Une ou plusieurs conditions ne sont pas remplies :

  • La catégorie de disque cloud n'est pas prise en charge.

  • Le nom du snapshot est invalide.

  • Problèmes de connectivité réseau.

  • Aucun rôle RAM n'est attaché à l'instance.

  • Le système d'exploitation de l'instance n'est pas pris en charge.

2

Le type ou le nombre des paramètres qui suivent la chaîne --params est invalide.

3

L'une des erreurs suivantes s'est produite :

  • Aucun ESSD n'est attaché à l'instance.

  • Le rôle RAM ne dispose pas des autorisations nécessaires pour appeler les opérations API liées aux snapshots.

4

Le groupe de snapshots cohérents ne peut pas être créé.

5

Le groupe de snapshots cohérents n'est pas dans l'état attendu.

6

La demande de création du groupe de snapshots cohérents a expiré.

7

Un snapshot de disque dans le groupe de snapshots cohérents n'est pas dans l'état attendu.

8

Les tags ne peuvent pas être ajoutés au snapshot.

9

Le script prescript.sh ne peut pas être exécuté.

10

Le script postscript.sh ne peut pas être exécuté.

11

Les opérations d'E/S ne peuvent pas être suspendues.

12

Les opérations d'E/S ne peuvent pas être reprises.

13

Aucun rôle RAM n'est attaché à l'instance.

14

Le nombre de snapshots a dépassé la limite supérieure.

15

Le snapshot n'est pas dans l'état attendu.

16

Le snapshot précédent est en cours de création et de nouveaux snapshots ne peuvent pas être créés.

255

Une erreur inconnue s'est produite.

Références

Vous pouvez créer des snapshots cohérents au niveau de l'application pour les bases de données MySQL ou SQL Server. Consultez Bonnes pratiques pour la création de snapshots cohérents au niveau de l'application pour MySQL (Linux) ou Bonnes pratiques pour les snapshots cohérents au niveau de l'application SQL Server (Windows).