Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for Valkey™
  • Начало работы
    • Все инструкции
      • Управление шардами
      • Переключение мастера
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Получить список шардов в кластере
  • Получить детальную информацию о шарде
  • Создать шард
  • Удалить шард
  • Ребалансировать кластер
  1. Пошаговые инструкции
  2. Шардирование и отказоустойчивость
  3. Управление шардами

Управление шардами кластера

Статья создана
Yandex Cloud
Улучшена
Обновлена 21 апреля 2025 г.
  • Получить список шардов в кластере
  • Получить детальную информацию о шарде
  • Создать шард
  • Удалить шард
  • Ребалансировать кластер

Вы можете добавлять и удалять шарды кластера, запрашивать список шардов в выбранном кластере, а также выполнять ребалансировку кластера.

Важно

Управлять шардами можно только в шардированном кластере.

Вы можете создать шардированный кластер или включить шардирование в существующем нешардированном кластере.

Получить список шардов в кластереПолучить список шардов в кластере

Консоль управления
CLI
REST API
gRPC API
  1. В консоли управления перейдите в каталог с нужным кластером.
  2. Выберите сервис Yandex Managed Service for Valkey™.
  3. Нажмите на имя нужного кластера, затем выберите вкладку Шарды.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить список шардов в кластере, выполните команду:

yc managed-redis shards list --cluster-name <имя_кластера>

Результат:

+--------------+
|     NAME     |
+--------------+
| test-shard-1 |
| test-shard-2 |
| test-shard-3 |
+--------------+
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.ListShards и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<идентификатор_кластера>/shards'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.ListShards и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.redis.v1.ClusterService.ListShards
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Получить детальную информацию о шардеПолучить детальную информацию о шарде

CLI
REST API
gRPC API

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы получить информацию о шарде, выполните команду:

yc managed-redis shards get <имя_шарда> --cluster-name <имя_кластера>
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.GetShard и выполните запрос, например, с помощью cURL:

    curl \
        --request GET \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<идентификатор_кластера>/shards/<имя_шарда>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, имя шарда — со списком шардов в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.GetShard и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "shard_name": "<имя_шарда>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.redis.v1.ClusterService.GetShard
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, имя шарда — со списком шардов в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Имя шарда можно запросить со списком шардов в кластере, имя кластера — со списком кластеров в каталоге.

Создать шардСоздать шард

Для кластеров с типом диска local-ssd минимально допустимое количество хостов на шард — два.

Консоль управления
CLI
Terraform
REST API
gRPC API

Чтобы добавить шард:

  1. Перейдите на страницу каталога и выберите сервис Yandex Managed Service for Valkey™.
  2. Нажмите на имя нужного кластера и перейдите на вкладку Шарды.
  3. Нажмите кнопку Создать шард.
  4. Укажите Имя шарда.
  5. В блоке Хосты:
    • (Опционально) Отредактируйте настройки хоста.
    • Нажмите Добавить хост.
    • В поле Зона доступности выберите зону доступности, выберите Подсеть и включите опцию Публичный доступ.
  6. Нажмите кнопку Создать шард.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Посмотрите описание команды CLI для добавления шардов:

yc managed-redis shards add --help

Чтобы создать шард с двумя хостами: один с публичным доступом, а другой с приоритетом хоста 50, выполните команду:

yc managed-redis shards add --name=<имя_нового_шарда> \
  --cluster-name=<имя_кластера> \
  --host zone-id=<зона_доступности>,`
    `subnet-name=<имя_подсети>,`
    `assign-public-ip=true \
  --host zone-id=<зона_доступности>,`
    `subnet-name=<имя_подсети>,`
    `replica-priority=50

