wild-wolf
Goto Top

Aktiv-Aktiv Cluster mit DRBD?

Folgendes soll erreicht werden:
Aktiv/Aktiv Cluster mit DRBD, LVM, ISCSI und Hearbeat. Mein Chef würde amliebsten dieses Schema umgesetzt haben:
https://docs.google.com/gview?url=http://www.open-e.com/site_media/downl ...

Jetzt zu dem Problem.
Ich habe schon einige Anleitungen zum Thema HA und DRBD gelesen, allerdings finde ich immer nur aktiv/passiv und dreh hier bald ab. Dazu kommt, das ich von Linux kaum Ahnung habe, dieses aber el chefe net interessiert.

Installiert ist bereits Debian Squeeze, LVM und DRBD.

Boot
- LVM
--swap -> swap
--root -> /
--rest -> nicht eingehangen

Nu frage ich mich wie ich daraus ein a/a machen kann da ja ext3 etc nicht dafür geeignet sind.
Ich hatte mir gedacht in der "rest" das iscsi target reinzupacken und das dafür zu nutzen. Allerdings denke ich das das nichts werden wird.

drbd.config:

global {
    1. minor-count 255;
    usage-count no;
    }
    resource rest {
    protocol C;
    startup { degr-wfc-timeout 120; }
    disk { on-io-error detach; }
    net { cram-hmac-alg "sha1"; shared-secret "geheim"; }
    syncer { rate 10M; }
    on host1 { device /dev/drbd0; disk /dev/mapper/rest; address 192.168.1.1:7700; flexible-meta-disk internal; }
    on host2 { device /dev/drbd0; disk /dev/mapper/rest; address 192.168.1.2:7700; flexible-meta-disk internal; }
    }

    Kann mir wer weiterhelfen?

Content-Key: 204283

Url: https://administrator.de/contentid/204283

Printed on: April 24, 2024 at 22:04 o'clock

Member: LordGurke
LordGurke Apr 02, 2013 at 18:36:40 (UTC)
Goto Top
a/a ist wirklich böse. Wenn die Netzwerkverbindung dazwischen abbricht (und das kann einfacher passieren als man denkt) hast du einen Split-Brain, sprich zwei unterschiedliche Datenstände die du nie wieder synchron bekommst - ergo: Datenverlust, denn eine Hälfte des Split-Brains musst du dann zwingend verwerfen. Alleine zur Synchronisierung des DRBD solltest du mit redundanten Netzwerkverbindungen arbeiten.

Einfacher und schöner ist es mit Zusatzsoftware wie Pacemaker oder Corosync. Das läuft auf beiden Systemen und sorgt bei Ausfall eines Storages automatisch dafür dass die ausgefallenen Dienste ASAP auf anderen funktionierenden Storages weiterlaufen.

Du hast also z.B. zwei Storages: X und Y.
Auf X läuft DRBD active, auf Storage Y passive.
Wenn X auf einmal tot ist, sorgen Corosync und Pacemaker dafür dass DRBD auf Y in den Active-Mode versetzt wird und die iSCSI-Freigaben dort zur Verfügung gestellt werden. Auf Wunsch wird sogar die IP des toten Systems umgezogen.
Bei dieser Lösung KANN kein Splitbrain mehr entstehen, es ist aber ein wahrer Voodoo-Zauber sich in Corosync und Pacemaker hineinzudenken - erst Recht wenn du mit Linux so garkeine Erfahrung hast.

Gib deinem Chef bitte mal zu denken, dass eine fertige Lösung unter Umständen rein vom Aufwand her um ein vielfaches günstiger und stabiler ist. Gerade wenn wichtige Daten darauf gespeichert sind...
Member: Wild-Wolf
Wild-Wolf Apr 02, 2013 at 18:43:51 (UTC)
Goto Top
Hi,

