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