not provisioning volumes with horizon

Bug #1070272 reported by Quenten Grasso
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Dashboard (Horizon)
Invalid
Undecided
Gabriel Hurley

Bug Description

I have 3 VM's and 1 Physical server,

db01 = rabbitmq & mysql 192.168.0.10
cc01 = cloud controller 192.168.0.11
quantum01 = quantum vm 192.168.0.12

osvmh01 = physical server. 192.168.0.30

-------
repo
echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/folsom main" > /etc/apt/sources.list.d/folsom.list
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5EDB1B62EC4926EA
--------

I'm finding when I use a "cinder create --display-name test 10" this will create a volume and display it correctly in the "cinder list" I can also use a "cinder create --image-id 2397e88a-4987-46d8-9b84-9255a589af9e --display-name glance-test 50" and it seem to create successfully as well.

However when trying to provision volumes via the dashboard cinder doesn't have them available in a "cinder list" command however the space has been used on the volume group to create the said volumes.

I'm also finding I'm unable to create a new virtual machine with the dashboard as it creates the vm but the image or the root disk is not created.

--------------
nova.conf from cs01
-------------
[DEFAULT]

# MySQL & RabbitMQ Connections
sql_connection=mysql://novadbadm:07600de0ba23491b@192.168.0.10/nova
rabbit_host=192.168.0.10
rabbit_password=36a62xtz

# Nova-Scheduler
scheduler_driver=nova.scheduler.simple.SimpleScheduler

# Nova-API
auth_strategy=keystone
s3_host=192.168.0.11
ec2_host=192.168.0.11
nova_url=http://192.168.0.11:8774/v1.1/
ec2_url=http://192.168.0.11:8773/services/Cloud
keystone_ec2_url=http://192.168.0.11:5000/v2.0/ec2tokens
api_paste_config=/etc/nova/api-paste.ini
allow_admin_api=true
use_deprecated_auth=false
ec2_private_dns_show_ip=True
dmz_cidr=169.254.169.254/32
ec2_dmz_host=192.168.0.11
metadata_host=192.168.0.11
metadata_listen=0.0.0.0
enabled_apis=ec2,osapi_compute,metadata

# Networking
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.0.12:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=ax14f4f1q78g057d
quantum_admin_auth_url=http://192.168.0.11:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver

# Compute
connection_type=libvirt
libvirt_type=kvm
libvirt_use_virtio_for_bridges=true
start_guests_on_host_boot=false
resume_guests_state_on_host_boot=false

# Cinder
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900
iscsi_helper=ietadm
iscsi_ip_address=192.168.0.11

# Glance
glance_api_servers=192.168.0.11:9292
image_service=nova.image.glance.GlanceImageService

# NoVNC
novnc_enable=true
novncproxy_base_url=http://192.168.0.11:6080/vnc_auto.html
vncserver_proxyclient_address=127.0.0.1
vncserver_listen=0.0.0.0

# Misc
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
verbose=true

------------
cinder.conf
------------

