Tesina di approfondimento delle Architetture raid docente



Scaricare 163.1 Kb.
Pagina1/2
17.12.2017
Dimensione del file163.1 Kb.
  1   2


Corso di Modellazione e Valutazione degli impianti di elaborazione

Anno Accademico 2006-2007


Tesina di approfondimento delle

Architetture RAID

Docente:

Bruno Ciciani

Studenti:

Paolo Tornari

Paolo Bottone

HARD DISK

L'Hard disk o disco rigido può essere definito come un supporto magnetico la cui funzione primaria è di memorizzare i dati a lungo termine in un computer.

Può essere costituito da uno o più dischi in alluminio o vetro rivestiti di materiale ferromagnetico in rapida rotazione e da due testine per ogni disco, una per lato, le quali, durante il funzionamento si spostano rapidamente di pochi centesimi di nanometro sulla superficie del disco leggendo e scrivendo i dati. La testina è tenuta sollevata dall'aria mossa dalla rotazione stessa dei dischi che può superare i 15.000 giri al minuto nei modelli più costosi, ma generalmente va dai 5400 ai 7200 giri al minuto(rpm).L'hard disk è stato inventato nel 1956 dall'IBM. Il primo prototipo era costituito da 50 dischi del diametro di 24 pollici(circa 60 cm) e poteva immagazzinare circa 5 MB di dati. La denominazione originaria era "fixed disk" (disco fisso), il termine hard disk nacque intorno al 1970 per contrapposizione coi neonati "floppy disk". Nel 1963 sempre IBM ideò il meccanismo di sollevamento della testina mediante l'aria. Nel 1973 IBM introdusse il modello 3340 Winchester, denominato in questo modo per analogia con il popolare modello di fucile "30-30 Winchester" dato che era dotato di due dischi da 30 MB l'uno; questo nome entrò nell'uso comune come sinonimo di hard disk perché questo modello fu il predecessore di tutti gli hard disk moderni. Gli hard disk moderni hanno capacità e prestazioni enormemente superiori a quelle dei primi modelli, ma restano comunque molto al di sotto delle prestazioni dei componenti elettronici che compongono il resto del computer. Per questo motivo, l'hard disk risulta spesso essere la causa principale del rallentamento di un computer.

Gli hard disk moderni hanno capacità e prestazioni enormemente superiori a quelle dei primi modelli, ma restano comunque molto al di sotto delle prestazioni dei componenti elettronici che compongono il resto del computer. Per questo motivo, l'hard disk è spesso la causa principale del rallentamento di un computer.

I parametri prestazionali più significativi per un hard disk moderno sono:


  • la capacità

  • il tempo di accesso

  • la velocità di trasferimento

La capacità è in genere espressa in GB. anche se i produttori usano i gigabyte metrici, invece delle approssimazioni per potenze di due. Gli hard disk attualmente si trovano in commercio con capacità che vanno da 40 a 750 GB. La capacità può essere aumentata incrementando la densità delle informazioni memorizzate sui dischi, oppure usando dischi più capienti o impiegandone un numero maggiore. La rincorsa a unità sempre più capienti non conosce soste: il primato di capacità(750 GB) detenuto da maggio 2006 dal modello Barracuda 7200.10 di Seagate è stato superato dal modello Deskstar 7K1000 di Hitachi presentato il 5 gennaio 2007 composto da 1 TB (Terabyte) distribuiti su 4 piatti, con una densità di 23 miliardi di bit per centimetro quadro. Parallelamente è sceso anche il costo per GB, infatti il prezzo annunciato di questa unità risulta essere inferiore a 400$.

I




Illustrazione 1: Coppia di testine di un hard disk
l Seek Time è la variabile più importante nel determinare le prestazioni di un hard disk, ma spesso non viene menzionata dal produttore. Si tratta del tempo medio necessario perché un dato posto in una parte a caso dell'hard disk possa essere reperito; quindi può essere considerato come il tempo necessario a spostare la testina sulla traccia, ed è il fattore più critico poiché si tratta di un movimento meccanico e non di un impulso elettrico. Si evince quindi che il tempo impiegato dipende dal fatto che la testina deve spostarsi, e contemporaneamente il disco deve girare finché il dato interessante non si trova sotto di essa (latenza rotazionale). I produttori cercano perciò di realizzare testine sempre più leggere (che possono spostarsi più in fretta perché dotate di minore inerzia) e dischi che girano più velocemente. Il tempo di accesso tipico per un hard disk consumer è attorno ai 10 millisecondi. Per un hard disk ad alte prestazioni (15.000 rpm) è di 3 o 4 ms.

Il Transfer Time (velocità di trasferimento) è la quantità di dati che l'hard disk è teoricamente in grado di leggere o scrivere sul disco in un determinato tempo (in genere si prende 1 secondo come riferimento). Usare dischi che ruotano più velocemente o incrementare la densità di memorizzazione sulle superfici del disco, porta ad un miglioramento diretto della velocità di trasferimento. C'è da precisare che, a parte casi particolari, la velocità di trasferimento teorica viene raramente raggiunta ed è il tempo di accesso,come già precisato, quello che maggiormente influenza le prestazioni di un hard disk.

Il Latency Time (anche rotational latency) è il tempo necessario a posizionare il settore desiderato sotto la testina, e dipende dalla velocità di rotazione;sintetizzando quindi si ha:

Tempo di accesso: SeekTime + Latency + TransferTime.

Oltre alle tre viste sopra, altre caratteristiche che influenzano in misura minore le prestazioni di un hard disk sono:


  • il buffer di memoria

  • la velocità dell' interfacccia

