Sie sind auf Seite 1von 51
www.fromdual.com MySQL HA & Security SLAC 2013 5. - 7. Juni 2013, Berlin Oli Sennhauser

www.fromdual.com

MySQL HA & Security

SLAC 2013

5. - 7. Juni 2013, Berlin

Oli Sennhauser

Senior MySQL Berater, FromDual GmbH

oli.sennhauser@fromdual.com

Über FromDual GmbH

Über FromDual GmbH www.fromdual.com ● FromDual bietet neutral und unabhängig: ● Beratung für MySQL ● Support

www.fromdual.com

FromDual bietet neutral und unabhängig:

Beratung für MySQL

Support für MySQL und Galera Cluster

Remote-DBA Dienstleistungen für MySQL

MySQL Schulungen

Remote-DBA Dienstleistungen für MySQL ● MySQL Schulungen ● Oracle Silver Partner (OPN) ● Mitglied bei SOUG,

Oracle Silver Partner (OPN)

Mitglied bei SOUG, DOAG /ch/open

MySQL ● MySQL Schulungen ● Oracle Silver Partner (OPN) ● Mitglied bei SOUG, DOAG /ch/open www.fromdual.com
MySQL ● MySQL Schulungen ● Oracle Silver Partner (OPN) ● Mitglied bei SOUG, DOAG /ch/open www.fromdual.com
MySQL ● MySQL Schulungen ● Oracle Silver Partner (OPN) ● Mitglied bei SOUG, DOAG /ch/open www.fromdual.com

Wir suchen noch:

Wir suchen noch: www.fromdual.com ● MySQL Enthusiast/in für Support / remote-DBA / Beratung und ● C++
Wir suchen noch: www.fromdual.com ● MySQL Enthusiast/in für Support / remote-DBA / Beratung und ● C++
Wir suchen noch: www.fromdual.com ● MySQL Enthusiast/in für Support / remote-DBA / Beratung und ● C++

www.fromdual.com

MySQL Enthusiast/in für Support / remote-DBA / Beratung

und C++ Entwickler (mit Affinität zu DB, MySQL und Replikation)

Inhalt

Inhalt www.fromdual.com HA Solutions MySQL HA ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢

www.fromdual.com

HA Solutions

MySQL HA

Scale-Out vs. Scale-Up

Replication set-up for HA

Master/Slave Replikation

Read scale-out

Master/Master Replikation

Active/passive fail-over

Aktiv/passiv failover Cluster mit SAN

MySQL Cluster

Replication Cluster

Aktiv/passiv failover Cluster mit DRBD

Storage-Engine-Replication

Galera Cluster für MySQL

MySQL (NDB) Cluster

MySQL Security

MySQL Scale-Out vs Scale-Up www.fromdual.com Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ●

MySQL Scale-Out vs Scale-Up

www.fromdual.com

MySQL Scale-Out vs Scale-Up www.fromdual.com Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ●
MySQL Scale-Out vs Scale-Up www.fromdual.com Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ●

Scale-Up

Kosten

MySQL Design

Physische Flaschenhälse

Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ● „Relaxation of Constraints“ Scale-Out 5 /
Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ● „Relaxation of Constraints“ Scale-Out 5 /
Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ● „Relaxation of Constraints“ Scale-Out 5 /

„Relaxation of Constraints“

Scale-Out

Scale-Up ● Kosten ● MySQL Design ● Physische Flaschenhälse ● „Relaxation of Constraints“ Scale-Out 5 /

Master – Slave Replikation

Master – Slave Replikation www.fromdual.com Application IO_ thread SQL_ Slave thread bin-log.m bin-log.n

www.fromdual.com

Application

Application
IO_ thread SQL_ Slave thread bin-log.m bin-log.n relay-log.m relay-log.n
IO_
thread
SQL_
Slave
thread
bin-log.m
bin-log.n
relay-log.m
relay-log.n

log_bin = on server_id = 42

Master
Master

Wir brauchen:

Binary Log

Server Id

User für die Replikation (auf dem Master)

Konsistentes Backup MIT Binary Log Position

High-Availability mit Replikation www.fromdual.com Application VIP r t w read only S l a v

High-Availability mit Replikation

www.fromdual.com

Application

VIP

mit Replikation www.fromdual.com Application VIP r t w read only S l a v e Reporting

r t w

read only

www.fromdual.com Application VIP r t w read only S l a v e Reporting S l

