34
© MariaDB Corpora,on Ab 1

Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

  • Upload
    mariadb

  • View
    363

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb 1

Page 2: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

DasOpen-Source-GatewayMariaDBMaxScale

FürMariaDB/MySQLDBAsundEntwickler

* *2

RalfGebhardtPrincipalSalesEngineer

Page 3: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

MariaDBCorpora,on

•  GegründetvomMySQLKernteam,wieMichael“Monty”WideniusundDavidAxmark.

•  Core-MariaDBEntwicklersindMitarbeitervonMariaDBCorpora,on

•  Entwicklungs-UnterstützungderMariaDBFounda,on•  OpenSourceEn,tystelltEntwicklungvonMariaDBausderCommunitysicher–www.mariadb.org

•  Innova,veProduktewertenMariaDBauf.•  EnterpriseServiceswie24/7SupportfürMariaDBundMySQL.

3

Page 4: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

WasistMariaDBMaxScale?

• EinflexiblerDaten-Gatewayfür•  Skalierung•  Hochverfügbarkeit•  Sicherheit•  Interoperabilität

• FlexibelkonfigurierbareGateway-Pla_orm• „Databaseaware“• „Plugable“Architektur

4

Page 5: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

WarumeineGateway-Pla_orm?

• VereinfachtdenAubauneuerDeployment-Architekturen

• ReduziertdieKomplexitätundRisikeninverschiedenstenUmgebungen

5

Page 6: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Standard-anwendung

HA-ArchitekturfürStandard-Anwendungen

6

Standard- anwendung

MaxScale RW-Splitting

Write

Master

Page 7: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Anwendung

Rou,ngüberAnwendung

7

RW-Splitting

Anwendung

Load Balancing

Galera

Write

Master

Page 8: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Rou,ngüberMariaDBMaxScale

8

MaxScale

Anwendung

Connection Routing

Anwendung

Connection Routing

Write Read Write

Galera Master

Anwendung

Connection Routing

Galera

Page 9: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Warum„Databaseaware“?

• AngepasstanDatenbank-Umgebungen• KenntdenStatusderDatenbank-Service-Komponenten

•  „versteht“denDatenstrom• VerteiltAnfragenbasierendaufderKombina,onvon

•  DefiniertenAlgorithmen•  StatusderKomponenten•  InhaltderAnfragen•  Session-Status

9

Page 10: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

MariaDBMaxScaleArchitektur

10

CORE

PROTOCOL

Networking

MariaDB MaxScale

