Поделиться через


Сохраняемость данных в кэше Azure для Redis

При сбое кэша Azure Cache для Redis возможна потеря данных, если узлы отключены. Сохраняемость Redis позволяет сохранять данные, хранящиеся в экземплярах кэша. Если произошел сбой оборудования, экземпляр кэша восстанавливается с данными из файла сохраняемости при возврате к сети.

В этой статье описывается постоянство данных в Redis, а также как настроить и управлять сохраняемостью данных в экземплярах кэша Azure Redis уровня Premium и Enterprise. Функция сохраняемости данных недоступна на уровнях "Базовый" или "Стандартный" и находится в предварительной версии на уровнях Enterprise и Enterprise Flash.

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

Внимание

Функция сохраняемости данных обеспечивает устойчивость для непредвиденных сбоев узлов Redis. Устойчивость данных не является функцией резервного копирования данных или восстановления до заданной точки во времени (PITR). Если поврежденные данные записываются в экземпляр Redis, поврежденные данные также сохраняются. Чтобы создать резервные копии экземпляра Redis, используйте функцию экспорта .

Внимание

Если вы используете персистентность на уровне "Премиум", проверьте, включено ли мягкое удаление в учетной записи хранилища перед использованием функции сохранения данных. Использование сохраняемости данных с обратимым удалением приводит к высокой стоимости хранения. Для получения дополнительной информации см. Следует ли включать функцию мягкого удаления?

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

Уровень "Базовый", "Стандартный" Премиум Энтерпрайз, Энтерпрайз Флэш
Доступно Нет Да Да (предварительная версия)

Типы сохраняемости данных Redis

Azure Redis предлагает два типа сохраняемости данных, формат базы данных Redis (RDB) и формат " Файл только для добавления " (AOF).

  • Сохраняемость RDB сохраняет моментальный снимок кэша в двоичном формате и сохраняет его в учетной записи хранения Azure. Вы настраиваете частоту резервного копирования, чтобы установить, как часто сохранять моментальный снимок. Если возникает катастрофическое событие, которое отключает как основной, так и кэш реплик, кэш восстанавливается автоматически с помощью последнего моментального снимка. Дополнительные сведения см. в разделе о преимуществах RDB и недостатках RDB.

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

Требования и ограничения

  • Функции сохраняемости данных обеспечивают устойчивость для непредвиденных сбоев узлов Redis. Сохраняемость данных не является функцией резервного копирования данных или PITR. Если поврежденные данные записываются в экземпляр Redis, поврежденные данные также сохраняются. Чтобы создать резервную копию экземпляра Redis, используйте функцию экспорта .

  • Функции сохраняемости кэша Azure для Redis предназначены для автоматического восстановления данных в том же кэше после потери данных. Не удается импортировать сохраненные файлы данных в новый или существующий кэш.

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

    • Чтобы создать любые резервные копии данных, которые можно добавить в новый кэш, можно использовать автоматизированные скрипты с помощью PowerShell или Azure CLI, которые периодически экспортируют данные.

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

  • На уровне "Премиум" данные сохраняются непосредственно в учетной записи хранения Azure, которую вы владеете и управляете ею.

  • Учетная запись хранения для сохраняемости данных уровня "Премиум" должна находиться в том же регионе, что и экземпляр кэша. Однако вы можете использовать учетную запись хранения в другой подписке для сохранения данных, если вы используете управляемое удостоверение для подключения к учетной записи хранения.

  • Рекомендуется отключить функцию обратимого удаления в учетной записи хранения, используемой для сохраняемости данных уровня "Премиум". Использование сохраняемости данных с обратимым удалением приводит к высокой стоимости хранения. Дополнительные сведения см. в разделе "Цены и выставление счетов" и"Следует ли включить обратимое удаление"?

  • Файлы RDB резервируются в хранилище в виде страничных BLOB-объектов. BLOB-страницы не поддерживаются в учетных записях хранения с включённым иерархическим пространством имен (HNS), таких как Azure Data Lake Storage 2-го поколения, поэтому операции сохранения часто заканчиваются неудачей в этих учетных записях хранения.

  • На уровне "Премиум" сохраняемость AOF не поддерживается с несколькими репликами.

Шифрование данных

Поскольку персистентность Redis создает данные в состоянии покоя, важно зашифровать эти данные. Параметры шифрования зависят от используемого уровня Redis Azure.

Для уровня "Премиум" потоки данных идут непосредственно из экземпляра кэша в Azure Хранилище при запуске процесса сохранения. Служба хранилища Azure автоматически шифрует данные при сохранении, но можно использовать несколько методов шифрования, включая ключи, управляемые корпорацией Майкрософт (MMKs), управляемые клиентом ключи (CMKs) и предоставленные клиентом ключи. Дополнительные сведения см. в разделе "Шифрование службы хранилища Azure" для неактивных данных и ключей, управляемых клиентом, для шифрования службы хранилища Azure.

