Cassandra 노드 추가

Private Cloud용 Edge v4.19.01

이 문서에서는 Private Cloud 설치용 기존 Edge에 새 Cassandra 노드 3개를 추가하는 방법을 설명합니다.

기존 Edge 설치에 Cassandra 노드를 1~2개 추가할 수 있지만 Apigee에서는 노드를 한 번에 3개 추가하는 것이 좋습니다.

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

기존 Edge 구성

프로덕션 시스템에 지원되는 모든 Edge 토폴로지는 Cassandra 노드 3개를 사용하도록 지정합니다. 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'로 지정합니다. 새 Cassandra 노드를 추가할 때 이 정보가 필요합니다.

새 Cassandra 노드 3개를 추가하도록 구성 파일 수정

이 예시에서 새로운 Cassandra 노드 3개는 다음 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 노드마다 다음을 실행합니다.

  1. 3개의 노드에 Cassandra를 설치합니다.
    1. Edge Apigee-setup 유틸리티 설치에 설명된 대로 첫 번째 노드에 apigee-setup를 설치합니다.
    2. 업데이트된 구성 파일
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
      을 사용하여 첫 번째 노드에 Cassandra를 설치합니다.
    3. 나머지 새 Cassandra 노드에 이 두 단계를 반복합니다.
  2. 구성 파일에 REGION 속성으로 설정된 리전 이름을 지정하여 새 Cassandra 노드 3개를 다시 빌드합니다. 이 예에서는 'dc-1'입니다.
    1. 첫 번째 노드에서 다음을 실행합니다.
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

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

      Cassandra에 JMX 인증을 사용 설정한 경우에만 사용자 이름과 비밀번호를 전달하면 됩니다.

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

관리 서버 재구성

관리-서버 노드에서

  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 노드에서 더 이상 소유하지 않는 구성 토큰을 지웁니다.

새 노드를 추가한 후 기존 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 describecluster

새 노드가 이전 노드와 동일한 스키마 버전을 사용하고 있음을 표시해야 합니다.

nodetool 사용에 대한 자세한 내용은 nodetool 사용 문서를 참조하세요.