S l a v e Reporting Slave Reporting

VIP r t w read only S l a v e Reporting S l a v

S l a v e Backup Slave Backup

Slave M Master async!
Slave M
Master
async!
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave

Slave 2

Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave

Slave 3

Slave 1

Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave
Load balancer
Load balancer
Load balancer
Load balancer
Load balancer

Load balancer

Load balancer
Load balancer
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave
Reporting S l a v e Backup Slave M Master async! Slave 2 Slave 3 Slave

Fail-over?

Replikation Fail-over

Application

r t w

read only

Replikation Fail-over Application r t w read only VIP S l a v e Reporting S

VIP

Slave Reporting

Slave Backup

Master async!
Master
async!
a v e Reporting S l a v e Backup Master async! Slave 2 Slave 3
a v e Reporting S l a v e Backup Master async! Slave 2 Slave 3

Slave 2

Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave

Slave 3

Slave M

Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave

Slave 1

Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Load balancer
Load balancer
Load balancer
Load balancer
Load balancer
Load balancer
Load balancer
Load balancer

Load balancer

Load balancer
Load balancer
Load balancer
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave
Reporting S l a v e Backup Master async! Slave 2 Slave 3 Slave M Slave

www.fromdual.com

Vorteile / Nachteile

Vorteile / Nachteile www.fromdual.com Einfaches „standard“ Set-up Sehr gut wenn r >> w Fail-over Seite ist

www.fromdual.com

Einfaches „standard“ Set-upVorteile / Nachteile www.fromdual.com Sehr gut wenn r >> w Fail-over Seite ist bereits warm/heiss! Zeitversatz

Sehr gut wenn r >> w/ Nachteile www.fromdual.com Einfaches „standard“ Set-up Fail-over Seite ist bereits warm/heiss! Zeitversatz

Fail-over Seite ist bereits warm/heiss!Einfaches „standard“ Set-up Sehr gut wenn r >> w Zeitversatz Master/Slave (asynchron!) Slave kann

Zeitversatz Master/Slave (asynchron!)wenn r >> w Fail-over Seite ist bereits warm/heiss! Slave kann hinterherhinken (Slave ist oft Flaschenhals)

Slave kann hinterherhinken (Slave ist oft Flaschenhals)bereits warm/heiss! Zeitversatz Master/Slave (asynchron!) Daten I n -konsistenz ( pt­table­checksum /

Daten In -konsistenz ( pt­table­checksum / pt­table­sync ) n-konsistenz (pt­table­checksum/pt­table­sync)

Read/write Split ist mühsam, da nicht transparentI n -konsistenz ( pt­table­checksum / pt­table­sync ) Wenn Master stirbt→ welcher Slave wird neuere Master?

Wenn Master stirbt→ welcher Slave wird neuere Master?) Read/write Split ist mühsam, da nicht transparent Switch → viel Arbeit, etwas heikel! Es gibt

Switch → viel Arbeit, etwas heikel! Es gibt Tools die helfen (MMM v1/v2, MHA, Tungsten,

)

Master-Master Replikation

App App App VIP
App
App
App
VIP
Master-Master Replikation App App App VIP M 1 M 2 Slave 1 Slave 2 Slave 3
M 1
M 1
M 1
M 1
M 1

M

M 1
M 1

1

M 1
M 1
M 1
M 1
M 1
M 2
M 2
M 2

M

M 2
M 2

2

M 2
M 2
M 2
M 2
M 2
Replikation App App App VIP M 1 M 2 Slave 1 Slave 2 Slave 3 Slave
Slave 1 Slave 2 Slave 3
Slave 1
Slave 2
Slave 3

Slave Backup

App VIP M 1 M 2 Slave 1 Slave 2 Slave 3 Slave B a c

Load balancer (LB)

App VIP M 1 M 2 Slave 1 Slave 2 Slave 3 Slave B a c
App VIP M 1 M 2 Slave 1 Slave 2 Slave 3 Slave B a c

www.fromdual.com

Master-Master Replikation

App App App VIP
App
App
App
VIP
Master-Master Replikation App App App VIP M M 1 2 Slave 1 Slave 2 Slave 3
M M 1 2
M
M
1
2
Slave 1 Slave 2 Slave 3
Slave 1
Slave 2
Slave 3

Slave Backup

