Mysql replikation ?! Hochverfügbar?!

backhand

Member
Moin.

ich bin erst in den letzten Monaten mit FreeBSD vertraut geworden.
Komme aus dem VMS/Windows-Bereich.

Da bei uns in der Firma Linux/NetBSD/OpenBSD bereit personell besetzt sind,
habe ich mich nach einigen Versuchen mit Debian/Suse/RedHat/Ubunto.....für
FreeBSD entschieden. (und bisher nicht bereut !!!)

Um etwas vernünftig zu erlernen (in diesem Fall FreeBSD)......muss ich mir immer eine Aufgabe/Ziel stellen. (tja so hat jeder seine Macke :p )

Die mir selbstgestellte Aufgabe (Start 01.06.06):

Aufbau eines HA/LB-Clusters mit FreeBSD 6.X um eine ausfallsichere hochbelastbare Internetpräsenz (a la google) zu bauen.
(Zur Verfügung stehen mir 8 eigene SMP-Server)
Davon sollen 6 Webserver werden und 2 Datenbankserver (Mysql) im Hintergrund.
Ein Notebook mit FreeBSD soll die Überwachung übernehmen.

Momentaner Status:

Es laufen 6 Server mit FreeBSD 6.1 als Webserver (Apache 1.3.34 mit einigen mod_xxx)
Das Notebook ist ebenfalls als passiver Clustermember eingebunden.
Als clusterprotokoll verwende ich Spread und als Loadbalancer für Apache habe ich mod_backhand genommen.
Um IP-Failover zu bewerkstelligen benutze ich wackamole.
Verwendet wird von aussen RoundRobin-DNS.

Der HALB-Cluster verhält sich ser performant und stabil.

Alle Server sind per eigener Netzwerkkarte (Gigabit) an das Internet angeschlossen.
Eine zweite Netzwerkkarte geht auf einen Internen switch (100Mbit)
Dieser Switch hat 2 Gigabituplinkports zu den beiden Mysql Datenbankservern.

Beide Datenbankserver sind nocheinmal direkt mit einer Gigabitnetzwerkkarte untereinander verbunden.

Beim nächsten Schritt bin ich etwas ins Grübeln geraten und benötige wenn möglich etwas Hilfe.

Die Mysql-server sollen beide laufen.
Einer ist Master der andere Slave (beantwortet aber Leseanfragen).
Sprechen sollen die beiden über Spread und über das Netzwerkinterface welche beide direkt verbindet.
Über dieses Netzwerkinterface soll auch die Replikation erfolgen.

Ich hoffe die Fragestellung ist verständlich geworden.
Jemand Erfahrungen damit.........Tips..........Links ??

Danke für Eure Zeit und dankbar für jeden brauchbaren Input!

Backhand
 
Mit hilfe von 'master-host' in der my.cnf setzt du die Adresse der 2. DB. Setz hier einfach die Adresse von der anderen Kiste aus dem Subnetz was auf den Internen Interfacen liegt. Somit geht dann der DB Austausch automagisch über die "direkt" Verbindung.

http://dev.mysql.com/doc/refman/5.0/en/replication.html
 
Zuletzt bearbeitet von einem Moderator:
Thx

Danke rosa für die schnelle Antwort,

hilft mir weiter.

Dachte aber auch an Erfahrungswerte auch aus dem Linux-Umfeld.
Stichwort DRBD/Heartbeat.....oder auch Mysql-Cluster.

Gibt es hier Erfahrungswerte.....technische Klippen o.ä.

Ansonsten hört sich das in dem Link recht einfach an............ :huth:

Na dann schauen wir mal .

Tips und Tricks und eigene Erfahrungen sind willkommen :D

Gruss

backhand
 
Hi backhand,

ich habe mich vor Kurzem auch mal daran versucht, aber leider mit wenige Erfolg. Mir schien die Einrichtung Master - Slave auch zunächst recht simple.
Leider musste ich nach dem ersten Sync feststellen, dass die DB auf dem Slave nicht mehr funkitionierte, bzw. die Daten korrupt waren.
Ich denke, dass es daran liegt, dass es sich um InnoDB (mediawiki) handelt. Da ich nicht gerade ein Datenbank-Crack bin, hab ich an der Stelle dann erstmal aufgegeben - werde mich aber da demnächst nochmal dranmachen. Vielleicht hat ja hier sogar jemand einen Tip für mich, was da schief gelaufen sein könnte, bzw. läuft. ;-)
Also ganz so einfach wie zunächst vermutet scheint das mit dem Sync dann auch nicht zu laufen.

Gruß,

Ice
 
hi

also gas ganze ist machbar jedoch sieht das etwas anders aus.
a: schmeiss wackamole oder hartbeat weg. Freebsd hat mit carp ein sehr gut funktionierendes ip failover system intregriert. ( einfach mal man carp )

naja zum load balancen der webserver hat du ja schon mod_backhand
alternativ kann ich dir pound noch empfehlen was auch vernuftig mit ssl umgeht
oder den neuen apache 2.2.3 der ein loadbalancing modul mitbringt.

fuer die mysql db braucht man nicht zwingend eine ha ip jedoch ist der mysql
cluser nicht wirklich mit 2 rechner aufzu bauen ( mysql empfiehlt 4 es gehr aber
mit mindestens 3 ) ggf koennte man noch was mit xen bauen

cluster funktionalitaeten sind mit drin es gibt auch eine gute docu dazu bei mysql
u.a.
http://dev.mysql.com/tech-resources/articles/mysql-cluster-for-two-servers.html

holger
 
Moin

Ahoi Ice und mark05......


hi

also gas ganze ist machbar jedoch sieht das etwas anders aus.
a: schmeiss wackamole oder hartbeat weg. Freebsd hat mit carp ein sehr gut funktionierendes ip failover system intregriert. ( einfach mal man carp )

Also ich bin mit spread und wackamole sehr zufrieden.
Als ich gelesen habe das die Webseite der Cebit damit sehr zufriedenstellend und performant läuft........habe ich mich an die Implementation gemacht :D

naja zum load balancen der webserver hat du ja schon mod_backhand
alternativ kann ich dir pound noch empfehlen was auch vernuftig mit ssl umgeht
oder den neuen apache 2.2.3 der ein loadbalancing modul mitbringt.

Okay SSL wird nicht benötigt und da mod_backhand einige gute features bietet bleibe ich bei apache 1.3.xx.......auch wenn das weniger performant ist.

cluster funktionalitaeten sind mit drin es gibt auch eine gute docu dazu bei mysql
u.a.
http://dev.mysql.com/tech-resources/...o-servers.html

hmm 3 db-server sprengt meine Kapazitäten........es sollte dann schon mit 2 gehen.

Danke für die Tipps..........werde mich mal durch beide Links wühlen :ugly:

Gruss

backhand
 
Zurück
Oben