Работа с прокси-серверами
Прокси-сервер используется для маршрутизации как пользовательского трафика между источниками и приёмниками в процессе миграции, так и управляющего трафика между машинами и Контроллером. Прокси функционирует как транспарентный узел: он не модифицирует и не кеширует данные, скрывает реальные IP-адреса, не проверяет активность соединений и просто перенаправляет потоки с помощью NAT-правил iptables. Конфигурация правил осуществляется Контроллером.
В случае сетевых ошибок исходная машина может автоматически переключиться на другой прокси-сервер из группы. Работа обеспечивается процессом mind_proxy, установленным как Агент, с собственным хранилищем для ключей доступа.
Комплекс поддерживает следующие сценарии работы с прокси-серверами:
- Использование двух прокси-серверов: на источнике и приёмнике. В данном режиме исключено какое-либо прямое сетевое взаимодействие между источниками, приёмниками и Контроллером. При выполнении миграции источник отправляет данные на прокси-источник, который затем транслирует их на прокси-приёмник, а прокси-приёмник передаёт данные на приёмник.
- Использование одного прокси-сервера: на источнике. При выполнении миграции источник отправляет данные на прокси-источник, который затем передаёт данные на приёмник. Прокси используется не только для передачи данных от источника к приёмнику, но и для связи источника с оркестратором. Приёмник также использует этот прокси для отправки служебного трафика (watermill) на источник, но сам связывается с оркестратором напрямую.
- Использование одного прокси-сервера: на приёмнике. При выполнении миграции источник отправляет данные на прокси-приёмник, который затем передаёт данные на приёмник. Источник напрямую взаимодействует с оркестратором, но для передачи данных и watermill-трафика использует прокси приёмника. Приёмник слушает входящий трафик на открытых портах, принимая его через прокси. Все соединения с оркестратором производятся также через прокси приёмника.
- Работа без прокси-серверов. В этом режиме данные передаются напрямую между источником, приёмником и Контроллером.
При использовании прокси с обеих сторон (у источника и у приёмника) автоматически формируются так называемые прокси-пары — соответствия между прокси из группы источника и прокси из группы приёмника. Это обеспечивает однозначность маршрутизации трафика.
Важно – Для корректной работы количество прокси в обеих группах должно быть одинаковым. Если прокси указаны только с одной стороны, пары не формируются — прокси сразу перенаправляют трафик на нужную машину.
Работа с прокси-серверами выполняется в разделе "Прокси" в веб-интерфейсе Контроллера. На вкладке "Список" отображаются все прокси-серверы, зарегистрированные на данном Контроллере (рисунок 14).
В данном разделе отображаются только те прокси-серверы, которые зарегистрированы на текущем Контроллере Комплекса. Один прокси-сервер может быть привязан только к одному Контроллеру; использование одного и того же прокси несколькими Контроллерами не поддерживается.

Рисунок 14 — Раздел "Прокси"
На вкладке "Прокси группы" отображаются группы, включающие один или несколько прокси-серверов.
Чтобы создать новый прокси-сервер, необходимо нажать на кнопку + Добавить, и справа появится всплывающее окно с параметрами, которые необходимо заполнить (рисунок 15).

Рисунок 15 — Создание прокси-сервера
В открывшейся форме создания прокси-сервера необходимо заполнить следующие поля:
- Имя — название записи для отображения в интерфейсе Комплекса;
- IP/FQDN — статический адрес машины или её полное доменное имя;
- Расширенные настройки:
- Порт SSH — открытый порт для удалённого подключения к машине. По умолчанию — 22 для SSH;
- Ключи доступа — (необязательно) данные для доступа к добавляемой машине необходимы только в случае автоматической установки Агента.
Далее нужно нажать кнопку Сохранить.
После этого созданный прокси-сервер отобразится в списке в разделе "Прокси". В столбце "Действия" каждой из строк можно нажать на соответствующие значки для редактирования информации, удаления прокси-сервера и выполнения действий с Агентом. Подробная информация по работе с агентами приведена в документе "РОСА Миграция. Руководство пользователя".
После добавления одного или нескольких прокси-серверов требуется создать прокси-группу, которую затем можно привязать к источнику и (или) приёмнику во время создания машины или задания на миграцию.
Примечание – В прокси-группе должен присутствовать как минимум один прокси-сервер. Рекомендуется добавить несколько прокси-серверов для обеспечения отказоустойчивости и автоматического переключения на резервные прокси-серверы в случае сбоя одного из прокси-серверов в группе.
Для создания новой группы требуется перейти на вкладку "Прокси группы" и нажать на кнопку + Добавить (рисунок 16). В открывшейся форме необходимо выбрать прокси-серверы, которые необходимо включить в группу, отметив их флажком. Затем необходимо ввести название группы в поле "Имя" и нажать Сохранить. После этого созданная прокси-группа отобразится в списке на вкладке "Прокси группы". В столбце "Действия" каждой из строк можно нажать на соответствующие значки для редактирования информации или удаления прокси группы.

Рисунок 16 — Раздел "Прокси-группы"
Важно – Все прокси-серверы в группе используют одинаковый набор NAT-правил iptables, синхронизируемых с Контроллером. Прокси-агент периодически пингует оркестратор, проверяя актуальность правил. При несоответствии правила загружаются заново через API, после чего старые удаляются, а новые применяются автоматически.
После настройки прокси при создании источника и приёмника в разделе "Машины" в расширенных настройках будет отображаться возможность привязки машины к прокси-группе.
Ресурсы для прокси-серверов
Принцип работы прокси-серверов
Прокси-сервер обеспечивают сетевую связность между компонентами Комплекса, такими как машины-источники, машины-приёмники и Контроллер посредством трансляции сетевых адресов.
Для этого прокси-сервер использует стандартные средства ядра Linux: подсистему iptables и цепочки PREROUTING, DNAT и FORWARD.
Такой подход обеспечивает высокую пропускную способность при минимальной нагрузке на процессор и оперативную память, так как не требуется глубокая инспекция или модификация трафика на уровне приложений.
Базовые рекомендации по ресурсам (CPU и RAM)
Поскольку iptables сам по себе не требует значительных вычислительных ресурсов, базовая нагрузка на CPU и RAM остаётся низкой. Однако по мере увеличения числа активных соединений и объёма проходящего трафика возрастает нагрузка на сетевой стек ядра.
Рекомендации по ресурсам приведены в таблице 3 на основе обобщённой практики и документации (включая источники от Linux Foundation, Red Hat и Netgate).
Чтобы точно рассчитать требуемые ресурсы, необходимо выполнить следующие действия:
- оценить трафик репликации:
- получить список ВМ, участвующих в репликации через данный прокси;
- проанализировать средний и пиковый трафик от каждой ВМ;
- просуммировать предполагаемую общую пропускную способность, например:
ВМ1: 50 Мбит/с
ВМ2: 120 Мбит/с
ВМ3: 300 Мбит/с
-------------------
Общая пиковая: 470 Мбит/с
- заложить резерв рекомендациями: добавлять минимум 25–50% на рост нагрузки и bursts. Например резерв с запасом: 470 Мбит/с * 1.25 = 590 Мбит/с.
- назначить ресурсы. В соответствии с таблицей 2 для ~600 Мбит/с выбирается конфигурация: 2 vCPU и 2 ГБ RAM.