Настройка сохраняемости данных

Вы можете использовать портал Azure, шаблоны Azure Resource Manager (ARM), PowerShell или Azure CLI для создания и настройки сохраняемости данных для кэшей Azure Redis уровня Premium или Enterprise.

Предпосылки

Настройка сохраняемости данных на портале Azure

На портале Azure можно настроить сохраняемость данных при создании экземпляра кэша Уровня "Премиум" или "Корпоративный".

Примечание.

Вы также можете добавить сохраняемость в ранее созданный кэш, перейдя к сохраняемости данных в разделе "Параметры" в меню навигации слева для кэша.

  1. Чтобы создать кэш Premium на портале Azure, следуйте инструкциям в кратком руководстве. Создайте кэш Redis с открытым исходным кодом и выберите "Премиум" для SKU кэша на вкладке "Основные сведения".

    Снимок экрана, который показывает форму для создания ресурса Azure Cache для Redis.

  2. При заполнении вкладки "Дополнительно" выберите RDB или AOF сохраняемость для файла резервного копирования в разделе сохраняемость данных и настройте соответствующие параметры.

    Снимок экрана: параметры сохраняемости данных RDB.

    • Для RDB настройте следующие параметры:

      Настройка Ценность Описание
      Метод проверки подлинности Выберите управляемое удостоверение или ключ хранилища Использование управляемого удостоверения позволяет использовать учетную запись хранения в подписке, отличной от кэша.
      Подписка Выберите подписку, содержащую управляемое удостоверение. Этот элемент отображается только в том случае, если выбрана проверка подлинности для управляемого удостоверения.
      Частота резервного копирования Выберите интервал резервного копирования: 15 минут, 30 минут, 60 минут, 6часов, 12 часов или 24 часа. Отсчет этого интервала начинается после успешного завершения предыдущей операции резервного копирования. Когда интервал истекает, запускается новая резервная копия.
      Учетная запись хранения Затем выберите учетную запись хранения. Учетная запись хранения должна находиться в том же регионе, что и кэш. Рекомендуется использовать учетную запись хранения Класса Premium, так как она имеет более высокую пропускную способность.
      Ключ хранилища Выберите первичный ключ или вторичный ключ для использования. Этот элемент отображается только в том случае, если выбрана проверка подлинности ключа хранилища . Если ключ для вашей учетной записи долговременного хранения хранилища создан заново, необходимо перенастроить ключ из раскрывающегося списка «Ключ хранилища».
    • Для AOF настройте следующие параметры:

      Настройка Ценность Описание
      Метод проверки подлинности Выберите управляемое удостоверение или ключ хранилища Использование управляемого удостоверения позволяет использовать учетную запись хранения в подписке, отличной от кэша.
      Подписка Выберите подписку, содержащую управляемое удостоверение. Этот элемент отображается только в том случае, если выбрана проверка подлинности для управляемого удостоверения.
      Первая учетная запись хранения Затем выберите учетную запись хранения. Учетная запись хранения должна находиться в том же регионе, что и кэш. Рекомендуется использовать учетную запись хранения Класса Premium, так как она имеет более высокую пропускную способность.
      Первый ключ хранилища Выберите первичный ключ или вторичный ключ для использования. Этот элемент отображается только в том случае, если выбрана проверка подлинности ключа хранилища . Если ключ хранилища повторно создан, необходимо перенастроить ключ из раскрывающегося списка ключей хранилища .
      Вторая учетная запись хранения При необходимости выберите вторичную учетную запись хранения. Если настроить вторичную учетную запись хранения, записи в кэш реплик сохраняются в этой второй учетной записи хранения.
      Второй ключ хранилища Выберите первичный или вторичный ключ для использования. Этот элемент отображается только в том случае, если выбрана проверка подлинности ключа хранилища . Если ключ хранилища перегенерирован, необходимо перенастроить ключ.
  3. Выполните все вкладки и завершите создание кэша, выполнив остальные инструкции из краткого руководства. Создание кэша Redis с открытым кодом.

При сохранении RDB первая резервная копия запускается после истечения интервала частоты резервного копирования.

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

Настройка сохраняемости данных с помощью Azure PowerShell

Azure PowerShell можно использовать для настройки сохраняемости данных при создании кэша Уровня "Премиум" или "Корпоративный" или для добавления сохраняемости в ранее созданный кэш.

Команду New-AzRedisCache можно использовать для создания нового кэша уровня "Премиум" Azure Redis Premium, использующего сохраняемость данных.

Чтобы обновить существующие кэши для использования сохраняемости данных, выполните команду Set-AzRedisCache . Инструкции см. в разделе "Добавление сохраняемости в существующий кэш".

