Fhem in Container oder nicht? Wo sind die Vorteile?

Begonnen von DerD, 28 September 2024, 10:28:16

Vorheriges Thema - Nächstes Thema

DerD

Hallo,
ich habe da eine Frage zum Verständnis (deren Antwort ich zumindest nicht hier gefunden habe): warum FHEM und andere Services in Container wie Proxmox oder Virtualbox installieren?

Hintergrund ist: bei mir läuft ein System auf HP Elitebook 2530, Ubuntu 22.04. Aktuell erfasst FHEM primär Werte, gesteuert wird derzeit nicht. Zusätzlich ist der Server noch lokales Datengrab.
Jetzt soll möglicherweise noch Syncthing drauf.
Eigentlich hätte ich jetzt auch das direkt als Programm installiert. Ich sehe derzeit keinen Grund, die Prozesse und dait auch FHEM stärker über Container zu isolieren, bin aber auch nicht der IT-Spezi um das in der Tiefe zu durchschauen.

Zugriff von extern auf das System habe ich derzeit nicht, auch nicht geplant. Alles läuft hinter einer FB im lokalen Netzwerk. Aktueller Verbrauch sind ~10W, das soll auch soweit möglich so bleiben.
Gruß,
Dieter

Damian

Zitat von: DerD am 28 September 2024, 10:28:16Hallo,
ich habe da eine Frage zum Verständnis (deren Antwort ich zumindest nicht hier gefunden habe): warum FHEM und andere Services in Container wie Proxmox oder Virtualbox installieren?

Hintergrund ist: bei mir läuft ein System auf HP Elitebook 2530, Ubuntu 22.04. Aktuell erfasst FHEM primär Werte, gesteuert wird derzeit nicht. Zusätzlich ist der Server noch lokales Datengrab.
Jetzt soll möglicherweise noch Syncthing drauf.
Eigentlich hätte ich jetzt auch das direkt als Programm installiert. Ich sehe derzeit keinen Grund, die Prozesse und dait auch FHEM stärker über Container zu isolieren, bin aber auch nicht der IT-Spezi um das in der Tiefe zu durchschauen.

Zugriff von extern auf das System habe ich derzeit nicht, auch nicht geplant. Alles läuft hinter einer FB im lokalen Netzwerk. Aktueller Verbrauch sind ~10W, das soll auch soweit möglich so bleiben.


Dann lass das so, wenn du keine anderen Systeme brauchst.

Ich hatte zuvor Jahrelang FHEM auf raspis laufen, jetzt läuft FHEM auf einem Proxmox-System.

Der Vorteil von Proxmox ist, dass man sehr flexibel ist, ein lauffähiges System auf andere Hardware zu migrieren oder täglich ohne besonderen Aufwand inkrementelle Backups von FHEM-VM zu machen.

Der eigentliche Auslöser auf Proxmox zu wechseln war aber die Tatsache, dass ich noch andere Systeme unabhängig von FHEM laufen lassen wollte, ohne neue Hardware kaufen zu müssen.

Der Nachteil ist, dass man sich neben FHEM auch um Proxmox kümmern muss und die anderen VMs, die man am laufen hat :)

Man kann auch Proxmox mit mehreren VMs mit 10 Watt laufen lassen, dass hängt von der Hardware ab, siehe: https://forum.fhem.de/index.php?topic=100024.msg1317210#msg1317210
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

passibe

Nur kurz zu den Begrifflichkeiten: Proxmox/Virtualbox sind keine Container, sondern Hypervisor. Hypervisor sind die Software, die es ermöglicht, Virtuelle Maschinen zu betreiben. Auch Virtuelle Maschinen sind keine Container, sondern einfach nur virtualisierte Betriebssysteme. Das ist was anderes als z.B. Docker-Container, die auf einem (virtualisierten) Betriebssystem laufen, aber in gewissen Punkten davon abstrahiert sind.

Der Vorteil von VMs ist, dass man ein bisschen Ausfallsicherheit schafft (wenn eine VM wegen einer kernel panic stirbt, laufen die anderen weiter) und ggfs. auch mehr Isolation der einzelnen Services (= mehr Sicherheit, aber natürlich auch nur, wenn man sonst alles ordentlich absichert).

