Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Managed Service for Redis
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Изменение настроек кластера и базы данных
    • Подключение к базе данных
      • Подготовка к подключению
      • Подключение к нешардированному кластеру
      • Подключение к шардированному кластеру
    • Остановка и запуск кластера
    • Обновление версии Redis
    • Управление хостами кластера
    • Управление шардами
    • Управление резервными копиями
    • Переключение мастера
    • Мониторинг состояния кластера и хостов
    • Просмотр логов кластера
    • Удаление кластера
  • Практические руководства
    • Хранение сессий PHP в Managed Service for Redis
    • Миграция базы данных в Managed Service for Redis
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
    • Сеть в Managed Service for Redis
    • Шардирование
    • Резервные копии
    • Репликация и отказоустойчивость
    • Поддерживаемые клиенты
    • Управление памятью в Managed Service for Redis
    • Доступные команды Managed Service for Redis
    • Квоты и лимиты
    • Типы хранилища
    • Техническое обслуживание
    • Настройки Redis
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC (англ.)
      • Overview
      • BackupService
      • ClusterService
      • ResourcePresetService
      • OperationService
    • REST (англ.)
      • Overview
      • Backup
        • Overview
        • get
        • list
      • Cluster
        • Overview
        • addHosts
        • addShard
        • backup
        • create
        • delete
        • deleteHosts
        • deleteShard
        • get
        • getShard
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShards
        • move
        • rebalance
        • rescheduleMaintenance
        • restore
        • start
        • startFailover
        • stop
        • streamLogs
        • update
        • updateHosts
      • ResourcePreset
        • Overview
        • get
        • list
      • Operation
        • Overview
        • get
  • История изменений
  • Вопросы и ответы
    • Общие вопросы
  1. Пошаговые инструкции
  2. Управление шардами

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

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

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

Важно

Управлять шардами можно только в шардированном кластере. Шардировать существующий нешардированный кластер невозможно. Как создать шардированный кластер см. в разделе Создание кластера.

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

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

Если у вас еще нет интерфейса командной строки 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 <имя кластера>

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

Добавить шард

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

Если у вас еще нет интерфейса командной строки 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=<имя подсети>
  1. Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.

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

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

    resource "yandex_mdb_redis_cluster" "<имя кластера>" {
      ...
      host {
        zone       = "<зона доступности>"
        subnet_id  = <идентификатор подсети>
        shard_name = "<имя шарда>"
      }
    }
    
  3. Проверьте корректность настроек.

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

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

      terraform validate
      

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

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

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

      terraform plan
      

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

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

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

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

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

Подробнее см. в документации провайдера 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.

Удалить шард

Внимание

Вместе с шардом удаляются все находящиеся в нем хосты.

Консоль управления
CLI
Terraform
  1. В консоли управления перейдите в каталог с кластером, из которого нужно удалить шард.
  2. Выберите сервис Managed Service for Redis.
  3. Нажмите на имя нужного кластера и выберите вкладку Шарды.
  4. В строке нужного шарда нажмите значок и выберите Удалить.
  5. В открывшемся окне нажмите кнопку Удалить.

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

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

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

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

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

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

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

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

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

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

      terraform validate
      

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

  4. Подтвердите удаление ресурсов.

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

      terraform plan
      

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

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

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

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

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

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

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

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

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

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

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

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

resource "yandex_mdb_redis_cluster" "<имя кластера>" {
  ...
  timeouts {
    create = "1h30m" # Полтора часа
    update = "2h"    # 2 часа
    delete = "30m"   # 30 минут
  }
}

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

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

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

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

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

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

Совет

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

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

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

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

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

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

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

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

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Получить список шардов в кластере
  • Получить детальную информацию о шарде
  • Добавить шард
  • Удалить шард
  • Ребалансировать кластер