이 섹션에서는 프라이빗 클라우드용 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 [...]"
기본값은 다음 예시와 같이 각 노드가 랙 1 및 데이터 센터 1에 할당된 3노드 Cassandra 링입니다.
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 노드 중 하나에서 이 명령어를 실행합니다.)
결과는 다음과 비슷하게 표시됩니다. 여기서 랙 열은 각 노드의 서로 다른 랙 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)
- 노드 10 (IP10)
- 노드 3 (IP3)
- 노드 11 (IP11)
- 노드 6 (IP6)
- 노드 12 (IP12)
* 7번째 노드 (Cassandra 설치 순서의 두 번째 머신)에 프라이빗 클라우드용 Apigee Edge를 설치하기 전에 이러한 변경사항을 적용해야 합니다.