MySQL Hochverfügbarkeitslösungen


Lenz Grimmer
<lenz@grimmer.com>
2009-05-04
amoocon 2009, Rostock, Germany
Agenda
  Konzepte & Aspekte
●


● MySQL Replikation


● DRBD / Heartbeat


● MySQL Cluster


● Weitere HV-Applikationen
Warum Hochverfügbarkeit?
    Irgendetwas kann und wird ausfallen
●


    Notwendigkeit von Wartungsarbeiten
●


    Ausfal...
Was ist HV-Clustering?
    Redundanz
●


    Ein Dienst fällt aus → ein anderer
●


    übernimmt
    Übernahme der IP Add...
Hochverfügbarkeitslevel
Eliminierung des SPOF
    Was ausfallen wird
●


        Festplatten
    ●


        Lüfter
    ●


    Was ausfallen kann...
HA Komponenten
    Heartbeat
●


         Überwachung der hochverfügbar zu
     ●


         machenden Dienste
         Ka...
Replikation vs. SAN
    Konsistenz der replizierten Daten
●


    Synchrone vs. asynchrone Replikation
●


    Geteiltes S...
Split-Brain
    Ausfall der Kommunikations → separate
●


    Cluster-Partitionen
    “Split-brain” Situation: mehr als ei...
Regeln zur Hochverfügbarkeit
    Auf Ausfälle vorbereitet sein
●


    Sicherstellen daß keine wichtigen Daten
●


    ver...
MySQL Replikation
    Unidirektional
●


    Anweisungs- oder zeilenbasiert (MySQL 5.1)
●


    Bestandteil des MySQL-Serv...
MySQL Replikation (2)
    Master verwaltet Binärlogs & index
●


    Replikation auf Slave ist (noch) single-
●


    thre...
MySQL Replikation - Überblick

        Read & Write


            Web/App
             Server
                            ...
Anweisungsbasierte Replikation
    Pro
●


          Bewährt (seit MySQL 3.23 verfügbar)
     ●


          Kleinere Logda...
Zeilenbasierte Replikation
    Pro
●


          Alle Veränderungen können repliziert werden
     ●


          Verfahren ...
Replikationstopologien

Master > Slave                           Master > Slaves




                                   Ma...
Master-Master-Replikation
    Zwei Server sind sowohl Master als auch
●


    Slave zueinander
    Vereinfacht Failover
●
...
MySQL Replikation als eine HV-Lösung
    Was passiert wenn der Master ausfällt?
●

         Nicht viel
     ●


         A...
Replikation & Hochverfügbarkeit
    Kombiniert mit Heartbeat
●


    Übernahme der virtuellen IP-Adresse
●


    Slave wir...
Linux-HA / Heartbeat
    Unterstützt 2 oder mehr Knoten (v2)
●


    Wenig Abhängigkeiten/ Anforderungen
●


    Überwachu...
Heartbeat (2)
    Richtlinien-basierte Resourcenverwaltung,
●


    Abhängigkeiten & Einschränkungen
    Zeitbasierte Rege...
Applications




                                        Scale-out Slave
         Virtual IP
Master                       ...
DRBD
    Distributed Replicated Block Device
●


    “RAID-1 über das Netzwerk”
●


    Synchrone/asynchrone Block-Replizi...
DRBD im Detail
    DRBD repliziert Datenblöcke zwischen zwei
●


    Plattenpartitionen
    DRBD kann mit Linux-HA und and...
MySQL Cluster
    “Shared-nothing”-Architektur
●


    Automatische Partitionierung
●


    Verteilte Fragmente
●


    Sy...
MySQL Master-Master Replication Manager

    Scriptsammlung zur Überwachung/Failover
●


    und Management
    Master-Mas...
Flipper
    Perl Script zur Steuerung eines sich replizierenden
●

    Paars von MySQL-Servern (Master-Master)
    Automat...
Red Hat Cluster Suite
    HV und Lastverteilung
●


    Unterstützt bis zu 128 Knoten
●


    Unterstützt Shared Storage
●...
Solaris Cluster / OpenHA Cluster
    Provides failover and scalability services