[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
sql_connection = mysql://cinderdbadm:d10cc83e459c915b@192.168.0.10/cinder
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper = ietadm
volume_name_template = volume-%s
volume_group = cinder-volumes
# volume_driver=cinder.volume.driver.RBDDriver
# rbd_pool=volumes
verbose = True
rabbit_host = 192.168.0.10
rabbit_password = 36a62xtz
auth_strategy = keystone
glance_host = 192.168.0.11
glance_api_servers = 192.168.0.11:9292
logdir = /var/log/cinder
#osapi_volume_listen_port=5900

------------
nova-compute.conf from osvmh01
------------
[DEFAULT]
libvirt_type=kvm
libvirt_ovs_bridge=br-int
libvirt_vif_type=ethernet
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
libvirt_use_virtio_for_bridges=True
--------------

nova.conf from osvmh01
--------------

[DEFAULT]

# MySQL & RabbitMQ Connections
sql_connection=mysql://novadbadm:07600de0ba23491b@192.168.0.10/nova
rabbit_host=192.168.0.10
rabbit_password=36a62xtz

# Nova-Scheduler
scheduler_driver=nova.scheduler.simple.SimpleScheduler

# Nova-API
auth_strategy=keystone
s3_host=192.168.0.11
ec2_host=192.168.0.11
nova_url=http://192.168.0.11:8774/v1.1/
ec2_url=http://192.168.0.11:8773/services/Cloud
keystone_ec2_url=http://192.168.0.11:5000/v2.0/ec2tokens
api_paste_config=/etc/nova/api-paste.ini
allow_admin_api=true
use_deprecated_auth=false
ec2_private_dns_show_ip=True
dmz_cidr=169.254.169.254/32
ec2_dmz_host=192.168.0.11
metadata_host=192.168.0.11
metadata_listen=0.0.0.0
enabled_apis=ec2,osapi_compute,metadata

# Networking
network_api_class=nova.network.quantumv2.api.API
quantum_url=http://192.168.0.12:9696
quantum_auth_strategy=keystone
quantum_admin_tenant_name=service
quantum_admin_username=quantum
quantum_admin_password=ax14f4f1q78g057d
quantum_admin_auth_url=http://192.168.0.11:35357/v2.0
libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver

# Compute
connection_type=libvirt
libvirt_type=kvm
libvirt_use_virtio_for_bridges=true
start_guests_on_host_boot=false
resume_guests_state_on_host_boot=false

# Cinder
volume_api_class=nova.volume.cinder.API
osapi_volume_listen_port=5900
iscsi_helper=ietadm
iscsi_ip_address=192.168.0.11

# Glance
glance_api_servers=192.168.0.11:9292
image_service=nova.image.glance.GlanceImageService

# NoVNC
novnc_enable=true
novncproxy_base_url=http://192.168.0.30:6080/vnc_auto.html
vncserver_proxyclient_address=127.0.0.1
vncserver_listen=0.0.0.0

# Misc
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova
root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf
verbose=true

----------------------

Any Ideas?

Revision history for this message
Gabriel Hurley (gabriel-hurley) wrote :

As far as I can tell from your description and the information provided this is a Cinder issue, though I can't figure out what would cause that. The Cinder team is more likely to be able to track down the problem.

If this were a dashboard problem you'd be seeing errors messages when you try to create the volume (e.g. the API would throw an error or reject the API call).

Changed in horizon:
assignee: nobody → Gabriel Hurley (gabriel-hurley)
status: New → Incomplete
Changed in cinder:
status: New → Incomplete
status: Incomplete → New
Revision history for this message
Quenten Grasso (qgrasso-d) wrote :

I've been doing some further testing and it seems the dashboard doesn't have the capacity to provision images to new persistent volumes?

Second to this the volumes which are created from snapshots work perfectly and appear in the volumes list. however as i mentioned above they don't seem to work from a image. its a 2 step process to create the volume and image the volume and then boot from a pre-created volume.

Preferably all instances provisioned imho should have persistent storage this allows host maintenance without having to turn off vm's etc.

Any ideas on how to go about resolving this issue?

Revision history for this message
Gabriel Hurley (gabriel-hurley) wrote :

Most of the folks who have worked with the "boot from volume" code in Cinder (formerly Nova) will tell you that it's a long way from perfect and is missing several use cases. The case you described is a perfect example. To the best of my knowledge the Nova API doesn't have a flag for creating an image on a persistent volume instead of ephemeral storage. It would be a nice feature to add, and would require coordination between both Nova and Cinder.

Revision history for this message
John Griffith (john-griffith) wrote :

Gabriel is correct, this is a work in progress... however, we have added something new to Cinder to make this a bit easier. You may however be referring to the read/write images addition to volumes that was added in Folsom (nova-vol and cinder).

You now have the ability to specify an image file when you create a volume. This will in effect copy the image to the volume and allow you to use it as a "bootable" volume. This feature is not in Horizon (it came in to Cinder pretty late in the release cycle), so it can only be done via the Cinder client/api.

After creating the volume, you can use boot from volume in Horizon as in the past (launch instance from the same image that you used in volume creation) and select 'boot from volume'. One note, currently this only works with raw images.

Let me know if this is what you're referring to, or if you had something else in mind.

Revision history for this message
John Griffith (john-griffith) wrote :

I forgot to mention, the issues you mention above regarding the volume not showing up in the volume-list etc are another matter that we'll have to work out. Is it possible that you created them in Cinder using a different Tenant than that which you're logged on and checking inside of Horizon? Does a `cinder list` show the newly created volumes?

Revision history for this message
Quenten Grasso (qgrasso-d) wrote :

this issue has been resolved i have submitted a piece of code on git hub, the volume list was a carbon based error --all-tenants 1 helps :)

https://github.com/qgrasso/nova/commit/340210a7f62e9e34bcc15972d97e81eb282fddd6

https://github.com/qgrasso/nova/commit/31f6839a2c2dd72e2cc44c37cb316610b42598bd

Revision history for this message
Quenten Grasso (qgrasso-d) wrote :

well for now anyway probably not perfect code but works for me at the moment!

no longer affects: cinder
Changed in horizon:
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.