Elementi di sottosistemi disco di server

I sottosistemi di dischi e file di un computer di solito non sono oggetto di particolare attenzione da parte degli utenti. Il Winchester è una cosa abbastanza affidabile e funziona come da solo, senza attirare affatto l'attenzione di un normale utente.

Padroneggiando le tecniche di base per lavorare con file e cartelle, un tale utente li porta al pieno automatismo, senza pensare all'esistenza di strumenti aggiuntivi per la manutenzione di un disco rigido. La gestione del disco è completamente spostata sul sistema operativo.

Le difficoltà iniziano quando il file system mostra un chiaro degrado delle prestazioni o quando inizia a fallire. Un altro motivo per uno studio più approfondito di questo argomento: l'installazione simultanea di più "viti" su un PC.

Come ogni dispositivo complesso, un disco rigido necessita di una manutenzione regolare. Windows 7, sebbene si occupi di alcuni di questi problemi, non è in grado di risolvere tutti i problemi da solo. In caso contrario, i "freni" sono garantiti nel tempo. Come minimo, devi essere in grado di fare le seguenti cose:

  • Ripulire il file system dalla spazzatura. Il concetto di immondizia include file temporanei, cookie del browser che si sono proliferati, informazioni duplicate, ecc.
  • Deframmenta il tuo disco rigido. Il file system di Windows è costruito in modo tale che ciò che l'utente vede nel suo insieme siano in realtà frammenti separati di file sparsi sulla superficie magnetica del disco rigido, uniti in una catena: ogni frammento precedente conosce quello successivo. Per leggere il file nel suo insieme, è necessario mettere insieme queste parti, per le quali è necessario eseguire un gran numero di cicli di lettura da diversi punti della superficie. La stessa cosa accade durante la registrazione. La deframmentazione ti consente di raccogliere tutti questi pezzi in un unico posto.
  • Visualizzare e correggere le informazioni sulla sezione.
  • Essere in grado di aprire l'accesso a file e cartelle nascosti e di sistema.
  • Se necessario, essere in grado di lavorare con più "viti" contemporaneamente.

Ed esegui anche altre azioni utili. Nella nostra nota, non discuteremo l'intera gamma di questi problemi, ma ci soffermeremo solo su alcuni.

Come leggere le informazioni sulla partizione?

Per chi non lo sapesse, diamo una spiegazione: in Windows esiste uno "scatto".

È un eseguibile .msc che funziona come un normale exe. Tutti gli snap-in hanno un'interfaccia uniforme e sono basati sulla tecnologia COM, la base della struttura interna di questo sistema operativo.

Anche la finestra Gestione disco è un gioco da ragazzi. Puoi eseguirlo digitando nella finestra "Esegui" il suo nome diskmgmt.msc come mostrato nella figura seguente:

Di conseguenza, avremo una finestra dello snap-in stesso con l'intestazione "Gestione disco". Ecco come appare questa applicazione:

Questa interfaccia è intuitiva e semplice. Nel pannello superiore della finestra, vediamo un elenco di tutti i volumi (o partizioni) sulla "vite" con le relative informazioni su di essi, come ad esempio:

  • Nome della sezione.
  • Tipo di sezione.
  • La sua piena capacità.
  • Il suo stato (sezioni diverse possono avere stati diversi).
  • Spazio libero rimanente espresso in gigabyte e percentuale sul totale.

E altre informazioni. Il pannello inferiore contiene un elenco di unità e partizioni. È da qui che è possibile eseguire operazioni con volumi e unità. Per fare ciò, fare clic con il pulsante destro del mouse sul nome del volume e selezionare un'operazione specifica dal sottomenu "Azioni".

Il vantaggio principale dell'interfaccia è che tutto è raccolto qui in un mucchio: non è necessario vagare per diversi menu e finestre per eseguire i nostri piani.

Operazioni di volume

Analizziamo alcune operazioni non ovvie con le partizioni. Innanzitutto, discutiamo della transizione dal formato MBR al formato GPT. Entrambi questi formati corrispondono a diversi tipi di bootloader. MBR è un formato bootloader classico ma ormai obsoleto.

Ha limitazioni esplicite sia nel volume del volume (non più di 2 TB) che nel numero di volumi: non sono supportati più di quattro. Non confondere volume e sezione: questi sono concetti in qualche modo diversi l'uno dall'altro. Leggi le loro differenze su Internet. Il formato GPT si basa sulla tecnologia GUID e non presenta queste limitazioni.

Quindi, se hai un disco di grandi dimensioni, sentiti libero di convertire MBR in GPT. È vero, in questo caso, tutti i dati sul disco verranno distrutti: dovranno essere copiati in un'altra posizione.

La tecnologia di virtualizzazione ha permeato ovunque. Non ha nemmeno bypassato il file system. Se lo desideri, puoi creare e montare i cosiddetti "dischi virtuali".

Tale "dispositivo" è un normale file .vhd e può essere utilizzato come un normale dispositivo fisico, sia per la lettura che per la scrittura.

Ciò apre ulteriori possibilità per la catalogazione delle informazioni. Questo conclude la nostra storia. La gestione del disco in Windows 7 è un argomento abbastanza ampio e puoi scoprire molte cose nuove immergendoti in esso.

16.01.1997 Patrick Corrigan, Mickey Applebaum

Le opzioni di configurazione per i sottosistemi del disco del server sono diverse e, di conseguenza, la confusione è inevitabile. Per aiutarti a comprendere questo difficile problema, abbiamo deciso di considerare le principali tecnologie e la fattibilità economica del loro utilizzo. DISCO

Le opzioni di configurazione per i sottosistemi del disco del server sono diverse e, di conseguenza, la confusione è inevitabile. Per aiutarti a comprendere questo difficile problema, abbiamo deciso di considerare le principali tecnologie e la fattibilità economica del loro utilizzo.

Nel caso dei sottosistemi del disco del server, hai molte opzioni tra cui scegliere, ma la pletora rende difficile trovare il sistema che funziona meglio per te. La situazione è complicata dal fatto che nel processo di selezione dovrai fare i conti con una notevole quantità di informazioni false e pubblicità pubblicitaria.

La revisione delle principali tecnologie dei sottosistemi disco del server e la discussione sull'opportunità del loro utilizzo in termini di costo, prestazioni, affidabilità e tolleranza ai guasti dovrebbero aiutare a comprendere l'essenza di questo problema.

INTERFACCE DISCO

Sia che tu stia specificando un nuovo server o aggiornandone uno esistente, l'interfaccia del disco è un problema critico. La maggior parte delle unità oggi utilizza interfacce SCSI o IDE. Esamineremo entrambe le tecnologie, descriveremo le loro implementazioni e discuteremo come funzionano.

SCSI è un'interfaccia ANSI standardizzata che presenta diverse varianti. La specifica SCSI originale, ora denominata SCSI-I, utilizza un canale dati a 8 bit a una velocità dati massima di 5 Mbps. SCSI-2 consente diverse varianti, tra cui Fast SCSI con un canale dati a 8 bit e velocità di trasferimento fino a 10 Mbps; Wide SCSI con canale dati a 16 bit e velocità di trasferimento fino a 10 Mbps; e Fast/Wide SCSI con collegamento dati a 16 bit e velocità di trasferimento fino a 10 Mbps (vedere Tabella 1).

TABELLA 1 - OPZIONI SCSI

SCSI-1 Massima performance Larghezza del canale Frequenza Numero di dispositivi*
5 Mbps 8 cifre 5Mhz 8
SCSI-2
SCSI veloce 10 Mbps 8 cifre 10MHz 8
SCSI veloce/ampio 20 Mbps 16 cifre 10MHz 8; 16**
* i dispositivi supportati includono HBA ** con segnale di uscita sbilanciato; differenziale

Con l'avvento di "wide" Fast/Wide SCSI a 16 bit, le versioni a 8 bit sono state talvolta denominate "narrow" - Narrow SCSI. Recentemente sono emerse molte altre implementazioni SCSI: Ultra SCSI, Wide Ultra SCSI e SCSI-3. Rispetto alle opzioni più comuni, queste interfacce presentano qualche vantaggio prestazionale, ma poiché non sono ancora molto diffuse (il numero di dispositivi che utilizzano queste interfacce è molto limitato), non ne parleremo in questo articolo.

Il sistema di cavi SCSI-I è un bus di linea in grado di collegare fino a otto dispositivi, incluso un adattatore bus host (HBA). Questo design del bus è chiamato SCSI SCSI single-ended e la lunghezza del cavo può arrivare fino a nove metri. SCSI-2 (che sostituisce virtualmente SCSI-I) supporta sia SCSI single-ended che SCSI differenziale. Differential SCSI utilizza un metodo di segnalazione diverso rispetto a SCSI single-ended e supporta fino a 16 dispositivi su un loop lungo fino a 25 metri. Fornisce una migliore soppressione del rumore, il che significa prestazioni migliori in molti casi.

Un problema con SCSI differenziale è la compatibilità del dispositivo. Ad esempio, oggi esistono varietà limitate di unità a nastro compatibili SCSI differenziali e unità CD-ROM. I dispositivi differenziali e gli HBA sono in genere leggermente più costosi dei dispositivi single-ended, ma hanno il vantaggio di supportare più dispositivi per canale, loop più lunghi e, in alcuni casi, prestazioni migliori.

Quando si scelgono i dispositivi SCSI, è necessario essere consapevoli dei problemi di compatibilità. SCSI single-ended e SCSI differenziale possono utilizzare lo stesso cablaggio, ma i dispositivi single-ended e differenziali non possono essere combinati. Wide SCSI utilizza un sistema di cablaggio diverso rispetto a Narrow SCSI, pertanto non è possibile utilizzare dispositivi Wide SCSI e Narrow SCSI sullo stesso canale.

COME FUNZIONA SCSI

In SCSI, il controller del dispositivo (ad esempio, un controller del disco) e l'interfaccia con il computer sono dispositivi diversi. L'interfaccia computer, HBA, aggiunge un ulteriore bus di interfaccia al computer per il collegamento di più controller di dispositivo: fino a sette controller di dispositivo su un collegamento SCSI single-ended e fino a 15 su un collegamento differenziale. Tecnicamente, ogni controller può supportare fino a quattro dispositivi. Tuttavia, alle elevate velocità di trasferimento delle odierne unità ad alta capacità, il controller del dispositivo è in genere integrato nell'unità per ridurre il rumore e il rumore elettrico. Ciò significa che è possibile avere fino a sette unità su un collegamento SCSI single-ended e fino a 15 su un collegamento SCSI differenziale.

