It's not simply a zip. I recently went through an incomplete pg incident as
well. I'm not sure why your import is failing, but I do know that much.
Here's a note in slack from our effort to reverse the export. I'm hoping to
explore this a bit more in the next week.

Data frames appear to have the following format:
ceff DTDT SIZE PAYLOAD

Size is probably in bytes? DTDT is frame type, 8-bits, repeated (so BEGIN=1
is encoded as 0101).

File format looks like:

Superblock - starts with:   ceff ceff 0200
PG_BEGIN                    ceff 0101 <64 bit little-Endian size>
PG_METADATA                 ceff 0909
    OBJECT_BEGIN            ceff 0303 <64 bit little-Endian size>
(represents first object of a file?)
        TYPE_DATA           ceff 0505 (represents an object?)
        (repeat TYPE_DATA frames until file completed)
    TYPE_ATTRS              ceff 0606
    TYPE_OMAP               ceff 0808
    OBJECT_END              ceff 0404
    (repeat above block for all files?)


enum {
    TYPE_NONE = 0,
    TYPE_PG_BEGIN,
    TYPE_PG_END,
    TYPE_OBJECT_BEGIN,
    TYPE_OBJECT_END,
    TYPE_DATA,
    TYPE_ATTRS,
    TYPE_OMAP_HDR,
    TYPE_OMAP,
    TYPE_PG_METADATA,
    TYPE_POOL_BEGIN,
    TYPE_POOL_END,
    END_OF_TYPES, //Keep at the end
};



On Jan 14, 2018 1:27 AM, "Brent Kennedy" <[email protected]> wrote:

> I was able to bring a server back online for a short time and perform an
> export of the incomplete PGs I originally posted about last week.  The
> export showed the files it was exporting and then dropped them all to a
> PGID.export file.  I then SCP’ed the four PGID.export files to a server
> where I had an empty OSD weighted to 0.  I stopped that OSD and then tried
> to import all four PGs.  I then got the following messages for all four I
> tried:
>
>
>
> finish_remove_pgs 11.720_head removing 11.720
>
> Importing pgid 11.c13
>
> do_import threw exception error buffer::malformed_input: void
> object_stat_sum_t::decode(ceph::buffer::list::iterator&) decode past end
> of struct encoding
>
> Corrupt input for import
>
>
>
>
>
> Command I ran:
>
> ceph-objectstore-tool --op import --data-path /var/lib/ceph/osd/ceph-13
> --journal-path /var/lib/ceph/osd/ceph-13/block --file 11.c13.export
>
>
>
> The files match the space used by PGs on the disk.  As noted above, I saw
> it copy the PG to the export file successfully.  Both servers are running
> Ubuntu 14 with the newest ceph-objectstore-tool installed via the package
> from here:  http://download.ceph.com/debian-luminous/pool/main/c/
> ceph/ceph-test_12.2.2-1trusty_amd64.deb  ( cluster is Luminous 12.2.2 .
> Its possible the PGs in question are on the jewel version as I wasn’t able
> to complete the upgrade to luminous on them.
>
>
>
> Am I missing something?  Can I just copy the files off the failing server
> via a zip operation locally and then a unzip operation at the destination
> server?
>
>
>
> -Brent
>
> _______________________________________________
> ceph-users mailing list
> [email protected]
> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>
>
_______________________________________________
ceph-users mailing list
[email protected]
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to