Cassandra 랙 지원 추가

이 섹션에서는 프라이빗 클라우드용 Apigee Edge의 Cassandra가 랙을 인식하도록 하여 Cassandra의 작업을 확장하기 위한 일반적인 지침을 제공합니다.

Cassandra 링 랙을 인식하도록 하는 것이 중요한 이유에 대한 자세한 내용은 다음 리소스를 참조하세요.

랙이란 무엇인가요?

Cassandra 랙은 링 내의 Cassandra 노드를 논리적으로 그룹화한 것입니다. Cassandra는 복제본이 다양한 논리적 그룹에 분산되도록 하기 위해 랙을 사용합니다. 결과적으로 작업은 단일 노드뿐만 아니라 별도의 랙에 있는 여러 노드로 전송되므로 내결함성과 가용성이 향상됩니다.

이 섹션의 예시에서는 프로덕션 토폴로지에서 Apigee가 지원하는 랙 수인 Cassandra 랙을 3개 사용합니다.

프라이빗 클라우드용 Apigee Edge에 Cassandra를 기본 설치할 때는 단일 논리 랙을 가정하고 모든 노드를 데이터 센터에 배치합니다. 이 구성은 설치와 관리가 간단하지만 이러한 노드 중 하나에서 작업이 실패하면 실패할 수 있습니다.

다음 이미지는 Cassandra 링의 기본 구성을 보여줍니다.

노드 3개가 있는 랙 1개
(그림 1) 기본 구성: 단일 랙에 있는 모든 노드

보다 강력한 구성에서는 각 노드가 별도의 랙에 할당되고 작업도 각 랙의 복제본에서 실행됩니다.

다음 이미지는 3노드 링을 보여줍니다. 이 이미지는 작업이 링을 가로질러 복제되는 순서 (시계 방향)를 보여주며 같은 랙에 두 개의 노드가 없다는 사실을 강조합니다.

랙 3개(각 랙에 노드 1개 포함)
(그림 2) 랙 인식 구성: 각 랙에 하나씩, 노드 3개

이 구성에서는 작업이 노드로 전송되지만 다른 랙에 있는 해당 노드의 복제본으로도 전송됩니다 (시계 방향 순으로).

랙 인식 추가 (노드 3개 포함)

프라이빗 클라우드용 Apigee Edge의 모든 프로덕션 설치 토폴로지에는 3개 이상의 Cassandra 노드가 있습니다. 이 섹션에서는 이를 'IP1', 'IP2', 'IP3'라고 합니다. 기본적으로 이러한 각 노드는 동일한 랙('ra-1')에 있습니다.

이 섹션에서는 모든 작업이 링 내의 개별 논리적 그룹에 있는 복제본 노드로 전송되도록 Cassandra 노드를 별도의 랙에 할당하는 방법을 설명합니다.

설치 중에 Cassandra 노드를 다른 랙에 할당하려면 다음 안내를 따르세요.

  1. 설치 프로그램을 실행하기 전에 Cassandra 노드에 로그인하고 수정할 다음 자동 구성 파일을 엽니다.
    /opt/silent.conf

    파일이 없으면 만들고 'apigee' 사용자를 소유자로 만들어야 합니다.

  2. 다음 구문을 사용하는 공백으로 구분된 IP 주소 목록 (DNS 또는 호스트 이름 항목이 아님)인 CASS_HOSTS 속성을 수정합니다.
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    기본값은 3개의 노드 Cassandra 링이며 각 노드가 랙 1과 데이터 센터 1에 할당되어 있습니다. 다음 예시를 참조하세요.

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. 다음 예시와 같이 노드 2가 랙 2에 할당되고 노드 3이 랙 3에 할당되도록 랙 할당을 변경합니다.
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    랙 할당을 변경하면 Cassandra에 두 개의 추가 논리 그룹 (랙)을 만들도록 지시한 다음 첫 번째 노드에서 수신한 모든 작업을 수신하는 복제본을 제공합니다.

    CASS_HOSTS 구성 속성 사용에 대한 자세한 내용은 Edge 구성 파일 참조를 확인하세요.

  4. 구성 파일에 변경사항을 저장하고 다음 명령어를 실행하여 업데이트된 구성으로 Cassandra를 설치합니다.
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    예를 들면 다음과 같습니다.

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. CASS_HOSTS 속성에서 노드가 할당된 순서대로 링의 각 Cassandra 노드에 이 절차를 반복합니다. 이 경우 다음 순서로 Cassandra를 설치해야 합니다.
    1. 노드 1 (IP1)
    2. 노드 2 (IP2)
    3. 노드 3 (IP3)

