NEWS
Ausfallssicherheit IoBroker - maximale Verfügbarkeit
-
@arteck ```
set@VM-IOBroker:~$ iobroker setup custom Current configuration: - Objects database: - Type: jsonl - Host/Unix Socket: 127.0.0.1 - Port: 9001 - States database: - Type: jsonl - Host/Unix Socket: 127.0.0.1 - Port: 9000 - Data Directory: ../../iobroker-data/ Type of objects DB [(j)sonl, (f)ile, (r)edis, ...], default [jsonl]: r When Objects and Files are stored in a Redis database please consider the following: 1. All data will be stored in RAM, make sure to have enough free RAM available! 2. Make sure to check Redis persistence options to make sure a Redis problem will not cause data loss! 3. The Redis persistence files can get big, make sure not to use an SD card to store them. Host / Unix Socket of objects DB(redis), default[127.0.0.1]: 192.168.1.62 Port of objects DB(redis), default[6379]: Type of states DB [(j)sonl, (f)file, (r)edis, ...], default [redis]: Host / Unix Socket of states DB (redis), default[192.168.1.62]: Port of states DB (redis), default[6379]: Host name of this machine [VM-IOBroker]: Please choose if this is a Master/single host (enter "m") or a Slave host (enter "S") you are about to edit. For Slave hosts the data migration will be skipped. [S/m]: m Important: Using redis for the Objects database is only supported with js-controller 2.0 or higher! When your system consists of multiple hosts please make sure to have js-controller 2.0 or higher installed on ALL hosts *before* continuing! Important #2: If you already did the migration on an other host please *do not* migrate again! This can destroy your system! Important #3: The process will migrate all files that were officially uploaded into the ioBroker system. If you have manually copied files into iobroker-data/files/... into own directories then these files will NOT be migrated! Make sure all files are in adapter directories inside the files directory! Do you want to migrate objects and states from "jsonl/jsonl" to "redis/redis" [y/N]: y Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y Connecting to previous DB "jsonl/jsonl"... Creating backup ... This can take some time ... please be patient! host.VM-IOBroker 77 states saved host.VM-IOBroker 144 objects saved Backup created: /opt/iobroker/backups/2024_01_26-13_27_47_backupiobroker-migration.tar.gz updating conf/iobroker.json Connecting to new DB "redis/redis" (can take up to 20s) ... No connection to objects 192.168.1.62:6379[redis] New Database could not be connected. Please check your settings. No settings have been changed. restoring conf/iobroker.json No connection to states 192.168.1.62:6379[redis] set@VM-IOBroker:~$ set@VM-IOBroker:/$ ping 192.168.1.62 PING 192.168.1.62 (192.168.1.62) 56(84) bytes of data. 64 bytes from 192.168.1.62: icmp_seq=1 ttl=63 time=0.800 ms 64 bytes from 192.168.1.62: icmp_seq=2 ttl=64 time=0.590 ms 64 bytes from 192.168.1.62: icmp_seq=3 ttl=64 time=0.608 ms 64 bytes from 192.168.1.62: icmp_seq=4 ttl=64 time=0.757 ms 64 bytes from 192.168.1.62: icmp_seq=5 ttl=64 time=0.672 ms ^C
und hier der Auszug aus der redis.conf vom LXC Container
# You will also need to set a password unless you explicitly disable protected # mode. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bind 0.0.0.0 # By default, outgoing connections (from replica to master, from Sentinel to #
# you are sure you want clients from other hosts to connect to Redis # even if no authentication is configured. protected-mode no # Redis uses default hardened security configuration directives to reduce the # attack surface on innocent users. Therefore, several sensitive configuration # directives are immutable, and some potentially-dangerous commands are blocked. #
-
@etzeste13 Hast Du den redis-service nach dem Ändern der redis.conf auch einmal neu gestartet, damit das übernommen wird?
Gruss, Jürgen
-
@wildbill
Ja habe ich natürlich gemacht. Lokal über die Container-Console läuft der redis-server auch und ich kann daten eingeben.
Was mir noch aufgefallen ist:
Wenn ich mich über meinen produktiven IOBroker Host (RasPi4 mit lokalem Redis) über folgendem Befehl auf den Redix LXC verbinden will, geht das zwar, aber bei der eingabe des ersten Befehl schmeist es mich wieder raus...pi@RasPi41:~ $ redis-cli -h 192.168.1.62 -p 6379 192.168.1.62:6379> info Error: Connection reset by peer pi@RasPi41:~ $
nachtrag: Hier noch der Status vom Redis-Container
root@RedisMaster:~# systemctl status redis-server * redis-server.service - Advanced key-value store Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; preset: enabled) Active: active (running) since Fri 2024-01-26 09:08:19 UTC; 5h 5min ago Docs: http://redis.io/documentation, man:redis-server(1) Main PID: 2676 (redis-server) Status: "Ready to accept connections" Tasks: 5 (limit: 9434) Memory: 3.3M CPU: 43.954s CGroup: /system.slice/redis-server.service `-2676 "/usr/bin/redis-server 0.0.0.0:6379" Jan 26 09:08:18 RedisMaster systemd[1]: Starting redis-server.service - Advanced key-value store... Jan 26 09:08:19 RedisMaster systemd[1]: Started redis-server.service - Advanced key-value store. root@RedisMaster:~# ^C root@RedisMaster:~#
vG Etze
-
@etzeste13 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
New Database could not be connected. Please check your settings. No settings have been changed.
na steht doch da. firewall regeln ??
port ist anders..zumindest kann keine verbindung zum redis (nicht zu der maschiene) hergestellt werden
-
@arteck
sry für die späte antwort, war ein paar tage nicht da...
also ich habe keine firewall -regeln eingetragen und port ist auch 6379 also standard...
ich glaube ich werden den redis-container nochmals aufsetzen und mein glück versuchen...noch eine frage: ich bin bei der weiteren suche nach wie ich das am besten umsetze über die anleitung von darkiop gestolpert, https://github.com/darkiop/doku-iobroker-ha/blob/main/20211113_ioBroker_auf_Proxmox_HA_v1.40.pdf und das scheint ja deinem Setup sehr ähnlich zu sein. Wenn ja, würdest du sagen mann kann diese Anlietung nach wie vor als Guide nehmen?
Ich frage nur, weil mit das Thema mit GlusterFS nichts sagt... und ich der meinung war Proxmox in den aktuellen Versionen, hat ähnliche Funktionen bereits integriert...
Vlt noch eine Frage: Mein aktuelles Produktivsystem läuft ja auf einem RasPi4 mit Redis direkt am Host. Bei den ersten Versuchen ein Backup auf die Proxmox VM aufzuspielen hat das nie funktioniert, weil beim Einspielen des Backups der Redis-Server ja nicht mehr auf 127.0.0.1 liegt. Muss ich für die Migration auf die Proxmox-Umgebung ein Backup erstellen, das auf Basis File oder json ist?
vG Etze
-
@etzeste13 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
GlusterFS
kannst auch ceph nehmen.. der ist in proxmox direkt intergriert
ja die liebe migration....
mach so
du brauchst die dump datei des redis.. diesen kopierst du auf das neue redis was du installiert hast..und startest es
dann iobroker verzeichniss zippen vom pi4..
auf dem proxmox eine vm erstellen und nackten iobroker installieren
das gezippte rüber auf die VMdann den installierten ordner löschen.. (nix deinstallieren nur löschen)
das zip entpackensomit hast du eine version auf dem proxmox dass deiner pi4 umgebung entspricht ..ist aber nich nicht lauffähig
erstmal die konfig änder zum neuen redis (ip anpassen)dann nochmal
iob host this
damit machst du dem iobroker bekannt das der diese neue maschiene als standard nehmen soll
iob start
und fertig ist die laube
-
@arteck
Hallo, danke für die Anleitung, habe das gerade mal probiert.
Kann es sein, dass der Benutzer auf der VM und am Pi gleich sein müssen?
Ich kann nämlich nachdem ich das iobroker Verzeichnis ( /opt/iobroker) vom Pi in das der VM kopiert habe den iob nicht mehr starten, angeblich augrund fehlender berechtigungen.Muss aber gleich dazu sagen, dass ich den iob schon einige tage zuvor auf der VM installiert hatte und nur mal in betrieb genommen habe, und nicht wie du beschrieben hast die VM gänzlich jungfräulich aufgesetzt habe. sonst habe ich aber das /opt/iobroker verzeichnis auf der VM komplett gelöscht und mit den Daten vom PI getauscht.
vG Etze
-
-
@arteck sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
vielleicht findet sich einer der ein QUorum mit einem PI macht.. und kann berichten
Link zu meiner Doku wurde ja bereits gepostet - der PI als Quorum Device war eigentlich unauffällig.
@arteck sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
kannst auch ceph nehmen.. der ist in proxmox direkt intergriert
Ja, Ceph wäre auch eine Option. Meine allerdings gelesen zu haben deutlich Hardware (RAM) hungriger. Wie sind da deine Erfahrungen?
-
@darkiop sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
Wie sind da deine Erfahrungen?
meine kisten haben alle 32 GB als Arbeitsspeicher.. ich merk da kein Unterschied. ich hatte früher auch gluster installiert
hab nur gewechselt da ceph mit im proxmox intergriert ist -
@arteck sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
p.s: lass die Finger von einem PI fürs Quorum..
Hallo
kurze Verständnisfrage dazu: Ich habe iob bislang in einem Container unter proxmox laufen (proxmox auf einem intel nuc) Im "standby" läuft ein 2. nuc auf dem auch proxmox mit iob ist, wenn ein System die Grätsche machen sollte, müsste ich manuell das backup (den container) starten.
Ich will das als nächste Projekt meiner Hausautomatisierung auch auf nodes verteilen mit dem Ziel, dass es stabil auch ohne manuelles Eingreifen im Fehlerfall weiterläuft.
Dazu würde ich iob wohl von Container auf VM umziehen.
Frage: Warum keinen Pi fürs Quorum, bzw was würdest du da mind. empfeheln oder hast du selber im Einsatz. Ich tendiere da bei mir zu einem 3. nuc, spricht da was gegen?
2. Frage: zigbee - Wie machst du das mit dem USB Stick, das wäre doch weiterhin ein single point of failure? Oder kann man auf 2 iob Instanzen jeweils zigbee laufen lassen? Die Devices würden doch nur mit einem Stick/einem Adapter reden? -
@amg_666 der pi macht nur das quorum.. mehr nicht.dan bi ich bei dir.. im meisten Fällen installieren sich die Leute noch was da drauf.. und dann fängt der Schlamasel an
ich habe 5 Nuc's... laufen
obs VM oder LXC ist egal.. LXC wird bei migration durchgestartet VM läuft weiter.. also ohne abbruch.mein Zigbee Stick wie auch der Zwave steckt in einem rock64.. und der gibt die Port per ser2net raus..
das ist der einzie POF bei mir.. wobei ich daneben ein OrnagePi liegen habe mit der gleichen IP und den gleichen Einstellungen..
sollte der Rock abrauchen..warum auch immer...und wozu soll ich jetzt 2 iob instanzen laufen haben.. ??
-
@arteck sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
und wozu soll ich jetzt 2 iob instanzen laufen haben.. ??
ich meinte 2 Instanzen (oder Slaves ??) um wirklich 2 zigbee sticks aktiv zu haben, aber das scheint ja nicht zu gehen, also muss man da wohl mit single pooint of failure leben
-
@amg_666 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
also muss man da wohl mit single pooint of failure leben
jep leider
-
@arteck Ich habe das Thema mit der Migration mal getestet, so wie du beschrieben hast...
Also Redis dump auf den LXC Container kopiert, und alle dateien von /opt/iobroker vom RasPi in das gleiche Verzeichnis der neu aufgesetzten VM kopiert.
wenn ich dann "iob setup custom" oder jeden anderen iob Befehl starten möchte, funktioniert das nicht und zwar mit folgender Fehlermeldunghast du eine Ahnung was ich da noch falsch gemacht haben könnte?
Hier noch ein Screenshot des iobroker verzeichnises der VMwas mache ich da falsch?
lg Etze
-
@etzeste13 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
was mache ich da falsch?
aufmerksam lesen... aber nochmal
zuerst da rein ein iob installieren und nicht direkt kopieren..
damit alles so ist wie es soll..dann den iobroker Verzeichniss löschen und deinen anstatt reinkopieren
dann zuerstiob host this iob fix
dann sollte es laufen
-
@arteck said in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
iob host this
Das ist ja das Problem, das ich zu diesen Befehlen gar nicht komme, weil überhaupt kein iob xxx Befehl funktioniert.
Bevor ich jaiob host this iob fix
ausführen kann müsste ich ja laut deiner Beschreibung
iob setup custom
machen damit ich den neuen LXC-Redis-Server einstellen kann
ich befürchte wenn ichiob host this iob fix
vor
iob setup custom
das es dann nicht funktioniert, weil er ja noch nicht den neuen Redis-Server kennt...., oder verstehe ich da was falsch?
Wäre die Migration vielleicht leichter, wenn ich den aktiven host auf json oder File umstelle und dann ein Backup erstelle, bzw. die Daten aus /opt/iobroker in die VM kopiere?
Müsste ich dann während dieser Zeit auch alle Slaves entsprechend umstellen und den Master-Pi als Datenquelle angeben...? -
lesen BITTE LESEN..sonst bin ich hier raus.. wenn du nur die hälfte machst
zuerst da rein ein iob installieren und nicht direkt kopieren..
damit alles so ist wie es soll..dann den iobroker Verzeichniss löschen und deinen anstatt reinkopieren
-
@arteck
Hallo Arteck,sorry ich will wirklich nicht lästig sein. Und ich glaube auch, das ich keinen strukturellen fehler gemacht habe.Ich liste meine Schritte also nochmals auf die zu dem Ergebniss führen, dass iob- Befehle inkl iob-setup custom nicht mehr funktionieren.
1: debian VM aufgesetzt
2: Iobroker auf der nackten VM mit Befehlensudo apt-get install curl curl -sLf https://iobroker.net/install.sh | bash -
installiert.
3:) Auf dieser "nackten IOB-VM" habe ich dann den Inhalt aus dem Orner /opt/iobroker gelöscht und mit den Dateien von meinem PI aus dem Ordner /opt/iobroker ersetzt.und ab diesem Zeitpunkt, kann ich keinen iob-Befehl auf der IOB-VM mehr absetzen. Ich bin das mehrere Male durchgegangen ist aber immer das gleiche ergebnis
Muss ich vielleicht beim Kopieren der Daten vom PI auf die VM auf was spezielles aufpassen? Ich habe es bisher einfach mit WinSCP vom RasPi auf meinen PC kopiert und von da wieder per WinSCP auf die VM....
Vg Etze
-
@amg_666 sagte in Ausfallssicherheit IoBroker - maximale Verfügbarkeit:
- Frage: zigbee - Wie machst du das mit dem USB Stick, das wäre doch weiterhin ein single point of failure? Oder kann man auf 2 iob Instanzen jeweils zigbee laufen lassen? Die Devices würden doch nur mit einem Stick/einem Adapter reden?
Richtig.
Deshalb würde ich ein ZigBee-Gateway nehmen welches über LAN angesprochen wird. Dann kannst du das Backup einfach starten und - Zack - ZigBee ist wieder verbunden.
Ich habe auch eine ioBroker VM auf einem Host und einen 2. als Backuphost auf dem ich die Kopie / den Restore wieder Starten könnte.