Folgendes Szenario:
Ein paar Linux Rechner im lokalen Netzwerk. Gentoo, 2.6er Kernel.
Alle Rechner arbeiten gemeinsam an einem Problem. Dazu hab ich ein paar PHP- und Perl-Scripts laufen, die ich dem default-runlevel hinzugefügt habe.
Ein paar Scripts sind für mathematische Berechnungen zuständig, ein anderes verarbeitet Daten auf einem lokalen MySql-Server.
Sollte ich den Computer abschalten wird der aktuelle Status der Scripts überprüft und der Computer erst dann heruntergefahren, wenn die Scripts einen speziellen Punkt erreicht haben, von dem an sie wieder weiterarbeiten können, wenn das Script wieder aktiviert wird.
Ein Problem hab ich allerdings wenn der Strom plötzlich ganz weg ist. Mehrere USV-Stationen für mehr als 10 Computer kosten nahezu ein Vermögen. Daher such ich nach alternativen Möglichkeiten, die Daten auf einem Weg zu retten, der möglichst kostengünstig ist, wenn das Netzwerk erweitert werden soll.
Das Hauptproblem liegt diesbzgl. vor allem bei den INSERTS und UPDATES der MySQL-Datenbanken. Was passiert mit einer solchen Abfrage beispielsweise, wenn genau in diesem Moment der Strom wegbricht?
Es ist insofern auch schwierig die Daten in der DB zu kontrollieren, da die Menge selbst nicht überschaubar ist und vor allem nicht lesbar, da teilweise einfach nur Zahlen und Checksums gespeichert werden.
Meine erste Idee war, die Datenbank-Abfragen in einem Pool zu sammeln, damit nicht jede Sekunde etwas eingefügt wird, sondern nur zb. alle 10 Minuten, so könnte ich nach den Inserts überprüfen, ob die Daten richtig eingefügt wurden und falls nicht, die Datenbank wieder auf den vorhergehenden Timestamp herstellen. Allerdings befürchte ich dabei, dass sich die Ausführungszeit bei der Menge an Abfragen enorm verlangsamen würde, außerdem habe ich dadurch wieder einen Haufen an unnötigen SELECTS wenn der Strom vorhanden bleibt... Eine höhere Auslastung der einzelnen Server würde wiederum zu einem erhöhten Bedarf der Gesamtzahl an Server führen.
Vlt. hat jemand ne Idee dazu. Ich bin für jeden Lösungsansatz dankbar.
Ein paar Linux Rechner im lokalen Netzwerk. Gentoo, 2.6er Kernel.
Alle Rechner arbeiten gemeinsam an einem Problem. Dazu hab ich ein paar PHP- und Perl-Scripts laufen, die ich dem default-runlevel hinzugefügt habe.
Ein paar Scripts sind für mathematische Berechnungen zuständig, ein anderes verarbeitet Daten auf einem lokalen MySql-Server.
Sollte ich den Computer abschalten wird der aktuelle Status der Scripts überprüft und der Computer erst dann heruntergefahren, wenn die Scripts einen speziellen Punkt erreicht haben, von dem an sie wieder weiterarbeiten können, wenn das Script wieder aktiviert wird.
Ein Problem hab ich allerdings wenn der Strom plötzlich ganz weg ist. Mehrere USV-Stationen für mehr als 10 Computer kosten nahezu ein Vermögen. Daher such ich nach alternativen Möglichkeiten, die Daten auf einem Weg zu retten, der möglichst kostengünstig ist, wenn das Netzwerk erweitert werden soll.
Das Hauptproblem liegt diesbzgl. vor allem bei den INSERTS und UPDATES der MySQL-Datenbanken. Was passiert mit einer solchen Abfrage beispielsweise, wenn genau in diesem Moment der Strom wegbricht?
Es ist insofern auch schwierig die Daten in der DB zu kontrollieren, da die Menge selbst nicht überschaubar ist und vor allem nicht lesbar, da teilweise einfach nur Zahlen und Checksums gespeichert werden.
Meine erste Idee war, die Datenbank-Abfragen in einem Pool zu sammeln, damit nicht jede Sekunde etwas eingefügt wird, sondern nur zb. alle 10 Minuten, so könnte ich nach den Inserts überprüfen, ob die Daten richtig eingefügt wurden und falls nicht, die Datenbank wieder auf den vorhergehenden Timestamp herstellen. Allerdings befürchte ich dabei, dass sich die Ausführungszeit bei der Menge an Abfragen enorm verlangsamen würde, außerdem habe ich dadurch wieder einen Haufen an unnötigen SELECTS wenn der Strom vorhanden bleibt... Eine höhere Auslastung der einzelnen Server würde wiederum zu einem erhöhten Bedarf der Gesamtzahl an Server führen.
Vlt. hat jemand ne Idee dazu. Ich bin für jeden Lösungsansatz dankbar.