Index mit zu vielen Shards verkleinern (Shrink)
ElasticsearchIndex-LebenszyklusBefehl
# 1) Block writes on the source and gather all shard copies on one node:
PUT log-2026.09/_settings
{
"index.number_of_replicas": 0,
"index.routing.allocation.require._name": "node-1",
"index.blocks.write": true
}
GET _cluster/health/log-2026.09?wait_for_no_relocating_shards=true&timeout=30m
# 2) Create a new index with fewer shards (the target must be a factor of the source):
POST log-2026.09/_shrink/log-2026.09-shrunk
{
"settings": {
"index.number_of_shards": 1,
"index.number_of_replicas": 1,
"index.routing.allocation.require._name": null,
"index.blocks.write": null,
"index.codec": "best_compression"
}
}Was es tut
Verringert die Anzahl der Primary Shards eines nicht mehr beschriebenen Index, indem seine Segmente per Hardlink in einen neuen Index übernommen werden; senkt Heap- und Shard-Overhead.
Wann einsetzen
Wenn tägliche Indizes mit mehr Shards als nötig angelegt wurden, das Shard-Limit nahe ist oder bevor alte Indizes in den Warm Tier verschoben werden.
Vorsicht
Der Quellindex wird während des Shrink für Schreibzugriffe gesperrt; nur auf Indizes anwenden, in die nicht mehr geschrieben wird. Die Ziel-Shard-Anzahl muss ein Teiler der Quellanzahl sein (8 -> 4, 2 oder 1). Der Knoten, auf dem alle Kopien zusammengeführt werden, braucht so viel freien Plattenplatz wie der Quellindex. Mit replicas 0 hat der Quell-Shard eine einzige Kopie; lösche die Quelle erst, wenn die Operation abgeschlossen und der neue Index green ist.