Coordonarea clusterului în Elasticsearch


Unul dintre motivele pentru care Elasticsearch a devenit atât de popular este datorat faptului că reușește cu succes scalarea de la un mic cluster cu câteva noduri la un cluster mare cu sute de noduri, bazat pe subsistemul de coordonare a clusterului.

Elasticsearch versiunea 7 conține un nou subsistem de coordonare a clusterului care oferă multe avantaje față de versiunile anterioare.

Ce este coordonarea clusterului?

Un cluster Elasticsearch poate efectua task-uri multiple care necesită un număr de noduri pentru a lucra împreună. De exemplu, fiecare căutare trebuie să fie direcționată spre toate câmpurile potrivite pentru a se asigura că rezultatele acesteia sunt corecte. Fiecare replică trebuie actualizată atunci când indexați sau ștergeți unele documente. Fiecare solicitare a clientului trebuie trimisă de la nodul care îl primește și direcționată către nodurile care o pot gestiona.
Fiecare nod are o prezentare generală a clusterului, astfel încât să poată efectua căutări, indexări și alte activități coordonate. Această prezentare generală este cunoscută sub numele de cluster-state.
Cluster-state determină mapările și setările pentru fiecare index, fragmentele care sunt alocate fiecărui nod și copiile shard care sunt in-sync. Este foarte important să păstrați această informație consecventă în cadrul clusterului. Multe caracteristici recente, inclusiv replicarea bazată pe numărul de secvențe și replicarea cluster-ului, funcționează corect numai pentru că se pot baza pe consistența cluster-state.

În general, recomandăm clusterele cu trei noduri eligibile, astfel încât, dacă unul dintre noduri eșuează, celelalte două pot să lucreze în continuare și să facă progrese.
În schimb, dacă un grup are mai mult de trei noduri-master eligibile, atunci alegerile și actualizările de cluster-state pot dura mai mult.

Pentru Elasticsearch 7.0 a fost revizuit și reconstruit subsistemul de coordonare a clusterului:
• Setarea minimum_master_nodes este eliminată în favoarea faptului că Elasticsearch poate alege nodurile necesare
• Alegerile generale tipice au nevoie de mai puțin de o secundă pentru a fi finalizate
• Clusterele de creștere și micșorare devin mai sigure și mai ușoare și lasă mult mai puțin spațiu pentru a configura sistemul într-un mod care riscă să piardă date
• Nodurile își înregistrează starea mult mai clar pentru a ajuta la diagnosticarea motivelor pentru care nu se pot alătura unui cluster.

Dacă un nod nu poate descoperi un nod principal, atunci, începând cu Elasticsearch 7.0, va înregistra periodic un mesaj de avertizare care descrie starea sa actuală suficient de detaliat pentru a ajuta la diagnosticarea multor probleme comune.

Cum se realizează upgrade-ul?

Poți actualiza un cluster Elasticsearch de la versiunea 6 la versiunea 7 printr-un upgrade permanent sau o repornire cu un cluster complet. Îți recomandăm prima opțiune deoarece aceasta permite actualizarea fiecărui nod în parte, în timp ce clusterul rămâne disponibil pentru utilizare.
Pentru a asigura o actualizare fără probleme, trebuie să urmați cu atenție instrucțiunile detaliate de actualizare.

Elasticsearch 7.0 oferă un nou subsistem de coordonare a clusterului, care este mai rapid, mai sigur și mai simplu de utilizat. Acesta susține actualizarea permanentă de la versiunea 6.7 și oferă baza pentru replicarea de date elastică.

Mai multe detalii despre coordonarea clusterului în Elasticsearch pot fi accesate aici.


Continuăm să fim alături de tine în proiectele de Business Intelligence și Data Management.
Rămâi alături de noi: