Condividi tramite


Tolleranza di errore ed efficienza di archiviazione nei cluster locali di Azure e Windows Server

Questo articolo illustra le opzioni di resilienza disponibili e descrive i requisiti di scalabilità, l'efficienza di archiviazione e i vantaggi generali e i compromessi di ognuno di essi.

Overview

Storage Spaces Direct fornisce tolleranza agli errori, spesso chiamata "resilienza", per i tuoi dati. La sua implementazione è simile a RAID, tranne distribuita tra server e implementata nel software.

Come per RAID, esistono diversi modi in cui spazi di archiviazione possono farlo, che rendono compromessi diversi tra la tolleranza di errore, l'efficienza di archiviazione e la complessità di calcolo. Questi rientrano in genere in due categorie: "replicazione" e "parità", quest'ultima a volte chiamata "codifica di cancellazione".

Mirroring

Il mirroring garantisce la tolleranza di errore mantenendo più copie di tutti i dati. Questo è molto simile a RAID-1. Il modo in cui i dati vengono s stripati e inseriti non è semplice (vedere questo blog per altre informazioni), ma è assolutamente vero dire che tutti i dati archiviati usando il mirroring vengono scritti, nel suo complesso, più volte. Ogni copia viene scritta su hardware fisico diverso (unità diverse in server diversi) che si presume falliscano in modo indipendente.

È possibile scegliere tra due tipi di mirroring: "bidirezionale" e "tridirezionale".

Mirror bidirezionale

Il mirroring bidirezionale scrive due copie di tutto. L'efficienza di archiviazione è del 50%: per scrivere 1 TB di dati, sono necessari almeno 2 TB di capacità di archiviazione fisica. Analogamente, è necessario disporre di almeno due domini di errore hardware. Con Storage Spaces Direct, cioè due server.

two-way-mirror

Warning

Se sono presenti più di due server, è consigliabile usare invece il mirroring a tre vie.

Mirror a tre vie

Il mirroring a tre vie scrive tre copie di tutto. L'efficienza di archiviazione è del 33,3% : per scrivere 1 TB di dati, sono necessari almeno 3 TB di capacità di archiviazione fisica. Analogamente, sono necessari almeno tre domini di errore hardware, con Spazi di archiviazione diretta, ovvero tre server.

Il mirroring a tre vie può tollerare in modo sicuro almeno due problemi hardware (unità o server) alla volta. Ad esempio, se si riavvia un server quando improvvisamente un'altra unità o un altro server ha esito negativo, tutti i dati rimangono sicuri e continuamente accessibili.

three-way-mirror

Parity

La codifica della parità, spesso denominata "codifica di cancellazione", fornisce la tolleranza di errore usando l'aritmetica bit per bit, che può diventare notevolmente complicata. Il modo in cui funziona è meno ovvio del mirroring e ci sono molte grandi risorse online (ad esempio, questa guida di terze parti Dummies alla codifica di cancellazione) che può aiutare a ottenere l'idea. Basta dire che offre una migliore efficienza di archiviazione senza compromettere la tolleranza di errore.

Spazi di archiviazione offre due tipi di parità: parità "singola" e parità "doppia". Quest'ultima utilizza una tecnica avanzata chiamata "codici di ricostruzione locali" su larga scala.

Important

È consigliabile usare il mirroring per la maggior parte dei carichi di lavoro sensibili alle prestazioni. Per altre informazioni su come bilanciare le prestazioni e la capacità a seconda del carico di lavoro, vedere Pianificare i volumi.

Parità singola

La singola parità mantiene un solo simbolo di parità bit per bit, che fornisce tolleranza ai guasti contro un solo errore alla volta. È molto simile a RAID-5. Per usare la parità singola, sono necessari almeno tre domini di errore hardware; con Storage Spaces Direct, ciò significa tre server. Poiché il mirroring a tre vie offre maggiore tolleranza di errore alla stessa scala, è consigliabile usare la parità singola. Ma, se si insiste sulla scelta di utilizzarlo, è lì ed è pienamente supportato.

