2013-06-10 1 views
1

셀러리에 대해 알고있는 한 셀러리 비트는 SPOF로 간주되는 스케줄러입니다. 즉, 서비스가 중단되고 예약되고 실행되지 않습니다.셀러리가 HA를 이길 - 맥박 조정기를 사용합니까?

필자는 HA에 유휴 상태 일 때 master/slave, master가 주기적으로 (매 30 분마다) 호출하는 중입니다.

마스터가 충돌하면 슬레이브가 마스터가되어 데드 마스터에서 왼쪽을 집어 들고 정기적 인 작업을 수행해야합니다. (리더 선거)

여기에서의 요구 사항은 다음과 같습니다

작업마다 30 분을 (이것은 셀러리 비트에 의해 달성 될 수있다)
  • 작업이 그냥 전화 매 30 아니라, 원자되지 않습니다 예정이다
    1. 실패하거나 성공한 분. 예를 들어, 30 분마다,이 태스크는 50 개의 다른 호출을 작성한다고 가정 해보십시오. 마스터가 25 초를 마치고 추락하면 슬레이브는 50 개의 모든 콜을 다시 거치지 않고 나머지 25 개를 끝내야합니다.
    2. 데드 마스터가 실패로 재부팅 될 때 이미 마스터가 실행 중임을 인식해야합니다. 반드시 주인이 될 필요는 없으며 주인이 다시 충돌 할 때까지 그냥 기다려야합니다.

    페이스 메이커는 셀레 리와 결합하여이를 달성하기위한 올바른 도구입니까?

  • 답변

    0

    짧은 대답은 "예"입니다. 맥박 조정기가 원하는대로 할 것입니다.

    더 긴 대답은 시퀀스 도중에 다시 시작해야하기 때문에 아키텍처가 까다로운 것입니다.

    여기에는 두 가지 솔루션이 있습니다. 첫 번째는 일종의 데이터베이스 (또는 DRBD 파일 시스템)를 사용하여 50 개의 호출 중 25 개가 완료되었다는 사실을 기록하는 것입니다. 이 문제는 완료된 24 건의 통화 또는 아직 완료되지 않은 25 건이 아니라 시스템이 작동을 멈추었을 때의 문제입니다. 25 번에 전화 해. C25가 아직 시작되지 않았다면 당신은 괜찮습니다. 슬레이브는 Pacemaker 컨트롤로 작동하고 DRBD 파일 시스템은 페일 오버되며 새 마스터는 # 25에서 # 50까지 실행됩니다. 25 번이 호출되었지만 오래된 주인이 아직 그것을 표시하지 않았다면 어떻게됩니까?

    당신은 건축가를 할 수 그것은 그것이 실제로 그것을 실행 전에 완전한 호출,이 경우, C25은이 특별한 경우에 호출되지 않습니다 또는 당신이 그것을 완전 호출 후 표시 할 수 있습니다를 표시하도록 이 경우 C25가 두 번 호출됩니다.

    이상적으로, 당신은 멱등 원을 호출 할 것입니다. 이것은 두 번째 옵션입니다. 어떤 경우에는 C1 -> C25가 반복적으로 영향을 미치지 않기 때문에 다시 호출되는 것이 중요하지 않습니다. C26 -> C50은 한 번만 호출됩니다. 나는 당신의 아키텍처에 대해 어느 정도는 잘 될지 모르지만 잘하면 이것이 도움이됩니다.

    확실히 페이스 메이커가 오류를 처리합니다. DRBD를 추가하면 두 시스템간에 상태를 저장할 수 있습니다. 그러나 부분 통화 문제를 직접 해결해야합니다.

    관련 문제