Skip to content

Cluster Reroute | Allocate Replica | Allow fallback data tier #129812

Closed as not planned
@stefnestor

Description

@stefnestor

Description

👋 howdy, team!

In the situation of 2 hot and 1 warm node which can block ILM migrations for indices hot>warm, it would be nice if a Cluster Reroute > allocate_replica request allowed assigning the replica to data_hot even when its index.routing.allocation.include._tier_preference is data_warm,data_hot.

Example

  • 2 hot nodes (instance-0000000009, instance-0000000008) & 1 warm node (instance-0000000010)

  • index test is 1p1r with primary on warm#10 and replica unassigned

  • attempt Cluster Reroute to send _tier_preference: data_warm,data_hot replica to data_hot and error that not data_warm

    POST _cluster/reroute
    {"commands":[{"allocate_replica":{ "index" : "test", "shard" : 0, "node" : "instance-0000000009" }}]}
    
    {
      "error": {
        "type": "illegal_argument_exception",
        "reason": "[allocate_replica] allocation of [test][0] on node {instance-0000000009}{...}{himrst}{8.9.2}{...} is not allowed, reason: [
        YES(shard has no previous failures)][
        YES(primary shard for this replica is already active)][
        YES(explicitly ignoring any disabling of allocation due to manual allocation commands via the reroute API)][
        YES(can allocate replica shard to a node with version [8.9.2] since this is equal-or-newer than the primary version [8.9.2])][
        YES(the shard is not being snapshotted)][
        YES(ignored as shard is not being recovered from a snapshot)][
        YES(no nodes are shutting down)][
        YES(there are no ongoing node replacements)][
        YES(node passes include/exclude/require filters)][
        YES(this node does not hold a copy of this shard)][
        YES(enough disk for shard on node, free: [321.3gb], used: [28.5%], shard size: [0b], free after allocating shard: [321.3gb])][
        YES(below shard recovery limit of outgoing: [0 < 2] incoming: [0 < 2])][
        YES(total shard limits are disabled: [index: -1, cluster: -1] <= 0)][
        YES(node meets all awareness attribute requirements)][
    -    NO(index has a preference for tiers [data_warm,data_hot] and node does not meet the required [data_warm] tier)][
        YES(shard is not a follower and is not under the purview of this decider)][
        YES(decider only applicable for indices backed by searchable snapshots)][
        YES(this decider only applies to indices backed by searchable snapshots)][
        YES(decider only applicable for indices backed by searchable snapshots)][
        YES(this node's data roles are not exactly [data_frozen] so it is not a dedicated frozen node)][
        YES(decider only applicable for indices backed by archive functionality)
        ]"
      },
      "status": 400
    }

TIA! 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions