Apache Cassandra 유지보수 작업

이 섹션에서는 Cassandra의 정기 유지보수 작업을 설명합니다.

엔트로피 방지 유지보수

Apache Cassandra 링 노드는 모든 노드에서 일관성을 보장하기 위해 정기적인 유지보수가 필요합니다. 이 유지보수를 실행하려면 다음 명령어를 사용하세요.

apigee-service apigee-cassandra apigee_repair -pr

Apigee에서는 이 명령어를 실행할 때 다음을 권장합니다.

  • 모든 Cassandra 노드 (모든 리전 또는 데이터 센터)에서 실행합니다.
  • 링의 모든 노드에서 일관성을 보장하기 위해 한 번에 하나의 노드에서 실행합니다. 여러 노드에서 동시에 복구 작업을 실행하면 Cassandra의 상태가 손상될 수 있습니다.

    노드의 복구 작업이 성공적으로 완료되었는지 확인하려면 노드의 system.log 파일에서 최신 복구 세션의 UUID와 'session completed successfully' 문구가 포함된 항목을 찾습니다. 샘플 로그 항목은 다음과 같습니다.

    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의 nodetool 복구 래퍼입니다.

자세한 내용은 다음 리소스를 참조하세요.

로그 파일 유지보수

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

디스크 공간 유지보수

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

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

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

    Edge for Private Cloud 4.54.00으로 업그레이드된 이전 버전의 프라이빗 클라우드용 Edge 설치는 이전 압축 전략을 유지합니다. 기존 압축 전략이 SizeTieredCompactionStrategy인 경우 Apigee에서는 디스크 사용률이 더 높은 LeveledCompactionStrategy로 변경하는 것이 좋습니다. 자세한 안내는 Cassandra 압축 전략 변경을 참고하세요.

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