샤드 서버

Pinterest

글 : 이승용

샤드shard 서버는 데이터 분할을 시킬 수 있는 서버 구조로 모든 분산데이터베이스의 기본 기능인 샤딩sharding을 수행한다. 앞 절의 복제 독립 서버의 단점은 클라이언트가 접속한 마스터 서버가 장애가 발생한다면, 클라이언트는 새로운 마스터 서버를 선출된 다음에 새로운 마스터 서버에 대한 정보를 자동으로 알아낼 수 있는 방법이 없다는 것이다.

이러한 문제점은 클라이언트는 복제 독립 서버일 경우에는 복제 집합에 있는 모든 서버의 상태를 수시로 점검하고 마스터 인지 아닌지를 판독하는 프로세스가 동작하고 있어야 한다. 이러한 모든 수고를 샤드 서버 구조에서는 mongos가 대신해 준다. Mongos는 MongoDB의 샤드 서버 구조에 새롭게 추가된 서버로 다음과 같은 주요 업무를 수행한다.

  • 복제 집합의 마스터 서버와의 연결
  • 샤딩 정책 수행

첫 번째 역할은 MongoDB를 사용하는 클라이언트는 복제 집합의 마스터가 누구인지 알지 않아도 mongos를 통해 알아서 데이터를 적재할 수 있다는 것이다. 즉, 임의의 복제 집합에서 마스터가 존재하는 이상, 사용자는 데이터를 적재할 수 있다. 두 번째 역할은 복제 집합 사이의 데이터 분할을 결정하는 것으로, 일정 크기의 데이터 크기가 적재되면 이를 두 조각으로 분리한 후, 새로운 복제 집합으로 데이터를 이동시키는 기능을 수행한다.

위에서 살펴본 mongos가 존재하기 때문에, MongoDB 사용자는 장애에 대한 예외 처리가 상당히 수월해 졌으며, 임의의 복제 집합 안의 마스터가 사라지지 않는 이상 장애에 대한 관리자 처리가 서비스 중단 없이 이루어 질 수 있다.
 
 
다음 글 : 단일 샤드 서버 구성
 


  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
  1. 아직 댓글이 없습니다.
  1. 엮인글들이 아직 없습니다.