RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1140742 - Enable native qemu support for Ceph
Summary: Enable native qemu support for Ceph
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm
Version: 7.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Kevin Wolf
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: 1118053 1138094 1149114
Blocks: 1140744 1159030
TreeView+ depends on / blocked
 
Reported: 2014-09-11 15:00 UTC by Ademar Reis
Modified: 2019-04-16 14:18 UTC (History)
14 users (show)

Fixed In Version: qemu-kvm-1.5.3-83.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1140744 1154876 (view as bug list)
Environment:
Last Closed: 2015-03-05 08:12:15 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:0349 0 normal SHIPPED_LIVE Important: qemu-kvm security, bug fix, and enhancement update 2015-03-05 12:27:34 UTC

Description Ademar Reis 2014-09-11 15:00:08 UTC
We currently have ceph enabled in qemu via a runtime check for the librbd libraries (see bug 989608).

CEPH is going to be present as a native package in RHEL7.1+ (bug 1138094, bug 1118053), so we should remove this runtime hack and enable it as a standard built-in driver (support added at build time).

Comment 1 Kevin Wolf 2014-09-11 15:22:42 UTC
Did you consider that this creates a new hard package dependency on the Ceph
libs? Do we really want this?

We might however consider enabling Fam's modules and create a new optional
package for the rbd block driver, which could then have a hard dependency on
the Ceph libs. On the other hand, we wouldn't know whether we should install
that package on an upgrade, so maybe such changes are more suitable for a
major version.