stimmt Peacemaker soll auch noch mit rein das wars.
Naja wir hatten ja open-e im Einsatz aber da es da Probleme mit der Leistung bei einem 2ten esxi gab meinte er ich solle das mal eben nachbauen auf die Art und weise und bitte a/a.

Zitat: So schwer ist es nicht.

Ist es denn generell möglich das system im A/A laufen zu lassen und wenn ja, wie löse ich das Problem mit den iscsi und Plattenformat?
Member: LordGurke
LordGurke Apr 02, 2013 at 19:07:03 (UTC)
Goto Top
Zitat von @Wild-Wolf:
Naja wir hatten ja open-e im Einsatz aber da es da Probleme mit der Leistung bei einem 2ten esxi gab meinte er ich solle das mal
eben nachbauen auf die Art und weise und bitte a/a.

Naja, die Frage ist doch wo der Flaschanhals lag.
Wenn das Netzwerk auf Anschlag war müssen halt mehrere Netzwerkkarten gebündelt oder direkt Fibrechannel genutzt werden.
Waren es die Festplatten muss man sich fragen ob man nicht schnellere Festplatten oder bessere RAID-Controller verwendet.


Zitat von @Wild-Wolf:
Zitat: So schwer ist es nicht.
Die letzten Worte eines Panzerfahrers: "Sooo schwer kann das ja nicht sein!" face-wink


Zitat von @Wild-Wolf:
Ist es denn generell möglich das system im A/A laufen zu lassen und wenn ja, wie löse ich das Problem mit den iscsi und
Plattenformat?

Mache ihm bitte nochmal klar welche Gefahr er mit a/a eingeht und dass es gerade im Zusammenhang mit virtuellen Maschinen ja einen nicht unerheblichen Datenverlust bedeuten kann. Gerade auch, wenn man den Splitbrain nicht sofort bemerkt und da munter vor sich hin gespeichert wird.
Es gibt keine Möglichkeit einen Splitbrain zusammenzufügen da DRBD nunmal blockbasiert ist.
http://de.wikipedia.org/wiki/Split_Brain_%28Informatik%29

Sprich: Es muss ein redundantes Netzwerk vorhanden sein (also min. 2x Switch, 2x Netzwerkkarte angeschlossen an 2x getrennte Stromversorgung...).

Vor allen Dingen muss das Konstrukt danach administriert werden können um im Falle eines Fehlers etc... die Daten nicht zu zerstören.

Zum optimalen Plattenlayout kann ich jetzt so pauschal nichts sagen, aber rein vom Prinzip her müsstest du irgendwo Platz reservieren und darauf ein DRBD-Volume einrichten. DARAUF kannst du dann eine Volume-Gruppe mit logischen Volumes erzeugen aus der du dann die iSCSI-Targets holen kannst.

Du musst im Hinterkopf behalten:
DRBD ist blockbasiert, hat also mit Dateisystemen noch garnichts am Hut. Das Ding speichert wie eine Festplatte 1 und 0. Auf dem DRBD-Volume kannst du aber wie auf einer normalen Festplattenpartition arbeiten - also iSCSI-Targets anlegen in denen sich dann widerum ein Dateisystem befinden kann.
Wenn du darauf bestehst dass dieses iSCSI-Target an mehreren Systemen zeitgleich zum Schreiben eingehangen werden kann solltest du innerhalb des iSCSI-Targets ein Cluster-LVM erstellen (das ist wie der Name schon zaghaft andeutet ein Cluster-Fähiges LVM) um darin dann einzelne Volumes zu erstellen die zeitgleich auf mehreren Systemen verwendet werden können.

Wie sieht es denn mit den virtuellen Festplatten bei eurer Virtualisierung aus? Sind das Festplattenimages in Form von Dateien oder reicht ihr ein ganzes iSCSI-Target/Logisches Volume an die VM weiter?
Evtl. ist auch ein objektbasiertes Freigabesystem wie NFS richtiger für euren Einsatzzweck.
Member: nEmEsIs
nEmEsIs Apr 02, 2013 at 19:25:35 (UTC)
Goto Top
Hi

