이 섹션에서는 프라이빗 클라우드용 Apigee Edge의 Cassandra가 랙을 인식하도록 하여 Cassandra의 작업을 확장하기 위한 일반적인 지침을 제공합니다.
Cassandra 링 랙을 인식하도록 하는 것이 중요한 이유에 대한 자세한 내용은 다음 리소스를 참조하세요.
- 복제 (Cassandra 문서)
- Cassandra 아키텍처 및 복제 계수 전략
랙이란 무엇인가요?
Cassandra 랙은 링 내의 Cassandra 노드를 논리적으로 그룹화한 것입니다. Cassandra는 복제본이 다양한 논리적 그룹에 분산되도록 하기 위해 랙을 사용합니다. 결과적으로 작업은 단일 노드뿐만 아니라 별도의 랙에 있는 여러 노드로 전송되므로 내결함성과 가용성이 향상됩니다.
이 섹션의 예시에서는 프로덕션 토폴로지에서 Apigee가 지원하는 랙 수인 Cassandra 랙을 3개 사용합니다.
프라이빗 클라우드용 Apigee Edge에 Cassandra를 기본 설치할 때는 단일 논리 랙을 가정하고 모든 노드를 데이터 센터에 배치합니다. 이 구성은 설치와 관리가 간단하지만 이러한 노드 중 하나에서 작업이 실패하면 실패할 수 있습니다.
다음 이미지는 Cassandra 링의 기본 구성을 보여줍니다.
보다 강력한 구성에서는 각 노드가 별도의 랙에 할당되고 작업도 각 랙의 복제본에서 실행됩니다.
다음 이미지는 3노드 링을 보여줍니다. 이 이미지는 작업이 링을 가로질러 복제되는 순서 (시계 방향)를 보여주며 같은 랙에 두 개의 노드가 없다는 사실을 강조합니다.
이 구성에서는 작업이 노드로 전송되지만 다른 랙에 있는 해당 노드의 복제본으로도 전송됩니다 (시계 방향 순으로).
랙 인식 추가 (노드 3개 포함)
프라이빗 클라우드용 Apigee Edge의 모든 프로덕션 설치 토폴로지에는 3개 이상의 Cassandra 노드가 있습니다. 이 섹션에서는 이를 'IP1', 'IP2', 'IP3'라고 합니다. 기본적으로 이러한 각 노드는 동일한 랙('ra-1')에 있습니다.
이 섹션에서는 모든 작업이 링 내의 개별 논리적 그룹에 있는 복제본 노드로 전송되도록 Cassandra 노드를 별도의 랙에 할당하는 방법을 설명합니다.
설치 중에 Cassandra 노드를 다른 랙에 할당하려면 다음 안내를 따르세요.
- 설치 프로그램을 실행하기 전에 Cassandra 노드에 로그인하고 수정할 다음 자동 구성 파일을 엽니다.
/opt/silent.conf
파일이 없으면 만들고 'apigee' 사용자를 소유자로 만들어야 합니다.
- 다음 구문을 사용하는 공백으로 구분된 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"
- 다음 예시와 같이 노드 2가 랙 2에 할당되고 노드 3이 랙 3에 할당되도록 랙 할당을 변경합니다.
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
랙 할당을 변경하면 Cassandra에 두 개의 추가 논리 그룹 (랙)을 만들도록 지시한 다음 첫 번째 노드에서 수신한 모든 작업을 수신하는 복제본을 제공합니다.
CASS_HOSTS
구성 속성 사용에 대한 자세한 내용은 Edge 구성 파일 참조를 확인하세요. - 구성 파일에 변경사항을 저장하고 다음 명령어를 실행하여 업데이트된 구성으로 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
CASS_HOSTS
속성에서 노드가 할당된 순서대로 링의 각 Cassandra 노드에 이 절차를 반복합니다. 이 경우 다음 순서로 Cassandra를 설치해야 합니다.- 노드 1 (IP1)
- 노드 2 (IP2)
- 노드 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개가 추가로 필요합니다.
다음 이미지는 작업이 링에서(시계 방향) 복제되는 순서를 보여주며 복제 중에 동일한 랙에 두 개의 인접한 노드가 없다는 사실을 강조합니다.
이 구성에서 각 노드에는 두 개의 복제본이 더 있습니다. 하나는 다른 두 랙에 하나씩 있습니다. 예를 들어 랙 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 (IP1)
- 노드 4 (IP4)*
- 노드 2 (IP2)
- 노드 5 (IP5)
- 노드 3 (IP3)
- 노드 6 (IP6)
* 네 번째 노드 (Cassandra 설치 순서의 두 번째 머신)에서 설정 유틸리티를 실행하기 전에 자동 구성 파일에서 변경합니다.
노드 12개로 확장
내결함성과 가용성을 더 높이려면 링에 있는 Cassandra 노드 수를 6개에서 12개로 늘릴 수 있습니다. 이 구성에는 노드 6개 (IP7~IP12)가 추가로 필요합니다.
다음 이미지는 작업이 링에서(시계 방향) 복제되는 순서를 보여주며 복제 중에 동일한 랙에 두 개의 인접한 노드가 없다는 사실을 강조합니다.
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 (IP1)
- 노드 7 (IP7)*
- 노드 4 (IP4)
- 노드 8 (IP8)
- 노드 2 (IP2)
- 노드 9 (IP9)
- 노드 5 (IP5)
- Node 10 (IP10)
- 노드 3 (IP3)
- 노드 11 (IP11)
- 노드 6 (IP6)
- 노드 12 (IP12)
* 7번째 노드 (Cassandra 설치 순서의 두 번째 머신)에 Private Cloud용 Apigee Edge를 설치하기 전에 이 작업을 수행해야 합니다.