Comment 2 Ademar Reis 2014-09-11 15:50:30 UTC
(In reply to Kevin Wolf from comment #1)
> Did you consider that this creates a new hard package dependency on the Ceph
> libs? Do we really want this?
> 

Yep, I know. IIRC, ceph runtime libraries are not that large or intrusive... they would be just "yet another lib that qemu depends on", so I don't see it as a big deal right now (but would happily discuss it further if you or anybody else disagrees)

> We might however consider enabling Fam's modules and create a new optional
> package for the rbd block driver, which could then have a hard dependency on
> the Ceph libs. On the other hand, we wouldn't know whether we should install
> that package on an upgrade, so maybe such changes are more suitable for a
> major version.

Yes, this is in the works. Fam is starting the discussions and coordination with Cole to get modular packages introduced to Fedora. Adopting it in RHEL will depend on how well it works in Fedora (specially the transition).

Comment 3 Kevin Wolf 2014-09-11 16:39:51 UTC
(In reply to Ademar Reis from comment #2)
> Yep, I know. IIRC, ceph runtime libraries are not that large or intrusive...
> they would be just "yet another lib that qemu depends on", so I don't see it
> as a big deal right now (but would happily discuss it further if you or
> anybody else disagrees)

I don't strictly disagree, but then I don't see the point of statically
building it in either. If we were to newly introduce Ceph, I think this is the
way we'd go because it would be easier, but now the work is already done and it
feels like doing additional work for making things less nice.

I'll happily consider doing the switch if we ever run into merge conflicts in
the rbd driver (which seems unlikely as the code didn't change in a long time
upstream), but until then, what would the advantage be?

Comment 4 Ademar Reis 2014-09-11 20:03:50 UTC
(In reply to Kevin Wolf from comment #3)
> (In reply to Ademar Reis from comment #2)
> > Yep, I know. IIRC, ceph runtime libraries are not that large or intrusive...
> > they would be just "yet another lib that qemu depends on", so I don't see it
> > as a big deal right now (but would happily discuss it further if you or
> > anybody else disagrees)
> 
> I don't strictly disagree, but then I don't see the point of statically
> building it in either. If we were to newly introduce Ceph, I think this is
> the
> way we'd go because it would be easier, but now the work is already done and
> it
> feels like doing additional work for making things less nice.
> 
> I'll happily consider doing the switch if we ever run into merge conflicts in
> the rbd driver (which seems unlikely as the code didn't change in a long time
> upstream), but until then, what would the advantage be?

I think there are two main reasons:

 - We want it to work out-of-the-box. The way it is now, users need to install ceph conciously before they see support enabled in QEMU.

 - The current implementation is "unsafe": we never know the source of the librbd packages installed by the user as long as there's a symlink for QEMU to use. Now that they're going to be provided in RHEL, we should protect ourselves via rpm dependencies: users running CEPH from 3rd parties should not be supported.

I record responding to at least one support request via Bugzilla in the past because a user was confuse by the current behavior, so I guess there are many other hitting the frontline. I'm sure GSS will welcome this change.

Comment 5 Ademar Reis 2014-09-11 20:06:37 UTC
(In reply to Ademar Reis from comment #4)
> 
> I think there are two main reasons:
> 
>  - We want it to work out-of-the-box. The way it is now, users need to
> install ceph conciously before they see support enabled in QEMU.
> 

Notice this is different than a package split where we have "qemu-kvm-ceph" alongside others such as "qemu-kvm-gluster", etc. My point above is that right now, ceph is special and requires something unexpected to be done before it works.

Comment 6 Boris Ranto 2014-10-08 12:31:32 UTC
Kevin: we are newly introducing ceph (bz1149114) although client-side only. Hence, we can link dynamically, not statically, against those.


all: What is the final decision, here? Will we build dynamically against librbd or not? I'd like to know that because we do not create the qemu symlink in the current native ceph-common builds and we should probably do that in case we are not linking librbd dynamically.

Comment 7 Ademar Reis 2014-10-09 14:37:14 UTC
(In reply to Boris Ranto from comment #6)
> Kevin: we are newly introducing ceph (bz1149114) although client-side only.
> Hence, we can link dynamically, not statically, against those.
> 
> 
> all: What is the final decision, here? Will we build dynamically against
> librbd or not? I'd like to know that because we do not create the qemu
> symlink in the current native ceph-common builds and we should probably do
> that in case we are not linking librbd dynamically.

I discussed this with Kevin and we'll indeed build dynamically. We're just waiting for the ceph package(s) to arrive before we push the patch to qemu-kvm.

Thanks.

Comment 8 Ademar Reis 2014-10-09 14:39:48 UTC
(In reply to Ademar Reis from comment #7)
> (In reply to Boris Ranto from comment #6)
> > Kevin: we are newly introducing ceph (bz1149114) although client-side only.
> > Hence, we can link dynamically, not statically, against those.
> > 
> > 
> > all: What is the final decision, here? Will we build dynamically against
> > librbd or not? I'd like to know that because we do not create the qemu
> > symlink in the current native ceph-common builds and we should probably do
> > that in case we are not linking librbd dynamically.
> 
> I discussed this with Kevin and we'll indeed build dynamically. We're just
> waiting for the ceph package(s) to arrive before we push the patch to
> qemu-kvm.

Err... just to clarify: by "build dynamically", I mean link at build time. In other words: no symlink anymore, ceph libraries will have to be present in the build environment and the qemu rpm package will require the respective ceph library packages.

Comment 9 Boris Ranto 2014-10-09 14:45:24 UTC
Great, just one more thing: we will probably split the ceph-devel package to librbd1-devel and librados2-devel to accommodate the fact that we are not shipping cephfs bits in RHEL 7.1 so it would be nice if you could put librbd1-devel to your build requirements and not ceph-devel (so that we won't have to deal with ceph-devel-compat right from the beginning).

I'll let you know what the actual layout is once the decision is final.

Comment 10 Boris Ranto 2014-10-09 19:05:51 UTC
Ok, so we've decided to split the ceph-devel packages into librados2-devel and librbd1-devel so please use these -devel packages for build dependencies.

See this brew task for full layout:

https://brewweb.devel.redhat.com/taskinfo?taskID=8085393

btw: ceph is enabled only on x86_64 architecture.

Comment 11 Kevin Wolf 2014-10-21 13:25:38 UTC
Just to give a short update here: I have patches ready for this. However, the
build currently still fails because librados2-devel apparently isn't available
yet, even though Boris said it should be. Jeff Nelson is going to raise a
ticket with rel-eng.

Comment 12 Neil Levine 2014-11-20 18:43:19 UTC
To be explicit, when a user installs the qemu rpm package it will now also pull in the ceph-common, librbd, librados and python-ceph packages as dependencies? Is that correct?

Comment 15 Miroslav Rezanina 2014-11-27 12:02:39 UTC
Fix included in qemu-kvm-1.5.3-83.el7

Comment 20 errata-xmlrpc 2015-03-05 08:12:15 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0349.html


Note You need to log in before you can comment on or make changes to this bug.