Definizione e caratteristiche della griglia computazionale (sistemi distribuiti)

Definizione e caratteristiche della griglia computazionale (sistemi distribuiti)

Definizione di griglia computazionale

Una griglia computazionale (o dall’inglese grid computing) è una struttura hardware e software in grado di fornire all’utente un accesso di tipo sicuro, costante e pervasivo alla disponibilità di capacità computazionale richiesta. Cit. Forster, Kesselman

Definizione e caratteristiche della griglia computazionale (sistemi distribuiti)

Funzionalità principali della griglia

Una griglia computazionale ha il compito di :
– sfruttare le risorse sottoutilizzate -> è necessario che fornisca gli strumenti necessari per sfruttare la capacità di calcolo e di storage sottoutilizzati
– fornire supporto allo sviluppo di applicazioni grid enabled
– favorire la collaborazione fra gli utenti
– fornire la possibilità di avere accesso a risorse aggiuntive
– permettere di bilanciare l’utilizzo delle risorse

Tipi di sistemi griglia

Esistono due modi principali di classificare un sistema di griglia:
1. in base alla sua distribuzione su scala geografica -> a seconda del numero di organizzazioni coinvolte si parlerà di :
– intragrid
– extragrid
– intergrid
2. in base ai requisiti di implementazione :
– data grid -> griglia finalizzata all’accesso sicuro ad una collezione di dati, anche eterogenei
– computazional grid -> griglia finalizzata ad aggregare potenza di calcolo
– access grid -> griglia progettata per supportare la collaborazione fra utenti

Gestione delle risorse

Risorse computazionali

Sfruttare le risorse computazionali può essere un obiettivo raggiungibile mediante diverse strade:
– eseguire una nuova applicazione su una macchina disponibile, piuttosto che schedularla in coda su una macchina occupata
– eseguire una applicazione di tipo parallel computing
– eseguire la stessa applicazione ma con diversi set di dati su macchine differenti
N.B. L’uso efficiente delle risorse di calcolo si misura in termini di scalabilità: l’ideale sarebbe che quest’ultima presentasse caratteristiche lineare (ad esempio al raddoppiare del numero di CPU il tempo si dimezza).

Risorse di immagazzinamento

L’utilizzo di uno spazio di archiviazione condiviso produce più di un vantaggio rispetto al classico uso delle unità di memoria:
– la capacità disponibile aumenta a dismisura
– aumentano le performance
– aumenta l’affidabilità
Per attuare questo tipo di politica è necessario ricorrere ai file system distribuiti, i quali offrono la possibilità di :
– nessun tipo di restrizione a livello di dimensione del “disco”
– utilizzo di un unico spazio dei nomi per i file
– data striping -> i dati vengono frammentati e divisi su diverse macchine in maniera tale da abbattere i tempi di accesso
– database mirroring -> è una tecnica che permette di mantenere una copia sempre allineata con il db principale, in maniera da garantire la continuità del servizio: in caso di guasto viene isolata la macchina non funzionante ed automaticamente eletta primaria quella che contiene la copia
– data replication
– journaling -> è una tecnica che si basa sul funzionamento del file di log nei database, che quindi permette, principalmente in seguito a cadute di tensione, di annullare le operazioni non completate ripristinando il sistema ad uno stato consistente, antecedente alle operazioni intraprese.

Job scheduling

L’assegnazione dei job alle diverse macchine è una mansione detta job scheduling, che nei sistemi distribuiti più semplici viene assegnata direttamente agli utenti, mentre nei sistemi più complessi viene svolta dal job scheduler o resource broker.
E’ utile pensare ad una gerarchia di job, in cui quelli a più alta priorità, che quindi necessitano l’esecuzione più degli altri, riservano (bloccano) le risorse necessarie per la loro esecuzione.
Nel caso non tutte le risorse siano state bloccate dai job ad alta priorità si può pensare di utilizzare l’algoritmo dello scavenging: quando una macchina è inattiva, lo comunica al nodo principale; esso tiene traccia di tutte le macchine libere, e quando si presenta un nuovo job decide (schedula) a quale nodo inviarlo.

Componenti sw di base

Infrastruttura di griglia

In generale le componenti dell’infrastruttura di griglia riguardano le seguenti macro – aree :
– security
– resource management
– information services
– data management

Security

Le componenti che implementano l’area di security devono offrire queste funzionalità:
– processi di autenticazione/accesso in sicurezza (SSL -> secure socket layer; TLS -> transfert layer security)
– gestione delle responsabilità
– scambio delle informazioni in sicurezza (SSL – TLS)
Il modello infrastrutturale sulla sicurezza in ambito di griglia è il GSI (grid security infrastructure).

Resource management

Le componenti di resource management hanno il compito di implementare diverse funzionalità, fra cui le più significative sono:
– resource discovery
– resource inventory
– fault isolation
– resource monitoring

Il modello più conosciuto di RM di griglia è il GRAM (grid resource allocation manager).

Information services

Questo tipo di area comprende tutte le funzionalità che sono adibite alla raccolta di informazioni sulle risorse

Data management

Le componenti di quest’area devono includere, oltre alle basilari funzionalità di memorizzazione,organizzazione e trasferimento, anche:
– spostamento dei dati in sicurezza
– meccanismi per lo storage virtuale
– meccanismi di replicazione e caching

Strato applicativo

Meta scheduler

E’ uno scheduler gerarchicamente più importante, in quanto permette di mettere d’accordo le politiche locali con le politiche delle griglia.

Resource broker

Il resource broker è un componente (applicativo) che si occupa di tenere traccia di quali sono le risorse occupate e quali sono quelle libere, inviando periodicamente un resoconto allo scheduler, così da permettergli di sapere sempre a chi attribuire l’esecuzione di un job.

Grid portals

I portali sono dei siti web che hanno la funzione principale di aggregare le aree di interesse.
In particolare, il loro compito è di fungere da punto di accesso per permettere:
– l’accesso in sicurezza per gli utenti
– l’accesso controllato per gli amministratori

Precedente Le principali architetture dei sistemi distribuiti Successivo Definizione e differenza tra processo e thread nei sistemi operativi e distribuiti

Lascia un commento

*