Re: Question about rbd flag(RBD_FLAG_OBJECT_MAP_INVALID)

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

 



Thanks for your reply,  why not rebuild object-map when object-map feature is enabled.

Cheers,
xinxin

-----Original Message-----
From: Jason Dillaman [mailto:dillaman@xxxxxxxxxx] 
Sent: Tuesday, October 27, 2015 9:20 PM
To: Shu, Xinxin
Cc: ceph-users
Subject: Re: Question about rbd flag(RBD_FLAG_OBJECT_MAP_INVALID)

> Hi Jason dillaman
> Recently I worked on the feature http://tracker.ceph.com/issues/13500 
> , when I read the code about librbd, I was confused by 
> RBD_FLAG_OBJECT_MAP_INVALID flag.
> When I create a rbd with “—image-features = 13 ” , we enable 
> object-map feature without setting RBD_FLAG_OBJECT_MAP_INVALID, then 
> write data to generate an object, the existence of this object can be 
> checked by object_may_exist.
> But when I use “feature enable ${name} object-map” to enable 
> object-map feature of a clone rbd(we cannot specify –image-features 
> option when I clone rbd), and RBD_FLAG_OBJECT_MAP_INVALID flag is set. 
> If I use object_may_exist to check object existence, object_may_exist 
> function return true, which means the object exists.

When you create a new (empty) image with object map enabled from the start, the object map is valid since it defaults to all objects don't exist.  If you use 'rbd feature enable <image-spec> object-map', the object map will be flagged as invalid since you may have already written to the object (and thus the object map doesn't potentially match reality).  When an object map is flagged as invalid, any optimizations for whether the block exists or not are disabled.  

> So there maybe inconsistency with these two methods (--image-features vs.
> feature enable) when we create a rbd. Is this a bug ?
> My question is what does RBD_FLAG_OBJECT_MAP_INVALID flag mean, does 
> it mean the object map of rbd is not valid, we need rebuild the object map?

Yes, you need to rebuild an invalid object map via 'rbd object-map rebuild <image-spec | snap-spec>' to clear the RBD_FLAG_OBJECT_MAP_INVALID flag.  The rebuild process whether or not each potential object within the RBD image exists, and updates the object map accordingly. 

-- 

Jason Dillaman 
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux