2015-10-27 11 views
28

Uso Elasticsearch 1.4.4 nella mia macchina di sviluppo (un singolo notebook). Tutto è impostato come predefinito perché non ho mai cambiato nessuna impostazione.filigrana del disco insufficiente [??%] superata su

Quando inizio, ho di solito ottengono il seguente messaggio:

[2015-10-27 09:38:31,588][INFO ][node      ] [Milan] version[1.4.4], pid[33932], build[c88f77f/2015-02-19T13:05:36Z] 
[2015-10-27 09:38:31,588][INFO ][node      ] [Milan] initializing ... 
[2015-10-27 09:38:31,592][INFO ][plugins     ] [Milan] loaded [], sites [] 
[2015-10-27 09:38:34,665][INFO ][node      ] [Milan] initialized 
[2015-10-27 09:38:34,665][INFO ][node      ] [Milan] starting ... 
[2015-10-27 09:38:34,849][INFO ][transport    ] [Milan] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/10.81.1.108:9300]} 
[2015-10-27 09:38:35,022][INFO ][discovery    ] [Milan] elasticsearch/DZqnmWIZRpapZY_TPkkMBw 
[2015-10-27 09:38:38,787][INFO ][cluster.service   ] [Milan] new_master [Milan][DZqnmWIZRpapZY_TPkkMBw][THINKANDACT1301][inet[/10.81.1.108:9300]], reason: zen-disco-join (elected_as_master) 
[2015-10-27 09:38:38,908][INFO ][http      ] [Milan] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/10.81.1.108:9200]} 
[2015-10-27 09:38:38,908][INFO ][node      ] [Milan] started 
[2015-10-27 09:38:39,220][INFO ][gateway     ] [Milan] recovered [4] indices into cluster_state 
[2015-10-27 09:39:08,801][INFO ][cluster.routing.allocation.decider] [Milan] low disk watermark [15%] exceeded on [DZqnmWIZRpapZY_TPkkMBw][Milan] free: 58.6gb[12.6%], replicas will not be assigned to this node 
[2015-10-27 09:39:38,798][INFO ][cluster.routing.allocation.decider] [Milan] low disk watermark [15%] exceeded on [DZqnmWIZRpapZY_TPkkMBw][Milan] free: 58.6gb[12.6%], replicas will not be assigned to this node 
[2015-10-27 09:40:08,801][INFO ][cluster.routing.allocation.decider] [Milan] low disk watermark [15%] exceeded on [DZqnmWIZRpapZY_TPkkMBw][Milan] free: 58.6gb[12.6%], replicas will not be assigned to this node 
.... 

Vedo un sacco di questi "filigrana disco insufficiente ... superato il ..." messaggi. Cosa è andato storto nel mio caso? Come sistemarlo? Grazie!

UPDATE

Prima di questo post, ho cercato SO per i post correlati. Ne ho trovato uno relativo a "high watermark ..." e in tal caso lo spazio su disco è basso. Nel mio caso, ho controllato e ci sono ancora 56 GB rimasti sul mio disco.

UPDATE

Secondo l'input da Andrei Stefan, ho bisogno di cambiare le impostazioni. Devo farlo nel modo seguente:

curl -XPUT localhost:9200/_cluster/settings -d '{ 
    "transient" : { 
     "cluster.routing.allocation.disk.threshold_enabled" : false 
    } 
}' 

Oppure c'è un file di impostazioni che posso modificare per impostarlo?

Grazie!

+1

Sembra vostro hard disk è sempre pieno. O perché i tuoi indici sono diventati grandi o hai enormi file di registro da qualche parte. In quest'ultimo caso, è possibile eliminare i file di registro per guadagnare un po 'di tempo. – Val

+1

Leggi qui: https://www.elastic.co/guide/en/elasticsearch/reference/current/disk.html, il messaggio di eccezione è auto esplicativo, perché è così che non è così autoesplicativo. Quella sezione della documentazione dovrebbe chiarire le cose. –