Uno dei vantaggi di SCSI è l'elaborazione di più comandi sovrapposti. Questo supporto I/O sovrapposto offre alle unità SCSI la possibilità di combinare completamente le proprie letture e scritture con altre unità nel sistema, in modo che diverse unità possano elaborare i comandi in parallelo anziché uno alla volta.

Poiché tutta l'intelligenza dell'interfaccia del disco SCSI risiede nell'HBA, l'HBA controlla l'accesso del sistema operativo ai dischi. Di conseguenza, l'HBA, non il computer, risolve i conflitti di traduzione e di accesso al dispositivo. In generale, ciò significa che, a condizione che vengano utilizzati driver scritti e installati correttamente, il computer e il sistema operativo non rilevano alcuna differenza tra i dispositivi.

Inoltre, poiché l'HBA controlla l'accesso tra il bus di espansione interno del computer e il bus SCSI, può risolvere i conflitti di accesso a entrambi fornendo funzionalità avanzate come un servizio di collegamento inattivo/ripristino. Break/Recovery consente al sistema operativo di inviare un comando di ricerca, lettura o scrittura a un particolare dispositivo, dopodiché l'unità viene lasciata a se stessa per eseguire il comando, in modo che un'altra unità sullo stesso canale possa ricevere il comando nel frattempo. Questo processo migliora notevolmente la velocità effettiva dei canali del disco con più di due dischi, in particolare quando i dati sono in striping o sparsi sui dischi. Un'altra caratteristica migliorata è lo scambio di dati sincrono, per cui il throughput complessivo del canale del disco e l'integrità dei dati vengono aumentati.

IDE

IDE è lo standard de facto ampiamente utilizzato nei PC basati su x86. Questa è solo una raccomandazione generale per i produttori, quindi tutti erano liberi di sviluppare un IDE specifico per i propri dispositivi e adattatori. Di conseguenza, prodotti di produttori diversi e persino modelli diversi dello stesso produttore si sono rivelati incompatibili tra loro. Una volta stabilite le specifiche, questo problema è quasi scomparso, ma l'incompatibilità è ancora possibile.

A differenza di SCSI, IDE mette l'intelligenza sul disco piuttosto che sull'HBA. L'HBA per l'IDE ha poca o nessuna intelligenza e invia semplicemente direttamente il bus del computer ai dischi. Senza un'interfaccia intermedia, il numero di dispositivi su un canale IDE è limitato a due e la lunghezza del cavo è limitata a tre metri.

Poiché tutta l'intelligenza dei dispositivi IDE risiede sui dispositivi stessi, uno dei dispositivi sul canale è designato come master del canale e il controller integrato sul secondo è disabilitato e diventa uno slave (chanell slave). Il dispositivo master controlla l'accesso attraverso il canale IDE a entrambi i dispositivi ed esegue tutte le operazioni di I/O per loro. Questa è una possibilità di conflitto tra i dispositivi a causa delle diverse implementazioni del fornitore dell'interfaccia IDE. Ad esempio, un'unità potrebbe essere progettata per funzionare con un particolare schema di controller, ma l'host a cui è connessa potrebbe utilizzare un tipo diverso di controller. Inoltre, le unità EIDE (Enhanced IDE) più recenti utilizzano un set esteso di comandi e tabelle di conversione per supportare unità con maggiore capacità e prestazioni più elevate. Se sono collegati a una vecchia unità master IDE standard, non solo perdono le loro funzionalità avanzate, ma potrebbero non fornirti tutta la capacità disponibile. Peggio ancora, possono segnalare la loro piena capacità al sistema operativo senza poterlo utilizzare, danneggiando potenzialmente le informazioni sul disco.

La possibilità di corruzione dei dati è dovuta al fatto che ogni sistema operativo percepisce le informazioni sulla configurazione del disco a modo suo. Ad esempio, DOS e il BIOS di sistema consentono solo una capacità massima del disco di 528 MB. NetWare e altri sistemi a 32 bit non hanno queste limitazioni e sono in grado di leggere un'intera unità IDE direttamente attraverso la sua elettronica. Quando crei più partizioni sullo stesso disco da diversi sistemi operativi, ognuno di essi vede la capacità e la configurazione in modo diverso e questo può portare a tabelle delle partizioni sovrapposte, che, a loro volta, aumentano significativamente il rischio di perdita di dati sul disco.

L'architettura IDE originale non riconosce unità superiori a 528 MB e può supportare solo due dispositivi per canale a una velocità di trasferimento massima di 3 Mbps. Per superare alcune delle limitazioni dell'IDE, l'architettura EIDE è stata introdotta nel 1994. EIDE supporta capacità e prestazioni più elevate, ma le sue velocità di trasferimento da 9 a 16 Mbps sono ancora più lente di quelle di SCSI. Inoltre, a differenza di 15 dispositivi per canale per SCSI, può supportarne un massimo di quattro per canale. Si noti inoltre che né l'IDE né l'EIDE forniscono funzionalità multitasking. Pertanto, non possono fornire lo stesso livello di prestazioni delle interfacce SCSI in un tipico ambiente server.

Sebbene originariamente progettato per i dischi, lo standard IDE ora supporta unità a nastro e CD-ROM. Tuttavia, la suddivisione di un canale con un'unità CD-ROM oa nastro può influire negativamente sulle prestazioni del disco. Nel complesso, i vantaggi in termini di prestazioni e scalabilità di SCSI lo rendono la scelta preferita rispetto a IDE o EIDE per la maggior parte delle applicazioni server di fascia alta che richiedono prestazioni elevate. Tuttavia, per le applicazioni entry-level in cui le prestazioni o l'estensibilità non sono un grosso problema, sarà sufficiente un IDE o EIDE. Allo stesso tempo, se è necessaria la ridondanza del disco, l'IDE non è l'opzione migliore a causa dei potenziali problemi associati all'approccio master-slave. Inoltre, dovresti fare attenzione alla possibile sovrapposizione della tabella delle partizioni e ai problemi di incompatibilità del dispositivo master-slave.

Tuttavia, ci sono alcuni casi in cui le interfacce IDE ed EIDE possono essere utilizzate in server di fascia alta. È pratica comune, ad esempio, utilizzare una piccola unità IDE per la partizione DOS sui server NetWare. È anche ampiamente praticato utilizzare unità CD-ROM con un'interfaccia IDE per il download del software.

SISTEMI A DISCO RIDONDANTI

Un'altra questione importante da discutere quando si definisce una specifica del server è la ridondanza. Esistono diversi metodi per migliorare l'affidabilità di un sistema a dischi multipli. La maggior parte di questi schemi di ridondanza sono varianti di RAID (acronimo di "Redundant Array of Inexpensive or Independent Disks"). La specifica RAID originale era stata progettata per sostituire i grandi e costosi dischi mainframe e minicomputer con array di dischi piccoli ed economici progettati per minicomputer, da cui la parola "poco costoso". Sfortunatamente, raramente vedi qualcosa di economico nei sistemi RAID.

RAID è una serie di implementazioni di array di dischi ridondanti per fornire diversi livelli di protezione e velocità di trasferimento dei dati. Poiché RAID prevede l'uso di array di dischi, SCSI è l'interfaccia migliore da utilizzare poiché può supportare fino a 15 dispositivi. Esistono 6 livelli RAID: da zero a quinto. Sebbene alcuni produttori pubblicizzino i propri schemi di ridondanza che chiamano RAID-6, RAID-7 o superiore. (RAID-2 e RAID-4 non sono sui server di rete, quindi non ne parleremo.)

Di tutti i livelli RAID, zero ha le massime prestazioni e la minima sicurezza. Presuppone almeno due dispositivi e dati sincronizzati che scrivono su entrambi i dischi, mentre i dischi sembrano un unico dispositivo fisico. Il processo di scrittura dei dati su più dischi è chiamato drive spanning e il metodo effettivo di scrittura di questi dati è chiamato data striping. Con lo striping, i dati vengono scritti su tutti i dischi blocco per blocco; questo processo è chiamato block interleaving. La dimensione del blocco è determinata dal sistema operativo, ma in genere varia da 2 KB a 64 KB. A seconda del design del controller del disco e dell'HBA, queste scritture sequenziali potrebbero sovrapporsi, determinando un aumento delle prestazioni. Ad esempio, RAID-0 da solo può migliorare le prestazioni, ma non fornisce protezione dai guasti. Se un'unità si guasta, l'intero sottosistema si guasta, causando in genere una perdita completa dei dati.

Una variante dell'interleaving dei dati è la dispersione dei dati. Come con lo striping, i dati vengono scritti in sequenza su più dischi che si riempiono. Tuttavia, a differenza dello striping, non è necessario scrivere su tutti i dischi; se il disco è occupato o pieno, i dati possono essere scritti sul successivo disco disponibile: ciò consente di aggiungere dischi a un volume esistente. Come lo standard RAID-0, la combinazione del popolamento del disco con lo striping dei dati migliora le prestazioni e aumenta le dimensioni del volume, ma non fornisce protezione dagli errori.

RAID-1, noto come mirroring del disco, comporta l'installazione di coppie di dischi identici, con ciascun disco nella coppia che è un'immagine speculare dell'altro. In RAID-1, i dati vengono scritti su due coppie di dischi identiche o quasi identiche: quando, ad esempio, un disco si guasta, il sistema continua a funzionare con un disco con mirroring. Se i dischi con mirroring condividono un HBA comune, le prestazioni di questa configurazione, rispetto a un singolo disco, saranno inferiori, poiché i dati devono essere scritti in sequenza su ciascun disco.

Novell ha ristretto la definizione di mirroring e ha aggiunto il concetto di duplexing. Secondo la terminologia Novell, il mirroring si riferisce alle coppie di dischi quando sono connesse a un server o computer tramite un singolo HBA, mentre la duplicazione si riferisce alle coppie di dischi con mirroring connesse tramite HBA separati. La ridondanza fornisce ridondanza per l'intero canale del disco, inclusi HBA, cavi e dischi, e fornisce alcuni miglioramenti delle prestazioni.

