Если ВМ расположены в разных кластерах, которые физически являются одним сегментом сети, могут возникнуть коллизии MAC-адресов. Это происходит, поскольку машинам присвоен один MAC-адрес, но разные IP-адреса.
Чтобы избежать коллизий, укажите шаблон генерации MAC-адресов для машин в кластере.
Решение
Вмешательство в базу данных предполагает потенциальный риск. Мы не рекомендуем вносить ручные правки в базу, поскольку это может нарушить корректную работу платформы.
Перед внесением изменений в БД создайте резервную копию платформы.
Чтобы поменять шаблон генерации MAC-адресов для ВМ, отредактируйте значение параметра mgr_reserve_mac_bytes в базе данных в таблице vm_settings. Для этого:
- Подключитесь к серверу с платформой по SSH.
-
Сгенерируйте случайное значение параметра mgr_reserve_mac_bytes командой:
printf '%02X\n' $[RANDOM%256]
-
Подключитесь к БД:
В связи с поэтапным переходом платформы на использование СУБД PostgreSQL, разные экземпляры VMmanager могут использовать разные СУБД:
- VMmanager Hosting — MySQL;
- VMmanager Infrastructure:
- для новых установок на ОС Astra Linux, начиная с версии VMmanager 2023.06.1 — PostgreSQL;
- в остальных случаях — MySQL.
Чтобы определить тип СУБД, выполните на сервере с платформой команду:
docker ps --filter name=pgsql
Пример ответаCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3213c5dc94d0 postgres:12 "docker-entrypoint.s…" 5 days ago Up 4 days 5432/tcp pgsql
Если вывод команды содержит информацию о контейнере, платформа использует PostgreSQL, если ответ пустой — MySQL.
MySQLdocker exec -it mysql bash -c "mysql isp -p\$MYSQL_ROOT_PASSWORD"
PostgreSQLdocker exec -it pgsql bash -c "psql -d isp"
-
Проверьте текущее значение параметра mgr_reserve_mac_bytes в таблице vm_settings:
select value from vm_settings where name='mgr_reserve_mac_bytes';
Пример выводаvalue: A4 1 row in set (0.00 sec)
В указанном примере значение параметра mgr_reserve_mac_bytes = A4.
-
Замените значение параметра mgr_reserve_mac_bytes в таблице vm_settings:
update vm_settings set value='<новое_значение>' where name='mgr_reserve_mac_bytes';
Пояснения -
Выйдите из консоли СУБД:
\quit
После этого ВМ будут присваиваться MAC-адреса по новому шаблону. Чтобы проверить присвоение MAC-адресов, создайте тестовую ВМ.