clustering magento

24
MageDay – Parma 07/11/2014 - 1 Clustering Magento Parma, 07/11/2014 Parma, 07/11/2014 Riccardo Tempesta & Marco Giorgetti Riccardo Tempesta & Marco Giorgetti www.magespecialist.it www.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 Magento Clustering Magento

Upload: magespecialist

Post on 05-Jul-2015

386 views

Category:

Software


0 download

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

Page 1: Clustering Magento

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

Page 2: Clustering 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

Page 3: Clustering Magento

MageDay – Parma 07/11/2014 - 3Clustering Magento

High Availability / Failover

Server 1 Server 2

HA Proxy

Page 4: Clustering Magento

MageDay – Parma 07/11/2014 - 4Clustering Magento

Do not panic!!! … Ok, panic!!!

Page 5: Clustering Magento

MageDay – Parma 07/11/2014 - 5Clustering Magento

Scenario classico

Reverse proxy / HA proxy

Istanze Magento (parte PHP)

File MagentoDatabaseSessioniCache

Page 6: Clustering Magento

MageDay – Parma 07/11/2014 - 6Clustering Magento

Tecnologie e software disponibili

Vs

Filesystem Redis

Proxy RV / HA

SAN

DB (cluster?)

Cache

Page 7: Clustering Magento

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

Page 8: Clustering Magento

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

Page 9: Clustering Magento

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

Page 10: Clustering Magento

MageDay – Parma 07/11/2014 - 10Clustering Magento

Filesystem condivisi

Problema dei lockfile in multi-master

TCP TCP

TCP

Page 11: Clustering Magento

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

Page 12: Clustering Magento

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

Page 13: Clustering Magento

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

Page 14: Clustering Magento

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

Page 15: Clustering Magento

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

Page 16: Clustering Magento

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

Page 17: Clustering Magento

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

Page 18: Clustering Magento

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

Page 19: Clustering Magento

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)

Page 20: Clustering Magento

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)

Page 21: Clustering Magento

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)

Page 22: Clustering Magento

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

Page 23: Clustering Magento

MageDay – Parma 07/11/2014 - 23Clustering Magento

Domande & Risposte

Avete domande?

Anche noi:Chi ci offre un caffè? :)

Page 24: Clustering Magento

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.