[[modules-cluster]]
== Shard allocation and cluster-level routing

One of the main roles of the master is to decide which shards to allocate to
which nodes, and when to move shards between nodes in order to rebalance the
cluster.

There are a number of settings available to control the shard allocation process:

*   <<shards-allocation>> lists the settings to control the allocation and
    rebalancing operations.

*   <<disk-allocator>> explains how Elasticsearch takes available disk space
    into account, and the related settings.

*   <<allocation-awareness>> and <<forced-awareness>> control how shards can
    be distributed across different racks or availability zones.

*   <<allocation-filtering>> allows certain nodes or groups of nodes excluded
    from allocation so that they can be decommissioned.

Besides these, there are a few other <<misc-cluster,miscellaneous cluster-level settings>>.

All of the settings in this section are _dynamic_ settings which can be
updated on a live cluster with the
<<cluster-update-settings,cluster-update-settings>> API.

include::cluster/shards_allocation.asciidoc[]

include::cluster/disk_allocator.asciidoc[]

include::cluster/allocation_awareness.asciidoc[]

include::cluster/allocation_filtering.asciidoc[]

include::cluster/misc.asciidoc[]
