MongoDB와 장애

Pinterest

글 : 이승용

본 장에서는 MognoDB의 설치 유형에 따른 장애 상황을 재현하고, 각 상황에 따른 대처 방안을 살펴본다. MongoDB의 설치는 크게 독립standalone과 샤드shard 서버 유형으로 구분된다. 독립standalone 서버는 복제를 제외한 데이터 저장소가 한 서버에 집중되는 설치 유형으로 컬렉션이 분리되지 않는 반면, shard는 수평 확장이 가능한 구조로 구성된 설치 유형으로 샤드 단위로 서버가 구성된다.[1] 독립 서버의 복제 모드인 경우는 mongos가 설치되지 않기 때문에 장애에 따른 대처 사항을 프로그래머가 직접 작업한다는 부담이 있다. 하지만, 샤드 서버는 mongos가 설치되어 복제 집합의 마스터를 스스로 찾아내어 연결을 해 주기 때문에 프로그래머 입장에서 장애가 발생하였을 경우를 대비한 새로운 마스터를 찾을 필요는 없다. 본 장에서는 이러한 설치 유형에 따른 MongoDB의 장애를 발생시킴으로써 장애에 따른 MongoDB의 장애 복구 과정 및 장애 발생에 따른 문제점을 살펴 보기로 한다.

본 장에서 수행되는 모든 MongoDB 서버 프로세스들은 한 대의 컴퓨터에서 수행한다. 만약 복수개의 컴퓨터에서 분산되어 설치하기를 원한다면, IP를 변경하여 설치하면 될 것이다. 본 장에서 수행한 결과는 모두 Ubuntu 12.04 64bit 환경에서 수행하였다. 같은 Linux 계열이라고 하여도 CentOS와 Ubuntu의 수행 결과는 서로 상이할 수 있다. Ubuntu의 경우는 데스크탑 용도의 PC 계열인 반면, CentOS는 서버 용도로 사용된다. 실제적으로 MongoDB를 서로 상이한 OS에서 테스트를 수행할 경우, 성능 및 결과 값이 다르게 나타나므로 이점을 주의하기 바란다.


[1] 본 장에서 다루는 서버 설치 방법은 모두 물리적 서버 한 대에서 모두 설치하는 방법으로 다룬다. 만약 여러 대의 서버에서 설치하여 테스트를 하고자 하는 경우는 IP를 변경하여 서로 다른 서버에 설치하면 된다.


  • Facebook
  • Twitter
  • Delicious
  • LinkedIn
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS
  1. s_jeho
    09:36에 3월 15th, 2013 | #1

    좋은 글 감사하게 보고있습니다, 그러나 중간에 Ubuntu 와 CentOS 의 건을 비교하시면서, 이는 자칫 FUD 를 일으킬 수 있는 부분이라고 생각됩니다. 데스크탑 시장에서 성공한 Ubuntu도 서버 에디션이 존재하며, 유용한 유틸리티와 훌륭한 문서화가 되어있습니다. 또한 CentOS와 마찬가지로 설치되는 패키지를 최소화 하여 충분히 좋은 성능을 이끌어 낼 수 있었습니다. 둘다 훌륭한 OS 이지만, 받아들이는 분에 따라서는 잘못 전달할 수 도 있을듯하여 감히 댓글을 남깁니다, 언제나 좋은 글들에 감사드리며 늘 유용하게 참고하고 있습니다. 감사합니다.

  1. 엮인글들이 아직 없습니다.