RAID-3 richiede almeno tre unità identiche. Questa tecnologia viene spesso definita tecnologia "n meno 1" (n-1) poiché la capacità massima del sistema è data dal numero totale di unità nell'array (n) meno un'unità per parità. RAID-3 utilizza un metodo di scrittura chiamato bit interleaving, in cui i dati vengono scritti su tutti i dischi bit per bit. Per ogni byte scritto sugli n-dischi, viene scritto un bit di parità sul "disco di parità". Questo è un processo estremamente lento perché prima che le informazioni sulla parità possano essere generate e scritte sul "disco di parità", i dati devono essere scritti su ciascuno degli n dischi dell'array. È possibile aumentare le prestazioni di RAID-3 sincronizzando i meccanismi di rotazione del disco in modo che funzionino rigorosamente al passo. Tuttavia, a causa dei limiti di prestazioni, l'uso di RAID-3 è diminuito drasticamente e oggi vengono venduti pochissimi prodotti server basati su RAID-3.

RAID-5 è l'implementazione più popolare di RAID nel mercato dei server di rete. Come RAID-3, richiede almeno tre dischi identici. Tuttavia, a differenza di RAID-3, RAID-5 esegue lo striping dei blocchi di dati senza utilizzare un disco dedicato per la parità. Sia i dati che il checksum vengono scritti sull'intero array. Questo metodo consente letture e scritture indipendenti sul disco e consente al sistema operativo o al controller RAID di eseguire più I/O simultanei.

Nelle configurazioni RAID-5, si accede al disco solo quando le informazioni di parità o i dati vengono letti/scritti da esso. Di conseguenza, RAID-5 ha prestazioni migliori rispetto a RAID-3. In pratica, le prestazioni di RAID-5 a volte possono eguagliare o addirittura superare le prestazioni dei sistemi a disco singolo. Questo miglioramento delle prestazioni, ovviamente, dipende da molti fattori, tra cui la modalità di implementazione dell'array RAID e le capacità native del sistema operativo del server. RAID-5 fornisce anche il più alto livello di integrità dei dati rispetto a qualsiasi implementazione RAID standard poiché sia ​​i dati che la parità sono scritti in formato striped. Poiché RAID-5 utilizza lo striping dei blocchi anziché lo striping dei bit, non vi è alcun vantaggio in termini di prestazioni per la sincronizzazione dello spin.

Alcuni produttori hanno aggiunto estensioni ai propri sistemi RAID-5. Una di queste estensioni è la presenza di un disco "hot-spare" incorporato nell'array. Se un'unità si guasta, l'hot spare sostituisce immediatamente l'unità in crash e copia i dati su se stessa con il ripristino della parità in background. Tuttavia, tieni presente che la ricostruzione di un disco RAID-5 comporta un grave calo delle prestazioni del server. (Per ulteriori informazioni sulle unità hot-swap e hot-spare, vedere la barra laterale "Hot" Drive Features.)

I sistemi RAID possono essere organizzati sia con l'aiuto del software caricato sul server e utilizzando il suo processore per il funzionamento, sia con l'aiuto di un controller RAID specializzato.

I sistemi RAID implementati dal software occupano una quantità significativa di risorse del processore di sistema, oltre alla memoria di sistema, il che riduce notevolmente le prestazioni del server. I sistemi RAID software sono talvolta inclusi come funzionalità del sistema operativo (come avviene con Microsoft Windows NT Server) o come componente aggiuntivo di terze parti (come avviene con NetWare e il sistema operativo Macintosh).

I sistemi RAID basati su hardware utilizzano un controller di array RAID dedicato; di solito ha il proprio processore, cache e software ROM per l'I/O del disco e la parità. Avere un controller dedicato per eseguire queste operazioni libera il processore del server per eseguire altre funzioni. Inoltre, poiché il software del processore e dell'adattatore è specificamente ottimizzato per la funzionalità RAID, fornisce migliori prestazioni di I/O su disco e integrità dei dati rispetto ai sistemi RAID basati su software. Sfortunatamente, i controller RAID basati su hardware tendono ad essere più costosi dei loro concorrenti basati su software.

SPECCHIATURA, DUPLICAZIONE E RIEMPIMENTO

Alcuni sistemi operativi, inclusi NetWare e Windows NT Server, consentono il mirroring del disco su più canali del disco, fornendo così un ulteriore livello di ridondanza. Come accennato in precedenza, Novell chiama quest'ultimo approccio duplicazione del disco. Se combinata con il riempimento del disco, la duplicazione può fornire prestazioni migliori rispetto ai sistemi a disco singolo e in genere può superare le prestazioni delle implementazioni hardware RAID-5. Poiché ciascuna metà di una coppia di dischi con mirroring utilizza un canale del disco separato, le scritture sui dischi, a differenza del caso in cui i dischi si trovano sullo stesso HBA, possono essere scritte contemporaneamente. Inoltre la duplicazione consente la ricerca divisa, il processo di divisione delle richieste di lettura tra i canali del disco per un'esecuzione più rapida. Questa funzione raddoppia le prestazioni di lettura del disco poiché entrambi i canali cercano blocchi diversi in parallelo dallo stesso set di dati. Riduce anche l'impatto sulle prestazioni durante la scrittura su disco, poiché un canale può leggere i dati mentre l'altro scrive.

NetWare supporta fino a otto canali disco (alcuni adattatori SCSI forniscono più canali), il che significa che è possibile avere più canali per ogni coppia duplicata. Puoi anche scegliere di organizzare fino a otto canali mirror separati. Windows NT Server fornisce anche il mirroring e la duplicazione basati su software, ma non supporta ancora le scritture parallele e le ricerche separate.

Ci sono quattro fattori principali da considerare quando si sceglie un sistema a disco ridondante: prestazioni, costo, affidabilità e protezione dai guasti.

In termini di prestazioni, le funzionalità integrate del sistema operativo del server sono un fattore importante, soprattutto quando entra in gioco la ridondanza del disco. Come affermato in precedenza, la duplicazione del disco NetWare combinata con il riempimento del disco offre prestazioni migliori rispetto al RAID hardware o software. Tuttavia, le prestazioni del RAID hardware sono generalmente superiori a quelle dei servizi disco incorporati di Windows NT Server. In generale, nel corso degli anni, la tecnologia e le prestazioni dei sistemi RAID sono migliorate costantemente.

Un altro potenziale problema di prestazioni con i sistemi RAID è il ripristino dei dati in caso di emergenza. Fino a poco tempo fa, se un'unità si guastava, era necessario disattivare l'array RAID per ripristinarla. Inoltre, se si desidera modificare la dimensione dell'array (aumentare o diminuire la sua capacità), è necessario eseguire un backup completo del sistema, quindi riconfigurare e reinizializzare l'array, cancellando tutti i dati durante questo processo. In entrambi i casi, il sistema non è disponibile per un certo periodo di tempo.

Per risolvere questo problema, Compaq ha sviluppato il controller Smart Array-II, che consente di espandere la capacità di un array senza reinizializzare la configurazione dell'array esistente. Altri produttori, tra cui Distributed Processing Technology (DPT), hanno annunciato che i loro controller svolgeranno funzioni simili in un futuro non troppo lontano. Molti dei nuovi array dispongono di utility per vari sistemi operativi che possono essere utilizzate per ripristinare l'array dopo aver sostituito un dispositivo danneggiato senza spegnere il server. Tuttavia, tieni presente che queste utilità consumano molte risorse del server e quindi influiscono negativamente sulle prestazioni del sistema. Per evitare questo tipo di difficoltà, il ripristino dell'impianto dovrebbe essere effettuato durante le ore non lavorative.

Ci sono state numerose discussioni nelle pubblicazioni del settore e dei fornitori RAID sulla differenza di costo tra mirroring, duplicazione e implementazioni RAID. Il mirroring e la duplicazione danno il 100% di raddoppio dei dischi e (se duplicati) degli HBA, mentre le implementazioni RAID hanno un HBA e/o un controller RAID più un disco in più rispetto alla capacità che si desidera ottenere. Secondo questi argomenti, il RAID è più economico perché il numero di dischi richiesti è inferiore. Ciò può essere vero se le limitazioni delle prestazioni delle implementazioni RAID software incluse nel sistema operativo, come quelle riscontrate in Windows NT, sono tollerabili per l'utente. Nella maggior parte dei casi, tuttavia, è necessario un controller RAID dedicato per ottenere prestazioni adeguate.

Le unità e gli adattatori SCSI standard sono relativamente economici, mentre un controller RAID di alta qualità può costare fino a $ 4.500. Per determinare il costo del tuo sistema, devi considerare le configurazioni ottimali per tutti i componenti. Ad esempio, se hai bisogno di circa 16 GB di spazio su disco indirizzabile, puoi implementare una configurazione con mirroring con due dischi da 9 GB per canale e ottenere un po' di capacità in eccesso. Nel caso di RAID-5, per motivi di prestazioni e affidabilità, è preferibile attenersi a cinque dischi da 4 GB per aumentare il numero di assi di striping dei dati e quindi le prestazioni complessive dell'array.

Con un sottosistema disco esterno, una configurazione mirror costerà circa $ 10.500 per 18 GB di spazio disponibile. Questa cifra si basa sui prezzi al dettaglio effettivi: $ 2000 per un'unità, $ 250 per un HBA e $ 300 per ogni sottosistema di disco esterno inclusi i cavi. Un sistema RAID-5 configurato con 16 GB di spazio indirizzabile utilizzando cinque dischi da 4 GB avrà un costo di circa $ 12.800. Questa cifra si basa sui prezzi al dettaglio effettivi per un array DPT RAID-5.

Molti sistemi RAID includono componenti "proprietari" progettati dal produttore. Come minimo, i "marchiati" sono il case e il pannello posteriore. Anche HBA e controller RAID sono spesso proprietari. Alcuni produttori utilizzano anche supporti e pneumatici non standard per i dischi. Qualcuno li fornisce separatamente a un prezzo ragionevole, qualcuno - solo insieme al disco e, di regola, a un prezzo elevato. Quest'ultimo approccio può essere costoso quando è necessario riparare o espandere il sistema. Un altro modo in cui il fornitore ti mette all'angolo è fornendo software di amministrazione e monitoraggio del disco che funziona solo con componenti specifici. Evitando, ove possibile, componenti non standard, di solito è possibile contenere i costi.

