Fonctionnement de Frost
Frost prend des instantanés de vos dossiers, découpe vos fichiers en blocs chiffrés et n'envoie que les blocs que votre stockage n'a pas encore.
#En bref
- Parcours. Frost parcourt vos dossiers et ignore tout ce qui figure dans votre liste d'exclusions. Les fichiers dont la taille et la date de modification n'ont pas changé depuis la dernière sauvegarde ne sont pas relus tant que le cache de Frost contient encore la liste de tous leurs blocs.
- Découpage. Les fichiers modifiés sont découpés en blocs d'environ 1 Mio, à des endroits qui dépendent de leur contenu. Une modification au milieu d'un gros fichier ne touche que les blocs qui l'entourent.
- Chiffrement. Chaque nouveau bloc est compressé quand cela le rend plus petit, puis chiffré avec votre clé.
- Envoi. Seuls les blocs absents du stockage sont envoyés.
- Instantané. Frost enregistre la liste des fichiers, et les blocs qui composent chacun d'eux, sous forme d'un nouvel instantané.
- Vérification. Frost télécharge un échantillon aléatoire de blocs et les contrôle.
#Les instantanés
Un instantané est un relevé de vos dossiers au moment où la sauvegarde s'est faite : chaque fichier et chaque dossier, avec son contenu, ses permissions et sa date de modification. Chaque instantané est complet à lui seul, vous pouvez donc restaurer n'importe lequel sans les autres.
Les instantanés partagent leurs blocs. Un fichier inchangé depuis un an n'est stocké qu'une fois, quel que soit le nombre d'instantanés qui le contiennent. Conserver beaucoup d'instantanés prend donc peu de place en plus.
Si rien n'a changé depuis la dernière sauvegarde, Frost n'enregistre pas de nouvel instantané. Il vous indique que vos dossiers sont déjà sauvegardés.
Les identifiants d'instantané ressemblent à maple-absurd-3f1c : deux mots et quatre caractères. Restaurer des fichiers explique comment choisir un instantané par son identifiant ou par sa date.
Frost ne sait pas encore supprimer les anciens instantanés : tous restent dans le stockage. Ne supprimez pas à la main d'objets du dossier de Frost dans votre stockage, et n'ajoutez pas de règle qui les fait expirer. Les instantanés partagent leurs blocs, et retirer un seul objet peut en abîmer beaucoup.
#Votre clé
frost init crée sur votre ordinateur une clé aléatoire de 256 bits et vous la présente sous forme d'une phrase de récupération de 24 mots. La clé ne quitte jamais votre ordinateur. Tout ce que Frost envoie est d'abord chiffré avec elle, y compris les noms de fichiers et la structure des dossiers.
Quiconque possède la phrase et un accès à votre stockage peut lire vos sauvegardes. Sans la phrase, personne ne le peut. Voir Votre phrase de récupération.
#Le dépôt
Frost range vos sauvegardes dans un seul dossier de votre stockage, appelé dépôt. Il contient quatre types d'objets :
| Objet | Contenu |
|---|---|
frost.repo | L'identifiant du dépôt et la version de son format |
chunks/ | Les données et les listes de vos fichiers, chiffrées |
snapshots/ | Un petit en-tête chiffré par instantané : sa date, l'ordinateur et les dossiers concernés |
trees/ | Les blocs qui contiennent la liste de fichiers de chaque instantané |
Les noms des objets sont des identifiants d'apparence aléatoire, la personne qui gère votre stockage ne voit donc jamais vos noms de fichiers. Sécurité et confidentialité détaille ce que le stockage peut voir.
Sur un serveur auto-hébergé ou un disque local, chaque objet est un fichier portant ce nom dans le dossier du dépôt. Dans un bucket S3, c'est un objet du même nom, donc un dépôt peut être copié de l'un à l'autre. Voir Déplacer vos sauvegardes.
#Le cache local
Frost tient à jour, dans un dossier de cache sur votre ordinateur, la liste de ce qu'il a déjà envoyé, pour ne pas avoir à lister tout votre stockage à chaque sauvegarde. Il compare cette liste avec le stockage une fois par semaine, lorsque l'emplacement du stockage change ou après qu'une vérification a trouvé des données manquantes.
Le cache est jetable. S'il disparaît, la sauvegarde suivante le reconstruit à partir du stockage et relit vos fichiers. Les restaurations n'en ont pas besoin du tout.
#Pas de service en arrière-plan
Frost ne tourne pas en arrière-plan. Les sauvegardes automatiques sont de simples tâches du planificateur de votre système (launchd, systemd, cron ou le Planificateur de tâches), qui lancent Frost, font une sauvegarde et s'arrêtent. Voir Sauvegardes automatiques.
#Il se vérifie lui-même
Après chaque sauvegarde qui enregistre un instantané, Frost télécharge un échantillon aléatoire de blocs et vérifie que chacun se déchiffre et correspond à son identifiant. Une sauvegarde sans nouveauté refait la vérification quand la précédente date de plus d'un jour. Voir Vérifier vos sauvegardes.