설치 후에는 Cassandra 구성을 확인해야 합니다.

Cassandra 구성 확인

랙 인식 Cassandra 구성을 설치한 후에는 다음 예시와 같이 nodetool status 명령어를 사용하여 노드가 다른 랙에 할당되었는지 확인할 수 있습니다.

/opt/apigee/apigee-cassandra/bin/nodetool status

(Cassandra 노드 중 하나에서 이 명령어를 실행합니다.)

결과는 다음과 유사해야 하며, 여기서 Rack 열에 각 노드의 서로 다른 랙 ID가 표시됩니다.

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

Cassandra에 JMX 인증을 사용 설정한 경우 사용자 이름과 비밀번호를 nodetool에 전달해야 합니다. 자세한 내용은 nodetool을 사용하여 클러스터 노드 관리를 참조하세요.

6노드 링 설치

추가 중복성을 위해 Cassandra 링을 6개의 노드로 확장할 수 있습니다. 이 경우 3개의 랙 각각에 2개의 노드를 할당합니다. 이 구성에는 노드 4 (IP4), 노드 5 (IP5), 노드 6 (IP6) 등 노드 3개가 추가로 필요합니다.

다음 이미지는 작업이 링에서(시계 방향) 복제되는 순서를 보여주며 복제 중에 동일한 랙에 두 개의 인접한 노드가 없다는 사실을 강조합니다.

랙 3개(각 랙에 노드 2개 포함)
(그림 3) 6노드 Cassandra 링: 3개의 랙 각각에 있는 2개의 노드

이 구성에서 각 노드에는 두 개의 복제본이 더 있습니다. 하나는 다른 두 랙에 하나씩 있습니다. 예를 들어 랙 1의 노드 1에는 랙 2와 랙 3의 복제본이 있습니다. 노드 1로 전송된 작업은 다른 랙의 복제본에도 시계 방향으로 전송됩니다.

3노드 Cassandra 링을 6노드 Cassandra 링으로 확장하려면 자동 구성 파일에서 다음과 같은 방법으로 노드를 구성합니다.

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

노드가 3개인 링과 마찬가지로 CASS_HOSTS 속성에 노드가 표시되는 순서와 동일한 순서로 Cassandra를 설치해야 합니다.

  1. 노드 1 (IP1)
  2. 노드 4 (IP4)*
  3. 노드 2 (IP2)
  4. 노드 5 (IP5)
  5. 노드 3 (IP3)
  6. 노드 6 (IP6)

* 네 번째 노드 (Cassandra 설치 순서의 두 번째 머신)에서 설정 유틸리티를 실행하기 전에 자동 구성 파일에서 변경합니다.

노드 12개로 확장

내결함성과 가용성을 더 높이려면 링에 있는 Cassandra 노드 수를 6개에서 12개로 늘릴 수 있습니다. 이 구성에는 노드 6개 (IP7~IP12)가 추가로 필요합니다.

다음 이미지는 작업이 링에서(시계 방향) 복제되는 순서를 보여주며 복제 중에 동일한 랙에 두 개의 인접한 노드가 없다는 사실을 강조합니다.

랙 3개(각 랙에 노드 4개 포함)
(그림 4) 12노드 Cassandra 링: 3개의 랙 각각에 있는 4개의 노드

12노드 링을 설치하는 절차는 3개 또는 6개의 노드 링을 설치하는 절차와 비슷합니다. CASS_HOSTS를 지정된 값으로 설정하고 지정된 순서대로 설치 프로그램을 실행합니다.

12노드 Cassandra 링으로 확장하려면 자동 구성 파일에서 다음과 같은 방식으로 노드를 구성합니다.

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

노드 3개 및 6개로 구성된 링과 마찬가지로 구성 파일에 노드가 나타나는 순서대로 노드에서 설치 프로그램을 실행해야 합니다.

  1. 노드 1 (IP1)
  2. 노드 7 (IP7)*
  3. 노드 4 (IP4)
  4. 노드 8 (IP8)
  5. 노드 2 (IP2)
  6. 노드 9 (IP9)
  7. 노드 5 (IP5)
  8. Node 10 (IP10)
  9. 노드 3 (IP3)
  10. 노드 11 (IP11)
  11. 노드 6 (IP6)
  12. 노드 12 (IP12)

* 7번째 노드 (Cassandra 설치 순서의 두 번째 머신)에 Private Cloud용 Apigee Edge를 설치하기 전에 이 작업을 수행해야 합니다.