Quando si confronta l'affidabilità dei sistemi a disco ridondanti, è necessario considerare due fattori: la possibilità di un guasto del sistema o del guasto di uno qualsiasi dei suoi componenti e la possibilità di perdita di dati a causa del guasto di un componente. (Sfortunatamente, RAID o mirroring non possono salvarti dalla causa principale della perdita di dati: errore dell'utente!)

P = t / Tc,

dove t è il tempo di funzionamento e Tc è il tempo combinato tra i guasti dei componenti.

Quando si esegue senza guasti per un anno (8760 ore) e un'ipotetica Tc del disco di 300.000 ore, la probabilità di guasto diventa del 3%, ovvero poco meno di uno su 34. All'aumentare del numero di componenti, la probabilità di guasto di qualsiasi componente aumenta. Sia il RAID che il mirroring aumentano la possibilità di errore ma riducono la possibilità di perdita di dati.

La tabella 2, tratta dal bollettino Storage Dimensions intitolato "Fault-Tolerant Storage Systems for Continuous Networking", mostra la probabilità di errore calcolata utilizzando la formula precedente rispetto alla probabilità di perdita di dati per quattro dischi imbottiti, un array RAID di cinque dischi e otto dischi con mirroring. (Supponendo che tutte le unità abbiano le stesse dimensioni e che tutti e tre i sistemi forniscano la stessa capacità utilizzabile. Per un bollettino, visitare la pagina Dimensioni di archiviazione: http://www.storagedimensions.com/raidwin/wp-ovrvw.html.)

TABELLA 2 - STIME DI PROBABILITÀ DI FALLIMENTO

Sebbene il mirroring combinato con il riempimento dell'unità abbia una probabilità statistica più alta di un guasto del disco, ha anche una probabilità molto inferiore di perdita di dati in caso di guasto di un disco. Inoltre, con un sistema ridondante adeguatamente progettato, il tempo di ripristino può essere significativamente più breve.

Questo esempio non tiene conto di molti fattori. Per ottenere una cifra statisticamente corretta, è necessario calcolare il tempo medio tra i guasti di tutti i componenti del sistema disco, inclusi HBA, cavi a nastro, cavi di alimentazione, ventole e alimentatori. Certo, questi calcoli dicono solo cosa può accadere data l'affidabilità dei componenti proposti, ma non è affatto necessario che ciò accada.

Quando si sceglie un sistema di dischi, è necessario sapere chiaramente quali componenti non sono duplicati. Nei sistemi RAID, questo può includere HBA, controller RAID, alimentatori, cavi di alimentazione e cavi a nastro. Uno dei vantaggi della duplicazione con sottosistemi disco separati su ciascun canale è l'eliminazione della maggior parte dei singoli punti in cui possono verificarsi errori.

CONCLUSIONE

In generale, i dispositivi SCSI sono una scelta migliore per un sottosistema disco del server rispetto alle unità IDE o EIDE. È facile ottenere unità SCSI fino a 9 GB per unità, mentre le odierne unità EIDE hanno una capacità massima di circa 2,5 GB. Con più HBA dual-link, la capacità SCSI totale può facilmente superare i 100 GB, mentre il limite EIDE è di 10 GB. SCSI ha anche prestazioni migliori; inoltre, SCSI non soffre dei problemi che comporta l'approccio master-slave in IDE/EIDE.

Se hai bisogno di ridondanza del disco, ci sono diverse opzioni. La ridondanza di Novell NetWare unita al riempimento del disco fornisce prestazioni eccellenti e protezione dagli errori. Anche il RAID basato su hardware è una buona scelta, ma in genere ha prestazioni inferiori e costi più elevati. Se utilizzi Windows NT e le prestazioni sono importanti per te, il RAID hardware potrebbe essere la soluzione migliore.

Patrick Corrigan è Presidente e Senior Consultant/Analyst presso The Corrigan Group, una società di consulenza e formazione. Può essere contattato a: [e-mail protetta] o tramite Compuserve: 75170.146. Mickey Applebaum è Senior Network Consultant presso GSE Erudite Software. Può essere contattato a: [e-mail protetta]

INTRODUZIONE ALLE FUNZIONI DEL SOTTOSISTEMA DISCO

Funzioni "calde" dei sottosistemi del disco

I termini hot-swap, hot spare e hot-rebuild, ampiamente usati per descrivere le funzioni specifiche dei sottosistemi del disco, sono spesso fraintesi.

"Hot Swap" è una funzione che consente di rimuovere un disco guasto dal sottosistema del disco senza arrestare il sistema. Il supporto hot swap è una funzionalità hardware del sottosistema del disco, non RAID.

Nei sistemi sostituibili a caldo, i dischi rigidi sono in genere montati su slitte che consentono ai pin di messa a terra tra l'unità e il telaio di rimanere collegati più a lungo delle linee di alimentazione e del controller. Ciò protegge l'azionamento da danni causati da scariche statiche o arco elettrico tra i contatti. I dischi sostituibili a caldo possono essere utilizzati sia negli array RAID che nei sistemi di dischi con mirroring.

"Ripristino a caldo" si riferisce alla capacità del sistema di ripristinare automaticamente la configurazione originale del disco dopo la sostituzione di un disco guasto.

Gli hot spare sono integrati in un array RAID e in genere vengono lasciati inattivi fino a quando non sono necessari. A un certo punto, dopo che l'hot spare ha sostituito l'unità guasta, è necessario sostituire l'unità guasta e riconfigurare l'array.

Un sistema di dischi hot-swap con dischi hot spare non ha necessariamente la possibilità di essere ripristinato a caldo. "Hot Swap" consente semplicemente di rimuovere/installare un'unità in modo rapido, sicuro e semplice. Un "hot spare" sembrerebbe fornire una "ricostruzione a caldo" in quanto consente di sostituire immediatamente un'unità guasta in un array RAID, ma l'unità guasta deve ancora essere sostituita prima che sia necessario fornire un comando di ricostruzione. Oggi, tutti i sistemi RAID disponibili per la piattaforma PC richiedono un certo livello di intervento da parte dell'utente per iniziare il ripristino dei dati, almeno a livello di caricamento del modulo NLM sul server NetWare o premendo il pulsante di avvio nel menu dell'applicazione NT Server.



L'obiettivo delle architetture fault-tolerant è quello di fornire un sistema informativo con bassi costi di manutenzione e zero tempi di inattività. Una disponibilità insufficiente del sistema può comportare enormi perdite finanziarie per l'azienda. Tale importo è costituito dal costo della ridotta produttività dei dipendenti a causa di un guasto del sistema, dal costo del lavoro che non può essere eseguito fino al ripristino del sistema, dal costo della riparazione degli elementi guasti del sistema. Pertanto, quando si implementano applicazioni mission-critical, vale la pena considerare che il costo dei tempi di inattività dovuti a guasti del sistema giustifica bene l'investimento significativo nell'installazione di architetture tolleranti ai guasti.

Per costruire un sistema tollerante ai guasti, è necessario prestare attenzione a molti dei suoi componenti principali. L'affidabilità del sottosistema del disco è fondamentale. Diamo un'occhiata alle principali caratteristiche dei sottosistemi disco a tolleranza d'errore e soffermiamoci sulla loro implementazione utilizzando la tecnologia RAID.

Cosa c'è dietro la tolleranza agli errori del sottosistema del disco

Il sistema fault-tolerant rileva automaticamente i componenti guasti, quindi determina molto rapidamente la causa del guasto e riconfigura questi componenti.

Il punto chiave nella creazione di un sistema a tolleranza d'errore è fornire una ridondanza protettiva basata su hardware e software. Questa ridondanza implementa algoritmi di rilevamento degli errori utilizzati in combinazione con algoritmi diagnostici per identificare la causa dell'errore.

Esistono tre principali metodi di rilevamento degli errori. Il primo è il test iniziale (Initial Testing), che viene eseguito dal produttore prima dell'integrazione finale del sistema. In questa fase vengono identificati i difetti hardware che potrebbero verificarsi durante la produzione e l'assemblaggio dei componenti del sistema.

Il secondo metodo, Concurrent Online Testing, si riferisce al tempo di normale funzionamento del sistema. Questo metodo cerca principalmente quegli errori che potrebbero essere comparsi dopo l'installazione del sistema. Uno dei metodi di test online più conosciuti è il controllo di parità. Assicura che ogni byte di dati trasmesso attraverso un sistema informatico raggiunga intatto il componente successivo. Il metodo di parità rileva solo la presenza di un errore e non può determinare quale bit manca. Pertanto, viene utilizzato insieme a un codice di correzione degli errori, che determina esattamente quali dati vengono persi, consentendo al sistema di recuperarli rapidamente.

Infine, il terzo metodo di rilevamento degli errori è il test di ridondanza. Verifica che le funzionalità fail-safe del sistema funzionino correttamente.

Un sistema a tolleranza d'errore deve fornire il failover a un dispositivo alternativo in caso di guasto e anche informare l'amministratore di eventuali modifiche alla configurazione in modo che possa ripristinare i componenti guasti prima che i loro duplicati smettano di funzionare. Per fare ciò, il sistema deve inviare messaggi alla console dell'amministratore, registrare tutti gli errori su disco per la revisione periodica ed essere anche in grado di inviare un messaggio esterno se si è verificato un errore in assenza di un amministratore sul posto di lavoro.

Quando si sceglie un sistema a tolleranza d'errore, bisogna anche considerare la sua capacità di adattarsi alle nuove tecnologie, poiché i computer e i dispositivi disco con prestazioni più elevate appaiono a una velocità fantastica.

Infine, gli utenti non devono dimenticare che nella migliore implementazione della tolleranza ai guasti, devono eseguire periodicamente il backup dei dati su nastro o disco ottico per garantirne la sicurezza in caso di un disastro più globale del guasto di qualsiasi componente del sistema. È improbabile che la tolleranza ai guasti salvi in ​​caso di incendio, terremoto o bomba terroristica.

Sottosistemi di dischi RAID

Sebbene molti fattori influenzino le prestazioni del sistema, come un'interruzione dell'alimentazione o il surriscaldamento, nulla è più importante della protezione dei dati sulle unità. Un errore del disco provoca un tempo di inattività prolungato del sistema perché i dati devono essere ricostruiti prima che il programma possa essere ripreso.

Nel 1987, tre ricercatori dell'Università di Berkeley pubblicarono un documento che descriveva i metodi per fornire tolleranza ai guasti utilizzando array di unità disco piccole (3,5 e 5,25 pollici) che possono raggiungere le caratteristiche prestazionali di un singolo disco grande e costoso (Single Large Expensive Disk - SLED) nei mainframe. Questa tecnologia è chiamata RAID - Redundant Array of Inexpensive Disks (Redundant Array of Inexpensive Disks). Di seguito, esamineremo le principali caratteristiche dei sei livelli RAID.

I livelli RAID hanno caratteristiche prestazionali diverse e costi diversi. RAID 0 (metodo duplexing) è il più veloce, seguito da RAID 3 o RAID 5 (a seconda delle dimensioni dei record). Il costo di ciascun metodo dipende dalla quantità totale di spazio su disco richiesto. Ad esempio, per file di piccole e medie dimensioni, il mirroring può essere più economico di RAID 3 o 5.

Quando si sceglie un sottosistema disco a tolleranza d'errore, è necessario tenere presente anche il software per il ripristino automatico dei dati in caso di guasto. Quando si tratta di un file server LAN, è importante che i dati possano essere ripristinati con il minimo sforzo da parte dell'amministratore della LAN e con una perdita minima per gli utenti del server. Ad esempio, per RAID 0, la ricostruzione consiste semplicemente nel copiare i dati dall'unità secondaria all'unità ricostruita o sostituita. Per i sistemi RAID 3, 4 e 5, i produttori forniscono software che ripristina i dati per segmenti XOR. Questi programmi vengono eseguiti in background, consentendo agli utenti di continuare il proprio lavoro durante il recupero. I sistemi RAID con processori intelligenti incorporati sono in grado di ricostruire molto più velocemente rispetto alle loro controparti che utilizzano software eseguito sul processore del sistema principale.

I sistemi RAID tradizionali presentano innegabili vantaggi, ma creano anche molti problemi. Diversi livelli di RAID offrono prestazioni e costi diversi e gli amministratori devono trovare l'opzione migliore per un determinato sistema. Gli odierni sottosistemi di dischi RAID sono piuttosto complessi da gestire e configurare. Anche l'aumento dello spazio su disco e la riconfigurazione di un sottosistema è un processo lungo e laborioso.

Per far fronte a questi problemi, sono in fase di sviluppo nuove tecnologie di array di dischi con la possibilità di configurare automaticamente vari livelli che non rientrano più nel quadro tradizionale dei livelli RAID specificati. Esamineremo prodotti di questo tipo di Hewlett-Packard e EMC.

Hewlett-Packard AutoRAID

Dopo quattro anni di duro lavoro, la divisione storage di Hewlett-Packard ha sviluppato una nuova tecnologia che sfrutta la ridondanza del RAID tradizionale eliminando molti dei suoi difetti. Il sottosistema del disco AutoRAID seleziona automaticamente il livello RAID che soddisfa i requisiti degli utenti e implementa anche una serie di altre importanti funzionalità.

Il nucleo della tecnologia è un insieme di algoritmi del controller del sottosistema del disco per la gestione degli indirizzi dei blocchi di dati. Gli array di dischi tradizionali, come RAID 4 o 5, utilizzano algoritmi statici predefiniti per tradurre gli indirizzi dei blocchi di dati del computer host in indirizzi disco. Gli sviluppatori di AutoRAID hanno abbandonato questo approccio e hanno preferito utilizzare algoritmi dinamici per mappare in modo intelligente qualsiasi indirizzo di blocco sull'host a qualsiasi disco nell'array. Questo display può cambiare durante il funzionamento del sistema.

Gli algoritmi dinamici consentono al controller di spostare i dati archiviati in un array di dischi in qualsiasi posizione su qualsiasi disco senza influire sui dati o sul modo in cui vengono indirizzati dal computer host. Questa tecnologia rende possibile la conversione da un livello RAID a un altro. Sulla base delle informazioni disponibili sulle diverse caratteristiche delle prestazioni dei diversi livelli RAID, il sottosistema del disco si adatta dinamicamente per soddisfare al meglio le esigenze del computer host.

Un'altra importante possibilità di questo approccio è la semplice combinazione di dischi di diverse dimensioni e prestazioni in un sottosistema. Alcuni array di dischi tradizionali dispongono di funzionalità simili, ma in essi la configurazione di un sottosistema è un processo lungo e complesso. La configurazione in AutoRAID è semplice e veloce. Una delle attività dell'amministratore durante la configurazione di un array di dischi consiste nel creare dischi virtuali dallo spazio fisico disponibile. Gli utenti lavorano con dischi virtuali che il controller del sottosistema presenta loro come fisici. Quando si configura un array di dischi tradizionale, un amministratore deve conoscere le caratteristiche di ciascun disco fisico per poterli raggruppare insieme per creare dischi virtuali. AutoRAID libera l'amministratore da queste complessità. Ora gli basta conoscere la quantità totale di memoria nell'array di dischi. L'amministratore determina la quantità di memoria richiesta per ciascun disco virtuale, dopodiché gli algoritmi di mappatura raggrupperanno automaticamente i dischi fisici per garantire l'uso più efficiente dello spazio disponibile e fornire le massime prestazioni.

Anche la riconfigurazione di un sottosistema è facile. Uno dei motivi più comuni per la riconfigurazione è la necessità di aumentare lo spazio su disco. I sottosistemi RAID tradizionali risolvono questo problema in due modi. Il primo consiste nell'aggiungere dischi sufficienti per creare un nuovo gruppo di ridondanza. Questo metodo può essere piuttosto costoso. Nel secondo caso, l'amministratore salva tutti i dati su un disco di riserva, aggiunge nuovi dischi, riconfigura l'intero sottosistema e ripristina i dati. Ovviamente, questo processo richiederà molto tempo, durante il quale il sistema non funziona.

Sembra molto più facile da riconfigurare per aggiungere ulteriore spazio su disco. È sufficiente che l'amministratore installi nuovi dischi e crei un altro disco virtuale. Questo lavoro viene svolto in modo interattivo e richiede pochi secondi.

Questa facilità di riconfigurazione del sistema si basa sulla tecnologia di mappatura dinamica implementata in AutoRAID. Ogni disco nell'array viene trattato come una sequenza di blocchi. Man mano che vengono aggiunti nuovi dischi, i relativi blocchi vengono aggiunti al pool totale di memoria disponibile. Gli algoritmi di mappatura consentono al controller di utilizzare ciascun blocco in modo indipendente, con conseguente miglioramento delle prestazioni, dei costi e della disponibilità del sistema.

Una caratteristica unica della tecnologia AutoRAID è l'uso automatico e diretto di nuovi dischi per migliorare le prestazioni del sottosistema del disco. Quando viene installata una nuova unità, i dati vengono ridistribuiti uniformemente su tutte le unità del sottosistema. Questo processo è chiamato bilanciamento e viene eseguito in background tra le operazioni del computer host. Anche la distribuzione dei dati su tutti i dischi crea maggiori opportunità di eseguire più operazioni sui dati contemporaneamente. Per i sistemi di elaborazione delle transazioni, un aumento del numero di operazioni parallele significa un aumento delle prestazioni complessive.

Un'altra innovazione della tecnologia descritta si basa sul metodo di bilanciamento, il cosiddetto "hot spare attivo" (hot spare attivo). La funzione di un hot spare attivo è la stessa di un hot spare in un array tradizionale. Se un'unità si guasta, il controller del sottosistema avvia immediatamente un processo di ricostruzione che ricostruisce i dati persi sull'unità di riserva e ripristina la ridondanza del sottosistema. Negli array convenzionali, l'unità di riserva non viene utilizzata fino a quando non accade qualcosa al sistema, poiché contiene spazio di riserva per i dati recuperati. L'archiviazione temporanea viene talvolta creata su un'unità hot spare, ma deve essere eliminata non appena un'unità si guasta.

La tecnologia HP AutoRAID utilizza hot spare per migliorare le prestazioni del sottosistema. Il processo di bilanciamento distribuisce i dati utente su tutti i dischi del sistema, incluso il disco hot spare (più dischi vengono utilizzati per i dati, migliori sono le prestazioni). Allo stesso tempo, su ogni disco, una parte dello spazio è riservata al ripristino dei dati in caso di guasto. I dati ricostruiti durante il processo di ricostruzione del sistema verranno archiviati nell'area di riserva di ciascuno dei dischi nell'array.

EMC RAID-S

EMC, un produttore di sistemi di storage, offre una nuova implementazione della tecnologia RAID, RAID-S, che fornisce prestazioni e protezione dei dati migliorate ed elimina molte delle carenze dei sistemi RAID tradizionali.

RAID-S non può essere assegnato a nessun livello RAID. Utilizzando i nuovi progressi nell'hardware, nel software e nel display, EMC combina gli aspetti positivi di RAID 4, 5 e RAID 6 con le nuove tecnologie per creare un nuovo schema di protezione dei dati. Gli array di dischi RAID-S sono progettati per l'uso in sistemi di classe mainframe.

RAID-S consentirà agli utenti di creare sistemi di archiviazione che aiutano a creare il miglior equilibrio tra prestazioni, protezione dei dati e disponibilità del sistema. RAID-S ti consente di scegliere il livello RAID più adatto alle esigenze della tua organizzazione. Inoltre, EMC consente di combinare la tecnologia RAID-S, l'array di dischi RAID 1 e altri sistemi di storage su disco aziendali in un unico sistema.

Ad esempio, una grande banca può utilizzare sistemi di elaborazione delle transazioni online per servire i propri clienti, nonché sistemi di elaborazione batch per attività amministrative. Ogni applicazione ha i propri requisiti di archiviazione e accesso. I sistemi a disco EMC forniranno a ciascuno di essi il livello necessario di disponibilità e protezione dei dati.

Fasi di Eccellenza RAID

RAID 0. RAID 0 non è intrinsecamente tollerante ai guasti, ma può migliorare significativamente le prestazioni. In un sistema convenzionale, i dati vengono scritti in sequenza sul disco fino all'esaurimento della sua capacità. RAID 0 distribuisce i dati sui dischi dell'array come segue. Se, ad esempio, vengono utilizzati quattro dischi, i dati vengono scritti nella prima traccia del primo disco, quindi nella prima traccia del secondo disco, nella prima traccia del terzo e nella prima traccia del quarto. I dati vengono quindi scritti nella seconda traccia del primo disco e così via. Questa distribuzione dei dati consente di leggere e scrivere simultaneamente i dati su quattro dischi, aumentando così le prestazioni del sistema. D'altra parte, se una delle unità si guasta, sarà necessario ripristinare i dati anche su tutte e quattro le unità.

RAID 1. RAID 1 implementa il mirroring/duplex dei dati creando una seconda copia dei dati su un disco separato per ogni disco nell'array. Il duplexing, oltre ai dati sul disco, duplica anche la scheda e il cavo dell'adattatore, fornendo una ridondanza ancora maggiore. Il metodo di archiviazione di due copie dei dati è un modo affidabile per implementare un sottosistema di dischi a tolleranza d'errore e ha trovato ampia applicazione nelle architetture moderne.

RAID 2. RAID 2 distribuisce i dati sui dischi dell'array bit per bit: il primo bit viene scritto sul primo disco, il secondo bit viene scritto sul secondo disco e così via. La ridondanza è fornita da diversi dischi aggiuntivi in ​​cui è scritto il codice di correzione degli errori. Questa implementazione è più costosa perché richiede un sovraccarico di ridondanza maggiore: un array con da 16 a 32 dischi primari deve disporre di tre dischi aggiuntivi per memorizzare il codice di correzione. RAID 2 offre prestazioni e affidabilità elevate, ma il suo utilizzo è limitato principalmente al mercato dei computer di ricerca a causa degli elevati requisiti minimi di spazio su disco. I file server di rete attualmente non utilizzano questo metodo.

RAID 3. RAID 3 distribuisce i dati sui dischi dell'array byte per byte: il primo byte viene scritto sul primo disco, il secondo byte viene scritto sul secondo disco e così via. La ridondanza fornisce un disco aggiuntivo, dove viene scritta la somma dei dati modulo 2 (XOR) per ciascuno dei dischi principali. In questo modo, RAID 3 suddivide i record dei file di dati, memorizzandoli su più dischi contemporaneamente e fornendo letture e scritture molto veloci. I segmenti XOR sull'unità secondaria possono rilevare eventuali guasti del sottosistema del disco e un software speciale determinerà quale unità nell'array si è guastata. L'uso della distribuzione dei dati per byte consente la lettura o la scrittura simultanea di dati da più dischi per file con record molto lunghi. È possibile eseguire una sola operazione di lettura o scrittura alla volta.

RAID 4. RAID 4 è simile a RAID 3, tranne per il fatto che i dati vengono distribuiti sui dischi in blocchi. Un disco aggiuntivo viene utilizzato anche per memorizzare i segmenti XOR. Questa implementazione è utile per i file con scritture molto brevi e una maggiore frequenza di letture rispetto alle scritture, poiché è possibile eseguire più letture contemporaneamente con la giusta dimensione del blocco sul disco. Tuttavia, è ancora consentita una sola operazione di scrittura alla volta, poiché tutte le operazioni di scrittura utilizzano la stessa unità secondaria per calcolare il checksum.

RAID 5. RAID 5, come RAID 4, utilizza la distribuzione dei dati blocco per blocco, ma i segmenti XOR sono distribuiti su tutti i dischi dell'array. Ciò consente di eseguire più operazioni di scrittura contemporaneamente. RAID 5 è utile anche per file di scrittura brevi.

Migrazione in tempo reale

Una strategia di migrazione dei dati in tempo reale, in particolare, consente di archiviare i dati più attivi nel RAID 1, che offre le prestazioni più elevate, e i dati meno attivi nel più economico RAID 5. Nella maggior parte dei sistemi, i dati utilizzati attivamente sono una piccola parte di tutti informazioni memorizzate. Pertanto, la maggior parte dei dati verrà archiviata su RAID 5. Questa tecnologia offre agli amministratori di sistema due vantaggi fondamentali. Innanzitutto, li libera dal dolore di pensare a quale livello RAID scegliere. In secondo luogo, il sottosistema del disco ottimizza continuamente le prestazioni e il costo dell'archiviazione su disco, come nel caso in cui un amministratore dedichi tutto il suo tempo lavorativo alla messa a punto del sistema.

Caratteristiche dell'implementazione di RAID-S:

    RAID-S calcola il codice di correzione degli errori ridondante a livello di driver del disco, non a livello di controller del sottosistema. Ciò scarica il controller, liberandolo dall'elaborazione delle richieste di I/O e quindi migliora le prestazioni del sottosistema del disco.

    In RAID-S, i dati non vengono partizionati su dischi fisici come nelle tradizionali implementazioni RAID, ma vengono lasciati intatti sul disco. Ciò consente di utilizzare il monitoraggio esistente e le impostazioni del sottosistema I/O

    senza ulteriore formazione del personale.

    Poiché i dati non vengono distribuiti su più dischi, anche se più dischi si guastano contemporaneamente, le informazioni sui restanti volumi del gruppo RAID-S saranno comunque disponibili per le applicazioni sulla macchina host.

    RAID-S implementa una tecnologia avanzata ed è predisposto per una facile integrazione delle tecnologie future, proteggendo l'investimento a lungo termine degli utenti.

Il materiale è diviso in tre parti: A - teoria, B - pratica, C - creazione di un'unità flash multiboot.

A. Teoria generale (popolare).

1. Ferro.

Tutti i dispositivi fisici che utilizziamo ogni giorno per archiviare informazioni (HDD, CD-ROM, unità flash e persino floppy) sono dispositivi I/O a blocchi. Possono connettersi a un computer tramite varie interfacce: IDE, SATA, eSATA, USB. Il sistema operativo fornisce un unico modo trasparente per l'utente e il programmatore del software applicativo per leggere/scrivere informazioni da/su questi supporti.

I driver comunicano direttamente con l'hardware. Un driver è un programma caricato nel sistema operativo. È uno strato tra il sistema operativo e i dispositivi, che rappresenta il sistema operativo con un'interfaccia di programmazione standard per i dispositivi I/O a blocchi.

2. Dati sul disco fisico.

Questi dispositivi sono chiamati dispositivi a blocchi perché le informazioni vengono scritte e lette su di essi in blocchi (settori, cluster) di dimensioni fisse. La dimensione del blocco è un multiplo di 512 byte. L'approccio a blocchi è necessario per garantire l'elevata velocità del sottosistema del disco.

Il disco stesso è formattato (partizionato) a basso livello (in fabbrica). Il disco è formato da cilindri. Un cilindro è un cerchio su un piatto del disco. I primi cilindri si trovano al centro della piastra del disco, l'ultimo - sul bordo esterno. Ogni cilindro è diviso in settori. I settori organizzano i blocchi su un disco. Oltre ai dati stessi, le informazioni vengono registrate nei blocchi per il controllo degli errori. Il controller all'interno del disco rigido funziona con queste informazioni e non è visibile dall'esterno. Il driver invia comandi al controller del disco al livello "leggi 10 blocchi 10 cilindri 20 settori".

Tutti i dati del payload scritti sul supporto sono organizzati in sezioni. In Windows, ogni partizione è generalmente rappresentata come un'unità logica (C, D, E, ...). Su supporti rimovibili (chiavetta, CD, floppy), di norma, viene creata un'unica partizione, su dischi rigidi interni, al contrario, di solito sono presenti più partizioni. I dati in una partizione sono organizzati in un file system.

Ogni partizione può impostare in modo indipendente la propria dimensione del blocco, la dimensione del cluster. Regola l'equilibrio velocità/economia. Un blocco è la più piccola unità indirizzabile di spazio su disco. Un cluster combina diversi blocchi: questa è l'unità indirizzabile minima in una partizione.

Pertanto, viene stabilita la seguente gerarchia logica (dal basso verso l'alto): blocco, settore, cilindro - cluster - sezione - file, directory.

Nella maggior parte dei file system, un file può occupare uno o più cluster. Pertanto, se la dimensione del file è inferiore alla dimensione del cluster, il file occuperà l'intero cluster. A qualsiasi file su disco verrà allocato un numero di byte che è un multiplo della dimensione del cluster. Alcuni file system sono in grado di dividere un cluster in più file (packing), ma questa è piuttosto un'eccezione (per ora). Pertanto, maggiore è la dimensione del cluster, maggiore è la velocità e maggiore è lo spazio sprecato in cluster riempiti a metà.

3. Layout del disco fisico.

Anche la dimensione della partizione viene misurata in blocchi. Ecco perché, quando si partiziona un disco, la dimensione espressa in byte può essere leggermente corretta dal programma.

Poiché possono esserci più partizioni su un disco, devono essere elencate da qualche parte insieme ai limiti e alle proprietà di ciascuna partizione. Per questo viene utilizzata la tabella delle partizioni, che si trova all'inizio del disco fisico (l'inizio del disco è il suo primo blocco in base all'indirizzamento). Nel caso classico fa parte dell'MBR (master boot record), che occupa l'intero primo blocco. All'intera tabella delle partizioni vengono allocati 64 byte. Ogni voce della tabella è costituita dagli indirizzi dell'inizio e della fine della partizione, dal tipo di partizione, dal numero di settori nella partizione e dal flag "occupato" della partizione e occupa 16 byte. Pertanto, il numero massimo di partizioni su un disco è limitato a quattro (16 × 4 = 64).

È successo storicamente, ma nel tempo è diventato evidente che 4 sezioni non sono sempre sufficienti. La soluzione al problema è stata trovata. Quelle partizioni contrassegnate nell'intestazione del disco (nell'MBR) sono chiamate primarie (primarie). Dovrebbero comunque essere fino a 4 inclusi. Inoltre, è stato introdotto il concetto di sezioni estese (estese). Una partizione estesa include una o più sottopartizioni e non contiene un file system. Lui stesso è una sezione primaria a tutti gli effetti.

Poiché le sottopartizioni della partizione estesa non sono elencate nella tabella delle partizioni del disco, non possono essere contrassegnate come avviabili. La partizione avviabile è la partizione da cui inizia l'avvio del sistema operativo. È contrassegnato nella sua voce della tabella delle partizioni. Pertanto, solo una delle 4 sezioni primarie può essere contrassegnata. Una partizione estesa non può essere avviata perché non dispone di un file system.

Il markup di una sezione estesa è descritto all'inizio. Per analogia con l'MBR, esiste un EBR (Extended boot record), situato nel primo settore. Descrive il layout delle unità logiche di questa partizione estesa.

Un disco ottico e un'unità flash di solito hanno solo una partizione, poiché una divisione più piccola non ha senso lì. In genere, durante la masterizzazione di un CD, viene utilizzato il file system ISO 9660. Un'immagine disco con questo file system è chiamata immagine ISO. Viene spesso utilizzato isolatamente da un disco fisico come contenitore per il trasferimento dei dati, poiché qualsiasi immagine è una copia esatta bit per bit di un supporto fisico.

4. File system.

Ogni partizione del disco destinata all'archiviazione dei dati (ovvero tutte le partizioni tranne quella estesa) è formattata in base a un file system. La formattazione è il processo di creazione di una struttura di file system in uno spazio su un disco: una partizione. Il file system organizza i dati dell'utente sotto forma di file situati in una gerarchia di directory (cartelle, directory).

La struttura delle directory e dei file in una partizione è classicamente descritta in una tabella di file. In genere, una tabella occupa uno spazio all'inizio di una sezione. Dopo la tabella, vengono scritti i dati stessi. Pertanto, viene creato un sistema in cui la struttura è descritta separatamente e i dati (file) sono archiviati separatamente.

Se un file viene eliminato dal disco, viene rimosso dalla tabella dei file. Lo spazio che occupava sul disco è contrassegnato come libero. Ma non c'è pulizia fisica di questo posto. Quando si scrive su un disco, i dati vengono scritti nello spazio libero. Pertanto, se crei un nuovo file dopo averlo eliminato, è possibile che venga scritto al posto di quello eliminato. Con la formattazione rapida (utilizzata nella stragrande maggioranza dei casi) della partizione, viene sovrascritta anche solo la tabella. La procedura per il ripristino dei file dopo l'eliminazione o la formattazione si basa su queste funzionalità.

Durante il funzionamento, potrebbero verificarsi danni fisici al disco. Alcuni blocchi potrebbero diventare illeggibili. Questi blocchi sono chiamati "bads" (settore danneggiato). Se un disco danneggiato colpisce durante la lettura di un disco, si verifica un errore di I/O. A seconda di dove è apparso il blocco danneggiato e di quanti di essi sono apparsi, parte del contenuto dei file o parte della tabella dei file potrebbe andare persa.

Quando si tenta di scrivere su un blocco danneggiato, il controller del disco deve determinare il problema e allocare una nuova posizione sulla superficie del disco per questo blocco e rimuovere la vecchia posizione dall'uso (riposizionare il blocco danneggiato). Lo fa in modo invisibile al sistema operativo e ai driver, da solo. Ciò accade finché esiste una riserva di spazio per il trasferimento.

5. Lavora con un disco.

Il sistema operativo offre la possibilità di lavorare con i dischi a livello di file, partizione e dispositivo. L'implementazione specifica dell'accesso a ciascun livello dipende dal sistema operativo specifico. Ma in ogni caso, la cosa comune è che è possibile accedere a un disco fisico ea qualsiasi delle sue partizioni allo stesso modo di un normale file binario. Cioè, puoi scrivere dati su di esso, puoi leggere dati da esso. Tali funzionalità sono particolarmente utili per la creazione e il ripristino di immagini disco, la clonazione del disco.

Nei sistemi operativi UNIX, tutti i dispositivi di archiviazione sono rappresentati come file nella directory /dev:

    sda, sdb, sdc, ... - dischi fisici (HDD, inclusi esterni, unità flash, unità IDE);

    fd0, fd1 - flop.

Le partizioni su ciascuno dei dischi sono disponibili come sda1, sda2, sd3, ...

I dischi sono numerati nell'ordine in cui il BIOS li vede. Numerazione delle partizioni: nell'ordine in cui sono state create le partizioni sul disco.

Per creare un'immagine (un'immagine è una copia bit per bit di informazioni posizionate su un disco o in una partizione) di un intero disco (ad esempio, il primo secondo BIOS - sda), è necessario sottrarre i dati da / dev / sda a qualsiasi altro file creato appositamente per l'immagine utilizzando una copia sequenziale del contenuto del file di programma. Per scrivere un'immagine su un file, devi usare lo stesso programma per sottrarre i dati dall'immagine in /dev/sda. Per analogia, puoi creare/ripristinare un'immagine di una partizione (ad esempio, la prima sul primo disco - sda1) accedendo a /dev/sda1 invece di /dev/sda.

