Apache Cassandra 유지보수 작업

이 섹션에서는 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/apigee-cassandra 디렉터리에 저장됩니다. 기본적으로 각각 최대 크기가 20MB인 로그 파일을 최대 50개까지 만들 수 있습니다. 이 한도에 도달하면 새 로그가 생성될 때 이전 로그가 삭제됩니다.

Cassandra 로그 파일이 과도한 공간을 차지하는 경우 log4j 설정을 수정하여 로그 파일에 할당된 공간을 수정할 수 있습니다.

  1. /opt/apigee/customer/application/cassandra.properties를 수정하여 다음 속성을 설정합니다. 파일이 없으면 만듭니다.
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. 다음 명령어를 사용하여 Cassandra를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

디스크 공간 유지보수

Cassandra 디스크 사용률을 정기적으로 모니터링하여 각 디스크의 최소 50%가 비어 있는지 확인해야 합니다. 디스크 사용률이 50%를 초과하면 디스크 공간을 더 추가하여 사용 중인 비율을 줄이는 것이 좋습니다.

Cassandra는 자체 디스크 사용률을 줄이기 위해 다음 작업을 자동으로 수행합니다.

  • 토큰이 만료되면 인증 토큰이 삭제됩니다. 하지만 구성에 따라 토큰이 사용하던 디스크 공간을 확보하는 데 몇 주가 걸릴 수 있습니다. 자동 삭제로 충분한 디스크 공간을 유지할 수 없는 경우 지원팀에 문의하여 토큰을 수동으로 삭제하여 공간을 복구하는 방법을 알아보세요.
  • 데이터 압축에 대한 참고사항: 프라이빗 클라우드용 Edge 4.51.00부터 Apigee Cassandra를 새로 설치하면 수평 압축 전략으로 키스페이스가 생성됩니다.

    프라이빗 클라우드 4.51.00으로 업그레이드된 이전 버전의 프라이빗 클라우드용 Edge 설치는 이전 압축 전략을 계속 유지합니다. 기존 압축 전략이 SizeTieredCompactionStrategy인 경우 더 나은 디스크 사용률을 제공하는 LeveledCompactionStrategy로 변경하는 것이 좋습니다.

참고: Cassandra가 데이터 압축을 수행할 때 상당한 양의 CPU 주기와 메모리가 소요될 수 있습니다. 하지만 압축이 완료되면 리소스 사용률이 정상으로 돌아갑니다. 각 노드에서 'Nodetool compactionstats' 명령어를 실행하여 압축이 실행 중인지 확인할 수 있습니다. compactionstats 출력은 실행할 대기 중인 압축이 있는지와 예상 완료 시간을 알려줍니다.