Kom ihåg mig?
Home Menu

Menu


MySQL HA Konfiguration

Ämnesverktyg Visningsalternativ
Oläst 2013-04-14, 17:56 #1
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Tool MySQL HA Konfiguration

Jag har fått i uppdrag att utöka vår MySQL infrastruktur för företaget jag jobbar på, och är ute efter lite tips från er andra som har varit i samma situation.

Det jag är ute efter är hur ni har satt up eran infrastruktur för MySQL så att det inte finns en enda singel point of failure. Det ska gå att göra reads och writes oavsett om en Master eller Slave går ner.

Det är väldigt lätt att utöka antalet slaves i klustret, men det som jag har problem att lösa är om mastern går ner. Då kommer det inte gå att göra några writes, utan bara reads. Hur har ni löst detta?

Jag har kollat en del på MySQL-MMM, men vet inte om det är lösning. Som jag har förstått det skapar Master-Master replikation mer problem än vad det är värt, så MySQL-MMM verkar lösa det på ett bra sätt genom att endast ha en aktiv Master.

Jag har också kollat en del på https://github.com/mrkamel/heartbeat om det kan vara någon lösning att ha en Failover IP adress som ändras, men känns inte riktigt som att det är rätt lösning.

Jag är öppen för alla förslag som ni kan komma med.

Tack,
David
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-14, 18:31 #2
Björklunds avatar
Björklund Björklund är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jul 2006
Inlägg: 594
Björklund Björklund är inte uppkopplad
Mycket flitig postare
Björklunds avatar
 
Reg.datum: Jul 2006
Inlägg: 594
Master/Master-replikering är lite speciellt. Om du behöver fråga här så rekommenderar jag det inte.

Kör vanlig master/slave-replikering. Har du flera slavar så kör gärna en lastbalanserare för dom.

Skicka alla skriv till master.mindomän.se och all läsfrågor till slaves.mindomän.se
När mastern går ner, kör ex keepalived för att flytta master IP till en slav (dvsa gör den till master).

Börja inte använda den gamla mastern igen, innan du har synkat upp den med nya mastern.
Björklund är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-14, 19:31 #3
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
MM replikering skapar mer problem än vad det är värt ja. Kör hellre MS och låt slaven ta över IP:et och ändra sin roll.

Galera replikering kan också vara värt att titta på. I ett Galera-kluster kan du skriva till alla servrar men du har lite (inte alls så mycket som man kan tro) overhead för en skrivning.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-14, 21:35 #4
patrikweb patrikweb är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Nov 2004
Inlägg: 6 096
patrikweb patrikweb är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Nov 2004
Inlägg: 6 096
Galera är enda vettiga om du tänker köra MASTER/MASTER, men tror det finns lite mer alternativ nu som kostar pengar nu när Oracle äger det.

Men om du vill ha en riktigt enterprise databas som ska funka i alla väder får du kolla på Oracle, dock tveksamt om din data ens är värd så mycket som deras databas kostar
patrikweb är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-14, 22:14 #5
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
Ni har inte kollat på tex Perconas lösning? Tex http://www.percona.com/software/percona-xtradb-cluster då får man Galera "på köpet"
JesperA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-15, 09:26 #6
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Annars kan du ta en titt på MySQL NDB Cluster.
Det har jag kört och jag tycker det fungerar väldigt bra.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-15, 10:28 #7
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Tack för alla svar! Ni har gett mig mycket att fundera över, och här kommer några av de funderingar:

Ett problem som finns är att vi kör MyISAM. Anledningen till att jag valde MyISAM i början är att jag visste att det kommer främst vara selects på servern. I dagsläget har vi cirka 85% selects, 8% update och 5% inserts.
De flesta klustrerna kräver att man kör InnoDB om jag inte misstar mig. Skulle prestandan påverkas mycket om jag konverterade datan till InnoDB?

Kan man flytta floating IPs runt på servrar om dem inte finns i samma subnet? Jag har nämligen tänkt hyra servrar i olika datacenter.

Anledningen till att vi vill ha en HA infrastruktur är för att se till att vi inte har någon nertid. Prestandan är i dagsläget inget problem. Vi har cirka 13 queries / sekund.

Hur fungerar Galera, MySQL NDB Cluster och Percona XtraDB cluster när servrarna är i olika data center? Om det inte är att rekommendera, har ni något förslag på hur jag kan sätta upp servrar-infrastrukturen så att tjänsten fortfarande är tillgänglig om ett DC kraschar. Alternativt om ni kan rekommendera någon leverantör som är seperata elkällor och internetleverantörer för olika avdelningar i datacentret.

Senast redigerad av captaindoe den 2013-04-15 klockan 10:34
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-15, 11:12 #8
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av captaindoe Visa inlägg
Tack för alla svar! Ni har gett mig mycket att fundera över, och här kommer några av de funderingar:

Ett problem som finns är att vi kör MyISAM. Anledningen till att jag valde MyISAM i början är att jag visste att det kommer främst vara selects på servern. I dagsläget har vi cirka 85% selects, 8% update och 5% inserts.
De flesta klustrerna kräver att man kör InnoDB om jag inte misstar mig. Skulle prestandan påverkas mycket om jag konverterade datan till InnoDB?

Kan man flytta floating IPs runt på servrar om dem inte finns i samma subnet? Jag har nämligen tänkt hyra servrar i olika datacenter.

Anledningen till att vi vill ha en HA infrastruktur är för att se till att vi inte har någon nertid. Prestandan är i dagsläget inget problem. Vi har cirka 13 queries / sekund.

Hur fungerar Galera, MySQL NDB Cluster och Percona XtraDB cluster när servrarna är i olika data center? Om det inte är att rekommendera, har ni något förslag på hur jag kan sätta upp servrar-infrastrukturen så att tjänsten fortfarande är tillgänglig om ett DC kraschar. Alternativt om ni kan rekommendera någon leverantör som är seperata elkällor och internetleverantörer för olika avdelningar i datacentret.
Galera replikering (xtradb cluster är galera och innodb/xtradb, medans mysql cluster är ndb) ger dig inga nämnvärda problem med flera DCs så länge du har OK svarstid därimellan - skrivningar måste skickas till alla noder. Den används t o m framgångsrikt över olika kontinenter, men då kan man räkna med ett par hundra ms för en skrivning, så då kan det finnas anledning att tråda skrivningar för att användaren ska slippa vänta.

Med din query-fördelning skulle jag rekommendera dig att byta till InnoDB oavsett. När antalet frågor stiger finns det stor risk att du får låsningsproblem annars. Det finns verktyg för att spela upp dina egna queries mot en ny instans, t ex pt-query-digest där du får performance metrics via samma verktyg, riktigt smidigt. Notera dock att med InnoDB så är det viktigt att ha en varm server när du påbörjar dina mätningar. Bästa sättet att göra det representativt är att köra en replay på en timmes loggar utan att kolla metrics, för att sedan köra nästa timmes loggar med mätning.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-04-16, 22:20 #9
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Tack för alla tips. Jag tar och undersöker lite mera innan jag tar det slutgiltiga beslutet. I dagsläget lutar jag mot Galera replikerings-hållet. Är det några stora nackdelar med Galera som kan vara värt att veta?
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Svara

Taggar
high availability, infrastruktur, load balancer, mysql


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:16.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017