6. Montaggio.

Per "trasformare" un dispositivo disco in un insieme di file e directory a cui è possibile accedere, deve essere montato. Non esiste un montaggio su Windows. Lì, le partizioni sono semplicemente collegate alle unità logiche (C:, D:, E, ...). Informazioni su quale lettera assegnare a quale unità è memorizzata nel sistema operativo stesso.

In UNIX, il concetto di montaggio è fondamentale per lavorare con i dischi e offre molta più flessibilità rispetto a Windows. Il montaggio è il processo di collegamento di un'immagine del disco sorgente (il disco stesso o un file con la sua immagine) a una directory nel file system UNIX. Il file system in UNIX inizia da un punto: dalla directory principale (/) e non ci sono unità logiche C, D, E.

All'inizio dell'avvio del sistema operativo della famiglia UNIX, la partizione del disco contrassegnata come root (root) viene montata nella directory root /. Le directory dei servizi del sistema operativo situate nella radice del file system devono essere create sulla partizione del disco. Altre partizioni possono essere montate su di esse, oppure i file possono essere scritti direttamente nella partizione principale (montata su /).

Il punto chiave è che una sorgente immagine disco (un dispositivo a blocchi, un file immagine o una directory di un filesystem già montato) può essere montata in qualsiasi directory a qualsiasi livello di nidificazione del filesystem che inizia con /. Pertanto, diverse partizioni logiche di un disco fisico sono rappresentate da directory in un singolo file system, al contrario di file system separati di diversi dischi logici in Windows (dove ogni disco è trattato come un file system autonomo che ha la propria radice).

