Hoe kies je de Erasure Code K & M nummers?
Hoe foutencodering werkt:
De Ceph-foutencoderingparameters K & M hebben betrekking op de bruikbare capaciteitsefficiëntie en redundantie tegen hardwarestoringen. K is het aantal datablokken en M is het aantal codeblokken. Wanneer een klant een dataobject naar het Ceph-opslagcluster schrijft, wordt het dataobject verdeeld in K gelijke datablokken. Ceph gebruikt de datablokken om M blokken codering te coderen die zullen worden gebruikt om de verloren datablokken te berekenen wanneer de hardware faalt.
Gegevenschunks en codechunks worden verdeeld en opgeslagen in het door K+M gespecificeerde foutdomein. Het maximale aantal gegevenschunks dat verloren kan gaan is M foutdomeinen. De beschikbare foutdomeinen zijn afhankelijk van hoe de opslagservers zijn toegewezen binnen de fysieke infrastructuur. Voor een kleinschalig Ceph-cluster kan de fout een schijf of serverhosts zijn. Bij grotere clusters kan het foutdomein de serverrekken, serverruimte of datacenter zijn, enz.
Het gegevensobject wordt opnieuw opgebouwd uit de gegevensfragmenten wanneer de client de gegevens wil lezen.
Opslagprestaties
In vergelijking met het Ceph-datareplicatie-algoritme heeft erasure coding meestal een betere bruikbare ruimte-efficiëntie. Omdat de erasure code meer schijf-I/O-bewerkingen gebruikt om de data-I/O te voltooien, is het minder vriendelijk voor de IOPS-eisende workloads. Hoe groter het aantal K+M, hoe meer schijf-I/O-bronnen de I/O-bewerking verbruikt.
Bij het gebruik van grotere K en kleinere M zal het totale aantal overgedragen bytes op het Ceph-cluster netwerk minder zijn. Dit kan de I/O-doorvoersnelheid van grote gegevensobjecten verhogen.
Ruimte-efficiëntie
De bruikbare ruimte-efficiëntie van een wissen-codepool is gelijk aan K/(K+M). Bijvoorbeeld, de ruimte-efficiëntie van de K=4, M=2 wissen-codepool is 4/6 = 66,7%. Dit is twee keer zo efficiënt als replica 3 pools die hogere IOPS-prestaties bieden met hetzelfde niveau van hardware-redundantie.
Redelijk K is groter dan M vanwege de bruikbare ruimte-efficiëntie. De grotere (K-M) foutencodering behaalt een betere ruimte-efficiëntie.
Aantal serverhosts
Het aantal K+M bepaalt ook het aantal hosts of grotere foutdomeinen die nodig zijn in de cluster.
- Een typische foutencodering pool vereist een minimum van K+M serverhosts om alle EC-chunks volledig te distribueren.
- Een geavanceerde foutencodering configuratie maakt het mogelijk om meerdere EC-chunks per foutdomein op te slaan. Deze configuratie vermindert het vereiste aantal servers voor het distribueren van EC-chunks.
Samenvatting van de invloeden van foutencodering K & M:
- M bepaalt het redundante aantal foutdomeinen.
- Een groter K + M resulteert in verminderde IOPS-prestaties voor kleine objecten voor clients, maar verbetert de doorvoer voor grotere objecten.
- Opslagruimte-efficiëntie = K/(K+M)
- Minimaal aantal vereiste servers.