clustering magento
DESCRIPTION
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.TRANSCRIPT
MageDay – Parma 07/11/2014 - 1Clustering Magento
Parma, 07/11/2014Parma, 07/11/2014Riccardo Tempesta & Marco GiorgettiRiccardo Tempesta & Marco Giorgetti
www.magespecialist.itwww.magespecialist.it
BENVENUTI !!!111!
Case study su come realizzare un cluster
Case study su come realizzare un cluster
di database e filesystem per installazioni
di database e filesystem per installazioni
magento su vm multiple: magento su vm multiple:
tecnologie, software, high availability,
tecnologie, software, high availability,
configurazioni, load balancing, failover.
configurazioni, load balancing, failover.
Clustering MagentoClustering Magento
MageDay – Parma 07/11/2014 - 2Clustering Magento
Cos'è il clustering per Magento?
A cosa serve?
Scenari tipici● Carico singolo server al limite● Necessità di HA● Necessità di dormire sonni tranquilli!
Aumento Performance Failover
Load Balancing Disaster Recovery
MageDay – Parma 07/11/2014 - 3Clustering Magento
High Availability / Failover
Server 1 Server 2
HA Proxy
MageDay – Parma 07/11/2014 - 4Clustering Magento
Do not panic!!! … Ok, panic!!!
MageDay – Parma 07/11/2014 - 5Clustering Magento
Scenario classico
Reverse proxy / HA proxy
Istanze Magento (parte PHP)
File MagentoDatabaseSessioniCache
MageDay – Parma 07/11/2014 - 6Clustering Magento
Tecnologie e software disponibili
Vs
Filesystem Redis
Proxy RV / HA
SAN
DB (cluster?)
Cache
MageDay – Parma 07/11/2014 - 7Clustering Magento
Database
Replica
Cluster
Nativo MySQLApproccio Master / SlaveNo multi-master su Magento
OK per failover supervisionato, no HAOttimo per i backup
Percona XtraDB clusterApproccio multi-masterOk per HA e bilanciamento
Troppo bello per essere vero...… infatti con Magento non sempre funziona
master slave 1 slave 2
MageDay – Parma 07/11/2014 - 8Clustering Magento
Cache e sessioni
Non cluster
OK per failover supervisionato, no HALe altre istanze sono pronte a partire
Nel passaggio perdiamo i dati
Sistemi non clusterizzabili
Cluster
Il dato è distribuitoOttimo per HA
Le funzioni cluster di Redis non sonoAncora utilizzabili in produzione
Ok su memcache
MageDay – Parma 07/11/2014 - 9Clustering Magento
Filesystem
Sincronizzato
Cluster
Lsyncd / Unison
Ok per i file di MagentoChe accade con la cartella “media”?
Filesystem distribuitiRAID via rete
DRBD, GlusterFSProblema del multi-master
MageDay – Parma 07/11/2014 - 10Clustering Magento
Filesystem condivisi
Problema dei lockfile in multi-master
TCP TCP
TCP
MageDay – Parma 07/11/2014 - 11Clustering Magento
Filesystem Clustering
GlusterFS
GlusterFS
Linux OS
Ext3, Ext4, ecc...
Supporto fisico
Filesystem lock manager
DRBD
OCFS2 / GFS2
Linux OS
DRBD
MageDay – Parma 07/11/2014 - 12Clustering Magento
Mamma ho perso il server!
Failover supervisionato
● Modifca a /etc/hosts con definizione dei nomi host per ogni servizio:
192.168.0.10 mysqldb192.168.0.10 cachedb192.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
MageDay – Parma 07/11/2014 - 13Clustering Magento
Tecnologie e software disponibiliStorage senza SAN (filesystem condivisi)
Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2
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
GlobaleConsPro
MageDay – Parma 07/11/2014 - 14Clustering Magento
Tecnologie e software disponibiliStorage senza SAN (filesystem condivisi)
Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2
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
GlobaleConsPro
MageDay – Parma 07/11/2014 - 15Clustering Magento
Tecnologie e software disponibiliStorage senza SAN (filesystem condivisi)
Lsyncd - GlusterFS - DRBD+GFS2 - DRBD+OCFS2
DRBD+GFS2
● 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
GlobaleConsPro
MageDay – Parma 07/11/2014 - 16Clustering Magento
Tecnologie e software disponibiliStorage senza SAN (filesystem condivisi)
Lsyncd - GlusterFS - GFS2 - DRBD+OCFS2
DRBD+OCFS2
● 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
GlobaleConsPro
MageDay – Parma 07/11/2014 - 17Clustering Magento
Tecnologie e software disponibiliMySQL
Replica - Cluster
MySQLReplica
● 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
GlobaleConsPro
MageDay – Parma 07/11/2014 - 18Clustering Magento
Tecnologie e software disponibiliMySQL
Condiviso - Cluster
MySQLCluster
● 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
GlobaleConsPro
MageDay – Parma 07/11/2014 - 19Clustering Magento
Case studiesCase #1
Lsyncd + MySql Replica + Redis
Nodo 1
Lsyncd
MySql primario
Redis primario (sess+cache)
Nodo 2
Lsyncd
MySql secondario
Redis secondario (sess+cache)
MageDay – Parma 07/11/2014 - 20Clustering Magento
Case studiesCase #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)
MageDay – Parma 07/11/2014 - 21Clustering Magento
Case studiesCase #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)
MageDay – Parma 07/11/2014 - 22Clustering Magento
Confronto Case studiesPro e contro degli scenari
● Lsyncd● MySql Replica● Redis
● Drbd+OCFS2● MySql Cluster● Redis
● Drbd+OCFS2● MySql replica● Redis
Case #3Case #2Case #1
MageDay – Parma 07/11/2014 - 23Clustering Magento
Domande & Risposte
Avete domande?
Anche noi:Chi ci offre un caffè? :)
MageDay – Parma 07/11/2014 - 24Clustering Magento
GRAZIE !!!111!
MageDay 2014MageDay 2014
Parma, 07/11/2014Parma, 07/11/2014
Riccardo Tempesta & Marco Giorgetti
Riccardo Tempesta & Marco Giorgetti
www.magespecialist.it www.magespecialist.it
Feedback e commenti su Feedback e commenti su
https://joind.in/12696https://joind.in/12696
Clustering MagentoClustering Magento
LicenzaQuest' 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.