Hi Jason,

I've followed your steps and now I can list all available data blocks of my
image, but I don't know how rebuild a sparse image, I found this script (
https://raw.githubusercontent.com/smmoore/ceph/master/rbd_restore.sh) and
https://www.sebastien-han.fr/blog/2015/01/29/ceph-recover-a-rbd-image-from-a-dead-cluster/
but I don't know if this can help me.

Any suggestions?

Thanks.

2016-09-21 22:35 GMT+02:00 Jason Dillaman <jdill...@redhat.com>:

> Unfortunately, it sounds like the image's header object was lost
> during your corruption event. While you can manually retrieve the
> image data blocks from the cluster, undoubtedly many might be lost
> and/or corrupted as well.
>
> You'll first need to determine the internal id of your image:
> $ rados --pool images getomapval rbd_directory
> name_07e54256-d123-4e61-a23a-7f8008340751
> value (16 bytes) :
> 00000000  0c 00 00 00 31 30 31 34  31 30 39 63 66 39 32 65
> |....1014109cf92e|
> 00000010
>
> In my example above, the image id (1014109cf92e in this case) is the
> string starting after the first four bytes (the id length). I can then
> use the rados tool to list all available data blocks:
>
> $ rados --pool images ls | grep rbd_data.1014109cf92e | sort
> rbd_data.1014109cf92e.0000000000000000
> rbd_data.1014109cf92e.000000000000000b
> rbd_data.1014109cf92e.0000000000000010
>
> The sequence of hex numbers at the end of each data object is the
> object number and it represents the byte offset within the image (4MB
> * object number = byte offset assuming default 4MB object size and no
> fancy striping enabled).
>
> You should be able to script something up to rebuild a sparse image
> with whatever data is still available in your cluster.
>
> On Wed, Sep 21, 2016 at 11:12 AM, Fran Barrera <franbarre...@gmail.com>
> wrote:
> > Hello,
> >
> > I have a Ceph Jewel cluster with 4 osds and only one monitor integrated
> with
> > Openstack Mitaka.
> >
> > Two OSD were down, with a service restart one of them was recovered. The
> > cluster began to recover and was OK. Finally the disk of the other OSD
> was
> > corrupted and the solution was a format and recreate the OSD.
> >
> > Now I have the cluster OK, but the problem now is with some of the images
> > stored in Ceph.
> >
> > $ rbd list -p images|grep 07e54256-d123-4e61-a23a-7f8008340751
> > 07e54256-d123-4e61-a23a-7f8008340751
> >
> > $ rbd export -p images 07e54256-d123-4e61-a23a-7f8008340751
> /tmp/image.img
> > 2016-09-21 17:07:00.889379 7f51f9520700 -1 librbd::image::OpenRequest:
> > failed to retreive immutable metadata: (2) No such file or directory
> > rbd: error opening image 07e54256-d123-4e61-a23a-7f8008340751: (2) No
> such
> > file or directory
> >
> > Ceph can list the image but nothing more, for example an export. So
> > Openstack can not retrieve this image. I try repair the pg but appear's
> ok.
> > Is there any solution for this?
> >
> > Kind Regards,
> > Fran.
> >
> > _______________________________________________
> > ceph-users mailing list
> > ceph-users@lists.ceph.com
> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> >
>
>
>
> --
> Jason
>
_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to