MongoDB 8.0 부터는 일반적인 샤딩된 클러스터 메타데이터 외에 애플리케이션 데이터를 저장 하도록 config 서버 를 구성할 수 있습니다. config 서버 와 샤드 서버 기능을 모두 제공하는 mongod 노드 를 config 샤드 라고 합니다. 샤드 서버 기능 없이 독립형 --configsvr 로 실행되는 mongod 노드 를 전용 config 서버 라고 합니다.
샤딩된 클러스터 에는 config 서버 가 있어야 하지만, config 샤드 (내장된 config 서버) 또는 전용 config 서버 일 수 있습니다. config 샤드 를 사용하면 필요한 노드 수가 줄어들고 배포서버 가 간소화될 수 있습니다. config 샤드 클러스터 는 임베디드 config 서버 클러스터 라고도 합니다. 여러 샤딩된 클러스터에 동일한 config 서버 를 사용할 수 없습니다.
사용 사례
전용 config 서버는 그 자체의 복제본 세트로 실행되기 때문에 전용 config 서버보다 config 샤드의 비용이 적습니다. config 샤드는 config 서버 역할을 기존 샤드의 복제본 세트에 결합하므로 클러스터에는 두 개 대신 하나의 복제본 세트가 필요합니다. config 샤드를 사용하면 샤드 수가 적을 때 측정할 수 없는 성능 영향이 없습니다. 전용 config 서버는 클러스터 메타데이터를 애플리케이션 데이터와 분리하는데, 이는 특정 기능에 필요합니다.
다음 기능 중 하나 이상을 사용하는 경우 전용 config 서버를 사용합니다.
Queryable Encryption collections
쿼리 가능 백업(온프레미스)
On MongoDB Atlas, 클러스터에 5개 이상의 샤드가 있으면 클러스터는 구성 샤드에서 전용 config 서버로 자동으로 전환됩니다.
행동
내장된 config 서버 클러스터 에서는 config 샤드 가 클러스터 메타데이터 와 사용자 데이터를 저장 하는 데 사용됩니다. 샤딩된 클러스터 배포서버 의 복잡성을 줄이는 데 도움이 됩니다.
샤딩된 컬렉션 데이터와 샤딩된 되지 않은 컬렉션 데이터를 구성 샤드 에 저장 수 있습니다. config 서버 역할을 할 뿐만 아니라 샤드 의 모든 속성을 가지고 있습니다.
구성 샤드 사용 확인
다음 방법 중 하나를 사용하여 샤딩된 클러스터 config 샤드 사용하는지 확인할 수 있습니다.
mongosh에서sh.isConfigShardEnabled()메서드를 실행합니다.sh.isConfigShardEnabled()출력에enabled: true가 포함되어 있으면 클러스터 config 샤드 사용합니다. 출력에enabled: false가 포함되어 있으면 클러스터 config 샤드 사용하지 않는 것입니다.에
listShardsadminmongos연결된_id"config"상태에서 데이터베이스 대해 명령을 실행하고 가 로 설정하다 문서 의 출력을 검사합니다.listShards출력에_id가"config"로 설정하다 문서 포함되어 있지 않은 경우, 클러스터 구성 샤드 사용하지 않습니다.
다음 예시 listShards 명령을 실행하고 _id 가 "config"로 설정하다 문서 찾으려고 합니다.
db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")
이 예시 에서 반환된 문서 에는 _id 이(가) "config"(으)로 설정하다 있어 이 클러스터 구성 샤드 사용하고 있음을 확인합니다.
{ _id: "config", host: "configRepl/localhost:27018", state: 1, topologyTime: Timestamp({ t: 1732218671, i: 13 }), replSetConfigVersion: Long('-1') }
명령.
전용 config 서버 를 config 샤드 로 실행 하도록 구성하려면 transitionFromDedicatedConfigServer 명령을 실행 합니다.
전용 config 서버 로 실행 config 샤드 를 구성하려면 transitionToDedicatedConfigServer 명령을 실행 합니다.