●


    Solaris / OpenSolaris (Project Col...
Weitere Werkzeuge/Links
    Maatkit
●

    http://maatkit.sourceforge.net/
    Continuent Tungsten Replicator
●

    https...
Q&A




Fragen, Kommentare?
Vielen Dank!
Lenz Grimmer <lenz@grimmer.com>
MySQL Hochverfügbarkeitslösungen
Nächste SlideShare
Wird geladen in …5
×

MySQL Hochverfügbarkeitslösungen

2.785 Aufrufe

Veröffentlicht am

MySQL High Availalability Solutions (in German), held at amoocon 2009 in Rostock, Germany

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.785
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
25
Aktionen
Geteilt
0
Downloads
11
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

MySQL Hochverfügbarkeitslösungen

  1. 1. MySQL Hochverfügbarkeitslösungen Lenz Grimmer <lenz@grimmer.com> 2009-05-04 amoocon 2009, Rostock, Germany
  2. 2. Agenda Konzepte & Aspekte ● ● MySQL Replikation ● DRBD / Heartbeat ● MySQL Cluster ● Weitere HV-Applikationen
  3. 3. Warum Hochverfügbarkeit? Irgendetwas kann und wird ausfallen ● Notwendigkeit von Wartungsarbeiten ● Ausfallzeiten sind teuer ● Website-Besucher kommen nicht wieder ● Sie verlieren €€€ ● Ihr Chef beschwert sich ● HV zu einem bereits vorhandenen System ● hinzuzufügen ist schwierig
  4. 4. Was ist HV-Clustering? Redundanz ● Ein Dienst fällt aus → ein anderer ● übernimmt Übernahme der IP Addresse und des ● Dienstes Failover vs. Failback vs. Switchover ● Nicht geeignet für mehr Leistung ● Nicht geeignet für mehr Durchsatz ● (Lastverteilung)
  5. 5. Hochverfügbarkeitslevel
  6. 6. Eliminierung des SPOF Was ausfallen wird ● Festplatten ● Lüfter ● Was ausfallen kann ● Absturz der Applikation ● ● OOM-Situationen, Kernel-Panics ● Netzwerkverbindungen/-kabel ● Stromversorgungen
  7. 7. HA Komponenten Heartbeat ● Überwachung der hochverfügbar zu ● machenden Dienste Kann einzelne Server, Dienste, ● Netzwerkverbundungen etc. prüfen HA Monitor ● Konfiguration der Dienste/Applikationen ● Regelt ordnungsgemäßen Start und Beenden ● Erlaubt manuelle Übernahme ● Shared storage (SAN) / Replikation ●
  8. 8. Replikation vs. SAN Konsistenz der replizierten Daten ● Synchrone vs. asynchrone Replikation ● Geteiltes Speichermedium kann zum SPOF ● werden “Split brain”-Situationen können zu ● Problemen führen (z.B. Gleichzeitiges Einhängen eines Dateisystems) SAN/NAS I/O Overhead ●
  9. 9. Split-Brain Ausfall der Kommunikations → separate ● Cluster-Partitionen “Split-brain” Situation: mehr als eine ● Partition will die Kontrolle über ihren Teil des Clusters übernehmen http://linux-ha.org/BadThingsWillHappen ● Vermeidung mittels “Fencing“ oder ● Moderation/Arbitrierung
  10. 10. Regeln zur Hochverfügbarkeit Auf Ausfälle vorbereitet sein ● Sicherstellen daß keine wichtigen Daten ● verloren gehen Keep it simple, stupid (KISS) ● Komplexität ist der Feind der ● Ausfallsicherheit Automatisieren was sinnvoll ist ● Häufig Tests durchführen! ●
  11. 11. MySQL Replikation Unidirektional ● Anweisungs- oder zeilenbasiert (MySQL 5.1) ● Bestandteil des MySQL-Servers ● Einfach zu bedienen und einzurichten ● Ein Master, viele Slaves ● Asynchron – Slaves können nachlaufen ●
  12. 12. MySQL Replikation (2) Master verwaltet Binärlogs & index ● Replikation auf Slave ist (noch) single- ● threaded http://forge.mysql.com/wiki/ReplicationFeatures/ParallelSlave Kein automatisiertes Fail-over ● Kein Heartbeat, kein Monitoring ●
  13. 13. MySQL Replikation - Überblick Read & Write Web/App Server Write Relay Log mysqld I/O SQL Thread Thread Index & Binlogs Data Replication Binlog Data mysqld MySQL Slave MySQL Master
  14. 14. Anweisungsbasierte Replikation Pro ● Bewährt (seit MySQL 3.23 verfügbar) ● Kleinere Logdateien ● Auditing der tatsächlichen SQL-Anweisungen ● Kein Primärschlüssel bei replizierten Tabellen ● erforderlich Kontra ● Nicht-deterministische Funktionen und UDFs ● LOAD_FILE(), UUID(), USER(), ● FOUND_ROWS() (RAND() and NOW() gehen)
  15. 15. Zeilenbasierte Replikation Pro ● Alle Veränderungen können repliziert werden ● Verfahren ähnlich zu anderen DBMSen ● Erfordert weniger Locks für bestimmte INSERT, ● UPDATE oder DELETE Anweisungen Kontra ● Mehr Daten müssen gelogged werden ● Logfile-Größe (Auswirkungen auf Backup/Restore) ● Replizierte Tabellen benötigen expliziten ● Primärschlüssel Mögliche Ergebnis-Differenzen bei Bulk-INSERTs ●
  16. 16. Replikationstopologien Master > Slave Master > Slaves Masters > Slave (Multi-Source) Master > Slave > Slaves Ring (Multi-Master) Master < > Master (Multi-Master)
  17. 17. Master-Master-Replikation Zwei Server sind sowohl Master als auch ● Slave zueinander Vereinfacht Failover ● Nicht geeignet um Schreiblast zu verteilen ● Änderungen erfolgen auf beiden Systemen ● Keines von beiden hat volle Autorität ● Nicht auf beide Master schreiben! ● Sharding oder Partitionierung (z.B. MySQL ● Proxy) eignen sich besser
  18. 18. MySQL Replikation als eine HV-Lösung Was passiert wenn der Master ausfällt? ● Nicht viel ● Applikation funktioniert nicht mehr ● Slave hat nichts mehr zu replizieren ● Was passiert wenn der Slave ausfällt? ● Nicht viel ● Daten werden nicht mehr repliziert ● Das klingt aber nicht nach Hochverfügbarkeit? ● Korrekt! Replikation kann Bestandteil einer HV- ● Lösung sein, implementiert jedoch nicht alle Teile einer HV-Konfiguration!
  19. 19. Replikation & Hochverfügbarkeit Kombiniert mit Heartbeat ● Übernahme der virtuellen IP-Adresse ● Slave wird zum Master befördert ● Nebeneffekt: Lastverteilung & Backup ● Failback kompliziert ● Keine automatische Konfliktauflösung ● Korrektes Failover muß gescriptet werden ●
  20. 20. Linux-HA / Heartbeat Unterstützt 2 oder mehr Knoten (v2) ● Wenig Abhängigkeiten/ Anforderungen ● Überwachung von Resourcen ● Aktiver Fencing-Mechanismus: STONITH ● Erkennung eines Knotenausfalls in ● Sekundenbruchteilen http://linux-ha.org/ ●
  21. 21. Heartbeat (2) Richtlinien-basierte Resourcenverwaltung, ● Abhängigkeiten & Einschränkungen Zeitbasierte Regeln ● Unterstützt sehr viele Applikationen ● (incl. MySQL) Grafische Oberfläche ●
  22. 22. Applications Scale-out Slave Virtual IP Master HA Slave Replication Replication
  23. 23. DRBD Distributed Replicated Block Device ● “RAID-1 über das Netzwerk” ● Synchrone/asynchrone Block-Replizierung ● Automatische Resynchronisierung ● Applications-agnostisch ● Kann lokale I/O-Fehler maskieren ● Aktiv/passiv-Konfiguration vorgegeben ● Dual-primary Modus (benötigt ein Cluster ● Dateisystem wie GFS or OCFS2) http://drbd.org/ ●
  24. 24. DRBD im Detail DRBD repliziert Datenblöcke zwischen zwei ● Plattenpartitionen DRBD kann mit Linux-HA und anderen HV- ● Lösungen gekoppelt werden MySQL läuft normal auf Applications ● dem Primärknoten MySQL ist nicht aktiv auf ● Virtual IP Active Node Passive Node dem Sekundärknoten DRBD ist nur für Linux ● DRBD verfügbar
  25. 25. MySQL Cluster “Shared-nothing”-Architektur ● Automatische Partitionierung ● Verteilte Fragmente ● Synchrone Replikation ● Schnelles, automatisches Fail-Over der ● Datenknoten Automatische Resynchronisierung ● Transparent für MySQL-Applikationen ● Unterstützt Transaktionen ● http://mysql.com/products/database/cluster/ ●
  26. 26. MySQL Master-Master Replication Manager Scriptsammlung zur Überwachung/Failover ● und Management Master-Master Replikationskonfiguration ● (ein aktiver beschreibbarer Master) Failover mittels Übernahme einer virtuellen ● IP-Adresse http://code.google.com/p/mysql-master-master/ ●
  27. 27. Flipper Perl Script zur Steuerung eines sich replizierenden ● Paars von MySQL-Servern (Master-Master) Automatisierter Switch-Over, manuell ausgelöst ● Kontrolliertes Herunterfahren einer Hälfte zu ● Wartungszwecken Die andere Hälfte übernimmt die Arbeit ● Verteilung von rollenbasierten IP Addressen (quot;nur- ● lesenquot;, quot;beschreibbarquot;) zwischen zwei Knoten im Master-Paar stellt sicher, daß beide Rollen verfügbar sind http://provenscaling.com/software/flipper/ ●
  28. 28. Red Hat Cluster Suite HV und Lastverteilung ● Unterstützt bis zu 128 Knoten ● Unterstützt Shared Storage ● Überwacht Dienste, Dateisysteme und ● Netzwerk-Status Fencing (STONITH) oder distributed lock ● manager Synchronisierung der Konfiguration ● http://www.redhat.com/cluster_suite/ ●
  29. 29. Solaris Cluster / OpenHA Cluster Provides failover and scalability services ● Solaris / OpenSolaris (Project Colorado) ● Kernel-level components plus userland ● Agents monitor applications ● Geo Edition to provide Disaster Recovery using ● Replication Open Source since June 2007 ● http://www.opensolaris.org/os/community/ha-clusters/ ● http://opensolaris.org/os/project/ha-mysql/ ●
  30. 30. Weitere Werkzeuge/Links Maatkit ● http://maatkit.sourceforge.net/ Continuent Tungsten Replicator ● https://community.continuent.com/community/tungsten-replicator Mon – scheduler and alert management ● http://www.kernel.org/software/mon/ Linux Cluster Information Center ● http://www.lcic.org/ha.html
  31. 31. Q&A Fragen, Kommentare?
  32. 32. Vielen Dank! Lenz Grimmer <lenz@grimmer.com>

×