La cohérence des données est la somme de la validité, de la précision, de la facilité d’utilisation et de l’intégrité des données entre applications et sur l’ensemble du système d’exploitation. C’est une caractéristique critique de toute solution de sauvegarde. Dans cet article, j’aborderai les questions de cohérence des données plus en détail, je définirai les différents niveaux de cohérence des sauvegardes et j’expliquerai comment vous assurer que votre sauvegarde Veeam est cohérente.
Aujourd’hui, il est difficile d’imaginer une situation dans laquelle la cohérence des données ne serait pas importante pour une entreprise. Elle reste toujours importante, en particulier quand les données sont activement modifiées comme dans les systèmes bancaires effectuant simultanément des milliers de transactions financières dans leurs bases de données.
Niveaux de cohérence des sauvegardes
Il existe différents niveaux de cohérence des sauvegardes qui peuvent être identifiés par la possibilité de créer les sauvegardes à partir du système en cours de fonctionnement, par l’assurance que les fichiers interdépendants seront identiques et par la protection contre les pertes de données transactionnelles (prise en charge des applications).
Examinons ces niveaux de cohérence des sauvegardes un par un.
Sauvegarde incohérente
Le premier et le plus ancien niveau est celui de la sauvegarde incohérente. Il est facile d’imaginer celle-ci comme une simple opération de copie de fichiers qui duplique tous les fichiers d’un ordinateur vers un autre emplacement tel qu’un disque dur, un disque USB ou un NAS. Si un changement se produit dans les fichiers pendant l’exécution de la sauvegarde, le résultat se traduit par une sauvegarde incohérente. Dans ce cas, la sauvegarde ne sera pas le reflet exact des fichiers d’origine du système. De plus, les nombreux fichiers qui composent le guest OS de la VM n’ont pas forcément les mêmes valeurs d’horodatage, ce qui entraîne un point de restauration potentiellement corrompu.
Cette méthode n’enregistre pas les données de la mémoire système et peut présenter des problèmes d’accès aux fichiers verrouillés en lecture.
Sauvegarde « crash-consistent »
Le niveau suivant est celui de la sauvegarde crash-consistent. La principale différence par rapport à la sauvegarde incohérente est que les données de sauvegarde sont toutes enregistrées au même moment. Il est possible de l’imaginer comme un snapshot immédiat de tous les fichiers d’un disque.
Cependant, il existe une raison pour laquelle ce niveau s’appelle « crash-consistent ». Si vous restaurez le système à partir de cette sauvegarde, cela revient à restaurer le système après une réinitialisation matérielle étant donné que ni les fichiers ouverts ni les opérations d’I/O en attente ne sont enregistrées pendant cette sauvegarde. Ainsi, certaines applications exigeraient une maintenance post-démarrage et des traitements spéciaux. Cela peut s’avérer particulièrement préjudiciable pour diverses applications de bases de données.
Par exemple, Microsoft Exchange nécessiterait que vous configuriez un groupe de restauration spécial et l’intégration des logs. Microsoft SQL ou Oracle auraient besoin d’exécuter les transactions en cours pendant la sauvegarde et non encore écrites dans la BDD. En gros, c’est l’équivalent de couper simplement l’alimentation du serveur si celui-ci était physique ou d’arrêter la VM. Le disque est suspendu à ce moment sans aucune préparation.
Sauvegarde cohérente au niveau des fichiers
Dans cette sauvegarde, tous les fichiers du système restent en état cohérent, à la différence de la sauvegarde crash-consistent dans lequel les plus récentes mises à jour des fichiers ne sont pas enregistrées. Cependant, les transactions applicatives en cours ne sont toujours pas prises en compte.
Pour les VMs en exécution sur un hôte ESX(i), VMware offre le « VMware Tools quiescence ». Lors de la création du snapshot d’une VM en cours d’exécution, les VMware Tools suspendent le système de fichiers de la VM.
Sauvegarde cohérente au niveau des transactions
Cette sauvegarde ne comporte aucun des inconvénients mentionnés ci-dessus et contient toutes les données d’un même instant, y compris les transactions achevées. Le défi consiste ici à y parvenir sur un système en cours de fonctionnement pour lequel les temps d’arrêt sont interdits et dont les applications doivent s’exécuter pendant 100 % du temps.
Veeam peut réaliser des sauvegardes cohérentes au niveau des transactions grâce à l’aide de Microsoft Volume Shadow Copy Service (VSS). Microsoft VSS peut coordonner toutes les actions spécifiques à effectuer sur un système afin de « suspendre » les applications au niveau de l’OS. Il peut suspendre les I/O disque lorsqu’il est déclenché et assister le logiciel de sauvegarde. Microsoft VSS est inclus dans tous les systèmes Windows à partir de Windows Server 2003.
L’ « Application-Aware Image Processing », (AAIP) constitue une technologie propriétaire de Veeam. Elle assure la bonne restauration des VMs et une reprise appropriée de toutes les applications installées sur la VM, sans aucune perte de données. Veeam Backup & Replication ne déploie pas d’agents persistants à l’intérieur des VMs. Au lieu de cela, il utilise un processus de coordination appelé « runtime process » pour chaque VM démarrée lorsque l’opération de sauvegarde est demandée, et qui est supprimé lorsqu’elle est terminée. Ce processus a été conçu pour empêcher les éventuelles activités relatives aux agents telles que leur préinstallation, leur dépannage et leur mise à jour.
Pour déclencher un gel VSS, Veeam Backup & Replication se comporte en « VSS Requestor » . Il demande à Microsoft VSS de créer un état cohérent et fiable des données d’applications avant de prendre un snapshot ou un cliché instantané Hyper-V de la VM. Puis le « VSS Provider » fonctionne en coordination avec les applications compatibles VSS pour geler toutes les opérations I/O à un instant spécifique.
Cela permet de garantir qu’il n’y a pas de transactions de base de données incomplètes ni de fichiers applicatifs partiels pendant les opérations de copie des données.
Comment s’assurer qu’une sauvegarde est cohérente ?
Quand une tâche de sauvegarde est configurée, activez l’option « Enable application-aware image processing (AAIP)» pour les VMs sauvegardées par cette tâche à l’étape « Guest Processing ». Puis démarrez la tâche et assurez-vous qu’elle s’exécute avec succès.
Veuillez remarquer que l’utilisation d’AAIP par Veeam permet d’assurer l’intégrité critique des applications par des opérations telles que la troncature des logs pour SQL et Exchange. C’est une étape de maintenance importante dans le cadre du passage à une sauvegarde sans agent. Autrement, les logs échapperaient à tout contrôle.
Pour activer le « VMware tools quiescence » pour les VMs de la tâche, suivez les étapes décrites dans le Centre d’aide Veeam.
Quand vous activez l’AAIP et le VMware Tools quiescence, Veeam utilise AAIP en tant que méthode par défaut. Si l’utilisation de VSS est impossible, il bascule alors sur le VMware Tools quiescence.
N’oubliez pas que vous pouvez toujours vérifier vos sauvegardes au moyen de la fonctionnalité SureBackup en testant leur restauration dans un bac à sable isolé.
Ressources utiles :
- Blog Veeam : Sauvegarder MySQL sur une VM Linux
- Centre d’aide Veeam : Traitement d’images prenant en charge les applications