Ich nutze aber eigentlich nur Docker. Mir gefällt, dass man bei vielen Services über Env-Variablen alles recht easy konfigurieren kann (bei FHEM jetzt eher nicht, but still) und auch einfach auf andere Systeme übertragen kann/aus einem Backup wiederherstellen kann.
Man kann auch mit verschiedenen Netzwerken für die verschiedenen Container ganz gut steuern welche Services sich gegenseitig im Netzwerk "sehen" und hat auch sonst eben den Sicherheitsbenefit, dass aus dem Container nicht so einfach auf das Hostsystem ausgebrochen werden kann.
Und es ist sehr angenehm, damit Dinge auszuprobieren, weil man sich nicht das Hostsystem mit irgendwelchen Dependencies und Config-Dateien zumüllt.

Wenn du aber "nur" FHEM und Syncthing betreibst und auch nicht von extern zugreifst, dann lass es einfach so. Wenn da noch mehr dazu kommt, wäre m.E. jedenfalls Docker aber durchaus mal einen Blick wert.

DerD

Danke euch beiden für das feedback.
Ich denke, dann bleibt es erst einmal dabei wie es ist, je weniger ich administrieren muss, desto besser. So IT-affin bin ich doch nicht. Und bzgl zusätzlicher Sicherheit habe ich immer eher die Befürchtung, es schlimmer zu machen als es ursprünglich war.
Allerdings ist das Thema Backup des Systems so ein Punkt, an dem ich gerade arbeite.


@Passibe: du hast Recht, für mich waren virtuelle Maschinen bisher dasselbe wie Container. Docker hatte ich tatsächlich schon mal für einen Versuch mal installiert, aber jetzt doch nicht aktiv genutzt. Wie war das noch mit "Dinge ausprobieren und sich das System zumüllen" :)
Sehr gutes Stichwort, muss mal schauen was sonst noch so drauf kam, und nie wieder runter.
Gruß,
Dieter

Bartimaus

Mein FHEM ist auch Anfang letzten Jahres auf einen Proxmox-LXC umgezogen.
Grund war das instabile RaspiOS, und die umständliche Handhabung bei Backups.

Ich hatte früher 3 Raspis parallel laufen, jeweils mit ca. 5-7W.
Jetzt läuft alles über einen modernen MiniPC, und der Stromverbrauch liegt insgesamt bei 7W-9W.
Und aktuell laufen 1VM und 3-LXC 24/7.

Wie bereits von @Damian erwähnt, ist das mittlerweile die dritte ProxmoxHardwareEbene auf dem die Systeme laufen. Der Umzug ist sowas von simpel, das es eine Freude macht. 
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

swsmily

#5
Ich hatte auch lange Zeit Raspis laufen, aber gerade wenn man mehrere Dienste auf einem laufen lässt, und irgendwas probiert, etwas schief geht, kommt es evtl zum Totalausfall.
Daher hab ich nun auch seit über einem Jahr Proxmox und dort die Dienste, die vorher auf einem Raspi liefen (FHEM, Nginx, PiHole) nun als einzelne Container.
Läuft schneller, gerade in FHEM, Grafiken werden viel schneller erzeugt. Unterdessen sind noch weitere Dienste, z.b. Nextcloud und Zoneminder hinzugekommen.
Backups der LXC-Container werden sehr schnell und einfach erstellt, diese sichere ich regelmäßig auf meinem NAS.

Dazu kommt der Vorteil der Übertragbarkeit. Als ich den MiniPC etwas mehr RAM spendieren wollte, wollte ich nicht auf FHEM in der Offline-Zeit verzichten. Also Backup von FHEM und PiHole Container gemacht und auf meinem Notebook in einer Virtuellen Maschine (VMware) mit Proxmox eingespielt.
Mini-PC heruntergefahren, Container in der VM auf dem Notebook gestartet und alles lief weiter wie bisher.

Hinzu kommt, wenn ich irgendwas neues testen will, dafür hab ich einen Standard-Container, indem die grundlegenden Dinge bereits eingerichtet sind (User, Fail2Ban usw.). Diesen Container klone ich und kann sofort mit einem neuen Projekt beginnen.

Für mich bietet Proxmox daher deutlich mehr Vorteile als alles auf einem System (z.b. Raspi) laufen zu lassen.

Docker hatte ich früher mal kurz ausprobiert, aber damit kam ich nicht klar.

DerD

