출처:
https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards
물리적 구성과 상관없이 여러 노드가 하나의 클러스터로 묶이기 위해선 클러스터명 cluster.name
설정이 묶여질 모든 노드들이 동일해야 함. 같은 서버, 같은 네트워크 망 내부에 있어도 cluster.name
이 동일하지 않으면 논리적으로 서로 다른 클러스터로 실행이 됨.
하나의 서버에서 여러 클러스터를 실행할 수도 있다. 클러스터 명 다르게 해서 노드 실행하면 됨.
서로 다른 클러스터끼리는 데이터를 통신할 수 없음.
노드가 처음 실행될때, discovery.seed_hosts: []
에 설정된 네트워크 상의 다른 노드들을 찾아 하나의 클러스터로 바인딩하는 과정을 디스커버리라고 함. 다음과 같은 과정으로 일어난다.
discovery.seed_hosts
설정에 있는 주소 순서대로 노드 확인
cluster.name
확인
단일 데이터 단위를 도큐먼트로 하고, 이 도큐먼트의 집합을 인덱스(Index)라고 한다. 인덱스라는 단어가 혼동을 줄 수 있으므로, 데이터 저장된위로써의 인덱스는 특별이 인디시즈(indices)라고 부르기도 함.
인덱스는 샤드(shard)라는 단위로 분리되고 각 노드에 분산되어 저장됨. 샤드는 원래 루씬의 단일 검색 인스턴스임. 다음은 하나의 인덱스가 5개의 샤드로 저장된 모습.