Re: cache pool user interfaces

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

 



On Wed, 26 Feb 2014, Gregory Farnum wrote:
> We/you/somebody need(s) to sit down and decide on what kind of
> interface we want to actually expose to users for working with caching
> pools. What we have right now is very flexible, but it's hard to test
> all the combinations and it's easy for users to get themselves into
> trouble.
> I know we've in the past discussed making all the configuration
> options into a single "create cache pool" command that accepts
> whatever we're interested in, and I think that's the model we want to
> go towards right now. But we're running out of time to make that
> change given the release deadline and the documentation that needs to
> be generated (eg http://tracker.ceph.com/issues/7547).

Right now the sequence is:

       ceph osd pool create cache $num_pgs
       ceph osd tier add base cache
       ceph osd tier cache-mode cache writeback
       ceph osd tier set-overlay base cache
       ceph osd pool set cache hit_set_type bloom
       ceph osd pool set cache hit_set_count 8
       ceph osd pool set cache hit_set_period 60
       ceph osd pool set cache target_max_objects 5000

(modulo some sane defaults, and the target size)

I mostly like the flexibility this presents and don't forsee any major 
problems, but nevertheless I agree that a friendly interface is safer to 
advertise and, well, friendlier.  How about:

       ceph osd pool create cache $num_pgs

(I think think this should be a separate step since users will want/need 
to adjust the crush rule and so forth to put this on the right devices 
*before* it gets set as an overlay and gets hammered by the existing 
pool's workload.)  Then

       ceph osd tier add-cache base cache

which would do the other 3 tier steps and set some sane hit_set defaults.
What do you think?

Separately:

1- I'm not sure what the default target size should be set to; maybe a 
default of 10000 objects or something?  I think it should be *something*.

2- I think we need to bite the bullet and make a 'ceph df' function that 
figures out how much space is available on a per-pool basis.  It would:
 - figure out which osds are toched by the rules for each pool, and
 - sum up only those osds' usages
 - divide by the replication factor or EC storage overhead
If there target_max_* values aren't set for the pool, this could be used 
instead, by periodically filling in a pg_pool_t approximate_capacity type 
field.  Of course, for multiple pools this is double counting free space, 
but for the purposes of the cache agent it is still perfectly usable as a 
target for controlling when the agent kicks into gear.  It would also be 
very nice for users.  (Hmm, perhaps I should write this up in a 
blueprint!)

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