Was hältst du von openfiler (Open Source) als HA Cluster ?

Gute Anleitung !

http://www.howtoforge.com/openfiler-2.3-active-passive-cluster-heartbea ...
Member: Wild-Wolf
Wild-Wolf Apr 08, 2013 at 08:12:04 (UTC)
Goto Top
Zitat von @LordGurke:
Naja, die Frage ist doch wo der Flaschanhals lag.
Wenn das Netzwerk auf Anschlag war müssen halt mehrere Netzwerkkarten gebündelt oder direkt Fibrechannel genutzt
werden.
Waren es die Festplatten muss man sich fragen ob man nicht schnellere Festplatten oder bessere RAID-Controller verwendet.

Das ist ja die Frage die ich mir auch stelle. Aber er bleibt dabei, das es das System ist.

Zitat von @LordGurke:
Die letzten Worte eines Panzerfahrers: "Sooo schwer kann das ja nicht sein!" face-wink

Also den muss ich mir merken der ist wirklich gut ;)

Zitat von @LordGurke:
Mache ihm bitte nochmal klar welche Gefahr er mit a/a eingeht und dass es gerade im Zusammenhang mit virtuellen Maschinen ja einen
nicht unerheblichen Datenverlust bedeuten kann. Gerade auch, wenn man den Splitbrain nicht sofort bemerkt und da munter vor sich
hin gespeichert wird.
Es gibt keine Möglichkeit einen Splitbrain zusammenzufügen da DRBD nunmal blockbasiert ist.
http://de.wikipedia.org/wiki/Split_Brain_%28Informatik%29

Sprich: Es muss ein redundantes Netzwerk vorhanden sein (also min. 2x Switch, 2x Netzwerkkarte angeschlossen an 2x getrennte
Stromversorgung...).

Also das ganze soll schon redundant laufen da hat er sich schon n Kopf gemacht. Also Switche, Netzwerkkarten, etc.
Nur soweit ich weiß ist die Stromversorgung die selbe Leiste und die selbe USV.

Zitat von @LordGurke:
Zum optimalen Plattenlayout kann ich jetzt so pauschal nichts sagen, aber rein vom Prinzip her müsstest du irgendwo Platz
reservieren und darauf ein DRBD-Volume einrichten. DARAUF kannst du dann eine Volume-Gruppe mit logischen Volumes erzeugen aus der
du dann die iSCSI-Targets holen kannst.

Du musst im Hinterkopf behalten:
DRBD ist blockbasiert, hat also mit Dateisystemen noch garnichts am Hut. Das Ding speichert wie eine Festplatte 1 und 0. Auf dem
DRBD-Volume kannst du aber wie auf einer normalen Festplattenpartition arbeiten - also iSCSI-Targets anlegen in denen sich dann
widerum ein Dateisystem befinden kann.
Wenn du darauf bestehst dass dieses iSCSI-Target an mehreren Systemen zeitgleich zum Schreiben eingehangen werden kann solltest du
innerhalb des iSCSI-Targets ein Cluster-LVM erstellen (das ist wie der Name schon zaghaft andeutet ein Cluster-Fähiges LVM)
um darin dann einzelne Volumes zu erstellen die zeitgleich auf mehreren Systemen verwendet werden können.

Wie sieht es denn mit den virtuellen Festplatten bei eurer Virtualisierung aus? Sind das Festplattenimages in Form von Dateien
oder reicht ihr ein ganzes iSCSI-Target/Logisches Volume an die VM weiter?
Evtl. ist auch ein objektbasiertes Freigabesystem wie NFS richtiger für euren Einsatzzweck.

Also die VMs sind schon images die mit dem V-Center angelegt werden. Also kein ganzen Target pro VM
NFS will er nicht haben k/a wieso.


@nEmEsIs
Meine Meinung ist da leider wenig gefragt. Soll so und net anders...