Обновление нашей инфраструктуры oVirt до последней версии 4.2.0 в целом прошло гладко по ранее описанному сценарию. После обновления сервера управления oVirt Hosted Engine, обновления всех хостов виртуализации и повышения уровня кластера до новой версии, настала очередь обновления пакета интеграции oVirt Guest Agent в гостевых ОС виртуальных машин. Об этом нам ненавязчиво сообщила уже обновлённая и "приятная на ощупь" консоль Administration Portal, показав неприятный восклицательный знак возле каждой необновлённой ВМ.
В ходе первой же попытки обновления виртуальной машины с ОС Debian 8.10 (Jessie) было обнаружено, что в гостевой системе уже установлена самая актуальная версия пакета ovirt-guest-agent, имеющаяся на данный момент в официальных репозиториях для Debian Jessie - 1.0.10.2.dfsg-2+deb8u1. При этом, после первой же перезагрузки ВМ, которую после повышения уровня кластера до новой версии oVirt требовал oVirt Engine, служба ovirt-guest-agent.service, ранее установленная в гостевой ОС Debian не смогла запуститься вовсе, вывалив в лог /var/log/ovirt-guest-agent/ovirt-guest-agent.log такую каку:
MainThread::INFO::2018-01-02 16:40:35,102::ovirt-guest-agent::59::root::Starting oVirt guest agent
MainThread::ERROR::2018-01-02 16:40:35,106::ovirt-guest-agent::141::root::Unhandled exception in oVirt guest agent!
Traceback (most recent call last):
File "/usr/share/ovirt-guest-agent/ovirt-guest-agent.py", line 135, in
agent.run(daemon, pidfile)
File "/usr/share/ovirt-guest-agent/ovirt-guest-agent.py", line 65, in run
self.agent = LinuxVdsAgent(config)
File "/usr/share/ovirt-guest-agent/GuestAgentLinux2.py", line 472, in __init__
AgentLogicBase.__init__(self, config)
File "/usr/share/ovirt-guest-agent/OVirtAgentLogic.py", line 188, in __init__
self.vio = VirtIoChannel(config.get("virtio", "device"))
File "/usr/share/ovirt-guest-agent/VirtIoChannel.py", line 153, in __init__
self._stream = VirtIoStream(vport_name)
File "/usr/share/ovirt-guest-agent/VirtIoChannel.py", line 134, in __init__
self._vport = os.open(vport_name, os.O_RDWR)
OSError: [Errno 2] No such file or directory: '/dev/virtio-ports/com.redhat.rhevm.vdsm'
Опять таки, до обновления, на версии oVirt 4.1.8, эта же служба в этих же виртуальных машинах работала без подобных проблем.
Точно таким же образом ситуация сложилась и на виртуальных машинах с Debian 9.3 (Stretch). На этих ВМ была установлена более новая версия пакета ovirt-guest-agent (1.0.12.2.dfsg-2), доступная в официальных репозиториях Debian Stretch. Но поведение службы ovirt-guest-agent.service на перезагруженных ВМ оказалось точно таким же, что и в случае с Debian 8.
Самая свежая версия пакета ovirt-guest-agent, доступная в репозиториях Debian, это версия 1.0.13.dfsg-2, относящаяся к следующей разрабатываемой версии Debian 10 (Buster). И эксперименты показали, что эта версия без проблем устанавливается и на Debian 8.10 (Jessie) и на Debian 9.3 (Stretch), заменяя собой в гостевых системах старые версии ovirt-guest-agent. Приведу пример такой установки (с учётом установки необходимых пакетов, в случае, если ovirt-guest-agent устанавливается на чистую систему):
# mkdir ~/packages
# cd ~/packages
# wget http://ftp.us.debian.org/debian/pool/main/o/ovirt-guest-agent/ovirt-guest-agent_1.0.13.dfsg-2_all.deb
# apt-get install gir1.2-glib-2.0 libdbus-glib-1-2 libgirepository-1.0-1 libpango1.0-0 libuser1 python-dbus python-dbus-dev python-ethtool python-gi qemu-guest-agent usermode
# dpkg -i ~/packages/ovirt-guest-agent_1.0.13.dfsg-2_all.deb
Однако не смотря на успешную установку, служба ovirt-guest-agent.service всё равно не запустится:
# systemctl restart ovirt-guest-agent.service
# systemctl status ovirt-guest-agent.service
* ovirt-guest-agent.service - oVirt Guest Agent
Loaded: loaded (/lib/systemd/system/ovirt-guest-agent.service; enabled)
Active: failed (Result: exit-code) since Wed 2018-01-03 22:52:14 MSK; 1s ago
Process: 23206 ExecStart=/usr/bin/python /usr/share/ovirt-guest-agent/ovirt-guest-agent.py (code=exited, status=1/FAILURE)
Process: 23203 ExecStartPre=/bin/chown ovirtagent:ovirtagent /run/ovirt-guest-agent.pid (code=exited, status=0/SUCCESS)
Process: 23200 ExecStartPre=/bin/touch /run/ovirt-guest-agent.pid (code=exited, status=0/SUCCESS)
Process: 23197 ExecStartPre=/sbin/modprobe virtio_console (code=exited, status=0/SUCCESS)
Main PID: 23206 (code=exited, status=1/FAILURE)
При этом в логе /var/log/ovirt-guest-agent/ovirt-guest-agent.log снова появится ошибка, но на этот раз она уже будет другой:
MainThread::INFO::2018-01-03 22:52:14,771::ovirt-guest-agent::59::root::Starting oVirt guest agent
MainThread::ERROR::2018-01-03 22:52:14,773::ovirt-guest-agent::141::root::Unhandled exception in oVirt guest agent!
Traceback (most recent call last):
File "/usr/share/ovirt-guest-agent/ovirt-guest-agent.py", line 135, in
agent.run(daemon, pidfile)
File "/usr/share/ovirt-guest-agent/ovirt-guest-agent.py", line 65, in run
self.agent = LinuxVdsAgent(config)
File "/usr/share/ovirt-guest-agent/GuestAgentLinux2.py", line 472, in __init__
AgentLogicBase.__init__(self, config)
File "/usr/share/ovirt-guest-agent/OVirtAgentLogic.py", line 188, in __init__
self.vio = VirtIoChannel(config.get("virtio", "device_prefix"))
File "/usr/share/ovirt-guest-agent/VirtIoChannel.py", line 162, in __init__
self._stream = VirtIoStream(vport_name)
File "/usr/share/ovirt-guest-agent/VirtIoChannel.py", line 143, in __init__
self._vport = os.open(vport_name, os.O_RDWR)
OSError: [Errno 13] Permission denied: '/dev/virtio-ports/ovirt-guest-agent.0'
Подобную проблему удалось найти здесь - Red Hat Bugzilla – Bug 1472293, и обсудить со специалистом из Red Hat в [ovirt-users], где было сказано, что на данный момент в баг-трекере Debian созданы 2 баг-репорта, описывающих сложившуюся ситуацию: #886660 и #886661
Простым обходным решением по проблеме первого запуска службы ovirt-guest-agent.service сразу после установки пакета ovirt-guest-agent версии 1.0.13.dfsg-2 является "передёргивание" udev:
# udevadm trigger --subsystem-match="virtio-ports"
# systemctl restart ovirt-guest-agent.service
Однако вместо выполнения udevadm после установки пакета ovirt-guest-agent можно просто перезагрузить гостевую систему, после чего служба ovirt-guest-agent.service должна успешно запуститься.
В сухом остатке имеем то, что для успешной работы компонент интеграции oVirt 4.2 на системах Debian 8.10 (Jessie) и на Debian 9.3 (Stretch) нужно устанавливать пакет ovirt-guest-agent версии 1.0.13.dfsg-2 из репозиториев Debian 10 (Buster), после чего выполнять udevadm или просто перезагружать гостевую ОС виртуальной машины.
Добрый день.
Вы пробовали запускать гостем Windows 10? Через spice тормозит , драйвера и агент стоят,ресайзинг работает.
У вас есть в сторадже упоминаемые в документации virtio-win.vfd и oVirt-tools-setup.iso ?
У меня их после запуска hostged engine нету в iso domain, найти откуда ovirt их должен скачать тоже не нашел.
Если у вас есть,не могли бы вы их выложить куда-нибудь?
Спасибо заранее!
Здравствуйте, Игорь. Нет, не пробовали. Нет таких задач. Ссылки на загрузку можете найти здесь:
https://ovirt.org/develop/release-management/features/integration/windows-guest-tools.html
В версии агента 1.0.15 проблема сохраняется, хотя должна была быть исправлена в 1.0.14. В моем случае пришлось выполнить
sudo chown ovirtagent:ovirtagent /dev/virtio-ports/ovirt-guest-agent.0
Добрый день.
Поставил гостем debian9 с xfce. Не работает ресайзинг при изменении размеров окна. Т.е. разрешение экрана не меняется в виртуалке. Не знаете где смотреть чтобы поправить?