Re: [ceph-users] how to understand deep flatten implementation

2015-10-23 Thread Max Yehorov
Looks like it is a bug: Features are parsed and set here: https://github.com/ceph/ceph/blob/master/src/rbd.cc#L3235 format_specified is forced to true here: https://github.com/ceph/ceph/blob/master/src/rbd.cc#L3268 Error is produced here: https://github.com/ceph/ceph/blob/master/src/rbd.cc#L3449

Re: [ceph-users] how to understand deep flatten implementation

2015-10-23 Thread Max Yehorov
I am trying to pass deep-flatten during clone creation and got this: rbd clone --image-feature deep-flatten d0@s0 d1 rbd: image format can only be set when creating or importing an image On Fri, Oct 23, 2015 at 6:27 AM, Jason Dillaman wrote: >> After reading and understanding your mail, i moved

Re: [ceph-users] how to understand deep flatten implementation

2015-10-23 Thread Jason Dillaman
> After reading and understanding your mail, i moved on to do some experiments > regarding deep flatten. some questions showed up: > here is my experiement: > ceph version I used: ceph -v output: > ceph version 9.1.0-299-g89b2b9b > 1. create a separate pool for test: > rados mkpool pool100 > 2. cr

Re: [ceph-users] how to understand deep flatten implementation

2015-10-22 Thread Jason Dillaman
The flatten operation is implemented by writing zero bytes to each object within a clone image. This causes librbd to copyup the backing object from the parent image to the clone image. A copyup is just a guarded write that will not write to the clone if the object already exists (i.e. new dat