With Elasticsearch, you have the potential to scale your cluster to be highly available. To ensure your data survives a full zone or rack failure, you can spread your data across multiple zones and use shard allocation awareness to ensure that all replica shards are allocated to a different zone than that of their primary shard. This allows another level of fault tolerance beyond just node failure. In this hands-on lab, you are given the opportunity to exercise the following:
* Apply node attributes to each data node in a cluster.
* Configure shard allocation awareness for a cluster in multiple zones.
* Test shard allocation awareness behavior by stopping all nodes in a zone.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Configure nodes data-1 and data-2 to have a “zone” node attribute with a value of “1”.
Using the Secure Shell (SSH), log in to the
data-1
anddata-2
nodes ascloud_user
via the public IP address.Become the
elastic
user with:sudo su - elastic
In the
/home/elastic/elasticsearch/config/elasticsearch.yml
file, change the following line:#node.attr.rack: r1
to
node.attr.zone: 1
Restart the elasticsearch node with:
pkill -F /home/elastic/elasticsearch/pid /home/elastic/elasticsearch/bin/elasticsearch -d -p pid
- Configure nodes data-3 and data-4 to have a “zone” node attribute with a value of “2”.
Using the Secure Shell (SSH), log in to the
data-3
anddata-4
nodes ascloud_user
via the public IP address.Become the
elastic
user with:sudo su - elastic
In the
/home/elastic/elasticsearch/config/elasticsearch.yml
file, change the following line:#node.attr.rack: r1
to
node.attr.zone: 2
Restart the elasticsearch node with:
pkill -F /home/elastic/elasticsearch/pid /home/elastic/elasticsearch/bin/elasticsearch -d -p pid
- Enable shard allocation awareness for the cluster per instructions.
Use the Kibana console tool to execute the following:
PUT _cluster/settings { "persistent": { "cluster.routing.allocation.awareness.attributes": "zone", "cluster.routing.allocation.awareness.force.zone.values": "1,2" } }
- Stop Elasticsearch on nodes data-3 and data-4.
Using the Secure Shell (SSH), log in to the
data-3
anddata-4
nodes ascloud_user
via the public IP address.Become the
elastic
user with:sudo su - elastic
Stop the elasticsearch node with:
pkill -F /home/elastic/elasticsearch/pid
- Ensure that all primary shards are assigned and all replica shards remain unassigned.
Use the Kibana console tool to execute the following:
GET _cat/shards?v