Web switch - CE group DISP - Università degli Studi di Roma "Tor
Transcript
Web switch - CE group DISP - Università degli Studi di Roma "Tor
Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Sistemi Web distribuiti Corso di Sistemi Distribuiti e Cloud Computing A.A. 2015/16 Valeria Cardellini Perché sistemi Web distribuiti? • Successo del Web – Alcuni siti soggetti a centinaia di milioni di richieste ogni giorno – Classifica dei top site: www.alexa.com/topsites • Evoluzione dei servizi basati sul Web – Servizi sempre più complessi con crescente carico computazionale • Aspettative degli utenti – Regola degli X secondi • X=8, definita nel 2001 • X=4, analisi del 2006 sponsorizzata da Akamai Valeria Cardellini - SDCC 2015/16 2 Components of the Web delay Web client Address resolution delay Client delay Connection delay Client delay Network delay DNS server Web server DNS query DNS reply SYN j SYN k, ACK j+1 ACK k+1 HTTP request Server delay Network delay HTTP response Dov è il collo di bottiglia? Where is the bottleneck? DNS? Network? t Client? Server? Valeria Cardellini - SDCC 2015/16 3 Strengthening Web performance • Actions on the client side – Improve Web site design, use HTML5, use HTTP/2 • Actions on the network side – Partially done, but the grand challenge is the Internet at the speed of light • Actions on the application provider side Focus – Replicate the application and distribute the requests – Where to replicate? • In-house data centers, private Clouds, public Clouds, Content Delivery Networks (CNDs) Valeria Cardellini - SDCC 2015/16 4 Ottimizzazioni lato server Scale-up (scalabilità verticale) Miglioramenti hw/sw Scale-out (scalabilità orizzontale) LAN Sistemi con server multipli (Web/cache) WAN Valeria Cardellini - SDCC 2015/16 5 Scale-up e scale-out: costo Scale-up: Costo esponenziale Scale-out: Costo lineare LAN WAN Valeria Cardellini - SDCC 2015/16 6 Scale-up e scale-out: soluzioni • Scale-up software – Interventi a livello del SO • Esempi: evitare copie multiple della stessa risorsa, politiche di scheduling diverse da round-robin (ad es. SRTF) – Interventi a livello del server Web • Ad es: Apache HTTP server 2.4, lighttpd (architettura eventdriven), nginx (I/O non bloccante) • Scale-out – A livello di application provider • • • • Focus Distribuzione locale dei server Distribuzione globale dei server Integrazione con meccanismi di caching Soluzioni in-house, outsourced oppure Cloud-based – A livello di intermediari • Content Delivery Network Valeria Cardellini - SDCC 2015/16 7 Sistemi Web distribuiti Distribuzione locale Web cluster Valeria Cardellini - SDCC 2015/16 Distribuzione globale Web geo-cluster 8 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: multi-cluster ovvero molteplici cluster distribuiti geograficamente Focus sull’uso dei cluster in ambito Web Valeria Cardellini - SDCC 2015/16 9 Elementi per distribuire le richieste Cosa occorre per distribuire le richieste all’interno di un cluster? • Meccanismo di instradamento (routing) per indirizzare le richieste client al nodo migliore • Algoritmo di distribuzione (dispatching) per individuare il nodo migliore e bilanciare (o condividere) il carico di lavoro • Un componente esecutore per eseguire l’algoritmo di distribuzione utilizzando il relativo meccanismo di routing Valeria Cardellini - SDCC 2015/16 10 Traditional Web application Web switch 144.55.62.18 (VIP) • Horizontal replication at multiple tiers • The most common architecture for Web applications, widely deployed • Best practice: 3-tier shared nothing architecture – Save state out of server/component – Outage of a single server/component should not compromise the whole system Valeria Cardellini - SDCC 2015/16 11 Cloud-native application Web switch 144.55.62.18 (VIP) • What do the two architectures have in common? • The load balancer tier! Valeria Cardellini - SDCC 2015/16 12 Web cluster • Architettura distribuita localmente che fornisce applicazioni Web – Caratteristiche di trasparenza e scalabilità • Indirizzi del cluster (per una singola applicazione) – Un solo nome logico (es., www.site.org ) – Un solo indirizzo IP (virtual IP address o VIP) • Web switch: nodo (tier) 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 Valeria Cardellini - SDCC 2015/16 13 Richiesta a Web cluster Risposta (5) Richiesta (4) (1) Cluster (3) 144.55.62.18 www.site.org? DNS server root (2) DNS server locale Fattori da considerare: DNS server autoritativo per www.site.org • Caratteristiche del cluster switch • Flusso dei pacchetti di risposta Valeria Cardellini - SDCC 2015/16 14 Web switch • Componente di rete con ruolo di dispatcher – Anche noto come: più comune • load balancer (1999) • traffic manager (2003) • application delivery controller (dal 2009) • Mapping da VIP ad indirizzo IP di un server interno al cluster • Implementazioni alternative – Dispositivo hardware special-purpose – Modulo software eseguito a livello kernel (SO specialpurpose) – Modulo software eseguito a livello applicativo (SO generalpurpose) Valeria Cardellini - SDCC 2015/16 15 Web switch (2) • Distribuzione delle richieste a granularità fine – A livello di pacchetto TCP o richiesta HTTP • Due architetture alternative in base al livello dello stack ISO/OSI in cui lo switch opera – Switch di livello 4: content information blind • Informazioni disponibili: sorgente e destinazione indirizzo IP, numeri di porta TCP, SYN/FIN bit nell header TCP – Switch di livello 7: 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 Valeria Cardellini - SDCC 2015/16 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 Valeria Cardellini - SDCC 2015/16 17 Architetture per Web cluster (2) Classificazione delle architetture basata su: • • Livello dello stack OSI a cui opera il meccanismo di routing 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 Valeria Cardellini - SDCC 2015/16 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 Valeria Cardellini - SDCC 2015/16 19 Architetture di livello 4 two-way • Packet double-rewriting Cluster node 1 Richiesta Cluster node 2 Cluster node 3 144.55.62.18(VI P) LAN Risposta Web switch Cluster node n 144.55.62.18 Cluster node 4 www.site.org? DNS server locale DNS server autoritativo per www.site.org Valeria Cardellini - SDCC 2015/16 20 Architetture di livello 4 two-way (2) Packet double-rewriting (ovvero NAT) • Ogni nodo del cluster ha il suo indirizzo IP privato – I pacchetti in uscita devono riattraversare lo switch – Web switch modifica dinamicamente sia i pacchetti entranti sia quelli uscenti • Indirizzo IP destinazione dei pacchetti entranti (VIP → IP nodo scelto) • Indirizzo IP sorgente dei pacchetti uscenti (IP nodo scelto → VIP) • Ricalcolo dei checksum IP e TCP Tecnica basata sul meccanismo di Network Address Translation (NAT) Valeria Cardellini - SDCC 2015/16 21 Architetture di livello 4 one-way • Packet single-rewriting • Packet forwarding Cluster node 1 • Packet tunneling Risposta Cluster node 2 Cluster node 3 144.55.62.18(VI P) LAN Richiesta Web switch Cluster node n 144.55.62.18 Cluster node 4 www.site.org? DNS server locale DNS server autoritativo per www.site.org Valeria Cardellini - SDCC 2015/16 22 Architetture di livello 4 one-way (2) Packet single-rewriting – Lo switch modifica solo i pacchetti entranti – Il nodo scelto modifica i pacchetti in uscita (IP nodo → 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 nodi (disabilitare ARP per VIP sui nodi) – PRO: minor overhead sullo switch per pacchetto – CONTRO: Web switch e nodi 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 nodo come indirizzo IP destinatario – Indirizzo VIP condiviso (come packet forwarding) Valeria Cardellini - SDCC 2015/16 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 nodo inoltrarla – Parsing della linea di richiesta e degli header HTTP • Principali caratteristiche del content-based routing – Consente il partizionamento dei servizi tra server diversi, eventualmente specializzati – Favorisce l utilizzo di meccanismi di caching – Supporta il dispatching a granularità fine delle richieste HTTP effettuate tramite connessioni persistenti Valeria Cardellini - SDCC 2015/16 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 Valeria Cardellini - SDCC 2015/16 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) Valeria Cardellini - SDCC 2015/16 26 Architetture di livello 7 two-way • 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 • Si evitano così gli overhead di context switching e memory copying tra user space e kernel space – Il primo pacchetto determina la scelta del nodo e l instaurazione della connessione persistente fra il Web switch ed il nodo scelto – I pacchetti successivi sono trasmessi dal Web switch a livello TCP (quasi alla velocità di un router) – Richiede modifiche del kernel del SO del Web switch • Supporto per TCP splicing nel kernel di Linux a partire da 2.6.25 Valeria Cardellini - SDCC 2015/16 27 Architetture di livello 7 one-way • TCP handoff (livello di SO) – Il Web switch passa (handoff) la connessione TCP al nodo scelto, che gestisce il servizio ed invia direttamente la risposta al client – Richiede modifiche del kernel dei SO del Web switch e dei nodi Server Client User level (1) (4) Dispatcher (5) Kernel (2) Handoff TCP/IP Handoff (3) TCP/IP conn req ack conn req Forward TCP/IP handoff req ack response Client Valeria Cardellini - SDCC 2015/16 Web switch Target server 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 Valeria Cardellini - SDCC 2015/16 29 Algoritmi statici vs. dinamici Statici • Facile implementazione • Overhead trascurabile (sullo switch) • Possibili situazioni di sbilanciamento del carico Valeria Cardellini - SDCC 2015/16 Dinamici • Implementazione più complessa • Overhead di comunicazione (tra switch e nodi) e di computazione (sullo switch) • Miglior bilanciamento del carico a parità di politica adottata 30 Confronto meccanismi di distribuzione • Livello 4 – Livello connessione TCP – Algoritmi di distribuzione application blind – Algoritmi statici e dinamici • Livello 7 – Livello connessione applicativa (HTTP) – Algoritmi di distribuzione application aware – Algoritmi dinamici • Almeno client info aware (occorre usare l’informazione contenuta nella richiesta del client!) Valeria Cardellini - SDCC 2015/16 31 Distribuzione a livello 4 • Esempi di algoritmi statici: – Random – Round Robin: assegnamento circolare – Static Server Weight: peso statico assegnato ai nodi in base alle caratteristiche hw e poi random oppure round robin in modo proporzionale ai pesi assegnati • Gli algoritmi statici possono essere integrati con un meccanismo di health monitoring per escludere server malfunzionanti Valeria Cardellini - SDCC 2015/16 32 Distribuzione a livello 4 (2) • Esempi di algoritmi dinamici server state-aware: – Distribuzione delle richieste in base allo stato di carico dei nodi del cluster • Vari indice di carico: utilizzazione CPU, throughput I/O, RAM disponibile, numero di connessioni aperte, tempo di risposta, … • Stato di carico acquisito in modo diretto (comunicazione tra nodi e Web switch) oppure in modo indiretto sul Web switch, a seconda dell’indice di carico usato – Least Loaded: si sceglie il server con carico minimo: attenzione all’herd effect! Meglio randomizzare su un sottoinsieme di nodi – Weighted Round Robin: peso dinamico assegnato ai nodi in base allo stato di carico e round robin basato sui pesi – Energy-aware: algoritmi che ottimizzano il consumo di potenza • Algoritmi statici o dinamici? – Prestazioni confrontabili finché il tempo di servizio delle richieste varia in 2 ordini di grandezza; oltre i 2 ordini di grandezza, meglio algoritmi dinamici Valeria Cardellini - SDCC 2015/16 33 Distribuzione a livello 7 • Esempi di algoritmi dinamici client info aware – Identificatori di sessione (sticky session o session persistence): richieste HTTP con stesso SSL id o stesso cookie assegnate allo stesso server – Partizionamento del contenuto tra i server: ad es. in base al tipo di risorsa (per utilizzare server specializzati) oppure applicando una funzione hash sul path della risorsa (per aumentare il cache hit rate nei server) • Esempi di algoritmi dinamici 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 Valeria Cardellini - SDCC 2015/16 34 Prodotti commerciali per Web cluster • Principali prodotti commerciali – Barracuda Load Balancer – Brocade Series ADX, Virtual Traffic Manager – Cisco Application Control Engine (ACE) e Content Service Switch (CSS) – Citrix NetScaler – Fortinet FortiADC – F5 Networks’ BIG-IP Local Traffic Manager (LTM) – loadbalancer.org – Microsoft Network Load Balancing (NLB) – Radware AppDirector – Resonate Central Dispatch Valeria Cardellini - SDCC 2015/16 35 Prodotti commerciali per Web cluster (2) • Tranne Microsoft NLB e Brocare Virtual Traffic Manager, i prodotti commerciali sono dispositivi hardware special-purpose • Oltre alla distribuzione delle richieste, svolgono anche: – Task CPU-intensive: crittografia e decrittografia SSL (SSL offloading), gestione di sessioni TCP – Compressione e caching dei contenuti – Protezione da attacchi di tipo DDoS – Obiettivi: ridurre il carico sui server, consolidare il cluster, ridurre il consumo di banda di rete, migliorare la percezione del servizio da parte degli utenti Valeria Cardellini - SDCC 2015/16 36 Prodotti open source per Web cluster • Principali prodotti open source – HAProxy • usato ad es. da Airbnb, DISQUS, Fedora, GitHub, Instagram, Reddit, Tumblr, w3.org • Performance: barrier of 100k HTTP req/s crossed in 2009! – Linux Virtual Server (LVS) – nginx • Server HTTP, in grado di servire un numero maggiore di richieste concorrenti rispetto ad Apache (vedi Apache vs nginx) • Usato dal 17,4% dei siti, ad es. Netflix (vedi Netcraft December 2015 Web Server Survey) • Può anche essere usato come load balancer – Perlbal – Pound • Operano tutti a livello software Valeria Cardellini - SDCC 2015/16 37 Cloud-based load balancers • Amazon Elastic Load Balancing (ELB) – Distributes incoming application traffic across multiple Amazon EC2 instances – Detects unhealthy instances within a pool and automatically reroutes traffic to healthy instances (failover) – Supports sticky sessions to specific EC instances – Can also be used in an Amazon Virtual Private Cloud (VPC) to distribute traffic between application tiers • Rackspace Cloud Load Balancer – User can choice the server to be balanced (not only Cloud instances) – Some features: SSL termination at the load balancer, session persistence across all protocols, node health monitoring and failover protection, DDoS protection – Open source code Valeria Cardellini - SDCC 2015/16 38 Cloud-based load balancers (2) • Google’s Network Load Balancing – Distributes incoming TCP/UDP traffic across multiple Compute Engine instances – Layer 4 load balancing – Dispatching algorithm: client-info aware • Choose server based on hash of the source IP and port, destination IP and port, and protocol – Instance health monitoring (based on HTTP) and failover protection Valeria Cardellini - SDCC 2015/16 39 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/storage server Valeria Cardellini - SDCC 2015/16 40 Replicazione del middle tier • Obiettivo del dispatching per il middle tier: scegliere un server del middle tier • 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 diversi prodotti usando semplici politiche di distribuzione (varianti di roundrobin, weighted round-robin, least loaded) • Esempi: – Per Apache HTTP server e Tomcat: connettore JK e dispatching tramite mod_proxy di Apache – Eureka: servizio REST usato da Netflix per load balancing e failover dei server nel middle tier Valeria Cardellini - SDCC 2015/16 41 Replicazione del back-end tier • Il DB (o più in generale il tier di storage) può 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 (e relativi overhead): – Mantenere la consistenza dei dati e la tolleranza ai guasti Valeria Cardellini - SDCC 2015/16 42 Caching e clustering del back-end tier • Per incrementare le prestazioni, si può integrare la replicazione del back-end tier con meccanismi di caching dei risultati delle query – Utile soprattutto se DB read-intensive (o mostly read) – Esempi: Memcached e redis • Per migliorare disponibilità e continuità di servizio, si può usare un middleware per gestire cluster di DB, eventualmente distribuiti geograficamente – Esempio: VMware Continuent (ha un motore di replicazione open source) Valeria Cardellini - SDCC 2015/16 43 Memcached • Free and open source, used e.g., by Flickr, Twitter, Wikipedia, Youtube • High-performance, distributed memory object caching system – Generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load • Provides in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering • API available for most languages Valeria Cardellini - SDCC 2015/16 44 Example of Web cluster architecture: DISQUS • DISQUS (October 2010) – The largest Django app – Traffic: 17000 req/sec • Hw & sw architecture – 100 server – 30% web servers (Apache + mod_wsgi) – 10% databases (PostgreSQL) – 25% cache servers (memcached) – 20% load balancing/high availability (HAProxy + heartbeat) – 15% utility servers (Python scripts) See “Scaling DISQUS…” article Valeria Cardellini - SDCC 2015/16 45 Example of Web cluster architecture: Facebook • High-level architecture of a Facebook cluster • sw in the Web tier: HipHop, Tornado, node.js – HipHop: trasforms PHP code in highly optimized C++ code – Tornado: non blocking server written in Python – Node.js: server-side JavaScript and event-driven I/O • Static content delivered by Akamai • Varnish as HTTP accelerator – Varnish is designed for content-heavy dynamic web sites as well as heavily consumed APIs Valeria Cardellini - SDCC 2015/16 46 Example of Web cluster architecture: Facebook (2) • Persistence is done using MySQL, Memcached, Hadoop’s HBase - Memcached is used as a cache for MySQL as well as a general purpose cache - See “Scaling Memcache at Facebook” paper) • Offline processing is done using Hadoop and Hive • The description of hw architecture of Facebook data center is publicly available at opencompute.org – “The result is a data center full of vanity free servers which is 38% more efficient and 24% less expensive to build and run than other state-of-the-art data centers.” Valeria Cardellini - SDCC 2015/16 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) e scalabilità limitata dal Web switch • Soluzione parziale: replicazione orizzontale+verticale del Web switch è load balancer tier – Scalabilità limitata dalla banda di accesso ad Internet – Incapacità di evitare i link di rete congestionati • Soluzione – Replicare i cluster su scala geografica (global scale-out) Valeria Cardellini - SDCC 2015/16 48 Delivery su scala geografica • Alternative disponibili ad un content/service provider per distribuire i propri contenuti/servizi su scala geografica in modo efficiente e scalabile: – Il provider possiede e gestisce l’intera piattaforma (soluzione on-premise) – Oppure delega la gestione della piattaforma ad uno o più data center – Oppure ad un IaaS o PaaS provider – In tutti questi casi: sistemi Web distribuiti geograficamente – Oppure 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 o equivalente servizio Cloud a livello SaaS, ad es. Amazon CloudFront) Valeria Cardellini - SDCC 2015/16 49 Mechanisms for geo-distributed Web systems • Global scale-out increases the complexity of the overall architecture • Which request routing mechanisms? – We’ll mainly consider: • DNS redirection • Anycast • HTTP redirection • Which dispatching algorithms? • Where to locate the clusters? Valeria Cardellini - SDCC 2015/16 50 Cluster vs multi-cluster Distribuzione locale Distribuzione geografica Web cluster Dispatching a livello 4 (OSI) Web multi-cluster Dispatching a livello 7 (OSI) Dispatching in 2 fasi (inter-cluster+ intra-cluster) Dispatching in 3 fasi (inter-cluster+ intra-cluster+ inter-cluster) Valeria Cardellini - SDCC 2015/16 51 Redirezione DNS • Multi-cluster: l’applicazione Web è fornita da un’architettura di Web cluster distribuiti geograficamente in diverse regioni Internet • Meccanismo di routing delle richieste verso il cluster “migliore” basato sul DNS – Indirizzi dell’applicazione Web • Unico hostname al quale corrispondono molteplici indirizzi IP, tanti quanti sono i Web cluster • Indirizzo IP fornito dal server DNS autoritativo corrisponde al VIP dello switch del cluster selezionato – Il routing avviene nella fase di address lookup -> è application-blind – Soluzione anche nota come redirezione DNS • Il server DNS autoritativo seleziona un cluster applicando un algoritmo di dispatching (o distribuzione) delle richieste di risoluzione di indirizzo Valeria Cardellini - SDCC 2015/16 52 Web multi-cluster (2 livelli) • Un unico hostname • 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 Risposta www.site.com? DNS locale Web switch 4 26.38.98.10 <120.88.41.54,TTL> DNS autoritativo per www.site.com Valeria Cardellini - SDCC 2015/16 53 Dispatching di primo livello (mediante DNS) • Il primo livello di distribuzione inter-cluster 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 DNS server locale o intermedio • oppure DNS autoritativo per l’applicazione, opportunamente modificato per selezionare il cluster migliore applicando un algoritmo di dispatching (o distribuzione) Valeria Cardellini - SDCC 2015/16 54 Algoritmi di dispatching per DNS DNS-based dispatching Static Client info aware Internet proximity Cluster state aware Cluster load Client info & cluster state aware Internet proximity Cluster load • Alcuni esempi di algoritmi di dispatching attuati dal DNS server autoritativo - Round-robin - Prossimità di rete tra client e cluster - Carico dei cluster - Combinazione di prossimità di rete e carico dei cluster Valeria Cardellini - SDCC 2015/16 55 Prossimità in Internet • La prossimità geografica tra client e server non implica la 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 BGP) Non garantisce la selezione del cluster migliore: links are not created equal Valeria Cardellini - SDCC 2015/16 56 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 Valeria Cardellini - SDCC 2015/16 57 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 Valeria Cardellini - SDCC 2015/16 Connessioni da una Regione Problemi tipici del dispatching Web Ora del giorno 58 Problemi del dispatching tramite DNS • Oltre ai problemi del dispatching geografico… • Meccanismo di distribuzione application-blind e a granularità grossa • Server DNS autoritativo con controllo limitato sulla risoluzione delle richieste di indirizzo: – Nel caso di siti molto popolari (e TTL standard di 1 giorno): 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 la durata del TTL – Come risolvere il problema? • TTL prossimo a zero per aumentare il controllo, ma causa overhead sul DNS! • Algoritmi di DNS dispatching sofisticati (ad es. TTL-adattativi) • DNS anycast Valeria Cardellini - SDCC 2015/16 59 An “old” problem for DNS redirection • The traditional DNS mapping system identifies a client using the IP address of its local name server (LDNS) – The LDNS makes the recursive query for name resolution on behalf of the client – But clients can be far from their LDNSes (even 8 hops!) – Problem: inaccuracy for the authoritative name server in identifying the “proximal” replica that can be reached by the client with low latency • New EDNS-client-subnet extension proposed by Google and Akamai to overcome this difficulty – The DNS query contains information about the client that originated it tools.ietf.org/html/draft-ietf-dnsop-edns-client-subnet-00 Valeria Cardellini - SDCC 2015/16 60 Come risolvere i problemi del dispatching DNS Valeria Cardellini - SDCC 2015/16 • Alcune soluzioni (non alternative tra loro) • Fase di richiesta di risoluzione dell’indirizzo: realizzare un infrastruttura scalabile di DNS autoritativo (anycast o tipo infrastruttura DNS di Akamai) per poter usare un TTL basso • Fase di richiesta dell’applicazione: aggiungere un altro livello di dispatching integrando quello centralizzato attuato dal DNS autoritativo con dispatching distribuito da parte dei cluster – Occorre usare un meccanismo di re-routing delle richieste: • Redirezione HTTP • IP tunneling • URL rewriting • Redirezione RTSP (Real Time Streaming Protocol) • Redirezione SIP (Session Initiation Protocol) 61 Dispatching per Web multi-cluster • Indirizzi visibili dell’applicazione Web – 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 nodo migliore (dispatching intra-cluster) – Ciascun nodo (o Web switch di livello 7): può ridirigere le richieste verso un altro cluster, ad es. per risolvere situazioni temporanee di sovraccarico (dispatching inter-cluster o crosscluster) – Non consideriamo gli ulteriori livelli di dispatching interni al cluster Valeria Cardellini - SDCC 2015/16 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 richiesta HTTP Go To 86.104.34.28 Seconda richiesta HTTP Risposta www.site.com? DNS locale Web switch 4 26.38.98.10 <120.88.41.54,TTL> DNS autoritativo per www.site.com Valeria Cardellini - SDCC 2015/16 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) – 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 cluster sovraccarico • Quale meccanismo di redirezione? • DNS e Web switch: usano politiche di dispatching centralizzate • Redirezione: usa politiche di dispatching distribuite, in cui i nodi del cluster possono partecipare al riassegnamento delle richieste Valeria Cardellini - SDCC 2015/16 64 Redirezione HTTP • Supporto nativo nel protocollo HTTP • New location : come indicarla? – Indirizzo IP (prestazioni migliori ma no trasparenza) – Hostname HTTP message header • Vantaggi HTTP status code 302 - “Moved temporarily” to a new location – Compatibilità – Affidabilità (meccanismo distribuito, no single point of failure ) – Distribuzione delle richieste application-aware • Svantaggi – Limitata alle richieste HTTP (altri meccanismi di redirezione più generali, ad es. IP tunneling) – Maggior traffico di rete: ogni richiesta rediretta richiede una nuova connessione TCP Valeria Cardellini - SDCC 2015/16 Redirezione riduce tempo di risposta se impatto del server > impatto della rete 65 Anycast • Anycast: point-to-point flow of packets between a client and (at least) one replica, typically the nearest, of a group of servers identified by the same anycast address – One-to-one of many association • Idea: a client sends packets to any one of several possible servers offering a particular service or application but does not really care which one • How? A single anycast address is assigned to many servers belonging to an anycast group • Client sends packets to an anycast address A and the network attempts to deliver the packet to the closest server with the matching anycast address A Valeria Cardellini - SDCC 2015/16 66 Anycast in Internet • IP anycast: anycast service at network layer – Enables to assign the same IP address to multiple endpoints • From a network perspective, nothing special! – Same as having multiple paths to the same endpoint: routers select the shortest path from their perspective – Implemented by using BGP (or OSPF within the same AS) – Nearest depends on the routing’s system measure of distance • Pros: – Backward compatibility: transparent to existing routing protocols – With respect to DNS redirection, server selection decision based on the proximity to the client itself, not to its local DNS Valeria Cardellini - SDCC 2015/16 67 Anycast in Internet (2) • Cons: – Difficulty of deployment, but manageable by skilled network engineers – Lack of load balancing: routers do not consider server load when routing a request – Connection disruption in connection-oriented downloads: possibility of a route change in the middle of a transfer • • Not good for stateful long-lived connections But stateless protocols (or protocols that recover well) can still work: luckily for the Web, DNS is stateless and HTTP is reasonably stateless Valeria Cardellini - SDCC 2015/16 68 IP anycast for DNS service • By far, the most common use for IP anycast is for DNS – Multiple DNS name servers deployed using the same anycast IP address • Why to use? To provide: – faster DNS response times – increased reliability – resilience against DDoS attacks • Some examples of DNS anycast: – Some Internet root nameservers are implemented as clusters of hosts using anycast addressing – Google Public DNS Valeria Cardellini - SDCC 2015/16 69 IP anycast for HTTP traffic • Anycast is becoming an alternative to DNS redirection for geographically distributed Web systems – Web clusters can be deployed globally with the same anycast address • When anycast works well (not easy to achieve!), it can address most issues of DNS redirection: – Authoritative DNS server can reply with the same IP address for all users and the address can have a longer TTL and be cached by intermediate and local DNS name servers – No need to know where the user is: routing will take care of bringing the client to the closest server regardless of where it or its DNS server is – But load balancing among clusters is still an issue! • Now used by some big providers, sometimes in conjunction with DNS redirection (e.g., Amazon, Google, LinkedIn, YouTube) Valeria Cardellini - SDCC 2015/16 70 Distribute requests to LinkedIn • First level of request distribution: regional anycast – See CNAME resource record which maps to different continents (Europe and USA) TCP over IP Anycast - Pipe dream or Reality? DNS resolution from Rome dig www.linkedin.com! …! ANSWER SECTION:! www.linkedin.com. !2 !IN !CNAME glb-any-eu.www.linkedin.com. 147 IN any-eu.www.linkedin.com. 2844 !IN !glb-any-eu.www.linkedin.com.! !CNAME !any-eu.www.linkedin.com.! !A !185.63.147.10! ! DNS resolution from EC2 instance in Frankfurt dig www.linkedin.com! …! ANSWER SECTION:! www.linkedin.com. !2 !IN !CNAME glb-any-eu.www.linkedin.com. 147 IN any-eu.www.linkedin.com. 2844 !IN !glb-any-eu.www.linkedin.com.! !CNAME !any-eu.www.linkedin.com.! !A !185.63.147.10! Valeria Cardellini - SDCC 2015/16 71 ! ! Distribute requests to LinkedIn (2) DNS resolution from EC2 instance in US-east dig www.linkedin.com! …! ;; ANSWER SECTION: www.linkedin.com. 45 IN CNAME any-na.www.linkedin.com. any-na.www.linkedin.com. 2026 IN A 108.174.10.10 ! 1. Client located in continent A -> assigned by authoritative DNS name server to IP anycast address (1.1.1.1) of continent A 2. Anycast to route the client towards the closest replica of 1.1.1.1 Valeria Cardellini - SDCC 2015/16 72 Prodotti commerciali per Web multi-cluster • Alcuni prodotti commerciali basati su redirezione DNS – – – – Cisco ACE Global Site Selector F5 Networks BIG-IP Global Traffic Manager Radware AppDirector Resonate Global Dispatch • Supportano il dispatching di primo livello basato su DNS, usando algoritmi basati su prossimità, carico e disponibilità dei cluster Valeria Cardellini - SDCC 2015/16 73 Cloud-based global load balancers • Amazon Route 53 – Provides DNS redirection to EC2 instances or clusters of EC2 instances – Authoritative DNS server that answers DNS queries with low latency by using a global network of DNS servers • Google’s HTTP(S) load balancing service – Appears to use anycast (a single global IP address) – Provides also cross-region load balancing to Compute Engine instances in different regions Valeria Cardellini - SDCC 2015/16 74 Infrastruttura di Google • Comprende centinaia di migliaia di macchine organizzate in almeno 13 mega data center distribuiti geograficamente www.google.com/about/datacenters/ • Passeggiata in un data center di Google Valeria Cardellini - SDCC 2015/16 75 Infrastruttura di Google (2) • Alcuni dati sui server – 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 OC-48 (2488 Mbit/sec) e OC-12 (622 Mbit/ sec) con gli altri cluster – Nel 2006: 450000 server (stima) – Nel 2011: 900000 server (stima) – Commodity server con una versione customized di Linux • Alcuni dati sui servizi – L indice di Google comprende circa 45 miliardi di URL – Più di 3 miliardi di query al giorno, con l’obiettivo di servire una query in meno di 0,2 secondi (ritardi di rete compresi!) – 425 milioni di utenti Gmail – Milioni di video su Youtube ogni giorno • Research@Google: research.google.com/pubs/papers.html Valeria Cardellini - SDCC 2015/16 76 Google platform: key design principles • Have reliability reside in software, not hardware – Use low-cost (unreliable) commodity PCs to build a high-end cluster – Replicate services across machines and detect failures • Design for best total throughput, not peak server response time – Response time can be controlled by parallelizing requests – Rely on replication: this helps with availability too • Price/performance ratio more important than peak performance Valeria Cardellini - SDCC 2015/16 77 Inside Google data center: hardware Source: J. Dean, Design, Lessons and Advice from Building Large Distributed Systems, LADIS 2009. Valeria Cardellini - SDCC 2015/16 78 Inside Google data center: some pictures Pictures courtesy of Jeff Dean In 1997 In 2000: note the fan! In 2007 Valeria Cardellini - SDCC 2015/16 In 2016 79 Source: L.A. Barroso, U. Hölzle, The Datacenter as a Computer: An Introduction to the Design of WarehouseScale Machines , 2009. Handling hw failures in Google Valeria Cardellini - SDCC 2015/16 80 SD ideati da Google • Google File System (GFS)/Colossus • Chubby – Servizio di lock per SD lascamente accoppiati sviluppato per gestire la sincronizzazione a granularità grossa • BigTable – Sistema di storage distribuito column-oriented ad alte prestazioni • Spanner – Database di tipo NewSQL globalmente distribuito • MapReduce – Modello di processamento di dati distribuiti su larga scala • Kubernetes – Gestore di cluster di container Argomenti trattati nel corso Valeria Cardellini - SDCC 2015/16 81 Distribute requests to Google search engine • First level of request distribution (inter-cluster): DNS redirection or anycast Reverse lookup: mrs04s09-in-f196.1e100.net Example: DNS resolution from Rome ;; ANSWER SECTION:! www.google.com. ! ! !72 mrs04s09-in-f4.1e100.net !IN !A !216.58.210.196! Example: DNS resolution from Rome in a different time of the day dig www.google.com! ...! www.google.com. ! !300 !IN !A !149.3.176.58! www.google.com. ! !300 !IN !A !149.3.176.54! www.google.com. ! !300 !IN !A !149.3.176.56! www.google.com. ! !300 !IN !A !149.3.176.55! www.google.com. ! !300 !IN !A !149.3.176.59! www.google.com. ! !300 !IN !A !149.3.176.53! www.google.com. ! !300 !IN !A !149.3.176.52! www.google.com. ! !300 !IN !A !149.3.176.57! ...! Valeria Cardellini - SDCC 2015/16 Maximum TTL value assigned by Google authoritative name servers 82
Documenti analoghi
Networking Computing power Storage Memory Protocols
nascondere la distribuzione
– Impossibile (teoricamente e praticamente) nascondere
completamente i guasti di nodi e reti
• Difficile distinguere tra una risorsa crashed ed una molto lenta
• Un c...
Web switch - Università degli Studi di Roma "Tor Vergata"
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....
Sistemi peer-to-peer Sistemi peer-to-peer (P2P)
• Nodi altamente dinamici ed autonomi
– Un nodo può entrare o uscire dalla rete P2P in ogni momento
• Operazioni di ingresso/uscita (join/leave) dalla rete