Jak wybrać liczby K i M kodu usuwania?
Jak działa kod usuwania:
Parametry kodu erasure Ceph K i M dotyczą efektywności pojemności użytecznej oraz redundancji w przypadku awarii sprzętu. K to liczba kawałków danych, a M to liczba kawałków kodowania. Gdy klient zapisuje obiekt danych w klastrze pamięci Ceph, obiekt danych zostanie podzielony na K równych części danych. Ceph używa fragmentów danych do kodowania M fragmentów kodujących, które będą używane do obliczania utraconych fragmentów danych, gdy sprzęt zawiedzie.
Fragmenty danych i fragmenty kodu będą rozdzielane i przechowywane w określonej przez K+M strefie awarii. Maksymalna liczba fragmentów danych, które mogą zostać utracone, to M stref awarii. Dostępne strefy awarii zależą od tego, jak serwery pamięci masowej są przydzielane w ramach infrastruktury fizycznej. W przypadku małej klastra Ceph, awaria może dotyczyć dysku lub hostów serwerowych. W przypadku większych klastrów strefa awarii może obejmować szafy serwerowe, pomieszczenie serwerowe lub centrum danych itp.
Obiekt danych jest rekonstruowany z fragmentów danych, gdy klient chce odczytać dane.
Wydajność przechowywania
W porównaniu do algorytmu replikacji danych Ceph, kodowanie erasure zazwyczaj ma lepszą efektywność wykorzystania przestrzeni. Ponieważ kod erasure wykorzystuje więcej operacji I/O na dysku do zakończenia operacji I/O danych, jest mniej przyjazny dla obciążenia wymagającego dużej liczby IOPS. Im większa liczba K+M, tym więcej zasobów IOPS na dysku zużywa operacja I/O.
Używając większego K i mniejszego M, całkowita liczba bajtów danych przesyłanych w sieci klastra Ceph będzie mniejsza. Może to zwiększyć wydajność przepustowości I/O dużych obiektów danych.
Efektywność przestrzenna
Wydajność użytecznej przestrzeni puli kodów usuwania jest równa K/(K+M). Na przykład, wydajność przestrzeni puli kodów usuwania K=4, M=2 wynosi 4/6 = 66,7%. Jest to dwa razy bardziej wydajne niż puli replik 3, które zapewniają wyższą wydajność IOPS przy tym samym poziomie redundancji sprzętowej.
Rozsądne K jest większe niż M z powodu efektywności wykorzystania przestrzeni. Większy kod usuwania (K-M) zyskuje lepszą efektywność przestrzeni.
Liczba hostów serwerowych
Liczba K+M również określa liczbę hostów lub większych domen awarii, które są wymagane w klastrze.
- Typowy zbiór kodów usuwania wymaga minimum K+M hostów serwerowych, aby w pełni rozdystrybuować wszystkie kawałki EC.
- Zaawansowana konfiguracja kodu usuwania pozwala na przechowywanie wielu kawałków EC na domenę awarii. Ta konfiguracja zmniejsza wymaganą liczbę serwerów do dystrybucji kawałków EC.
Podsumowanie wpływów kodu usuwania K i M:
- M określa redundantną liczbę domen awarii.
- Większe K + M skutkuje zmniejszoną wydajnością IOPS dla małych obiektów dla klientów, ale poprawia przepustowość dla większych obiektów.
- Efektywność przestrzeni magazynowej = K/(K+M)
- Minimalna liczba wymaganych serwerów.