Per eseguire il montaggio, è necessario specificare il file system dell'immagine, le opzioni di montaggio e la directory a cui collegarsi.

Grazie a questa flessibilità, è possibile associare una directory a diverse posizioni nel file system, creare un'immagine del disco e montarla senza scriverla sul disco, aprire l'immagine ISO. E tutto questo viene fatto senza l'uso di utilità di terze parti.

7. MBR - area del bagagliaio.

All'inizio di un disco fisico, di solito c'è un MBR (record di avvio principale). Questa è l'area di avvio del disco. All'avvio del computer, il BIOS determina quale disco è il primario (primario) e cerca un MBR su di esso. Se viene trovato, il controllo viene trasferito ad esso. In caso contrario, viene visualizzato un errore che indica che il disco di avvio non è stato trovato.

Nell'MBR, oltre alla tabella delle partizioni (descritta sopra), è presente un codice di programma che viene caricato in memoria ed eseguito. È questo programma che dovrebbe determinare la partizione di avvio sul disco e trasferirvi il controllo. Il trasferimento del controllo è simile: il primo blocco (512 byte) della partizione di avvio viene inserito nella RAM ed eseguito. Contiene il codice del programma che avvia l'avvio del sistema operativo.

Poiché il controllo dal BIOS viene trasferito al programma registrato sul disco all'avvio del computer, è possibile rendere più flessibile la selezione della partizione di avvio. Questo è ciò che fanno i caricatori GRUB e LILO, ampiamente utilizzati nel mondo UNIX. Al momento non ha senso utilizzare l'ultimo bootloader sui computer moderni. Con GRUB, puoi dare all'utente la scelta di quale partizione avviare e come.

