Управление шардами кластера
Вы можете добавлять и удалять шарды кластера, запрашивать список шардов в выбранном кластере, а также выполнять ребалансировку кластера.
Важно
Управлять шардами можно только в шардированном кластере. Шардировать существующий нешардированный кластер невозможно. Как создать шардированный кластер см. в разделе Создание кластера.
Получить список шардов в кластере
- В консоли управления перейдите в каталог с нужным кластером.
- Выберите сервис Managed Service for Redis.
- Нажмите на имя нужного кластера, затем выберите вкладку Шарды.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список баз данных в кластере, выполните команду:
yc managed-redis shards list --cluster-name <имя кластера>
Результат:
+--------------+
| NAME |
+--------------+
| test-shard-1 |
| test-shard-2 |
| test-shard-3 |
| test-shard-4 |
| test-shard-5 |
+--------------+
Получить детальную информацию о шарде
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить информацию о шарде, выполните команду:
yc managed-redis shards get <имя шарда> --cluster-name <имя кластера>
Идентификатор и имя кластера можно запросить со списком кластеров в каталоге.
Добавить шард
- В консоли управления перейдите в каталог с кластером, в который нужно добавить шард.
- Выберите сервис Managed Service for Redis.
- Нажмите на имя нужного кластера и перейдите на вкладку Шарды.
- Нажмите кнопку Добавить шард.
- Укажите Имя шарда.
- В блоке Хосты:
- (опционально) Отредактируйте настройки хоста.
- Нажмите Добавить хост.
- В открывшемся окне выберите Зону доступности, Подсеть и включите опцию Публичный доступ.
- Нажмите Сохранить.
- Нажмите кнопку Создать шард.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы добавить шард c двумя хостами в кластер:
yc managed-redis shards add --name <имя нового шарда> --cluster-name <имя кластера> \
--host zone-id=<зона доступности>,subnet-name=<имя подсети> \
--host zone-id=<зона доступности>,subnet-name=<имя подсети>
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание Redis-кластера.
-
Добавьте к описанию кластера Managed Service for Redis нужное количество блоков
host
с указанием имени шарда в параметреshard_name
:resource "yandex_mdb_redis_cluster" "<имя кластера>" { ... host { zone = "<зона доступности>" subnet_id = <идентификатор подсети> shard_name = "<имя шарда>" } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Redis:
- создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_redis_cluster" "<имя кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы получить возможность размещать данные в новом шарде, запустите ребалансировку кластера Managed Service for Redis.
Удалить шард
Внимание
Вместе с шардом удаляются все находящиеся в нем хосты.
- В консоли управления перейдите в каталог с кластером, из которого нужно удалить шард.
- Выберите сервис Managed Service for Redis.
- Нажмите на имя нужного кластера и выберите вкладку Шарды.
- В строке нужного шарда нажмите значок и выберите Удалить.
- В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить шард из кластера, выполните команду:
yc managed-redis shards delete <имя шарда> \
--cluster-name=<имя кластера>
Имя шарда можно запросить со списком шардов в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание Redis-кластера.
-
Удалите из описания кластера Managed Service for Redis все блоки
host
, которые относятся к шарду. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите удаление ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform.
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for Redis:
- создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
- изменение — 60 минут;
- удаление — 15 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_redis_cluster" "<имя кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Ребалансировать кластер
Новый шард создается без хеш-слотов и не может принимать данные. Чтобы данные начали размещаться на новом шарде, выполните ребалансировку кластера — эта процедура выделит часть хеш-слотов кластера новому шарду. Данные в переназначенных хеш-слотах будут перемещены в соответствующий шард. Ребалансировка может выполняться на работающем кластере и не влияет на доступность и целостность данных.
Подробнее см. в разделе Масштабирование.
Чтобы ребалансировать кластер:
- В консоли управления перейдите в каталог с нужным кластер.
- Выберите сервис Managed Service for Redis.
- Нажмите на имя нужного кластера.
- На вкладке Обзор нажмите кнопку Ребалансировать.
Совет
Также можно ребалансировать кластер с помощью кнопки Ребалансировать кластер на вкладке Шарды.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы ребалансировать кластер, выполните команду:
yc managed-redis cluster rebalance \
--name=<имя кластера>
Имя кластера можно запросить со списком кластеров в каталоге.
Ребалансировать кластер можно с помощью метода rebalance.