감사합니다.
카산드라는 클러스터 이름을 기반으로 어떤 노드가 클러스터의 일부인지 알고 있습니다. 두 클러스터에서 클러스터 이름이 같지 않으면 클러스터의 이름을 동일하게 변경하십시오.
두 번째 단계는 하나의 클러스터를 다른 노드를 연결하는 상위 클러스터로 사용하는 것입니다. 이 것을 부모 클러스터라고하고 다른 하나는 합류 클러스터라고합시다. 이 단계에서는 조인 클러스터에있는 키 공간과 열 패밀리를 상위 클러스터와 동일하게 정의하십시오. 이 단계에서 상위 클러스터에는 키 공간 정의가 있지만 가입 클러스터의 데이터는 없습니다. 한편, 참여 클러스터에서는 상위 클러스터에있는 키 공간을 동일한 f}으로 정의해야합니다.
두 클러스터의 노드는 통신 할 수 있도록 공용 인터페이스가 있어야합니다. Google Cloud에서이 작업을 수행하는 방법을 잘 모르겠습니다 만 두 계정 모두에서 인스턴스에 공용 인터페이스를 제공 할 수 있다고 확신합니다. 그런 다음이 두 클러스터를 카산드라 개념의 두 개의 서로 다른 데이터 센터로 간주하고 모든 머신이 서로 카산드라 포트에 액세스 할 수있게되면 각 클러스터에서 cassandra.yaml을 변경하고 다른 클러스터의 노드를 추가합니다. 등록 정보 파일 스 니치를 사용하여 복제를 관리하는 경우이를 업데이트하여 모든 노드와 해당 위치를 인식 할 수 있도록해야합니다.
마지막으로 롤링을 다시 시작하고 키 공간 복제 요소를 변경하여 원하는대로 복제하십시오.
업데이트 : 공용 인터페이스가 활성화되면 공개 인터페이스 간의 복제를 위해 암호화를 올바르게 설정하고 해당 공용 인터페이스에 대한 액세스를 모든 cassandra의 IP에만 제한해야한다는 Daniel Compton의 설명을 추가합니다 노드.
클러스터의 이름을 바꿀 수 있으며 이전에이 프로세스를 한 번 수행했습니다.
클러스터의 이름을 바꾸려면 cassandra.yaml에서 클러스터 이름을 변경하십시오. 그런 다음 각 노드의 system.local 테이블을 변경하여 해당 변경 사항을 반영하고 롤링을 다시 시작하십시오. 클러스터 이름을 변경의 세부 사항은 여기에서 찾을 수 있습니다 :
cassandra - Saved cluster name Test Cluster != configured name
공개 인터페이스를 Cassandra 노드에 제공하면 공개적으로 액세스 할 수 있습니다. http://thelastpickle.com/blog/2015/09/30/hardening-cassandra-step-by-step-part-1-server-to-server.html을 할 수는 있지만 두 가지를 허용하는 것이 좋습니다. 프로젝트는 서로 다른 리소스에 액세스합니다. –
이 답변은 대단히 용의주합니다. "첫 번째 단계는 클러스터 이름을 동일하게 변경하는 것입니다."- 어떻게 사용자가 그렇게 할 것을 제안합니까? 나는 그 충고가 실제로 가능하다는 것을 강력하게 의심한다. –
둘 다 감사합니다. 귀하의 의견을 반영하도록 답변을 업데이트했습니다. – Arya