App App VIP M M 1 2 Slave 1 Slave 2 Slave 3 Slave B a

Load balancer (LB)

App App VIP M M 1 2 Slave 1 Slave 2 Slave 3 Slave B a
App App VIP M M 1 2 Slave 1 Slave 2 Slave 3 Slave B a

www.fromdual.com

Vorteile / Nachteile

Vorteile / Nachteile www.fromdual.com Nur wenig komplexer als Master/Slave Sehr gut wenn r >> w Fail-over

www.fromdual.com

Nur wenig komplexer als Master/SlaveVorteile / Nachteile www.fromdual.com Sehr gut wenn r >> w Fail-over Seite ist bereits warm/heiss! Zeitversatz

Sehr gut wenn r >> wwww.fromdual.com Nur wenig komplexer als Master/Slave Fail-over Seite ist bereits warm/heiss! Zeitversatz

Fail-over Seite ist bereits warm/heiss!komplexer als Master/Slave Sehr gut wenn r >> w Zeitversatz Master/Slave (asynchron!) Slave kann

Zeitversatz Master/Slave (asynchron!)wenn r >> w Fail-over Seite ist bereits warm/heiss! Slave kann hinterherhinken (Slave ist oft Flaschenhals)

Slave kann hinterherhinken (Slave ist oft Flaschenhals)bereits warm/heiss! Zeitversatz Master/Slave (asynchron!) Daten In -konsistenz ( pt­table­checksum /

Daten In -konsistenz ( pt­table­checksum / pt­table­sync ) In-konsistenz (pt­table­checksum/pt­table­sync)

Wenn Master stirbt, ist die Hälfte der Slaves „out of sync“!In -konsistenz ( pt­table­checksum / pt­table­sync ) Vorsicht beim Schreiben auf beide Master! Read/write Split

Vorsicht beim Schreiben auf beide Master!Master stirbt, ist die Hälfte der Slaves „out of sync“! Read/write Split ist mühsam, da nicht

Read/write Split ist mühsam, da nicht transparent„out of sync“! Vorsicht beim Schreiben auf beide Master! Man erhält dadurch NICHT mehr I/O Durchsatz!

Man erhält dadurch NICHT mehr I/O Durchsatz!auf beide Master! Read/write Split ist mühsam, da nicht transparent Ein wenig komplizierter (wieder-)aufzusetzen 12 /

Ein wenig komplizierter (wieder-)aufzusetzenauf beide Master! Read/write Split ist mühsam, da nicht transparent Man erhält dadurch NICHT mehr I/O

Aktiv/passiv fail-over mit SAN www.fromdual.com App App App VIP M ' M SAN Slave 1

Aktiv/passiv fail-over mit SAN

www.fromdual.com

App App App VIP M ' M SAN
App
App
App
VIP
M '
M
SAN
Slave 1 Slave 2 Slave 3 Load balancing (LB)
Slave 1
Slave 2
Slave 3
Load balancing (LB)
Aktiv/passiv fail-over mit SAN www.fromdual.com ● S P O F 2 ! App App App

Aktiv/passiv fail-over mit SAN

www.fromdual.com

SPOF 2!

App App App VIP M ' M !!! SAN
App
App
App
VIP
M '
M
!!!
SAN
Slave 1 Slave 2 Slave 3 Load balancing (LB)
Slave 1
Slave 2
Slave 3
Load balancing (LB)

Vorteile / Nachteile

Vorteile / Nachteile www.fromdual.com Synchrone Replikation I/O Durchsatz hängt vom SAN (I/O System) ab Keine Daten

www.fromdual.com

Synchrone ReplikationVorteile / Nachteile www.fromdual.com I/O Durchsatz hängt vom SAN (I/O System) ab Keine Daten IN -Konsistenzen

I/O Durchsatz hängt vom SAN (I/O System) abVorteile / Nachteile www.fromdual.com Synchrone Replikation Keine Daten IN -Konsistenzen möglich Nur eine mögliche

Keine Daten IN -Konsistenzen möglich IN-Konsistenzen möglich

Nur eine mögliche DatenquelleSAN (I/O System) ab Keine Daten IN -Konsistenzen möglich Slaves werden automatisch und sauber geschwenkt SAN

Slaves werden automatisch und sauber geschwenktIN -Konsistenzen möglich Nur eine mögliche Datenquelle SAN und Filesystem sind SpoFs! Teuer wenn SAN noch

SAN und Filesystem sind SpoFs!Datenquelle Slaves werden automatisch und sauber geschwenkt Teuer wenn SAN noch nicht vorhanden ist. SAN's sind

Teuer wenn SAN noch nicht vorhanden ist.und sauber geschwenkt SAN und Filesystem sind SpoFs! SAN's sind nicht einfach richtig zu betreiben! Andere

SAN's sind nicht einfach richtig zu betreiben!sind SpoFs! Teuer wenn SAN noch nicht vorhanden ist. Andere Seite ist kalt nach Fail-over! Hälfte

Andere Seite ist kalt nach Fail-over!ist. SAN's sind nicht einfach richtig zu betreiben! Hälfte der Hardware idelt Wesentlich komplexer aufzusetzen

Hälfte der Hardware ideltsind nicht einfach richtig zu betreiben! Andere Seite ist kalt nach Fail-over! Wesentlich komplexer aufzusetzen 15

Wesentlich komplexer aufzusetzensind nicht einfach richtig zu betreiben! Andere Seite ist kalt nach Fail-over! Hälfte der Hardware idelt

Aktiv/passiv fail-over mit DRBD www.fromdual.com App App App VIP M ' M DRBD “Poor man's

Aktiv/passiv fail-over mit DRBD

www.fromdual.com

App App App VIP M ' M DRBD
App
App
App
VIP
M '
M
DRBD

“Poor man's SAN”

Slave 1 Slave 2 Slave 3 Load balancing (LB)
Slave 1
Slave 2
Slave 3
Load balancing (LB)
Activ/passiv fail-over mit DRBD www.fromdual.com App App App VIP M ' M DRBD ● SPOF

Activ/passiv fail-over mit DRBD

www.fromdual.com

App App App VIP M ' M DRBD
App
App
App
VIP
M '
M
DRBD

SPOF 1!

“Poor man's SAN”

Slave 1 Slave 2 Slave 3 Load balancing (LB)
Slave 1
Slave 2
Slave 3
Load balancing (LB)

Vorteile / Nachteile

Vorteile / Nachteile www.fromdual.com Synchrone Replikation Keine Daten IN -Konsistenzen möglich Nur eine mögliche

www.fromdual.com

Synchrone ReplikationVorteile / Nachteile www.fromdual.com Keine Daten IN -Konsistenzen möglich Nur eine mögliche Datenquelle Slaves werden

Keine Daten IN -Konsistenzen möglich IN-Konsistenzen möglich

Nur eine mögliche DatenquelleSynchrone Replikation Keine Daten IN -Konsistenzen möglich Slaves werden automatisch und sauber geschwenkt Filesystem

Slaves werden automatisch und sauber geschwenktIN -Konsistenzen möglich Nur eine mögliche Datenquelle Filesystem ist SpoF! I/O Durchsatz tendenziell geringer als

Filesystem ist SpoF!Datenquelle Slaves werden automatisch und sauber geschwenkt I/O Durchsatz tendenziell geringer als mit SAN Andere Seite

I/O Durchsatz tendenziell geringer als mit SANautomatisch und sauber geschwenkt Filesystem ist SpoF! Andere Seite ist kalt nach Failover! Hälfte der Hardware

Andere Seite ist kalt nach Failover!ist SpoF! I/O Durchsatz tendenziell geringer als mit SAN Hälfte der Hardware idelt Wesentlich komplexer aufzusetzen

Hälfte der Hardware ideltDurchsatz tendenziell geringer als mit SAN Andere Seite ist kalt nach Failover! Wesentlich komplexer aufzusetzen 18

Wesentlich komplexer aufzusetzenI/O Durchsatz tendenziell geringer als mit SAN Andere Seite ist kalt nach Failover! Hälfte der Hardware

Galera Cluster für MySQL

App
App
App App
App
App

Load balancing (LB)

Galera Cluster für MySQL App App App Load balancing (LB) Node 1 wsrep Node 2 wsrep

Node 1

wsrep

Node 2

wsrep

Node 3

wsrep

Galera replication

MySQL App App App Load balancing (LB) Node 1 wsrep Node 2 wsrep Node 3 wsrep

www.fromdual.com

Galera Cluster für MySQL

App
App
App App
App
App

Load balancing (LB)

Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera replication
Node 1
Node 2
Node 3
wsrep
wsrep
wsrep
Galera replication
App App App Load balancing (LB) Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera
App App App Load balancing (LB) Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera

www.fromdual.com

Vorteile / Nachteile

Vorteile / Nachteile www.fromdual.com Synchrone Replikation Aktiv-aktiv multi-Master Topologie Lesen und Schreiben auf

www.fromdual.com

Synchrone ReplikationVorteile / Nachteile www.fromdual.com Aktiv-aktiv multi-Master Topologie Lesen und Schreiben auf alle Cluster-Knoten (KEIN

Aktiv-aktiv multi-Master TopologieVorteile / Nachteile www.fromdual.com Synchrone Replikation Lesen und Schreiben auf alle Cluster-Knoten (KEIN r/w Split

Lesen und Schreiben auf alle Cluster-Knoten (KEIN r/w Split notwendig)Synchrone Replikation Aktiv-aktiv multi-Master Topologie Automatische Knotenverwaltung Echtes paralleles Replizieren

Automatische KnotenverwaltungSchreiben auf alle Cluster-Knoten (KEIN r/w Split notwendig) Echtes paralleles Replizieren auf Zeilenebene Kein

Echtes paralleles Replizieren auf Zeilenebene(KEIN r/w Split notwendig) Automatische Knotenverwaltung Kein Hinterherhinken des Slaves Keine verlorene

Kein Hinterherhinken des SlavesEchtes paralleles Replizieren auf Zeilenebene Keine verlorene Transaktionen Lese-Skalierbarkeit (read

Keine verlorene Transaktionen Lese-Skalierbarkeit (read Scale-Out!) und mehr Schreiben (+ SSD)Replizieren auf Zeilenebene Kein Hinterherhinken des Slaves Wartung im „laufenden Betrieb“ möglich (Rolling

Wartung im „laufenden Betrieb“ möglich (Rolling Restart)(read Scale-Out!) und mehr Schreiben (+ SSD) Basiert auf InnoDB Storage Engine (nur auf InnoDB!) Galera

Basiert auf InnoDB Storage Engine (nur auf InnoDB!)im „laufenden Betrieb“ möglich (Rolling Restart) Galera Binaries (nicht Oracle/MySQL) Achtung vor Hots-Spots

Galera Binaries (nicht Oracle/MySQL)Restart) Basiert auf InnoDB Storage Engine (nur auf InnoDB!) Achtung vor Hots-Spots auf einzelnen Zeilen (z.

Achtung vor Hots-Spots auf einzelnen Zeilen (z. B. Sequenzen-Tabelle)(nur auf InnoDB!) Galera Binaries (nicht Oracle/MySQL) Dadurch höhere Wahrscheinlichkeit von Deadlocks

Dadurch höhere Wahrscheinlichkeit von Deadlocks Voll-Synchronisation (SST) blockiert Lesen und Schreiben → 3 KotenGalera Binaries (nicht Oracle/MySQL) Achtung vor Hots-Spots auf einzelnen Zeilen (z. B. Sequenzen-Tabelle) 21 / 51

MySQL (NDB) Cluster

MySQL (NDB) Cluster www.fromdual.com App App App MySQL MySQL MySQL SQL nodes Server Server Server MGM

www.fromdual.com

App App App MySQL MySQL MySQL SQL nodes Server Server Server MGM client MGM client
App
App
App
MySQL
MySQL
MySQL
SQL nodes
Server
Server
Server
MGM client
MGM client
NDB Cluster
(Data nodes)
ndbd
ndbd
NG0
mgmd
mgmd
ndbd
ndbd
NG1
Data nodes /
Mgmt nodes

Vorteile / Nachteile

Vorteile / Nachteile www.fromdual.com Synchrone Replikation Nur eine mögliche Datenquelle Keine Daten IN -Konsistenzen

www.fromdual.com

Synchrone ReplikationVorteile / Nachteile www.fromdual.com Nur eine mögliche Datenquelle Keine Daten IN -Konsistenzen möglich Extrem hoher

Nur eine mögliche DatenquelleVorteile / Nachteile www.fromdual.com Synchrone Replikation Keine Daten IN -Konsistenzen möglich Extrem hoher Durchsatz

Keine Daten IN -Konsistenzen möglich IN-Konsistenzen möglich

Extrem hoher Durchsatz (wenn richtig gemacht)mögliche Datenquelle Keine Daten IN -Konsistenzen möglich Skaliert sehr gut für Lesen UND Schreiben (wenn richtig

Skaliert sehr gut für Lesen UND Schreiben (wenn richtig gemacht)möglich Extrem hoher Durchsatz (wenn richtig gemacht) Wartung im „laufenden Betrieb“ möglich Kein drop-in

Wartung im „laufenden Betrieb“ möglichsehr gut für Lesen UND Schreiben (wenn richtig gemacht) Kein drop-in Ersatz für InnoDB/MyISAM! Hoher Bedarf

Kein drop-in Ersatz für InnoDB/MyISAM!richtig gemacht) Wartung im „laufenden Betrieb“ möglich Hoher Bedarf an RAM (in-memory DB) und Netzwerk Mindestens

Hoher Bedarf an RAM (in-memory DB) und NetzwerkBetrieb“ möglich Kein drop-in Ersatz für InnoDB/MyISAM! Mindestens 3 Server (besser 4) sind erforderlich. Neue

Mindestens 3 Server (besser 4) sind erforderlich.Hoher Bedarf an RAM (in-memory DB) und Netzwerk Neue Datenbank zu lernen (MySQL Cluster != MySQL!)

Neue Datenbank zu lernen (MySQL Cluster != MySQL!)Netzwerk Mindestens 3 Server (besser 4) sind erforderlich. Komplexer aufzusetzen und zu betreiben als normales MySQL

Komplexer aufzusetzen und zu betreiben als normales MySQLNeue Datenbank zu lernen (MySQL Cluster != MySQL!) Schlecht für Joins (Network Database, Push Down Joins

Schlecht für Joins (Network Database, Push Down Joins in v7.2)Neue Datenbank zu lernen (MySQL Cluster != MySQL!) Komplexer aufzusetzen und zu betreiben als normales MySQL

MySQL Security

MySQL Security www.fromdual.com 24 / 51

www.fromdual.com

Inhalt

Inhalt www.fromdual.com MySQL HA HA Solutions ➢ ➢ Read scale-out ➢ Replication set-up for HA

www.fromdual.com

MySQL HA

HA Solutions

Read scale-out

Replication set-up for HA

MySQL Security

MySQL Cluster

Active/passive fail-over

Replication Was ist Security? Cluster

Probleme, Storage-Engine-Replication Anforderungen, Konsequenzen, Massnahmen

Vertraulichkeit

Integrität

Verfügbarkeit

Informationsquellen

Was ist Security/Sicherheit?

Vertraulichkeit

Was ist Security/Sicherheit? ● Vertraulichkeit www.fromdual.com ● Zugriff nur durch autorisierte Nutzer ●

www.fromdual.com

Zugriff nur durch autorisierte Nutzer

Integrität

Veränderung der Daten

Nachvollziehbarkeit

Verfügbarkeit

Verhinderung von Systemausfällen

Sicherheitsprobleme (1)

Technische Sicherheitsprobleme

Sind einfach in den Griff zu bekommen

Hardware geht kaputt

einfach in den Griff zu bekommen ● Hardware geht kaputt www.fromdual.com ● Gut wenn schnell kaputt

www.fromdual.com

Gut wenn schnell kaputt

Schlecht wenn langsam kaputt

CPU, RAM, I/O-Controller, NW, Motherboard

Stromausfall

Disk läuft voll, DB crashed, Replikation bleibt stehen

Monitoring → Error Log anschauen!

Bugs

Sicherheitsprobleme (2)

Sicherheitsprobleme (2) www.fromdual.com ● Menschliche Sicherheitsprobleme ● Sind etwas schwieriger in den Griff zu

www.fromdual.com

Menschliche Sicherheitsprobleme

Sind etwas schwieriger in den Griff zu bekommen!

Unfall: Ups!!!

UPDATE emp SET salary = salary + 10000; WHERE position = 'manager';

DROP auf Produktion anstatt auf Entwicklungssystem :-(

Interner Datenklau (Schweizer Daten-CD's in D)

Externer Angriff (Zerstörung, DoS, Datenklau)

Gemäss Statistiken kommt interne Angriffe häufiger vor

als externe

?

Sicherheitsanforderungen

Sicherheitsanforderungen www.fromdual.com ● Was sind die Anforderungen? ● vs. was sind die Kosten? ● Wie lange

www.fromdual.com

Was sind die Anforderungen?

vs. was sind die Kosten?

Wie lange darf ein Restore/Recovery dauern?

MTTR

Welcher Datenverlust kann akzeptiert werden?

Alte Daten, neue Daten?

Ist es akzeptable, alte Daten erst später zurückzukriegen?

Wer hat Zugriff auf welche Daten?

Konsequenzen

Konsequenzen www.fromdual.com ● Wenn man nicht vorbereitet ist: ● Firma muss geschlossen werden ● Rechtliche

www.fromdual.com

Wenn man nicht vorbereitet ist:

Firma muss geschlossen werden

Rechtliche Konsequenzen

Finanzieller Schaden €€€

(fristlose) Entlassung

Reputationsschaden

Rechtliche Konsequenzen ● Finanzieller Schaden €€€ ● (fristlose) Entlassung ● Reputationsschaden 30 / 51
Rechtliche Konsequenzen ● Finanzieller Schaden €€€ ● (fristlose) Entlassung ● Reputationsschaden 30 / 51

Massnahmen

Massnahmen www.fromdual.com ● Was können wir für die Sicherheit tun? ● Technische Massnahmen: ● Backup +

www.fromdual.com

Was können wir für die Sicherheit tun?

Technische Massnahmen:

Backup + Restore + Restore-Tests

HA-Lösungen

Logging

Organisatorische Massnahmen

Regelmässige Upgrades (DB, O/S)

Zugriffskontrolle/-beschränkungen

Vertraulichkeit

Vertraulichkeit www.fromdual.com 32 / 51

www.fromdual.com

Warum so pingelig?

Warum so pingelig? www.fromdual.com ● Fuss in der Türe → Hocharbeiten ● Denial of Service DoS

www.fromdual.com

Fuss in der Türe → Hocharbeiten

Denial of Service DoS

Script Kiddies, Mitbewerber, Erpressung, Schaden

Reputationsschaden

Datendiebstahl

Kunden- oder Produktionsdaten, Steuersünder, etc.

Hoster!

100e von Nutzern

● Datendiebstahl ● Kunden- oder Produktionsdaten, Steuersünder, etc. ● Hoster! ● 100e von Nutzern 33 /

Zugriffsbeschränkung

Zugriffsbeschränkung www.fromdual.com ● Betriebssystem ( root user) ● Zugriff aufs DB Filesystem! ● DB Zugriff

www.fromdual.com

Betriebssystem (root user)

Zugriff aufs DB Filesystem!

DB Zugriff

root von remote?

Passwörter: leer, default, gleich, ändern

Privilegien: ALL ON *.*

Abwehrmassnahmen

Abwehrmassnahmen www.fromdual.com ● MySQL Konfiguration ● .history oder .mysql_history ● Datenbank NIE

www.fromdual.com

MySQL Konfiguration .history oder .mysql_history

Datenbank NIE Internet aussetzen → DMZ

Firewall

SQL-Firewall gegen Angriff aus der Applikation

Bekannte Angriffsziele meiden: phpMyAdmin

phpMyAdmin

phpMyAdmin www.fromdual.com http://www.phpmyadmin.net/home_page/security/ 36 / 51

www.fromdual.com

phpMyAdmin www.fromdual.com http://www.phpmyadmin.net/home_page/security/ 36 / 51
phpMyAdmin www.fromdual.com http://www.phpmyadmin.net/home_page/security/ 36 / 51

http://www.phpmyadmin.net/home_page/security/

Upgrades

Upgrades www.fromdual.com ● Upgrade Strategie? 37 / 51
Upgrades www.fromdual.com ● Upgrade Strategie? 37 / 51

www.fromdual.com

Upgrade Strategie?

www.fromdual.com Warum Upgrade Demo 38 / 51

www.fromdual.com

Warum Upgrade Demo

Integrität

Integrität www.fromdual.com 39 / 51

www.fromdual.com

Datenintegrität

Datenintegrität www.fromdual.com ● Binary Log ● General Query Log ● Logon Trigger ( init_connect ) ●

www.fromdual.com

Binary Log

General Query Log

Logon Trigger (init_connect)

Audit Log Plugin (Enterprise Feature)

McAfee MySQL Audit Plugin

Verfügbarkeit

Verfügbarkeit www.fromdual.com 41 / 51

www.fromdual.com

Backup + Restore

Backup + Restore www.fromdual.com ● Backup + Binary-Logging ● Point-in-Time-Recovery (PiTR) ● Restore-Tests um

www.fromdual.com

Backup + Binary-Logging

Point-in-Time-Recovery (PiTR)

Restore-Tests um Überraschungen zu vermeiden

● Backup + Binary-Logging ● Point-in-Time-Recovery (PiTR) ● Restore-Tests um Überraschungen zu vermeiden 42 / 51
Point-in-Time-Recovery (PITR) www.fromdual.com Application Application Application log_bin = on mysqld bin-log.1

Point-in-Time-Recovery (PITR)

www.fromdual.com

Application Application Application log_bin = on mysqld bin-log.1 bin-log.2 bin-log.n t 02:00 14:00 full backup
Application
Application
Application
log_bin = on
mysqld
bin-log.1
bin-log.2
bin-log.n
t
02:00
14:00
full backup
www.fromdual.com Warum Restore Test Demo 44 / 51

www.fromdual.com

Warum Restore Test Demo

HA Lösungen

RAID für Platten

Cluster-Lösungen

HA Lösungen ● RAID für Platten ● Cluster-Lösungen www.fromdual.com ● Master-Slave Replikation ● Galera

www.fromdual.com

Master-Slave Replikation

Galera Cluster für MySQL

Aktiv/passiv Failover-Cluster SAN/DRBD

MySQL Cluster

→ Hatten wir ja schon zu Beginn.

Achtung: NICHT für logische Fehler → Backup!

Galera Cluster für MySQL

App App App
App
App
App

rwrw Load balancing (LB)

Cluster für MySQL App App App rwrw Load balancing (LB) Node 1 wsrep Node 2 wsrep

Node 1

wsrep

Node 2

wsrep

Node 3

wsrep

Galera replication

synchrone Replikation

balancing (LB) Node 1 wsrep Node 2 wsrep Node 3 wsrep Galera replication synchrone Replikation www.fromdual.com

www.fromdual.com

Galera Cluster für MySQL

Galera Cluster für MySQL www.fromdual.com ● Hardware-Ausfall ● Wartungsarbeiten ● HW/OS/DB Upgrade App App App

www.fromdual.com

Hardware-Ausfall Wartungsarbeiten

HW/OS/DB Upgrade

App

App App
App
App
Load balancing (LB) Node 1 Node 2 Node 3 wsrep wsrep wsrep Galera replication
Load balancing (LB)
Node 1
Node 2
Node 3
wsrep
wsrep
wsrep
Galera replication
www.fromdual.com Demo Galera Cluster 48 / 51

www.fromdual.com

Demo Galera Cluster

Informationen

MySQL/MariaDB/Percona: Release-Notes

Oracle CPU

MySQL Dokumentation: Security

CVE

RedHat Security Advisors

MySQL Security Forum

GreenSQL: MySQL SQL Firewall

http://www.greensql.com

McAfee: MySQL Audit Plugin

https://github.com/mcafee/mysql-audit/downloads

● McAfee: MySQL Audit Plugin https://github.com/mcafee/mysql-audit/downloads www.fromdual.com 49 / 51

www.fromdual.com

Wir suchen noch:

Wir suchen noch: www.fromdual.com ● MySQL Enthusiast/in für Support / remote-DBA / Beratung und ● C++
Wir suchen noch: www.fromdual.com ● MySQL Enthusiast/in für Support / remote-DBA / Beratung und ● C++
Wir suchen noch: www.fromdual.com ● MySQL Enthusiast/in für Support / remote-DBA / Beratung und ● C++

www.fromdual.com

MySQL Enthusiast/in für Support / remote-DBA / Beratung

und C++ Entwickler (mit Affinität zu DB, MySQL und Replikation)

Q & A

Q & A Fragen ? Diskussion? www.fromdual.com Wir haben Zeit für ein Security Audit ● FromDual

Fragen ?

Diskussion?

Q & A Fragen ? Diskussion? www.fromdual.com Wir haben Zeit für ein Security Audit ● FromDual

www.fromdual.com

Wir haben Zeit für ein Security Audit

FromDual bietet neutral und unabhängig:

Beratung

Remote-DBA

Support für MySQL und Galera Cluster

Schulung

www.fromdual.com/presentations