Comment séparer les données, le cache et les sauvegardes de l’application Home Assistant

Eva Wong est la rédactrice technique et bricoleuse résidente chez ZimaSpace. Geek depuis toujours, passionnée par les laboratoires informatiques personnels et les logiciels open source, elle se spécialise dans la vulgarisation de concepts techniques complexes au moyen de guides pratiques et concrets. Eva pense que l’hébergement personnel doit être amusant, et non intimidant. À travers ses tutoriels, elle aide la communauté à démystifier les configurations matérielles, de la construction de leur premier NAS à la maîtrise des conteneurs Docker.

Séparez les données de l’application Home Assistant, le cache et les sauvegardes en déterminant d’abord ce qui doit survivre à une panne, ce qui peut être recréé automatiquement et ce qui doit se trouver en dehors de l’hôte Home Assistant. La configuration persistante et l’état de la base de données nécessitent un stockage stable et une sauvegarde ; les caches jetables ou les fichiers temporaires ne doivent pas être soumis aux mêmes règles de conservation ; les sauvegardes ne doivent pas dépendre du disque qu’elles sont censées permettre de restaurer.

La disposition la plus sûre repose sur le rôle des données, et non sur le nom des dossiers. Ne déplacez pas un répertoire vers un « stockage de cache » simplement parce qu’il grossit rapidement. Avant de considérer ces données comme jetables, vérifiez si Home Assistant ou un service associé en a besoin pour l’historique, l’identité, l’association, les identifiants ou la récupération.

Classez les données comme données de référence, recréables ou copies de récupération

Les données de référence de l’application comprennent la configuration de Home Assistant, les secrets, l’état des intégrations, les définitions des automatisations et la base de données ou tout autre état que vous souhaitez préserver. Les données recréables comprennent les images téléchargées, les fichiers temporaires, les caches de paquets, les transcodages et les index qu’un service peut recréer sans perdre la configuration du foyer. Les copies de récupération sont des sauvegardes et des exports destinés à restaurer l’état de référence après une panne.

Cette classification doit être effectuée pour chaque service. Home Assistant, MQTT, une base de données, un proxy inverse et Zigbee2MQTT peuvent chacun avoir des données persistantes différentes. Une interface de gestion peut mémoriser la définition de la pile sans contenir les données des services elles-mêmes ; un article sur les raisons pour lesquelles les sauvegardes de la gestion des conteneurs peuvent omettre l’état des services montre pourquoi « J’ai sauvegardé Docker » peut signifier bien moins qu’on ne le pense.

Conservez la configuration de Home Assistant et la base de données active sur un stockage stable

Dans un déploiement en conteneurs, le chemin de configuration de Home Assistant doit être conservé indépendamment de l’image du conteneur. Si la base de données recorder reste dans cette arborescence de configuration, il s’agit de l’état actif de l’application, pas d’un cache. Placez ces données sur un SSD fiable ou un autre support à faible latence disposant de suffisamment d’espace libre pour les opérations normales sur la base de données et les opérations de récupération.

L’activité de recorder peut générer en continu de petites écritures, surtout lorsque de nombreuses entités changent fréquemment. Une discussion de la communauté Home Assistant sur l’effet de la conservation de recorder sur la croissance de la base de données, qui dure depuis longtemps, est utile, car elle met l’accent sur la réduction de l’historique superflu plutôt que sur la dissimulation de l’activité de la base de données en déplaçant toute l’arborescence de configuration vers un stockage temporaire.

Déplacez uniquement les caches et les données temporaires dont le caractère jetable est avéré

Le cache et le stockage temporaire peuvent se trouver sur un périphérique de travail rapide distinct, un système de fichiers limité en mémoire ou un répertoire dédié avec des règles de nettoyage, mais uniquement si leur perte est sans conséquence. Après avoir effacé une copie de test, redémarrez le service concerné et vérifiez qu’il recrée ce dont il a besoin. Si le service perd ses associations, son historique, ses utilisateurs, ses identifiants ou sa configuration, ces données ne sont pas jetables.

La séparation des données fréquemment modifiées peut réduire les écritures et alléger les sauvegardes, mais elle ne doit jamais masquer des fichiers requis sous un point de montage ni créer une dépendance cachée à la RAM. L’article ZimaSpace sur la séparation du cache et du stockage temporaire de Home Assistant propose une méthode ciblée pour repérer les données reconstructibles avant de modifier les montages.

Placez les sauvegardes dans un domaine de défaillance distinct

Une sauvegarde stockée à côté de la configuration active protège contre une modification malencontreuse, mais pas contre une panne de SSD, le vol de l’hôte, une corruption du système de fichiers ou la défaillance d’un contrôleur de stockage. Copiez les sauvegardes Home Assistant vers un NAS, un autre serveur, un support amovible ou une cible hors site selon le type de panne auquel vous voulez résister. Conservez la clé de récupération ou les identifiants dans un emplacement qui reste accessible lorsque Home Assistant est lui-même hors service.

Les sauvegardes doivent également être cohérentes en interne. Les archives de volumes sont utiles, mais les services avec état peuvent nécessiter un export coordonné, un instantané ou une copie effectuée après l’arrêt du service. Un modèle de sauvegarde et de restauration de volumes persistants indépendant explique le problème de portabilité, tandis qu’un test de restauration prouvant que la sauvegarde est exploitable souligne qu’une tâche de sauvegarde n’est validée que lorsque vous pouvez en récupérer un état utile.

Testez la disposition avec des exercices de suppression, de redémarrage et de restauration

Après avoir séparé les chemins, testez chaque rôle selon la promesse associée. Videz un cache jetable et vérifiez qu’il se reconstitue. Recréez le conteneur Home Assistant et vérifiez que la configuration persistante est conservée. Redémarrez l’hôte et vérifiez que les montages sont disponibles avant le démarrage des services qui en dépendent. Restaurez une sauvegarde récente dans une cible temporaire et vérifiez les utilisateurs, les automatisations, les intégrations et un échantillon représentatif de l’historique ou de l’état des services complémentaires.

Documentez ensuite la propriété et les permissions. Un chemin parfaitement séparé sur le disque peut tout de même poser problème après une migration si le nouvel UID/GID du conteneur ne peut pas le lire. Consignez les points de montage, la propriété du système de fichiers, l’inclusion dans les sauvegardes, la durée de conservation et le service autorisé à supprimer chaque répertoire.

Rôle des données Stockage type Règle de récupération
Configuration/base de données Home Assistant Pool stable de SSD/données d’applications Persistant et sauvegardé
Cache/temporaire jetable SSD de travail ou stockage temporaire limité Reconstruction sécurisée requise
Sauvegardes Cible distincte sur l’hôte, sur un support ou hors site Restauration testée
Archives volumineuses Stockage axé sur la capacité Protégé selon sa valeur

La séparation est réussie si la suppression du cache ne peut pas détruire Home Assistant, si la recréation des conteneurs ne peut pas effacer l’état des applications et si la perte du périphérique principal contenant les données des applications ne détruit pas l’unique copie de récupération. Les rôles de stockage doivent rendre les conséquences d’une panne évidentes avant qu’elle ne survienne.

Configuration de NAS et de serveur

À lire aussi

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.