Il buffer è una piccola memoria cache1 (in genere di alcuni MB ) posta a bordo dell'hard disk, che ha il compito di memorizzare gli ultimi dati letti o scritti dal disco. Nel caso che un programma legga ripetutamente le stesse informazioni, queste possono essere reperite nel buffer invece che sul disco. Essendo il buffer un componente elettronico e non meccanico, ha una velocità di trasferimento molto maggiore, e nel tempo, la capacità di questa memoria è andata sempre aumentando, tanto che attualmente 16 MB sono una dimensione abbastanza usuale.

L'interfaccia di collegamento tra l'hard disk e la scheda madre(o, più specificatamente, il controller) può influenzare le prestazioni perché specifica la velocità massima alla quale le informazioni possono essere trasferite da o per l'hard disk. Le moderne interfacce tipo ATA133, Serial ATA o SCSI possono trasferire centinaia di MB per secondo, molto più di quanto qualunque singolo hard disk possa fare, e quindi l'interfaccia non è in genere un fattore limitante. Il discorso può cambiare nell'utilizzo di più dischi in configurazione RAID, dove è più importante utilizzare l'interfaccia più veloce possibile, come per esempio la Fiber Channel da 2 Gb/s.



Tempi di servizio
Le relazioni che portano alla definizione del tempo di servizio del disco, nel caso di accesso randomico o sequenziale rispettivamente, sono le seguenti:

Dove, il fattore di utilizzazione si ricava come segue:

Ud = ArrivalRate x (RandomSeek + AverageLatency + AverageTransferTime)



Analisi della disponibilità

Le grandezze di interesse sono:



  • MTTF: Mean Time To Fault

  • MTTR: Mean Time To Repair

  • MTTDL: Mean Time To Data Loss

Pr[guasto al tempo x=t] =

MTTFdisco =

MTTDL = MTTFdisco

Principi di memorizzazione magnetica

La memorizzazione dell'informazione sulla superficie del supporto ferromagnetico consiste sostanzialmente nell'impressionamento di un determinato verso di magnetizzazione di un certo numero di domini di Weiss2. Il numero di domini di Weiss che costituiscono un singolo bit moltiplicato per la loro estensione superficiale media, rapportato alla superficie di archiviazione disponibile, fornisce la densità  d'informazione (bit al pollice quadro). Quindi riuscire a memorizzare una maggiore quantità  di dati sullo stesso disco, significa richiedere la riduzione del numero di domini che definiscono un singolo bit e quindi la riduzione dell'area di un singolo dominio magnetico. L'evoluzione continua della tecnologia degli hard disk è ormai vicina al limite inferiore tollerabile: quando infatti il numero di domini che definiscono un singolo bit si è avvicinato all'unità  e la loro area è dell'ordine di pochi nm2 (nanometri quadri), l'energia termica del sistema è diventata ormai paragonabile all'energia magnetica ed è sufficiente un tempo brevissimo a far invertire il verso della magnetizzazione del dominio (trattasi di una fluttuazione) e perdere in questo modo l'informazione contenuta.

La lettura dell'informazione magnetica in passato veniva affidata a testine induttive, avvolgimenti di rame miniaturizzati in grado di rilevare la variazione del flusso del campo magnetico statico, al transitare della testina tra un bit ed il successivo, secondo il principio di induzione magnetica. L'evoluzione che la spintronica ha portato nelle case di tutti sono state le testine magneto-resistive, basate su un dispositivo, la spin-valve, in grado di variare resistenza al mutare dell'intensità  del campo magnetico. Il vantaggio dato da queste testine risiede nella loro sensibilità , migliore rispetto alle vecchie testine induttive, e nella loro dimensione ridottissima, cosa che consente di seguire il passo delle evoluzioni verso il nanometro per quanto riguarda l'area di un singolo bit. Infine, il prossimo futuro vedrà lo sviluppo delle testine di lettura basate sulle magnetic tunneling junction, MTJ.

Principi logici di memorizzazione dell'informazione

I dati sono generalmente memorizzati su disco seguendo uno schema logico ben definito. Uno dei più diffusi è il cosiddetto CHS, acronimo per il termine inglese Cylinder/Head/Sector (Cilindro/Testina/Settore). In questa struttura i dati sono memorizzati tenendo presente le seguenti strutture:

Piatto: un hard disk si compone di uno o più dischi paralleli, di cui ogni superficie, detta "piatto", è destinata alla memorizzazione dei dati.

Traccia: ogni piatto si compone di numerosi anelli concentrici numerati, detti tracce.

Cilindro: l'insieme di tracce alla stessa distanza dal centro presenti su tutti i dischi è detto cilindro. Corrisponde a tutte le tracce aventi il medesimo numero, ma diverso piatto.

Settore: la suddivisione in "spicchi" uguali a cui è sottoposto ogni piatto.

Blocco: l'insieme di settori posti nella stessa posizione in tutti i piatti.

Testina: i dati sono acceduti sul disco in scrittura o in lettura dalla più volte citata testina. Ogni piatto ha associata una testina, la cui posizione è solidale con tutte quelle presenti su ogni piatto. In altre parole, se una testina è posizionata sopra una traccia, tutte le testine saranno posizionate nel cilindro a cui la traccia appartiene.

Questa struttura introduce una geometria del disco che consta in una serie di "coordinate" CHS, esprimibili indicando appunto i relativi cilindro, testina, settore. In questo modo è possibile indirizzare ciascun blocco di dati presente sul disco. Ad esempio, se un hard disk si compone di 2 dischi (o equivalentemente 4 piatti), 16384 cilindri (o equivalentemente 16384 settori per piatto) e 16 settori di 4096 bytes per traccia, allora la capacità del disco sarà di 4x16384x16x4096 bytes, ovvero 4 GB.

Il fattore di interleaving è il numero dei settori dell'hard disk che si deve saltare per leggere consecutivamente tutti quelli della traccia. Ciò dipende strettamente dalle caratteristiche prestazionali dell'hard disk stesso, cioè dalla velocità di rotazione del disco, dal movimento dei seekers con le relative testine, e dalla velocità di lettura-scrittura della stessa testina.