Чтобы добавить шард:

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Добавьте к описанию кластера Yandex Managed Service for Valkey™ нужное количество блоков host с указанием имени шарда в параметре shard_name:

    resource "yandex_mdb_redis_cluster" "<имя_кластера>" {
      ...
      host {
        zone             = "<зона_доступности>"
        subnet_id        = <идентификатор_подсети>
        assign_public_ip = <публичный_доступ>
        replica_priority = <приоритет_хоста>
        shard_name       = "<имя_шарда>"
      }
    }
    

    Где assign_public_ip — публичный доступ к хосту: true или false.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Подтвердите изменение ресурсов.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex Managed Service for Valkey™:

  • создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
  • изменение — 60 минут;
  • удаление — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_redis_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.AddShard и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --header "Content-Type: application/json" \
        --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<идентификатор_кластера>/shards' \
        --data '{
                  "shardName": "<имя_шарда>",
                  "hostSpecs": [
                    {
                      "zoneId": "<зона_доступности>",
                      "subnetId": "<идентификатор_подсети>",
                      "shardName": "<имя_шарда>",
                      "replicaPriority": "<приоритет_хоста>",
                      "assignPublicIp": <публичный_доступ_к_хосту_кластера>
                    },
                    { <аналогичный_набор_настроек_для_хоста_2> },
                    { ... },
                    { <аналогичный_набор_настроек_для_хоста_N> }
                  ]
                }'
    

    Где:

    • shardName — имя создаваемого шарда.

    • hostSpecs — параметры хоста:

      • zoneId — зона доступности.
      • subnetId — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • shardName — имя шарда для хоста.
      • replicaPriority — приоритет назначения хоста мастером при выходе из строя основного мастера.
      • assignPublicIp — доступность хоста из интернета по публичному IP-адресу: true или false. Включить публичный доступ можно, только если в кластере включена поддержка TLS.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.AddShard и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "shard_name": "<имя_шарда>",
              "host_specs": [
                {
                  "zone_id": "<зона_доступности>",
                  "subnet_id": "<идентификатор_подсети>",
                  "shard_name": "<имя_шарда>",
                  "replica_priority": "<приоритет_хоста>",
                  "assign_public_ip": <публичный_доступ_к_хосту_кластера>
                },
                { <аналогичный_набор_настроек_для_хоста_2> },
                { ... },
                { <аналогичный_набор_настроек_для_хоста_N> }
              ]
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.redis.v1.ClusterService.AddShard
    

    Где:

    • shard_name — имя создаваемого шарда.

    • host_specs — параметры хоста:

      • zone_id — зона доступности.
      • subnet_id — идентификатор подсети. Необходимо указывать, если в выбранной зоне доступности создано две или больше подсетей.
      • shard_name — имя шарда для хоста.
      • replica_priority — приоритет назначения хоста мастером при выходе из строя основного мастера.
      • assign_public_ip — доступность хоста из интернета по публичному IP-адресу: true или false. Включить публичный доступ можно, только если в кластере включена поддержка TLS.

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

Чтобы получить возможность размещать данные в новом шарде, запустите ребалансировку кластера Yandex Managed Service for Valkey™.

Удалить шардУдалить шард

Внимание

  • Вместе с шардом удаляются все находящиеся в нем хосты.
  • Если в кластере два или три шарда, то для удаления шарда воспользуйтесь CLI, Terraform или API.
Консоль управления
CLI
Terraform
REST API
gRPC API
  1. В консоли управления перейдите в каталог с кластером, из которого нужно удалить шард.
  2. Выберите сервис Yandex Managed Service for Valkey™.
  3. Нажмите на имя нужного кластера и выберите вкладку Шарды.
  4. В строке нужного шарда нажмите значок и выберите Удалить.
  5. В открывшемся окне нажмите кнопку Удалить.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы удалить шард из кластера, выполните команду:

yc managed-redis shards delete <имя_шарда> \
  --cluster-name=<имя_кластера>

