Vantaggi, svantaggi e requisiti per l'erasure coding
Prima di decidere se utilizzare la replica o la cancellazione del codice per proteggere i dati degli oggetti dalla perdita, è necessario comprendere i vantaggi, gli svantaggi e i requisiti per la cancellazione del codice.
Vantaggi dell'erasure coding
Rispetto alla replica, l'erasure coding offre maggiore affidabilità, disponibilità ed efficienza dello storage.
-
Affidabilità: misurata in base al numero di guasti simultanei che possono essere sostenuti senza perdita di dati.
-
Replicazione: più copie identiche di oggetti vengono archiviate su nodi diversi e in più siti.
-
Codifica di cancellazione: un oggetto viene codificato in frammenti di dati e parità e distribuito su molti nodi e siti. Questa dispersione garantisce protezione contro i guasti sia del sito che del nodo.
-
-
Disponibilità: la capacità di ottenere oggetti se i nodi di archiviazione falliscono o diventano inaccessibili. Rispetto alla replicazione, la codifica di cancellazione garantisce una maggiore disponibilità a costi di archiviazione comparabili.
-
Efficienza di archiviazione: per una disponibilità e un'affidabilità simili, gli oggetti con codice di cancellazione utilizzano meno spazio su disco rispetto agli oggetti replicati. Ad esempio, un oggetto da 10 MB replicato su due siti consuma 20 MB di spazio su disco (due copie), mentre un oggetto codificato con cancellazione su tre siti con uno schema di codifica con cancellazione 6+3 consuma solo 15 MB di spazio su disco.
Lo spazio su disco per gli oggetti con codifica in cancellazione viene calcolato come dimensione dell'oggetto più l'overhead dello storage. La percentuale di overhead dello storage è il numero di frammenti di parità diviso per il numero di frammenti di dati.
Svantaggi della codifica erasure
Rispetto alla replica, l'erasure coding presenta i seguenti svantaggi:
-
È consigliato un maggior numero di siti e nodi di storage, a seconda dello schema di erasure coding. Al contrario, se si replicano i dati degli oggetti, è necessario un solo nodo di storage per ogni copia. Vedere "Schemi di erasure coding per pool di storage contenenti tre o più siti" e "Schemi di erasure coding per pool di storage a sito singolo".
-
Aumento dei costi e della complessità delle espansioni dello storage. Per espandere un'implementazione che utilizza la replica, è necessario aggiungere capacità di storage in ogni posizione in cui vengono eseguite le copie a oggetti. Per espandere un'implementazione che utilizza il erasure coding, è necessario prendere in considerazione sia lo schema di erasure coding in uso sia la capacità dei nodi di storage esistenti. Ad esempio, se si attende che i nodi esistenti siano pieni al 100%, è necessario aggiungere almeno
k+m
nodi storage, ma se si espandono quando i nodi esistenti sono pieni al 70%, è possibile aggiungere due nodi per sito e massimizzare la capacità dello storage utilizzabile. Per ulteriori informazioni, vedere "Aggiungere capacità di storage per gli oggetti con codifica per la cancellazione". -
L'utilizzo di erasure coding in siti distribuiti geograficamente aumenta le latenze di recupero. I frammenti di oggetto per un oggetto sottoposto a erasure coding e distribuito tra i siti remoti richiedono più tempo per il recupero su connessioni WAN rispetto a un oggetto replicato e disponibile in locale (lo stesso sito a cui si connette il client).
-
Quando si utilizza il erasure coding in siti distribuiti geograficamente, il traffico di rete WAN è più elevato per recuperi e riparazioni, in particolare per oggetti recuperati di frequente o per riparazioni di oggetti su connessioni di rete WAN.
-
Quando si utilizza la codifica di cancellazione su più siti, la velocità massima di elaborazione degli oggetti diminuisce drasticamente all'aumentare della latenza di rete tra i siti. Questa diminuzione è il risultato di una diminuzione della velocità di trasmissione della rete TCP, che influisce sulla velocità con cui il sistema StorageGRID può archiviare e recuperare frammenti di oggetti.
-
Maggiore utilizzo delle risorse di calcolo.
Quando utilizzare la codifica di cancellazione
Utilizzare la codifica di cancellazione per i seguenti requisiti:
-
Oggetti di dimensioni superiori a 1 MB.
L'erasure coding è più adatto per oggetti superiori a 1 MB. Non utilizzare la codifica erasure per oggetti di dimensioni inferiori a 200 KB per evitare l'overhead di gestione di frammenti con codifica erasure molto piccoli. -
Storage a lungo termine o a freddo per contenuti recuperati raramente.
-
Elevata disponibilità e affidabilità dei dati.
-
Protezione contro guasti completi del sito e dei nodi.
-
Efficienza dello storage.
-
Implementazioni a singolo sito che richiedono una protezione dei dati efficiente con una sola copia codificata in cancellazione anziché più copie replicate.
-
Implementazioni multi-sito in cui la latenza tra siti è inferiore a 100 ms.