3

저는 클러스터 컴퓨팅에서 다양한 아키텍처를 연구 중입니다. 인기있는 것 중 일부는 -리더 선출 알고리즘

  1. 마스터 - 슬레이브입니다. 마스터 - 슬레이브의
  2. RPC
  3. ...

는 정상적인 방법으로는 마스터에 의해 제어 노예로 마스터 &으로 기계의 무리를 하나의 시스템을 설정하는 것입니다. 여기에 하나의 특별한 골치 거리가 나를 관심있어. Leader-Election Algo이라고 불리며 어느 기계가 마스터가 될지를 임의로 선택합니다.

제 질문은 - 왜 이런 식으로 마스터 컴퓨터를 선출하겠습니까? 이 접근 방식은 기계를 마스터로 수동으로 선택하는 것과 비교할 때 어떤 이점이 있습니까?

답변

10

이 알고리즘을 몇 가지 장점이있다 : 예를 들어 당신 이 가장 높은 성능 노드를 선택할 수 있도록 리더로서 노드의

  1. 선택이 동적으로 수행됩니다, 새로운 노드의 도착 차종 될 수있다 더 나은 선택. 노드 중 하나가 중대한 오류 다른 선택을 수동으로 리더를 변경 할 필요가 없습니다 (예를 들어 PC가 종료됩니다)이있는 경우
  2. 동적 선택의 리더에 의해 또 다른 좋은 방법이다.

  3. 수동으로도 수동으로이 노드를 사용하는 다른 모든 노드 를 구성해야 노드를 선택한 경우

    는 수동으로 시간을 설정 ...하지만이 알고리즘은 타이밍 문제를 처리하는 데 도움이 될 것입니다.

  4. 예를 들어 (그다지 관련성이없는) 이유는 무엇입니까 대부분의 경우 DHCP를 사용하고 있습니까? 이 알고리즘으로 너무 많은 구성이 전달됩니다.
1

이러한 알고리즘을 사용하는 주된 아이디어는 추가 구성을 없애고 일종의 유연성과 전체 시스템의 안정성을 추가하는 것입니다. 그러나 보통 (HPC/MPI 어플리케이션에서) 마스터 노드는 수동으로 선택됩니다.

마스터 선택 알고리즘이 매우 쉽다고 가정합니다. 사용 가능한 시스템 목록을 얻고 가장 높은 IP 주소를 가진 시스템을 선택하십시오. 이 경우 모든 노드에서 새 프로세스를 쉽게 시작할 수 있으며 자동으로 마스터 노드를 찾습니다.

이러한 아이디어의 좋은 예가 프록시의 수가 유연하고 마스터 노드가 런타임에서 선택되는 WCCP 프로토콜 "지정된 프록시"선택 알고리즘입니다.

+0

나는 그것이 오래된 대답이라는 것을 알고 있지만 다른 사람들이 읽고있는 경우를 대비해서 당신을 바로 잡아야했습니다. 리더 선거 알고리즘 사이의 주된 아이디어는 동적 시스템에서 리더를 갖는 것입니다. 즉,이를 선택하는 알고리즘이 있어야 함을 의미합니다 (따라서 리더 선출 알고리즘 - 그 중 많은 수가 있습니다). MPI에서 주 알고리즘은 최종 알고리즘이 아닌 주 알고리즘을 테스트 할 때만 수동으로 선택됩니다. – amb

1

노드 네트워크를 고려하면 항상 한 리더 노드를 갖는 것이 중요합니다. 현재 지도자가 죽으면, 네트워크는 어떻게 다른 지도자를 선택해야 하는가. 이 시나리오와 요구 사항을 감안할 때 두 가지 가능한 방법이 있습니다.

  1. 리더가 누가 될지를 결정하는 중앙 노드 가 중앙 시스템 접근. 현재 리더가 사망하면이 중앙 노드가 이 리더 역할을 인수해야하는 사람을 결정합니다. 그러나 이것은 단일 지점의 실패입니다. 은 리더 결정에 대한 책임이 있고, 은 현재 리더가 죽으면 리더를 선택하는 사람이 없습니다. 입니다. 우리가 를 사용하여 모든 노드에 로, 리더의 선택을 분산 할 수있는 동일한 시나리오에서와 지도자가되어야합니다 합의 에 와서

  2. . 따라서 우리는 중앙 노드를 가질 필요가 없습니다. 중앙 노드는 리더가 누구인지 결정하여 단일 실패 지점을 제거합니다. 리더 노드가 죽으면 노드 장애를 감지하는 방법이있을 것이며 모든 노드는 분산 된 리더 선택 알고리즘을 시작하고 리더를 선출하는 데 합의하게됩니다.

그래서, 한마디로 당신은 시스템이 일부 노드, 리더 선거 알고리즘을 선택 걸릴 이러한 시스템에서, 단일 장애 지점을하지 않고 확장 성을 의미한다 아마 때문에, 더 중앙 제어가없는 시스템이있을 때 사용됩니다.