Il codice GRUB è troppo grande per entrare nell'MBR. Pertanto, viene installato su una partizione separata (di solito quella montata su /boot) con un file system FAT, FFS o Ext2. L'MBR contiene il codice che carica il codice GRUB da una partizione specifica e vi trasferisce il controllo.

GRUB stesso o con l'aiuto dell'utente determina da quale partizione dovrebbe avvenire l'avvio. Nel caso di una partizione Winsows, il controllo viene semplicemente trasferito ad essa nello stesso modo in cui lo sarebbe da un normale MBR. Nel caso di Linux, il bootloader esegue azioni più complesse. Carica il kernel del sistema operativo in memoria e gli trasferisce il controllo.

Eseguire il backup dell'area di avvio di un disco è facile come eseguire il backup di un intero disco o di una singola partizione. La conclusione è che l'MBR occupa i primi 512 byte del disco /dev/sda. Pertanto, per un backup MBR, è necessario sottrarre i primi 512 byte di /dev/sda in un file e per ripristinare, al contrario, è necessario sottrarre il file in /dev/sda.

Quando parliamo di risorse del sottosistema del disco, possiamo nominarne tre: la quantità di spazio, la velocità di lettura e scrittura in MB / se la velocità di lettura-scrittura nel numero di operazioni di input / output al secondo (Input / Output al secondo, IOPS o semplicemente I/O).

Parliamo prima del volume. Darò considerazioni che dovrebbero essere guidate e un esempio del calcolo.

Le considerazioni sono le seguenti:

Lo spazio su disco è occupato dagli stessi file del disco della macchina virtuale. Pertanto, devi capire di quanto spazio hanno bisogno;