Tale processo è stato introdotto poiché la cpu, che riceve e rielabora i dati letti, compie questa azione ad una velocità inferiore della velocità di lettura-scrittura sull'hard disk, quindi, una volta rielaborati i dati provenienti da un settore, la testina si troverebbe già oltre l'inizio del settore successivo. Alternando i settori in modo regolare e leggendoli secondo lo specifico interleaving factor, si velocizza l'hard disk e il pc.

Struttura di un settore

Il settore è l'unità più piccola della formattazione di basso livello, cioè della struttura fisica dell'hard disk. Generalmente i settori sono raggruppati dal punto di vista logico in cluster per motivi di efficienza, quindi quando parliamo di cluster ci riferiamo a un gruppo di settori. Si ricordi che un file occupa sempre almeno un cluster. Per accedere a un settore bisogna specificare la superficie (platter), la traccia e il settore stesso. Il settore non è un semplice spazio sul disco memorizzabile, ma è datato anch'esso di una struttura particolare che linearmente può essere sintetizzata così(la dimensione di un settore è variabile tra 32 byte e 4 KB, solitamente 512 byte):



.

L'IRG sta per InterRecordGap, cioè la parte smagnetizzata della traccia che serve a preannunciare l'inizio del settore(o la sua fine). La parte nominata "SYN,SYN" sono dei Byte noti per il clock di lettura, cioè servono a sincronizzare un clock di lettura attuale, generato dal PLL e dal VCO combinati, con quello originale di scrittura. Al centro sta l'"HEADER", parte del settore dove sono memorizzate le informazioni necessarie alla localizzazione dello stesso settore su tutto l'hard disk, cioè dove in quel momento la testina sta leggendo-scrivendo. Sicuramente la parte di maggiore rilievo è quella "dati", cioè dove i dati sono stati impacchettati attraverso record in modo che il rapporto tra dati "utili" e le informazioni sia alto: devono essere maggiori i dati allocati nel settore che le informazioni di allocamento del settore stesso. Altra importante parte della struttura di un settore è il "BCC". Tale parte del settore è il risultato di una funzione calcolata sul blocco "dati" e la sua importanza è per la corretta interpretazione delle informazioni , cioè dei dati.



File System

Dopo aver visto come si organizzata e si struttura l'informazione su un supporto magnetico, in particolare sull'hard disk, vediamo ora come si organizza logicamente la memorizzazione, e più in generale la manipolazione dei dati.

L'elemento che si occupa di tutto questo è definito file system. Più esattamente il file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione, l'accesso e la lettura dei dati su un supporto magnetico, sia esso un cd-rom o un hard disk. Un file system può essere rappresentato anche graficamente tramite un browser di file dove si utilizza la simbologia delle cartelle per rappresentare le directories contenenti documenti o file di qualsiasi genere. Il file system realizza tipicamente due livelli di astrazione, che rendono le risorse di memorizzazione di massa facilmente utilizzabili dagli utenti. I dispositivi di archiviazione quindi, si presentano al sistema operativo come un array di blocchi di dimensione fissa, generalmente chiamati settori (gli stessi a cui si faceva riferimento su) dell'hard disk , tipicamente di 512 byte l'uno. Le operazioni disponibili sono la lettura e la scrittura di un blocco arbitrario, o talvolta di un insieme di blocchi.

Il primo livello di astrazione è quello che organizza i settori in un insieme di archivi (file) di dimensioni arbitrarie, che possono andare da zero all'intera dimensione disponibile del dispositivo. Ciascun file viene distribuito in un insieme di settori. Normalmente, l'utente vede solo un file, e non deve preoccuparsi di quali settori sono utilizzati per memorizzarlo. Le operazioni disponibili sono la lettura o la scrittura di un blocco di dati di dimensione arbitraria in un punto arbitrario del file. Il software di gestione del file system è responsabile dell'organizzazione di questi settori in file e di tenere traccia di quali settori appartengono a quali file, e quali invece non sono utilizzati. L'utente ha normalmente la totale libertà di creare nuovi file, cancellare file esistenti, liberando così i blocchi che questi occupavano, modificare file esistenti, cambiando così anche la loro dimensione, e quindi il numero di blocchi occupati. Non tutti i file system hanno bisogno di un dispositivo di archiviazione. Un file system può infatti essere usato per organizzare e rappresentare qualsiasi tipo di dato, sia che sia memorizzato o generato dinamicamente (ad esempio, da una connessione di rete).

Il secondo livello di astrazione è quello che permette di organizzare i file dando loro dei nomi gerarchici. I file system tipicamente hanno tabelle che associano i nomi dei file con i file, usualmente collegando il nome del file ad un indice in una tabella di allocazione dei file (file allocation table) di qualche genere, come la FAT di un file system MS-DOS, o un inode in un file system di tipo UNIX. Le strutture di cartelle possono essere ad un solo livello, oppure possono permettere una struttura gerarchica in cui delle cartelle possono contenere sottocartelle. In alcuni file system i nomi dei file sono strutturati con una speciale sintassi (per esempio estensioni o numeri di versione).