Warning

Sconsigliamo l'uso della parità singola perché può tollerare in modo sicuro un solo guasto hardware alla volta: se si riavvia un server mentre improvvisamente un'altra unità o un altro server fallisce, si verificherà un'interruzione. Se sono presenti solo tre server, è consigliabile usare il mirroring a tre vie. Se sono presenti quattro o più, vedere la sezione successiva.

Parità doppia

La parità doppia implementa Reed-Solomon codici di correzione degli errori per mantenere due simboli di parità bit per bit, fornendo così la stessa tolleranza di errore del mirroring a tre vie (ovvero fino a due errori contemporaneamente), ma con una migliore efficienza di archiviazione. È molto simile a RAID-6. Per usare la parità a doppio livello, sono necessari almeno quattro domini di errore hardware – con Storage Spaces Direct, ovvero quattro server. A tale livello, l'efficienza di archiviazione è 50%: per archiviare 2 TB di dati, sono necessari 4 TB di capacità di archiviazione fisica.

dual-parity

L'efficienza di archiviazione della doppia parità aumenta il numero di domini di errore hardware disponibili, dal 50% all'80%. Ad esempio, a sette (con Spazi di archiviazione diretta, ovvero sette server), l'efficienza passa al 66,7% per archiviare 4 TB di dati, è necessaria solo 6 TB di capacità di archiviazione fisica.

dual-parity-wide

Vedere la sezione Riepilogo per l'efficienza dei codici di ricostruzione dual party e locali su ogni scala.

Codici di ricostruzione locali

Storage Spaces introduce una tecnica avanzata sviluppata da Microsoft Research denominata "codici di ricostruzione locali" o LRC. Su larga scala, la doppia parità usa LRC per suddividere la codifica/decodifica in alcuni gruppi più piccoli, per ridurre il sovraccarico necessario per eseguire operazioni di scrittura o ripristino da errori.

Con le unità disco rigido (HDD) le dimensioni del gruppo sono quattro simboli; con unità SSD (Solid State Drive), le dimensioni del gruppo sono sei simboli. Ad esempio, ecco l'aspetto del layout con le unità disco rigido e 12 domini di errore hardware (ovvero 12 server): esistono due gruppi di quattro simboli di dati. Ottiene un'efficienza di archiviazione del 72,7%.

local-reconstruction-codes

È consigliabile seguire questa procedura dettagliata e leggibile in modo approfondito del modo in cui i codici di ricostruzione locali gestiscono vari scenari di errore e perché sono accattivanti, di Claus Joergensen.

Parità accelerata tramite mirroring

Un volume di Storage Spaces Direct può essere in parte a specchio e in parte a parità. Le operazioni di scrittura vengono inizialmente collocate nella porzione con mirroring e vengono successivamente trasferite nella parte di parità. In effetti, questo usa il mirroring per accelerare la codifica di cancellazione.

Per combinare mirroring a tre vie e doppia parità, sono necessari almeno quattro domini di errore, ovvero quattro server.

L'efficienza di archiviazione del mirroring con parità accelerata è intermedia tra ciò che si ottiene usando solo il mirroring o solo la parità e dipende dalle proporzioni scelte.

Important

È consigliabile usare il mirroring per la maggior parte dei carichi di lavoro sensibili alle prestazioni. Per altre informazioni su come bilanciare le prestazioni e la capacità a seconda del carico di lavoro, vedere Pianificare i volumi.

Summary

Questa sezione riepiloga i tipi di resilienza disponibili in Spazi di archiviazione diretta, i requisiti minimi di scalabilità per l'uso di ogni tipo, il numero di errori che ogni tipo può tollerare e l'efficienza di archiviazione corrispondente.

Tipi di resilienza

Resiliency Tolleranza di errore Efficienza di archiviazione
Mirror bidirezionale 1 50.0%
Mirror a tre vie 2 33.3%
Parità doppia 2 50,0% - 80,0%
Mixed 2 33,3% - 80,0%

