Server spiegeln

SK_Weidner

New Member
Vorab erkläre ich kurz was für ein System wir Planen.
2 Server mit je 6 Festplatten.
Jede Festplatte ist redundant und soll sich spiegeln.
Heisst wir haben 3 Festplatten im Server die beschrieben werden und sofort gespiegelt werden auf die anderen 3.
Ebenfalls sollen die zwei Server in Redundanz zu einander laufen und sich gegenseitig immer spiegeln.
Als Betriebssystem kommt ein SUSE Linux Enterprise Server 11 zum Einsatz.

Gibt es dafür ein Programm???
 
Man könnte auf den Servern per mdadm einen großen RAID10 mit 3xRAID1 bauen und die beiden Server mit DRBD Synchronisieren.
 
Erstmal brauchst du eine Failover-IP fuer die Server welche du als HauptIP verwendest.

Mit mdadm erstellst du auf den Server jeweils ein Softraid, mit DRBD synchronisierst du beide Server wie bereits der Vorposter es beschrieben hat.

Heartbeat kontrolliert nun die Erreichbarkeit des Hauptservers vom Backupserver. Sobald er feststellt dass dieser gestorben ist fuehrt er Failover Umrouting Script aus und sendet eine Restart-Anfrage fuer den Hauptserver an die Hetzner API.

Um sicher zu stellen dass kein Split-Brain entsteht (also wenn beide Server untereinander nicht kommunizieren koennen aber die Verbindung nach aussen funktioniert und somit beide sich zustaendig fuehlen, also die Konsistenz nachhaltig zerstoert wird) solltest du einen externen Server bei einem anderen Provider einsetzen (zB eine JiffyBox) welche die Erreichbarkeit beider Server dokumentiert. Falls nun Server A als 'online' auf dem externen Server (C) Markiert ist aber Server B ihn nicht erreichen kann schaltet er trotzdem nicht um. Kann Server B den Server C nicht erreichen schaltet er ebenfalls nicht um. Kann er Server C erreichen aber dieser nicht Server A dann schaltet er um. Vor dem Rueckschalten auf den Hauptserver muss uebrigens wieder Server B mit A synchronisiert werden.

Wie du merkst; es gibt nicht -wie gewuenscht- ein einziges Tool welches alle Aspekte uebernimmt sondern es ist eine komplexe Zusammenarbeit vieler Daemons und Skripte sowie des Providers (Failover-IP) welches dein Vorhaben ermoeglicht.
 
Moin,

Wozu den Server Spiegeln?
Raid 1/10(bevorzugt)/5 oder reicht das nicht?
 
Ebenfalls sollen die zwei Server in Redundanz zu einander laufen und sich gegenseitig immer spiegeln.
Wenn ein Server ausfaellt (Ueberhitzung, Controllerschaden, RAM-Defekt, ...) kann der 2. fast ohne Downtime uebernehmen sofern dieser nicht ebenfalls vom Problem betroffen ist. (Falls er im gleichen Rack ist und zB die Klima oder Strom da komplett ausgefallen ist kann er natuerlich nicht viel uebernehmen... aber RZ- oder provider-uebergreifend ist es meist recht kompliziert und fuer 0815-User nicht erhaeltlich)
 
Moin,

Wozu den Server Spiegeln?
Raid 1/10(bevorzugt)/5 oder reicht das nicht?

Bei einem so tollen Raid 5 darf nur eine Festplatte kaputt gehen. Das Fatale daran ist, dass bei einem Defekt einer Platte meistens auch noch eine zweite Platte physikalische Fehler hat. Lieber ein Raid 1 oder 10 bzw. gleich ZFS verwenden.

Hab hier noch etwas über ZFS und DBRD gefunden: http://dev.mysql.com/doc/refman/5.1/en/ha-zfs-replication.html
Beide sind zwar verschieden, bieten aber auch unterschiedliche Vorzüge. Ich persönlich finde ZFS mit den Features sehr ansprechend. Unter anderem das Raid, welches direkt durch ZFS realisiert werden kann und die Möglichkeit schnell Snapshots zu machen und diese zu senden. Mittlerweile gibt es ZFS auch als Modul für den Linux-Kernel.
 
Last edited by a moderator:
Die genannten JiffyBoxen kann ich nur empfehlen, der einzige "Nachteil" ist, dass ich für die Cluster-Kommunikation nicht corosync einsetzen konnte, da im internen Jiffy-Netz (worüber meine Nodes miteinander sprechen) keine multi- bzw. broadcasts erlaubt sind.

DRBD ist für diese Aufgabe definitv der richtige Weg (siehe Posts von d4f), ob du dann ein Cluster- oder Nicht-Cluster Dateisystem drauf setzt hängt davon ab, was du willst. Sollen deine Maschinen parallel betrieben laufen (also Active/Active) oder soll die eine Maschine nur vor sich her schlummern und im Fehlerfall anspringen?


Gruß
dante

P.S.: Für die Paranoia: RAID6+Spare ;) mit 6 Platten gut umsetzbar
 
Gönne Dir Hardwareraidcontroller und bauen ein RAID 10 pro Server. Ein RAID 5 ist kein Spiegel und nicht selten werden RAID 5 auch ohne Ausfall einer Platte zerstört wenn die Paritätsinfo korrumpiert wird.

Die Spiegelung der beiden Server nimmst Du mit DRBD vor, wie bereits von den Vorredner geschrieben.

Einen Failover machst Du günstig und gut mit heartbeat. Sollen mehrere Server im Cluster / Failover / Loadbalancing arbeiten wirfst Du einfach mal einen Blick auf BalanceNG (www.inlab.de).

Grüße

Michael
 
Back
Top