1.4. 두 개의 Dovecot 서버 간 복제 구성


양방향 복제를 사용하면 Dovecot 서버를 고가용성으로 만들 수 있으며, Bookinfo 및 POP3 클라이언트가 두 서버의 kdump에 액세스할 수 있습니다. Dovecot는 각box의 인덱스 로그의 변경 사항을 추적하고 안전한 방식으로 충돌을 해결합니다.

두 복제 파트너 모두에서 이 절차를 수행합니다.

참고

복제는 서버 쌍 간에만 작동합니다. 결과적으로 대규모 클러스터에서는 여러 개의 독립적인 백엔드 쌍이 필요합니다.

사전 요구 사항

  • 두 서버 모두 동일한 인증 백엔드를 사용합니다. LDAP 또는 SQL을 사용하여 계정을 중앙에서 유지하는 것이 좋습니다.
  • Dovecot 사용자 데이터베이스 구성은 사용자 목록을 지원합니다. doveadm user '*' 명령을 사용하여 이를 확인합니다.
  • dovecot는 사용자 ID(UID) 대신 vmail 사용자로 파일 시스템의 kdump에 액세스합니다.

절차

  1. /etc/dovecot/conf.d/10-replication.conf 파일을 만들고 여기에 다음 단계를 수행합니다.

    1. notifyreplication 플러그인을 활성화합니다.

      mail_plugins = $mail_plugins notify replication
    2. 서비스 복제 기 섹션을 추가합니다.

      service replicator {
        process_min_avail = 1
      
        unix_listener replicator-doveadm {
          mode = 0600
          user = vmail
        }
      }

      이러한 설정으로 Dovecot는 dovecot 서비스가 시작될 때 하나 이상의 replicator 프로세스를 시작합니다. 또한 이 섹션에서는 replicator-doveadm 소켓의 설정을 정의합니다.

    3. 서비스 집계 기 섹션을 추가하여 replication-notify-fifo 파이프 및 replication-notify 소켓을 구성합니다.

      service aggregator {
        fifo_listener replication-notify-fifo {
          user = vmail
        }
        unix_listener replication-notify {
          user = vmail
        }
      }
    4. 서비스 doveadm 섹션을 추가하여 복제 서비스의 포트를 정의합니다.

      service doveadm {
        inet_listener {
          port = 12345
        }
      }
    5. doveadm 복제 서비스의 암호를 설정합니다.

      doveadm_password = replication_password

      두 서버에서 암호는 동일해야 합니다.

    6. 복제 파트너를 구성합니다.

      plugin {
        mail_replica = tcp:server2.example.com:12345
      }
    7. 선택 사항: 최대 병렬 dsync 프로세스 수를 정의합니다.

      replication_max_conns = 20

      replication_max_conns 의 기본값은 10 입니다.

  2. /etc/dovecot/conf.d/10-replication.conf 파일에 보안 권한을 설정합니다.

    # chown root:root /etc/dovecot/conf.d/10-replication.conf
    # chmod 600 /etc/dovecot/conf.d/10-replication.conf
  3. nis_enabled SELinux 부울을 활성화하여 Dove adm 복제 포트를 열 수 있습니다.

    setsebool -P nis_enabled on
  4. 복제 파트너만 복제 포트에 액세스할 수 있도록 firewalld 규칙을 구성합니다. 예를 들면 다음과 같습니다.

    # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.0.2.1/32" port protocol="tcp" port="12345" accept"
    # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv6" source address="2001:db8:2::1/128" port protocol="tcp" port="12345" accept"
    # firewall-cmd --reload

    IPv6 주소에 대한 서브넷 마스크 / 32 및 IPv6 주소의 서브넷 마스크는 지정된 주소에 대한 액세스를 제한합니다.

  5. 다른 복제 파트너에서도 이 절차를 수행하십시오.
  6. 다시 로드 Dovecot:

    # systemctl reload dovecot

검증

  1. 한 서버의 Webhook에서 작업을 수행한 다음 Dovecot가 변경 사항을 다른 서버에 복제했는지 확인합니다.
  2. 복제자 상태를 표시합니다.

    # doveadm replicator status
    Queued 'sync' requests        0
    Queued 'high' requests        0
    Queued 'low' requests         0
    Queued 'failed' requests      0
    Queued 'full resync' requests 30
    Waiting 'failed' requests     0
    Total number of known users   75
  3. 특정 사용자의 복제본 상태를 표시합니다.

    # doveadm replicator status example_user
    username        priority  fast sync  full sync  success sync  failed
    example_user    none      02:05:28   04:19:07   02:05:28      -

추가 리소스

  • dsync(1) man page
  • /usr/share/doc/dovecot/wiki/Replication.txt
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.