Clustering Magento

MageSpecialist
MageSpecialistMageSpecialist
CClluusstteerriinngg MMaaggeennttoo 
Case study su come realizzare un cluster 
di database e filesystem per installazioni 
magento su vm multiple: 
tecnologie, software, high availability, 
configurazioni, load balancing, failover. 
PPaarrmmaa,, 0077//1111//22001144 
RRiiccccaarrddoo TTeemmppeessttaa && MMaarrccoo GGiioorrggeettttii 
wwwwww..mmaaggeessppeecciiaalliisstt..iitt 
BENVENUTI !!!111! 
Clustering Magento MageDay – Parma 07/11/2014 - 1
Cos'è il clustering per Magento? 
A cosa serve? 
Aumento Performance Failover 
Load Balancing Disaster Recovery 
Scenari tipici 
●Carico singolo server al limite 
●Necessità di HA 
●Necessità di dormire sonni tranquilli! 
Clustering Magento MageDay – Parma 07/11/2014 - 2
High Availability / Failover 
HA Proxy 
Server 1 Server 2 
Clustering Magento MageDay – Parma 07/11/2014 - 3
Do not panic!!! … Ok, panic!!! 
Clustering Magento MageDay – Parma 07/11/2014 - 4
Scenario classico 
Reverse proxy / HA proxy 
Istanze Magento (parte PHP) 
File Magento 
Database 
Sessioni 
Cache 
Clustering Magento MageDay – Parma 07/11/2014 - 5
Tecnologie e software disponibili 
Vs 
Proxy RV / HA 
Cache 
Filesystem Redis 
SAN 
DB (cluster?) 
Clustering Magento MageDay – Parma 07/11/2014 - 6
Database 
Replica 
Nativo MySQL 
Approccio Master / Slave 
No multi-master su Magento 
OK per failover supervisionato, no HA 
Ottimo per i backup 
Cluster 
Percona XtraDB cluster 
Approccio multi-master 
Ok per HA e bilanciamento 
Troppo bello per essere vero... 
… infatti con Magento non sempre funziona 
master slave 1 slave 2 
Clustering Magento MageDay – Parma 07/11/2014 - 7
Cache e sessioni 
Non cluster 
OK per failover supervisionato, no HA 
Le altre istanze sono pronte a partire 
Nel passaggio perdiamo i dati 
Sistemi non clusterizzabili 
Cluster 
Il dato è distribuito 
Ottimo per HA 
Le funzioni cluster di Redis non sono 
Ancora utilizzabili in produzione 
Ok su memcache 
Clustering Magento MageDay – Parma 07/11/2014 - 8
Filesystem 
Sincronizzato 
Lsyncd / Unison 
Ok per i file di Magento 
Che accade con la cartella “media”? 
Cluster 
Filesystem distribuiti 
RAID via rete 
DRBD, GlusterFS 
Problema del multi-master 
Clustering Magento MageDay – Parma 07/11/2014 - 9
Filesystem condivisi 
Problema dei lockfile in multi-master 
TCP TCP 
TCP 
Clustering Magento MageDay – Parma 07/11/2014 - 10
Filesystem Clustering 
GlusterFS 
Filesystem lock manager 
GlusterFS 
Linux OS 
Ext3, Ext4, ecc... 
Linux OS 
OCFS2 / GFS2 
Supporto fisico 
DRBD 
DRBD 
Clustering Magento MageDay – Parma 07/11/2014 - 11
Mamma ho perso il server! 
Failover supervisionato 
● Modifca a /etc/hosts con definizione dei 
nomi host per ogni servizio: 
192.168.0.10 mysqldb 
192.168.0.10 cachedb 
192.168.0.10 sessiondb 
● Modifica al file local.xml con puntamento ai 
nomi host definiti come sopra 
● Redirezione dal reverseproxy se non 
esiste un ”maxfail” 
● In caso di failover si ridefiniscono le entry 
in /etc/hosts e si riavviano i servizi 
Clustering Magento MageDay – Parma 07/11/2014 - 12
Tecnologie e software disponibili 
Storage senza SAN (filesystem condivisi) 
Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2 
Pro Cons Globale 
Lsyncd ● Semplice da configurare 
● Flessibile 
● Permette esclusione di file basata 
su pattern 
● Nessun overhead su filesystem 
● Latenza elevata 
● Utilizza gli iwatch 
● Non gestisce i lock 
condivisi 
● Consigliato 
solo per 
failover 
● Generalmente 
sconsigliato su 
hosting 
condivisi 
Clustering Magento MageDay – Parma 07/11/2014 - 13
Tecnologie e software disponibili 
Storage senza SAN (filesystem condivisi) 
Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2 
Pro Cons Globale 
GlusterFS ● Facilissimo da configurare 
● Usa filesystem di qualsiasi tipo 
● Utilizzabile anche su FS già 
esistenti 
● Si può configurare anche in 
striping oltre che mirroring 
● Facilmente espandibile 
● Possibilità di usare un dual 
master 
● Possibilità di split-brain 
accidentale molto remota 
● Gira nello userspace 
● La lettura deve essere 
coordinata tra tutti i nodi e 
non avviene direttamente 
dalla macchina locale 
● Estremamente lento nelle 
operazioni di lettura 
Sconsigliato per 
le performance 
Clustering Magento MageDay – Parma 07/11/2014 - 14
Tecnologie e software disponibili 
Storage senza SAN (filesystem condivisi) 
Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2 
DRBD 
+ 
GFS2 
Pro Cons Globale 
● Lettura FS locale 
● Lock condiviso 
● Performance in lettura eccellenti 
● Possibilità di integrazione con 
pacemaker 
● Difficile da configurare 
● Disponibile solo su 
RedHat 
● Possibilità di split-brain 
accidentale su sistemi con 
meno di 3 nodi 
Consigliato per 
RedHat 
Clustering Magento MageDay – Parma 07/11/2014 - 15
Tecnologie e software disponibili 
Storage senza SAN (filesystem condivisi) 
Lsyncd - GlusterFS - GFS2 - DRBD+OCFS2 
DRBD 
+ 
OCFS2 
Pro Cons Globale 
● Lettura FS locale 
● Lock condiviso 
● Performance in lettura eccellenti 
● Possibilità di integrazione con 
pacemaker 
● Disponibile per quasi tutte le 
distro 
● Difficile da configurare 
● Soffre di problemi di 
frammentazione se non 
adeguatamente 
configurato 
● Possibilità di split-brain 
accidentale su sistemi con 
meno di 3 nodi 
Consigliato in 
generale 
Clustering Magento MageDay – Parma 07/11/2014 - 16
Tecnologie e software disponibili 
MySQL 
Replica - Cluster 
MySQL 
Replica 
Pro Cons Globale 
● Configurazione semplice 
● Applicabile anche su db già 
esistenti 
● Elaborazione su singola 
macchina 
● Impossibile usare un dual 
master senza rischio di 
conflitti 
● In caso di errore il 
riallineamento può 
richiedere diverso tempo 
Consigliato 
Clustering Magento MageDay – Parma 07/11/2014 - 17
Tecnologie e software disponibili 
MySQL 
Condiviso - Cluster 
MySQL 
Cluster 
Pro Cons Globale 
● Elaborazione su più macchine 
● Possibilità di usare un dual 
master 
● Ottimo per le situazioni di HA 
● In caso di errore il recovery è 
estremamente semplice e veloce 
● Configurazione più 
complessa 
● Instabilità nelle 
transazioni molto lunghe 
● Performance ridotte a 
causa del coordinamento 
tra nodi 
Sconsigliato su 
Magento 
Clustering Magento MageDay – Parma 07/11/2014 - 18
Case studies 
Case #1 
Lsyncd + MySql Replica + Redis 
Nodo 1 
Lsyncd 
MySql primario 
Redis primario (sess+cache) 
Nodo 2 
Lsyncd 
MySql secondario 
Redis secondario (sess+cache) 
Clustering Magento MageDay – Parma 07/11/2014 - 19
Case studies 
Case #2 
Drbd+OCFS2 + MySql Cluster + Redis 
Nodo 1 
Drbd+OCFS2 
MySql primario 
Redis primario (sess+cache) 
Nodo 2 
Drbd+OCFS2 
MySql secondario 
Redis secondario (sess+cache) 
Clustering Magento MageDay – Parma 07/11/2014 - 20
Case studies 
Case #3 
Drbd+OCFS2 + MySql replica + Redis 
Nodo 1 
Drbd+OCFS2 
MySql primario 
Redis primario (sess+cache) 
Nodo 2 
Drbd+OCFS2 
MySql secondario 
Redis secondario (sess+cache) 
Clustering Magento MageDay – Parma 07/11/2014 - 21
Confronto Case studies 
Pro e contro degli scenari 
Case #1 Case #2 Case #3 
● Lsyncd 
● MySql Replica 
● Redis 
● Drbd+OCFS2 
● MySql Cluster 
● Redis 
● Drbd+OCFS2 
● MySql replica 
● Redis 
Clustering Magento MageDay – Parma 07/11/2014 - 22
Domande & Risposte 
Avete domande? 
Anche noi: 
Chi ci offre un caffè? :) 
Clustering Magento MageDay – Parma 07/11/2014 - 23
CClluusstteerriinngg MMaaggeennttoo 
MageDay 2014 
Parma, 07/11/2014 
Riccardo Tempesta & Marco Giorgetti 
www.magespecialist.it 
Feedback e commenti su 
https://joind.in/12696 
GRAZIE !!!111! 
Licenza 
Quest' opera è distribuita con licenza Creative Commons Attribuzione - Condividi allo stesso modo 3.0 Unported. 
http://creativecommons.org/licenses/by-nc-sa/3.0/deed.it 
I marchi e le immagini utilizzate sono di proprietà dei rispettivi proprietari. 
Clustering Magento MageDay – Parma 07/11/2014 - 24
1 of 24

