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.
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
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