이 섹션에서는 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의 nodetool 복구를 둘러싼 래퍼로, 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는 자체 디스크 사용률을 줄이기 위해 다음 작업을 자동으로 수행합니다.
- 토큰이 만료되면 인증 토큰이 삭제됩니다. 하지만 구성에 따라 토큰이 사용하던 디스크 공간을 확보하는 데 몇 주가 걸릴 수 있습니다. 자동 삭제로 충분한 디스크 공간을 유지할 수 없는 경우 지원팀에 문의하여 토큰을 수동으로 삭제하여 공간을 복구하는 방법을 알아보세요.
데이터 압축. 키스페이스의 압축 전략을 기본
SizeTieredCompactionStrategy보다 더 나은 디스크 사용률 전략을 제공하는LeveledCompactionStrategy로 변경하는 것이 좋습니다. 수준별 압축 전략을 참조하세요.
참고: Cassandra가 데이터 압축을 수행할 때 상당한 양의 CPU 주기와 메모리가 소요될 수 있습니다. 하지만 압축이 완료되면 리소스 사용률이 정상으로 돌아갑니다.
각 노드에서 'Nodetool compactionstats' 명령어를 실행하여 압축이 실행 중인지 확인할 수 있습니다. compactionstats 출력은 실행할 대기 중인 압축이 있는지와 예상 완료 시간을 알려줍니다.