luca.zenari.9
Ominide
6 min. di lettura
Vota 4 / 5

Concetti Chiave

  • I sistemi distribuiti sono visti come un'unica entità, ma possono essere composti da più macchine, con trasparenze variabili come accesso e migrazione.
  • La virtualizzazione migliora portabilità e compatibilità, isolando componenti e consolidando risorse su macchine virtuali.
  • Il routing dinamico può avvenire attraverso protocolli come distance vector e link-state, con soluzioni specifiche per problemi come il count to infinity.
  • La migrazione del codice è essenziale per bilanciare carichi di lavoro e migliorare l'efficienza, con varianti leggere e forti per diversi ambienti.
  • I cluster possono essere ad alta performance o disponibilità, con configurazioni asimmetriche o simmetriche per ottimizzare le risorse e la gestione del carico.
Dal sistema distribuito al Cluster
Sistema distribuito: è un sistema di dispositivi che comunicano, si coordinano tra loro e vengono visti dall'esterno come un'unica entità.

Mainframe: unità di calcolo ad altre prestazioni a cui si interfacciano i terminali.

Terminale: è un dispositivo che non è in grado di eseguire i calcoli da solo.

Middleware: un insieme di programmi informatici che fungono da intermediari tra diverse applicazioni e componenti software. Sono spesso utilizzati come supporto per sistemi distribuiti complessi.

Sist.||:-indirizzamento condiviso -bus condiviso/multiplo -processo eseguito in parellelo.

Sist. distr.: indirizzamento singolo -bus singolo -migrazione del codice.

Scalabilità
-Nascondere le latenze nella comunicazione (asincrona).
-Distribuzione (computazione, lavoro della cpu,tra molteplici macchine).
-Replicazione e caching (problemi di consistenza).

