엔지니어 블로그

[Opensearch/Elasticsearch] 운영중인 Cluster의 재구동 방법 - Rolling Restart 본문

ELK/elasticsearch

[Opensearch/Elasticsearch] 운영중인 Cluster의 재구동 방법 - Rolling Restart

안기용 2023. 9. 22. 08:44

운영중인 Elasticsearch 혹은 Opensarch Cluster에 Plugin 설치 및 사전 업데이트 등과 같은 작업이 필요할 때,

전체 Cluster를 재시작 하는 것이 아닌 개별 Node를 재시작 해야한다.

  1. Shards 할당 기능 설정

    PUT _cluster/settings
    {
    "persistent": {
     "cluster.routing.allocation.enable": "primaries"
    }
    }

    Node 재시작시 모든 샤드를 새롭게 할당하면서 발생하는 I/O 비용을 줄이는 효과가 있는 설정이다.
    None으로 설정시 pri/rep 모두 새롭게 할당하지 않는다.

  2. Synced Flush

    POST _flush/synced

    Node 재시작 후 기존 샤드에 존재하던 데이터를 재색인 할 필요가 없는 것을 sync_id로 확인하는 옵션이다. sync_id를 사용하여 빠르게 재색인 여부를 파악하여 복구 시간을 단축시켜준다.

  3. Node Restart
    개별 Node의 서버에 접속하여 순차적으로 Node를 재기동해준다.

  1. Shards 할당 기능 복구
    PUT _cluster/settings 
    {
     "persistent": { "cluster.routing.allocation.enable": null
     } 
    }
    1번에서 샤드의 새로운 할당을 제한했던 것을 원복시키는 옵션이다.