이 섹션에서는 Cassandra의 주기적 유지보수 작업을 설명합니다.
안티엔트로피 유지관리
Apache Cassandra 링 노드는 모든 노드에서 일관성을 보장하기 위해 정기적인 유지보수가 필요합니다. 이 유지보수를 수행하려면 다음 명령어를 사용합니다.
apigee-service apigee-cassandra apigee_repair -pr
이 명령어를 실행할 때 Apigee에서는 다음을 권장합니다.
- 모든 리전 또는 데이터 센터에 걸쳐 모든 Cassandra 노드에서 실행됩니다.
링에 있는 모든 노드에서 일관성을 보장하기 위해 한 번에 하나의 노드에서 실행합니다. 여러 노드에서 동시에 복구 작업을 실행하면 Cassandra의 상태가 손상될 수 있습니다.
노드의 복구 작업이 성공적으로 완료되었는지 확인하려면 노드의
system.log
파일에서 최신 복구 세션의 UUID와 '세션이 완료되었습니다'라는 문구가 포함된 항목을 찾습니다. 다음은 샘플 로그 항목입니다.INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully" Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
- 워크로드가 상대적으로 낮은 기간 동안 실행됩니다 (이 도구는 시스템에 상당한 부하를 가함).
- Cassandra의 '잊혀진 삭제'와 관련된 문제를 제거하려면 최소 7일마다 실행합니다.
- 서로 다른 날에 다른 노드에서 실행하거나 각 노드에서 몇 시간씩 실행되도록 예약합니다.
-pr
옵션 (파티션 나누기 범위)을 사용하여 노드의 기본 파티션 나누기 범위만 지정합니다.
Cassandra에 JMX 인증을 사용 설정한 경우 nodetool
를 호출할 때 사용자 이름과 비밀번호를 포함해야 합니다. 예를 들면 다음과 같습니다.
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
다음 명령어를 실행하여 지원되는 apigee_repair:
옵션을 확인할 수도 있습니다.
apigee-service apigee-cassandra apigee_repair -h
참고: apigee_repair
는 Cassandra의 노드 도구 복구에 대한 래퍼로, Cassandra의 복구를 수행하기 전에 추가 검사를 실행합니다.
자세한 내용은 다음 리소스를 참조하세요.
로그 파일 유지관리
Cassandra 로그는 각 노드의 /opt/apigee/var/log/cassandra
디렉터리에 저장됩니다. 기본적으로 최대 20MB의 로그 파일을 최대 50개까지 만들 수 있습니다. 이 한도에 도달하면 최신 로그가 만들어지면 이전 로그가 삭제됩니다.
Cassandra 로그 파일이 과도한 공간을 차지하는 경우 log4j 설정을 수정하여 로그 파일에 할당된 공간을 수정하면 됩니다.
/opt/apigee/customer/application/cassandra.properties
를 수정하여 다음 속성을 설정합니다. 이 파일이 없으면 다음과 같이 만듭니다.conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- 다음 명령어를 사용하여 Cassandra를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
디스크 공간 유지관리
Cassandra 디스크 사용률을 정기적으로 모니터링하여 각 디스크의 50% 이상을 사용 가능하도록 해야 합니다. 디스크 사용률이 50%를 초과하면 디스크 공간을 추가하여 사용 중인 비율을 줄이는 것이 좋습니다.
Cassandra는 자체 디스크 사용률을 줄이기 위해 다음 작업을 자동으로 수행합니다.
- 토큰이 만료되면 인증 토큰이 삭제됩니다. 하지만 구성에 따라 토큰에서 사용되던 디스크 공간을 확보하는 데 몇 주 정도 걸릴 수 있습니다. 충분한 디스크 공간을 유지하기에 자동 삭제가 적합하지 않으면 지원팀에 문의하여 토큰을 수동으로 삭제하여 공간을 복구하는 방법을 알아보세요.
데이터 압축. 키스페이스에 대한 압축 전략을
LeveledCompactionStrategy
로 변경하는 것이 좋습니다. 이 전략은 기본SizeTieredCompactionStrategy
보다 더 나은 디스크 사용률 전략을 제공합니다. 레벨화된 압축 전략을 참고하세요.
참고: Cassandra가 데이터 압축을 수행할 때 상당한 양의 CPU 주기와 메모리가 필요할 수 있습니다. 하지만 압축이 완료되면 리소스 사용률이 정상으로 돌아갑니다.
각 노드에서 'Nodetool compactionstats'
명령어를 실행하여 압축이 실행 중인지 확인할 수 있습니다. compactionstats
의 출력은 실행 대기 중인 압축이 있는지와 예상 완료 시간을 알려줍니다.