Hi,
I am installing OpenStack on Red Hat 7.5. For Nova
compute component, I choose libvirt and Xen.
However, I am running into some problems. It seems
libvirt is unable to communicate with Xen.
Xen installation:
# lsb_release -a
LSB Version:
:core-4.1-amd64:core-4.1-noarch
Distributor ID:
RedHatEnterpriseServer
Description:
Red Hat Enterprise Linux Server release 7.5 (Maipo)
Release:
7.5
Codename:
Maipo
# yum list | grep
xen
kernel-xen.x86_64
4.14.94-6.el7xen @kernel-xen
kernel-xen.x86_64
4.14.97-6.el7xen @kernel-xen
kernel-xen-devel.x86_64
4.14.97-6.el7xen @kernel-xen
kernel-xen-firmware.x86_64
4.14.97-6.el7xen @kernel-xen
kernel-xen-headers.x86_64
4.14.97-6.el7xen @kernel-xen
kernel-xen-release.noarch
1:7-13 @kernel-xen
xen410.x86_64
4.10.2-7.el7 @kernel-xen
xen410-devel.x86_64
4.10.2-7.el7 @kernel-xen
xen410-hypervisor.x86_64
4.10.2-7.el7 @kernel-xen
xen410-libs.x86_64
4.10.2-7.el7 @kernel-xen
xen410-licenses.x86_64
4.10.2-7.el7 @kernel-xen
xen410-ocaml.x86_64
4.10.2-7.el7 @kernel-xen
xen410-runtime.x86_64
4.10.2-7.el7 @kernel-xen
xen46-licenses.x86_64
4.6.6-16.el7 @kernel-xen
# xl info
release
: 4.14.97-6.el7xen.x86_64
version
: #2 SMP Fri Feb 1 00:33:52 AEDT 2019
machine
: x86_64
nr_cpus
: 32
max_cpu_id
: 63
nr_nodes
: 2
cores_per_socket
: 8
threads_per_core
: 2
cpu_mhz
: 1995
hw_caps
:
bfebfbff:17bee3ff:2c100800:00000001:00000001:00000000:00000000:00000100
virt_caps
: hvm hvm_directio
total_memory
: 131034
free_memory
: 96587
sharing_freed_memory
: 0
sharing_used_memory
: 0
outstanding_claims
: 0
free_cpus
: 0
xen_major
: 4
xen_minor
: 10
xen_extra
: .3-pre
xen_version
: 4.10.3-pre
xen_caps
: xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32
hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler
: credit
xen_pagesize
: 4096
platform_params
: virt_start=0xffff800000000000
xen_changeset
: Tue Nov 20 15:45:04 2018 +0100 git:b6e203b-dirty
xen_commandline
: placeholder dom0_mem=32768M cpufreq=xen
dom0_max_vcpus=8 dom0_vcpus_pin console=tty0
console=com1 com1=115200,8n1
cc_compiler
: gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
cc_compile_by
: mockbuild
cc_compile_domain
:
cc_compile_date
: Wed Nov 21 02:09:26 AEDT 2018
build_id
: 2d53c8b15aaf737b0351e78ad863eb5a530e7df0
xend_config_format
: 4
libvirt was installed as dependencies of
openstack-nova-compute from yum.
==================================================================================================================================================================================================
Package
Arch
Version
Repository
Size
==================================================================================================================================================================================================
Installing:
openstack-nova-compute
noarch
1:17.0.9-1.el7
openstack-queens
7.9 k
Installing for
dependencies:
OpenIPMI-modalias
x86_64
2.0.23-2.el7
RedHat-7Server-x86_64-errata
16 k
attr
x86_64
2.4.46-13.el7
RedHat-7Server-x86_64-errata
66 k
dosfstools
x86_64
3.0.20-9.el7
RedHat-7.1Server-x86_64
101 k
fuse
x86_64
2.9.2-10.el7
RedHat-7Server-x86_64-errata
86 k
gdisk
x86_64
0.8.6-5.el7
RedHat-7.1Server-x86_64
187 k
glusterfs-cli
x86_64
3.8.4-53.el7
RedHat-7Server-x86_64-errata
176 k
hivex
x86_64
1.3.10-6.9.el7
RedHat-7Server-x86_64-errata
101 k
ipmitool
x86_64
1.8.18-7.el7
RedHat-7Server-x86_64-errata
441 k
libguestfs
x86_64
1:1.36.10-6.el7_5.2
RedHat-7Server-x86_64-errata
1.9 M
libreport-filesystem
x86_64
2.1.11-40.el7
RedHat-7Server-x86_64-errata
39 k
libvirt-daemon
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
852 k
libvirt-daemon-driver-interface
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
220 k
libvirt-daemon-driver-network
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
389 k
libvirt-daemon-driver-nodedev
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
221 k
libvirt-daemon-driver-nwfilter
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
243 k
libvirt-daemon-driver-qemu
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
714 k
libvirt-daemon-driver-secret
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
210 k
libvirt-daemon-driver-storage
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
173 k
libvirt-daemon-driver-storage-core
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
405 k
libvirt-daemon-driver-storage-disk
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
182 k
libvirt-daemon-driver-storage-gluster
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
183 k
libvirt-daemon-driver-storage-iscsi
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
179 k
libvirt-daemon-driver-storage-logical
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
183 k
libvirt-daemon-driver-storage-mpath
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
178 k
libvirt-daemon-driver-storage-rbd
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
185 k
libvirt-daemon-driver-storage-scsi
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
179 k
libvirt-daemon-kvm
x86_64
3.9.0-14.el7_5.6
RedHat-7Server-x86_64-errata
173 k
libvirt-python
x86_64
3.9.0-1.el7
RedHat-7Server-x86_64-errata
335 k
mdadm
x86_64
4.0-13.el7
RedHat-7Server-x86_64-errata
431 k
mtools
x86_64
4.0.18-5.el7
RedHat-7.1Server-x86_64
203 k
perl-hivex
x86_64
1.3.10-6.9.el7
RedHat-7Server-x86_64-errata
41 k
python-libguestfs
x86_64
1:1.36.10-6.el7_5.2
RedHat-7Server-x86_64-errata
203 k
scrub
x86_64
2.5.2-7.el7
RedHat-7Server-x86_64-errata
41 k
squashfs-tools
x86_64
4.3-0.21.gitaae0aff4.el7
RedHat-7.1Server-x86_64
101 k
supermin5
x86_64
5.1.19-1.el7
RedHat-7Server-x86_64-errata
631 k
syslinux
x86_64
4.05-13.el7
RedHat-7Server-x86_64-errata
990 k
syslinux-extlinux
x86_64
4.05-13.el7
RedHat-7Server-x86_64-errata
363 k
However, after installation, Nova complains "no
connection driver available for xen:///".
Also, virsh cannot connect Xen.
/var/log/nova/nova-compute.log
2019-02-01
15:13:29.965 5091 INFO nova.service [-] Starting
compute node (version 18.1.0-1.el7)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host [-]
Connection to libvirt failed: no connection driver
available for xen:///: libvirtError: no connection
driver available for xen:///
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
Traceback (most recent call last):
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 460,
in get_connection
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
conn = self._get_connection()
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 443,
in _get_connection
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
{'msg': ex})
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in
__exit__
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
self.force_reraise()
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in
force_reraise
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
six.reraise(self.type_, self.value, self.tb)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 432,
in _get_connection
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
self._wrapped_conn = self._get_new_connection()
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 386,
in _get_new_connection
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
wrapped_conn = self._connect(self._uri,
self._read_only)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/host.py", line 242,
in _connect
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
libvirt.openAuth, uri, auth, flags)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/eventlet/tpool.py",
line 148, in proxy_call
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host rv
= execute(f, *args, **kwargs)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/eventlet/tpool.py",
line 129, in execute
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
six.reraise(c, e, tb)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib/python2.7/site-packages/eventlet/tpool.py",
line 83, in tworker
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host rv
= meth(*args, **kwargs)
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host File
"/usr/lib64/python2.7/site-packages/libvirt.py", line
105, in openAuth
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host if
ret is None:raise libvirtError('virConnectOpenAuth()
failed')
2019-02-01
15:13:30.023 5091 ERROR nova.virt.libvirt.host
libvirtError: no connection driver available for
xen:///
# virsh -c xen:///
list
error: failed to
connect to the hypervisor
error: no
connection driver available for xen:///
Then I check the connection drivers of libvirt. It
seems the daemon driver for xen is missing.
# ls -l
/usr/lib64/libvirt/connection-driver/
total 2664
-rwxr-xr-x 1 root
root 115976 Jun 5 2018 libvirt_driver_interface.so
-rwxr-xr-x 1 root
root 292008 Jun 5 2018 libvirt_driver_lxc.so
-rwxr-xr-x 1 root
root 169424 Jun 5 2018 libvirt_driver_network.so
-rwxr-xr-x 1 root
root 119720 Jun 5 2018 libvirt_driver_nodedev.so
-rwxr-xr-x 1 root
root 174216 Jun 5 2018 libvirt_driver_nwfilter.so
-rwxr-xr-x 1 root
root 1545344 Jun 5 2018 libvirt_driver_qemu.so
-rwxr-xr-x 1 root
root 86616 Jun 5 2018 libvirt_driver_secret.so
-rwxr-xr-x 1 root
root 202568 Jun 5 2018 libvirt_driver_storage.so
Then I decided to compile libvirt from source code.
So I checked out the source code from github and tried
to configure and compile it.
However, from the output of ./autogen.sh --system, I
don't find driver for xen is enabled. Actually, xen is
not listed as driver in the output.
configure:
configure:
Configuration summary
configure:
=====================
configure:
configure: Drivers
configure:
configure:
QEMU: yes
configure:
OpenVZ: yes
configure:
VMware: yes
configure:
VBox: yes
configure:
XenAPI: no
configure:
libxl: yes
configure:
LXC: yes
configure:
PHYP: no
configure:
ESX: no
configure:
Hyper-V: no
configure:
vz: no
configure:
Bhyve: no
configure:
Test: yes
configure:
Remote: yes
configure:
Network: yes
configure:
Libvirtd: yes
configure:
Interface: yes
configure:
configure: Storage
Drivers
configure:
configure:
Dir: yes
configure:
FS: yes
configure:
NetFS: yes
configure:
LVM: yes
configure:
iSCSI: yes
configure:
iscsi-direct: no
configure:
SCSI: yes
configure:
mpath: yes
configure:
Disk: no
configure:
RBD: no
configure:
Sheepdog: no
configure:
Gluster: no
configure:
ZFS: no
configure:
Virtuozzo storage: no
configure:
configure: Security
Drivers
configure:
configure:
SELinux: yes
configure:
AppArmor: no
configure:
configure: Driver
Loadable Modules
configure:
configure:
driver_modules: yes (CFLAGS='' LIBS='-ldl')
configure:
configure:
Libraries
configure:
configure:
acl: no
configure:
apparmor: no
configure:
attr: no
configure:
audit: no
configure:
avahi: no
configure:
bash_completion: no
configure:
blkid: no
configure:
capng: no
configure:
curl: no
configure:
dbus: no
configure:
dlopen: yes (CFLAGS='' LIBS='-ldl')
configure:
firewalld: no
configure:
firewalld-zone: no
configure:
fuse: no
configure:
glusterfs: no
configure:
gnutls: yes (CFLAGS='-I/usr/include/p11-kit-1 '
LIBS='-lgnutls ')
configure:
hal: no
configure:
libiscsi: no
configure:
libnl: yes (CFLAGS=' ' LIBS='-lnl ')
configure:
libpcap: no
configure:
libssh: no
configure:
libxl: yes (CFLAGS=' -DLIBXL_API_VERSION=0x040500'
LIBS='-lxenlight -lxlutil -lxenstore -lxentoollog')
configure:
libxml: yes (CFLAGS='-I/usr/include/libxml2 '
LIBS='-lxml2 ')
configure:
macvtap: yes (CFLAGS='' LIBS='')
configure:
netcf: no
configure:
NLS: yes
configure:
nss: yes
configure:
numactl: no
configure:
openwsman: no
configure:
pciaccess: yes (CFLAGS=' ' LIBS='-lpciaccess ')
configure:
pm_utils: yes (CFLAGS='' LIBS='')
configure:
polkit: no
configure:
rbd: no
configure:
readline: no
configure:
sanlock: no
configure:
sasl: yes (CFLAGS='' LIBS='-lsasl2')
configure:
selinux: yes (CFLAGS='' LIBS='-lselinux')
configure:
ssh2: no
configure:
udev: yes (CFLAGS=' ' LIBS='-ludev ')
configure:
virtualport: yes (CFLAGS='' LIBS='')
configure:
xdr: yes (CFLAGS='' LIBS='')
configure:
xenapi: no
configure:
yajl: yes (CFLAGS='' LIBS='-lyajl')
configure:
configure: Windows
configure:
configure:
Cygwin: no
configure:
MinGW: no
configure:
MSVC: no
configure:
windres: no
configure:
configure: Test
suite
configure:
configure:
Coverage: no
configure:
Alloc OOM: no
configure:
configure:
Miscellaneous
configure:
configure:
Debug: yes
configure:
Use -Werror: yes
configure:
Warning Flags: -fno-common -W -Waddress
-Waggressive-loop-optimizations -Wall -Wattributes
-Wbad-function-cast -Wbuiltin-macro-redefined
-Wcast-align -Wchar-subscripts -Wclobbered -Wcomment
-Wcomments -Wcoverage-mismatch -Wcpp
-Wdeprecated-declarations -Wdiv-by-zero
-Wdouble-promotion -Wempty-body -Wendif-labels -Wextra
-Wformat-contains-nul -Wformat-extra-args
-Wformat-security -Wformat-y2k -Wformat-zero-length
-Wfree-nonheap-object -Wignored-qualifiers -Wimplicit
-Wimplicit-function-declaration -Wimplicit-int
-Winit-self -Winline -Wint-to-pointer-cast
-Winvalid-memory-model -Winvalid-pch -Wlogical-op
-Wmain -Wmaybe-uninitialized -Wmissing-braces
-Wmissing-declarations -Wmissing-field-initializers
-Wmissing-include-dirs -Wmissing-parameter-type
-Wmissing-prototypes -Wmultichar -Wnarrowing
-Wnested-externs -Wnonnull -Wold-style-declaration
-Wold-style-definition -Woverflow -Woverride-init
-Wpacked-bitfield-compat -Wparentheses -Wpointer-arith
-Wpointer-sign -Wpointer-to-int-cast -Wpragmas -Wpsabi
-Wreturn-local-addr -Wreturn-type -Wsequence-point
-Wshadow -Wsizeof-pointer-memaccess -Wstrict-aliasing
-Wstrict-prototypes -Wsuggest-attribute=const
-Wsuggest-attribute=format
-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure
-Wswitch -Wsync-nand -Wtrampolines -Wtrigraphs
-Wtype-limits -Wuninitialized -Wunknown-pragmas
-Wunused -Wunused-but-set-parameter
-Wunused-but-set-variable -Wunused-function
-Wunused-label -Wunused-local-typedefs
-Wunused-parameter -Wunused-result -Wunused-value
-Wunused-variable -Wvarargs -Wvariadic-macros
-Wvector-operation-performance -Wvolatile-register-var
-Wwrite-strings -Wnormalized=nfc -Wno-sign-compare
-Wjump-misses-init -Wswitch-enum
-Wno-format-nonliteral -fstack-protector-strong
-fexceptions -fasynchronous-unwind-tables
-fipa-pure-const -Wno-suggest-attribute=pure
-Wno-suggest-attribute=const -Werror
configure:
DTrace: no
configure:
numad: no
configure:
Init script: systemd
configure: Char
device locks: /var/lock
configure:
Default Editor: vi
configure:
Loader/NVRAM:
configure:
virt-login-shell: yes
configure:
virt-host-validate: yes
configure:
TLS priority: NORMAL
configure:
configure:
Developer Tools
configure:
configure:
wireshark_dissector: no
configure:
configure:
Privileges
configure:
configure:
QEMU: root:root
configure:
My question is how should I install the
libvirt-daemon-driver-xen driver and make Nova work with
Xen?
Thanks a lot in advance!
Best regards,
Lianjie Cao