Requisiti minimi di scalabilità

Resiliency Domini di errore minimi obbligatori
Mirror bidirezionale 2
Mirror a tre vie 3
Parità doppia 4
Mixed 4

Tip

A meno che non si usi la tolleranza di errore dello chassis o del rack, il numero di domini di errore fa riferimento al numero di server. Il numero di unità in ogni server non influisce sui tipi di resilienza che è possibile usare, purché soddisfino i requisiti minimi per Spazi di archiviazione diretta.

Efficienza della doppia parità per le implementazioni ibride

Questa tabella illustra l'efficienza di archiviazione dei codici di doppia parità e ricostruzione locale su ogni scala per le distribuzioni ibride, che contengono sia unità disco rigido (HDD) che unità SSD (Solid State Drive).

Domini di errore Layout Efficiency
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 4+2 66.7%
10 RS 4+2 66.7%
11 RS 4+2 66.7%
12 LRC (8, 2, 1) 72.7%
13 LRC (8, 2, 1) 72.7%
14 LRC (8, 2, 1) 72.7%
15 LRC (8, 2, 1) 72.7%
16 LRC (8, 2, 1) 72.7%

Efficienza della doppia parità per le implementazioni all-flash

Questa tabella mostra l'efficienza di archiviazione dei codici di doppia parità e ricostruzione locale su ogni scala per le distribuzioni all-flash, che contengono solo unità SSD .This table shows the storage efficiency of dual parity and local reconstruction codes at each scale for all-flash deployments, which contain only solid-state drive (SSD). Il layout di parità può usare dimensioni di gruppo maggiori e ottenere una migliore efficienza di archiviazione in una configurazione all-flash.

Domini di errore Layout Efficiency
2
3
4 RS 2+2 50.0%
5 RS 2+2 50.0%
6 RS 2+2 50.0%
7 RS 4+2 66.7%
8 RS 4+2 66.7%
9 RS 6+2 75.0%
10 RS 6+2 75.0%
11 RS 6+2 75.0%
12 RS 6+2 75.0%
13 RS 6+2 75.0%
14 RS 6+2 75.0%
15 RS 6+2 75.0%
16 LRC (12, 2, 1) 80.0%

Examples

A meno che non siano presenti solo due server, è consigliabile usare il mirroring a tre vie e/o la doppia parità, perché offrono una migliore tolleranza di errore. In particolare, assicurano che tutti i dati rimangano sicuri e costantemente accessibili anche quando due domini di guasto, ovvero, con Spazi di archiviazione diretta, due server, sono interessati da guasti simultanei.

Esempi in cui tutto rimane online

Questi sei esempi mostrano cosa può tollerare il mirroring a tre vie e/o la parità doppia.

  • 1. Un'unità persa (include unità cache)
  • 2. Un server perso

fault-tolerance-examples-1-and-2

  • 3. Un server e un'unità persa
  • 4. Due unità perse in server diversi

fault-tolerance-examples-3-and-4

  • 5. Più di due unità perse, a condizione che al massimo due server siano interessati
  • 6. Due server persi

fault-tolerance-examples-5-and-6

... in ogni caso, tutti i volumi rimangono online. Assicurati che il cluster mantenga il quorum.

Esempi in cui tutto passa offline

Nel corso della sua vita utile, Storage Spaces può tollerare qualsiasi numero di errori, perché ripristina la resilienza completa dopo ognuno di essi, assegnato tempo sufficiente. Tuttavia, al massimo due domini di errore possono essere interessati da errori in qualsiasi momento. Di seguito sono riportati esempi di ciò che il mirroring a tre vie e/o la doppia parità non possono tollerare.

  • 7. Unità perse in tre o più server contemporaneamente
  • 8. Tre o più server persi contemporaneamente

fault-tolerance-examples-7-and-8

Usage

Vedere Creare volumi.

Passaggi successivi

Per altre informazioni sugli argomenti menzionati in questo articolo, vedere quanto segue: