How to only allow one type of index on a node?


#1

Is it possible to configure a data node in a running cluster in such a way that it can only store one indices matching an index template?
Eg:
A cluster has 100 indices of a template X hosted on nodes N1-N10. I want the later indices which have a different template Y completely unrelated to X to host on a separate node N11 without disturbing the shard allocation of X template indices. Also, I don't want the shard movement to be turned off completely for template X indices, they can move around nodes N1-N10 but never having N11 in their allocation. The Y template indices have allocation only on node N11 and not on nodes N1-N10. Hence this should be the allocation of index templates:
X -> N1, N2... N10
Y -> N11

Here's what I could come up with:
Turn of shard reallocation completely
Tag old nodes as Big nodes by editing the node settings
Edited index settings of the old indices to allow only big nodes in shard allocation
Deploy new new node, call it small node
Create index template Y to have shard allocation only for small nodes
Restart shard reallocation

The above steps involve restarting nodes which I don't like. Can you suggest me a better way of going through this?

Thanks


(Mark Walkom) #2

Unless you have another attribute you can filter on, nope.

See https://www.elastic.co/guide/en/elasticsearch/reference/2.3/shard-allocation-filtering.html


(system) #3