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

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를 새로 설치하면 leveled compaction strategy(계층화된 압축 전략)를 사용하여 키 스페이스가 생성됩니다.

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

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