3 개의 복제가있는 20 개의 노드로 구성된 프로덕션 클러스터가 있었으며 데이터의 일부 (예 : 3 복제)를 1 복제만으로 테스트 환경에 복사하려고합니다.cassandra에서 cassandra로 데이터 복사
sstableloader를 사용할 수 있지만 네트워크를 통해 모든 600GB를 다른 클러스터에 복사해야합니까?
데이터 복사본 하나만 다른 클러스터로 이동하는 방법입니까?
가장 좋은 방법은 무엇입니까?
3 개의 복제가있는 20 개의 노드로 구성된 프로덕션 클러스터가 있었으며 데이터의 일부 (예 : 3 복제)를 1 복제만으로 테스트 환경에 복사하려고합니다.cassandra에서 cassandra로 데이터 복사
sstableloader를 사용할 수 있지만 네트워크를 통해 모든 600GB를 다른 클러스터에 복사해야합니까?
데이터 복사본 하나만 다른 클러스터로 이동하는 방법입니까?
가장 좋은 방법은 무엇입니까?
나는 당신이 RandomPartitioner를 사용하고 있다고 가정합니다. 수행중인 작업은 테스트 환경에있는 노드 수에 따라 다릅니다. SimpleStrategy의 경우
:
A. 당신이 당신의 테스트 환경에서 20 개 노드를 사용하는 경우 :
B. 당신이 생산에 비해 노드의 수를 적게 사용하는 경우
이테스트를 위해 복원 된 버전의 특정 시점에서 데이터의 일관성에 신경 쓰지 않으면 스냅 샷을 건너 뛰고 데이터 디렉토리를 바로 복사 할 수 있습니다.
고려할 사항 :
이 프로세스는 디스크 입출력에 큰 영향을줍니다. 라이브 클러스터에서이 작업을 수행하는 경우 스냅 샷을 사용하여 특정 시점에서 상태를 잠그고 점진적으로 복사하십시오.
NetworkTopologyStrategy의 경우 :
당신은 위의 과정을 반복하지만, 단 하나의 랙에있는 데이터의 100 %를 형성하는 노드의 조합으로 복사 할 수 있습니다.이 랙의 노드에 복제되지 않은 다른 랙의 노드에 대해 누락 된 쓰기가 발생할 가능성이있는 경우 위와 같은 모든 노드의 모든 내용을 복사해야합니다.
이상적인 솔루션 :
, 당신이 주위에 약간의 자동화를 만들고 싶어 내 회사처럼 당신이 테스트를 위해 매일이 작업을 수행하려는 경우. 내 생각에 백업 및 복원을위한 최고의 자동화는 Netflix의 Priam입니다. https://github.com/Netflix/Priam
S3에 프로덕션 백업을 저장했습니다. 코드는 테스트중인 새 시스템을 불러오고 하나의 영역에 대해 동일한 토큰을 할당하고 마지막 날 백업 이후의 범위까지 프리앰 스냅 샷 시간을 설정하면 테스트 노드가 자동으로 s3 백업에서 데이터를 수신합니다.
희망은 내 도움이 당신을 도왔습니다.
arya. 하지만 우리는 murmur3 파티션을 사용하고 vnode는 토큰이 아닙니다. 우리는 크기가 계층화 된 압축과 함께 SimpleStrategy와 CF를 사용하고 있습니다. 테스트 클러스터에 노드가 3 개 밖에 없었습니다. 어떻게 20 노드 데이터를 3 노드로 복사 할 수 있습니까? 3 노드에 데이터를 배포해야합니까? – Rock