Restic est un projet Open Source qui a débuté en 2014 sous licence BSD.
Le projet Restic
Restic est une solution de sauvegarde qui se base sur les principes suivants :
La déduplication à la source doit être optimisable entre plusieurs serveurs source et de disposer d’un référentiel commun entre toutes les sauvegardes.
L’architecture doit pouvoir supporter des destinations de sauvegarde de technologie différentes : stockage Cloud (S3, Blob Azure, …), SFTP, NAS local, …
Il doit être possible de naviguer simplement dans une sauvegarde via Restic pour aller récupérer un fichier .
La restauration est aussi importante que la sauvegarde : il doit y avoir des mécanismes de vérification de l’intégrité de la sauvegarde.
La rétrocompatibilité des sauvegardes et de tous les référentiels au sein d’une même version majeure de Restic.
La solution doit être utilisable même quand la destination de sauvegarde n’est pas de confiance : toutes les données et les référentiels doivent pouvoir être chiffrées à la source.
La solution offre un bon niveau de résistance aux menaces, par exemple si un fichier est supprimé ou modifié dans l’espace de stockage ceci est détecté lors des contrôles de cohérence, …
Restic fonctionne pour Linux, Mac, BSD et Windows (avec support des VSS).
Design Interne
D’un point de vue du design interne du produit, Restic s’appuie sur des mécanismes :
D’instantané qui représente un répertoire avec tous les fichiers et sous-répertoires à un moment donné à un état défini.
L’état signifie ici le contenu et les métadonnées comme le nom et l’heure de modification du répertoire et de son contenu.
Pour chaque sauvegarde effectuée, un nouvel Instantané est créé.
La sauvegarde intègre les attributs étendus des fichiers (comme les ACL)
Lors de la sauvegarde initiale, les données de chaque fichier sont divisées en morceaux de longueur variable (entre 500 Ko et 8 Mo, en général autour de 1Mo)
Pour les fichiers modifiés, seuls les morceaux modifiés doivent être enregistrés dans une sauvegarde ultérieure. Cela fonctionne même si des octets sont insérés ou supprimés à des positions arbitraires dans le fichier.
De hachage SHA-256 pour :
Identifier chaque fichier : un fichier a un hachage initial « ID de stockage » qui ne change jamais.
Identifier chaque morceaux du référentiel
D’un chiffrement des référentiels et des données basé de l’AES-256
Plusieurs clefs de chiffrement peuvent être générées.
De cache local qui conserve en cache certains fichiers du référentiel pour garder une trace des fichiers déjà copiés et l’utilise pour les sauvegardes ultérieures :
Ce qui permet d’avoir des opérations de sauvegarde plus rapides car les métadonnées n’ont pas besoin d’être chargées à partir d’un référentiel distant.
Fonctionnement de Restic
C’est une solution de sauvegarde en mode push, c’est donc le client Restic qui se connecte au serveur de stockage pour y envoyer ses données.
Il n’y a pas de concepts de sauvegarde complète et différentielle, mais chaque sauvegarde est un instantané complet. Cela veut dire qu’il faut évidemment faire des tests d’intégrité et de restauration des sauvegardes à intervalle régulier.
La gestion des versions est prise en charge, cela veut dire que l’on sait mettre en œuvre une stratégie du type GFS : 7 dernière sauvegardes quotidiennes, 4 mensuelles, 5 annuelles.
Mais attention, cela ne signifie pas que les données vont être supprimées mais uniquement rendues inaccessibles. Il faudra ensuite des opérations d’élagages pour ensuite nettoyer les données inutiles.
La sauvegarde permet d’exclure des fichiers en spécifiant des modèles d’exclusion (un répertoire, un taille de fichier, un type de fichier, …)
Les fichiers ne sont pas récupérables directement via le système de fichiers et Il faut donc passer par Restic pour naviguer dans les sauvegardes, et il n’existe pas de GUI mais une interface de ligne de commande simple.
La suppression des instantanés de sauvegarde
Pour supprimer d’anciens instantanés, il faut mener deux actions :
La notion d’oublier un instantané (forget) qui enlève l’instantané du référentiel mais ne supprime par les données inutiles.
La notion d’élagage (prune) qui va supprimer réellement les données référencées par l’instantané du référentiel.
Cette action peut prendre beaucoup de temps car elle va analyser chaque blob pour savoir s’il peut être supprimé et mettre à jour le référentiel.
Si le référentiel est distant, cette action peut être faite directement depuis le stockage distant et n’impacte donc pas les serveurs d’origine. Néanmoins, cette action verrouille le référentiel et donc bloque toutes les sauvegardes.
Il est recommandé de faire ensuite une vérification d’intégrité du référentiel (check) entre deux opérations d’élagage.
Les limites actuelles de Restic
Il n’y a pas de compression de données (c’est dans la roadmap)
La solution est assez jeune et les retours d’expérience encore limitées sur de grandes infrastructures
à part les retours d’expérience du CERN
Pas de prise en compte native des mécanismes de stockage froid (et de processus de réchauffage d’archives)
D’autres solutions de sauvegarde utilisant du Content Defined Chunking (CDC)
Borg Backup
Ce logiciel s’appuie sur des mécanismes assez identiques que Restic. Les principales différences sont :
Etant écrit en Python, il nécessite d’installer des dépendances : cela peut poser des soucis sur des anciennes versions d’OS.
Uniquement utilisable en SSH et pas de support natif du stockage Objet (nécessite de passer par un espace tampon ou un serveur dans le Cloud).
Il nécessite dans la pratique un référentiel pour chaque serveur ce qui diminue d’autant la capacité de déduplication quand on a de nombreux serveurs basés sur les mêmes OS.
Cela peut être vu comme un avantage en limitant les impacts d’un souci d’intégrité à une sauvegarde et pas à un ensemble de sauvegardes.
L’utilisation de plusieurs solutions de compression de données (lz4, zstd, zlib, lzma)
Kopia
Ce logiciel s’appuie sur des mécanismes assez identiques que Restic, il est notamment écrit en GO. Même si le projet est assez récent, il a connu une accélération importante en 2020 et 2021.
Les principales différences sont :
Disponibilité d’une Interface utilisateur graphique (GUI)
UCover by Nuabee, la solution de PRA Cloud innovante
La solution de protection de la totalité de votre infrastructure, avec 3 classes de protection qui vous permettent d'adapter votre solution en fonction de vos besoins.
Nous utilisons des cookies pour vous offrir une meilleure expérience et nous permettre d'améliorer le site Web de Nuabee en fonction de vos préférences. En cliquant sur “Accepter et continuer”, vous consentez à l’utilisation de ces cookies. Vous pouvez également modifier les paramètres des cookies en cliquant sur “Paramétrer les cookies”.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Ces cookies sont nécessaires au fonctionnement du site Web et ne peuvent pas être désactivés car ils assurent les fonctions principales du site internet.
Cookie
Durée
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Ces cookies nous aident à améliorer notre site Web en nous permettant d'évaluer l'expérience utilisateur, en collectant des données analytiques, par ex. les pages les plus consultées, combien de temps est passé en moyenne sur certaines pages, etc.