Pike2Xena миграция

Libvirt

При установке xena возникает ошибка:

вот такая ошибка
2022-02-17 22:07:14.988 26329 ERROR oslo_service.service [-] Error starting thread.: nova.exception.InternalError: Nova requires libvirt version 6.0.0 or greater.
2022-02-17 22:07:14.988 26329 ERROR oslo_service.service   File "/var/lib/nova/env/lib/python3.7/site-packages/nova/virt/libvirt/driver.py", line 740, in init_host
2022-02-17 22:07:14.988 26329 ERROR oslo_service.service     libvirt_utils.version_to_string(MIN_LIBVIRT_VERSION))
2022-02-17 22:07:14.988 26329 ERROR oslo_service.service nova.exception.InternalError: Nova requires libvirt version 6.0.0 or greater.

хотя стоит версия 8.0.0

Исправление:

В файле /var/lib/nova/env/lib/python3.7/site-packages/nova/virt/libvirt/driver.py комментируем строки

#        if not self._host.has_min_version(MIN_LIBVIRT_VERSION):
#            raise exception.InternalError(
#                _('Nova requires libvirt version %s or greater.') %
#                libvirt_utils.version_to_string(MIN_LIBVIRT_VERSION))

....

#        if CONF.libvirt.virt_type in ("qemu", "kvm"):
#            if not self._host.has_min_version(hv_ver=MIN_QEMU_VERSION):
#                raise exception.InternalError(
#                    _('Nova requires QEMU version %s or greater.') %
#                    libvirt_utils.version_to_string(MIN_QEMU_VERSION))

Neutron

neutron agent из xena не совместим с neutron контроллером из pike

Скрипт создания чистой базы OVS:

ovsdb-server --remote=punix:/var/run/openvswitch/db.sock --pidfile --detach

OpenvSwitch

В lxc3 openvswicth запускается при следующих условиях

  1. В конфиге контейнера прописываем:
lxc.cgroup.devices.allow = b 7:* rwm
# Setup access to /dev/net/tun
lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file 0 0
  1. Под вопросом!? В /lib/systemd/system/openvswitch-switch.service добавляем:
[Service]
PrivateTmp=false 

Host configuration

ovs-vsctl add-br switch-internal
ovs-vsctl add-br switch-internal vx1 -- set interface vx1 type=vxlan options:remote_ip=78.142.221.165
ovs-vsctl add-port switch-internal vx1 -- set interface vx1 type=vxlan options:remote_ip=78.142.221.165
ovs-vsctl add-port switch-internal vx1 -- set interface vx2 type=vxlan options:remote_ip=78.142.221.167
ovs-vsctl add-port switch-internal vx2 -- set interface vx2 type=vxlan options:remote_ip=78.142.221.167
ovs-vsctl show

/etc/network/interfaces.d/switch-internal.cfg

allow-hotplug switch-internal
iface switch-internal inet static
  address 10.0.27.4
  netmask 255.255.255.0
#  up iptables -t nat -A POSTROUTING -o ens82f0 -j MASQUERADE

/etc/network/interfaces.d/switch-public.cfg

# The primary network interface
allow-hotplug switch-public
iface switch-public inet static
  address 78.142.221.166
  netmask 255.255.255.224
  gateway 78.142.221.190
  dns-nameservers 8.8.8.8 8.8.4.4

Zfs tuning

zfs set xattr=sa ev3/lxc
zfs set acltype=posixacl ev3/lxc

Pinning

openstack flavor set m1.large --property hw:numa_nodes=1

это означает, что созданная виртуалка с указанным flavor разместится целиком на одном NUMA домене

про pinning нужно не забывать, навешивая на flavor такую опцию

--property hw:cpu_policy=dedicated

Octavia

В документации присутствует развертывание Octavia лишь с linux bride.

Вот этот код:

$ sudo ip link add o-hm0 type veth peer name o-bhm0
$ NETID=$(openstack network show lb-mgmt-net -c id -f value)
$ BRNAME=brq$(echo $NETID|cut -c 1-11)
$ sudo brctl addif $BRNAME o-bhm0
$ sudo ip link set o-bhm0 up

Может быть заменен на следующее:

ovs-vsctl --may-exist add-port \${OVS_BRIDGE:-br-int} o-hm0 \\
-- set Interfac o-hm0 type=internal \\
-- set Interface o-hm0 external-ids:iface-status=active \\
-- set Interface o-hm0 external-ids:attached-mac=\$MGMT_PORT_MAC \\
-- set Interface o-hm0 external-ids:iface-id=\$MGMT_PORT_ID \\
-- set Interface o-hm0 external-ids:skip_cleanup=true

Swift

Для сборки нужна библиотека liberasurecode-dev

Haproxy

В обновленной версии haproxy, которая идет в Debian 11 - работает такая конфигурация

backend placement
    option httpchk
    http-check send meth GET  uri /
    server 30897 10.0.10.21:8778 check inter 10000 rise 2 fall 5
    server 59060 10.0.10.22:8778 check inter 10000 rise 2 fall 5
    server 50091 10.0.10.23:8778 check inter 10000 rise 2 fall 5