InfluxDB ist eine Time-Series Datenbank, also eine Datenbank die dafür entwickelt wurde, um zeitbasierte Daten zu speichern und für Abrufe bereitzustellen. Zeitbasierte Daten, das können beispielsweise die Messwerte von Temperaturfühler sein, oder aber die Festplattenauslastung auf dem eigenen Home-Server – eben einfach alles, was einen Wert hat, der zu einem bestimmten Zeitstempel gehört.
Ich nutze InfluxDB, um die Messwerte aus Home Assistant dauerhaft zu speichern. Die HA-eigene SQLite Datenbank speichert bei mir nur für 90 Tage die Daten, kopiert jedoch jeden Messwert auch zu meinem InfluxDB-Server, wo sie dauerhaft gespeichert werden sollen. Nun war die virtuelle Disk aber nur 40GiB groß und da war auch noch Ubuntu Server drauf installiert, schließlich blieben für Influx dann nur noch ca. 17 oder 18 GiB übrig, um langfristig Daten speichern zu können.
Das mir der Festplattenspeicher mal ausgehen könnte, hatte ich Anfangs gar nicht auf dem Schirm, jedoch passierte das sogar relativ früh – nach etwa 3 Wochen Laufzeit. Also musste eine Lösung her, und ich entschied mich dafür, eine zweite virtuelle Disk mit 200G zu der VM hinzuzufügen und diese ausschließlich als Datenplatte für InfluxDB zu verwenden.
Auto-Mount der neuen Disk in Ubuntu Server
Damit die neu angelegte Disk beim System start automatisch gemounted wird, benötigen wir als erstes die UUID der Hard Disk.
$ lsblk -f
In meinem Fall hieß die Disk „vdb“. Die UUID notierte ich mir zwischenzeitlich irgendwo. Nun öffnen wir die Datei /etc/fstab in unserem lieblings Texteditor und fügen die folgende neue Zeile hinzu
# Mount der neuen InfluxDB-Disk im Verzeichnis /var/appdata
/dev/disk/by-uuid/897ff6a-fa38-497c-88b6-d27320898bf1 /var/appdata ext4 defaults 0 1
Die neue Disk formattieren
Damit die neue Hard Disk überhaupt genutzt werden kann, muss sie noch formatiert werden. Dazu nutzte ich den folgenden Befehl:
# mkfs -t ext4 /dev/vdb
Anschließend einen kurzen Systemreboot durchführen und testen, ob der neue Mountpoint in /var/appdata genutzt werden kann.
# touch /var/appdata/testfile.txt
Wenn die Datei erfolgreich erstellt werden konnte, hat das Mounten der neuen Disk geklappt.
InfluxDB Datenbank verschieben und Permissions anpassen
Standardmäßig befinden sich die Influx-Daten im Verzeichnis /var/lib/influxdb/ – Dies kann jedoch kontrolliert (und angepasst) werden, wenn man sich die Datei /etc/influxdb/config.toml anschaut.
Bevor wir nun die Daten verschieben können, müssen/sollten wir InfluxDB vorher stoppen, um eine Korruption der Datenbankdateien zu vermeiden. Außerdem legen wir noch einen Unterordner ‚influxdb‘ an, in dem wir die Dateien hineinverschieben werden.
# systemctl stop influxd
# mkdir /var/appdata/influxdb
# cp -r /var/lib/influxdb/* /var/appdata/influxdb/
Wir schauen uns nun die File Permissions der Original-Dateien mittels ls -l an und übernehmen den Besitzer und die Gruppe in die neuen Dateien. In meinem Fall war der Besitzer und die Gruppe beides influxdb, entsprechend gebe ich folgenden Befehl ein, um dies auf die kopierten Dateien zu übertragen:
# chown -R influxdb: /var/appdata/influxdb
Der -R Parameter gibt an, dass wir chown rekursiv ausführen möchten, dass heißt das auch alle Unterordner mit einbezogen werden. Beim Benutzer:Gruppe-Parameter habe ich nur den Benutzer und ein Doppelpunkt angegeben. Das ist ausreichend, wenn wenn die Gruppe zu dem gleichen Wert geändert werden soll wie der Benutzername, also ebenfalls ‚influxdb‚.
Anschließend muss die vorher genannte config.toml angepasst werden:
bolt-path = "/var/appdata/influxdb/influxd.bolt"
sqlite-path = "/var/appdata/influxdb/influxd.sqlite"
engine-path = "/var/appdata/influxdb/engine"
Und zu guter letzt starten wir den Service für InfluxDB wieder:
systemctl start influxd
Und das sollte es auch schon gewesen sein. Den Status kann ich mit systemctl status influxd einsehen, bzw. kann ich auch einfach die Weboberfläche von InfluxDB öffnen um zu sehen, ob alles funktioniert. Wenn die Datenbank läuft wie erwartet, können die original-Dateien in /var/lib/influxdb/ gelöscht werden. Damit ist die Verschiebung entültig abgeschlossen.
Ich habe InfluxDB Version 5.0.2 auf HA OS (Core 2026.4.1) installiert,
und meine Werte werden in der Datenbank gespeichert.
Nun möchte ich die Datenbank auf einen Netzwerkspeicher verschieben.
Ich kann aber über Advanced SSH & Web Terminal das Verzeichnis „influxdb“ weder unter „/var/lib“ noch unter“/etc“ finden.
Ebenso finde ich die Datei „config.toml“ nicht.
Hat sich in einer der neueren Versionen von InfluxDB gegenüber dieser Dokumentation bzgl. der Speicherorte geändert?
Hallo Wolfgang,
Die Anleitung wurde damals für InfluxDB 2 geschrieben. In InfluxDB 3 wird diese Anleitung nicht mehr funktionieren, da es komplett anders aufgebaut ist.
Viele Grüße
Hallo Damian,
vielen Dank für die Antwort. Ich hatte das ja bereits vermutet.
Mit InfluxDB 3 gibt es also derzeit keine Möglichkeit, die Datenbank auszulagern?
Kann ich damit rechnen, dass es zukünftig eine Anleitung dafür geben wird?
Viele Grüße
Ich habe mit InfluxDB 3 nur relativ wenig Erfahrung, da ich nach Performance-Problemen im Zusammenspiel mit Grafana wieder auf InfluxDB 2 zurück gegangen bin. Aber ich kann mich daran erinnern, dass v3 eine einzelne Datei als Object-Storage verwendet und der Pfad wohl auch konfigurierbar wäre. Siehe auch: https://docs.influxdata.com/influxdb3/core/reference/config-options/