Web switch - Università degli Studi di Roma "Tor Vergata"

Transcript

Web switch - Università degli Studi di Roma "Tor Vergata"
Università degli Studi di Roma “Tor Vergata”
Facoltà di Ingegneria
Sistemi Web distribuiti
Corso di Sistemi Distribuiti
Valeria Cardellini
Anno accademico 2009/10
Quali risorse Web?
• Risorse statiche
– Contenuto è relativamente stabile nel tempo (es., file HTML,
immagini, archivi, …)
• Risorse volatili
– Contenuto viene modificato di frequente: periodicamente o
da eventi in corso (news, eventi sportivi, titoli di borsa, …)
• Risorse dinamiche
– Contenuto creato dinamicamente (on-the-fly) sulla base
della richiesta del client (motori di ricerca, shopping online,
…)
• Risorse multimediali
– Contenuti audio/video con dimensioni tipicamente maggiori
rispetto ad altri tipi di risorse (video clip, mp3, animazioni
Flash, …)
• Risorse sicure
– Contenuti trasferiti su un canale cifrato (HTTPS)
SD - Valeria Cardellini, A.A. 2009/10
2
Quali requisiti per il sistema Web?
• Dipendenti dal tipo di risorsa
• Risorse statiche
– Nessun problema particolare, a meno che non siano di
grandi dimensioni
• Risorse volatili
– Costo dipendente dalla frequenza degli aggiornamenti;
possibilità di usare metodi push-based e fragment-based
• Risorse dinamiche
– Accesso a basi di dati; costo computazionale elevato
• Risorse multimediali
– 2 metodi per gestire risorse multimediali: download-and-play
(HTTP) e play-during-download (RTP)
– Elevati requisiti di banda per entrambi (dimensione delle
risorse); maggiore costo computazionale di play-duringdownload
• Risorse sicure
– Trasferimento di risorse di qualunque tipo su canali cifrati
per esigenze di protezione e privacy; elevato costo
computazionale
SD - Valeria Cardellini, A.A. 2009/10
3
Quali generazioni del Web?
• Web di prima generazione: Web publishing
– Risorse statiche
– Contenuti prodotti dal content provider
– Anche Web 0.0
• Web di seconda generazione: Web-based information
system
– Anche risorse volatili, dinamiche e sicure
– Contenuti prodotti dal content provider
– Anche Web 1.0
• Web di terza generazione: social Web, mobile Web
– Anche risorse multimediali
– Contenuti prodotti dal content provider e dagli utenti (anche
mobili)
– Anche Web 2.0
SD - Valeria Cardellini, A.A. 2009/10
4
Quali tipi di siti?
•
Siti tradizionali
– Comunicazione monodirezionale e non interattiva
– Prevalenza di risorse statiche, pochi servizi dinamici, pochi
contenuti multimediali
•
Siti multimediali
– Presenza di molte risorse multimediali
•
Siti di informazione/shopping online
– Risorse volatili, soggette a rapidi cambiamenti
– HTML spesso generato dinamicamente
– Presenza di contenuti personalizzati (complica la generazione
dinamica)
– Sicurezza per le transazioni
•
Siti di social networking
– Siti di scambio di informazioni tra membri di comunità online (blog,
wiki, sharing - Facebook, YouTube, Flickr, …)
– Quasi ogni pagina generata dinamicamente (persino post in
database!)
– Autenticazione e personalizzazione
SD - Valeria Cardellini, A.A. 2009/10
5
Perché sistemi Web distribuiti?
• Successo del Web
– Siti Web popolari soggetti a centinaia di milioni di richieste
ogni giorno
– Per statistiche: http://www.alexa.com/
• Evoluzione dei servizi basati sul Web
– Servizi sempre più complessi con crescente carico
computazionale
• Maggiori aspettative degli utenti
– Regola degli X secondi
• X=8, definita nel 2001
• X=4, analisi del 2006 sponsorizzata da Akamai
SD - Valeria Cardellini, A.A. 2009/10
6
Componenti del ritardo Web
Web client
DNS server
Web server
DNS query
Address
resolution delay
Client delay
DNS reply
SYN j
SYN k, ACK j+1
Connection delay
Client delay
Network delay
ACK k+1
HTTP request
Server delay
HTTP response
Network delay
Dov’è il collo di bottiglia?
Dov’è il collo di bottiglia?
(1) DNS?
(3) Rete?
t
(2) Client?
(4) Piattaforma server?
SD - Valeria Cardellini, A.A. 2009/10
7
Potenziamenti del Web
• Azioni a livello del CLIENT
– Possibilità di intervento limitato
• Azioni a livello di RETE
• Azioni da parte del CONTENT/SERVICE PROVIDER
– Replicazione dei server
– Caching
Focus
• Azioni da parte di INTERMEDIARI
– Caching cooperativo (istituzionale o ISP)
– Content Delivery Network (commerciale)
SD - Valeria Cardellini, A.A. 2009/10
8
Ottimizzazioni dal lato server
Scale-up
Miglioramenti hw/sw
Scale-out
Sistemi con
server multipli
(Web/cache)
LAN
WAN
SD - Valeria Cardellini, A.A. 2009/10
9
Scale-up e scale-out
• Scale-up software
– Interventi a livello del SO
• Evitare copie multiple dello stesso oggetto, politiche di
scheduling diverse da round-robin (ad es. SRTF)
– Interventi a livello del server Web
• Apache 2.2, lighttpd, Zeus Web server
• Scale-out
– A livello di content/service provider
• Distribuzione locale dei server
• Distribuzione globale dei server
• Integrazione con meccanismi di caching
Focus
– A livello di intermediari
• Caching cooperativo
• Content Delivery Network
SD - Valeria Cardellini, A.A. 2009/10
10
Sistemi Web distribuiti
Distribuzione locale
Web cluster
Distribuzione globale
Web multi-cluster
SD - Valeria Cardellini, A.A. 2009/10
11
Cluster (in generale)
• Definizione: “A cluster is a type of parallel or
distributed processing system, which consists of a
collection of interconnected stand-alone computers
cooperatively working together as a single, integrated
computing resource.” [Rajkumar Buyya]
• Un insieme di elementi di elaborazione che:
– cooperano in modo asincrono
– comunicano mediante una rete di interconnessione per
risolvere velocemente problemi (di grandi dimensioni)
• E’ l’“unità” di calcolo fondamentale e più diffusa per i
servizi applicativi moderni
– Se occorre maggiore potenza computazionale: multicluster ovvero molteplici cluster distribuiti geograficamente
Focus sull’uso dei cluster in ambito Web
SD - Valeria Cardellini, A.A. 2009/10
12
Sistemi Web distribuiti (2)
Sistemi Web scalabili basati su
piattaforme con server multipli
• Meccanismo di instradamento (routing) per indirizzare le
richieste client al nodo “migliore”
• Algoritmo di distribuzione (dispatching) per individuare il nodo
“migliore”
• Un componente esecutore per eseguire l’algoritmo di
distribuzione utilizzando il relativo meccanismo di routing
SD - Valeria Cardellini, A.A. 2009/10
13
Architetture per Web cluster
Front-end
server(s)
Web switch
144.55.62.18
(VIP)
LAN
Web
servers
Replicazione orizzontale
Replicazione verticale
Front-end
server
Web
server(s)
Web
application
server(s)
Back-end
server(s)
Router/
Firewall
LAN
(Presentation
logic)
(Business
logic)
(Transaction
server/
Data server)
Con tutte le possibili combinazioni…
SD - Valeria Cardellini, A.A. 2009/10
14
Architetture per Web cluster:
una miriade di tecnologie (complesse)
Front-end
server(s)
Network/OS technology
Web switch
144.55.62.18
(VIP)
LAN
Web server technology
Web
servers
Web
application
servers
Middleware technology
Database technology
Back-end
servers
Web cluster
SD - Valeria Cardellini, A.A. 2009/10
15
Web cluster
• Architettura parallela o distribuita localmente che
fornisce un’applicazione Web
– Caratteristiche di trasparenza e scalabilità
• Indirizzi del Web cluster
– Un solo nome logico (es., “www.foo.it”)
– Un solo indirizzo IP (virtual IP address o VIP)
• Web switch: nodo di front end del cluster
– Indirizzo IP dello switch = indirizzo IP del Web cluster
• Nodi interni del cluster
– Indirizzi IP dei nodi non visibili all’esterno
SD - Valeria Cardellini, A.A. 2009/10
16
Richiesta HTTP ad un Web cluster
Client
browser
risorsa Web
(5)
richiesta HTTP
(4)
(1)
Internet
Web cluster
(3)
144.55.62.18
(2)
root
name server
www.site.org?
name server
locale
Fattori da considerare:
name server autoritativo
per www.site.org
• Caratteristiche del Web switch
• Flusso dei pacchetti di risposta
SD - Valeria Cardellini, A.A. 2009/10
17
Web switch
• Componente di rete con ruolo di dispatcher
– Anche detto traffic switch (non solo traffico Web)
• Mapping da VIP ad indirizzo IP di un server
• Distribuzione delle richieste a granularità fine
– A livello di pacchetto TCP o richiesta HTTP
• Implementazioni alternative
– Dispositivo hardware special-purpose
– Modulo software eseguito a livello kernel (SO specialpurpose)
– Modulo software eseguito a livello applicativo (SO generalpurpose)
SD - Valeria Cardellini, A.A. 2009/10
18
Web switch (2)
• Due architetture alternative in base al livello dello
stack ISO/OSI in cui lo switch opera
• Web switch di livello 4
– E’ content information blind
– Informazioni disponibili: sorgente e destinazione indirizzo IP,
numeri di porta TCP, SYN/FIN bit nell’header TCP
• Web switch di livello 7
– E’ content information aware
– Informazioni disponibili: URL, cookie, altri header HTTP,
identificativo SSL, …
Uno switch consente di gestire non solo traffico Web
– Nel corso focus su traffico Web
– Web switch anche detto traffic switch, application switch, …
• Anche manager anziché switch
SD - Valeria Cardellini, A.A. 2009/10
19
Architetture per Web cluster
One-level routing
(centralizzato)
Fase di
richiesta
Web switch
Web switch
(Livello 4)
Two-way
Packet
rewriting
Packet
forwarding
One-way
Packet
tunneling
SD - Valeria Cardellini, A.A. 2009/10
Web switch
(Livello 7)
Two-way
TCP gateway
TCP splicing
One-way
TCP handoff
TCP conn. hop
20
Architetture per Web cluster (2)
Classificazione delle architetture basata su:
•
•
Livello dello stack OSI a cui opera il Web switch
Percorso seguito dai pacchetti
–
–
I pacchetti in ingresso (inbound) passano sempre dallo switch
I pacchetti in uscita (outbound)
• Passano anche dallo switch: architetture two-way
•
•
Transitano attraverso un’altra connessione: architetture oneway
Meccanismo di routing utilizzato dal Web switch per reindirizzare i pacchetti inbound verso i server
•
Ad esempio: packet rewriting, TCP handoff
SD - Valeria Cardellini, A.A. 2009/10
21
Web switch di livello 4
• Opera a livello TCP/IP
• Gestione della connessione TCP
– Pacchetti appartenenti alla stessa connessione TCP devono
essere assegnati allo stesso server
– Il Web switch utilizza una binding table per la gestione delle
connessioni TCP attive
– Il Web switch esamina l’header di ogni pacchetto:
• nuova connessione (SYN)
assegnamento del server
• connessione esistente
ricerca nella binding table
SD - Valeria Cardellini, A.A. 2009/10
22
Architetture di livello 4 two-way
• Packet double-rewriting
Web
server 1
Web
server 2
144.55.62.18
(VIP)
Richiesta
Internet
Client
browser
Risposta
Web
server 3
LAN
Web switch
Web
server 4
144.55.62.18
Web
server 5
www.site.org?
DNS server locale
DNS server autoritativo
per www.site.org
SD - Valeria Cardellini, A.A. 2009/10
23
Architetture di livello 4 two-way (2)
Packet double-rewriting
• Ogni server ha il suo indirizzo IP privato
– I pacchetti in uscita devono riattraversare il Web switch
– Web switch modifica dinamicamente sia i pacchetti entranti sia
quelli uscenti
• Indirizzo IP destinazione dei pacchetti entranti
(VIP ! IP server)
• Indirizzo IP sorgente dei pacchetti uscenti
(IP server ! VIP)
• Ricalcolo dei checksum IP e TCP
Tecnica basata sul meccanismo di
Network Address Translation (NAT)
SD - Valeria Cardellini, A.A. 2009/10
24
Architetture di livello 4 one-way
• Packet single-rewriting
• Packet forwarding
• Packet tunneling
Web
server 1
Risposta
Client
browser
Richiesta
Internet
144.55.62.18
(VIP)
Web
server 2
Web
server 3
LAN
Web switch
Web
server 4
144.55.62.18
Web
server 5
www.site.org?
DNS server locale
DNS server autoritativo
per www.site.org
SD - Valeria Cardellini, A.A. 2009/10
25
Architetture di livello 4 one-way (2)
Packet single-rewriting
– Lo switch modifica solo i pacchetti entranti
– Il server modifica i pacchetti in uscita (IP server ! VIP)
Packet forwarding
– Non c’è modifica dei pacchetti TCP/IP entranti ed uscenti:
l’inoltro avviene a livello MAC (ri-indirizzamento del frame MAC)
– Indirizzo VIP condiviso da Web switch e server (disabilitare
ARP per VIP sui server)
– PRO: minor overhead sullo switch per pacchetto
– CONTRO: Web switch e server sulla stessa sottorete fisica
Packet tunneling
– Lo switch incapsula il pacchetto IP del client in un altro
pacchetto IP, il cui header contiene: VIP come indirizzo IP
sorgente e indirizzo server come indirizzo IP destinatario
– Indirizzo VIP condiviso (come packet forwarding)
SD - Valeria Cardellini, A.A. 2009/10
26
Web switch di livello 7
• Opera a livello applicativo
• Deve stabilire la connessione TCP con il client ed
attendere la richiesta HTTP
• Ispeziona il contenuto della richiesta HTTP per decidere
a quale server inoltrarla
– Parsing della linea di richiesta e degli header HTTP
– Gestione dei pacchetti inbound (ACK)
• Principali caratteristiche del content-based routing
– Consente il partizionamento dei contenuti/servizi del sito Web tra
diversi server (eventualmente specializzati)
– Favorisce l’utilizzo di meccanismi di caching
– Supporta il dispatching a granularità fine delle richieste HTTP
effettuate tramite connessioni persistenti
SD - Valeria Cardellini, A.A. 2009/10
27
Decisione sull’assegnamento a livello 4 e 7
• Livello 4: alla ricezione del segmento TCP con flag SYN
• Livello 7: alla ricezione della richiesta HTTP
SD - Valeria Cardellini, A.A. 2009/10
28
Architetture di livello 7 two-way
• TCP gateway (livello applicativo)
– Il Web switch è realizzato mediante un proxy
• Forwarding dei dati a livello applicativo
– Overhead elevato
• Ogni richiesta/risposta attraversa sullo switch tutto lo stack di
protocolli (data link " application " data link)
• TCP splicing (livello di SO)
– Ottimizzazione del TCP gateway
• Forwarding dei dati a livello TCP
• Splicing: giunzione a livello kernel di 2 connessioni TCP separate
– Il primo pacchetto determina la scelta del server e l’instaurazione
della connessione persistente fra il Web switch ed il server scelto
– I pacchetti successivi sono trasmessi dal Web switch a livello
TCP
– Richiede modifiche del kernel del SO del Web switch
SD - Valeria Cardellini, A.A. 2009/10
29
Architetture di livello 7 one-way
• TCP handoff (livello di SO)
– Il Web switch passa (handoff) la connessione TCP al server
scelto, che gestisce il servizio ed invia direttamente la risposta
al client
– Richiede modifiche del kernel dei SO del Web switch e dei
server
Server
Client
User level
(1)
(4)
Dispatcher
(5)
Kernel
(2)
Handoff
TCP/IP
(3)
TCP/IP
conn req
ack
conn req
Forward
Handoff
TCP/IP
handoff req
ack
response
Client
SD - Valeria Cardellini, A.A. 2009/10
Web switch
Target server
30
Architetture di livello 7 one-way (2)
• Ottimizzazione del TCP handoff per aumentare la
scalabilità
– Lo switch (centralizzato) inoltra i pacchetti TCP al
componente distributore (distribuito sui server)
– Il dispatcher (centralizzato) sceglie il server
– Riferimento:
• M. Aron et al., “Scalable content-aware request
distribution in cluster-based network servers”, Proc. of
USENIX 2000.
SD - Valeria Cardellini, A.A. 2009/10
31
Algoritmi di distribuzione nei sistemi Web
• Due classi di algoritmi di distribuzione
Nullo
– Dinamici (state aware)
• Informazioni sui client (client info aware)
• Informazioni sullo stato dei server (server state
aware)
• Informazioni sui client e sullo stato dei server (client
info & server state aware)
Livello di informazioni di stato
– Statici (stateless)
Elevato
SD - Valeria Cardellini, A.A. 2009/10
32
Algoritmi statici vs. dinamici
Dinamici
Statici
•
Facile implementazione
•
Implementazione più
complessa
•
Overhead trascurabile
(sullo switch)
•
•
Possibili situazioni di
sbilanciamento del carico
Overhead di comunicazione
(tra switch e server) e di
computazione (sullo switch)
•
Miglior bilanciamento del
carico a parità di politica
adottata
SD - Valeria Cardellini, A.A. 2009/10
33
Confronto meccanismi di distribuzione
• Livello 4
– Livello connessione TCP
– Algoritmi di distribuzione content blind
– Algoritmi statici e dinamici
• Livello 7
– Livello connessione applicativa (HTTP)
– Algoritmi di distribuzione content aware
– Algoritmi dinamici
• Almeno client info aware (occorre usare l’informazione
contenuta nella richiesta del client!)
SD - Valeria Cardellini, A.A. 2009/10
34
Distribuzione a livello 4
• Non servono algoritmi particolarmente sofisticati
• Esempi di algoritmi statici:
– Random, Round Robin (assegnamento circolare)
• Esempi di algoritmi dinamici server state-aware:
– Attuano una distribuzione delle richieste in base allo stato di
carico dei server
– Least loaded, Weighted Round Robin
• Algoritmi statici o dinamici?
– Prestazioni degli algoritmi statici confrontabili a quelle di
algoritmi dinamici nel caso di richieste Web il cui tempo di
servizio rientra in intervalli temporali di 2 ordini di grandezza
– Oltre i 2 ordini di grandezza, conviene utilizzare algoritmi
dinamici
SD - Valeria Cardellini, A.A. 2009/10
35
Distribuzione a livello 7
• Esempi di algoritmi dinamici client info aware
– Identificatore di sessione, partizionamento del contenuto
• Esempi di algoritmi client info & server state aware
– Locality Aware Request Distribution (LARD)
SD - Valeria Cardellini, A.A. 2009/10
36
Algoritmi L7 client info aware
• Identificatori di sessione
– Richieste HTTP con stesso SSL id o stesso cookie assegnate
allo stesso server
• Partizionamento del contenuto tra i server
– In base al tipo di risorsa (HTML, immagini, contenuto dinamico,
audio, video, …)
• Obiettivo: utilizzare server specializzati per contenuti differenti
– In base alla dimensione della risorsa
• Obiettivo: aumentare la condivisione del carico (load sharing)
• Soglie di partizionamento determinate staticamente o
dinamicamente
• Difficoltà: dimensione nota solo per risorse statiche, da stimare per
risorse dinamiche
– In base ad una funzione hash applicata sul path della risorsa
• Obiettivo: aumentare il cache hit rate nei server Web
SD - Valeria Cardellini, A.A. 2009/10
37
Algoritmi L7 client info & server state aware
• Locality Aware Request Distribution (LARD)
– Considera sia il tipo di richiesta/servizio sia lo stato di carico
dei server Web
– Ha l’ulteriore obiettivo di aumentare il cache hit rate dei
server Web
– Riferimento:
• V.S. Pai et al., “Locality-aware request distribution in clusterbased network servers”, ASPLOS 1998.
A A A A A
server
cache
A A A C B C A A C B
switch
cache
C B C C B
SD - Valeria Cardellini, A.A. 2009/10
server
38
Linux Virtual Server (LVS)
• Software open-source per realizzare un Web cluster
http://www.linuxvirtualserver.org/, http://kb.linuxvirtualserver.org/
– Switching a livello 4: modulo IPVS nel kernel 2.6 di Linux
• LVS/NAT: double packet rewriting
• LVS/TUN: packet tunneling
• LVS/DR: packet forwarding
– Switching a livello 7: sottoprogetti (sperimentali)
• KTCPVS: livello applicativo nel kernel
• TCPHA: TCP handoff
• TCPSP: TCP splicing
• Caratteristiche salienti
– Scalabilità
– Elevata disponibilità
– Configurazione LAN e WAN
SD - Valeria Cardellini, A.A. 2009/10
39
Prodotti commerciali per Web cluster
• Alcuni prodotti commerciali
–
–
–
–
–
–
–
–
Citrix NetScaler
Cisco Application Control Engine
F5 Networks’ BIG-IP Local Traffic Manager
Brocade (ex Foundry Networks) ServerIron
Nortel Application Switches
Radware AppDirector
Resonate Central Dispatch
Zeus Extensible Traffic Manager
• (Tranne Zeus) Dispositivi harware special-purpose
che svolgono anche task CPU-intensive (quali
crittografia e decrittografia SSL e gestione delle
sessioni TCP) e caching
• Trend in corso: Web switch da load balancer ad
application delivery controller
SD - Valeria Cardellini, A.A. 2009/10
40
Oltre il front-end tier…
• Fino ad ora abbiamo
analizzato la
replicazione orizzontale
nel front-end tier (Web
server)
• La replicazione
orizzontale può essere
attuata anche nei livelli
più interni:
– middle tier, composto da
application server
– back-end tier, composto
da database server
Front-end
server(s)
Web switch
144.55.62.18
(VIP)
LAN
Web
servers
Web
application
servers
Back-end
servers
WEB CLUSTER
SD - Valeria Cardellini, A.A. 2009/10
41
Replicazione del middle tier
• Obiettivo del dispatching per il middle tier: scegliere
l’application server
• Granularità del dispatching: intera richiesta
• Dispatching attuato
– da un’entità centralizzata interposta tra front-end e middle
tier
– oppure in modo distribuito da ciascun server Web
• Dispatching implementato in molti prodotti
commerciali usando semplici politiche di distribuzione
(varianti di round-robin, weighted round-robin, least
loaded)
• Ad esempio, per Apache e Tomcat:
– Connettore JK
– Dispatching tramite mod_proxy di Apache
SD - Valeria Cardellini, A.A. 2009/10
42
Replicazione del back-end tier
• Il DB (o più in generale l’applicazione di back-end)
può consentire di essere eseguito su più nodi
– Replicazione del DB (completa o parziale) su più repliche
identiche
– Distribuzione generalmente trasparente al middle tier (non vi
è dispatching esplicito)
• Problema:
– Mantenere la consistenza dei dati nel DB replicato e la
tolleranza ai guasti
– Come? Soluzioni già esaminate
SD - Valeria Cardellini, A.A. 2009/10
43
Caching e clustering del back-end tier
• Per incrementare ulteriormente le prestazioni, si può
integrare la replicazione del back-end tier con
meccanismi di caching dei risultati delle query
– Utile nel caso di database read-intensive
– Ad es. il progetto open source memcached (usato ad es. da
Youtube, Flickr)
• In alternativa alla replicazione del DB, si può usare un
middleware per gestire un RAIDb (Redundant Array of
Inexpensive Databases )
– Ad es. il progetto open source Continuent Tungsten
SD - Valeria Cardellini, A.A. 2009/10
44
Sommario caratteristiche Web cluster
• Architetture alternative (front-end tier)
– Web switch livello 4 vs. Web switch livello 7
– One-way vs. two-way
• Principali vantaggi
– Controllo a granularità fine sull’assegnamento delle richieste
– Elevata affidabilità (disponibilità, sicurezza)
• Principali svantaggi
– Presenza di single point of failure (il Web switch)
– Scalabilità limitata dal Web switch
– Scalabilità limitata dalla banda di accesso ad Internet (ad es.
T3 # 45 Mbps)
• Soluzione
– Replica su scala geografica (global scale-out)
SD - Valeria Cardellini, A.A. 2009/10
45
Delivery su scala geografica
• Il content/service provider ha due possibilità per
distribuire i propri contenuti/servizi su scala
geografica in modo efficiente e scalabile:
– Il provider possiede e gestisce l’intera piattaforma o delega
la gestione della piattaforma ad uno o più data center
(sistemi Web distribuiti geograficamente)
– Il provider gestisce solo i contenuti/servizi ma delega ad una
terza parte il servizio di delivery dei contenuti/servizi agli
utenti (Content Delivery Network)
SD - Valeria Cardellini, A.A. 2009/10
46
Sistemi con server Web multipli
Distribuzione locale
Web cluster
Dispatching
a livello 4 (OSI)
Dispatching
a livello 7 (OSI)
Distribuzione geografica
Web multi-cluster
Siti Mirror
Dispatching
in 2 fasi
(DNS+
Web switch)
Dispatching
in 3 fasi
(DNS+
Web switch+
server)
SD - Valeria Cardellini, A.A. 2009/10
47
Sistemi Web distribuiti geograficamente
• Problemi di rete per sistemi Web distribuiti
localmente
– Scalabilità limitata dalla banda di accesso ad Internet
– Incapacità di evitare i link di rete congestionati
– Affidabilità della rete
• Scale-out globale
– Maggiore complessità dell’architettura
• Meccanismi di routing ed algoritmi di distribuzione
• Difficoltà nella gestione dell’infrastruttura
– Come selezionare il cluster “migliore”?
– Dove posizionare i cluster?
SD - Valeria Cardellini, A.A. 2009/10
48
Web multi-cluster
• Sito Web implementato su di un’architettura di Web
cluster distribuiti geograficamente in diverse regioni
Internet
• Meccanismo di routing delle richieste basato sul DNS
– Indirizzi del sito Web
• Un unico hostname al quale corrisponde molteplici indirizzi IP, tanti
quanti sono i Web cluster
• L’indirizzo IP fornito dal DNS autoritativo corrisponde al VIP dello
switch del cluster selezionato
• Il DNS autoritativo del sito Web seleziona un cluster
nella fase di address lookup mediante un algoritmo di
tipo:
–
–
–
–
–
Round-robin
Prossimità di rete o geografica
Carico dei cluster
Prossimità e carico dei cluster
Altro ...
SD - Valeria Cardellini, A.A. 2009/10
49
Sistemi Web geograficamente distribuiti
Siti mirror
Web multi-cluster
Dispatching
a 2 livelli
Centralizzato
DNS autoritativo
SD - Valeria Cardellini, A.A. 2009/10
Livello 1
Livello 2
Dispatching
a 3 livelli
Livello 1
Livello 2
Livello 3
Centralizzato
Distribuito
Web switch
Web server
50
Web multi-cluster (2 livelli)
• Un unico hostname per il sito
• Un indirizzo IP per cluster
Web switch 1
104.32.11.102
Richiesta HTTP
Web switch 3
86.104.34.28
Web switch 2
120.88.41.54
Risorsa Web
www.site.com?
DNS locale
Web switch 4
26.38.98.10
<120.88.41.54,TTL>
DNS autoritativo
per www.site.com
SD - Valeria Cardellini, A.A. 2009/10
51
Dispatching di primo livello
(mediante DNS)
• Il primo livello di distribuzione geografico avviene nella
fase di risoluzione dell’indirizzo (address lookup):
– il client richiede l’indirizzo IP del cluster corrispondente
all’hostname indicato nell’URL
– se l’hostname è valido, il client riceve la coppia
< Indirizzo IP, Time-To-Live>
da:
• cache di qualche name server locale o intermedio
• oppure DNS autoritativo del sito, opportunamente
modificato (integrato o meno da altro componente). Può
applicare diverse politiche di dispatching per selezionare il
Web cluster “migliore”
• Soluzione anche detta “redirezione DNS”
SD - Valeria Cardellini, A.A. 2009/10
52
Algoritmi di dispatching per DNS
DNS-based dispatching
Static
Client info aware
Internet domain
Cluster state aware
Cluster load
Client info & cluster state aware
Internet domain
Cluster load
SD - Valeria Cardellini, A.A. 2009/10
53
Prossimità in Internet
• La prossimità in Internet è un problema interessante: la
prossimità geografica tra client e server non implica
prossimità Internet
• Valutazione statica della prossimità
– indirizzo IP del client per determinare la zona Internet (simile a
distanza geografica)
– numero di hop (informazione “stabile” più che “statica”)
• network hop (ad es. traceroute)
• Autonomous System hop (query delle tabelle di routing)
Non garantisce la selezione del cluster migliore:
“links are not created equal”
SD - Valeria Cardellini, A.A. 2009/10
54
Prossimità in Internet (2)
• Valutazione dinamica della prossimità
– round trip time (ad es. ping, tcping)
– bandwidth disponibile (ad es. pathChirp,
http://www.icir.org/models/tools.html per una lista più completa)
– latenza delle richieste HTTP (es., request emulation)
Tempo aggiuntivo e costi di traffico per la valutazione
• Un problema ancora aperto: correlazione tra numero di
hop e round trip time?
– Misure “vecchie” (1995): prossima a zero
– Misure “recenti” (dal 2000): mediamente elevata
SD - Valeria Cardellini, A.A. 2009/10
55
Problemi del dispatching geografico
(di cui le politiche di dispatching devono tener conto)
•
Picchi di carico in alcune ore/giorni
Problemi aggiuntivi
•
Traffico dipendente dai fusi orari
•
Distribuzione non uniforme dei client
tra le regioni Internet
• Prossimità Internet tra client e Web cluster
SD - Valeria Cardellini, A.A. 2009/10
Connessioni da
una Regione
Problemi tipici del dispatching Web
Ora del giorno
56
Problemi del dispatching tramite DNS
• Oltre ai problemi del dispatching geografico…
• Controllo limitato sulla risoluzione delle richieste di
indirizzo
– Nel caso di siti Web molto popolari, il DNS autoritativo
controlla solo il 5% del traffico in arrivo al sito
– Perché? A causa del caching hostname-indirizzo IP nei
name server locali e intermedi per l’intervallo del Time-ToLive
– Come risolvere il problema?
• Usando un TTL prossimo a zero, ma…
• Usando a livello del DNS autoritativo algoritmi di dispatching
sofisticati (ad es. TTL-adattativi)
• E’ comunque un meccanismo di distribuzione
content-blind
SD - Valeria Cardellini, A.A. 2009/10
57
Come risolvere i problemi del dispatching DNS
• Fase di risoluzione dell’indirizzo: integrare il
dispatching attuato dal DNS autoritativo con quello
effettuato da un’altra entità
• Fase di richiesta della risorsa Web: integrare il
dispatching centralizzato attuato dal DNS autoritativo
con dispatching distribuito da parte dei cluster
– Alcuni meccanismi di re-routing delle richieste:
• Ridirezione HTTP
• IP tunneling
• URL rewriting
SD - Valeria Cardellini, A.A. 2009/10
58
Dispatching per Web multi-cluster
• Indirizzi del sito Web visibili
– Un unico hostname (ad es., “www.site.com”)
– Un indirizzo IP per ogni Web cluster
• Livelli multipli di routing e dispatching:
– DNS autoritativo seleziona il Web cluster “migliore”
(dispatching inter-cluster)
– Web switch del cluster seleziona il Web server “migliore”
(dispatching intra-cluster)
– Ciascun Web server (o Web switch di livello 7) può
ridirigere le richieste verso un altro Web cluster, ad es. per
risolvere situazioni temporanee di sovraccarico (dispatching
inter-cluster)
– Per semplificare, non consideriamo gli ulteriori livelli di
dispatching interni al cluster
SD - Valeria Cardellini, A.A. 2009/10
59
Web multi-cluster (3 livelli)
Web switch 1
104.32.11.102
Web switch 3
Web switch 2
86.104.34.28
120.88.41.54
Prima “HTTP request”
Go To 86.104.34.28 Seconda “HTTP request”
Risorsa Web
www.site.com
Local DNS
(120.88.41.54,TTL)
Web switch 4
26.38.98.10
Authoritative DNS
for www.site.com
SD - Valeria Cardellini, A.A. 2009/10
60
Motivazioni per terzo livello di dispatching
Web multi-cluster con due livelli di dispatching
– Controllo elevato sul carico che raggiunge il Web cluster (buon
bilanciamento intra-cluster)
– Ma reazione lenta ad un cluster sovraccarico (cattivo
bilanciamento inter-cluster)
Web multi-cluster con tre livelli di dispatching:
• Reazione immediata per spostare il carico da un Web
cluster sovraccarico
• Quale meccanismo di ridirezione? HTTP redirection
SD - Valeria Cardellini, A.A. 2009/10
61
Ridirezione HTTP
• Supportato dai browser (parte del protocollo HTTP)
• “New location”
– ridirezione ad un indirizzo IP (prestazioni migliori ma no
trasparenza)
– ridirezione ad un hostname
HTTP message header
HTTP status code
302 - “Moved temporarily” to a new location
• DNS e Web switch: usano politiche di dispatching
centralizzate
• Ridirezione: usa politiche di dispatching distribuite, in cui
tutti i server Web (o i Web switch) possono partecipare al
(ri)assegnamento delle richieste
SD - Valeria Cardellini, A.A. 2009/10
62
Ridirezione HTTP: pro e contro
PRO
• Compatibile con tutti i client e server Web
• Meccanismo distribuito che soddisfa requisiti di affidabilità
(no “single point of failure”)
• Distribuzione delle richieste content-aware
CONTRO
• Limitata alla ridirezione di richieste HTTP (altri meccanismi
di ridirezione più generali, ad es. IP tunneling)
• Maggior traffico di rete: ogni richiesta ridiretta richiede
una nuova connessione TCP
Tuttavia, la ridirezione riduce il tempo di risposta quando
impatto del server > impatto della rete
SD - Valeria Cardellini, A.A. 2009/10
63
Prodotti commerciali per Web multi-cluster
• Alcuni prodotti commerciali
–
–
–
–
–
Cisco ACE Global Site Selector
F5 Networks’ BIG-IP Global Traffic Manager
Radware AppDirector
Resonate Global Dispatch
Zeus Extensible Traffic Manager
• Supportano il dispatching di primo livello basato su
DNS, usando algoritmi basati su latenza, carico e
disponibilità
SD - Valeria Cardellini, A.A. 2009/10
64
Piattaforma di Google
• Centinaia di migliaia di macchine (stima 450000)
organizzate in almeno 12 cluster distribuiti
geograficamente
– Nel 2002 Google usava 6000 processori e 12000 dischi, con 2
cluster nella Silicon valley e 2 in Virginia
• Ciascun cluster connesso ad Internet tramite una connessione
OC48 (2488 Mbit/sec)
• L’indice di Google comprende oltre 25 miliardi di URL
• Obiettivo: servire una richiesta in meno di 0,5 secondi
(ritardi di rete compresi!)
• I server sono commodity x-86 PC con una versione
customized di Linux
• Riferimenti
– http://research.google.com/pubs/papers.html
SD - Valeria Cardellini, A.A. 2009/10
65
Distribuzione delle richieste in Google
• Come avviene la distribuzione delle richieste?
• Primo livello (tra cluster): redirezione DNS
– Carico dei cluster e prossimità rispetto al client
dig www.google.it
...
www.google.it.
www.google.com.
www.l.google.com.
www.l.google.com.
www.l.google.com.
www.l.google.com.
www.l.google.com.
...
343886
603084
36
36
36
36
36
IN
IN
IN
IN
IN
IN
IN
CNAME
CNAME
A
A
A
A
A
www.google.com.
www.l.google.com.
66.102.9.103
66.102.9.104
66.102.9.105
66.102.9.99
66.102.9.147
Come cambia la provenienza delle richieste in un giorno?
http://labs.google.com/papers/sawzall-20030814.gif
SD - Valeria Cardellini, A.A. 2009/10
66
In un cluster di Google
• All’interno di un cluster di Google:
– Molteplici tier: Web switch, proxy server, Web server
(GWS), index server
– Ed ancora: tier di document server, ad server, spelling
server, …
SD - Valeria Cardellini, A.A. 2009/10
67
Software nell’infrastruttura di Google
• Google Web Server (GWS)
• Google File System (GFS)
• Chubby
– Servizio di lock per SD lascamente accoppiati sviluppato per
gestire la sincronizzazione a granularità grossa
http://labs.google.com/papers/chubby.html
• BigTable
– Sistema di storage distribuito column-oriented ad alte
prestazioni (petabyte di dati e migliaia di macchine) basato
su Google File System, Chubby, ed altri software di Google
http://labs.google.com/papers/bigtable.html
• MapReduce
– Modello di programmazione e relativa implementazione per
processare e generare grandi insieme di dati
http://labs.google.com/papers/mapreduce.html
• Linguaggio di programmazione Sawzall
• Protocol buffers
SD - Valeria Cardellini, A.A. 2009/10
68
Google File Sytem
• File system distribuito con vincoli
– File di dimensioni molto grandi ma contenenti moltissimi
oggetti più piccoli
– Aggiornamento aggiungendo dati alla fine del file
• Implementato in userspace
• File suddivisi in chunk (“grossi pezzi”) da 64MB
caiscuno, che sono memorizzati come normali file sui
chunk server
• Progettato per ottimizzare file di tipo “multiple-reader/
multiple-appender”
– I Crawler aggiungono dati a un file
– I Reader possono leggere il file contemporaneamente
– Non ci sono problemi di corse critiche o di disallineamento
• Ogni chunk è replicato su più macchine
– Replicazione gestita con schema primary-backup
SD - Valeria Cardellini, A.A. 2009/10
69
Architettura di Google File System
Per approfondimenti: http://labs.google.com/papers/gfs.html
SD - Valeria Cardellini, A.A. 2009/10
70