Apache Cassandra 유지보수 작업

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

안티엔트로피 유지관리

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

apigee-service apigee-cassandra apigee_repair -pr

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

  • 모든 리전 또는 데이터 센터에 걸쳐 모든 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 설정을 수정하여 로그 파일에 할당된 공간을 수정하면 됩니다.

  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 for Private Cloud 4.51.00부터 Apigee Cassandra를 새로 설치하면 수준화된 압축 전략을 사용하여 키스페이스가 생성됩니다.

    Private Cloud 4.51.00으로 업그레이드된 이전 버전의 Edge for Private Cloud를 설치하면 이전 압축 전략이 계속 유지됩니다. 기존 압축 전략이 SizeTieredCompactionStrategy인 경우 디스크 사용률을 개선하는 LeveledCompactionStrategy로 변경하는 것이 좋습니다.

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