
Es的节点可能分布在不同的机架
当一个机架断电,可能会同时丢失几个节点
如果一个索引相同的主分片和副本分片,同时在这个机架上,就有可能导致数据的丢失
通过 Rack Awareness的机制,就可以尽可能避免将同一个索引的主副分片同时分配在一个机架
的节点上
# Fore awareness# 标记一个 rack 1, 标记在那个机架bin/elasticsearch -E node.name=node1 -E cluster.name=geektime -E path.data=node1_data -E node.attr.my_rack_id=rack1# 标记一个 rack 2, 标记在那个机架bin/elasticsearch -E node.name=node2 -E cluster.name=geektime -E path.data=node2_data -E node.attr.my_rack_id=rack1# 设置主副分片在不同的机架上PUT _cluster/settings{"persistent": {"cluster.routing.allocation.awareness.attributes": "my_rack_id","cluster.routing.allocation.awareness.force.my_rack_id.values": "rack1,rack2"}}GET _cluster/settingsGET _cluster/healthGET _cat/shards?vGET _cluster/allocation/explain?pretty
