달성하려는 결과와이를 결정한 방식은 매우 다릅니다. 솔직히 말해서 구현하고자하는 것은 나쁜 생각이며 어떻게 든 작동하게 할 수 있다면 오랫동안 작동하지 않을 것입니다.
이 질문에 대답하기 어려운 것은 구현에 직접 뛰어 들어 환경이나 실제로 달성하려는 것에 대해 설명하지 않은 것 입니다. 그렇게하지 마십시오. "작업 결과"를 표시하면 더 나은 결과를 얻을 수 있습니다.
그래도 가능하고 실용적이며 유용한 것을 맛볼 수 있도록 몇 가지 시나리오를 제시하겠습니다.
- 메일이 손실되지 않도록 보장: (필자가 참조하는 문서가 적절하게 설명되어 있으므로 이것이 필요한 것이라고 생각하지 않습니다.) 여기에서 원하는 것은 메일 배달 및 관리 인프라가 다운 된 시간에 관계없이 보장하지 않습니다. 메일을 반송하고 배달시기를 제어 할 수 있습니다. 이를 위해 "간단한"오프 사이트 백업 MX가 적절하게 작동합니다. 많은 데이터를 백업 (모든 스팸 방지 논리, 유효한 사용자 / 별칭 정보로 복제하여 SMTP 시간에 잘못된 메일을 올바로 반송 할 수 있기 때문에 이러한 종류의 항목)을 복제해야하기 때문에 "단순"이라고 말하지만 모두 스크립트 가능 , 약간의주의를 기울여서 자동화 할 수 있고 상당히 사소한 구현이 가능합니다. 모든 메일을 대기열에 넣을 수있는 디스크가 충분하다면
- 전체 메일 시스템 가용성 보장 : 원하는대로 들리지만 간단하지는 않습니다. 기본적으로 전체 사이트 장애가 발생한 경우 사용자에게 "전체"메일 서비스를 제공 할 수 있기를 원합니다. 원칙적으로 복제는 즉각적이지 않기 때문에 실제로는 불가능하지만 최소한 합리적인 수준의 안정성에 도달 할 수 있습니다. 어려운 점은 MTA가 아닙니다. 그것은 메일 저장소 자체입니다. 모든 메일 저장 작업 (새 메일 배달, 메시지 상태 변경, 삭제)을 거의 실시간으로 두 번째 사이트에 복제하는 방법을 알아 내야합니다. . 주기적 rsync의 저렴한 옵션을 사용할 수 있습니다 (마지막 rsync 이후에 수행 된 모든 작업이 영원히 사라질 위험이 있음)장애 조치가 필요한 경우) 또는 다양한 파일 또는 블록 수준 복제 기술을 사용하여 거의 실시간으로 동기화를 시도하고 유지합니다 (훨씬 더 복잡한 구성 및 운영 대신 데이터 손실량 감소) . 일부 메일 시스템은 일종의 내장 복제 기능을 지원하므로보다 쉽게 사용할 수 있습니다. 그리고 저기 실패의 모든 문제는, 그리고 당신이 그렇게하고 실패 어떻게 다시 열심히 다시이며, 마지막으로 당신은 OS가 당신이 한 업그레이드 할 것을 보장하기 위해 주기적으로 테스트 할 수있어 다시는하지 않았다 동안 뭐든지 ...
기본적으로 후자의 옵션은 고통스럽고 성가시다. 내가 개인적으로 선호하는 것, 당신이 그것을 벗어날 수 있다면 (그리고 얼마나 자주 당신이 할 수 있는지에 놀랐을 것입니다) 당신이 정말로 좋고 튼튼한 바구니를 얻었는지 확인한 후에 모든 계란을 한 바구니에 넣는 것입니다 (적절한 시스템 공학 ), 바구니 패치 및 도구를 준비하고 ( 높은 복구성에 중점을 둡니다 ) 사람들이 가끔씩 몇 개의 알이 부러 질 수 있으며 실제로 미안하지만 인생이 완벽하지 않다는 것을 사람들이 알도록 보장 (합리적이지 않은 SLA 보증을하지 마십시오).
초고 가용성이 필요할 때가 있으며이를 보장하는 시스템을 구축했지만 간단하지 않으며 많은 경우 비용 효율적이지 않으므로 여기에 있습니다. 그렇습니다. HA는 시원하고 섹시하며, 복잡성의 우뚝 솟은 괴물을 짓는 것에 대한 괴짜를 얻지 만 우리는 자존심을 쓰지 않습니다. 우리는 비즈니스 가치를 제공하기 위해 왔습니다. 죄송합니다. Rube Goldberg의 고 가용성 멀티 사이트 메일 클러스터는 단순하고 강력한 메일 서비스 및 가끔 "우리"만큼 가치를 제공하지는 않습니다. 메일 중단에 대해 유감스럽게 생각합니다. 1 시간 후에 시스템을 다시 사용할 수있게 되었으니 언제든지 커피와 머핀을 보내 주시기 바랍니다. "