NEWS
Redis auf dedizierten Server legen
-
Hallo,
aktuell läuft mein redis Server mit auf dem gleichen (LCX Container) wie iobroker.
Ich würde das gerne umstellen. Wie gehe ich hier am besten vor?
Einfach nur "iob setup custom" ausführen und die IP anpassen? -
@caravandriver Ich würde sagen ja, habe das auch schon überlegt. Allerdings auch wieder verworfen, weil ich mir davon, bei näherem Nachdenken, auch ein paar Nachteile erdacht habe. Der gesamte Verkehr läuft momentan „lokal“ also direkt im Speicher und auf die Platte (bei mir eine VM unter Proxmox). Nach dem Auslagern müsste das dann über das Netzwerk laufen, was da, eventuell, ja durchaus einen Flaschenhals darstellen könnte, wenn die Daten dann durch das, im direkten Vergleich, viel langsamere Netzwerk müssen. Vorteil wäre halt, dass man die VM auch mal wieder aus einem Snapshot oder Backup holen könnte, ohne die aktuellen Objektzustände zu verlieren.
Momentan habe ich auch nur die states in redis und die Objekte in jsonl (oder umgekehrt?). Da würde es ja Sinn machen, beides auf redis zu legen. Und eben dann die Frage, ob der Vorteil die Nachteile überwiegt…Zudem beim Umzug nicht vergessen, die aktuelle redis-DB auf den neuen Container umzuziehen, bevor man das iobroker mitteilt.
Gruss, Jürgen
-
@wildbill sagte in Redis auf dedizierten Server legen:
(bei mir eine VM unter Proxmox
Bei mir auch, aber ich habe noch eine weitere iobroker Instanz auf einem PI in der Garage laufen der Victron MPPT Charger via USB ausließt.
-
nee, nicht ganz, du copierst dir die dump.rdb in /var/lib/redis/ noch auf den neuen Server..
Schau, ob die redis.conf gleich ist...machst am besten folgendes:
Host iobroker:
cd /opt/iobroker
iob backup
iob stop
scp /var/lib/redis/dump.rdb user@redis-host:/home/user/Host Redis:
sudo systemctl stop redis-server
sudo rm /var/lib/redis/dump.rdb
sudo cp /home/user/dump.rdb /var/lib/redis/
sudo chown redis:redis /var/lib/redis/dump.rdb
sudo systemctl start redis-server
sudo systemctl status redis-serverDamit sollte die Redis-Datenbank wieder laufen, wenn hier keine Fehler kommen, den iobroker umstellen:
Host iobroker:
iob setup custom
Dann R, die IP vom Redis-Host, und den Rest mit Enter bestaetigen.Iob start
und wenn ich nix vergessen hab, gehts jetzt..
-
@ilovegym Hast Du das so laufen und eventuell Erfahrungen, ob man sich so durch das vergleichsweise langsamere Netzwerk zwischen iobroker und redis-Server irgendwelche Nachteile einbaut?
Gruss, Jürgen
-
ja, habe das genauso laufen, Nachteile, keine, ausser man updated halt den Redis-LXC einmal im Monat, aber da einer mehr oder weniger, geht ja schnell...
Netzwerk... ich hab das einfach in mein IOT Netzwerk integriert und da keine Extrawurst gemacht.
Siehe hier ist mein System vorgestellt, da laeuft schon was.Ich hatte auch schon Redis im Docker auf der Syno, Redis als VM, Redis auf dem iobroker-Host.. aber diese Kombi gefaellt mir am besten.. .
Edit1:
Wichtig, wenn man Backup einspielt vom iobroker ueber Proxmox, auch das Backup vom Redis-Server nehmen..Edit2:
Geschwindigkeitsvorteile: ja, definitiv. -
@ilovegym hat geklappt! Danke
-
ja, freut mich!
Redis ist simple, einfach nur die .conf und dump.rdb sichern / kopieren.. und fertich..Aber gib dem genug Ressourcen, sonst ist das ein Nadeloehr..
-
@wildbill sagte in Redis auf dedizierten Server legen:
vergleichsweise langsamere Netzwerk
Moin,
soweit ich
Proxmox
verstehe, sollte da nichts den Node verlassen, erst wenn Du ein HA Cluster hast und ein LXC oder eine VM spricht mit dem Partner Node, verlässt es den lokalen Node und nutzt das Netzwerkkabel, oder etwas läuft außerhalb von Proxmox, dann auch.Du kannst aber auf dem Node weitere virtuelle Schnittstellen
vmbr1, vmbr2, ..
anlegen ohne physisches Deviceeth
und die LXCs, VMs damit verbinden.VG
Bernd -
@wildbill sagte in Redis auf dedizierten Server legen:
Nach dem Auslagern müsste das dann über das Netzwerk laufen, was da, eventuell, ja durchaus einen Flaschenhals darstellen könnte, wenn die Daten dann durch das, im direkten Vergleich, viel langsamere Netzwerk müssen.
Vielleicht verstehe ich es ja falsch, aber wenn der redis lxc auf dem gleichen node wie der ioBroker (vm/lxc) läuft geht doch nichts aus der Kiste raus. Was soll da bremsen?
-
@dp20eic @Meister-Mopper Ja, ihr habt ja recht. Ich habe das sogar schon bei iobroker und fhem mit virtuellen NICs auf dem gleichen Host, eben aus dem Grund. Keine Ahnung, warum ich da gleich an Netzwerk als Flaschenhals gedacht habe. Dann muss ich mal schauen, ob ich das morgen auch umsetze.
@ilovegym Warum hast Du oben beim Edit 1 betont, dass es wichtig ist, dass man auch das Redis-Backup einspielt wenn man ein Backuo von iobroker einspielt. Das hatte ich mir als großen Vorteil von getrenntem redis erhofft: dass alle Datenpunkte ihren momentanen Wert behalten, wenn ich nur ein „ältere“ Version von iobroker aus dem Backup hole. Klar, wenn sich die Objektstruktur geändert hat, dann sicher nicht mehr, aber ansonsten sollte es doch egal sein?Gruss, Jürgen
-
Ja, früher war das mal so, aber seit js-Controller 5.x geht es bei mir zumindest nicht mehr…
-
@ilovegym Dann sehe ich allerdings (für mich) keinerlei Vorteil, redis in einen Extra-LXC zu legen. Würde ja dann nur unnötig Mehraufwand zum Administrieren bedeuten, es läuft ein zusätzlicher Container und der ganze Datenverkehr muss zumindest einmal durch den Host, was sicher nicht performanter sein wird, als direkt innerhalb der iobroker-VM. Vielleicht nur im akademischen Grad messbar, aber schneller sicher nicht.
Dann lasse ich es doch grad so weiterlaufen. Danke für die Info.
Gruss, Jürgen
-
@wildbill sagte in Redis auf dedizierten Server legen:
Dann lasse ich es doch grad so weiterlaufen. Danke für die Info.
Moin,
wenn Du noch Ressourcen freihast, dann könnte man ja mal ein neuen Redis LXC bauen und ein neuen
ioBroker
LXC, dann den neuenioBroker
auf den neuen Redis LXC umstellen und mal Backup / Restore versuchen.
Nur mal so eine Idee.VG
Bernd -
@dp20eic Wenn ich mal viel Lust und Liebe habe, mache ich das vielleicht. Aber iobroker muss bei mir in erster Linie eines: performant und stabil laufen, damit alles gesteuert wird, wie es soll. Am produktiven System spiele ich da also nicht rum, wenn ich da eine mögliche zusätzliche Fehlerquelle einbauen könnte.
Vielleicht spiele ich wirklich mal ein Backup vom produktiven in eine neue VM und teste mal…Gruss, Jürgen
-
Also wenn dein Proxmox Server genug Ressourcen hat, dann hast du auf jeden Fall einen Geschwindigkeitsvorteil.
War hier ja auch so, hatte erst Redis in der iobroker-vm, war lahm, dann Redis in einen lxc ausgelagert, jetzt schnurrt es.. -
@ilovegym Nur der Zusammenhang erschliesst sich mir da irgendwie nicht ganz. Wenn redis innerhalb der iobroker-VM auf demselben Proxmox-Host läuft, auf dem ich auch einen separaten redis-LXC laufen lassen würde, dann bleibt die Hardware an sich ja gleich. Ohne separaten redis-LXC eher mit etwas weniger Overhead. Ob ich dann der iobroker-VM beispielsweise 4 CPU-Kerne zuweise, oder sich die VM und ein separater redis-LXC die 4 Kerne teilen sollte doch eher für die Variante ohne separaten LXC sprechen?!
Oder wird redis innerhalb der iobroker-VM immer wieder durch die dort sonst laufenden Prozesse eingebremst?
Ich werde wohl um einen eigenen Test zu gegebener Zeit nicht herumkommen....Gruss, Jürgen
-
also hier war es so, der Redis-Server wurde von den anderen iobroker-tasks eingebremst.. ok, ich hab halt auch ne grosse Installation..
Genau, denke, das kann man mit seiner Umgebung und Installation nur selbst mal austesten, wenn man Zeit und Muse dazu hat.
-
@ilovegym liegt das evtl an der iob VM - ein lxc ist doch flinker - das würde erklären, wrum redis dann flinker ist/wird
ich habe einen iob lxc - da sollte es eigentlich keinen unterschied geben, wenn ich die redis auslagere auf einen anderen lxc
-
@liv-in-sky Also ich glaube (ohne es je direkt verglichen zu haben) dass der „Geschwindigkeits“-Unterschied zwischen Installation als VM oder LXC vielleicht maximal messbar, aber nicht spürbar ist. Einigermaßen potente Hardware vorausgesetzt. Aber das setze ich bei Verwendung von Proxmox mal voraus.
Der Unterschied wird wohl genauso groß sein, als wenn ich für redis einen zusätzlichen LXC verwende, welcher vom Host ja dann auch verwaltet werden muss und etwas Leistung „frisst“.Ihr bringt mich noch dazu, dass ich mein Produktiv-System doch auf abgesetzten redis-LXC für states und objects umbaue zum Testen…
Gruss, Jürgen