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

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

Приватный канал Azure упрощает сетевую архитектуру и защищает подключение между конечными точками в Azure. Можно подключиться к экземпляру кэша Azure из виртуальной сети с помощью частной конечной точки, которой назначен частный IP-адрес в подсети в виртуальной сети. Преимущества использования приватного канала Azure для кэша Azure для Redis:

  • Гибкость уровней — приватный канал Azure поддерживается на всех наших уровнях: «Базовый», «Стандартный», «Премиум», «Корпоративный» и «Enterprise Flash». Сравнение с внедрением виртуальной сети, которое доступно только на уровне «Премиум».

  • Упрощенное управление правилами группы безопасности сети (NSG) – правила NSG не нужно настраивать, чтобы они соответствовали требованиям кэша Azure для Redis.

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

Варианты переноса

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

Если вы используете любую комбинацию георепликации, кластеризации или ARM:

Параметр Преимущества Недостатки
Запись данных в два кэша Не приводит к потерям данных и простоям. Непрерывные операции с существующим кэшем. Упрощенное тестирование нового кэша. Требуется два кэша на продолжительный период времени.
Создание кэша Простейший способ реализации. Необходимо повторно заполнить данные в новом кэше, который может не работать с многими приложениями.
Экспорт и импорт данных через файл RDB Требуется перенос данных. Некоторые данные могут быть потеряны, если они записаны в существующий кэш после создания файла RDB.
Программная миграция данных Полный контроль над перемещением данных. Требуется специальный код.

Запись в два кэша Redis одновременно в течение периода миграции

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

Ниже приведены общие действия для реализации этого варианта.

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

  2. Измените код приложения, чтобы вести запись как в новый, так и в исходный экземпляр.

  3. Продолжайте считывать данные из исходного экземпляра, пока в новом экземпляре не накопится достаточно данных.

  4. Обновите код приложения, чтобы производить считывание и запись только с использованием нового экземпляра.

  5. Удалите исходный экземпляр.

Создание нового кэша Azure для Redis

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

Ниже приведены общие действия для реализации этого варианта.

  1. Создайте экземпляр кэша Azure Cache для Redis с частными конечными точками.

  2. Обновите приложение, чтобы использовать новый экземпляр.

  3. Удалите старый экземпляр Redis.

Выполните экспорт данных в файл RDB и их импорт в кэш Azure для Redis (только для уровня «Премиум»)

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

Важно!

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

Ниже приведены общие действия для реализации этого варианта.

  1. Создайте новый экземпляр кэша Azure для Redis с частными конечными точками на уровне «Премиум», его размер должен быть равен (или больше) размеру существующего кэша.

  2. Сохраните моментальный снимок существующего кэша Redis. Можно настроить Redis для периодического сохранения моментальных снимков или запускать процесс вручную с помощью команд SAVE или BGSAVE. Файл RDB по умолчанию имеет имя dump. rdb и будет сохранен по пути, указанному в файле конфигурации redis. conf.

    Примечание

    Если вы выполняете миграцию данных в кэше Azure для Redis, см. инструкции по экспорту файла RDB или использованию командлета PowerShell Export.

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

  4. Импортируйте файл RDB в новый кэш, используя инструкции по импорту или командлет PowerShell Import.

  5. Обновите приложение, чтобы использовать новый экземпляр кэша.

Миграция программными средствами

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

Примечание

Это средство официально не поддерживается корпорацией Майкрософт.

Ниже приведены общие действия для реализации этого варианта.

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

  2. Создание экземпляра кэша Azure для Redis с частными конечными точками

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

    Важно!

    Будьте внимательны, НЕ УДАЛЯЙТЕ данные из исходного кэша.

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

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