More Related Content

Clustering Magento

  • 1. CClluusstteerriinngg MMaaggeennttoo Case study su come realizzare un cluster di database e filesystem per installazioni magento su vm multiple: tecnologie, software, high availability, configurazioni, load balancing, failover. PPaarrmmaa,, 0077//1111//22001144 RRiiccccaarrddoo TTeemmppeessttaa && MMaarrccoo GGiioorrggeettttii wwwwww..mmaaggeessppeecciiaalliisstt..iitt BENVENUTI !!!111! Clustering Magento MageDay – Parma 07/11/2014 - 1
  • 2. Cos'è il clustering per Magento? A cosa serve? Aumento Performance Failover Load Balancing Disaster Recovery Scenari tipici ●Carico singolo server al limite ●Necessità di HA ●Necessità di dormire sonni tranquilli! Clustering Magento MageDay – Parma 07/11/2014 - 2
  • 3. High Availability / Failover HA Proxy Server 1 Server 2 Clustering Magento MageDay – Parma 07/11/2014 - 3
  • 4. Do not panic!!! … Ok, panic!!! Clustering Magento MageDay – Parma 07/11/2014 - 4
  • 5. Scenario classico Reverse proxy / HA proxy Istanze Magento (parte PHP) File Magento Database Sessioni Cache Clustering Magento MageDay – Parma 07/11/2014 - 5
  • 6. Tecnologie e software disponibili Vs Proxy RV / HA Cache Filesystem Redis SAN DB (cluster?) Clustering Magento MageDay – Parma 07/11/2014 - 6
  • 7. Database Replica Nativo MySQL Approccio Master / Slave No multi-master su Magento OK per failover supervisionato, no HA Ottimo per i backup Cluster Percona XtraDB cluster Approccio multi-master Ok per HA e bilanciamento Troppo bello per essere vero... … infatti con Magento non sempre funziona master slave 1 slave 2 Clustering Magento MageDay – Parma 07/11/2014 - 7
  • 8. Cache e sessioni Non cluster OK per failover supervisionato, no HA Le altre istanze sono pronte a partire Nel passaggio perdiamo i dati Sistemi non clusterizzabili Cluster Il dato è distribuito Ottimo per HA Le funzioni cluster di Redis non sono Ancora utilizzabili in produzione Ok su memcache Clustering Magento MageDay – Parma 07/11/2014 - 8
  • 9. Filesystem Sincronizzato Lsyncd / Unison Ok per i file di Magento Che accade con la cartella “media”? Cluster Filesystem distribuiti RAID via rete DRBD, GlusterFS Problema del multi-master Clustering Magento MageDay – Parma 07/11/2014 - 9
  • 10. Filesystem condivisi Problema dei lockfile in multi-master TCP TCP TCP Clustering Magento MageDay – Parma 07/11/2014 - 10
  • 11. Filesystem Clustering GlusterFS Filesystem lock manager GlusterFS Linux OS Ext3, Ext4, ecc... Linux OS OCFS2 / GFS2 Supporto fisico DRBD DRBD Clustering Magento MageDay – Parma 07/11/2014 - 11
  • 12. Mamma ho perso il server! Failover supervisionato ● Modifca a /etc/hosts con definizione dei nomi host per ogni servizio: 192.168.0.10 mysqldb 192.168.0.10 cachedb 192.168.0.10 sessiondb ● Modifica al file local.xml con puntamento ai nomi host definiti come sopra ● Redirezione dal reverseproxy se non esiste un ”maxfail” ● In caso di failover si ridefiniscono le entry in /etc/hosts e si riavviano i servizi Clustering Magento MageDay – Parma 07/11/2014 - 12
  • 13. Tecnologie e software disponibili Storage senza SAN (filesystem condivisi) Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2 Pro Cons Globale Lsyncd ● Semplice da configurare ● Flessibile ● Permette esclusione di file basata su pattern ● Nessun overhead su filesystem ● Latenza elevata ● Utilizza gli iwatch ● Non gestisce i lock condivisi ● Consigliato solo per failover ● Generalmente sconsigliato su hosting condivisi Clustering Magento MageDay – Parma 07/11/2014 - 13
  • 14. Tecnologie e software disponibili Storage senza SAN (filesystem condivisi) Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2 Pro Cons Globale GlusterFS ● Facilissimo da configurare ● Usa filesystem di qualsiasi tipo ● Utilizzabile anche su FS già esistenti ● Si può configurare anche in striping oltre che mirroring ● Facilmente espandibile ● Possibilità di usare un dual master ● Possibilità di split-brain accidentale molto remota ● Gira nello userspace ● La lettura deve essere coordinata tra tutti i nodi e non avviene direttamente dalla macchina locale ● Estremamente lento nelle operazioni di lettura Sconsigliato per le performance Clustering Magento MageDay – Parma 07/11/2014 - 14
  • 15. Tecnologie e software disponibili Storage senza SAN (filesystem condivisi) Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2 DRBD + GFS2 Pro Cons Globale ● Lettura FS locale ● Lock condiviso ● Performance in lettura eccellenti ● Possibilità di integrazione con pacemaker ● Difficile da configurare ● Disponibile solo su RedHat ● Possibilità di split-brain accidentale su sistemi con meno di 3 nodi Consigliato per RedHat Clustering Magento MageDay – Parma 07/11/2014 - 15
  • 16. Tecnologie e software disponibili Storage senza SAN (filesystem condivisi) Lsyncd - GlusterFS - GFS2 - DRBD+OCFS2 DRBD + OCFS2 Pro Cons Globale ● Lettura FS locale ● Lock condiviso ● Performance in lettura eccellenti ● Possibilità di integrazione con pacemaker ● Disponibile per quasi tutte le distro ● Difficile da configurare ● Soffre di problemi di frammentazione se non adeguatamente configurato ● Possibilità di split-brain accidentale su sistemi con meno di 3 nodi Consigliato in generale Clustering Magento MageDay – Parma 07/11/2014 - 16
  • 17. Tecnologie e software disponibili MySQL Replica - Cluster MySQL Replica Pro Cons Globale ● Configurazione semplice ● Applicabile anche su db già esistenti ● Elaborazione su singola macchina ● Impossibile usare un dual master senza rischio di conflitti ● In caso di errore il riallineamento può richiedere diverso tempo Consigliato Clustering Magento MageDay – Parma 07/11/2014 - 17
  • 18. Tecnologie e software disponibili MySQL Condiviso - Cluster MySQL Cluster Pro Cons Globale ● Elaborazione su più macchine ● Possibilità di usare un dual master ● Ottimo per le situazioni di HA ● In caso di errore il recovery è estremamente semplice e veloce ● Configurazione più complessa ● Instabilità nelle transazioni molto lunghe ● Performance ridotte a causa del coordinamento tra nodi Sconsigliato su Magento Clustering Magento MageDay – Parma 07/11/2014 - 18
  • 19. Case studies Case #1 Lsyncd + MySql Replica + Redis Nodo 1 Lsyncd MySql primario Redis primario (sess+cache) Nodo 2 Lsyncd MySql secondario Redis secondario (sess+cache) Clustering Magento MageDay – Parma 07/11/2014 - 19
  • 20. Case studies Case #2 Drbd+OCFS2 + MySql Cluster + Redis Nodo 1 Drbd+OCFS2 MySql primario Redis primario (sess+cache) Nodo 2 Drbd+OCFS2 MySql secondario Redis secondario (sess+cache) Clustering Magento MageDay – Parma 07/11/2014 - 20
  • 21. Case studies Case #3 Drbd+OCFS2 + MySql replica + Redis Nodo 1 Drbd+OCFS2 MySql primario Redis primario (sess+cache) Nodo 2 Drbd+OCFS2 MySql secondario Redis secondario (sess+cache) Clustering Magento MageDay – Parma 07/11/2014 - 21
  • 22. Confronto Case studies Pro e contro degli scenari Case #1 Case #2 Case #3 ● Lsyncd ● MySql Replica ● Redis ● Drbd+OCFS2 ● MySql Cluster ● Redis ● Drbd+OCFS2 ● MySql replica ● Redis Clustering Magento MageDay – Parma 07/11/2014 - 22
  • 23. Domande & Risposte Avete domande? Anche noi: Chi ci offre un caffè? :) Clustering Magento MageDay – Parma 07/11/2014 - 23
  • 24. CClluusstteerriinngg MMaaggeennttoo MageDay 2014 Parma, 07/11/2014 Riccardo Tempesta & Marco Giorgetti www.magespecialist.it Feedback e commenti su https://joind.in/12696 GRAZIE !!!111! Licenza Quest' opera è distribuita con licenza Creative Commons Attribuzione - Condividi allo stesso modo 3.0 Unported. http://creativecommons.org/licenses/by-nc-sa/3.0/deed.it I marchi e le immagini utilizzate sono di proprietà dei rispettivi proprietari. Clustering Magento MageDay – Parma 07/11/2014 - 24