Configurer l'allocation de shard et la sensibilisation forcée dans Elasticsearch

Description

Avec Elasticsearch, vous avez la possibilité de faire évoluer votre cluster pour qu’il soit hautement disponible. Pour garantir la survie de vos données en cas de défaillance d’une zone ou d’un rack complet, vous pouvez répartir vos données sur plusieurs zones et utiliser la conscience de l’allocation des shards pour vous assurer que tous les shards répliqués sont alloués à une zone différente de celle de leur shard principal. Cela permet un autre niveau de tolérance aux pannes, au-delà de la simple défaillance d’un nœud. Dans ce laboratoire pratique, vous avez la possibilité de faire les exercices suivants :

  • Appliquer des attributs de nœud à chaque nœud de données dans un cluster.
  • Configurer la conscience d’allocation de shard pour un cluster dans plusieurs zones.
  • Tester le comportement de la conscience d’allocation de shard en arrêtant tous les noeuds d’une zone.

Configurez les noeuds data-1 et data-2 pour qu’ils aient un attribut de noeud “zone” avec une valeur de “1”

vim elasticsearch.yml

changer la ligne suivante :

#node.attr.rack: r1

avec :

node.attr.zone: 1
systemctl restart elasticsearch

Configurez les noeuds data-3 et data-4 pour avoir un attribut de noeud “zone” avec une valeur de “2”

vim elasticsearch.yml

changer la ligne suivante :

#node.attr.rack: r1

avec :

node.attr.zone: 2
systemctl restart elasticsearch

Activer la conscience d’allocation de shard pour le cluster

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.awareness.attributes": "zone",
    "cluster.routing.allocation.awareness.force.zone.values": "1,2"
  }
}

Arrêter Elasticsearch sur les noeuds data-3 et data-4

systemctl stop elasticsearch

Assurez-vous que tous les shards primaires sont assignés et que tous les shards répliqués restent non assignés

GET _cat/shards?v