Home Assistant ne devrait utiliser une base de données ou un hôte de stockage séparé que lorsque cette séparation résout un problème mesuré de capacité, de conservation, de sauvegarde ou de domaine de panne. Déplacer l’état hors du contrôleur n’est pas automatiquement une amélioration.
Pour de nombreux foyers, une base de données Recorder SQLite locale sur un stockage SSD fiable constitue la solution la plus simple, car elle élimine les dépendances au réseau, à l’authentification, au DNS et au démarrage d’un serveur de base de données. Avant de créer un autre hôte, déterminez d’abord si le véritable problème vient d’un nombre excessif d’écritures du Recorder, d’une conservation trop longue, de requêtes d’historique lentes, d’une capacité locale limitée ou du besoin de récupérer un service indépendamment.
Réglez le Recorder avant d’ajouter un serveur de base de données
La croissance du Recorder dépend des entités et événements enregistrés, de leur fréquence de changement et de la durée de conservation de l’historique. Si des capteurs bruyants ou des domaines inutiles dominent les écritures, déplacer la même charge vers un serveur de base de données plus grand ne fait que déplacer le problème au lieu de le résoudre.
Un processus actuel de réglage du Recorder montre comment la conservation, les règles d’inclusion et d’exclusion ainsi que le comportement des validations influencent la charge d’écriture avant d’envisager une migration de base de données. Mesurez la taille de la base de données, le temps des requêtes d’historique, la latence du stockage et l’activité d’écriture après le réglage.
Conservez la base de données en local lorsque la charge réglée reste réactive, que les sauvegardes se terminent dans la fenêtre de maintenance et que la capacité SSD disponible reste confortable. La séparation doit répondre à une exigence non satisfaite, et non à l’idée générale que les bases de données client-serveur sont toujours plus rapides.
Utilisez une base de données externe lorsque ses avantages opérationnels sont réels
Un hôte MariaDB, MySQL ou PostgreSQL séparé peut être pertinent lorsque Home Assistant partage une plateforme de base de données déjà bien administrée, lorsque la conservation d’un historique long crée une pression durable sur les requêtes, lorsque l’hôte du contrôleur doit rester léger ou remplaçable, ou lorsque la sauvegarde et la supervision de la base de données doivent suivre un cycle de vie indépendant.
Un exemple de migration de SQLite vers MariaDB illustre les nouveaux éléments introduits par ce choix : service de base de données, identifiants, adresse réseau, initialisation du schéma, procédure de migration, validation et restauration. Un cas concret de migration d’une base de données Home Assistant plus conséquent montre pourquoi un historique long et de grands volumes de données peuvent justifier cette administration supplémentaire.
L’article de ZimaSpace consacré à la fiabilité des mises à niveau avec une base de données externe définit la limite de maintenance correspondante : la base de données doit être sauvegardée, mise à niveau et restaurée comme un service à part entière, plutôt que considérée comme une infrastructure invisible.
Ne placez pas par défaut une base de données SQLite active sur un partage réseau
Un serveur de base de données distant et un fichier de base de données stocké sur SMB ou NFS correspondent à deux architectures différentes. Une base de données client-serveur gère les verrous et les transactions au sein du service de base de données et échange des requêtes sur le réseau. SQLite gère le verrouillage de son fichier de base de données via le système de fichiers ; la sémantique du système de fichiers réseau, la disponibilité du montage, la latence et le comportement des verrous deviennent donc partie intégrante de chaque transaction.
L’analyse détaillée du verrouillage de SQLite explique pourquoi les systèmes de fichiers réseau peuvent produire un comportement différent de celui d’un disque local. Un cas de panne sur un partage réseau de Home Assistant montre le risque concret lorsque la base de données active du Recorder dépend d’un montage distant.
Utilisez librement un NAS pour les copies de sauvegarde, les exportations, les fichiers multimédias et autres données conçues pour le stockage réseau. Si l’état actif du Recorder doit résider sur une autre machine, préférez une base de données client-serveur prise en charge plutôt que de déplacer le fichier SQLite sur un partage.
Séparez le stockage en volume de l’état actif de Home Assistant
Tous les répertoires Home Assistant qui grandissent n’ont pas leur place dans le même niveau de stockage. La configuration, l’état des intégrations, la base de données active du Recorder, les fichiers multimédias, les clips des caméras, les exportations et les sauvegardes ont des besoins différents en matière de latence et de récupération. Conservez l’état de petite taille et fréquemment mis à jour sur un stockage local à faible latence, sauf si un service séparé le gère délibérément.
Déplacez les fichiers multimédias volumineux ou les générations de sauvegarde vers la capacité d’un NAS derrière des points de montage stables. Documentez si Home Assistant est autorisé à démarrer sans ce montage. L’absence d’une archive de photos ne devrait pas empêcher le démarrage des automatisations d’éclairage, tandis que l’absence de la base de données active devrait produire un état dégradé explicite plutôt qu’une solution de repli silencieuse que personne ne remarque.
| Rôle des données | Emplacement par défaut | Raison de la séparation |
|---|---|---|
| Configuration et état actif | SSD local | Faible latence et récupération simple |
| SQLite du Recorder | SSD local | Éviter les dépendances au verrouillage des systèmes de fichiers réseau |
| Base de données SQL externe | Hôte local ou hôte de base de données séparé | Mise à l’échelle, conservation, sauvegarde et administration indépendantes |
| Fichiers multimédias et exportations | Stockage local ou NAS | La capacité compte souvent davantage que la latence |
| Sauvegardes | Au moins une copie hors hôte | Résister à la perte de l’hôte actif |
Validez le démarrage, les pannes et la restauration avant de rendre la séparation permanente
Préparez le nouveau rôle de base de données ou de stockage sans supprimer l’ancien chemin de récupération. Redémarrez l’hôte de la base de données avant Home Assistant, redémarrez Home Assistant avant que la base de données soit prête, interrompez le réseau, renouvelez les identifiants, remplissez le système de fichiers cible jusqu’à proximité de son seuil de réserve et restaurez la base de données sur une instance vierge.
Mesurez le temps des requêtes d’historique au 95e percentile, la latence des automatisations lors d’une forte activité du Recorder, le temps de redémarrage, la durée des sauvegardes et le temps de récupération après une panne de l’hôte de la base de données. Si la séparation améliore une mesure, mais transforme le redémarrage de trente secondes du contrôleur en procédure de récupération impliquant plusieurs services, incluez ce coût opérationnel dans la décision.
Conservez le stockage local lorsqu’il atteint déjà l’objectif fixé. Utilisez un hôte de base de données séparé lorsque les opérations client-serveur et la récupération indépendante offrent de véritables avantages. Utilisez un hôte de stockage séparé pour les données en volume et les sauvegardes, mais ne rendez pas le contrôle local critique dépendant d’un système de fichiers distant sans raison testée.
Configuration NAS et serveur
Plus à lire

Une configuration RAG locale pour les articles de recherche, les notes et les documents privés
Conserver l’autorité des documents originaux, rendre l’indexation reproductible, exiger des citations et séparer les modèles remplaçables des données sources privées.

Pourquoi les développeurs utilisent-ils un nœud passerelle pour le DNS privé, le VPN et les applications de test ?
Un nœud passerelle fournit aux applications privées un nom et un chemin d’accès contrôlés uniques, tandis que les nœuds de calcul restent non exposés...

Comment créer une pile d’applications reproductible avec des fichiers Compose, des secrets et des données persistantes séparés
Gardez les définitions Compose portables, protégez les secrets et sauvegardez séparément les données des applications afin de pouvoir reconstruire la pile sur un hôte...

