Назад | Перейти на главную страницу

Что вызывает ошибку «Ошибка: не удалось подключить устройство 0 (vif). Сценарии горячего подключения не работают ». на CentOS5.6 x86_64 с ядром Xen?

У меня есть 10 domU на моем сервере CentOS 5.6 с ядром Xen. Все 10 запускаются при загрузке системы; однако только для одной из машин я получаю такую ​​ошибку:

Error: Device 0 (vif) could not be connected. Hotplug scripts not working.

Все 10 domU имеют три настроенных сетевых интерфейса, все подключены к физическому интерфейсу на хосте. Все три отлично работают - eth 1, 2 и 3 соединены мостом с eth0, eth1 и eth2 каждой виртуальной машины.

Я могу запустить эту виртуальную машину вручную, и она запускается без проблем. Я пробовал через командную строку:

xm create /path/to/vm-config.cfg

А также в virt-manager.

Что вызывает эту проблему и как я могу заставить эту одну виртуальную машину запускаться при загрузке хоста, как и остальные 9?

Видимо, это проблема, связанная с network-bridge скрипт в Xen <4.1. Эти сценарии оболочки кажутся довольно ненадежными, и в документации по передовым методам работы Xen теперь рекомендуется использовать сетевые сценарии ОС вместо них. Например, если вы используете Debian, это означает настройку мостов в /etc/network/interfaces вместо того, чтобы полагаться на скрипты Xen.

Пример конфигурации:

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        bridge_ports eth0
        address 10.0.0.2
        netmask 255.0.0.0
        gateway 10.0.0.1

... и так далее. Затем вы обратитесь к br0 в твоем доме .cfg файл и закомментируйте (network-script network-bridge) линия в /etc/xen/xend-config.sxp.

У меня есть эта проблема после создания и уничтожения vm некоторое время. Это проблема udev. Насколько я понимаю, udev не обрабатывает новые устройства vif после DOMID больше 10. Я исправляю это после добавления следующих строк в правила udev: SUBSYSTEM == "xen-backend", KERNEL == "vif *", ACTION == " online ", RUN + =" $ env {script} online "SUBSYSTEM ==" xen-backend ", KERNEL ==" vif * ", ACTION ==" offline ", RUN + =" $ env {script} offline "

Также я перезапускаю udev (может быть, это причина, по которой xm create начинает работать?).