Настройка сохраняемости данных с помощью Azure CLI

Azure CLI можно использовать для настройки сохраняемости данных при создании кэша Azure Redis Premium или корпоративного уровня или для добавления сохраняемости в ранее созданный кэш.

Команду az redis create можно использовать для создания нового кэша уровня "Премиум", использующего сохраняемость данных. Рассмотрим пример.

az redis create --location westus2 --name MyRedisCache --resource-group MyResourceGroup --sku Premium --vm-size p1 --redis-configuration @"config_rdb.json"

Чтобы обновить существующий кэш, используйте команду az redis update . Рассмотрим пример.

az redis update --name MyRedisCache --resource-group MyResourceGroup --set "redisConfiguration.rdb-storage-connection-string"="BlobEndpoint=https//..." "redisConfiguration.rdb-backup-enabled"="true" "redisConfiguration.rdb-backup-frequency"="15" "redisConfiguration.rdb-backup-max-snapshot-count"="1"

Часто задаваемые вопросы о постоянстве

В этом разделе содержатся ответы на часто задаваемые вопросы о сохраняемости кэша Redis в Azure.

Сохраняемость RDB

Сохраняемость AOF

Можно ли включить постоянное хранение для ранее созданного кэша?

Да, вы можете настроить сохраняемость при создании кэша и в существующих кэшах Premium, Enterprise или Enterprise Flash.

Можно ли одновременно активировать сохраняемость AOF и RDB?

Нет, вы можете включить RDB или AOF, но не одновременно.

Как сохраняемость работает с георепликацией?

Сохранение данных не функционирует при включенной георепликации.

Какую модель сохраняемости следует выбрать?

Сохраняемость AOF записывается в журнал один раз в секунду, а сохраняемость RDB сохраняет резервные копии на основе настроенного интервала резервного копирования. Постоянство RDB оказывает меньшее влияние на пропускную способность и производительность, чем постоянство AOF.

Выберите сохраняемость AOF, если основной целью является минимизация потери данных и вы можете обрабатывать более низкую пропускную способность для кэша. Выберите сохраняемость RDB, если вы хотите обеспечить оптимальную пропускную способность в кэше, но по-прежнему требуется механизм восстановления данных.

Дополнительные сведения см. в разделе о преимуществах RDB, недостатках RDB, преимуществах AOF и недостатках AOF.

Влияет ли сохраняемость AOF на пропускную способность, задержку или производительность кэша?

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

Если загрузка ЦП и сервера меньше 90%, есть штраф за пропускную способность, но кэш работает нормально. Когда загрузка ЦП и сервера превышает 90 %, происходит ухудшение пропускной способности, и задержка всех команд, обработанных кэшем, увеличивается. Задержка увеличивается, так как сохраняемость AOF выполняется как в основном, так и в процессе реплики, увеличив нагрузку на используемый узел и сохраняемость на критическом пути данных.

Что произойдет, если я изменю масштаб до другого размера, а затем будет восстановлена резервная копия, созданная до операции масштабирования?

  • При увеличении масштаба до большего размера изменений не происходит.
  • Если вы масштабировались до меньшего размера, и у вас есть настраиваемый параметр баз данных , превышающий ограничение баз данных для нового размера, данные в этих базах данных не восстанавливаются. Для получения более подробной информации см. Затронуты ли мои параметры пользовательских баз данных при масштабировании?
  • Если вы уменьшили размер, и в меньшем объеме недостаточно места для хранения всех данных из последней резервной копии, ключи вытесняются во время процесса восстановления. Ключи, как правило, вытесняются с помощью политики вытеснения allkeys-lru.

Можно ли использовать одну и ту же учетную запись хранения для сохраняемости данных в двух разных кэшах?

Нет, необходимо использовать разные учетные записи хранения. Каждый кэш должен иметь свою собственную учетную запись для хранения, чтобы обеспечить сохраняемость.

Внимание

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

Взимается ли плата за хранение данных в хранилище?

  • Для кэшей класса Premium взимается плата за использованное хранилище в соответствии с моделью ценообразования учетной записи хранения.
  • Для кэшей Enterprise и Enterprise Flash хранилище управляемых дисков входит в цену и не требует дополнительных затрат.

Как часто механизмы сохранения RDB и AOF записывают данные в мои BLOB-объекты, и стоит ли включать мягкое удаление?

Механизмы сохранения RDB и AOF могут записывать в объекты хранилища так часто, как каждый час, каждые несколько минут или каждую секунду. Быстрое удаление данных становится дорогостоящим, учитывая типичные размеры данных в кэше, который осуществляет запись каждую секунду. Включение обратимого удаления в учетной записи хранения также означает, что Azure Redis не может свести к минимуму затраты на хранение, удалив старые данные резервного копирования.

