Hallo zusammen,
mein aktuelles Openhab System ist etwas in die Jahre gekommen Version 3.2 und möchte mein System gerne ein Update verpassen.
Das System ist auf einen Nuc von einem Bekannten installiert worden, leider hat dieses im Moment keine Möglichkeit mir beim Update zu helfen. Daher würde ich gerne das System mit einem zweiten Nuc neu aufsetzen und alles testen und anschließend Item rules und things umziehen.
Dafür benötige ich von euch die Hilfe was generell alles zu tun ist um mein System sicher zu machen und in Zukunft leicht ein Update aufzuspielen.
Ist der Einsatz von Docker sinnvoll oder nicht?
Falls ja welches OS sollte ich dann wählen?
Folgendes sollte das System können:
- Fernzugriff von Außen mit der APP
- Sicherung des aktuellen Systems erstellen (USB-Stick)
Vielen Dank für die Hilfe worauf ich achten sollte oder woran ich denken sollte
Neuinstallation Openhab 5
- udo1toni
- Beiträge: 15672
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Neuinstallation Openhab 5
tl;dr: Debian Trixie mit Docker ist eine gute Option.
Langversion: Ein ganz klares "es kommt drauf an"
Die verschiedenen Optionen:
Betriebssystem: Du bist frei in der Entscheidung, aber es gibt immer Dinge zu bedenken.
Windows: kennst Du sicher, ist easy aufzusetzen, aber muss ständig gewartet werden (mit Zugriff von außen in besonderem Maße). Außerdem ist Microsoft bestrebt, den Anwender zu entrechten, Telemetrie lässt sich nicht vollständig unterbinden (es sei denn, man kappt das Internet, was aber nicht so erwünscht sein dürfte). dazu kommt noch, dass, egal wie sparsam Windows sein mag, es unheimliche Verschwendung ist, auf einem Server eine grafische Oberfläche vorzuhalten.
GNU/Linux: ist anspruchsvoller, aber heutzutage auch keine Raketenwissenschaft mehr. Je größer die Wünsche, umso mehr muss man sich einarbeiten, irgendwas ist ja immer.
FreeBSD: ist ähnlich wie GNU/Linux, aber wesentlich kleinere Nutzergemeinde, d.h. im Zweifel auch weniger Hilfe bei Problemen.
MacOS: auf dem Nuc (legal) eher keine Option.
Betriebsart (Nativ/Container/VM):
Nativ ist sehr einfach umzusetzen, 64-Bit OS aufspielen, Java 21 installieren, openHAB installieren, fertig. Dafür hast Du allerdings anschließend größere Aufgaben, z.B. Datensicherung.
Container: Du benötigst eine Zwischenschicht. Docker ist sehr beliebt, nicht zuletzt, weil man hier massig "fertige" Softwarestacks bekommt. Also Host-OS aufspielen, Docker aufsetzen, openHAB als Docker Container aufspielen, Zusatzkomponenten ebenfalls als Docker Container einrichten. Das kann sehr komfortabel sein, allerdings benötigst Du zwingend Kenntnisse über Docker, je mehr, umso besser, es ist auf jeden Fall nicht ausreichend, den Namen mal gehört zu haben
Auch hier stellt sich die Frage nach der Datensicherung, aber durch die strikte Trennung von Nutzdaten und Softwarestack musst Du zumindest nicht lange überlegen, was Du sicherst, stattdessen musst Du "einfach" alle Volumes sichern. Das kann auch ein Docker Container erledigen... aber wieder ein zusätzliches Tool, was zu erlernen ist.
VM: Ressourcenhungrig (im Vergleich zum Container), dafür aber fast 100 % Trennung von Host und VM, beim Container wird das Host System im Userspace genutzt. Je nach weiteren Aufgaben kann es dennoch sinnvoll sein, eine vollständige Virtualisierung aufzubauen. Auch hier gilt, die Virtualisierungsumgebung muss zusätzlich erlernt werden.
Meine Empfehlung (Zeit-Kosten/Nutzen...) wäre ein Debian GNU/Linux mit Docker. Als Verwaltung für Docker kann ich Portainer empfehlen, ebenfalls als Docker Container. Wenn Du im Nuc mehrere SSDs gleicher Größe hast, könnte es sinnvoll sein, die Platten als Software RAID1 zu betreiben und darauf LVM einzurichten. LVM steht für Logical Volume Management, damit kannst Du beliebig viele Partitionen erstellen. Besonders daran: Du kannst Snapshots erzeugen, um dann vom Snapshot ein Backup anfertigen zu können. Anschließend kann der Snapshot dann wieder gelöscht werden. Das heißt, Du musst für Backups das System nicht anhalten. Auch Größenänderungen von Partitionen sind einfacher zu realisieren, weil eine LVM Partition nicht zwingend "an einem Stück" sein muss, das heißt, bei Änderungen an der Partitionsgröße müssen andere Partitionen nicht verschoben werden.
Docker auf Debian ist leicht einzurichten, weil es dafür vorbereitete Scripte gibt.
Debian als Grundlage ist meine Wahl, weil ich Debian ganz gut kenne
es kommt nicht mit den neuesten Paketen, sondern verwendet Software, die "gut abgehangen" ist. Stabilität geht klar über maximale Geschwindigkeit und modernstes Design. Grundsätzlich kann man aber auch mit jeder anderen Distribution glücklich werden, unabhängig davon, ob man nun Docker nutzt oder nicht, einzige Bedingung ist Java21 in der 64-Bit-Version, das OS muss also ebenfalls 64 Bit sein und jung genug, dass Java21 zur Verfügung steht (das ist bei Debian "Trixie" der Fall).
Eine andere Option steht in meiner Signatur, das wäre Proxmox VE (Virtual Environment). Läuft auch auf einem Nuc prima. Für openHAB braucht es dabei keine "echte" VM, es reicht völlig einen LXC (C=Container) zu verwenden. Der Unterschied zu Docker: bei LXC wird bis auf den Kernel alles im Container mit installiert, als Kernel wird der vom Hostsystem verwendet. Für den Administrator sieht ein LXC so aus wie ein "normales" System, von ganz wenigen Punkten abgesehen, Du kannst Dich normal an der Shell anmelden und diese verhält sich so wie gewohnt. Bei Docker Containern kommt es sehr darauf an, wie der Container aufgebaut ist. Ein weiterer Punkt bei Proxmox VE ist ZFS als Dateisystem. ZFS bringt Snapshots mit, aber anders als bei LVM muss ein Snapshot nicht so schnell wie möglich wieder gelöscht werden, ZFS verwendet Vektoren um die veränderten Daten einzubinden. Das funktioniert so gut, dass man mit einfachen Routinen Autosnapshots erstellen kann und dann jederzeit entweder das gesamte Dataset (die "Partition") zu einen Zeitpunkt x zurückrollen kann, oder alternativ beliebig Dateien aus diesem Zeitpunkt herauskopieren kann, ungemein praktisch, um Konfigurationspatzer einfach ungeschehen zu machen, ohne andere Dinge zu verlieren.
Hat man noch ein zweites System, welches mit ZFS umgehen kann, gibt es gar die Möglichkeit, die Snapshots automatisch auf dieses Zweitsystem zu kopieren, so dass selbst bei einem Hardwarecrash die Daten nicht verloren sind. Natürlich sollten die Systeme nicht allzu dicht beieinander stehen, damit ein Ausfall möglichst nicht beide Systeme auf einen Schlag vernichten kann
Nur für openHAB alleine ist das eher Overkill, aber vielleicht fallen Dir ja noch ein paar andere Dinge ein, die Du gerne haben möchtest.
Tatsächlich kann man aber sehr viel auch mit Docker erschlagen, selbst die Replikation der Daten wäre (auf andere Weise) möglich.
Bei der Sicherung auf ein externes Medium kannst Du auch von Docker profitieren, weil, wie erwähnt, die Daten sehr strikt von der Software getrennt gehalten werden, Du musst also lediglich die jeweiligen Volumes sichern, niemals den Container als solches. Wenn das System crasht, erstellst Du den Container einfach neu und spielst die Volumes wieder ein, danach geht es an der Stelle weiter, an der das System vor dem Crash war.
Sorry für viel Text und kein klares "Mach es so und so!".
Die wichtigsten Fragen für eine Einschätzung (aus meiner Sicht) hast Du im Ausgangsposting nicht direkt beantwortet, das wäre zum einen Dein Kenntnisstand, also wie gut kennst Du Dich mit PC und OS aus, zum zweiten wie lernwillig bist Du (das kann schon ein ziemlicher Berg werden...) und nicht zuletzt das ungefähre Setup (NUC ist zu unspezifisch, wieviel RAM, wie groß ist der verbaute Langzeitspeicher, HD,SSD, NVMe), auch was die in openHAB eingesetzten Komponenten betrifft, also was braucht es drum herum noch (Datenbank, MQTT Broker, Zwave oder ZigBee Anbindung usw.)
Langversion: Ein ganz klares "es kommt drauf an"
Die verschiedenen Optionen:
Betriebssystem: Du bist frei in der Entscheidung, aber es gibt immer Dinge zu bedenken.
Windows: kennst Du sicher, ist easy aufzusetzen, aber muss ständig gewartet werden (mit Zugriff von außen in besonderem Maße). Außerdem ist Microsoft bestrebt, den Anwender zu entrechten, Telemetrie lässt sich nicht vollständig unterbinden (es sei denn, man kappt das Internet, was aber nicht so erwünscht sein dürfte). dazu kommt noch, dass, egal wie sparsam Windows sein mag, es unheimliche Verschwendung ist, auf einem Server eine grafische Oberfläche vorzuhalten.
GNU/Linux: ist anspruchsvoller, aber heutzutage auch keine Raketenwissenschaft mehr. Je größer die Wünsche, umso mehr muss man sich einarbeiten, irgendwas ist ja immer.
FreeBSD: ist ähnlich wie GNU/Linux, aber wesentlich kleinere Nutzergemeinde, d.h. im Zweifel auch weniger Hilfe bei Problemen.
MacOS: auf dem Nuc (legal) eher keine Option.
Betriebsart (Nativ/Container/VM):
Nativ ist sehr einfach umzusetzen, 64-Bit OS aufspielen, Java 21 installieren, openHAB installieren, fertig. Dafür hast Du allerdings anschließend größere Aufgaben, z.B. Datensicherung.
Container: Du benötigst eine Zwischenschicht. Docker ist sehr beliebt, nicht zuletzt, weil man hier massig "fertige" Softwarestacks bekommt. Also Host-OS aufspielen, Docker aufsetzen, openHAB als Docker Container aufspielen, Zusatzkomponenten ebenfalls als Docker Container einrichten. Das kann sehr komfortabel sein, allerdings benötigst Du zwingend Kenntnisse über Docker, je mehr, umso besser, es ist auf jeden Fall nicht ausreichend, den Namen mal gehört zu haben
VM: Ressourcenhungrig (im Vergleich zum Container), dafür aber fast 100 % Trennung von Host und VM, beim Container wird das Host System im Userspace genutzt. Je nach weiteren Aufgaben kann es dennoch sinnvoll sein, eine vollständige Virtualisierung aufzubauen. Auch hier gilt, die Virtualisierungsumgebung muss zusätzlich erlernt werden.
Meine Empfehlung (Zeit-Kosten/Nutzen...) wäre ein Debian GNU/Linux mit Docker. Als Verwaltung für Docker kann ich Portainer empfehlen, ebenfalls als Docker Container. Wenn Du im Nuc mehrere SSDs gleicher Größe hast, könnte es sinnvoll sein, die Platten als Software RAID1 zu betreiben und darauf LVM einzurichten. LVM steht für Logical Volume Management, damit kannst Du beliebig viele Partitionen erstellen. Besonders daran: Du kannst Snapshots erzeugen, um dann vom Snapshot ein Backup anfertigen zu können. Anschließend kann der Snapshot dann wieder gelöscht werden. Das heißt, Du musst für Backups das System nicht anhalten. Auch Größenänderungen von Partitionen sind einfacher zu realisieren, weil eine LVM Partition nicht zwingend "an einem Stück" sein muss, das heißt, bei Änderungen an der Partitionsgröße müssen andere Partitionen nicht verschoben werden.
Docker auf Debian ist leicht einzurichten, weil es dafür vorbereitete Scripte gibt.
Debian als Grundlage ist meine Wahl, weil ich Debian ganz gut kenne
Eine andere Option steht in meiner Signatur, das wäre Proxmox VE (Virtual Environment). Läuft auch auf einem Nuc prima. Für openHAB braucht es dabei keine "echte" VM, es reicht völlig einen LXC (C=Container) zu verwenden. Der Unterschied zu Docker: bei LXC wird bis auf den Kernel alles im Container mit installiert, als Kernel wird der vom Hostsystem verwendet. Für den Administrator sieht ein LXC so aus wie ein "normales" System, von ganz wenigen Punkten abgesehen, Du kannst Dich normal an der Shell anmelden und diese verhält sich so wie gewohnt. Bei Docker Containern kommt es sehr darauf an, wie der Container aufgebaut ist. Ein weiterer Punkt bei Proxmox VE ist ZFS als Dateisystem. ZFS bringt Snapshots mit, aber anders als bei LVM muss ein Snapshot nicht so schnell wie möglich wieder gelöscht werden, ZFS verwendet Vektoren um die veränderten Daten einzubinden. Das funktioniert so gut, dass man mit einfachen Routinen Autosnapshots erstellen kann und dann jederzeit entweder das gesamte Dataset (die "Partition") zu einen Zeitpunkt x zurückrollen kann, oder alternativ beliebig Dateien aus diesem Zeitpunkt herauskopieren kann, ungemein praktisch, um Konfigurationspatzer einfach ungeschehen zu machen, ohne andere Dinge zu verlieren.
Hat man noch ein zweites System, welches mit ZFS umgehen kann, gibt es gar die Möglichkeit, die Snapshots automatisch auf dieses Zweitsystem zu kopieren, so dass selbst bei einem Hardwarecrash die Daten nicht verloren sind. Natürlich sollten die Systeme nicht allzu dicht beieinander stehen, damit ein Ausfall möglichst nicht beide Systeme auf einen Schlag vernichten kann
Nur für openHAB alleine ist das eher Overkill, aber vielleicht fallen Dir ja noch ein paar andere Dinge ein, die Du gerne haben möchtest.
Tatsächlich kann man aber sehr viel auch mit Docker erschlagen, selbst die Replikation der Daten wäre (auf andere Weise) möglich.
Bei der Sicherung auf ein externes Medium kannst Du auch von Docker profitieren, weil, wie erwähnt, die Daten sehr strikt von der Software getrennt gehalten werden, Du musst also lediglich die jeweiligen Volumes sichern, niemals den Container als solches. Wenn das System crasht, erstellst Du den Container einfach neu und spielst die Volumes wieder ein, danach geht es an der Stelle weiter, an der das System vor dem Crash war.
Sorry für viel Text und kein klares "Mach es so und so!".
Die wichtigsten Fragen für eine Einschätzung (aus meiner Sicht) hast Du im Ausgangsposting nicht direkt beantwortet, das wäre zum einen Dein Kenntnisstand, also wie gut kennst Du Dich mit PC und OS aus, zum zweiten wie lernwillig bist Du (das kann schon ein ziemlicher Berg werden...) und nicht zuletzt das ungefähre Setup (NUC ist zu unspezifisch, wieviel RAM, wie groß ist der verbaute Langzeitspeicher, HD,SSD, NVMe), auch was die in openHAB eingesetzten Komponenten betrifft, also was braucht es drum herum noch (Datenbank, MQTT Broker, Zwave oder ZigBee Anbindung usw.)
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.6 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte
Hostsystem Proxmox VE 9.1.6 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte