Kubernetes : Velero veut incarner la sauvegarde « standard »
Le projet Open source est soutenu par plusieurs acteurs du datacenter qui cherchent à enrichir leurs solutions d’une sauvegarde pour Kubernetes. Mais il s’agit pour l’heure d’un produit plus technique que clés en main.
En marge des produits commerciaux qui proposent de la sauvegarde pour les clusters Kubernetes – Kasten de Veeam, mais aussi Trilio ou encore les fonctions de snapshots intégrées à Portworx de Pure Storage – le projet Open source Velero ambitionne de devenir un standard. Du moins, un standard technique.
C’est en effet Velero que Dell, Veritas et IBM devraient tôt ou tard intégrer comme une extension Kubernetes à leurs produits de sauvegarde, respectivement PowerProtect, NetBackup et Spectrum Protect. C’est aussi Velero que Red Hat et VMware pourraient choisir pour enrichir leurs Kubernetes, respectivement OpenShift et Tanzu, d’une fonction native de backup. C’est en tout cas ce que laisse deviner la liste des contributeurs au projet. Liste qui intègre aussi, contre toute attente, l’équipe de Kasten.
« L’ambition de Velero est de prendre en compte un maximum de scénarios. Il ne s’agit pas juste de faire un snapshot de ce qui est en production », commence Shubham Pampattiwar, l’ingénieur en chef de Red Hat qui encadre les contributions à Velero. LeMagIT a pu le rencontrer chez Red Hat, à l’occasion d’un récent événement IT Press Tour organisé dans la Silicon Valley et consacré aux innovations en matière d’infrastructures Kubernetes.
« Nous développons par exemple des hooks, c’est-à-dire des modules qui servent à stopper une microactivité juste le temps de sauvegarder ses données, afin de ne pas enregistrer des informations incohérentes », poursuit-il. « Mais aussi, des modules qui sauront, dans d’autres cas, faire des sauvegardes asynchrones, pour que les données soient protégées sans arrêter la production. Et enfin un moteur qui permet de paralléliser plusieurs flux de sauvegardes et/ou de restaurations, afin de reprendre le plus rapidement possible l’activité en cas de cyberattaque. »
Un assembleur de processus de stockage
Initialement appelé Heptio Ark, Velero n’offre pour l’heure que trois fonctions – la programmation d’une sauvegarde à intervalles donnés, la sauvegarde et la restauration – et prend la forme d’une CRD. Une CRD est une extension fonctionnelle de Kubernetes et sa configuration est définie dans la base de registres etcd, laquelle paramètre l’ensemble d’un cluster Kubernetes.
Velero n’implémente pas à proprement parler de fonctions de sauvegarde de bas niveau. Il s’agit plutôt d’un moteur qui commande certaines fonctions disponibles dans le cluster qui pourraient servir à faire de la sauvegarde. Ainsi, il se sert des fonctions snapshots offertes par les pilotes CSI des fournisseurs de stockage pour les sauvegardes en mode bloc, des moteurs Open source Restic ou Kopia pour sauvegarder les fichiers, ou encore de l’API de Kubernetes pour faire une copie de secours des volumes en mode objet.
« La disponibilité d’un nombre grandissant de modules pour interagir avec l’infrastructure alentour est ce qui fait l’avantage de Velero. Par exemple, c’est grâce à ce système que nous pouvons nous connecter aux API des hébergeurs de cloud afin de sauvegarder leurs ressources. Pour l’utilisateur, tout est transparent : il programme ses sauvegardes ou effectue ses restaurations sans avoir à se préoccuper de l’infrastructure sous-jacente », dit Shubham Pampattiwar.
Dans le détail, l’utilisateur exécute directement ou programme l’exécution d’une commande du style velero backup create <nom de la sauvegarde> et cela lance tout seul les bons scripts pour les bonnes API de l’infrastructure sous-jacente.
Concernant l’infrastructure qui héberge les sauvegardes, il peut s’agir d’un volume objet S3 en cloud ou non, d’un volume en mode fichier, etc. Il suffit qu’il existe un module qui définisse le stockage de destination afin que l’administrateur puisse l’indiquer simplement dans ses configurations de sauvegarde. Cet administrateur saisira par exemple « --provider aws » ou « --provider portworx », suivi des détails nécessaires (le nom du volume, la clé d’accès, etc.).
De la même manière, les hooks sont des scripts de maintenance adaptés à une certaine application ou à un certain système, qui s’exécutent avant et après la fonction de sauvegarde.
Par exemple, pour sauvegarder les fichiers d’un pod fonctionnant au-dessus d’un système Linux, il suffit de définir lors du déploiement du pod qu’il existe un « pré-hook » qui demandera à un container d’exécuter la commande Linux /sbin/fsfreeze --freeze pour geler les accès avant la sauvegarde, puis la commande /sbin/fsfreeze --unfreeze pour les réactiver ensuite. De la même manière, il peut s’agir de requêtes formulées selon l’API d’une application, ces ordres étant envoyés en JSON. Et cela fonctionne aussi au moment de la restauration.
Un moteur de plug-ins pour la sauvegarde
Shubham Pampattiwar reconnaît volontiers que le fait d’exécuter toutes les fonctions de sauvegarde depuis la ligne de commande peut s’avérer complexe pour des administrateurs système. Mais selon lui, c’est un détail.
« L’intérêt de Velero est qu’il est Open source. Cela signifie qu’il est exploitable par tous les fournisseurs de stockage qui ont développé un pilote CSI pour que leur solution soit reconnue par Kubernetes. Dès lors, ces fournisseurs peuvent très bien intégrer les fonctions de Velero dans la console graphique qui sert à administrer leurs systèmes », dit-il.
« L’enjeu de Velero est de se concentrer sur les mécanismes. C’est une plateforme suffisamment brute pour que quiconque puisse venir et proposer des améliorations qui serviront au plus grand nombre. À la charge de chacun de voir comment il souhaite implémenter le produit final pour qu’il soit facile à utiliser par ses clients. »
Shubham Pampattiwar explique ainsi que les fournisseurs de stockage ne peuvent proposer avec leur pilote CSI que des sauvegardes locales. Le premier défaut est que ces sauvegardes sont potentiellement non fonctionnelles, car elles ne prennent pas de dispositions avant et après l’opération pour garantir la cohérence des données. Le second défaut est que ces sauvegardes ne sont pas restaurables sur une infrastructure différente. Intégrer Velero dans leurs produits permettrait de promouvoir une protection fiable et multicloud.
« Les solutions commerciales de sauvegardes sont pré-packagées. Velero n’a pas pour l’heure cette ambition. L’ambition de Velero est d’être un moteur de plug-ins, capable de tout sauvegarder, utilisable par les nouveaux arrivants du stockage, comme par les acteurs historiques », conclut l’ingénieur de Red Hat, en promettant l’arrivée régulière de nouveaux dispositifs qui fluidifient encore les processus de sauvegarde. Et dont Kasten, donc, pourrait tirer parti.