Zitat von: Damian am 28 September 2024, 11:03:56Der Vorteil von Proxmox ist, dass man sehr flexibel ist, ein lauffähiges System auf andere Hardware zu migrieren oder täglich ohne besonderen Aufwand inkrementelle Backups von FHEM-VM zu machen.


Ich habe die Zeit genutzt, um mich etwas in das Thema einzuarbeiten. Testweise mein fhem über proxmox auf VM und LXC installiert. Da mein Server nicht der allerschnellste ist, schnidet LXC da besser ab, in der VM dauert es alles doch deutlich länger (auch wenn ich keine Zahlen habe).

Inkrementelle Backups innerhalb von proxmox gehen aber nur per VM und nicht per LXC, wenn ich das richtig verstanden habe. Was für einen Grund hattest du denn, dich für VM zu entscheiden?
Gruß,
Dieter

Bartimaus

Das hier kennst?

https://tteck.github.io/Proxmox/

Erleichtert Proxmox ungemein.
FHEM habe ich darüber auch in einen LXC installiert. Davon mache ich immer FullBackups, mit vielen Logdateien ist so ein Backup gerade mal 600MB gross
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

DerD

#8
Zitat von: Bartimaus am 06 Oktober 2024, 16:51:53Das hier kennst?

Nein, bisher nicht. Allerdings fühle ich mich aber bei weitem noch nicht script-reif in Proxmox. Verstehe ja das Grundgerüst kaum :)

Zitat von: Bartimaus am 06 Oktober 2024, 16:51:53FHEM habe ich darüber auch in einen LXC installiert. Davon mache ich immer FullBackups, mit vielen Logdateien ist so ein Backup gerade mal 600MB gross

Eben. Mein Vz-dump hat "nur" ~350MB, das würde ich vielleicht 1/Monat sichern wollen, nicht täglich.
Und täglich ändern sich da ja in der Regel nur wenige log-files, nicht aber der ganze Rest, also geschätzt 99%. Klassisch hätte ich da jetzt den Log-file Ordner per Duplicati 1/Tag weggesichert.

Obige Info mit "inkrementelles Backup" hatte bei mir die Hoffnung geweckt, dafür im System bleiben zu können. Ein Script (siehe oben) speziell für LXCs habe ich aber nicht gefunden, oder aber die Kurzbeschreibung nur nicht entsprechend verstanden.


PS: der dump der VM hat ~1,3GB. Bei geschätzter Größe von 100k des inkrementellen Backups schont die Vorgehenswese innerhalb kurzer Zeit den Festplattenspeicher. Gesicherten restore vorausgesetzt, natürlich.
Gruß,
Dieter

Damian

Zitat von: DerD am 06 Oktober 2024, 15:03:24Ich habe die Zeit genutzt, um mich etwas in das Thema einzuarbeiten. Testweise mein fhem über proxmox auf VM und LXC installiert. Da mein Server nicht der allerschnellste ist, schnidet LXC da besser ab, in der VM dauert es alles doch deutlich länger (auch wenn ich keine Zahlen habe).

Inkrementelle Backups innerhalb von proxmox gehen aber nur per VM und nicht per LXC, wenn ich das richtig verstanden habe. Was für einen Grund hattest du denn, dich für VM zu entscheiden?

Der Vorteil von LXC ist die Nähe zu Kernelroutinen, die vom Host genutzt werden. Dadurch sollten LXCs etwas effizienter sein als VMs und weniger Hauptspeicher verbrauchen.

Allerdings musste ich einen erheblichen Nachteil von LXCs gegenüber VMs bei mir feststellen.

Ich mache täglich ein inkrementelles Backup aller virtuellen Maschinen auf einem Proxmox Backup-Server.

Bei einem Snapshot, wenn man die Maschine nicht stoppen will, wird bei LXC zunächst ein Abbild der Maschine auf der Platte des Hosts gemacht und dann wird erst das Backup des Abbilds ausgeführt. Das führt dazu, dass man zusehen kann, wie die SSD durch große Mengen an Daten des Abbilds, die auf der SSD landen, altert.
Wenn man die Maschine im LXC stoppt, dann wird ohne ein Abbild des Systems das Backup ausgeführt. Das schont die SSD des Hosts, allerdings läuft in der Zeit die virtuelle Maschine nicht.

Bei VMs hat man das Problem nicht, hier kann man ein Snapshot machen, ohne die SSD unnötig zu strapazieren.

