3.4.6. MongoDB 복제


참고

데이터베이스 이미지에 대한 클러스터링을 활성화하기 위한 구성은 예제로 제공되며 프로덕션용이 아닙니다.

Red Hat은 StatefulSet를 사용하여 MongoDB 복제(클러스터링)에 대한 개념 증명 템플릿 을 제공합니다. GitHub에서 예제 템플릿 을 가져올 수 있습니다.

예를 들어 현재 프로젝트의 템플릿 라이브러리에 예제 템플릿을 업로드하려면 다음을 수행합니다.

$ oc create -f \
    https://raw.githubusercontent.com/sclorg/mongodb-container/master/examples/petset/mongodb-petset-persistent.yaml
중요

예제 템플릿은 영구 스토리지를 사용합니다. 이 템플릿을 사용하려면 클러스터에서 영구 볼륨을 사용할 수 있어야 합니다.

OpenShift Container Platform에서 비정상 Pod(containers)를 자동으로 재시작하면 이러한 멤버 중 하나 이상이 충돌하거나 실패하는 경우 복제본 세트 멤버를 재시작합니다.

복제본 세트 멤버가 다운되거나 다시 시작되는 동안 다음 시나리오 중 하나일 수 있습니다.

  1. basic member가 다운된 경우:

    이 경우 나머지 두 멤버가 새 primary를 선택합니다. 지금까지 읽기는 영향을 받지 않지만 쓰기가 실패합니다. 성공적인 선택을 마친 후 일반적으로 쓰기 및 읽기 프로세스가 수행됩니다.

  2. SECONDARY 멤버 중 한 명은 다음과 같습니다.

    읽기 및 쓰기는 영향을 받지 않습니다. oplogSize 구성 및 쓰기 비율에 따라 세 번째 멤버는 복제본 세트를 다시 참여하지 못하여 데이터베이스 복사본을 다시 동기화해야 할 수 있습니다.

  3. 두 멤버가 모두 다운되었습니다.

    3개 멤버의 복제본 세트 멤버가 다른 멤버에 도달할 수 없는 경우 nfsnobody 역할이 있으면 해당 멤버가 됩니다. 이 경우 reads는SECONDARY 멤버에 의해 제공될 수 있으며 쓰기가 실패할 수 있습니다. 하나 이상의 멤버가 백업되는 즉시 선택 작업에서 새 VDDK 멤버를 선택하고 정상적으로 읽고 쓰기 프로세스를 수행합니다.

  4. 모든 멤버가 다운됨:

    이 경우 읽기 및 쓰기가 모두 실패합니다. 두 개 이상의 멤버가 백업되면, 선택에서 프로세스를 정상적으로 읽고 쓰는 후ary 및SECONDARY 멤버를 갖도록 복제본 세트를 다시 설정합니다.

이는 MongoDB에 권장되는 복제 전략입니다.

참고

프로덕션 환경의 경우 가능한 한 멤버를 분리해야 합니다. 하나 이상의 노드 선택 기능을 사용하여 StatefulSet Pod를 다른 노드에 예약하고 독립적인 볼륨에서 지원하는 스토리지를 제공하는 것이 좋습니다.

3.4.6.1. 제한 사항

  • MongoDB 3.2만 지원됩니다.
  • 축소하는 경우 복제본 세트 구성을 수동으로 업데이트해야 합니다.
  • 사용자 및 관리자 암호를 변경하는 작업은 수동 프로세스입니다. 필요한 것은 다음과 같습니다.

    • StatefulSet 구성에서 환경 변수 값 업데이트
    • 데이터베이스의 암호 변경 및
    • 다른 모든 Pod를 재시작합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.