Attribute Error: Volume creation and display
Hello all,
I am hoping some of you can help point me in the right direction. I am building a proof of concept Openstack setup using GlusterFS as back-end storage for virtual machine volumes. I am relatively new to Openstack, so I am not sure what my problem is.
Setup:
1 x Controller node (Keystone, Glance, Nova Controller, Cinder, Heat, Ceilometer, Neutron Server)
1 x Compute node (Nova Compute, Cinder, Neutron Agent)
1 x Network node (Neutron dedicated server)
3 x GlusterFS nodes (2 exported volumes each, one for Glance images/Nova instances, one for Cinder volumes)
Volume 0: Mounted at (/var/lib/
Volume 1: Mount at (/csv1) with nova/glance subdirectories owned by the appropriate user/groups
Nova Version: 2.15.0
Cinder Version: 1.0.7
I am using CentOS 6.5 on all nodes running the 2.6.32-431 kernel. Currently the firewall is disabled on all nodes and SELinux is set to enforcing. I have two networks, an internal and external network. All nodes are resolvable with forward/reverse DNS.
Internal Network: 10.0.0.0/8
External Network: 192.168.218.0/24
Communication using Qpid between nodes works with no errors, MySQL connections are good.
Here is my problem:
When creating a new instance in Horizon, booting from an existing image and creating a new volume, instance creation always fails at the block device setup stage. If I boot directly off the image without creating a new volume, the instance starts an I am able to connect via the VNC console.
I am booting from a CentOS 6.5 minimal ISO using Glance, stored on a separate GlusterFS volume that Glance is configured to use as the 'state_path'. I can create images fine on this share.
After instance creation fails, if I try to access the 'Volumes' tab in Horizon, I am always given an internal error message:
AttributeError at /project/volumes/
display_name
Request Method: GET
Request URL: http://
Django Version: 1.4.8
Exception Type: AttributeError
Exception Value:
display_name
Exception Location: /usr/lib/
Python Executable: /usr/bin/python
Python Version: 2.6.6
Python Path:
['/
'/
'/
'/
'/
'/
'/
'/
'/
'/
'/
'/
Server time: Wed, 4 Dec 2013 04:43:27 +0000
In order to acces the Volumes page again I have to manually delete the Cinder volume from the command line using 'cinder delete'. Once the volume is gone I can access the page again. The volumes path is located on a GlusterFS share. This is my 'cinder.conf' file:
[DEFAULT]
# SQL Connection
sql_
# Metering Configuration
control_
notificatio
# Authentication Strategy
auth_
auth_uri=http://
# Glance Configuration
glance_
glance_
glance_
# Qpid Messenger
rpc_
qpid_
qpid_port=5672
qpid_
# GlusterFS Configuration
volume_
glusterfs_
glusterfs_
[keystone_
# Keystone Authentication
admin_
admin_
admin_
auth_
auth_port=35357
auth_
This is my 'nova.conf' file on the compute node:
[DEFAULT]
# API configuration
api_
# Glance image host
glance_
# State path and instances
state_
# Network configuration
my_ip = 10.0.0.3
# VNC server options
vnc_
vncserver_
vncserver_
# Gluster options
glusterfs_
libvirt_
compute_
instance_
api_
# Authentication strategy
auth_
# Qpid message broker
rpc_
qpid_
# Metering service
instance_
instance_
notify_
notificatio
notificatio
# Neutron configuration
network_
neutron_url=http://
neutron_
neutron_
neutron_
neutron_
neutron_
firewall_
security_
# Neutron metadata
neutron_
service_
# Cinder catalog
cinder_
# Database backend configuration
[database]
connection=
# Keystone authentication
[keystone_
admin_
admin_user=nova
admin_
auth_
auth_port=35357
auth_
When I go to check the logs for nova-compute on the compute node, I see the following error message:
2013-12-04 11:43:03.596 8232 ERROR nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:03.596 8232 TRACE nova.compute.
2013-12-04 11:43:04.570 8232 ERROR nova.virt.
2013-12-04 11:43:05.949 8232 ERROR nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
2013-12-04 11:43:05.949 8232 TRACE nova.compute.
At this point I am thoroughly confused as to what the problem can be. I have tried:
- Disabling SELinux/firewall
- Changing permissions on the mount points and GlusterFS volumes. I find it strange that the volume is created, but it does not appear to be attached to the instance
- Many different configuration settings
No matter what I try I consistently see the Python error in the dashboard error page and the nova compute logs. It looks like it occurs right after block creation is started, and fails. My first though was that the Nova python driver for Cinder volumes was somehow failing to retrieve the 'display_name' property for the volume causing a fatal error, but I am not a Python expert so I am unsure how to troubleshoot this.
I have been searching for a few days and have been unable to find anything directly related to my error message. I would greatly appreciate any insight to this error, and any tips on how to adjust my configuration or server settings to try to at least get a different error or resolve this one. If you think any other information would be useful please let me know. Cheers!
Question information
- Language:
- English Edit question
- Status:
- Open
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask David Taylor for more information if necessary.