출처

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/cluster-nodes-shutdown.html


elasitcsearch 서버를 재시작하는 방법


es가 장애 발생시에는 자동으로 reallocation이 발생한다. 단순한 설정 변경 이후에 재시작이라면 단순히 이 방식을 사용하면 좋다. 



1. relocation

 curl -XPUT localhost:9200/_cluster/settings -d '{

                "transient" : {

                    "cluster.routing.allocation.enable" : "none"

                }

        }'


2. shutdown

curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'



3. background로 실행

./bin/elasticsearch -d



4. reallocation 이 되도록 변경 (원래대로)


curl -XPUT localhost:9200/_cluster/settings -d '{

                "transient" : {

                    "cluster.routing.allocation.enable" : "all"

                }

        }'




구장비를 반납하고 새 장비를 추가할 때는 다음과 같다. 



1. allocation을 하지 않도록 함


 curl -XPUT localhost:9200/_cluster/settings -d '{
                "transient" : {
                    "cluster.routing.allocation.enable" : "none"
          }
  }' 



2. 새 장비에서 데몬 실행



bin/elasticsearch -d



3. 반납장비는 데몬 종료


curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'





4. reallocation 실시 


curl -XPUT localhost:9200/_cluster/settings -d '{

                "transient" : {

                    "cluster.routing.allocation.enable" : "all"

       }

}'




참고로 1대를 빼고, 1대를 추가한다 하더라도 동일한 shard가 반드시 reallocation되지 않는다. 

실제 재시작 전의 데이터의 index를 살펴보면 아래와 같았다. 

$ ls elasticsearch/nodes/0/indices/movies/
0/  1/  10/ 12/ 2/  5/  6/  9/

재시작 후에 살펴보니 샤드가 일부 변경된 것을 확인하면서 reallocation이 예상대로 되지 않음을 확인했다. 

$ ls elasticsearch/nodes/0/indices/movies/
0/  1/  10/ 12/ 3/  5/  6/  9/


Posted by '김용환'
,