Thanks, Yehuda, for your reply. I think you may be right because I did another experiment which seems there might be a reference to an object. I am just curious to do that for some corner case.
On Tue, Oct 15, 2013 at 12:39 AM, Yehuda Sadeh <yehuda@xxxxxxxxxxx> wrote:
I'm not too sure what you're trying to achieve. You should never everOn Mon, Oct 14, 2013 at 4:04 AM, david zhang <zhang.david2011@xxxxxxxxx> wrote:
> Hi ceph-users,
>
> I uploaded an object successfully to radosgw with 3 replicas. And I located
> all the physical paths of 3 replicas on different OSDs.
>
> i.e, one of the 3 physical paths is
> /var/lib/ceph/osd/ceph-2/current/3.5_head/DIR_D/default.4896.65\\u20131014\\u1__head_0646563D__3
>
> Then I manually deleted all the 3 replica files on OSDs, but this object can
> still get from radosgw with http code 200 even I cleaned all the caches on
> both radosgw and OSDs by 'echo 3 > /proc/sys/vm/drop_caches'. Only after I
> restarted the 3 OSDs, get request will return 404.
>
> What did I miss? Is it not right to clean cache in that way?
access the osd objects directly like that. The reason you're still
able to read the objects is probably because the osd keeps open fds
for recently opened files and it still holds a reference to them. If
you need to remove objects off the rados backend you should use the
rados tool to do that. However, since you created the objects via
radosgw, you're going to have some radosgw consistency issues, so in
that case the way to go would be by going through radosgw-admin (or
through the radosgw RESTful api).
Yehuda
Regards,
Zhi
_______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com