Имя шарда можно запросить со списком шардов в кластере, имя кластера — со списком кластеров в каталоге.

  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

    О том, как создать такой файл, см. в разделе Создание кластера.

  2. Удалите из описания кластера Yandex Managed Service for Valkey™ все блоки host, которые относятся к шарду.

  3. Проверьте корректность настроек.

    1. В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.

    2. Выполните команду:

      terraform validate
      

      Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  4. Введите слово yes и нажмите Enter.

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

Подробнее см. в документации провайдера Terraform.

Ограничения по времени

Провайдер Terraform ограничивает время на выполнение операций с кластером Yandex Managed Service for Valkey™:

  • создание, в т. ч. путем восстановления из резервной копии, — 15 минут;
  • изменение — 60 минут;
  • удаление — 15 минут.

Операции, длящиеся дольше указанного времени, прерываются.

Как изменить эти ограничения?

Добавьте к описанию кластера блок timeouts, например:

resource "yandex_mdb_redis_cluster" "<имя_кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}
  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.DeleteShard и выполните запрос, например, с помощью cURL:

    curl \
        --request DELETE \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<идентификатор_кластера>/shards/<имя_шарда>'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, имя шарда — со списком шардов в кластере.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.DeleteShard и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>",
              "shard_name": "<имя_шарда>" 
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.redis.v1.ClusterService.DeleteShard
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге, имя шарда — со списком шардов в кластере.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Ребалансировать кластерРебалансировать кластер

Новый шард создается без хеш-слотов и не может принимать данные. Чтобы данные начали размещаться на новом шарде, выполните ребалансировку кластера — эта процедура выделит часть хеш-слотов кластера новому шарду. Данные в переназначенных хеш-слотах будут перемещены в соответствующий шард. Ребалансировка может выполняться на работающем кластере и не влияет на доступность и целостность данных.

Подробнее см. в разделе Масштабирование.

Консоль управления
CLI
REST API
gRPC API

Чтобы ребалансировать кластер:

  1. В консоли управления перейдите в каталог с нужным кластер.
  2. Выберите сервис Yandex Managed Service for Valkey™.
  3. Нажмите на имя нужного кластера.
  4. На вкладке Обзор нажмите кнопку Ребалансировать.

Совет

Также можно ребалансировать кластер с помощью кнопки Ребалансировать кластер на вкладке Шарды.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы ребалансировать кластер, выполните команду:

yc managed-redis cluster rebalance \
  --name=<имя_кластера>

Имя кластера можно запросить со списком кластеров в каталоге.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Воспользуйтесь методом Cluster.Rebalance и выполните запрос, например, с помощью cURL:

    curl \
        --request POST \
        --header "Authorization: Bearer $IAM_TOKEN" \
        --url 'https://mdb.api.cloud.yandex.net/managed-redis/v1/clusters/<идентификатор_кластера>:rebalance'
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  3. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

  1. Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:

    export IAM_TOKEN="<IAM-токен>"
    
  2. Клонируйте репозиторий cloudapi:

    cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
    

    Далее предполагается, что содержимое репозитория находится в директории ~/cloudapi/.

  3. Воспользуйтесь вызовом ClusterService.Rebalance и выполните запрос, например, с помощью gRPCurl:

    grpcurl \
        -format json \
        -import-path ~/cloudapi/ \
        -import-path ~/cloudapi/third_party/googleapis/ \
        -proto ~/cloudapi/yandex/cloud/mdb/redis/v1/cluster_service.proto \
        -rpc-header "Authorization: Bearer $IAM_TOKEN" \
        -d '{
              "cluster_id": "<идентификатор_кластера>"
            }' \
        mdb.api.cloud.yandex.net:443 \
        yandex.cloud.mdb.redis.v1.ClusterService.Rebalance
    

    Идентификатор кластера можно запросить со списком кластеров в каталоге.

  4. Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.

Была ли статья полезна?

Предыдущая
Запросы в Yandex WebSQL
Следующая
Переключение мастера
Проект Яндекса
© 2025 ООО «Яндекс.Облако»