Ich habe einen Heimserver (HP Proliant ML310 G4), den ich vor ungefähr einem Monat bei meinem Arbeitgeber gekauft habe. Auf dem Server läuft Debian Linux und ich benutze es für so ziemlich alles. Ich kann damit durchkommen, weil meine Anforderungen nicht so hoch sind und der Server zu einem bestimmten Zeitpunkt selten unter hoher Last steht. Dieser Server verfügt über ein RAID1-Array mit 2 TB (mit einem Ersatzlaufwerk), das von mdadm verwaltet wird und das ich für die gemeinsame Nutzung von Dateien über mein Netzwerk über Samba verwende. Ich starte das Betriebssystem von einer kleineren Festplatte, die nicht Teil des Arrays ist.
Ich habe den Server über eine kleine 255-Watt-USV mit Strom versorgt, da ich ihn benötige, um geringfügigen Stromschwankungen standzuhalten, ohne herunterzufahren. Dies ist sehr wichtig, da ein plötzliches, unsauberes Herunterfahren (verursacht durch einen Stromausfall oder einen Stromausfall) das RAID-Array zerstören kann, was bereits einmal vorgekommen ist.
Im Falle eines Stromausfalls schätze ich, dass die USV nur 10-15 Minuten Strom hat. Es kann mehr geben, aber ich möchte nicht automatisch davon ausgehen, dass dies der Fall ist. Dies reicht aus, um Stromausfälle zu überstehen, die einige Minuten oder weniger dauern. Wenn die Stromversorgung jedoch für mehrere Stunden unterbrochen wird, muss sich der Server ordnungsgemäß selbstständig herunterfahren, bevor die USV ausfällt. Dies verhindert hoffentlich, dass die RAID-Integrität in solchen Situationen beeinträchtigt wird.
So etwas ist bei einem Laptop einfach, da es eingebaute Sensoren hat, um festzustellen, wann es mit Batteriestrom betrieben wird, aber dieser Server nicht (soweit ich weiß). Ich habe ein ungewöhnliches Netzwerk-Setup, bei dem mein DSL-Modem von meinem Router getrennt ist. Der Router befindet sich auch in der USV, sodass ich über meinen Laptop SSH ausführen und den Server bei einem Stromausfall herunterfahren kann. Leider funktioniert das nur, wenn ich gerade dabei bin. Ich brauche eine Lösung, die immer funktioniert, ob ich da bin, um einzugreifen oder nicht.
Da mein DSL-Modem nicht an der USV angeschlossen ist, würde es bei einem Stromausfall mit allem anderen ausfallen. Ich habe es absichtlich so eingerichtet, weil ich eine Idee zur Lösung dieses Problems habe: Ich wollte ein Skript schreiben, das google.com oder eine andere Website mit hohem Datenverkehr und hoher Verfügbarkeit pingt. Wenn der Ping erfolgreich abgeschlossen wird, wird der Server weiter ausgeführt. Wenn der Ping fehlschlägt (weil das Modem ausgeschaltet ist), würde das Skript annehmen, dass die Stromversorgung ausgeschaltet ist, und den Server anweisen, herunterzufahren. Ich würde das Skript zu Cron hinzufügen und es alle 5 Minuten ausführen lassen. Das würde dem Server hoffentlich genug Zeit geben, um herunterzufahren, bevor die USV keinen Strom mehr hat.
Bevor ich mir die Mühe mache, das Skript zu schreiben, möchte ich wissen, ob es eine bessere Möglichkeit gibt, das zu tun, was ich brauche. Vielen Dank im Voraus für jede Hilfe.
quelle
Antworten:
Es gibt einen alten, aber bewährten Weg: Verwenden Sie ein altes analoges Modem. Hier ist, wie
Fragen Sie das Modem nun alle paar Sekunden nach dem Senden ab
ATZ[Enter]
und erwarten SieOK[Enter]
- wenn das Modem nicht antwortet, können Sie davon ausgehen, dass es keinen Strom hat, was bedeutet, dass die USV im Akkubetrieb ist.Bearbeiten
Der wichtigste Punkt ist, dass der Server nicht heruntergefahren wird, wenn Ihre Internetverbindung aus einem anderen Grund unterbrochen wird , als es sein sollte.
Bearbeiten 2
Aus den Kommentaren:
quelle
Ein USV wird normalerweise mit einem USB- oder COM1-Anschluss geliefert. Wenn Sie dies an Ihren Server anschließen, können Sie mit der Überwachung der USV beginnen.
In einer Windows-Umgebung ohne Installation der Software sind die Nachrichten bereits registriert, und der Server wird für Sie heruntergefahren. Ich weiß nicht, wie das unter Linux funktioniert, aber ich wette, es gibt einige Softwarepakete, die mit Ihrer USV verbunden werden können.
quelle
Wenn Sie Debian verwenden, versuchen Sie, NUT (Network UPS Tools) zu verwenden. Ich verwende NUT, um genau das zu tun, was Sie auf meinem Synology NAS (der busybox ausführt) und auf einem Heim-Webserver mit Ubuntu 12.04 LTS beschreiben. Ich habe den NAS aus dem gleichen Grund wie Sie über USB an die USV angeschlossen, potenzieller Verlust aller meiner Dateien.
Ich glaube, der Nut-Daemon fragt die USV jede Sekunde nach dem Status. Wenn sich die USV im Batteriemodus befindet, kann sie so konfiguriert werden, dass sie ordnungsgemäß heruntergefahren wird oder zuerst X Minuten wartet. Sie können auch mehrere Clients für die Verbindung mit dem Nut-Daemon einrichten, den Sie auf Ihrem Server ausführen. So kann Ihr Server mehreren PCs in Ihrem Netzwerk anweisen, ordnungsgemäß herunterzufahren. Für die Ausführung des Herunterfahrens können Sie Shutdown-Diensten auf bestimmte Weise Ihr eigenes Skript zur Verfügung stellen, oder Sie können das integrierte Skript verwenden, das Shutdown -h aufruft, wenn ich mich richtig erinnere.
NUT-Website
Es gab bessere Websites, auf denen man Informationen finden konnte, aber ich kann mich derzeit nicht an sie erinnern. Die Konfiguration kann mühsam sein, aber wenn Sie über einen potenziellen RAID-Verlust sprechen, lesen Sie es nach! Abhängig von Ihren Anforderungen benötigen Sie möglicherweise nicht die gesamte NUT-Suite. Möglicherweise können Sie auch nur mit dem UPSMON-Anteil auskommen. Ich denke, das gibt es im Ubuntu-Paket "nut-client".
Es gibt auch einen NUT-Client für Windows, aber unter Windows ist es möglicherweise besser, PowerChute oder ähnliches zu verwenden.
quelle