Use Swift as backend for Glance

Use Swift as backend is described in the following post:

http://thornelabs.net/2014/08/03/use-openstack-swift-as-a-backend-store-for-glance.html

Additionally in swift store must be added in /etc/glance/glance-api.conf:

Lastly, comment out any existing swift related configuration in glance-api.conf

Heat installation on Ubuntu 14.04

First of all as rpc_backend option in heat.conf file must be set as follows:

Another problem is the same as with Nova in post: http://stackblog.net/?p=14  i.e. heat-engine service does not start unless mysql service starts first. This is the same problem as with nova-scheduler and nova-cert.

Solution:

Heat-engine is a SysV service thus we need to first check mysql priority (in the example below it is 19):

 In all appropriate runlevels (2,3,4,5) add a symbollic link /etc/rcX.d directories so that heat-engine start *AFTER* mysql service:

 or use:

 Even though heat-engine process seems to be UP:

Service status is shown as STOP/WAITING:

Due to some reason heat-engine service is called by some different service during bootup twice before mysql is up and it fails to launch (even though in boot log it shows [OK]

/var/log/heat/heat-engine.log

/var/log/boot.log

After mysql is launched again heat-engine is started (thanks to adding it /etc/rcX.d with appropriate priority):

 All in all service works fine but its status is shown incorrectly.

Instance not started due to OVS database problem

The following problem may appear while attempting to start an instance:

Solution:

Just restart ovs service:

DHCP not working on demo-net

DHCP-agent works in a separate namespace but is connected to br-int in ovs, after creating a demo-net it can be seen that an interface on which dhcp (tap3b4d7bf0-12) server works is assigned to VLAN 4095 (so called “dead-vlan”) on the br-int making it inaccessible for a running instance which has an interface in demo-net.

Changing tag statically to 1 (same tag as used by qr* interface where DHCP requests from an example instance are seen with tcpdump):

Does not solve the problem, DHCP requests reach DHCP agent and are replied but replies are not forwarded to the instance (probably some more static changes are required in OVS)

DHCP port (in this example 10.0.0.2) is visible in neutron as DOWN:

Solution:

Rather simple one. Disable and enable back DHCP service on the network (I did it from horizon) -> after this DHCP port’s status changes to ACTIVE (and probably something more internally in OVS is changed so as to make DHCP replies being forwarded properly to the instance).

Instance not started due to Neutron misconfiguration on Ubuntu 14.04

While attempting to start instance the following problem appears:

/var/log/nova/nova-compute.log

 /var/log/neutron/server.log

Solution:

Add in /etc/nova/nova.conf in [DEFAULT] section:

Problem described here:

https://ask.openstack.org/en/question/26938/virtualinterfacecreateexception-virtual-interface-creation-failed/

Nova installation on Ubuntu 14.04

nova-cert and sometimes nova-scheduler does not start after reboot even though it is enabled as per nova-manage service list output (marked as XXX state):

Reason can be found in /var/log/nova/nova-cert.log

  • Root cause is that MySQL server is not ready.
  • MySQL is started using SysV script in /etc/init.d while Nova scripts are Upstart scripts in /etc/init/ dir
  • SysV and Upstart scripts are started asynchrounously

Solution:

In /etc/init/nova-cert.conf and /etc/init/nova-scheduler.conf add a line “start on mysql_started” and comment “start on runlevel” line

It means start a service when a custom event mysql_started is emitted.

As these nova-cert/scheduler depends on mysql to start properly add the following line in /etc/init.d/mysql as a list line of start option:

  • We don’t have to care about runlevel as it is covered by mysql init script
  • In this way we ensure that only after mysql starts then we start nova-cert and nova-scheduler
  • caveat: event should be emitted only we startup is successful so only in “ifs” telling that mysql started succcessfully, I added it as a list line in the “start” option