Se intendiamo utilizzare dischi thin per tutta o parte della VM, allora dovremmo pianificare il loro volume iniziale e la successiva crescita (di seguito, per dischi sottili si intende il tipo corrispondente di file vmdk, ovvero la funzione di thin provisioning nell'ESX (i ) implementazione) Il fatto è che la funzionalità di thin provisioning può essere implementata su un sistema di archiviazione indipendentemente da ESX(i, e intendo non la funzionalità dei sistemi di archiviazione);

Per impostazione predefinita, per ogni macchina virtuale, l'hypervisor crea un file di paging di dimensioni pari alla sua RAM. Questo file di paging si trova nella cartella VM (impostazione predefinita) o su un LUN separato;

Se prevedi di utilizzare istantanee, dovresti anche pianificare un posto per loro. Le seguenti considerazioni possono essere prese come punto di partenza:

Se gli snapshot esisteranno per un breve periodo dopo la creazione, ad esempio solo per il tempo del backup, riserviamo loro il dieci percento della dimensione del disco della VM;

Se le istantanee verranno utilizzate con un'intensità media o imprevedibile, allora ha senso che depongano circa il 30% della dimensione del disco della VM;

Se gli snapshot per le macchine virtuali vengono utilizzati attivamente (il che è rilevante negli scenari in cui le macchine virtuali vengono utilizzate per il test e lo sviluppo), il volume che occupano può essere diverse volte maggiore della dimensione nominale dei dischi virtuali. In questo caso, è difficile dare consigli esatti, ma il raddoppio delle dimensioni di ogni VM può essere preso come punto di partenza. (D'ora in poi, uno snapshot si riferisce alla funzionalità corrispondente di ESX(i). Il fatto è che gli snapshot possono essere implementati su un sistema di storage indipendentemente da ESX(i), e non intendo la funzionalità dei sistemi di storage.)

Una formula di esempio è simile a questa:

Quantità di spazio per un gruppo di VM = Numero di VM x (Dimensione disco x T +

Dimensioni disco x S + Dimensioni memoria - Dimensioni memoria x R).

T - coefficiente di dischi sottili. Se tali dischi non vengono utilizzati, è uguale a 1. Se lo sono, è difficile fornire una stima astratta, a seconda della natura dell'applicazione nella VM. In sostanza, i dischi sottili occupano meno spazio di archiviazione rispetto alla dimensione nominale del disco. Quindi, questo coefficiente mostra quale percentuale della dimensione nominale è occupata dai dischi della macchina virtuale;

S è la dimensione degli snapshot. 10/30/200 percento, a seconda della durata dell'uso continuo;

R è la percentuale di memoria riservata. La memoria riservata non rientra nel file di scambio, il file di scambio viene creato in una dimensione inferiore. La sua dimensione è pari a: la quantità di memoria della VM meno la quantità di memoria riservata.

Dati di input stimati, ad esempio, vedere la tabella. 1.3.

Tabella 1.3. Dati per la pianificazione del volume del sottosistema del disco

Otteniamo una stima del volume richiesto:

Gruppo infrastruttura - 15 x (20 + 20 x 10% + 2 - 2 x 0) = 360 GB;

Server applicazioni - 20 x (40 + 40 x 10% + 2 - 2 x 0) = 920 GB;

Server critici - 10 x (100 + 100 x 10% + 6 - 6 x 0,5) = 1130 GB;

Test e temporaneo - 20 x (20 x 30% + (20 x 30%) x 200% + 2 - 2 x 0) = = 400 GB.

Pertanto, possiamo creare due LUN da 1,4 TB ciascuna e distribuire le macchine virtuali tra di loro in modo approssimativamente uguale. Oppure crea 4-5 LUN da 600800 GB ciascuno e posiziona macchine di gruppi diversi su LUN diversi. Entrambe le opzioni (e quelle intermedie) sono accettabili. La scelta tra di loro viene effettuata in base ad altre preferenze (ad esempio, organizzative).

Un'altra risorsa del sottosistema del disco è la prestazione. Nel caso delle macchine virtuali, la velocità in MB/s non è un criterio affidabile, perché quando un gran numero di macchine virtuali accede agli stessi dischi, gli accessi sono incoerenti. Per un'infrastruttura virtuale, una caratteristica più importante è il numero di operazioni di input/output (IOPS, Input/Output al secondo). Il sottosistema disco della nostra infrastruttura deve consentire più di queste operazioni rispetto a quanto richiesto dalle macchine virtuali.

Qual è il percorso di accesso del SO guest ai dischi fisici nel caso generale:

1. Il sistema operativo guest passa la richiesta al driver del controller SAS/SCSI (che ne emula l'hypervisor).

2. Il driver lo passa al controller virtuale SAS/SCSI stesso.

3. L'hypervisor lo intercetta, lo combina con le richieste di altre VM e passa la coda comune al driver del controller fisico (HBA in caso di FC e iSCSI hardware o controller Ethernet in caso di NFS e iSCSI software).

4. L'autista invia la richiesta al controllore.

5. Il controllore lo trasferisce al sistema di archiviazione, tramite una rete dati.

6. Il controller di archiviazione accetta la richiesta. Questa richiesta è un'operazione di lettura o scrittura da un volume LUN o NFS.

7. Un LUN è una "partizione virtuale" su un array RAID costituito da dischi fisici. In altre parole, la richiesta viene passata dal controller di archiviazione alle unità in quell'array RAID.

Dove può essere il collo di bottiglia del sottosistema del disco:

Molto probabilmente, a livello di dischi fisici. Il numero di dischi fisici nell'array RAID è importante. Più ce ne sono, migliori possono essere parallelizzate le operazioni di lettura-scrittura. Inoltre, più veloci (in termini di I/O) sono i dischi stessi, meglio è;

Diversi livelli di array RAID hanno prestazioni diverse. È difficile fornire consigli completi perché, oltre alla velocità, i tipi RAID differiscono anche per costo e affidabilità. Tuttavia, le considerazioni di base sono:

RAID-10 è l'uso più veloce ma meno efficiente dello spazio su disco, deducendo il 50% per il supporto della tolleranza agli errori;

RAID-6 è il più affidabile, ma soffre di basse prestazioni di scrittura (30-40% di RAID-10 al 100% di scrittura), sebbene la lettura da esso sia veloce quanto RAID-10;

RAID-5 è un compromesso. Le prestazioni di scrittura sono migliori di RAID-6 (ma peggiori di RAID-10), l'efficienza di archiviazione è maggiore (la capacità di un solo disco viene presa per la tolleranza agli errori). Ma RAID-5 soffre di seri problemi associati al lungo ripristino dei dati dopo un guasto del disco nel caso di moderni dischi ad alta capacità e grandi gruppi RAID, durante i quali rimane non protetto da un altro guasto (trasformandosi in RAID-0) e perde drasticamente in prestazione;

RAID-0, o "RAID with Zero Fault Tolerance", non può essere utilizzato per archiviare dati significativi;

Impostazioni del sistema di archiviazione, in particolare la cache del controller di archiviazione. Lo studio della documentazione del sistema di stoccaggio è importante per la sua corretta configurazione e funzionamento;

Rete dati. Soprattutto se prevedi di utilizzare l'archiviazione IP, iSCSI o NFS. Non voglio assolutamente dire che non è necessario utilizzarli: tali sistemi sono stati sfruttati per molto tempo e da molti. Quello che sto dicendo è che dovresti cercare di assicurarti che il carico trasferito nell'ambiente virtuale abbia una larghezza di banda di rete sufficiente con la larghezza di banda pianificata.

La velocità risultante del sottosistema del disco deriva dalla velocità dei dischi e dall'algoritmo per la parallelizzazione degli accessi al disco da parte del controller (ovvero il tipo di RAID e funzioni simili). Anche il rapporto tra il numero di operazioni di lettura e il numero di operazioni di scrittura è importante: prendiamo questo rapporto dalle statistiche o dalla documentazione per le applicazioni nelle nostre macchine virtuali.

Facciamo un esempio. Supponiamo che le nostre macchine virtuali creeranno un carico fino a 1000 IOps, il 67% dei quali sarà in lettura e il 33% in scrittura. Di quanti e quali dischi avremo bisogno in caso di utilizzo di RAID-10 e RAID-5?

In un array RAID-10, tutti i dischi sono coinvolti in operazioni di lettura contemporaneamente e solo la metà è coinvolta in operazioni di scrittura (poiché ogni blocco di dati viene scritto su due dischi contemporaneamente). In un array RAID-5, tutti i dischi partecipano alla lettura, ma ogni blocco viene scritto con un sovraccarico associato al calcolo e alla modifica del checksum. Puoi pensare a una singola scrittura su un array RAID-5 come causa di quattro scritture direttamente sui dischi.

Scrittura - 1000 x 0,33% = 330 x 2 (poiché solo la metà dei dischi è coinvolta nella scrittura) = 660 IOps.

In totale, abbiamo bisogno di 1330 IOps dai dischi. Se dividiamo 1330 per il numero di IOps dichiarato nelle caratteristiche prestazionali di un disco, otteniamo il numero richiesto di dischi in un array RAID-10 per il carico specificato.

Lettura - 1000 x 0,67% = 670 IOps;

Scrivi - 1000 x 0,33% = 330 x 4 = 1320 IOps.

In totale, abbiamo bisogno di 1990 IOps dai dischi.

Secondo la documentazione del produttore, un disco rigido SAS 15k gestisce 150-180 IOps. Un'unità SATA 7.2k - 70-100 IOps. Tuttavia, si ritiene che sia meglio concentrarsi su numeri leggermente diversi: 50-60 per SATA e 100-120 per SAS.

Concludiamo l'esempio.

Quando si utilizzano RAID-10 e SATA, sono necessari 22-26 dischi.

Quando si utilizzano RAID-5 e SAS, sono necessari 16-19 dischi.

È ovvio che i calcoli che ho fornito sono abbastanza approssimativi. I sistemi di archiviazione utilizzano vari tipi di meccanismi, principalmente la memorizzazione nella cache, per ottimizzare il funzionamento del sistema di archiviazione. Ma come punto di partenza per comprendere il processo di dimensionamento del sottosistema del disco, queste informazioni sono utili.

Dietro le quinte ci sono i metodi per ottenere il numero di IOPS richiesti per la VM e il rapporto lettura/scrittura. Per un'infrastruttura esistente (quando la si sposta su macchine virtuali), questi dati possono essere ottenuti utilizzando speciali strumenti di raccolta delle informazioni, come VMware Capacity Planner. Per l'infrastruttura pianificata - dalla documentazione per le applicazioni e dalla tua esperienza.