В этом разделе описаны задачи по периодическому обслуживанию 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(диапазон разбиения), чтобы указать основной диапазон разбиения только для узла.
Если вы включили аутентификацию JMX для Cassandra, при вызове nodetool необходимо указать имя пользователя и пароль. Пример:
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
Чтобы проверить поддерживаемые параметры apigee_repair:, можно также выполнить следующую команду:
apigee-service apigee-cassandra apigee_repair -h
Примечание. apigee_repair – это оболочка для инструмента восстановления nodetool Cassandra, которая выполняет дополнительные проверки перед восстановлением Cassandra.
Дополнительную информацию см. в указанных ниже ресурсах.
Обслуживание файлов журналов
Журналы Cassandra хранятся в каталоге /opt/apigee/var/log/apigee-cassandra на каждом узле. По умолчанию можно создать не более 50 файлов журнала, каждый из которых может иметь размер до 20 МБ. Когда этот лимит будет достигнут, более старые журналы будут удаляться при создании новых.
Если вы обнаружите, что файлы журнала Cassandra занимают слишком много места, вы можете изменить объем пространства, выделенного для файлов журнала, отредактировав настройки log4j.
- Измените параметр
/opt/apigee/customer/application/cassandra.properties, чтобы задать следующие свойства: Если такого файла нет, создайте его:conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- Перезапустите Cassandra, используя следующую команду:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
Освобождение места на диске
Регулярно проверяйте, сколько места осталось на дисках Cassandra. На каждом из них должно быть свободно не менее 50 %. Если использование диска превышает 50 %, рекомендуем добавить больше места на диске, чтобы снизить процент использования.
Чтобы уменьшить использование диска, Cassandra автоматически выполняет следующие операции:
- Удаление токенов аутентификации, когда истекает срок их действия. Однако в зависимости от конфигурации освобождение места на диске, которое занимали токены, может занять несколько недель. Если автоматическое удаление не позволяет освободить достаточно места на диске, обратитесь в службу поддержки, чтобы узнать, как вручную удалить токены.
Примечание о сжатии данных. Начиная с версии Edge для частного облака 4.51.00, при новых установках Apigee Cassandra будут создаваться пространства ключей со стратегией Leveled Compaction Strategy.
В установках более ранних версий Edge для частного облака, которые были обновлены до версии 4.51.00 частного облака, будет сохранена предыдущая стратегия сжатия. Если текущая стратегия сжатия – SizeTieredCompactionStrategy, рекомендуем изменить ее на LeveledCompactionStrategy, которая обеспечивает более эффективное использование диска.
Примечание. При сжатии данных Cassandra может использовать значительное количество циклов ЦП и памяти. Однако после завершения сжатия использование ресурсов должно вернуться к нормальному уровню.
Чтобы проверить, выполняется ли сжатие, можно выполнить команду 'Nodetool compactionstats' на каждом узле. Результат выполнения команды compactionstats показывает, есть ли ожидающие выполнения операции сжатия и сколько времени потребуется на их завершение.