Come scegliere i numeri K e M del codice di cancellazione?
Come funziona il codice di cancellazione:
I parametri del codice di cancellazione Ceph K & M riguardano l'efficienza della capacità utilizzabile e la ridondanza contro i guasti hardware. K è il numero di blocchi di dati e M è il numero di blocchi di codifica. Quando un cliente scrive un oggetto dati nel cluster di archiviazione Ceph, l'oggetto dati verrà suddiviso in K chunk di dati di dimensioni uguali. Ceph utilizza i chunk di dati per codificare M chunk di chunk di codifica che verranno utilizzati per calcolare i chunk di dati persi quando l'hardware fallisce.
I chunk di dati e i chunk di codice saranno distribuiti e memorizzati nel dominio di guasto specificato da K+M. Il numero massimo di chunk di dati che possono andare persi è M domini di guasto. I domini di guasto disponibili dipendono da come i server di archiviazione sono allocati all'interno dell'infrastruttura fisica. Per un cluster Ceph di piccole dimensioni, il guasto potrebbe essere del disco o degli host server. Il dominio di guasto dei cluster di dimensioni maggiori può essere i rack dei server, la sala server o il data center, ecc.
L'oggetto dati viene ricostruito dai frammenti di dati quando il client desidera leggere i dati.
Prestazioni di archiviazione
Rispetto all'algoritmo di replicazione dei dati Ceph, la codifica di cancellazione di solito ha una migliore efficienza dello spazio utilizzabile. Poiché il codice di cancellazione utilizza più operazioni di I/O su disco per completare l'I/O dei dati, è meno adatto ai carichi di lavoro che richiedono elevate IOPS. Maggiore è il numero di K+M, maggiore è il consumo di risorse IOPS su disco per l'operazione di I/O.
Quando si utilizzano K più grandi e M più piccoli, il numero totale di byte di dati trasferiti sulla rete del cluster Ceph sarà minore. Questo potrebbe aumentare le prestazioni di throughput I/O di oggetti di dati di grandi dimensioni.
Efficienza dello spazio
L'efficienza dello spazio utilizzabile di un pool di codici di cancellazione è pari a K/(K+M). Ad esempio, l'efficienza dello spazio del pool di codici di cancellazione K=4, M=2 è 4/6 = 66,7%. Questo è due volte più efficiente dei pool replica 3 che offrono prestazioni IOPS superiori con lo stesso livello di ridondanza hardware.
K ragionevole è maggiore di M a causa dell'efficienza dello spazio utilizzabile. Il codice di cancellazione (K-M) più grande guadagna una migliore efficienza dello spazio.
Numero di host server
Il numero di K+M determina anche il numero di host o domini di guasto più grandi richiesti nel cluster.
- Un tipico pool di codici di cancellazione richiede un minimo di K+M host server per distribuire completamente tutti i chunk EC.
- Una configurazione avanzata del codice di cancellazione consente di memorizzare più chunk EC per dominio di guasto. Questa configurazione riduce il numero di server richiesti per distribuire i chunk EC.
Riepilogo delle influenze del codice di cancellazione K & M:
- M determina il numero ridondante di domini di guasto.
- Un K + M più grande comporta una riduzione delle prestazioni IOPS per oggetti piccoli per i client, ma migliora il throughput per oggetti più grandi.
- Efficienza dello spazio di archiviazione = K/(K+M)
- Numero minimo di server richiesti.