Il file system viene inoltre utilizzato per memorizzare i dati che servono a controllare l'accesso a ciascun file da parte dei processi. Criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati su liste di controllo di accesso (access control list o ACL) o capabilities. In realtà si è scoperta da qualche decina di anni l'inaffidabilità delle ACL, e per questo motivo i sistemi operativi moderni tendono a usare il meccanismo delle capabilities anche se i file system commerciali usano ancora le ACL. Una ACL permette di definire per ciascun elemento del file system di quali permessi (lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al sistema.

I file system tradizionali offrono degli strumenti per creare, muovere ed eliminare sia i file che le cartelle, ma non permettono di creare collegamenti addizionali alle cartelle (gli hard links di Unix ed NTFS), o di rinominare i collegamenti padre (".." nei sistemi Unix o DOS/Windows), e di creare collegamenti bidirezionali fra i file. Questi file system tradizionali hanno anche dei metodi per creare, muovere, cancellare e troncare i file, e per sostituire o aggiungervi in coda alcuni dati, mentre Invece non permettono di aggiungere dati o troncare in testa un file, impedendo l'inserzione o la cancellazione arbitraria di dati. Le operazioni possibili sono quindi molto asimmetriche e spesso risultano inefficienti in contesti particolari.

I diversi tipi di file system possono essere classificati in file system per dischi, file system di rete e file system per compiti speciali , anche se nel corso della storia informatica, è stata ideata una miriade di file system. I sistemi operativi moderni sono spesso in grado di accedere a diversi tipi di essi, spesso semplicemente installando un apposito driver. I tipi più diffusi sono FAT, FAT32 e NTFS per sistemi operativi dos/windows, e EXT, EXT2, EXT3, EXT4, ReiserFS e molti altri per GNU/Linux e HFS e HFS+ per MacOS.

Alcuni file system vengono poi utilizzati per compiti speciali che non rientrano direttamente nelle prime categorie, ma utilizzati dal sistema operativo per gestire archivi, lettura e scrittura di CD, caching, creare dinamicamente i file speciali per dare accesso alle periferiche effettivamente installate, accesso FTP , nomi lunghi, netnews, mostrare dati sullo stato del sistema e dei processi, ecc...

Sviluppi odierni

Oltre alla corsa delle case produttrici a dischi sempre più capienti, c'è anche quella alla miniaturizzazione dei supporti magnetici. Gli hard disk sono prodotti in due dimensioni standardizzate, i 3,5 pollici e 2,5 pollici. I primi sono utilizzati nei personal computer, i secondi nei computer portatili e dovunque ci sia poco spazio e/o potenza di alimentazione. Entrambi i formati sono utilizzati anche per realizzare memorie di massa esterne ai computer, collegabili tramite un cavo USB o FireWire, adottate quando sia necessario ampliare la capacita di memorizzazione del computer o quando occorra trasportare agevolmente grandi quantità di dati. Nel formato più piccolo l'alimentazione avviene tramite il cavo dell'interfaccia, quello maggiore fa uso di un alimentatore dedicato; fino all'autunno 2006, il primato di capacità per questo tipo di periferica lo detiene il costruttore LaCie, con unità da 2 Terabyte. Il miglior rapporto tra capacita e prezzo è rappresentato dai dischi da 320 Gigabyte. Gli hard disk da 2,5" oltre ad essere più piccoli e meno esigenti dal punto di vista dell'alimentazione, hanno capacità e prestazioni sensibilmente minori e costi maggiori rispetto a quelli da 3,5", ad esempio, una velocità di rotazione di 4600 o 5400 rpm, invece dei 7200 rpm o più dei dischi più grandi). Recentemente sono stati prodotti hard disk in formato compact flash di tipo II, grandi solo due o tre centimetri e spessi quanto una carta di credito, ma contenenti comunque alcuni GB di memoria. L'ideazione da parte di Hitachi nel 2005 del cosiddetto metodo di "registrazione perpendicolare" sembra aprire la strada ad una nuova generazione di hard disk, con capacità dieci volte maggiori a parità di dimensioni (o, parallelamente, dimensioni 10 volte minori a parità di capacità), grazie ad una maggiore densità con cui le informazioni vengono memorizzate nel materiale magnetizzato che costituisce i piatti dell'hard disk. Come rovescio della medaglia però gli hard disk più veloci sviluppano molto calore, tanto che alcuni devono addirittura essere raffreddati con ventole apposite, oltre a generare molto più rumore dovuto alla velocità di rotazione molto superiore.

Per maggiore flessibilità in alcuni hard disk la velocità della testina è impostabile via software e, per ridurre di qualche decibel il rumore, si adotta la bronzina come supporto dell'albero rotante al posto del cuscinetto.

La tecnologia: scsi,ide,ata,serial ata...

L'interfaccia più comunemente usata per gli hard disk è senza dubbio il tipo IDE, poi evolutasi in ATA . Un cavo piatto, solitamente grigio, è usato per connettere l'hard disk alla scheda madre. Spesso il cavo ha un terzo connettore per poter usare un altro hard disk (o altre periferiche ATA come i lettori cd) e per poter distinguere tra le due periferiche, si configurano una come master e una come slave. Negli ultimi anni con l'evoluzione delle periferiche di memorizzazione, l'interfaccia ATA ha mostrato i suoi limiti tecnologici e quindi è stata sostituita da una nuova versione chiamata SerialATA(SATA). Questa nuova interfaccia ha come principale caratteristica quella di trasmettere i dati in modo seriale e quindi invece di utilizzare quaranta fili per trasmettere i dati ne utilizza solo due, uno per trasmettere i dati e uno per ricevere, oltre a due fili per le masse anche se in realtà il cavo è a sette fili dato che lo standard utilizza anche alcuni fili come segnali di controllo. Recentemente nei dischi SATA è stata implementata una tecnologia ereditata dai dischi SCSI: l'NCQ (Native Command Queuing).

O


Illustrazione 2: Hard disk con connettore Serial ATA (il secondo da sinistra)



