On 01/08/2013 02:10 PM, Wido den Hollander wrote:
On 01/08/2013 01:57 PM, Denis Fondras wrote:
Hello,
I'm wondering if I can get every "rb.0.8e10.3e2219d7.*" from the OSD
drive and cat them together and get back a usable raw volume from which
I could get back my data ?
Yes, that is doable. The problem only is that RBD is sparse. So you'd
have to fill up the empty spaces with 4MB of zeroes.
But yes, it's doable if you gather all the objects and will the rest up
with zeroes.
Everything seems to be there but I don't know the order of the rbd
objects. Are the last bytes of the file name the offset of the block ?
There was a quick perl command for this to generate all the suffixes,
but I can't seem to find it right now.
You could do something like this to generate all the blocks you should
need, the non-existing ones you should fill them with nothing, aka 4MB
of nothing.
perl -e 'while ($s < (SIZE_IN_MB / 4)) { printf "BLOCK_PREFIX.%012x\n",
$s; $s++}'
Size is the block-device in MB en BLOCK_PREFIX can be something like
"rb.0.1016.238e1f29"
Wido
Wido
Regards,
Denis
--
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
--
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
--
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