Обновление до v26.04
Внимание
В версии MITIGATOR v26.04 изменены настройки по умолчанию для сетевых интерфейсов.
Для инсталляций с количеством сетевых портов больше четырех может потребоваться увеличить
значение packet_mempool_size в data-plane.conf.
Подробнее.
Внимание
Начиная с версии MITIGATOR v26.04 для работы TAP-интерфейса требуется версия ядра Linux не ниже 5.0.
Если используете перенаправление трафика на TAP-интерфейс в операционной системе, перед обновлением MITIGATOR убедитесь, что в вашей ОС используется ядро нужной версии, иначе TAP-интерфейс работать не будет.
Внимание
Обновление на v26.04 должно обязательно выполняться с минора версии v25.12.5 или более поздних.
В версии v26.04 обновлена версия PostgreSQL, поэтому при обновлении MITIGATOR требуется удалить базу данных и восстановить ее из полной резервной копии. Скрипт для создания полной резервной копии базы данных включен в поставку версий v25.12.5+.
Подготовка к обновлению
-
Обновите все экземпляры MITIGATOR до версии v25.12.5+ согласно стандартной процедуре.
-
После запуска MITIGATOR на версии v25.12.5+ дождитесь сообщения
database system is ready to accept connections, нажмите Ctrl+C. -
Создайте резервную копию базы данных на экземпляре MITIGATOR, на котором база данных в статусе Primary:
Внимание
Для создания резервной копии используйте приведенную ниже команду, в которой указан
backup_all.
Применение стандартной команды из статьи Резервное копирование НЕ перенесет все необходимые данные. -
Убедитесь, что резервная копия создалась без ошибок:
В выводе не должно быть сообщений
error. -
Остановите все экземпляры MITIGATOR (сначала со Standby базой, потом с Primary):
Обновление до v26.04
-
На всех экземплярах запишите в файл
.envстроку с версией:Здесь
X– целевая минорная версия. -
На всех экземплярах загрузите актуальный Compose-файл:
-
На всех экземплярах обновите содержимое файлов
docker-compose.failover.ymlиdocker-compose.worker.failover.yml, если они используются.Если в переменной
COMPOSE_FILEфайла.envуказаныdocker-compose.failover.ymlилиdocker-compose.worker.failover.yml, то обновите их:Если ранее в раздел
command:сервисаpgfailoverвносились изменения, например для использования более двух баз данных, то вручную перенесите эти изменения в обновленные файлыdocker-compose.failover.ymlиdocker-compose.worker.failover.yml:- список серверов (ранее
-server) перенесите вdocker-compose.override.yml, переопределивPGFAILOVER_SERVERS; - число попыток подключения (ранее
-attempts) задайте в.envкакMITIGATOR_PGFAILOVER_ATTEMPTS; - интервал проверки роли сервера (ранее
-interval) задайте в.envкакMITIGATOR_PGFAILOVER_INTERVAL.
Также перенесите значения переменных
FWSTATS_GRAPHITE_ADDRESSиCARBONAPI_BACKENDSиз старых файлов в новые.Пример
docker-compose.override.ymlдля трёх серверов:Информация
В
.envфайлеdocker-compose.override.ymlпоместите в конецCOMPOSE_FILE: его настройки должны иметь приоритет над настройками из предыдущих файлов.Подробнее — в инструкции по настройке отказоустойчивого хранилища.
- список серверов (ранее
-
На всех экземплярах в файле
.envудалите переменнуюMITIGATOR_OWN_INDEX. -
На всех экземплярах скачайте новые образы:
-
На экземпляре MITIGATOR, на котором база данных в статусе Primary, удалите базу данных:
-
На экземпляре MITIGATOR, на котором база данных в статусе Primary, запустите временный контейнер Postgres:
-
На экземпляре MITIGATOR, на котором база данных в статусе Primary, откройте логи Postgres:
-
На экземпляре MITIGATOR, на котором база данных в статусе Primary, дождитесь сообщения
database system is ready to accept connections, нажмите Ctrl+C. Сообщенияrole "repuser" does not existиrole "backend" does not existигнорируйте. -
На экземпляре MITIGATOR, на котором база данных в статусе Primary, перенесите бэкап в контейнер и восстановите данные:
-
Остановите временный контейнер Postgres и запустите основной сервис:
-
Дождитесь сообщения
database system is ready to accept connections, нажмите Ctrl+C. -
На экземплярах MITIGATOR, на которых база данных в статусе Standby, удалите базу данных:
-
На экземплярах MITIGATOR, на которых база данных в статусе Standby, выполните инициализацию базы данных:
-
Запустите экземпляр MITIGATOR, на котором база данных в статусе Primary:
-
После запуска дождитесь выполнения всех миграций и пролития настроек.
-
Запустите остальные экземпляры MITIGATOR: