Shard allocation seems to put replica shards on same host when using: cluster.routing.allocation.same_shard.host: true

Using 2.2.0

So I decided to put more nodes per physical host. These are not VMs it's 3 physical instances running on the same physical host.

For each host, I have 4 total servers....

I disabled shard allocation downed the host, rebuilt it with 3 instances and brought up the 3 instances, re-enabled shard allocation, rinse and repeat.

It seems some hosts got primary and replicas...

Is the cluster.routing.allocation.same_shard.host: true enough? I'm pretty sure I have it setup for all instances!

The new index on the far right seems ok.

Maybe try an empty reroute request to see if it forces them off the same host?

Thanks. I'll check asap.

@warkolm

Didn't seem to work.

Do you running ES on Windows? I'm having the same issue where this setting does not work.

I wonder if ES instances on the same physical server must share the same data path for this setting to work. It's unlikely because the setting use host name to determine if instances are running on the same host.

@warkolm: does this setting work at index creation time only?

Nope on Linux. I think it's true, creation time shards look good. But on
rebalance after recovery, some hosts have same shards together...

I've tried the Shard Allocation Awareness and it works https://www.elastic.co/guide/en/elasticsearch/reference/current/allocation-awareness.html