Cassandra 노드 추가

클러스터에 Cassandra 노드를 추가할 때 다음 두 가지 핵심 사항을 고려해야 합니다.

  • 스트리밍을 최소화하고 균형 잡힌 링을 유지하기 위해 Cassandra 링에 있는 노드의 기존 위치를 변경해서는 안 됩니다.
  • 모든 데이터 센터의 노드 수는 일관되게 유지되어야 합니다.

첫 번째 목표를 달성하려면 새 노드를 추가할 때마다 Cassandra 클러스터의 노드 수를 두 배로 늘리는 것이 중요합니다.

예를 들어 두 데이터 센터에 분산된 표준 12노드 클러스터 설치 토폴로지로 시작하면 총 6개의 Cassandra 노드가 존재하게 됩니다(각 데이터 센터에 3개씩). 이 클러스터를 확장하려면 각 데이터 센터에 3개의 노드를 추가하여 총 노드 수를 12개 (각 데이터 센터에 6개 노드)로 늘려야 합니다. 추가 확장이 필요한 경우 각 데이터 센터에 노드를 6개 더 추가하여 총 노드 수는 24개 (각 데이터 센터의 노드 12개)가 됩니다.

이 문서에서는 프라이빗 클라우드용 기존 Edge 설치에 새 Cassandra 노드 3개를 추가하는 방법을 안내합니다. 동일한 단계를 수행하여 노드를 추가할 수 있습니다. 클러스터를 확장할 때 항상 노드 수를 두 배로 늘려야 합니다.

Cassandra 노드의 시스템 요구사항 목록은 설치 요구사항 섹션을 참조하세요.

기존 Edge 구성

프로덕션 시스템에 지원되는 모든 Edge 토폴로지는 3개의 Cassandra를 사용하도록 지정합니다. 노드라는 두 가지 리소스가 있습니다 노드 3개는 구성 파일의 CASS_HOSTS 속성에 지정됩니다. 다음과 같습니다.

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

REGION 속성은 리전 이름을 'dc-1'로 지정합니다. 필요한 기능 정보를 수집할 수 있습니다.

추가할 구성 파일 수정 3개의 새로운 Cassandra 노드를

이 예에서 새로운 Cassandra 노드 세 개는 다음 IP 주소에 있습니다.

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

새 노드를 추가하려면 먼저 Edge 구성 파일을 업데이트해야 합니다.

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 
드림

이렇게 하면 기존 노드가 초기 토큰 설정과 초기 토큰을 유지할 수 있습니다. 기존 노드의 토큰 값 사이에 있음을 알 수 있습니다.

Edge 구성

구성 파일을 수정한 후에는 다음을 수행해야 합니다.

  • 기존 Cassandra 노드 재구성
  • 새 노드에 Cassandra 설치
  • 관리 서버 재구성

기존 Cassandra 재구성 노드

기존 Cassandra 노드에서 다음을 실행합니다.

  1. '-p c'를 사용하여 setup.sh를 다시 실행합니다. 새 구성 파일을 만듭니다.
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

새 노드에 Cassandra 설치

아래 절차에 따라 새 노드에 Cassandra를 설치합니다.

각각의 새 Cassandra 노드에서 다음을 실행합니다.

  1. 3개의 노드에 Cassandra를 설치합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 다음에 apigee-setup 설치 첫 번째 노드의 연결을 설정하려면 Edge Apigee 설정 유틸리티.
    2. 업데이트된 구성 파일을 사용하여 첫 번째 노드에 Cassandra를 설치합니다.
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. 나머지 새 Cassandra 노드에 이 두 단계를 반복합니다.
  2. 새로운 Cassandra 노드 3개를 다시 빌드하고 데이터 센터로 사용할 리전 이름을 지정 노드 (dc-1, dc-2 등)를 추가합니다. 이 예에서는 dc-1입니다. <ph type="x-smartling-placeholder">
      </ph>
    1. 첫 번째 노드에서 다음을 실행합니다.
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      여기서 nodeIP는 Cassandra 노드의 IP 주소입니다.

      다음과 같은 경우에만 사용자 이름과 비밀번호를 전달하면 됩니다. Cassandra에 JMX 인증을 사용하도록 설정했습니다.

    2. 나머지 새 Cassandra 노드에서 이 단계를 반복합니다.

관리 서버 재구성

Management-Server 노드에서

  1. setup.sh를 다시 실행하여 새로 추가된 Cassandra 노드의 관리 서버를 업데이트합니다.
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

모든 라우터 및 메시지 다시 시작 프로세서

  1. 모든 라우터에서 다음을 실행합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. 모든 메시지 프로세서:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

기존 기기의 디스크 여유 공간 Cassandra 노드

새 노드를 추가한 후 이 노드에서 nodetool cleanup 명령어를 사용할 수 있습니다. 기존 노드를 사용하여 디스크 공간을 확보하세요. 이 명령어는 더 이상 소유하지 않기 때문입니다.

새 노드를 추가한 후 기존 Cassandra 노드에서 디스크 공간을 확보하려면 다음 명령어를 실행합니다.

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

다음과 같은 경우에만 사용자 이름과 비밀번호를 전달하면 됩니다. Cassandra에 JMX 인증을 사용하도록 설정했습니다.

재빌드 확인

다음 명령어를 사용하여 다시 빌드가 성공했는지 확인합니다.

nodetool [-u username -pw password] -h nodeIP netstats

이 명령어는 노드가 실행 중이고 색인이 있을 때 MODE: Normal을 나타내야 합니다. 빌드됩니다

nodetool [-u username -pw password] -h nodeIP statusthrift

Cassandra가 새 클라이언트를 수락할 수 있도록 중고 서버가 실행 중임을 나타내야 합니다. 있습니다

nodetool [-u username -pw password] -h nodeIP statusbinary

네이티브 전송 (또는 바이너리 프로토콜)이 실행 중임을 나타내야 합니다.

nodetool [-u username -pw password] -h nodeIP describecluster

새 노드가 이전 노드와 동일한 스키마 버전을 사용한다는 것을 보여줍니다.

nodetool 사용에 관한 자세한 내용은 nodetool 사용 문서