Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment créer des sauvegardes cohérentes avec l’application pour les machines virtuelles Linux déployées sur Azure à l’aide de Sauvegarde Azure. Il couvre la configuration de l’infrastructure de script et le dépannage.
Lorsque Sauvegarde Azure prend un instantané d’une machine virtuelle, la cohérence de l’application garantit que les applications démarrent correctement après la restauration de la machine virtuelle. Pour ce faire, utilisez l’infrastructure de prescript et de post-script Linux, qui prend en charge les machines virtuelles Linux déployées par Azure Resource Manager. Toutefois, ces scripts ne fonctionnent pas pour les VM déployées par Service Manager ou Windows.
Comment fonctionne le cadre ?
L’infrastructure offre la possibilité d’exécuter des prescripts et des post-scripts personnalisés pendant que vous prenez des instantanés de machine virtuelle. Les prescripts s’exécutent juste avant que vous preniez le snapshot de VM et les post-scripts s’exécutent immédiatement après que vous ayez pris le snapshot de VM. Les prescripts et les post-scripts offrent la flexibilité nécessaire pour contrôler votre application et votre environnement, pendant que vous prenez des instantanés de machine virtuelle.
Les prescripts invoquent les API d’application natives, qui suspendent les E/S et vident le contenu en mémoire sur le disque. Ces actions garantissent la cohérence de l’instantané avec l’application. Les post-scripts utilisent les API natives de l’application pour libérer les E/S, qui permettent à l’application de reprendre ses opérations normales après la capture instantanée des machines virtuelles.
Configurer le prescript et le post-script pour la machine virtuelle Linux Azure
Pour configurer Prescript et post-script, procédez comme suit :
Connectez-vous en tant qu’utilisateur racine à la machine virtuelle Linux que vous souhaitez sauvegarder.
À partir de GitHub, téléchargez-VMSnapshotScriptPluginConfig.json et copiez-le dans le dossier /etc/azure pour toutes les machines virtuelles que vous souhaitez sauvegarder. Si le dossier /etc/azure n’existe pas, créez-le.
Copiez le prescript et le post-scriptum de votre application sur toutes les machines virtuelles que vous prévoyez de sauvegarder. Vous pouvez copier les scripts à n’importe quel emplacement sur la machine virtuelle. Veillez à mettre à jour le chemin d’accès complet des fichiers de script dans le fichier VMSnapshotScriptPluginConfig.json .
Pour utiliser les fichiers suivants, assurez-vous que vous disposez des autorisations correspondantes :
VMSnapshotScriptPluginConfig.json: Permission 600. Par exemple, seul l’utilisateur root doit disposer des autorisations de lecture et d’écriture sur ce fichier, et aucun utilisateur ne doit disposer des autorisations d’exécution .
Fichier de pré-script : Permission 700. Par exemple, seul l’utilisateur root doit disposer des autorisations de lecture, d’écriture et d’exécution sur ce fichier. Le fichier est censé être un script d’interpréteur de commandes, mais théoriquement ce script peut générer ou faire référence à d’autres scripts comme un script Python.
Post-scriptum Autorisation 700. Par exemple, seul l’utilisateur root doit disposer des autorisations de lecture, d’écriture et d’exécution sur ce fichier. Le fichier est censé être un script d’interpréteur de commandes, mais théoriquement ce script peut générer ou faire référence à d’autres scripts comme un script Python.
Important
Le cadre donne aux utilisateurs de nombreux pouvoirs. Sécurisez le cadre et assurez-vous que seul l’utilisateur racine a accès aux fichiers JSON et de script critiques. Si ces conditions ne sont pas remplies, le script ne s’exécute pas, ce qui bloque le système de fichiers et produit une sauvegarde incohérente.
Configurez VMSnapshotScriptPluginConfig.json comme décrit ici :
pluginName : Laissez ce champ tel qu’il est, ou vos scripts peuvent ne pas fonctionner comme prévu.
preScriptLocation : fournissez le chemin d’accès complet du prescript sur la machine virtuelle qui va être sauvegardée.
postScriptLocation : indiquez le chemin complet du post-script sur la machine virtuelle qui sera sauvegardée.
preScriptParams : Fournissez les paramètres facultatifs qui doivent être passés au prescript. Tous les paramètres doivent être entre guillemets. Si vous utilisez plusieurs paramètres, séparez-les par une virgule.
postScriptParams : indiquez les paramètres facultatifs qui doivent être passés au post-script. Tous les paramètres doivent être entre guillemets. Si vous utilisez plusieurs paramètres, séparez-les par une virgule.
preScriptNoOfRetries : Définissez le nombre de fois que le prescript doit être réessayé en cas d’erreur avant de se terminer. Zéro signifie une seule tentative et aucune nouvelle tentative en cas d’échec.
postScriptNoOfRetries : définissez le nombre de fois où le post-script doit être retenté s’il existe une erreur avant de terminer. Zéro signifie une seule tentative et aucune nouvelle tentative en cas d’échec.
timeoutInSeconds : spécifiez des délais d’expiration individuels pour le prescript et le post-script (la valeur maximale peut être 1800).
continueBackupOnFailure : définissez cette valeur sur true si vous souhaitez que Sauvegarde Azure revienne à une sauvegarde cohérente avec le système de fichiers/cohérente en cas d’échec du prescript ou du post-script. La définition de cette valeur sur false échoue la sauvegarde en cas d’échec de script (sauf si vous avez une machine virtuelle à disque unique qui revient à une sauvegarde cohérente en cas d’incident, quel que soit ce paramètre). Lorsque la valeur continueBackupOnFailure est définie sur false, si la sauvegarde échoue, l’opération de sauvegarde est tentée à nouveau en fonction d’une logique de nouvelle tentative dans le service (pour le nombre spécifié de tentatives).
fsFreezeEnabled : spécifiez si le fsfreeze Linux doit être appelé pendant que vous prenez l’instantané de machine virtuelle pour garantir la cohérence du système de fichiers. Nous vous recommandons de conserver ce paramètre défini sur true , sauf si votre application a une dépendance sur la désactivation de fsfreeze.
ScriptsExecutionPollTimeSeconds : définissez l’heure à laquelle l’extension doit dormir entre chaque sondage et l’exécution du script. Par exemple, si la valeur est 2, l’extension vérifie si l’exécution du pré-script/post-script s’est effectuée toutes les 2 secondes. La valeur minimale est 1 et la valeur maximale 5. La valeur peut être un entier uniquement.
L’infrastructure de script est désormais configurée. Si la sauvegarde de machine virtuelle est déjà configurée, la sauvegarde suivante appelle les scripts et déclenche une sauvegarde cohérente avec les applications. Si la sauvegarde de machine virtuelle n’est pas configurée, configurez-la à l’aide de la sauvegarde de machines virtuelles Azure dans des coffres Recovery Services.
Résoudre les erreurs de sauvegarde cohérente avec l’application de machine virtuelle Azure Linux
Assurez-vous d’ajouter la journalisation appropriée lors de la rédaction de votre prescript et post-script, et examinez vos journaux de script pour résoudre les problèmes de script. Si vous rencontrez toujours des problèmes lors de l’exécution de scripts, reportez-vous au tableau suivant pour plus d’informations.
Erreur | Message d'erreur | Action recommandée |
---|---|---|
Pre-ScriptExecutionFailed | Le prescript a renvoyé une erreur, de sorte que la sauvegarde peut ne pas être cohérente avec l’application. | Consultez les journaux d’échec de votre script pour résoudre le problème. |
Post-ScriptExecutionFailed | Le post-scriptum a renvoyé une erreur susceptible d’avoir un impact sur l’état de l’application. | Consultez les journaux d’échec de votre script pour résoudre le problème et vérifiez l’état de l’application. |
Pre-ScriptNotFound | Le prescript n’a pas été trouvé à l’emplacement spécifié dans le fichier de configurationVMSnapshotScriptPluginConfig.json . | Assurez-vous que le prescript est présent au chemin spécifié dans le fichier de configuration pour garantir une sauvegarde cohérente avec l’application. |
Post-ScriptNotFound | Le post-scriptum n’a pas été trouvé à l’emplacement spécifié dans le fichier de configurationVMSnapshotScriptPluginConfig.json . | Assurez-vous que le post-script est présent au chemin d’accès spécifié dans le fichier de configuration pour garantir une sauvegarde cohérente avec l’application. |
IncorrectPluginhostFile | Le Pluginhost fichier, qui est fourni avec l’extension VmSnapshotLinux, est corrompu, de sorte que le prescript et le post-script ne peuvent pas s’exécuter et que la sauvegarde n’est pas cohérente avec l’application. |
Désinstallez l’extension VmSnapshotLinux , et elle sera automatiquement réinstallée avec la prochaine sauvegarde pour résoudre le problème. |
IncorrectJSONConfigFile | Le fichier VMSnapshotScriptPluginConfig.json est incorrect, de sorte que le prescript et le post-script ne peuvent pas s’exécuter et que la sauvegarde n’est pas cohérente avec l’application. | Téléchargez la copie à partir de GitHub et configurez-la à nouveau. |
InsufficientPermissionforPre-Script | Pour l’exécution de scripts, l’utilisateur root doit être le propriétaire du fichier et le fichier doit disposer de 700 autorisations (c’est-à-dire que seul le propriétaire doit disposer des autorisations de lecture, d’écriture et d’exécution ). | Assurez-vous que l’utilisateur root est le propriétaire du fichier de script et que seul le propriétaire dispose des autorisations de lecture, d’écriture et d’exécution . |
InsufficientPermissionforPost-Script | Pour l’exécution de scripts, l’utilisateur root doit être le propriétaire du fichier et le fichier doit disposer de 700 autorisations (c’est-à-dire que seul le propriétaire doit disposer des autorisations de lecture, d’écriture et d’exécution ). | Assurez-vous que l’utilisateur root est le propriétaire du fichier de script et que seul le propriétaire dispose des autorisations de lecture, d’écriture et d’exécution . |
Pre-ScriptTimeout | L’exécution du pré-script de sauvegarde cohérent avec l’application a expiré. | Vérifiez le script et augmentez le délai d’expiration dans le fichier VMSnapshotScriptPluginConfig.json qui se trouve dans /etc/azure. |
Post-scriptTimeout | L’exécution des post-scripts de sauvegarde cohérents avec l’application a expiré. | Vérifiez le script et augmentez le délai d’expiration dans le fichier VMSnapshotScriptPluginConfig.json qui se trouve dans /etc/azure. |
Étapes suivantes
Configurer la sauvegarde de la machine virtuelle dans un coffre Recovery Services