Daher läuft bei mir FHEM in einer VM, denn die möchte ich nicht jeden Tag stoppen müssen.

Übrigens dauert ein inkrementelles Backup von FHEM mit 32GB über LAN ca. 1 Minute.

Meine Nextcloud läuft leider im LXC, die muss ich stoppen. Mit ca. 2 TB dauert das Backup ca. 18 Minuten, solange ist kein Zugriff auf die Nextcloud möglich.
 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Bartimaus

Zitat von: DerD am 06 Oktober 2024, 18:38:15Nein, bisher nicht. Allerdings fühle ich mich aber bei weitem noch nicht script-reif in Proxmox. Verstehe ja das Grundgerüst kaum :)



Es ist ja auch nur eine schöne übersichtliche Darstellung von InstallationsScripten für Proxmox. Auch für den "Anfänger".
Scipt kopieren und in der Proxmox-Host-Shell eingeben. Der Rest läuft automatisch. Man muss ich um keine Sourcen etc. kümmern. Sehr bequem.
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

DerD

Zitat von: Bartimaus am 07 Oktober 2024, 11:12:21Es ist ja auch nur eine schöne übersichtliche Darstellung von InstallationsScripten für Proxmox. Auch für den "Anfänger".

Habe es jetzt kapiert, "Installationsscript" war das Stichwort damit es klick gemacht hat. Hatte mein fhem schon jetzt von Hand über ein Debian-LXC meiner Wahl aufgesetzt, aber beim nächsten Mal, definitiv eine Option. Die Sammlung ist auch ganz schön zum einfach mal stöbern und einfach ausprobieren :)

Eines macht mir allerdings kopfzerbrechen: wie macht ihr es, dass verschiedene Container auf die gleichen Daten zugreifen können. Meine fhem Log-files liegen ja klassisch unter /opt/fhem/log, aber aus anderen LXCs komme ich da ja nicht drauf. Zumindest nicht per sshfs/fuse, der
Per VM wiederum geht das ganz normal.
Gruß,
Dieter

CoolTux

Wozu sollte man sowas denn brauchen? Gerade das fhem.log Brauch man doch nirgendwo anders.

Ansonsten wäre bind mount eine option
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bartimaus

Zitat von: DerD am 12 Oktober 2024, 19:29:34Eines macht mir allerdings kopfzerbrechen: wie macht ihr es, dass verschiedene Container auf die gleichen Daten zugreifen können. Meine fhem Log-files liegen ja klassisch unter /opt/fhem/log, aber aus anderen LXCs komme ich da ja nicht drauf. Zumindest nicht per sshfs/fuse, der
Per VM wiederum geht das ganz normal.

Das ist bei einem unprivilegiertem LXC etwas tricky.
Mein FHEM-Backup so wie die Logs sichere ich auf einem USB-Stick, den ich im ProxmoxHost gemountet habe. Den habe ich dann mit Schreibrechten in den LXC durchgereicht. Wie @cooltux schon schrieb, geht das per "Bind mountpoints": https://www.itsembedded.com/sysadmin/proxmox_bind_unprivileged_lxc/
LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

DerD

Zitat von: CoolTux am 12 Oktober 2024, 19:44:11Wozu sollte man sowas denn brauchen? Gerade das fhem.log Brauch man doch nirgendwo anders.

Weil es aktuell bei nicht nur fhem.log ist, sondern ich derzeit noch auschließlich mit log-files arbeite.

Zitat von: CoolTux am 12 Oktober 2024, 19:44:11Ansonsten wäre bind mount eine option
Zitat von: Bartimaus am 13 Oktober 2024, 09:24:08Das ist bei einem unprivilegiertem LXC etwas tricky.
Mein FHEM-Backup so wie die Logs sichere ich auf einem USB-Stick, den ich im ProxmoxHost gemountet habe. Den habe ich dann mit Schreibrechten in den LXC durchgereicht. Wie @cooltux schon schrieb, geht das per "Bind mountpoints": https://www.itsembedded.com/sysadmin/proxmox_bind_unprivileged_lxc/

Damit ich das Konzept dahinter richtig verstehe: den Speicherplatz selber stellt der host zur Verfügung, und die Container speichern dann auf den host, nicht im Container selbst? Und ich muss "nur" noch, das mit bind verstehen und zum laufen bringen :)
Gruß,
Dieter