Trasparenza: il sistema distribuito è visto come un unico sistema anche se è formato da più macchine. non è sempre possibile averla.
-Trasparenza all'accesso (se accedo al sistema localmente non devo accorgermi).
-Trasparenza alla migrazione (non devo sapere se il mio processo viene eseguito su una macchina o sull'altra).
-Trasparenza al riposizionamento/replicazione (non devo accorgermi della posizione dei file. Bisogna aggiornare tutti i file replicati).
-Trasparenza alla concorrenza (non mi devo accoregere che il dispositivo sia richieto da 1 o più processi. Se possibile replico la risorsa).
-Trasparenza al guasto (Se ci sono dei guasti non devo accorgermi. Migrazione del processo su un'altra macchina. Sostituisco la macchina rotta).

Elenco sistemi distribuiti
-cluster computing
-grid computing
-sistemi informatici distribuiti
-sistemi domestici
-sistemi di assistenza sanitaria
-ad hoc network
-sensor network

Virtualizzazione
-virtualizzazione delle risorse HW e SW di sistema (macchine virtuali)
-vitualizzazione dello storage (SAN-STORAGE AREA NETWORK)
-viertualizzazione della rete (VLAN)
-virtualizzazione dell'infrastruttura
molteplici VM su un'unica macchina fisica

Vantaggi
-facilita la portabilità
-facilita la compatibilità
-facilita la migrazione del codice
-indipendenza dall'hardware
-virtual machine legcy, un sistema legacy è un sistema vecchio, non più compatibile con gli amibienti moderni
-consolidamento dei server
-permette di isolare componenti malfunzionanti o soggetti ad attacchi di sicureza
permette di isolare le prestazioni cioè divido il tempo di utilizzo della cpu in modo proporzionale

Livello
-api (application program interface): chiamate da libreria
-abi (application binary interface): chiamate di sistema
-system isa: istruzioni macchina invocabili solo da programmi privileggiati
user isa: istruzioni macchina invocabili da tutti i programmi

Routing dinamico
2 protocolli:
-disatance vector
-link-state

Topologia: è la disposizione dei dispositivi che comunicano tra loro.

Link-State: la topologia dell'intera rete e tutti i costi dei collegament dìsono noti ai ruoter.

Distance Vector: conosce la topologia tra lui e i router confinanti. Ogni router misura la istanza che lo separa dai nodi adiacenti ricevendo dati dai router vicini, poi comunica la propria tabella ai vicini.

Soluzioni al Count ti infinity
-split horizont semplice: un router quando inltra la propria tablla di routing ad un altro router vicino, omette i percorsi cha ha appreso proprio da quel vicino.
-split horizont con poison reverse: metrica con valore predefinito se la destinazione è irraggiungibile.

Migrazione di codice
Motivazioni:
-bilanciare o condividere il carico di lavoro
-risparmiare risorse di rerte e ridurre il tempo di risposta
--processare i dati vicino a dove risiedono
-sfruttare il parallelismo
Processo composto da 3 segmenti:
-segmento delle risorse (il riferimento delle risorse esterne di cui il processo ha bisogno)
-segmento del codice (le istruzioni del programma da eseguire)
-segmento dell'esecuzione (lo stato del processo, stack, program counter, dati privati)
2 tipologie di migrazione:
-migrazione leggera: trasferisce solo il segmento del codice
-migrazione forte: trasferisce anche il segmento dell'esecuzione

Migrazione in ambienti eterogenei
In ambirnti eterogenei la macchina di destinazione può non essere in grado di eseguire il codice perché le interfacce dei processi sono diversi. Usare la virtualizzazione.

Cluster
Tipi:
-cluster ad alta performance (alta capacità di calcolo in tempo breve)
--usati in contesti scientifici
--è importante la possibilità di distribuire il carico di singole computazioni tra più nodi
-Cluster ad alta disponibilità (capacità di gestire più richieste)
-Disaster Recovery (se cade un nodo ce ne sono altri che lo sostituiscono)
Asimmetrico
-un servizio viene erogato solo da un nodo (server primario)
-esiste un server secondario che può sodtituire il primarinell'erogazione del servizio
Simmetrico
Ciascun nodo svolge del lavoro utile, erogando uno o più servizi
-di solito ciascun nodo è il server primario per un certo insieme si servizi, ma può essere anche secondario per altri servizi
-in caso di fallimento di un nodo, ciascuno dei suoi servizi primari vengono riassegnati a un server secondario
Vantaggio: in un cluster simmetrico le risorse di calcolop sono sfruttate meglio
Svantaggio: lo spostamento di un servizio da un nodo all'altro potrebbe portare a un carico eccessivo per il nodo
Load Balancing
È un particolare cluster simmetrico a cui aggiungiamo delle proprietà. un servizio viene erogato attivamente da più nodi. Al limite tutti i nodi del cluster partecipano attivamente all'erogazione del servizio. Non esiste dunque un singolo server primario per il servizio.
Il load balancer gira le richieste ai server del cluster sulla base di un'opportuna politica.

Domande da interrogazione

  1. Qual è la differenza principale tra un sistema distribuito e un mainframe?
  2. Un sistema distribuito è composto da dispositivi che comunicano e si coordinano tra loro, apparendo come un'unica entità, mentre un mainframe è un'unità di calcolo ad alte prestazioni a cui si collegano i terminali.

  3. Quali sono i vantaggi della virtualizzazione nei sistemi distribuiti?
  4. La virtualizzazione facilita la portabilità, la compatibilità, la migrazione del codice, l'indipendenza dall'hardware, il consolidamento dei server e l'isolamento di componenti malfunzionanti o soggetti ad attacchi di sicurezza.

  5. Come si differenziano i cluster ad alta performance dai cluster ad alta disponibilità?
  6. I cluster ad alta performance sono progettati per capacità di calcolo elevate in tempi brevi, spesso utilizzati in contesti scientifici, mentre i cluster ad alta disponibilità gestiscono un numero maggiore di richieste e offrono soluzioni di disaster recovery.

  7. Cosa si intende per trasparenza in un sistema distribuito?
  8. La trasparenza in un sistema distribuito significa che il sistema appare come un'unica entità, nascondendo all'utente dettagli come l'accesso, la migrazione, il riposizionamento, la concorrenza e i guasti.

  9. Quali sono le due tipologie di migrazione di codice e le loro differenze?
  10. Le due tipologie di migrazione di codice sono la migrazione leggera, che trasferisce solo il segmento del codice, e la migrazione forte, che trasferisce anche il segmento dell'esecuzione, inclusi lo stato del processo e i dati privati.

Domande e risposte