On Thu, Apr 12, 2018 at 10:23 AM, handong He <hedongho@xxxxxxxxx> wrote: > Hi, cephers: > > I did some test about rbd cli operation and have some doubt. > > 1. rbd can be removed during copy operation. And both 'cp' and > 'rm' command return success. However the dest-image data is diff from > the src-image. > why not set a watcher for the rbd_header obj for the opening > image. So it will occur error and return image ebusy when run 'rm'. > > easy to reproduce: > 1. rbd cp rbd/img0 rbd/img1 > 2. while cp is runing, exec: rbd rm rbd/img0 > 3. after finish, just compare two img's du(USED): rbd du rbd/img1 > > 2. in krbd, image-feature should be only set 'layering' for the > 'map' operation.But for clone image: the child img set layering, but > parent img has more feature that krbd not support. it will fail while > child img exec ' rbd map'. > i think it is logical, but maybe a little complex while the > chain is long. we have to lookup every ancestors and make sure their > feature is match krbd's support features. will that be any optimize? > > easy to reproduce: > 1. rbd clone rbd/img0@sn1 rbd/img1 --image-feature=layering > 2. parent img0 has default feature, which make 'rbd map > rbd/img1' failed. The entire parent chain has to be traversed during "rbd map" to set up in-core data structures for each parent image and link them together. Checking the feature bits is just one of the steps, so I don't see any optimization opportunities here. Thanks, Ilya -- 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