Linux-миграции. Моментальные снимки с Flow

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

Функция использования Flow подразумевает выполнение миграции без необходимости отключения приложения на всём этапе синхронизации.

Процесс состоит из следующих ключевых этапов:

Примечание – Жирным шрифтом отмечены этапы, в которых состояние данных на приёмнике неконсистентно.

  1. Инициализация, включающая:
  • создание консистентного снапшота файловой системы исходного блочного устройства с использованием Block Device;
  • создание CBT-журнала;
  • создание первого COW-журнала (Copy-on-write).
  1. Копирование данных на приёмник:
  • используется оригинальный диск источника;
  • происходит фиксация первого COW-журнала.
  1. Ведение CBT-журнала:
  • фиксация второго COW-журнала;
  • удаление первого COW-журнала.
  1. Ведение COW-журнала:
  • создание третьего COW-журнала;
  • обновление целевого диска с использованием второго COW-журнала и CBT-журнала.
  1. Ведение CBT-журнала:
  • фиксация третьего COW-журнала;
  • удаление второго COW-журнала.

Далее этапы синхронизации, основанные на ведении COW- и CBT-журналов (шаги № 4 и № 5) с последующим досыланием на приёмник изменений в виде инкрементальных реплик источника, могут повторяться любое количество раз, пока решение о финальном разрыве не будет принято пользователем.

После фиксации последнего COW-журнала и завершающего обновления целевого диска будет достигнуто консистентное состояние данных, что и является критерием для успешного окончания миграционного задания по сценарию Flow.

  1. Финальный разрыв, в ходе которого:
  • завершается работа со снапшотами;
  • диск приёмника обновляется с использованием последних COW- и CBT-журналов;
  • происходит удаление текущего COW-журнала;
  • если на источнике использовался драйвер Комплекса, он выгружается.