Управление дисковым пространством в кластере Managed Service for Apache Kafka®
Когда хранилище заполнено на 97% или больше, хост автоматически переходит в режим read-only. Чтобы избежать проблем с операциями записи в топик, воспользуйтесь одним из способов:
-
Настройте алерты в Yandex Monitoring, чтобы отслеживать степень заполнения хранилища.
-
Увеличьте размер хранилища, чтобы снять режим read-only автоматически.
-
Настройте автоматическое увеличение размера хранилища, чтобы предотвратить ситуации, когда место на диске заканчивается и хост переходит в режим read-only.
Настроить алерты в Yandex Monitoring
-
Перейдите на страницу каталога и выберите сервис Monitoring.
-
Создайте алерт со следующими параметрами:
-
Метрики — задайте параметры метрики:
-
Облако.
-
Каталог.
-
Сервис Managed Service for Kafka.
-
Идентификатор кластера Managed Service for Apache Kafka®.
Идентификатор можно получить со списком кластеров в каталоге.
-
Метка
disk.free_bytes
.
-
-
Условия срабатывания — задайте условие для заполнения свободного дискового пространства, при котором сработает алерт:
- Функция агрегации —
Минимум
(минимальное значение метрики за период). - Функция сравнения —
Меньше или равно
. - Warning —
95
(95% от размера хранилища). - Alarm —
90
(90% от размера хранилища). - Окно вычисления — желаемый период, с которым будет обновляться значение метрики.
- Задержка вычисления — предпочтительный сдвиг по времени назад в секундах. Позволяет исключить срабатывания алерта, когда в нем указано несколько метрик и они собираются с разным интервалом. Подробнее о задержке вычисления см. в документации Yandex Monitoring.
- Функция агрегации —
-
Уведомления — добавьте созданный ранее канал уведомлений.
-
Увеличить размер хранилища
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Чтобы увеличить размер хранилища для кластера:
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. -
В строке с нужным кластером нажмите
, затем выберите Редактировать. -
Измените настройки в блоке Хранилище.
Тип диска для кластера Apache Kafka® нельзя изменить после создания.
-
Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы увеличить размер хранилища для хостов:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help
-
Чтобы изменить объем хранилища хостов-брокеров, выполните команду:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> \ --disk-size <объем_хранилища>
Если не указаны единицы размера, то используются гигабайты.
-
Чтобы изменить объем хранилища хостов ZooKeeper, выполните команду:
yc managed-kafka cluster update <имя_или_идентификатор_кластера> \ --zookeeper-disk-size <размер_диска>
Если не указаны единицы размера, то используются гигабайты.
Тип диска для кластера Apache Kafka® нельзя изменить после создания.
Чтобы увеличить размер хранилища для кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for Apache Kafka® значение параметра
disk_size
в блокахkafka.resources
иzookeeper.resources
для хостов Apache Kafka® и ZooKeeper соответственно:resource "yandex_mdb_kafka_cluster" "<имя_кластера>" { ... kafka { resources { disk_size = <размер_хранилища_ГБ> ... } ... } zookeeper { resources { disk_size = <размер_хранилища_ГБ> ... } } }
Тип диска для кластера Apache Kafka® нельзя изменить после создания.
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение всех операций с кластером Managed Service for Apache Kafka® 60 минутами.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_kafka_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы увеличить размер хранилища для кластера, воспользуйтесь методом REST API update для ресурса Cluster или вызовом gRPC API ClusterService/Update и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Чтобы узнать идентификатор, получите список кластеров в каталоге. - Новые настройки хранилища в параметре
configSpec.kafka.resources
(configSpec.zookeeper.resources
— для хостов ZooKeeper). - Список настроек, которые необходимо изменить, в параметре
updateMask
.
Тип диска для кластера Apache Kafka® нельзя изменить после создания.
Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).
Настроить автоматическое увеличение размера хранилища
Чтобы место на диске кластера не заканчивалось и хосты не переходили в режим read-only, настройте автоматическое увеличение размера хранилища.
Проверьте, что в облаке достаточно квот для увеличения хранилища. Откройте страницу Квоты
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.
-
Перейдите на страницу каталога
и выберите сервис Managed Service for Kafka. -
В строке с нужным кластером нажмите на значок
, затем выберите Редактировать. -
В блоке Автоматическое увеличение размера хранилища задайте пороги заполненности хранилища, при достижении которых его размер будет увеличиваться:
- В поле Увеличивать размер выберите один или оба порога:
- В окно обслуживания при заполненности более — порог для планового увеличения. Когда он достигнут, объем хранилища увеличивается во время ближайшего окна обслуживания.
- Незамедлительно при заполненности более — порог для незамедлительного увеличения. Когда он достигнут, объем хранилища увеличивается немедленно.
- Задайте пороговое значение (в процентах от общего объема хранилища). Если выбраны оба порога, значение для незамедлительного увеличения должно быть выше, чем для планового.
- Задайте Максимальный размер хранилища.
- В поле Увеличивать размер выберите один или оба порога:
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы настроить автоматическое увеличение размера хранилища:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-kafka cluster update --help
-
Укажите максимальный размер хранилища и условия для его увеличения в команде изменения кластера:
yc managed-kafka cluster update <идентификатор_или_имя_кластера> \ --disk-size-autoscaling planned-usage-threshold=<процент_для_планового_увеличения>,` `emergency-usage-threshold=<процент_для_незамедлительного_увеличения>,` `disk-size-limit=<максимальный_размер_хранилища_в_байтах>
Где:
-
planned-usage-threshold
— процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно технического обслуживания.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание технического обслуживания.
-
emergency-usage-threshold
— процент заполнения хранилища, при котором хранилище будет увеличено немедленно.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено). Должно быть не меньше значенияplanned-usage-threshold
. -
disk-size-limit
— максимальный размер хранилища в байтах, который может быть установлен при достижении одного из заданных процентов заполнения.Если указать значение
0
, автоматическое увеличение размера хранилища будет отключено.
-
Чтобы разрешить автоматическое увеличение размера хранилища, воспользуйтесь методом REST API update для ресурса Cluster или вызовом gRPC API ClusterService/Update и передайте в запросе:
-
Процент заполнения хранилища, при котором хранилище будет увеличено в следующее окно обслуживания, в параметре
configSpec.diskSizeAutoscaling.plannedUsageThreshold
.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено).Если вы задали этот параметр, настройте расписание окна технического обслуживания.
-
Процент заполнения хранилища, при котором хранилище будет увеличено немедленно, в параметре
configSpec.diskSizeAutoscaling.emergencyUsageThreshold
.Значение задается в процентах от
0
до100
. По умолчанию —0
(автоматическое расширение отключено). Должно быть не меньше значенияconfigSpec.diskSizeAutoscaling.plannedUsageThreshold
. -
Максимальный размер хранилища (в байтах), который может быть установлен при достижении одного из заданных процентов заполнения, в параметре
configSpec.diskSizeAutoscaling.diskSizeLimit
.
Если заданный порог достигнут, размер хранилища увеличивается по-разному в зависимости от типа диска:
-
Для сетевых HDD- и SSD-дисков — на большее из двух значений: 20 ГБ или 20% от текущего размера диска.
-
Для нереплицируемых SSD-дисков — на 93 ГБ.
-
Для локальных SSD-дисков, в кластере на платформе:
- Intel Cascade Lake — на 100 ГБ.
- Intel Ice Lake — на 368 ГБ.
Если порог срабатывания достигнут повторно, размер хранилища будет автоматически увеличиваться, пока не достигнет заданного максимума. После этого вы можете задать новый максимальный размер хранилища вручную.
Важно
- Размер хранилища нельзя уменьшить.
- Во время изменения размера хранилища хосты кластера будут недоступны.