Настройка активной георепликации для экземпляров Кэша Azure для Redis уровня "Корпоративный"

Из этой статьи вы узнаете, как настроить кэш с активной георепликацией с помощью портала Azure.

При активной георепликации до пяти экземпляров Кэша Azure для Redis уровня «Корпоративный» группируются в один кэш, охватывающий несколько регионов Azure. Все экземпляры действуют как локальные первичные кэши. Приложение определяет, какие экземпляры следует использовать для запросов на чтение и запись.

Примечание.

Плата за передачу данных между регионами Azure будет взиматься по стандартному тарифу на пропускную способность.

Область доступности

Уровень "Базовый", "Стандартный" Premium Enterprise, Enterprise Flash
На месте No No Да

Уровень "Премиум" Кэш Azure для Redis предлагает версию георепликации, называемую пассивной георепликацией. Пассивный георепликация предоставляет активную-пассивные конфигурацию.

Предварительные требования для активной георепликации

При использовании активной георепликации существует несколько ограничений:

  • Поддерживаются только модули RediSearch и RedisJSON
  • На уровне Enterprise Flash можно использовать только политику вытеснения без вытеснения. Все политики вытеснения поддерживаются на уровне Enterprise .
  • Сохраняемость данных не поддерживается, так как активная георепликация обеспечивает превосходный интерфейс.
  • Невозможно добавить существующий кэш (то есть запущенный) в группу георепликации. Кэш можно добавить только в группу георепликации при создании кэша.
  • Все кэши в группе георепликации должны иметь одинаковую конфигурацию. Например, все кэши должны иметь одинаковый номер SKU, емкость, политику вытеснения, политику кластеризации, модули и параметры TLS.
  • Команды Redis FLUSHDB нельзя использовать при использовании активной FLUSHALL георепликации. Запрет команд предотвращает непреднамеренное удаление данных. Вместо этого используйте операцию очистки с портала.
  • Номер SKU E1 не поддерживает активную георепликацию.

Создание или присоединение группы активной георепликации

  1. При создании нового ресурса Кэша Azure для Redis выберите вкладку Дополнительно. Заполните первую часть формы, включая политику кластеризации. Дополнительные сведения о выборе политики кластеризации см. в разделе "Кластеризация" в Enterprise.

  2. Нажмите кнопку Настроить, чтобы настроить активную георепликацию.

    Снимок экрана: дополнительная вкладка страницы создания кэша Redis.

  3. Создайте новую группу репликации для первого экземпляра кэша. Или выберите существующую из списка.

    Снимок экрана: группы репликации.

  4. Нажмите кнопку Настроить, чтобы завершить процесс.

  5. Дождитесь успешного создания первого кэша. После завершения вы увидите Настроено для Активной георепликации. Повторите описанные выше шаги для каждого экземпляра кэша в группе георепликации.

    Снимок экрана: настроенные группы активной георепликации.

Удаление из группы активной георепликации

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

Если один из кэшей в группе репликации недоступен из-за сбоя региона, можно принудительно удалить недоступный кэш из группы репликации.

Недоступный кэш следует удалить, так как оставшиеся в группе репликации кэши начнут хранить метаданные, которые не поступят в недоступный кэш. В подобном случае доступные кэши в группе репликации могут столкнуться с нехваткой памяти.

  1. Перейдите на портал Azure и выберите в группе репликации один из доступных кэшей.

  2. В меню ресурсов слева выберите Активная георепликация, чтобы просмотреть параметры в рабочей области.

    Снимок экрана: группа активной георепликации.

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

  4. Выберите Принудительная отмена связи и нажмите ОК для подтверждения.

    Снимок экрана: отмена связи с группой активной георепликации.

  5. Когда доступность региона восстановится, нужно будет удалить его кэш и повторно создать его, чтобы снова добавить в группу репликации.

Настройка активной георепликации с помощью Azure CLI или PowerShell

Azure CLI

Используйте Azure CLI для создания нового кэша и группы георепликации или добавления нового кэша в существующую группу георепликации. Дополнительные сведения см. в разделе az redisenterprise create.

Создание экземпляра уровня "Корпоративный" в новой группе георепликации с помощью Azure CLI

В этом примере создается новый экземпляр кэша уровня "Корпоративный" E10 в Кэше Azure для Redis с именем Cache1 в регионе "Восточная часть США". Затем кэш добавляется в новую группу активной георепликации replicationGroup:

az redisenterprise create --location "East US" --cluster-name "Cache1" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"

Чтобы правильно настроить активную георепликацию, добавьте идентификатор создаваемого экземпляра кэша с параметром --linked-databases. Идентификатор имеет следующий формат.

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

Создание нового экземпляра уровня "Корпоративный" в существующей группе георепликации с помощью Azure CLI

В этом примере создается новый экземпляр кэша Enterprise E10 с именем Cache2 в регионе "Западная часть США". Затем скрипт добавляет кэш replicationGroup в активную группу георепликации, созданную в предыдущей процедуре. Таким образом, он связан в конфигурации "активный — активный" с Cache1.

az redisenterprise create --location "West US" --cluster-name "Cache2" --sku "Enterprise_E10" --resource-group "myResourceGroup" --group-nickname "replicationGroup" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default" --linked-databases id="/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"

