Zitat von starwarsfan
Beitrag anzeigen

- Es werden ein Master (mit der IP "mIP") und ein Slave (mit der IP "sIP") benutzt, der Slave befindet sich dabei im Hot-Standby - er ist also permanent aktiv und "wartet" darauf, dass der Master ausfaellt
- Zusaetzlich wird eine "virtuelle IP" (hier "vIP" genannt) benutzt ueber die die Visu jeweils erreichbar ist. Master bzw Slave konfigurieren dazu ihr Netzwerk entsprechend um und setzen passende NAT-Regeln auf (ersteres ist auch der Grund wieso das unter Docker nicht funktionieren wird). Das NAT reicht ALLE Netzwerkverbindungen von der virtuellen IP auf die kanonische IP durch, also egal ob http(s), ssh, ftp, mqtt, whatever...
- Der Master ist also grundsaetzlich wie gewohnt ueber seine kanonische IP (mIP) erreichbar und fuehrt auch alle Kommunikation ueber dieser IP durch. Die virtuelle IP wird nur fuer die Visu und Zugriffe von ausserhalb genutzt (also zB Visu-Zugriff ueber Reverse-Proxies, externe Zugriffe auf irgendwelche KOs per HTTP und aehnliches).
- Faellt der Master aus (dies wird im wesentlichen ueber arpings ueberprueft) uebernimmt der Slave die virtuelle IP und ersetzt so den Master.
- Kommt der Master zurück so wird der Slave die Kontrolle wieder abgeben (zumindest ist das momentan so angedacht, muss ich mal gucken ob und wie genau das Sinn macht).
Es wird einen LBS geben der die komplette Funktionalitaet beinhaltet, es werden keine Zusatzinstallation notwendig. Allerdings ist ein Update des iputils-Paketes notwendig weil die Version im 6.5er CentOS zu buggy ist um das vernueftig umzusetzen. Der LBS kann das Update bei Bedarf auch automatisch einspielen.
Auf dem Master wird der LBS installiert und entsprechend konfiguriert, auf dem Slave kann ein leeres Projekt angelegt werden das nur aus demselben LBS mit identischer Konfiguration besteht.
Wenn der Master startet:
- konfiguriert er - sofern vIP nicht bereits im Netz vergeben ist - vIP als zusaetzliche IP auf das angegebene Interface und etabliert die NAT-Regeln
- ist vIP bereits vergeben wird davon ausgegangen das momentan der Slave aktiv ist und solange gewartet bis vIP wieder verfuegbar ist
- der LBS spaltet einen Prozess ab, der den EXEC-Teil des LBS ueberwacht - dies ist notwendig damit bei einem Absturz des EXEC-Teils (bzw von Edomi) die Netzwerkkonfiguration wieder rueckgaengig gemacht werden kann
- das aktuellste Backup wird per FTP auf den Slave uebertragen
- er wartet eine gewisse Zeit und
- ueberprueft ob ein neues Backup vorhanden ist und uebertraegt dieses ebenfalls zum Slave
- GOTO 5
- versucht er den Master via mIP zu erreichen - wenn dies nicht gelingt GOTO 9, andernfalls
- er legt - falls noch nicht geschehen - einen FTP-User mit dem konfigurierten Passwort an
- der LBS spaltet einen eigenen Prozess ab und beendet Edomi
- er ueberprueft ob ein neues Backup hochgeladen wurde und entpackt dieses - dabei werden einige Aenderungen vorgenommen, vornehmlich in der edomi.ini - vornehmlich weil mIP ungleich sIP
- er ueberprueft ob er mIP erreichen kann, falls das nicht klappt GOTO 8, andernfalls
- wartet er gewisse Zeit
- GOTO 4
- da der Master nicht mehr erreichbar ist wird jetzt der Slave aktiv, das macht er indem er rebootet, das entspricht dann effektiv einem GOTO 1
- der EXEC-Teil des LBS konfiguriert vIP auf das entsprechende Interface, etabliert passende NAT-Regeln und versucht das Netzwerk durch entsprechende Pakete davon zu ueberzeugen, dass vIP jetzt ueber eine andere MAC zu erreichen ist
- der Slave sollte jetzt ueber vIP erreichbar sein und laeuft mit dem letzten Backup-Stand des Masters
- im EXEC-Teil wird in regelmaessigen Abstaenden versucht mIP zu erreichen, wenn dies klappt geht der Slave davon aus, dass der Master wieder funktioniert und rebootet sich selber, das ist faktisch ein GOTO 1
Der Master-Teil ist schon fast komplett fertig, auf der Slave-Seite fehlen noch ein paar Punkte. Ist alles ein wenig komplexer als anfaenglich gedacht

Kommentar