Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1243306

Summary: If you enable ceph configuration for nova (compute nodes), this also puts ephemeral disks on ceph
Product: Red Hat OpenStack Reporter: Graeme Gillies <ggillies>
Component: openstack-tripleo-heat-templatesAssignee: Sébastien Han <shan>
Status: CLOSED NOTABUG QA Contact: Yogev Rabl <yrabl>
Severity: unspecified Docs Contact:
Priority: medium    
Version: 7.0 (Kilo)CC: dmacpher, felipe.alfaro, gfidente, ggillies, hbrock, jefbrown, jomurphy, kimi.zhang, mburns, mcornea, nauvray, nbarcet, rhel-osp-director-maint, seb
Target Milestone: ---   
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Known Issue
Doc Text:
Ephemeral storage is hard coded as true when using the NovaEnableRbdBackend parameter. This means NovaEnableRbdBackend instances cannot use cinder backed onto Ceph Storage. As a workaround, add the following to puppet/hieradata/compute.yaml: nova::compute::rbd::ephemeral_storage: false This disables ephemeral storage.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-09-23 10:13:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Graeme Gillies 2015-07-15 07:35:15 UTC
Hi,

Looking through the openstack tripleo heat templates, we can see that there is a variable

NovaEnableRbdBackend

Which if set to true will configure a ceph client configuration on the compute nodes (good) and also set ephemeral storage to go onto ceph as well (if I'm reading this correctly)

the puppet classs

class nova::compute::rbd (
  $libvirt_rbd_user,
  $libvirt_rbd_secret_uuid      = false,
  $libvirt_rbd_secret_key       = undef,
  $libvirt_images_rbd_pool      = 'rbd',
  $libvirt_images_rbd_ceph_conf = '/etc/ceph/ceph.conf',
  $rbd_keyring                  = 'client.nova',
  $ephemeral_storage            = true,
)

defaults ephemeral_storage to true, and I don't believe we override it.

Without NovaEnableRbdBackend instances cannot use cinder backed onto ceph.

So to get the ideal situation of nova compute configured so it can use ceph, but ephemeral disks on local storage, is not done "out of the box".

We should manually override ephemeral_storage to false

Regards,

Graeme

Comment 5 Emilien Macchi 2015-07-15 17:38:20 UTC
It might be a fix, Gilles can you have a look?
https://review.openstack.org/202206

Thanks

Comment 6 Graeme Gillies 2015-07-15 23:04:58 UTC
Hi,

I am more than happy to provide documentation on how to change this if you would like.

Emilien, I had a look at the review you mentioned and it looks ok to me, except I noted on the review that I think you had some of the parameters around the wrong way.

Let me know if you require documentation, or if we are going for a code fix.

Regards,

Graeme

Comment 7 Dan Macpherson 2015-08-03 05:25:43 UTC
Graeme,

This seems like a case of adding the following to puppet/hieradata/compute.yaml:

nova::compute::rbd::ephemeral_storage: false

Can you confirm this? Or is it something different?

- Dan

Comment 8 Nicolas Auvray 2015-08-03 16:42:33 UTC
Hi Dan,

I ran into the same problem Graeme encountered, and your solution of adding this parameter did the trick. I'm now able to have ephemeral storage in compute node and attach Ceph volume to the instance. mThank you very much!

Cheerz,
Nico

Comment 9 Graeme Gillies 2015-08-03 22:52:10 UTC
(In reply to Dan Macpherson from comment #7)
> Graeme,
> 
> This seems like a case of adding the following to
> puppet/hieradata/compute.yaml:
> 
> nova::compute::rbd::ephemeral_storage: false
> 
> Can you confirm this? Or is it something different?
> 
> - Dan

Hi Dan,

Yep that should do the trick as a work around.

This is being addressed properly at

https://review.openstack.org/#/c/202206/

Regards,

Graeme

Comment 10 Graeme Gillies 2015-10-16 01:37:20 UTC
Hi,

This needs to be pushed up in priority as now the workaround is broken, with this commit

https://github.com/openstack/tripleo-heat-templates/commit/5965f7ab6cc60105e614d32ef2bb29205d81237d

Which changes the if condition to not be conditional on NovaEnableRbdBackend, but rather on the nova::compute::rbd::ephemeral_storage hiera param itself.

This now means that if you set nova::compute::rbd::ephemeral_storage to false as per the workaround, the if condition never fires and you never get the ceph client installed. So we are back to the original problem, either have ephemeral images on ceph and have a working ceph client, or don't and nova is never configured with ceph, meaning that cinder volumes on ceph break.

The workaround NOW is to manually modify the puppet manifest to include ceph client as needed.

Regards,

Graeme

Comment 11 Nicolas Auvray 2015-11-02 15:38:48 UTC
BTW, the comment associated with the parameter is not clear.

## Whether to enable rbd (Ceph) backend for Nova ephemeral storage.
  NovaEnableRbdBackend: true

It should also tell that it disables all Ceph configuration. This could mislead people a lot.

Comment 12 Felipe Alfaro Solana 2015-12-01 15:40:02 UTC
The proper solution is to use the following patch to puppet/hieradata/compute.yaml:

@@ -11,6 +11,8 @@ nova::compute::libvirt::vncserver_listen: '0.0.0.0'
 nova::compute::libvirt::migration_support: true
 
 nova::compute::rbd::libvirt_rbd_secret_uuid: "%{hiera('ceph::profile::params::fsid')}"
+# Do not use Ceph for ephemeral disks.
+nova::compute::rbd::ephemeral_storage: false
 
 nova::config::nova_config:
   cinder/catalog_info:

Comment 13 Felipe Alfaro Solana 2015-12-01 15:41:08 UTC
For the record, the patch mentioned before has been tested by me and I can confirm that ephemeral disks are using hypervisor local disks and that Cinder over Ceph also works fine.

Comment 14 Mike Burns 2016-04-07 20:43:53 UTC
This bug did not make the OSP 8.0 release.  It is being deferred to OSP 10.

Comment 17 Giulio Fidente 2016-08-23 09:27:37 UTC
I think purpose of the params could have been misunderstood, from OSPd8 the expecations are that:

  NovaEnableRbdBackend: true

will make Nova guests' ephemeral disks to go on RBD

  CinderEnableRbdBackend: true

will add an RBD backend in Cinder (and configure the required settings in Nova so that guests can attach Cinder volumes stored on RBD)


To use Ceph for Cinder, but not for the Nova ephemeral disks, the params should be set as:

  CinderEnableRbdBackend: true
  NovaEnableRbdBackend: false

could you check if the above is working as intended?

Comment 18 seb 2016-09-02 14:57:03 UTC
Up, if Giulio comment resolves the issue we need to close this.

Comment 19 seb 2016-09-20 11:44:45 UTC
can someone confirm that Giulio's comment solve this issue or not?

Comment 20 Graeme Gillies 2016-09-22 22:01:47 UTC
(In reply to Giulio Fidente from comment #17)
> I think purpose of the params could have been misunderstood, from OSPd8 the
> expecations are that:
> 
>   NovaEnableRbdBackend: true
> 
> will make Nova guests' ephemeral disks to go on RBD
> 
>   CinderEnableRbdBackend: true
> 
> will add an RBD backend in Cinder (and configure the required settings in
> Nova so that guests can attach Cinder volumes stored on RBD)
> 
> 
> To use Ceph for Cinder, but not for the Nova ephemeral disks, the params
> should be set as:
> 
>   CinderEnableRbdBackend: true
>   NovaEnableRbdBackend: false
> 
> could you check if the above is working as intended?

This is now correct, so this is issue is resolved (to me at least)

Regards,

Graeme

Comment 21 seb 2016-09-23 10:13:45 UTC
Thanks Graeme!

I'm closing this then.