All of lore.kernel.org
 help / color / mirror / Atom feed
* older kernels vs firefly
@ 2014-08-02  1:29 Sage Weil
  0 siblings, 0 replies; only message in thread
From: Sage Weil @ 2014-08-02  1:29 UTC (permalink / raw)
  To: ceph-devel

A couple firefly point releases ago we removed the Ceph requirement that, 
when EC pools are present, all clients must have the EC feature bit.  This 
is because the only users of EC are current not kernel based, so even 
having that feature bit doesn't mean a newer kernel is any better off than 
an older one.  And (we thought) it meant that an older kernel (e.g., 
3.12) can still map an rbd or mount cephfs when the cluster has a new EC 
pool created for unrelated purposes.

...but there is still a problem.  The EC pools need new CRUSH rule steps 
to work effectively, and normally have a rule using those new features 
for the EC pool.  And the code that ensures that clients understand all 
features that the CRUSH map uses works, so those kernels *still* can't
talk to a firefly cluster with EC pools (if the EC pools are configured 
properly and are using a "good" CRUSH rule).

Simply not requiring that feature of any client is problematic because 
clients using those pools do need to understand that feature.  So, I'm not 
sure what the quick fix is...

As for the real fix, I think we need to add a features field to the 
OSDMap pg_pool_t so that, for a given pool, there may be additional client 
requirements.  The CRUSH feature code can then map the per-rule feature 
bits to only the pools that need it.  And eventually clients can be made 
to verify those per-pool features.

I suppose we could then backport all of that to firefly?  :/

sage


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-08-02  1:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-02  1:29 older kernels vs firefly Sage Weil

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.