older kernels vs firefly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux