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 的 “忘记删除”相关的问题。
  • 在不同的日期在不同的节点上运行,或者安排在每个节点上运行之间间隔几个小时。
  • 使用 -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 目录中。默认情况下,最多可以创建 50 个日志文件,每个日志文件的最大大小为 20 MB;达到此限制后,创建新日志时会删除较旧的日志。

如果您发现 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 的新 安装会使用 Leveled Compaction Strategy创建键空间。

    已升级到 Edge for Private Cloud 4.54.00 的早期版本的 Edge for Private Cloud 安装会保留之前的压缩策略。如果现有压缩策略为 SizeTieredCompactionStrategy,Apigee 建议您更改为 LeveledCompactionStrategy,后者可提供更好的磁盘 利用率。如需了解相关说明,请参阅 更改 Cassandra 压缩 策略。

注意:当 Cassandra 执行数据压缩时,可能会占用大量 CPU 周期 和内存。不过,压缩完成后,资源利用率应会恢复正常。 您可以在每个节点上运行 'Nodetool compactionstats' 命令 ,以检查压缩是否正在运行。compactionstats 的输出会告知您是否有待执行的压缩以及预计完成时间。