2008-11-01 4 views
2

며칠 전 베오그라드에서 IT 컨퍼런스에 참석했습니다. Agenda에는 MySql에 대한 주제와 MySql의 클러스터링이 있으며 MySql의 사람들은 클러스터 분할 뇌 문제에 대한 최상의 솔루션을 보유하고 있다고 말했습니다. 누구에게도이 사실을 알리는가, 아니면 마케팅 트릭인가?MySql 클러스터 "split brain"솔루션?

답변

5

MySQL 클러스터에는 적어도 하나의 노드가 분할 브레인 시나리오를 처리하기위한 중재자가 될 수있는 시스템이 적어도 3 개 필요합니다. 두 시스템은 데이터 노드/mysqld 노드를 실행할 수 있고 세 번째는 관리 노드를 실행해야합니다 (일반적으로 조정자는 기본적으로 있지만 SQL 노드도 마찬가지로 작동 할 수 있음).

분할 된 뇌 설정 (즉, 두 개의 데이터 노드가 더 이상 서로 이야기 할 수는 없지만 계속 실행 중임)이 발생하면이를 깨닫고 중재자에게 어떤 노드가 허용되는지 결정하도록 요청합니다 계속 실행하십시오. 노드가 중재자와 대화 할 수 없으면 종료됩니다. 중재자가 말할 수있는 모든 노드에서 노드를 선택하여 실행을 계속하고 다른 노드에게 시스템 종료를 알립니다.

일반적으로 중재자는 관리 노드이지만 데이터 노드 일 수도 있습니다. 중재자가 실패하면 클러스터는 새로운 것을 선출 할 수 있습니다. 그러나 중재하는 동안이 작업을 수행 할 수 없으므로 데이터 노드와 중재자가 동시에 실패하면 세 번째 노드가 종료됩니다.

물론 노드 그룹이 여러 개있을 때 좀 더 복잡해 지지만 같은 기본 아이디어가 적용됩니다.

자세한 내용은 MySQL Cluster FAQ에서 확인할 수 있습니다.

+0

나는 이것 모두를 안다, 당신이 기본에 대답하지 않는다는 것이 사실인가 그렇지 않은가? – vaske

+0

"최고"는 주관적이지만 꽤 나에게 좋은 것처럼 보입니다. 중재는 이것에 관한 가장 보편적으로 받아 들여지는 해결책입니다 (종종 디스크 공유 디스크를 통해 이루어집니다). 새로운 중재자를 선출 할 수 있다는 사실은 그것이 유연하다는 것을 의미합니다. 분할 된 두뇌 시나리오를 다루는 다른 방법을 본 적이 있습니까? –

0

mysql의 클러스터 지원이 좋다고 들었지만 사실이든 아니든 주관적입니다. 그러나이 개념은 확실히 지원되며 Postgres 용 Slony-I와 같은 다른 DB 용으로 사용됩니다.

성능, 가동 시간, 설정 용이성 등 가장 중요한 측면을 분명히하면 더 유용한 답변을 얻을 수 있습니다.