Listener (Client

Backend (Server)

Plugin Loading

Buffer Management Query Classification

MONITOR

Replication

Galera

Query-Filter

Tee-Filter

FILTER

Connection

Statement

ROUTER

Configuration Logging Scheduling Request Flow

AUTHENTICATION

Page 11: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

MariaDBMaxScaleKonfigura,on

11

Core

[Test-Service] type=service router=readconnroute router_options=slave servers=server1,server2,server3,server4 user=massi passwd=6628C50E07CCE1F0392EDEEB9D1203F3 weightby=cores

Name über den der Service referenziert werden kann (z.B. von einem Filter.

Sektionen für server1, server2, server3 und server4 werden getrennt in der Konfigurationsdatei definiert

•  AllgemeineOp,oneninder“maxscale”Sek,onderINI-Datei

•  AnzahlThreads•  Ak,vierungvonLogging

[maxscale] threads=3 log_messages=off log_debug=on

•  AußerhalbderSek,on“maxscale”•  Sek,ons-NamensindObjekt-NameninnerhalbvonMaxScale•  InjedemBereichwirdeinObjekt-Typedefiniert

Page 12: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Datenbank-Benutzer

•  ZweiArtenvonNutzernwerdenbenö,gt•  Monitorbenö,gteinenNutzerREPLICATION CLIENT on *.*

•  Servicesbenö,geneinenNutzerumNutzer-Informa,onenundDatenbank-NamenzuermiielnSELECT on mysql.user, SELECT on mysql.db and SHOW DATABASES on *.*

•  Nutzer-Passwörterkönnenunverschlüsseltoderverschlüsseltdefiniertwerden

•  ErstellungvonEncryp,onKeysüber„maxkeys“•  ErstellungvonverschlüsseltenPasswörternüber“maxpasswd“

12

Page 13: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Authen,fizierung

•  MariaDBverwendetBenutzer,PasswortundHostzurAuthen,fizierung

•  MaxScaleverwendetdiegleicheLogikfüreingehendeVerbindungen

•  MariaDBBackendsverwendenVerbindungenvonMaxScale,nichtdiederClient-Adressen

•  AlleMariaDB/MySQLNutzermüssensichvomMaxScaleHostverbindenkönnenundBerech,gungenmüssenfürdenBenutzerdesMaxScaleHostsdefiniertsein

Page 14: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

EinschränkungenzurAuthen,fizierung

•  PerHostPasswörter•  UmgebungenindenendergleicheNutzerverschiedenePasswörterfürunterschiedlicheHostsverwendet,werdennichtunterstützt

•  WildcardsinHostnamen•  WildcardswerdennurinIP-Adressenunterstützt

•  AlleHostsineinemClustermüsseneinengemeinsamenPoolvonNutzernverwenden

•  Momentanwirdnurderna,veMariaDBinterneAuthen,fizierungsmechanismusunterstützt•  Authen,fizierungs-Pluginskönnennichtverwendetwerden

Page 15: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

End-to-EndKonfigura,onfüreinenService

[<ServiceName>] type=service router=<router-module-name> router_options=<router-options specific to router> servers=<list of backend servers to route to srv1, srv2> user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3 <service-specific-option>=<option-value> Filter=<FilterName>

[ListenerNAme] type=listener service=<ServiceName> protocol=MySQLClient port=<MaxScale Port for listening>

[BackEndserverName] type=server address=<server-host-address> port=<port-at-which-database-server-listens> protocol=MySQLBackend

[FilterName] type=filter module=<filter-module-name> <filter-specific-option>=<option-value>

[MonitorName] type=monitor module=<monitor-module-name> servers=<list of servers in cluster to be monitored srv1, srv2> user=mper passwd=massi monitor_interval=<value>

One for each server in cluster

Page 16: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Anwendung

Tradi,onellesLoadBalancingMaster/Slave

16

Connection Routing

•  Verbindungs-BasiertesRou,ng•  VerteilungvonVerbindungenübermehrereServer

•  MonitoringermiieltMasterundSlave•  GewichtungfürVerbindung,wennkonfiguriert•  RoundRobinfürSlaves

•  ExternesFailovererforderlichWrite

Master

Page 17: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Master-SlaveClusterRead&WriteServicesConfigura,on

ReadService

[ReadService] type=service router=readconnroute router_options=slave servers=server1,server2,server3,server4 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3

[ReadListener] type=listener service=ReadService protocol=MySQLClient port=4006

Andnetworklistener

[WriteService] type=service router=readconnroute router_options=master servers=server1,server2,server3,server4 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3

[WriteListener] type=listener service=WriteService protocol=MySQLClient port=4007

Andnetworklistener

WriteService

Client-Anwendungen verwenden die verschiedenen Listener-Ports und optinonales IP-Binding für ihre Lese- und Schreib-Verbindungen

Page 18: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Defini,onderServer

•  Defini,onAdresse/Hostname

•  PortdesServers•  DasProtocol-ModulfürdieVerbindung

[server1] type=server address=127.0.0.1 port=3307 protocol=MySQLBackend

•  Op,onalkannderMonitor-NutzerfürdenServerüberschriebenwerden

Entsprechende Konfiguration für die restlichen Server (server2,server3, server4)

[ReadService] type=service router=readconnroute router_options=slave servers=server1,server2,server3,server4 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3

Page 19: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

MariaDB(Master-Slave)MonitorKonfigura,on

•  EinMonitorfürbeideServices

•  Verwendungdes“mysqlmon”Modules

[MySQL Monitor] type=monitor module=mysqlmon servers=server1,server2,server3,server4 user=mper passwd=massi

•  Op,onalesDefinierendesMonitoring-Intervalls(inMillisekunden)

monitor_interval=5000

Gruppe von Servern, Monitoring als Cluster

ReduzierungdesMonitorIntervallserlaubtfrühereErkennungvonFailover

Page 20: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Anwendung

Tradi,onellesLoadBalancingGaleraCluster

20

Connection Routing

•  Verbindungs-BasiertesRou,ng•  VerteilungvonVerbindungenübermehrereServer

•  Monitoringermiielt„Master-Node“•  GewichtungfürVerbindung,wennkonfiguriert•  RoundRobinfürSlaves

•  GaleraMonüberwachtClusterunddefiniertdieMaster-Node

•  KeinexternesFailovererforderlich•  KeineSchreib-Konflikte

Read Write

Page 21: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

GaleraClusterRead&WriteServicesConfigura,on

ReadService

[ReadService] type=service router=readconnroute router_options=slave servers=server1,server2,server3 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3

[ReadListener] type=listener service=ReadService protocol=MySQLClient port=4008

Andnetworklistener

[WriteService] type=service router=readconnroute router_options=master servers=server1,server2,server3 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3

[WriteListener] type=listener service=WriteService protocol=MySQLClient port=4009

Andnetworklistener

WriteService

Client-Anwendungen verwenden die verschiedenen Listener-Ports für ihre Lese- und Schreib-Verbindungen

Page 22: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Defini,onderServer

•  Defini,onAdresse/Hostname

•  PortdesServers•  DasProtocol-ModulfürdieVerbindung

[server1] type=server address=127.0.0.1 port=3307 protocol=MySQLBackend

•  Op,onalkannderMonitor-NutzerfürdenServerüberschriebenwerden

Entsprechende Konfiguration für die restlichen Server (server2,server3)

[ReadService] type=service router=readconnroute router_options=slave servers=server1,server2,server3 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3

Page 23: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

GaleraMonitorKonfigura,on

•  EinMonitorfürbeideServices

•  Verwendungdes“galeramon”Modules

[MySQL Monitor] type=monitor Module=galeramon servers=server1,server2,server3 user=mper passwd=massi

•  Op,onalesDefinierendesMonitoring-Intervalls(inMillisekunden)

monitor_interval=5000

Gruppe von Servern in Galera Cluster

ReduzierungdesMonitorIntervallserlaubtfrühereErkennungvonFailover

Page 24: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Anwendung

Statement-BasiertesRou,ngMaster/Slave

24

Connection Routing

•  VerteilungvonVerbindungenübermehrereServer

•  MonitoringermiieltMasterundSlave•  GewichtungfürVerbindung,wennkonfiguriert•  Statement-BasiertesRou,ngermiielt

lesen,schreibenoderSession-Modifika,onen

•  RoundRobinfürSlaves

•  ExternesFailovererforderlichWrite

Master

Page 25: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Master-SlaveClusterRead&WriteServicesConfigura,on

Read/WriteSpliierService

[SplitService] type=service router=readwritesplit servers=server1,server2,server3,server4 user=mper passwd=6628C50E07CCE1F0392EDEEB9D1203F3 router_option=slave_selection_criteria=LEAST_BEHIND_MASTER

[SplitListener] type=listener service=SplitService protocol=MySQLClient port=4006

Andnetworklistener

Client-Anwendungen verwenden die verschiedenen Listener-Ports für ihre Lese- und Schreib-Verbindungen

Page 26: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Read/WriteSpliierOp,onen

•  ParameterfürSlaveAuswahlkriterium

•  MaximaleAnzahlanSlaveVerbindungen•  MaximaleAnzahlSlavesfürLastverteilung•  DefiniertalsabsoluteZahloder%

max_slave_connections=50%

•  RouterOp,onenfürSlaveAuswahlkriterium•  LeastGlobalConnec,ons

•  LEAST_GLOBAL_CONNECTIONS•  SlavemitminimalerAnzahlanBackend

VerbindungenallerServices•  LeastRouterConnec,ons

•  LEAST_ROUTER_CONNECTIONS•  SlavemitminimalerAnzahlBackend

VerbindungendiesesServices•  LeastCurrentOpera,ons-Default

•  LEAST_CURRENT_OPERATIONS•  SlavemitminimalerAnzahlak,ver

Anfragen

•  Slaves sind Nodes die zum Lesen verwendet werden

•  Nicht Slaves im Sinne eines Master / Slave Cluster

Page 27: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

Defini,onderServer

•  Defini,onAdresse/Hostname

•  PortdesServers•  DasProtocol-ModulfürdieVerbindung

[server1] type=server address=127.0.0.1 port=3307 protocol=MySQLBackend

•  Op,onalkannderMonitor-NutzerfürdenServerüberschriebenwerden

Entsprechende Konfiguration für die restlichen Server (server2,server3, server4)

Page 28: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

MariaDB(Master-Slave)MonitorKonfigura,on

•  EinMonitorfürbeideServices

•  Verwendungdes“mysqlmon”Modules

[MySQL Monitor] type=monitor module=mysqlmon servers=server1,server2,server3,server4 user=mper passwd=massi

•  Op,onalesDefinierendesMonitoring-Intervalls(inMillisekunden)

monitor_interval=5000

Gruppe von Servern, Monitoring als Cluster

ReduzierungdesMonitorIntervallserlaubtfrühereErkennungvonFailover

•  Op,onalMonitoringSlaveLag

detect_replication_lag=1

Nur für read/write-split Router für Master-Slave Cluster

Page 29: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

Anwendung

AbfrageabhängigesRou,ng

29

Statement Routing

•  AbfrageabhängigerRou,ng•  VerteilungvonSchreibzugriffenübermehrereServer

•  FilterdefiniertgenutzteVerbindung•  GewichtungfürVerbindung,wennkonfiguriert

•  GaleraMonüberwachtClusterunddefiniertdieMaster-Node

•  KeinexternesFailovererforderlich•  KeineSchreibkonflikte

/*from*users/ Allotherqueries

Page 30: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

RegexbasiertesRou,ngvonAnfragen

•  DefinierendesNamedServerFiltermitregexundZiel-Server

[NamedServer1]

type=filter

module=namedserverfilter match= *from *users options=ignorecase server=server1

•  DefinierenvonServiceundListener

•  FilterhinzufügenzuService[SplitService] type=service router=readwritesplit servers=server1,server2,server3 user=massi passwd=6628C50E07CCE1F0392EDEEB9D1203F3 filter=NamedServer1

[SplitListener] type=listener service=SplitService protocol=MySQLClient port=4006

Page 31: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

© 2015, MariaDB Corp.

QueryLogging:DBA

1.  MaxScaleakzep,ertAnfragevonClientApplika,on

2.  WeiterleitungzumBack-end•  Login“AllQueries”•  Login“LongRunningQueries”

3.  EmpfangdesErgebnissesvomback-end,

4.  WeiterleitungdesErgebnisseszumClient

•  Ergebnisin“AllQueries”Log•  WenneinederNlangsamsten

Anfragen,Ergebnisin“LongRunningQueries”logFile

MaxScale

.log

Long Queries (Top N queries)

.log

All Queries

1 4

2

4

2

4 2 3

Page 32: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

WeitereAnwendungsfälle

• SchemaSharding• AnwendungsabhängigesRou,ng• Binlog-Server• Query-Blocking• QueryTransforma,on• ReduziertdieKomplexitätundRisikeninverschiedenstenUmgebungen

32

Page 33: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

WeitereInforma,onen

● hips://mariadb.com/products/mariadb-maxscale

● MariaDBMaxScaleherunterladen:hips://mariadb.com/resources/downloads

● Blogs:●  Übersicht:hips://mariadb.com/blog-tags/MaxScale

●  AusgewählteThemen:●  hips://mariadb.com/blog/maxscale-firewall-filter

●  hips://mariadb.com/blog/mariadb-automa,c-failover-maxscale-and-mariadb-replica,on-manager

● HilfeundBeratung:hips://mariadb.com/services/mariadb-mysql-consul,ng

● TechnischeUnterstützung:hips://mariadb.com/products/subscrip,on-plans

● Kontakvormular:hips://mariadb.com/about/contact

Page 34: Für DBAs und Entwickler: Das intelligente Open-Source-Gateway MariaDB MaxScale

©MariaDBCorpora,onAb

VielenDank!

[email protected]

"MySQL is a registered trademark of Oracle and/or its affiliates. Other names may be trademarks of their respective owners SkySQL is not affiliated with MySQL."