Networking Computing power Storage Memory Protocols
Transcript
Networking Computing power Storage Memory Protocols
Università degli Studi di Roma “Tor Vergata” Facoltà di Ingegneria Networking Computing power Protocols Valeria Cardellini - SDCC 2012/13 Memory Storage 1 Valeria Cardellini - SDCC 2012/13 2 Source: http://www.caida.org/research/topology/as_core_network/ Valeria Cardellini - SDCC 2012/13 3 Valeria Cardellini - SDCC 2012/13 4 Source: Netcraft Web server survey http://news.netcraft.com/archives/category/web-server-survey/ Valeria Cardellini - SDCC 2012/13 5 The value of a telecommunications network is proportional to the square of the number of connected users of the system Networking is socially and economically interesting Valeria Cardellini - SDCC 2012/13 6 Cisco VNI Global IP Traffic Forecast 2011-2016 (May 2012): • By 2016, global IP traffic will reach 1.3 zettabytes annually (110 exabytes per month); growing 4-fold from 2011 to 2016. • By 2016, there will be nearly 19 billion global network connections (fixed and mobile); the equivalent of two and a half connections for every person on earth. • By 2016, there will be about 3.4 billion Internet users, which is more than 45% of the world’s projected population. Source: sandvine, June 2012 Source: Cisco • By 2016, wi-fi will account for nearly half Sandvine's Fall 2010 report on global ofSource: all IP traffic. Internet trends Implication of this trend: Internet is replacing voice telephony, television... will be the dominant transport technology for everything Valeria Cardellini - SDCC 2012/13 7 • 1974:Intel 8080 • Computers got… – Smaller – Cheaper – Power efficient – Faster – 2 MHz, 6K transistors • 2004:Intel P4 Prescott – 3.6 GHz, 125 million transistors • 2011: Intel 10-core Xeon Westmere-EX – 3.33 GHz, 2.6 billion transistors • GPUs scaled as well: in 2011 NVIDIA Fermi GPU Multicore architectures Valeria Cardellini - SDCC 2012/13 – 16 streaming multiprocessors of 32 cores each, 3 billion transistors – Used for general-purpose computing (GPGPU) 8 chip Valeria Cardellini - SDCC 2012/13 9 Valeria Cardellini - SDCC 2012/13 10 4x increase in capacity every 3 years Valeria Cardellini - SDCC 2012/13 11 • Internet and Web are two examples of distributed systems; others include: – Banking and corporate systems, HPC systems, server farms, computational and data Grids, clouds, … sometimes only accessible through Intranets – Peer-to-peer (P2P) systems – Home networks (home entertainment, multimedia sharing) – Wireless sensor networks – Internet of Things (IoT) • Networked interconnection of everyday objects, tools, devices or computers Valeria Cardellini - SDCC 2012/13 12 2010 2009 2011 2008 2007 Valeria Cardellini - SDCC 2012/13 13 • Molteplici definizioni di sistema distribuito (SD), scarsamente coerenti tra loro • [Tanenbaum & van Steen] Un insieme di calcolatori indipendenti che appare agli utenti ed alle applicazioni come un singolo sistema coerente – Sistema costituito da componenti autonomi – Dall’esterno visione di un’unica entità Necessaria la collaborazione tra componenti del sistema! Middleware Valeria Cardellini - SDCC 2012/13 14 • [Coulouris & Dollimore] Un SD è formato da componenti hw e sw localizzati su computer in rete che comunicano e coordinano le loro azioni attraverso scambio di messaggi – Se componenti = CPU è la definizione di architettura parallela MIMD (Multiple Instruction stream Multiple Data stream) • [Lamport] Si apprende l’esistenza di un SD quando il crash di un computer di cui non si è mai sentito parlare impedisce di portare a termine qualunque lavoro – Enfasi sulla gestione dei malfunzionamenti Valeria Cardellini - SDCC 2012/13 15 • Author of seminal work in distributed systems • Initial developer of LaTeX • His research contributions have laid the foundations of the theory of distributed systems. Some notable papers: – “Time, Clocks, and the Ordering of Events in a Distributed System” – “The Byzantine Generals Problem” – “Distributed Snapshots: Determining Global States of a Distributed System” – “The Part-Time Parliament” • Fundamental concepts as logical clocks and Byzantine failures • Algorithms to solve many fundamental problems in distributed systems, including: – the Paxos algorithm for consensus – the bakery algorithm for mutual exclusion of multiple threads in a computer system that require the same resources at the same time – the snapshot algorithm for the determination of consistent global states Valeria Cardellini - SDCC 2012/13 16 • Centralized computing – All computer resources are centralized in one physical system – All resources (processors, memory and storage) fully shared and tightly coupled within one OS • Distributed computing – A collection of autonomous computers, each with its own private memory, communicating through message passing using a computer network • Parallel computing – Multiple processors either tightly coupled with centralized shared memory or loosely coupled with distributed memory; interprocessor communication through shared memory or via message passing • Cloud computing – An Internet cloud of resources can be either a centralized or a distributed system – The cloud applies parallel or distributed computing or both Valeria Cardellini - SDCC 2012/13 17 • • • • • • • • Migliorare le prestazioni Migliorare la disponibilità e l’affidabilità Colmare le distanze “geografiche” Mantenere l’autonomia Ridurre i costi Permettere l’interazione Supportare la Quality of Service (QoS) Migliorare la sicurezza Valeria Cardellini - SDCC 2012/13 18 • Accessibilità delle risorse • Trasparenza • Apertura • Scalabilità Migliorando le prestazioni, la disponibilità e l’affidabilità del sistema, garantendo la sicurezza, l’efficienza energetica, … Valeria Cardellini - SDCC 2012/13 19 • Risorsa = computer, stampante, dato, file, pagina Web, spazio di storage, rete, … • Facilitare l’accesso alle risorse da parte di utenti e applicazioni • Condividere le risorse in modo efficiente e controllato • Problemi di sicurezza (non esaminati in questo corso) Valeria Cardellini - SDCC 2012/13 20 • Trasparenza della distribuzione: il SD è percepito nella sua interezza (no come collezione di componenti indipendenti) • Diversi tipi di trasparenza in un SD (ISO 10746, Reference Model of Open Distributed Processing) Trasparenza all’accesso – Nasconde le differenze nella rappresentazione dei dati e nelle modalità di accesso alle risorse • Stesso meccanismo di invocazione di risorse locali o remote Trasparenza all’ubicazione – Nasconde dove è localizzata una risorsa • Ad es. l’URL nasconde l’indirizzo IP – Trasparenza accesso + ubicazione = trasparenza di rete Trasparenza alla migrazione – Nasconde l’eventuale spostamento (logico o fisico) di una risorsa senza interferire sulla sua modalità di accesso Valeria Cardellini - SDCC 2012/13 21 Trasparenza al riposizionamento – Nasconde lo spostamento di una risorsa mentre è in uso Trasparenza alla replicazione – Nasconde la replicazione di una risorsa • Ogni replica della risorsa deve avere lo stesso nome • Supporto per trasparenza alla replicazione e all’ubicazione Trasparenza alla concorrenza – Nasconde la condivisione di una risorsa da parte di molti utenti contemporaneamente • Ad es. accesso concorrente di più utenti alla stessa tabella di una base di dati condivisa • L’accesso concorrente ad una risorsa condivisa deve lasciarla in uno stato consistente: ad es. meccanismi di locking (blocco) Trasparenza al guasto – Nasconde il malfunzionamento e la riparazione di una risorsa – Vedi definizione di SD di Lamport Valeria Cardellini - SDCC 2012/13 22 • Può essere eccessivo pretendere di ottenere una trasparenza completa della distribuzione – Ad es. utenti in continenti diversi: non sempre si vuole 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 client non può essere certo che un server abbia eseguito una certa operazione prima del crash – La trasparenza completa costa in termini di prestazioni! • Ad es., tenere le copie cache esattamente aggiornate con la copia master • Ad es., effettuare il flushing immediato di un’operazione di scrittura per garantire la tolleranza ai guasti Valeria Cardellini - SDCC 2012/13 23 • Un SD aperto offre servizi rispettando regole standard che descrivono la sintassi e la semantica dei servizi – Il SD deve conformarsi ad interfacce standard • • • • Spesso scritte in IDL (Interface Definition Language) Spesso specificano solo la sintassi dei servizi Definizione di interfaccia completa e neutrale Alcuni esempi di IDL: Sun RPC, Thrift, WSDL, OMG IDL – Il SD deve supportare la portabilità delle applicazioni • Un’applicazione sviluppata per il SD A può essere eseguita, senza modifiche, su un SD B che ha le stesse interfacce di A – Il SD dovrebbe interoperare facilmente • Implementazioni di sistemi (o componenti) di diversi produttori possono coesistere e collaborare basandosi unicamente sui reciproci servizi specificati da uno standard comune – Esempi: Java EE, .Net, Web Services, Corba Valeria Cardellini - SDCC 2012/13 24 • Ottenere l’apertura: rendere il SD indipendente almeno dall’eterogeneità dell’ambiente sottostante – – – – Hardware Reti Sistemi operativi Linguaggi di programmazione Valeria Cardellini - SDCC 2012/13 25 • L’implementazione dell’apertura richiede il supporto di differenti politiche specificate da applicazioni ed utenti – Quale livello di consistenza è richiesto per i dati nella cache del client? – Quali operazioni sono eseguibili da un’applicazione scaricata? – Quali requisiti di QoS (Quality of Service) vengono modificati a fronte di una variazione nella banda di rete? – Quale livello di sicurezza viene richiesto ad una comunicazione? • Idealmente, un SD fornisce soltanto i meccanismi – Consente la configurazione (dinamica) di politiche di caching, preferibilmente per singola risorsa – Supporta diversi livelli di sicurezza per le applicazioni – Fornisce diversi parametri modificabili di QoS per ciascun flusso di dati – Offre diversi algoritmi di crittografia Valeria Cardellini - SDCC 2012/13 26 • Capacità di un sistema (distribuito) di migliorare le proprie prestazioni all’aumentare: – delle risorse che lo compongono e degli utenti ! scalabilità rispetto alla dimensione – della distanza tra le risorse e gli utenti ! scalabilità geografica – del numero di domini amministrativi coinvolti ! scalabilità amministrativa • La maggior parte dei SD si occupa soltanto (e in modo parziale) della scalabilità rispetto alla dimensione – Due direzioni per la scalabilità rispetto alla dimensione: verticale (scale-up) ed orizzontale (scale-out) – Macchine più potenti (scale-up): la classica non soluzione! Come progettare e realizzare sistemi con scalabilità rispetto alla dimensione, geografica ed amministrativa Valeria Cardellini - SDCC 2012/13 ? 27 • Google File System – Distributed file system that we’ll study later • Scale parameter: number of clients • Scalability metric: aggregated read (write, append) speed, assuming random file access • Scalability criterion: the closer to network limit, the better Valeria Cardellini - SDCC 2012/13 28 Nascondere la latenza nella comunicazione Evitare di attendere la risposta di un servizio (remoto) e far fare altro lavoro utile al richiedente – Come? Comunicazione asincrona • Handler (gestore) specifico per completare la richiesta – Problema: non adatta per tutte le tipologie di applicazioni (ad es. applicazioni molto interattive) Distribuzione Suddividere dati e computazione tra molteplici nodi del SD; ad es.: – Servizi di naming decentralizzati (DNS) – Servizi di computazione distribuita (MapReduce) Replicazione e caching Rendere disponibili copie dei dati su molteplici nodi del SD; ad es.: – Database server replicati – Web cache (browser, proxy, first-tier di sistemi Web) Valeria Cardellini - SDCC 2012/13 29 • A prima vista non sembra difficile applicare le tecniche per la scalabilità, ma… – La presenza di copie multiple (cached o replicate) causa problemi di consistenza • Una copia modificata diviene diversa dalle altre copie – Per mantenere le copie sempre consistenti tra loro occorre una sincronizzazione globale ad ogni modifica, ma … – la sincronizzazione globale preclude soluzioni su larga scala! • Ad es. la rete può subire un partizionamento • Tuttavia, se si può tollerare un certo grado di inconsistenza, è possibile ridurre il bisogno di sincronizzazione globale • Il grado di inconsistenza tollerabile dipende dal tipo di applicazione – Esempi: blog, scambi di borsa, aste on-line, controllo del traffico aereo, … Valeria Cardellini - SDCC 2012/13 30 • Many distributed systems are needlessly complex because of errors in design and implementation that were patched later • Many wrong assumptions by architects and designers of distributed systems (“The Eight Fallacies of Distributed Computing”, Peter Deutsch, 1991-92): 1. The network is reliable • "You have to design distributed systems with the expectation of failure” (Ken Arnold) 2. Latency is zero • Latency is more problematic than bandwidth • “At roughly 300,000 kilometers per second, it will always take at least 30 milliseconds to send a ping from Europe to the US and back, even if the processing would be done in real time.” (Ingo Rammer) 3. Bandwidth is infinite 4. The network is secure Valeria Cardellini - SDCC 2012/13 Fallacies of Distributed Computing Explained 31 5. Topology does not change • That's right, it doesn’t--as long as it stays in the test lab! 6. There is one administrator 7. Transport cost is zero • • Going from the application level to the transport level is not free The costs for setting and running the network are not free 8. The network is homogeneous Do not think that technology solves everything! Valeria Cardellini - SDCC 2012/13 32 • Sistemi di calcolo distribuiti – High Performance Computing e/o High Availability • Cluster computing • Grid computing • Sistemi informativi distribuiti • Sistemi distribuiti pervasivi Valeria Cardellini - SDCC 2012/13 33 • Cluster: insieme di nodi di computazione ad alte prestazioni interconnessi tramite una rete locale ad alta velocità – Omogeneità: nodi con stesso sistema operativo, hardware molto simile, connessione attraverso la stessa rete • Obiettivi di alte prestazioni (HPC o High Performance Computing) e/o elevata affidabilità (HA o High Availability) • Organizzazione gerarchica con singolo nodo principale (ad es. Beowulf) oppure Single System Image (ad es. MOSIX) – Cosa è MOSIX: sistema operativo per cluster eseguibile su Linux nativo o macchina virtuale – Cosa offre: bilanciamento automatico del carico, scoperta automatica delle risorse, migrazione di processi, … Valeria Cardellini - SDCC 2012/13 34 • A cluster of servers interconnected by a high-bandwidth SAN or LAN with shared I/O devices and disk arrays Valeria Cardellini - SDCC 2012/13 35 Architectural share of the Top-500 systems (http://www.top500.org) Valeria Cardellini - SDCC 2012/13 36 • Griglie (grid) di calcolo altamente decentralizzate, composte da un gran numero di nodi caratterizzati da un grado elevato di eterogeneità – Nodi diversi per hardware, software, tecnologia di rete, politiche di sicurezza, … – Nodi in diversi domini di amministrazione • Collaborazione di gruppi di individui o istituzioni realizzata sotto forma di organizzazione virtuale • Architettura a livelli per Grid [Foster, 2001] – Evoluzione: Open Grid Service Architecture (OGSA) Valeria Cardellini - SDCC 2012/13 37 • Numerosi sistemi distribuiti informativi in uso sono forme di sistemi informativi tradizionali, che integrano sistemi legacy… anche in cloud private – Ad es. sistemi transazionali BEGIN_TRANSACTION(server, transaction); READ(transaction, file1, data); WRITE(transaction, file2, data); newData := MODIFIED(data); IF WRONG(newData) THEN ABORT_TRANSACTION(transaction); ELSE WRITE(transaction, file2, newData); END_TRANSACTION(transaction); END IF; – Tutte le operazioni READ e WRITE vengono eseguite; il loro effetto è permanente all’esecuzione di END_TRANSACTION – Le transazioni costituiscono un’operazione atomica (principio del tutto o niente) Valeria Cardellini - SDCC 2012/13 38 • Una transazione è un insieme di operazioni sullo stato di un oggetto che soddisfa le proprietà ACID • Atomicità – La transazione o viene eseguita completamente (come un’azione singola, indivisibile ed istantanea) o non viene eseguita affatto • Consistenza – La transazione non viola le invarianti del sistema; ciò non esclude la possibilità di stati intermediari non validi durante l’esecuzione della transazione • Isolamento – Transazioni concorrenti non interferiscono le une con le altre • Durabilità – Una volta che la transazione ha reso effettive le modifiche, esse sono permanenti Valeria Cardellini - SDCC 2012/13 39 • Transazione distribuita (o annidata): costruita a partire da un certo numero di sottotransazioni eseguite su molteplici macchine – Transaction Processing (TP) monitor o Transaction Manager: responsabile di coordinare l’esecuzione della transazione distribuita – Esempio commerciale: Oracle Tuxedo Valeria Cardellini - SDCC 2012/13 40 • Integration framework composed of a collection of technologies and services which form a middleware to enable integration of systems and applications across the enterprise – “Unrestricted sharing of data and business processes among any connected application or data sources in the enterprise” (Gartner) • Communication among heterogeneous applications (communication middleware) – – – – Remote Procedure Call (RPC) Remote Method Invocation (RMI) Message Oriented Middleware (MOM) Enterprise Service Bus (ESB) Valeria Cardellini - SDCC 2012/13 41 • Caratteristiche dei nodi dei SD pervasivi: piccoli, mobili, con connessioni di rete wireless e spesso appartenenti ad un sistema più grande – Esempi: sistemi domotici, sistemi elettronici per l’assistenza sanitaria, reti di sensori • Alcuni requisiti dei SD pervasivi: – Cambi di contesto: il sistema è parte di un ambiente che può cambiare in ogni momento – Composizione ad hoc: ogni nodo può essere usato in modi molto diversi da utenti differenti; richiesta la facilità di configurazione – Condivisione come default: i nodi vanno e vengono, fornendo informazioni e servizi da condividere • Pervasività e trasparenza della distribuzione non sono facilmente coordinabili – E’ preferibile esporre la distribuzione piuttosto che cercare di nasconderla Valeria Cardellini - SDCC 2012/13 42 • Sistemi domotici – Obiettivi: sistemi completamente auto-configuranti ed autogestiti, senza amministratore di sistema • Sistemi elettronici per l’assistenza sanitaria – Alcuni problemi • • • • Dove e come salvare i dati monitorati? Come prevenire la perdita di dati cruciali? Come generare e propagare gli allarmi? Come garantire la sicurezza e la robustezza? Valeria Cardellini - SDCC 2012/13 43 • Alcune caratteristiche dei nodi sensore: – Molti (10-106) – Con capacità di calcolo, memoria ed alimentazione limitate – Soggetti a guasti – A volte disposti con alta densità • Le reti di sensori sono SD – Possono essere considerate dei DB distribuiti (a) Memorizzazione ed elaborazione dei dati in DB centralizzato sul nodo sink (b) Memorizzazione ed elaborazione dei dati nei sensori (attivi ed autonomi) Valeria Cardellini - SDCC 2012/13 • 44 A reference architecture for two-dimensional underwater networks Source: http://www.ece.gatech.edu/research/labs/bwn/UWASN/work.html Valeria Cardellini - SDCC 2012/13 45
Documenti analoghi
Sistemi Distribuiti e Cloud Computing
Comunicazione nei sistemi distribuiti
Meccanismi di naming
Sincronizzazione nei sistemi distribuiti
Consistenza e replicazione
Tolleranza ai guasti
Architetture orientate ai servizi e Web service
S...
Sistemi Distribuiti e Cloud Computing
Introduzione ai sistemi distribuiti
Introduzione al Cloud computing
Architetture per sistemi distribuiti
Processi e thread nei sistemi distribuiti
Virtualizzazione
Comunicazione nei sistemi distrib...