Illustrazione 3: Controller SCSI ISA per masterizzatori CD
gni disco invia una richiesta tramite la CPU e, se il dato non è presente in una delle cache, le testine dell'hard disk si posizionano in modo da potere iniziare la lettura dei dati. Se occorre accedere a una serie di dati non sequenziali distribuiti in varie zone del disco, le testine dovranno saltare da un cilindro all'altro, avanti e indietro. Per esempio, se la sequenza di accesso è 1, 4, 3, 5, 2, 6, 7 (immaginando che la sequenza numerica corrisponda all'angolo di rotazione), si perderanno parecchi cicli di rotazione prima che le testine abbiano visitato tutti i blocchi di dati. Con l'NCQ, l'hard disk crea una coda delle richieste di accesso, quindi le riordina, cioè ne cambia la sequenza, per ridurre al minimo il numero di rotazioni e il tragitto delle testine, in modo da eseguire tutti gli accessi nel più breve tempo possibile. La rotazione dei piatti e il posizionamento sulla traccia (seek) sono i due criteri per ottimizzare l'esecuzione dei comandi in coda, così da compiere il tragitto più breve per visitare tutti i blocchi di dati che la coda di comandi prevede di leggere e scrivere. Questo meccanismo di accodamento e riordino è paragonabile all'ottimizzazione delle consegne da parte di un postino( o del commesso viaggiatore come citato in molti testi) che debba consegnare centinaia di lettere in diverse zone di una città; anziché esaminare una consegna per volta in sequenza e saltare continuamente da un capo all'altro della città, il postino stabilisce un percorso che richiede il tempo minore per eseguire tutte le consegne. Per utilizzare al meglio l'NCQ occorre che le applicazioni stabiliscano code di comandi, cosa che non succede se è in esecuzione una singola applicazione che attende la risposta a una richiesta di dati prima di inviare la richiesta successiva.

Lo SCSI (acronimo di Small Computer System Interface) è un'interfaccia standard progettata per realizzare il trasferimento di dati fra diversi dispositivi interni di un computer (devices) collegati fra di loro tramite un bus. Per collegare un computer ad un host, il bus di collegamento ha bisogno di un host adapter SCSI che gestisce il trasferimento dei dati sul bus stesso. La periferica deve disporre di un controller SCSI, che è solitamente incorporato in tutte le periferiche, ad eccezione di quelle di più vecchia concezione. L'interfaccia SCSI viene per lo più usata per la comunicazione con unità hard disk, ma anche per connettere una vasta gamma di dispositivi, come scanner, stampanti, lettori e scrittori di CD e di DVD. In effetti lo standard SCSI è stato ideato per favorire l'intercambiabiltà e la compatibilità almeno in teoria di tutti i dispositivi. In passato l'interfaccia SCSI era molto diffusa in ogni tipologia di computer, mentre attualmente trova un vasto impiego solamente in workstation, server e periferiche di fascia alta ovvero con elevate prestazioni. I computer desktop e portatili sono invece di solito equipaggiati con l'interfaccia ATA/IDE (acronimi rispettivamente di Advanced Technology Attachment e Integrated Drive Electronics) per gli hard disk e con l'interfaccia USB (Universal Serial Bus) per altre periferiche di uso comune. Queste ultime interfacce sono più lente della SCSI, ma anche più economiche. Notare che l'USB utilizza lo stesso set di comandi dello SCSI per implementare alcune delle sue funzionalità.

Le principali implementazioni dello standard SCSI in ordine cronologico sono le seguenti:

Riepilogo caratteristiche dell'interfaccia SCSI:



Interfaccia

Velocità del bus (Transfer rate) (MByte/s)

Larghezza del bus (bits)

Max lunghezza cavi (metri)

Max numero di dispositivi

SCSI

5

8

6

8

Fast SCSI

10

8

1,5-3

8

Wide SCSI

20

16

1,5-3

16

Ultra SCSI

20

8

1,5-3

5-8

Ultra Wide SCSI

40

16

1,5-3

5-8

Ultra2 SCSI

40

8

12

8

Ultra2 Wide SCSI

80

16

12

16

Ultra3 SCSI

160

16

12

16

Ultra-320 SCSI

320

16

12

16

Ultra-640 SCSI

640

16

12

16

iSCSI

limitata solo dalle caratteristiche di rete

N/A

N/A

??

Presentiamo ora, qui di seguito, un breve elenco con le varie tipologie SCSI che si sono succedute, e che si usano ancora, con le rispettive caratteristiche:

SCSI-1: è la versione originale, derivata dal SASI, ed ufficialmente adottata dall'ANSI a partire dal 1986. SCSI-1 dispone di un bus a 8 bit, con un controllo di parità, funzionante in modo asincrono alla velocità di 3,5 MB/s, oppure in modo sincrono a 5 MB/s, con una lunghezza massima consentita dei cavi di collegamento pari a 6 metri, un notevole passo in avanti rispetto al limite di 0,45 metri dell'interfaccia ATA. Una variante del progetto iniziale prevedeva l'implementazione del cosiddetto HVD (High Voltage Differential) cioè 5 volt di livello logico per il segnale, caratteristica che consente di aumentare di molte volte la massima lunghezza consentita per i cavi di collegamento.

SCSI-2: Questa versione è stata lanciata nel 1989, dando in seguito origine alle varianti Fast-SCSI e Wide-SCSI. Il Fast-SCSI ha consentito di elevare la massima velocità di trasferimento dei dati (Transfer rate) fino ad un massimo di 10 MB/s, mentre il Wide-SCSI ha raddoppiato sia larghezza del bus, portata a 16 bit, che la velocità, portata a 20 MB/s. Tuttavia queste maggiori prestazioni hanno comportato una limitazione a 3 metri della lunghezza massima dei cavi di collegamento. SCSI-2 prevedeva inizialmente anche una versione a 32 bit del Wide-SCSI, che montava due bus a 16 bit, ciascuno con un proprio cavo di collegamento. Tuttavia questa variante è stata di fatto ignorata sia dai costruttori di dispositivi che dal mercato, tanto che è stata ufficialmente abolita dallo standard SCSI-3.

SCSI-3: Prima che la Adaptec, e in seguito la SCSITA, codificassero l'attuale terminologia, il primo dispositivo SCSI in grado di superare le prestazioni dello SCSI-2 era stato semplicemente chiamato SCSI-3. Questi dispositivi, noti anche come Ultra-SCSI e Fast-20-SCSI, furono lanciati nel 1992. La velocità del bus era raddoppiata a 20 MB/s per i sistemi a 8-bit e a 40 MB/s per i sistemi a 16-bit. La massima lunghezza dei cavi rimase 3 metri, ma l'Ultra-SCSI si guadagnò una pessima reputazione per la sua estrema sensibilità dovuta alla lunghezza e alle condizioni dei cavi, che spesso provocava malfunzionamenti a causa di piccoli difetti nei cavi stessi, nei connettori o nei terminatori.




Illustrazione 4: Hard disk IBM Ultra-SCSI (SCSI-3)

ULTRA-2:Questa versione è stata introdotta sul mercato nel 1997 ed è dotata del bus di tipo LVD (vedi sopra), e per questo motivo viene a volte chiamata LVD SCSI. L'impiego della tecnologia LVD ha permesso di aumentare la lunghezza massima dei cavi a 12 metri, mantenendo un'alta immunità contro i disturbi. In qualche applicazione speciale la velocità  è stata elevata fino a 80 MB/s. Tuttavia questa versione ha avuto vita breve, in quanto presto soppiantata dall'Ultra-3 (Ultra-160).



Architetture RAID
I sistemi RAID nascono con l’obiettivo di risolvere i problemi di bassa affidabilità e basse prestazioni dei dischi che ovviamente influiscono su tutto il sistema.

Prima di entrare nel merito delle varie architetture facciamo il punto su quelle che sono le problematiche.


Prestazioni degli HD
L’aumento delle prestazioni dei dischi, nel corso degli anni, è notevolmente inferiore a quella che si riscontra per la RAM e per gli altri componenti elettronici, a causa del fatto dipende fortemente dalla meccanica che li costituisce.

La legge di Amdhal :


S: speed-up effettivo del sistema

f: frazione di lavoro non dipendente dai dispositivo di I/O (Hard Disk)

k: speed-up apportato alla modalità veloce
afferma che lo speed-up effettivo di un sistema è limitato dall’interazione con i dispositivi do I/O.
Architetture AID
Per risolvere il problema delle basse prestazioni dei dischi, si è pensato di utilizzare le architetture AID (Arrays of Inexpensive Disks) che sono basate su un insieme di dischi indipendenti, organizzati in modo da essere visti dall’utilizzatore come un unico disco logico di grandi dimensioni, con il vantaggio di poter accedere in parallelo ai singoli dischi. Ciò permette alte frequenze di trasferimento (Data Transfer Rates), nel caso di accesso a file di grandi dimensioni, ed elevati tassi di I/O (I/O Rates), nel caso di file di piccole dimensioni. Questo tipo d'architetture permette, tra l’altro, di distribuire in maniera efficiente il carico tra i vari dischi o pile di dischi.

Purtroppo le architetture AID hanno una bassa affidabilità:




La soluzione RAID(Redundant Array of Indipendent Disks)
La soluzione al problema della scarsa affidabilità dell’architettura AID consiste nell’impiego di tecniche di ridondanza.

I benefici del RAID sono di aumentare l'integrità dei dati, la tolleranza ai guasti e/o le prestazioni, rispetto all'uso di un disco singolo.

L’architettura RAID impiega infatti:


  • Ridondanza, per aumentare l’affidabilità:

    • Codici di parità, codici di Hamming, codici di Reed-Solomon, …

  • Parallelismo e Data-Striping per aumentare le prestazioni:

    • concentrazione delle informazioni ridondanti in un numero piccolo di dischi

    • distribuzione uniforme dei dati su tutti i dischi, che consente in generale un bilanciamento del carico fra i dischi

Nel suo livello più semplice, il sistema RAID permette di combinare un insieme di dischi in una sola unità logica.

Il Data-Striping consiste nel partizionare i dati in segmenti di uguale lunghezza (STRIPES) e scritti su dischi differenti. La grandezza della partizione si chiama unità di striping. Le partizioni vengono solitamente distribuite fra i dischi usando un algoritmo round robin.

Ogni frammento sarà visto da ogni singolo disco come un’unica entità ed è il controller a livello superiore che gestisce la frammentazione e la ricostruzione del file di partenza.

In questo modo il sistema operativo, invece di vedere differenti dischi e differenti frammenti del file, vede solamente un disco e si disinteressa della frammentazione.

Quando la dimensione del file richiesto è superiore ad un'unità di striping, significa che i frammenti in cui è decomposto il file stesso, risiedono su più dischi; tali frammenti vengono letti in parallelo e ciò influisce positivamente sulle prestazioni.

Come già detto, una implementazione hardware del RAID richiede (almeno) un controllore RAID ad-hoc. Nei computer desktop, questo può essere una scheda di espansione PCI o può essere usato il controller presente nella scheda madre. Nei RAID più grandi, il controller e i dischi sono sistemati in un alloggiamento esterno. Questi dischi possono essere ATA, SATA, SCSI, o Fibre Channel, mentre il controllore collega il computer ospite con uno o più collegamenti ad alta velocità SCSI, Fibre Channel o connessioni iSCSI, sia direttamente sia come NAS. Questo controllore gestisce i dischi, e compie i controlli di parità (di cui molti livelli RAID hanno necessità). Questa opzione tende a dare le migliori prestazioni e a rendere la gestione nel sistema operativo molto più semplice. Le implementazioni hardware in genere supportano lo scambio a caldo (hot swapping), permettendo di sostituire un disco mentre il sistema rimane in esecuzione.

Sia i sistemi hardware che software supportano l'uso degli hot spare, dischi pre-installati che vengono usati immediatamente (e quasi automaticamente) quando un altro disco si rompe.

L’architettura RAID è tipicamente usata nei server, e di solito è implementata con dischi di identica capacità. Con il calo del costo dei dischi rigidi e con il diffondersi della tecnologia RAID nei chipset delle schede madri, il RAID è spesso offerto come opzione sia sui computer di fascia alta sia su quelli usati da utenti domestici, specialmente se dedicati a compiti che richiedono un grande immagazzinamento di dati, come il montaggio audio/video.

La vera definizione di RAID è stata oggetto di dibattito nel corso degli anni. L'uso del termine ridondante porta a molte discussioni se il RAID-0, di cui si parlerà sia "vero" RAID.




Livelli RAID standard

RAID 0

Non è una vera architettura RAID, infatti non prevede nessuna informazione di parità o ridondanza; l’organizzazione a stripe permette un accesso in parallelo dell’informazione in più dischi contemporaneamente permettendo così un miglioramento delle prestazioni rispetto a quelle ottenibili accedendo ad un singolo disco.
Dando un’ occhiata alla struttura interna di un disco , si può avere un’ idea più chiara dei vantaggi del RAID 0.
Se al sistema è collegato un solo disco, le testine che scorrono sui dischi possono essere anche più di una, ma sono mosse da un solo azionamento; si può accedere alle informazioni su una traccia  solo successivamente a quelle su una traccia diversa (in quanto le testine si muovono tutte assieme), quindi non è possibile recuperare il contenuto di diverse tracce anche se poste su diversi piatti.
La cosa diventa possibile implementando il RAID con la modalità striping.

Supponiamo di aver collegato 2 dischi ad un controller. Ogni disco avrà le proprie testine e la posizione delle testine sui piatti di un’ unità sarà indipendente da quella delle altre, che hanno motori di posizionamento diversi .



I dati vengono suddivisi in blocchi ed ogni blocco viene scritto su un diverso disco. La dimensione del blocco viene definita durante la configurazione del sistema . La richiesta di un dato più piccolo del blocco definito sarà gestita da un solo disco; se il dato é di dimensioni maggiori del blocco, esso sarà distribuito su più unità, con evidente vantaggio .


Supponiamo di aver stabilito la dimensione del blocco a 32K . Un dato grande 28K sarà scritto e letto da un solo disco; non ci saranno particolari incrementi di prestazione, a meno delle performances date dal controller, di solito dotato di processore autonomo, cach , ecc.

Se il dato é maggiore del blocco , ad esempio 125K , sarà scritto su due dischi : il primo conterrà due blocchi da 32k ed il secondo un blocco da 32K ed uno con i rimanenti 29K . Il vantaggio é evidente : sia la lettura che la scrittura coinvolgono contemporaneamente due unità separate che lavorano autonomamente . Ne risulta un notevole miglioramento del transfer rate.



Poiché ogni applicazione ha le sue necessità , diverse per quanto riguarda le dimensioni dei files , il blocco minimo andrà dimensionato in modo adeguato ; indicativamente delle dimensioni della più piccola richiesta del software .

RAID 0 é ideale per quelle applicazioni di supercomputing (che richiedono un intenso flusso di dati) , ad esempio video , TV e audio digitale , basate principalmente su files sequenziali di grandi dimensioni che devono essere trasferiti in tempi massimi definiti .
Anche applicazioni che richiedono un accesso intensivo ad un gran numero di dati in sequenze casuali , come data base o nel caso di file server e web server , ricava benefici anche consistenti dalla struttura RAID 0

Le implementazioni di sistemi RAID-0 su più di due dischi sono possibili (ed aumentano le prestazioni del sistema), ma l'affidabilità di un dato sistema RAID-0 è uguale all'affidabilità media dei dischi diviso per il numero di dischi presenti. Quindi l'affidabilità, misurata come tempo medio tra due guasti (MTBF) è inversamente proporzionale al numero degli elementi; cioè un sistema di due dischi è affidabile la metà di un disco solo. La ragione per la quale succede ciò è che il file system è diviso tra tutti i dischi. Quando un drive si guasta, il file system non può gestire una perdita di dati così grande visto che i dati sono divisi tra tutti i dischi. I dati possono essere spesso recuperati con qualche strumento, anche se saranno sicuramente incompleti e corrotti.



Analisi della disponibilità

Assumiamo le seguenti ipotesi:



  • guasti nei vari dischi indipendenti tra loro

  • possibilità di guasto invariante nel tempo

Le grandezze di interesse sono:

  • MTTF: Mean Time To Fault

  • MTTR: Mean Time To Repair

  • MTTDL: Mean Time To Data Loss

Pr[guasto al tempo x=t] =

MTTFdisco =



MTTFRAID0 = = MTTDL

Dalla quale risultà evidente la scarsa affidabilità del RAID 0. Un esempio numerico chiarisce ulteriormente le cose:

Consideriamo un RAID 0 con 100 dischi uguali, ciascuno cartatterizzato da:


MTTFdisco = 30000 h > 3 anni
Per l’array risulterà:
MTTFRAID0 = = 300 h 2 sett.

RAID 1

Offre un’elevata affidabilità, ma presenta il costo più elevato fra le architetture RAID.

Mentre RAID 0 ha come finalità principale il miglioramento delle prestazioni , RAID 1 ha come finalità quella della sicurezza dei dati.

Ogni singola informazione è memorizzata su ogni singolo disco con un codice di rivelazione d'errore (normalmente il codice di parità). Quest'architettura è in grado di tollerare la presenza di un singolo guasto ed ogni operazione di scrittura è fatta su due dischi. In fase di lettura il guasto di un disco è identificato tramite il codice di rivelazione d'errore utilizzato localmente, quindi si potrà utilizzare l’informazione memorizzata sul disco gemello. Quest'informazione è utilizzata anche per aggiornare l’informazione del disco diagnosticato guasto.

La struttura richiede 2 dischi , un primario ed un mirror (specchio) , che , come dice il nome , contiene una coppia speculare del disco primario.


Il controller provvede alla gestione del flusso dei dati.
L'impiego di un solo controller richiede che i dati siano scritti prima su una poi sull'altra unità, con una leggera riduzione delle prestazioni.

La modalità duplex su due canali od anche con due controller diversi (o due canali dello stesso controller), serve per incrementare ulteriormente sia la sicurezza che la velocità. 


Nel caso di guasto ad un driver , le richieste di accesso sono direzionate ed inviate all' altra unità ; così pure , nel sistema duplex a due controller o con controller a doppia porta , il guasto su un canale non blocca il funzionamento del sistema . Il duplex é , quindi , un ulteriore grado di sicurezza. .
RAID 1 é una delle modalità più comuni per ottenere una elevata affidabilità  nei PC con unità a disco rigido , in quanto la sicurezza del sistema prescinde dall' affidabilità dei singoli componenti .

Il mirroring dei dischi, possibile anche via software (RAID software) aumenta grandemente la sicurezza del sistema : i dati sono recuperabili senza problema se una delle unità si guasta, anche se si tratta di quella di boot. Anche le prestazioni, rispetto al singolo disco, sono incrementate, sopratutto durante i cicli di lettura, dove viene sfruttata la capacità del protocollo SCSI di gestire catene di comandi; inoltre, se il controller é dotato di cache, questa contribuisce al miglioramento delle prestazioni.

Il sistema RAID 1 È utile nei casi in cui la ridondanza è più importante che usare tutti i dischi alla loro massima capacità: infatti il sistema può avere una capacità massima pari a quella del disco più piccolo. In un sistema ideale, formato da due dischi, l'affidabilità aumenta di un fattore due rispetto al sistema a disco singolo.

Analisi della disponibilità

Assumiamo le seguenti ipotesi:



  • guasti nei vari dischi indipendenti tra loro

  • possibilità di guasto invariante nel tempo

Le grandezze di interesse sono:

  • MTTF: Mean Time To Fault

  • MTTR: Mean Time To Repair

  • MTTDL: Mean Time To Data Loss

Pr[guasto al tempo x=t] =

MTTFdisco =



MTTF(primo_guasto) = =


MTTFRAID_1=
Pr[secondo_guasto_entro_MTTR] = 1- exp



MTTDL = MTTFRAID_1 è elevatissimo in quanto si dovrebbero guastare contemporaneamente un disco e la sua copia

RAID 2

Un sistema RAID 2 divide i dati al livello di bit (invece che di blocco) e usa un codice di Hamming.

Il codice di Hamming è un codice per la correzione di errori chiamato come il suo inventore, Richard Hamming. Serve dunque per la ricerca e la correzione degli errori nella comunicazione numerica. Permette la rilevazione e la correzione di errori semplici (1 bit), e la sola rilevazione per errori doppi (2 bit).

Il codice di Hamming fa parte dei codici lineari, ed i suoi parametri sono , dove q è la grandezza dell'alfabeto utilizzato (ad esempio 2 se è binario) e m è il numero di bit usati.

Questi dischi sono sincronizzati dal controllore, in modo tale che la testina di ciascun disco sia nella stessa posizione di ogni disco. Questo sistema si rivela molto efficiente in ambienti in cui si verificano numerosi errori di lettura o scrittura.

Il vantaggio di questa architettura è che il numero di dischi ridondanti non è il doppio di quelli strettamente necessari a memorizzare l’informazione (come invece è vero nel RAID 1) ma è logaritmica al loro numero. Lo svantaggio risiede nel fatto che, per la lettura e la scrittura, è necessario accedere a tutti i dischi.

RAID 3

Un sistema RAID 3 usa una divisione al livello di byte; la ridondanza è garantita tramite un codice “prodotto”, dato dal doppio uso del codice di parità:

usa localmente il codice di parità per rivelare errori (come il livello 1); invece per ricostruire l’informazione persa, usa un solo disco in cui viene memorizzato il bit di parità dei bit disposti nella stessa posizione nei dischi utili.

Un esempio di codice prodotto è il seguente:

dischi di info disco parità

1 1 0 0 0

0 0 1 0 1

0 1 1 0 0

0 0 1 1 0


1 0 1 1 parità locale

se uno dei dischi si guasta , i dati sono comunque completamente accessibili : i dati mancanti sono ricalcolati sfruttando le informazioni contenute nel disco di parità.


Se il disco che si guasta è quello di parità , i dati non vanno persi , ma occorrerà sostituirlo per ripristinare la sicurezza del sistema.

Diversamente da RAID 1 , questo livello richiede un solo disco addizionale, indipendentemente dalla quantità di dischi che partecipano allo striping, con un evidente risparmio .

Anche in questo caso lo svantaggio risiede nel fatto che per la lettura e per la scrittura è necessario accedere a tutti i dischi.

ogni aggiornamento comporta un accesso al disco di parità che risulterà quindi il collo di bottiglia del sistema.



RAID 4

Il RAID-4 assomiglia molto al RAID-3 con l'eccezione che divide i dati al livello di blocchi invece che al livello di byte. Questo permette ad ogni disco appartenente al sistema di operare in maniera indipendente quando è richiesto un singolo blocco. Se il controllore del disco lo permette, un sistema RAID-4 può servire diverse richieste di lettura contemporaneamente.




  1   2


©astratto.info 2017
invia messaggio

    Pagina principale