Как и ранее, необходимо перечислить Cache1 и Cache2 с использованием параметра --linked-databases.

Azure PowerShell

PowerShell позволяет создать кэш и группу георепликации или добавить новый кэш в существующую группу георепликации. Дополнительные сведения см. в статье New-AzRedisEnterpriseCache.

Создание экземпляра уровня "Корпоративный" в новой группе георепликации с помощью PowerShell

В этом примере создается новый экземпляр кэша уровня "Корпоративный" E10 в Кэше Azure для Redis с именем Cache1 в регионе "Восточная часть США". Затем кэш добавляется в новую группу активной георепликации replicationGroup:

New-AzRedisEnterpriseCache -Name "Cache1" -ResourceGroupName "myResourceGroup" -Location "East US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}'

Чтобы правильно настроить активную георепликацию, добавьте идентификатор создаваемого экземпляра кэша с параметром -LinkedDatabase. Идентификатор имеет следующий формат.

/subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group-name>/providers/Microsoft.Cache/redisEnterprise/<your-cache-name>/databases/default

Создание нового экземпляра уровня "Корпоративный" в существующей группе георепликации с помощью PowerShell

В этом примере создается новый экземпляр кэша Enterprise E10 с именем Cache2 в регионе "Западная часть США". Затем скрипт добавляет кэш в активную группу георепликации репликации "replicationGroup", созданную в предыдущей процедуре. связь между двумя кэшами, Cache1 и Cache2 в конфигурации active-active.

New-AzRedisEnterpriseCache -Name "Cache2" -ResourceGroupName "myResourceGroup" -Location "West US" -Sku "Enterprise_E10" -GroupNickname "replicationGroup" -LinkedDatabase '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache1/databases/default"}', '{id:"/subscriptions/34b6ecbd-ab5c-4768-b0b8-bf587aba80f6/resourceGroups/myResourceGroup/providers/Microsoft.Cache/redisEnterprise/Cache2/databases/default"}'

Как и ранее, необходимо перечислить Cache1 и Cache2 с использованием параметра -LinkedDatabase.

Масштабирование экземпляров в группе георепликации

Можно масштабировать экземпляры, настроенные для использования активной георепликации. Однако группа георепликации с сочетанием различных размеров кэша может привести к проблемам. Чтобы предотвратить возникновение этих проблем, все кэши в группе георепликации должны иметь одинаковый размер и емкость.

Так как одновременно масштабировать все экземпляры в группе георепликации сложно, Кэш Azure для Redis имеет механизм блокировки. При масштабировании одного экземпляра в группе георепликации базовая виртуальная машина будет масштабирована, но доступная память будет ограничена исходным размером, пока другие экземпляры не будут масштабироваться. И все другие операции масштабирования для оставшихся экземпляров блокируются до тех пор, пока они не соответствуют той же конфигурации, что и первый кэш для масштабирования.

Пример масштабирования

Например, у вас может быть три экземпляра в группе георепликации, все экземпляры Enterprise E10:

Имя экземпляра Redis00 Redis01 Redis02
Тип Корпоративная E10 Корпоративная E10 Корпоративная E10

Предположим, вы хотите увеличить масштаб каждого экземпляра в этой группе георепликации до экземпляра Enterprise E20. Сначала вы масштабируете один из кэшей до E20:

Имя экземпляра Redis00 Redis01 Redis02
Тип Enterprise E20 Корпоративная E10 Корпоративная E10

На этом этапе Redis01 Redis02 экземпляры могут масштабироваться только до экземпляра Enterprise E20. Все остальные операции масштабирования блокируются.

Примечание.

Экземпляр Redis00 не блокируется для дальнейшего масштабирования в данный момент. Но он будет заблокирован один раз Redis01 или Redis02 масштабируется, чтобы быть корпоративным E20.

После масштабирования каждого экземпляра до одного уровня и размера все блокировки масштабирования удаляются:

Имя экземпляра Redis00 Redis01 Redis02
Тип Enterprise E20 Enterprise E20 Enterprise E20

Операция очистки

Из-за непреднамеренной потери данных нельзя использовать FLUSHALL команды Redis FLUSHDB с любым экземпляром кэша, находящимся в группе георепликации. Вместо этого нажмите кнопку Flush Cache(s), расположенную в верхней части рабочей области активной георепликации .

Снимок экрана: активная георепликация, выбранная в меню

Очистка кэшей с помощью Azure CLI или PowerShell

Azure CLI и PowerShell также можно использовать для активации операции очистки. Дополнительные сведения об использовании Azure CLI см. в статье az redisenterprise database flush. Дополнительные сведения об использовании PowerShell см. в разделе Invoke-AzRedisEnterpriseCacheDatabaseFlush.

Внимание

Будьте осторожны при использовании функции кэшей Flush. При выборе кнопки удаляются все данные из текущего кэша и из всех связанных кэшей в группе георепликации.

Управление доступом к функции с помощью управления доступом на основе ролей Azure. Доступ к очистке всех кэшей должен быть предоставлен только авторизованным пользователям.

Следующие шаги

Узнайте больше о функциях Кэша Azure для Redis.