+0

Val, ho aggiornato il mio post. Non dovrebbe essere un problema di spazio su disco insufficiente. – curious1

risposta

34

Se, come me, ho un sacco di disco che si può sintonizzare l'impostazione filigrana:

cluster.routing.allocation.disk.watermark.low

controlli la filigrana basso per l'utilizzo del disco. L'impostazione predefinita è 85%, il che significa che ES non assegnerà nuovi frammenti ai nodi una volta che hanno utilizzato più dell'85% del disco. Può anche essere impostato su un valore di byte assoluto (ad esempio 500mb) per impedire a ES di allocare i frammenti se è disponibile meno della quantità di spazio configurata.

E

cluster.routing.allocation.disk.watermark.high

Controlli il limite massimo. Il valore predefinito è il 90%, il che significa che ES tenterà di spostare i frammenti su un altro nodo se l'utilizzo del disco del nodo supera il 90%. Può anche essere impostato su un valore di byte assoluto (simile alla filigrana bassa) per riposizionare i frammenti una volta in meno rispetto alla quantità di spazio configurata disponibile sul nodo.

https://www.elastic.co/guide/en/elasticsearch/reference/current/disk-allocator.html

Si prega di notare:

Valori percentuali si riferiscono a utilizzare lo spazio su disco, mentre i valori di byte si riferiscono allo spazio libero su disco. Questo può essere fonte di confusione, poiché capovolge il significato di alto e basso. Ad esempio, ha senso impostare la filigrana bassa su 10 gb e la filigrana alta su 5 gb, ma non il contrario.

Sul mio disco 5 TB ho impostato:

# /etc/elasticsearch/elasticsearch.yml 
cluster.routing.allocation.disk.threshold_enabled: true 
cluster.routing.allocation.disk.watermark.low: 30gb 
cluster.routing.allocation.disk.watermark.high: 20gb 
+1

Si noti che 'cluster.routing.allocation.disk.threshold_enabled: True' dovrebbe essere' cluster.routing.allocation.disk.threshold_enabled: true' (senza capitale T) – seinecle

+0

Strettamente parlando non è un _error_ - che significa sia True che opere vere, anche se lo standard java è di decapitalizzare. Al momento di scrivere il problema era più importante che aderire a uno stile di codifica - presumo. È passato un po 'di tempo ... – sastorsl

+0

Penso che nel mio caso non ha funzionato, ecco perché stavo commentando. – seinecle

0

ho aggiunto le seguenti righe al mio elasticsearch.yaml di file (elastic_search_folder \ config):

cluster.routing.allocation.disk.threshold_enabled: true 
cluster.routing.allocation.disk.watermark.low: 93% 
cluster.routing.allocation.disk.watermark.high: 95% 

per qualche ragione, specificando filigrana in gb come nell'altra risposta non ha funzionato per me. Inoltre, assicurati che il tuo watermark.high sia inferiore o uguale alla filigrana dell'inondazione (di solito è impostata al 95%).

+0

Puoi dirmi quale versione stavi eseguendo? Grazie ! –

+1

@ CensoredP.Censored Ehi, 6.1.1 –

1

So che è un vecchio post, ma il mio commento può rendere qualcuno felice. Per specificare la filigrana in byte valori (gb o mb) devi aggiungere cluster.routing.allocation.disk.watermark.flood_stage al tuo file di impostazioni elasticsearch - elasticsearch.yml. Esempio completo:

cluster.routing.allocation.disk.threshold_enabled: true 
    cluster.routing.allocation.disk.watermark.flood_stage: 200mb 
    cluster.routing.allocation.disk.watermark.low: 500mb 
    cluster.routing.allocation.disk.watermark.high: 300mb 

Nota: senza specificare cluster.routing.allocation.disk.watermark.flood_stage non funzionerà con valore byte (GB o MB)

Problemi correlati