Hi! Thank you for you effort, I think it will be very useful for many people! Now I have solved the problem, using C program and radios library, 2 images from 3 is completely restored, one was corrupted, but I have rescued all important data :) Pavel. > 13 мая 2015 г., в 17:20, Jason Dillaman <dillaman@xxxxxxxxxx> написал(а): > > I just pushed an update to the rados CLI that allows the setomapval command to read the data from stdin. In your example below, the command to use would be: > > # cat ./rbd_header.9a3ab3d1382f3-parent | rados -p volumes setomapval rbd_header.9a3ab3d1382f3 parent > > The change is currently under review in the wip-rados-binary-omapsetval branch. If you wanted to test it out on a scratch machine, the packages should be available within the next hour or so from the gitbuilder. See the Ceph website for documentation on how to install development packages [1]. > > [1] http://docs.ceph.com/docs/master/install/get-packages/#add-ceph-development > > -- > > Jason Dillaman > Red Hat > dillaman@xxxxxxxxxx > http://www.redhat.com > > > ----- Original Message ----- > From: "Pavel V. Kaygorodov" <pasha@xxxxxxxxx> > To: "Tuomas Juntunen" <tuomas.juntunen@xxxxxxxxxxxxxxx> > Cc: "ceph-users" <ceph-users@xxxxxxxxxxxxxx> > Sent: Tuesday, May 12, 2015 3:55:21 PM > Subject: Re: RBD images -- parent snapshot missing (help!) > > Hi! > > I have found a way to change a pool ID for image parent: > > list images: > > # rbd ls volumes > 5a4b167d-2588-4c06-904c-347abf91d788_disk.swap > volume-0ed965a0-53a5-4054-ad9c-3a432c8455d6 > volume-1269b41a-4af0-499b-a16c-9bb6a5b98e70 > volume-4094fbc1-9969-47aa-a0de-7026678b8e64 > volume-5958295e-9623-4c46-b1e6-2017c6574805 > volume-8448a317-d802-48fa-8bc1-ffd4c524fa43 > volume-c083800d-7688-4fb8-9230-83643cbe8927 > > I want to repair volume volume-c083800d-7688-4fb8-9230-83643cbe8927, so get its internal ID: > > #rados -p volumes get rbd_id.volume-c083800d-7688-4fb8-9230-83643cbe8927 ./image-id > #cat ./image-id > > # hexdump -C image-id 00000000 0d 00 00 00 39 61 33 61 62 33 64 31 33 38 32 66 |....9a3ab3d1382f| > 00000010 33 |3| > 00000011 > > So, ID is 9a3ab3d1382f3, get omap key/value pairs: > > # rados -p volumes listomapvals rbd_header.9a3ab3d1382f3 features > value: (8 bytes) : > 0000 : 01 00 00 00 00 00 00 00 : ........ > > object_prefix > value: (26 bytes) : > 0000 : 16 00 00 00 72 62 64 5f 64 61 74 61 2e 39 61 33 : ....rbd_data.9a3 > 0010 : 61 62 33 64 31 33 38 32 66 33 : ab3d1382f3 > > order > value: (1 bytes) : > 0000 : 17 : . > > parent > value: (46 bytes) : > 0000 : 01 01 28 00 00 00 0d 00 00 00 00 00 00 00 0c 00 : ..(............. > 0010 : 00 00 38 61 65 63 32 65 37 34 65 62 30 36 22 00 : ..8aec2e74eb06". > 0020 : 00 00 00 00 00 00 00 00 00 40 00 00 00 00 : .........@.... > > size > value: (8 bytes) : > 0000 : 00 00 00 80 00 00 00 00 : ........ > > snap_seq > value: (8 bytes) : > 0000 : 00 00 00 00 00 00 00 00 : ........ > > we see key "parent", where 0x0d might be an old pool id (13), new one is 20 (0x14), so we can dump this key into file: > > # rados -p volumes getomapval rbd_header.9a3ab3d1382f3 parent ./rbd_header.9a3ab3d1382f3-parent > (length 46) : Writing to ./rbd_header.9a3ab3d1382f3-parent > > # hexdump -C rbd_header.9a3ab3d1382f3-parent > 00000000 01 01 28 00 00 00 0d 00 00 00 00 00 00 00 0c 00 |..(.............| > 00000010 00 00 38 61 65 63 32 65 37 34 65 62 30 36 22 00 |..8aec2e74eb06".| > 00000020 00 00 00 00 00 00 00 00 00 40 00 00 00 00 |.........@....| > 0000002e > > Here is it! Now we can edit it with hexedit, replacing 0d to 14 and put the value back: > > # rados -p volumes setomapval rbd_header.9a3ab3d1382f3 parent ........... > > BUT!!!!! > It seems to be impossible to put binary data with zeroes into bash argument, so "rados setomapval" seems to be completely useless in this case. > > I still need help! > > Pavel. > > > >> 12 мая 2015 г., в 20:54, Tuomas Juntunen <tuomas.juntunen@xxxxxxxxxxxxxxx> написал(а): >> >> Hi >> >> I am having this exact same problem, for more than a week. I have not found >> a way to do this either. >> >> Any help would be appreciated. >> >> Basically all of our guests are now down, even though they are not in >> production, we would still need to get the data out of them. >> >> Br, >> Tuomas >> >> -----Original Message----- >> From: ceph-users [mailto:ceph-users-bounces@xxxxxxxxxxxxxx] On Behalf Of >> Pavel V. Kaygorodov >> Sent: 12. toukokuuta 2015 20:41 >> To: ceph-users >> Subject: RBD images -- parent snapshot missing (help!) >> >> Hi! >> >> I have an RBD image (in pool "volumes"), made by openstack from parent image >> (in pool "images"). >> Recently, I have tried to decrease number of PG-s, to avoid new Hammer >> warning. >> I have copied pool "images" to another pool, deleted original pool and >> renamed new pool to "images". Ceph allowed me to do this without any >> warning. >> But, after a some time my VM-s was stopped and cannot be started again, >> because they cannot open volumes, which had parent snapshots on "images" >> pool. >> I have an original image unchanged, I can made a snapshot if it was not >> copied by "radios cppool", but RBD images linked to parent snapshot on pool >> with old ID, now this pool has new ID. >> So, I need to change the link to parent snapshot for RBD images, or change >> pool id of "images" to old one. >> How to do this? >> >> Help, please! >> >> Pavel. >> >> _______________________________________________ >> ceph-users mailing list >> ceph-users@xxxxxxxxxxxxxx >> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com >> > > _______________________________________________ > ceph-users mailing list > ceph-users@xxxxxxxxxxxxxx > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com