[Elasticsearch] shard allocation 운영 테스트용 REST 코드 - 1.6.0 이상.

Elastic/Elasticsearch 2015. 7. 3. 13:59

작성하고 보니 최신 내용을 반영할걸 이라는 후회가 밀려 오내요.

이전 글 http://jjeong.tistory.com/1034 이거는 사실 deprecated 예정입니다.

코드에도 명시되어 있어서.. ^^;;


아래 코드로 변경 합니다.

참고하세요.


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

    "persistent" : {

        "cluster.routing.allocation.enable" : "primaries",

        "cluster.routing.allocation.allow_rebalance" : "indices_all_active",

        "cluster.routing.allocation.cluster_concurrent_rebalance" : 2,

        "cluster.routing.allocation.node_initial_primaries_recoveries" : 4,

        "cluster.routing.allocation.node_concurrent_recoveries" : 2

    }

}'

※ 위 값들은 default 값입니다. "primaries" 만 빼고요 ^^


상세 내용을 확인 하고 싶으신 분들은 아래 문서를 참고하시길 바랍니다.


https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#shards-allocation


그냥 넘어 갈라고 했지만...


▷ cluster.routing.allocation.allow_rebalance

설명에 있지만 이건 shard rebalance에 대한 설정 입니다.

아래 값들에 대한 조건일 때 rebalance 하겠다는 것으로 이해 하시면 됩니다.

always : 항상 할 거다.

indices_primaries_active : primary shard 가 올라 오면 할 거다.

indices_all_active : 전체 shard 가 올라 오면 할 거다.


당연히 indices_all_active 가 default 설정이 되겠죠.


▷ cluster.routing.allocation.cluster_concurrent_rebalance

클러스터를 통틀어서 동시에 rebalance 할 shard 수를 제한 하는 설정 입니다.

기본은 2개로 설정 되어 있습니다.


▷ cluster.routing.allocation.node_initial_primaries_recoveries

각 노드 당 primary shard recovery에 대한 초기 크기를 설정 하는 것입니다.

기본은 4개로 설정 되어 있습니다.


▷ cluster.routing.allocation.node_concurrent_recoveries

노드에서 동시에 수행할 recovery 크기를 설정 하는 것입니다.


▷ cluster.routing.allocation.enable

이게 이전에 deprecated 된 설정의 확장인데요. (위에 설정도 포함 이지만..)

shard 종류에 따라 어떻게 처리 할 것인지를 결정 하게 합니다.

all : 몽땅 다 하겠다.

primaries : primary shard 만 하겠다.

new_primaries : 새로 생성한 인덱스의 primary shard 만 하겠다.

none : 몽땅 다 안하겠다.


딱 보면 disable_allocation:true = primaries + none 정도로 보면 쉽쥬.

반대는 disable_allocation:false = all 정도로 보면 쉽쥬.


: