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 2008/09 Motivazioni • Il successo del Web – Siti Web popolari sono soggetti a milioni di hit al giorno – Ad es. sito Web delle Olimpiadi di Torino 2006 • 71 milioni di pagine visitate e 2 milioni di utenti singoli nel giorno di picco – Ad es. sito Web dell’NBC per le Olimpiadi di Torino 2006 • Traffico di picco pari a 1,6 GB al secondo • L’evoluzione dei servizi basati sul Web – Servizi sempre più complessi e con generazione di contenuti dinamici e sicuri – Popolarità dei siti di social networking • Non offrono prestazioni soddisfacenti, risultando spesso lenti e inaccessibili • 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. 2008/09 2 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 t Dov’è il collo di bottiglia? Dov’è il collo di bottiglia? (1) DNS? (3) Rete? (2) Client/connessione? (4) Piattaforma server? SD - Valeria Cardellini, A.A. 2008/09 3 Potenziamenti del Web • Azioni a livello del CLIENT – Possibilità di intervento limitato • Azioni a livello di RETE – “Network guys are doing an excellent job” • Azioni da parte del CONTENT/SERVICE PROVIDER – Replicazione dei server – Caching • Azioni da parte di INTERMEDIARI – Caching cooperativo (istituzionale o ISP) – Content Delivery Network (commerciale) SD - Valeria Cardellini, A.A. 2008/09 4 Bottleneck: rete? • La larghezza di banda tende ad aumentare • Il round trip time (RTT) tende a diminuire • L’infrastruttura di rete fissa tende a migliorare • Ma ci sono ancora molti problemi aperti – – – – – – Peering point Router QoS Protocolli Wireless, reti ad-hoc … SD - Valeria Cardellini, A.A. 2008/09 5 Bottleneck: server? • Quali sono i ritardi percentuali dovuti ai server Web? – Fonte: P. Barford, M. Crovella, “Critical Path Analysis of TCP Transactions, ACM Trans. Networking, 9(3), June 2001. • Per risorse statiche di dimensioni piccole e per server con carico alto: – Fino all’80% del tempo di risposta dipende dal server • Per risorse statiche di dimensioni medio/grandi e per server con carico alto: – Fino al 50% del tempo di risposta dipende dal server SD - Valeria Cardellini, A.A. 2008/09 6 Ottimizzazioni dal lato server Scale-up Miglioramenti HW/SW Scale-out LAN Sistemi con server multipli (Web/cache) WAN Sistemi con server multipli SD - Valeria Cardellini, A.A. 2008/09 7 Scale-up e scale-out • Scale-up – Interventi a livello di SO • Evitare copie multiple dello stesso oggetto, politiche di scheduling diverse da round-robin (es., SRTF) – Modifiche del software del server Web • Apache 2.2, Flash, Zeus • 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. 2008/09 8 Sistemi Web distribuiti Distribuzione locale Web cluster Distribuzione globale Web multi-server Web multi-cluster SD - Valeria Cardellini, A.A. 2008/09 9 Sistemi Web distribuiti (2) Sistemi Web scalabili basati su piattaforme con server multipli • Un meccanismo di instradamento (routing) per indirizzare le richieste client al nodo “migliore” • Un 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. 2008/09 10 Architetture per Web cluster Replicazione verticale Front-end server Web switch Front-end server(s) 144.55.62.18 (VIP) LAN Web servers Replicazione orizzontale Web server(s) Router/ Firewall LAN (Presentation logic) Web application server(s) Back-end server(s) (Business logic) (Transaction server/ Data server) Con tutte le possibili combinazioni… SD - Valeria Cardellini, A.A. 2008/09 11 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 Middleware technology Database technology Web servers Web application servers Back-end servers WEB CLUSTER SD - Valeria Cardellini, A.A. 2008/09 12 Sistemi Web distribuiti Distribuzione globale Distribuzione locale Web cluster Dispatching a livello 4 (OSI) Mirror site Dispatching a livello 7 (OSI) Web multi-server Dispatching in due fasi (DNS + Web switch) Web multi-cluster Dispatching in tre fasi (DNS + Web switch + server) SD - Valeria Cardellini, A.A. 2008/09 13 Web cluster • Sito Web implementato su di un’architettura parallela o distribuita localmente • Indirizzi sito Web – Un solo hostname (es., “www.uniroma2.it”) – Un solo indirizzo IP (virtual IP address o VIP) • Web switch (dispatcher): front end del cluster; il suo indirizzo IP è l’indirizzo IP del sito Web (VIP) • Web server multipli: i loro indirizzi IP sono “mascherati” all’esterno SD - Valeria Cardellini, A.A. 2008/09 14 Richiesta HTTP ad un Web cluster Client browser risorsa Web (5) richiesta HTTP (4) INTERNET (1) Web cluster (3) 160.80.1.5 (2) root name server www.uniroma2.it? name server locale Due fattori da considerare: name server autoritativo per www.uniroma2.it • Caratteristiche del Web switch • Flusso dei pacchetti di risposta SD - Valeria Cardellini, A.A. 2008/09 15 Web switch del cluster • Componente di rete con ruolo di dispatcher – Mapping da VIP ad indirizzo IP di un server – Distribuzione delle richieste a granularità fine (i pacchetti entranti con indirizzo VIP sono indirizzati dal Web switch) – Implementazioni alternative • dispositivo hardware special-purpose • modulo software eseguito a livello kernel (SO special-purpose) • modulo software eseguito a livello applicativo (SO general-purpose) • Architetture alternative: – Web switch di livello 4 (content information blind) • sorgente e destinazione indirizzo IP, numeri di porta TCP, SYN/FIN bit nell’header TCP – Web switch di livello 7 (content information aware) • URL, cookie, altri header HTTP, identificativo SSL SD - Valeria Cardellini, A.A. 2008/09 16 Architetture per Web cluster One-level routing (centralizzato) Fase di richiesta Web switch Web switch (Livello 4) Two-way Packet rewriting One-way Packet forwarding Packet tunneling Web switch (Livello 7) Two-way TCP gateway TCP splicing One-way TCP handoff TCP conn. hop SD - Valeria Cardellini, A.A. 2008/09 17 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. 2008/09 18 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. 2008/09 19 Architetture di livello 4 two-way • Packet double-rewriting Web server 1 Web server 2 144.55.62.18 (VIP) Richiesta INTERNET Client browser Web server 3 Risposta 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. 2008/09 20 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. 2008/09 21 Architetture di livello 4 one-way • Packet single-rewriting • Packet forwarding • Packet tunneling Web server 1 Web server 3 144.55.62.18 (VIP) Risposta LAN INTERNET Client browser Web server 2 Richiesta 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. 2008/09 22 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. 2008/09 23 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. 2008/09 24 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. 2008/09 25 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. 2008/09 26 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 Handoff (3) TCP/IP conn req ack TCP/IP conn req handoff req Forward ack response Client Web switch Target server SD - Valeria Cardellini, A.A. 2008/09 27 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. 2008/09 28 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. 2008/09 29 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. 2008/09 30 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. 2008/09 31 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. 2008/09 32 Distribuzione a livello 7 • Esempi di algoritmi dinamici client info aware – Identificatore di sessione, partizionamento del contenuto, Content Aware Policy (CAP) • Esempi di algoritmi client info & server state aware – Locality Aware Request Distribution (LARD) SD - Valeria Cardellini, A.A. 2008/09 33 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. 2008/09 34 Algoritmi L7 client info aware (2) • Content Aware Policy (CAP) – Sfrutta informazioni relative alla tipologia della richiesta da assegnare – Richiede un meccanismo di classificazione dinamica delle richieste effettuabile in base al tipo di servizio (individuabile dall’URL) • CPU-bound (es., crittografia) • Disk-bound (query a database) • Network-bound (download di file di grandi dimensioni) – Obiettivo: ripartire le richieste CPU/disk/network-bound tra tutti i server in modo da condividere il carico • Assegnamento round-robin in base al tipo di servizio – Riferimento: • E. Casalicchio, M. Colajanni, “A client-aware dispatching algorithm for Web clusters providing multiple services”, WWW 2001. SD - Valeria Cardellini, A.A. 2008/09 35 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. 2008/09 server 36 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 – Switching a livello 7: sottoprogetti (sperimentali) • KTCPVS: livello applicativo nel kernel • TCPHA: TCP handoff • TCPSP: TCP splicing • Caratteristiche salienti – Scalabilità • Possibilità di aggiungere e rimuovere dinamicamente i nodi dal cluster SD - Valeria Cardellini, A.A. 2008/09 37 LVS/NAT: Network Address Translation Meccanismo di routing di livello 4 two-way di tipo double packet rewriting SD - Valeria Cardellini, A.A. 2008/09 38 LVS/TUN: IP tunneling Meccanismo di routing di livello 4 one-way di tipo IP tunneling SD - Valeria Cardellini, A.A. 2008/09 39 LVS/DR: Direct Routing Meccanismo di routing di livello 4 one-way di tipo packet forwarding SD - Valeria Cardellini, A.A. 2008/09 40 Prodotti commerciali per Web cluster • • • • • • • • Citrix NetScaler Cisco Application Control Engine F5 Networks’ BIG-IP Local Traffic Manager Foundry Networks ServerIron Nortel Application Switches Radware AppDirector Resonate Central Dispatch Zeus Extensible Traffic Manager SD - Valeria Cardellini, A.A. 2008/09 41 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. 2008/09 42 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. 2008/09 43 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 – La distribuzione è di solito trasparente al middle tier (non vi è dispatching esplicito) • Problema 1: come gestire l’aggiornamento delle repliche – Master singolo (anche primary copy) • Lettura su tutti i DB server • Scrittura solo su master singolo e poi replicazione dell’aggiornamento sugli slave – Master multipli (anche update everywhere) • Lettura su tutti i DB server • Scrittura su un master e poi replicazione dell’aggiornamento sugli altri DB server SD - Valeria Cardellini, A.A. 2008/09 44 Consistenza nel DB replicato • Problema 2: come mantenere la consistenza dei dati nel DB replicato – Replicazione eager oppure replicazione lazy • Replicazione eager (sincrona o pessimistica): immediata, tutte le repliche sono aggiornate prima del commit della transazione – Vantaggio: no anomalie di concorrenza – Svantaggio: prestazioni ridotte (scarsa scalabilità) per le operazioni di scrittura, traffico maggiore per propagare gli Write A aggiornamenti Write A Write A Write B Write B Write B Write C Write C Write C Commit Commit Commit SD - Valeria Cardellini, A.A. 2008/09 45 Consistenza nel DB replicato • Replicazione lazy (asincrona o ottimistica): ritardata, dopo il commit della transazione – Possibile inconsistenza tra le repliche – Strategie di riconciliazione per gestire i possibili conflitti tra Write A le repliche Write B Write C Commit Write A Write B Write C Commit Write A Write B Write C Commit – Per approfondimenti: J. Gray, P. Helland, P.E. O'Neil, and D. Shasha, “The dangers of replication and a solution”, ACM SIGMOD 1996. SD - Valeria Cardellini, A.A. 2008/09 46 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 – Ad es. Oracle Database Cache • In alternativa alla replicazione del DB, si può usare un middleware per gestire un RAIDb – Ad es. il progetto open source Sequoia http://community.continuent.com/community/sequoia SD - Valeria Cardellini, A.A. 2008/09 47 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. 2008/09 48 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 (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 finali (Content Delivery Network) SD - Valeria Cardellini, A.A. 2008/09 49 Sistemi con server Web multipli Distribuzione locale Web cluster Dispatching a livello 4 (OSI) Dispatching a livello 7 (OSI) SD - Valeria Cardellini, A.A. 2008/09 Distribuzione geografica Siti Mirror Web multi-cluster Dispatching in 2 fasi (DNS+ Web switch) Dispatching in 3 fasi (DNS+ Web switch+ server) 50 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 – Metrica per selezionare il cluster “migliore” – Localizzazione e posizionamento dei cluster SD - Valeria Cardellini, A.A. 2008/09 51 Web multi-cluster • Sito Web implementato su di un’architettura di Web cluster distribuiti geograficamente tra 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à geografica Carico dei cluster Prossimità geografica e carico dei cluster Altro ... SD - Valeria Cardellini, A.A. 2008/09 52 Sistemi Web geograficamente distribuiti Siti mirror Web multi-cluster Dispatching a 2 livelli Centralizzato Livello 1 Livello 2 DNS autoritativo Dispatching a 3 livelli Livello 1 Livello 2 Livello 3 Centralizzato Distribuito Web switch Web server SD - Valeria Cardellini, A.A. 2008/09 53 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. 2008/09 54 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. 2008/09 55 Algoritmi di dispatching per DNS DNS-based dispatching Client info aware Static Random RR Prossimità Internet domain Multi-tier RR SD - Valeria Cardellini, A.A. 2008/09 Server state aware Server load Least Loaded Client info & server state aware Internet domain Minimum Residual Load Adaptive TTL Server load Prossimità e carico 56 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. 2008/09 57 Prossimità in Internet (2) • Valutazione dinamica della prossimità – round trip time (es., ping, tcping) – bandwidth disponibile (es., cprobe) – 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 round trip time? – Misure “vecchie” (1995): prossima a zero – Misure “recenti” (dal 1999): elevata, mediamente elevata SD - Valeria Cardellini, A.A. 2008/09 58 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 • • Connessioni da una Regione Problemi tipici del dispatching Web Ora del giorno Per DNS: Caching di [hostname-indirizzo IP] in name server intermedi per l’intervallo del Time-To-Live SD - Valeria Cardellini, A.A. 2008/09 59 Problemi del dispatching tramite DNS • Nel caso di siti Web molto popolari, il DNS autoritativo controlla solo il 5% del traffico in arrivo al sito – A causa del caching hostname-indirizzo IP nei name server locali e intermedi • A differenza del Web switch (che controlla il 100% del traffico in arrivo al sito), il DNS autoritativo deve utilizzare algoritmi sofisticati (es., TTL-adattativi) • Non sono stati trovati (esistono?) algoritmi di dispatching DNS in grado di evitare episodi di sovraccarico per tutte le classi di workload SD - Valeria Cardellini, A.A. 2008/09 60 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: integrare il dispatching centralizzato attuato dal DNS autoritativo con dispatching distribuito da parte dei server – Alcuni meccanismi di re-routing delle richieste: • Ridirezione HTTP • IP tunneling • URL rewriting SD - Valeria Cardellini, A.A. 2008/09 61 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 intercluster) – Per semplicità non consideriamo gli ulteriori livelli di dispatching interni al cluster… SD - Valeria Cardellini, A.A. 2008/09 62 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. 2008/09 63 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) – 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 (meglio redirezione HTTP di IP tunneling) SD - Valeria Cardellini, A.A. 2008/09 64 Ridirezione HTTP • Parte del protocollo HTTP e quindi supportato dai browser • 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 • La ridirezione è completamente trasparente per l’utente (non per il client!) message header HTTP status code 302 - “Moved temporarily” to a new location • “New location” – ridirezione ad un indirizzo IP (prestazioni migliori) – ridirezione ad un hostname SD - Valeria Cardellini, A.A. 2008/09 65 Ridirezione HTTP: pro e contro PRO • Compatibile con tutti i client e server Web (implementata a livello applicativo) • Meccanismo distribuito che soddisfa requisiti di affidabilità (non introduce “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) • Aumenta il traffico in quanto 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. 2008/09 66 Piattaforma di Google • Centinaia di migliaia di macchine (stima 450000) organizzate in almeno 10 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 PC con una versione customized di Linux • Riferimenti – http://research.google.com/pubs/papers.html SD - Valeria Cardellini, A.A. 2008/09 67 Piattaforma di Google (2) • 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. ... SD - Valeria Cardellini, A.A. 2008/09 245297 504496 293 293 293 293 IN IN IN IN IN IN CNAME CNAME A A A A www.google.com. www.l.google.com. 209.85.135.99 209.85.135.103 209.85.135.104 209.85.135.147 68 Piattaforma di Google (3) • All’interno di un cluster: – Livello di Web switch, livello di proxy server, livello di Web server (GWS), livello di index server – E poi: livelli di document server, ad server, spelling server, … SD - Valeria Cardellini, A.A. 2008/09 69
Documenti analoghi
Web switch - CE group DISP - Università degli Studi di Roma "Tor
pacchetto IP, il cui header contiene: VIP come indirizzo IP
sorgente e indirizzo nodo come indirizzo IP destinatario
– Indirizzo VIP condiviso (come packet forwarding)
Valeria Cardellini - SDCC 20...