Лучше избегать включения мягкого удаления для учетных записей хранения, которые используются для сохраняемости данных премиум-уровня в Azure Redis. Дополнительные сведения о затратах на обратимое удаление см. в разделе "Цены и выставление счетов".

Можно ли изменить частоту резервного копирования RDB после создания кэша?

Да, можно изменить частоту резервного копирования для сохраняемости RDB с помощью портала Azure, Azure CLI или Azure PowerShell.

Почему при установленной частоте резервного копирования RDB в 60 минут между созданием резервных копий проходит больше времени?

Интервал частоты резервного копирования сохраняемости RDB не запускается до успешного завершения предыдущего процесса резервного копирования. Если частота резервного копирования составляет 60 минут, и для завершения резервного копирования требуется 15 минут, следующая резервная копия не начинается до 75 минут после начала предыдущей резервной копии.

Что происходит со старыми резервными копиями RDB при создании другой?

Все резервные копии сохраняемости RDB, за исключением последней, автоматически удаляются. Это удаление может происходить не сразу, но старые резервные копии не хранятся в течение неограниченного периода времени. Если вы используете уровень "Премиум" для хранения, и обратимое удаление включено, существующие резервные копии остаются в состоянии обратимого удаления.

Когда следует использовать вторичную учетную запись хранения?

Используйте вторую учетную запись хранения для сохраняемости AOF, если ожидаются более высокие, чем обычно, операции SET в кэше. Использование вторичной учетной записи хранения помогает убедиться, что кэш не достигает ограничений пропускной способности хранилища. Этот параметр доступен только для кэшей уровня "Премиум".

Как удалить вторичную учетную запись хранения?

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

Что такое перезапись и как она влияет на кэш?

Когда AOF-файл становится достаточно большим, перезапись автоматически помещается в кэш. Этот процесс изменяет размер файла AOF с минимальным набором операций, необходимых для создания текущего набора данных.

Во время операций перезаписи можно ожидать быстрого достижения ограничения производительности, особенно при работе с большими наборами данных. Перезаписи происходят реже, так как файл AOF становится больше, но занимает значительное время при их возникновении.

Чего ожидать при масштабировании кэша с включенным AOF?

Если файл AOF во время масштабирования велик, ожидается, что операция масштабирования займет больше времени, чем обычно, так как она перезагрузит файл после завершения масштабирования. Кроме того, см. статью "Что происходит, если масштаб изменяется до другого размера, а резервная копия была сделана и восстановлена до операции масштабирования?"

Как организованы данные AOF в хранилище?

При использовании уровня "Премиум" данные, хранящиеся в файлах AOF, делятся на несколько страничных BLOB-объектов в каждом шарде. По умолчанию половина объектов blob сохраняется в основном аккаунте хранения, а половина сохраняется в дополнительном аккаунте хранения. Разделение данных между несколькими страничными BLOB-объектами и двумя разными учетными записями в хранилищах повышает производительность.

Если пиковая скорость записи в кэш не высока, эта дополнительная производительность может не потребоваться. В этом случае можно удалить конфигурацию вторичной учетной записи хранения и все файлы AOF, хранящиеся в одной основной учетной записи хранения. В следующей таблице показано, сколько страничных BLOB-объектов в общей сложности используется для каждой ценовой категории.

Уровень "Премиум" BLOB-объекты
П1 8 на сегмент
P2 16 на сегмент
П3 32 на сегмент
P4 40 на сегмент

Если кластеризация включена, каждый сегмент в кэше имеет собственный набор страничных BLOB-объектов согласно таблице выше. Например, кэш P2 с тремя сегментами распределяет файл AOF между 48 BLOB-объектами со страницами: шестнадцать объектов на сегмент.

После перезаписи в хранилище создается два набора файлов AOF. Операции перезаписи выполняются в фоновом режиме и добавляют данные в первый набор файлов. Операции SET, отправленные в кэш во время перезаписи, добавляются во второй набор файлов.

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

Влияет ли наличие исключений брандмауэра в учетной записи хранения на постоянство?

Да. Для сохраняемости на уровне "Премиум" использование параметров брандмауэра в учетной записи хранения может предотвратить работу функции сохраняемости.

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

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

Можно ли включить сохраняемость AOF, если у меня несколько реплик?

На тарифе "Премиум" нельзя использовать сохранение данных с помощью AOF с несколькими репликами. На уровнях Enterprise и Enterprise Flash архитектура реплики более сложная, но механизм сохранения AOF поддерживается при использовании кэшей Enterprise в развертываниях с зональной избыточностью.

Как проверить, включено ли мягкое удаление в моей учетной записи хранения?

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

Можно ли использовать учетную запись хранения в другой подписке, отличной от той, в которой находится мой кэш?

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

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