Re: PG's incomplete after OSD failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for your reply Sage!

I've tested with 8.6ae and no luck I'm afraid. Steps taken were -
Stop osd.117
Export 8.6ae from osd.117
Remove 8.6ae from osd.117
start osd.117
restart osd.190 after still showing incomplete

After this the PG was still showing incomplete and ceph pg dump_stuck
inactive shows -
pg_stat objects mip degr misp unf bytes log disklog state state_stamp
v reported up up_primary acting acting_primary last_scrub scrub_stamp
last_deep_scrub deep_scrub_stamp
8.6ae 0 0 0 0 0 0 0 0 incomplete 2014-11-11 17:34:27.168078 0'0
161425:40 [117,190] 117 [117,190] 117 86424'389748 2013-09-09
16:52:58.796650 86424'389748 2013-09-09 16:52:58.796650

I then tried an export from OSD 190 to OSD 117 by doing -
Stop osd.190 and osd.117
Export pg 8.6ae from osd.190
Import from file generated in previous step into osd.117
Boot both osd.190 and osd.117

When osd.117 attempts to start it generates an failed assert, full log
is here http://pastebin.com/S4CXrTAL
-1> 2014-11-11 17:25:15.130509 7f9f44512900  0 osd.117 161404 load_pgs
     0> 2014-11-11 17:25:18.604696 7f9f44512900 -1 osd/OSD.h: In
function 'OSDMapRef OSDService::get_map(epoch_t)' thread 7f9f44512900
time 2014-11-11 17:25:18.602626
osd/OSD.h: 715: FAILED assert(ret)

 ceph version 0.87 (c51c8f9d80fa4e0168aa52685b8de40e42758578)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char
const*)+0x8b) [0xb8231b]
 2: (OSDService::get_map(unsigned int)+0x3f) [0x6eea2f]
 3: (OSD::load_pgs()+0x1b78) [0x6aae18]
 4: (OSD::init()+0x71f) [0x6abf5f]
 5: (main()+0x252c) [0x638cfc]
 6: (__libc_start_main()+0xf5) [0x7f9f41650ec5]
 7: /usr/bin/ceph-osd() [0x651027]

I also attempted the same steps with 8.ca and got the same results.
The below is the current state of the pg with it removed from osd.111
-
pg_stat objects mip degr misp unf bytes log disklog state state_stamp
v reported up up_primary acting acting_primary last_scrub scrub_stamp
last_deep_scrub deep_scrub_stamp
8.ca 2440 0 0 0 0 10219748864 9205 9205 incomplete 2014-11-11
17:39:28.570675 160435'959618 161425:6071759 [190,111] 190 [190,111]
190 86417'207324 2013-09-09 12:58:10.749001 86229'196887 2013-09-02
12:57:58.162789

Any idea of where I can go from here?
One thought I had was setting osd.111 and osd.117 out of the cluster
and once the data is moved I can shut them down and mark them as lost
which would make osd.190 the only replica available for those PG's.

Thanks again

On Tue, Nov 11, 2014 at 1:10 PM, Sage Weil <sweil@xxxxxxxxxx> wrote:
> On Tue, 11 Nov 2014, Matthew Anderson wrote:
>> Just an update, it appears that no data actually exists for those PG's
>> on osd.117 and osd.111 but it's showing as incomplete anyway.
>>
>> So for the 8.ca PG, osd.111 has only an empty directory but osd 190 is
>> filled with data.
>> For 8.6ae, osd.117 has no data in the pg directory and osd.190 is
>> filled with data as before.
>>
>> Since all of the required data is on OSD.190, would there be a way to
>> make osd.111 and osd.117 forget they have ever seen the two incomplete
>> PG's and therefore restart backfilling?
>
> Ah, that's good news.  You should know that the copy on osd.190 is
> slightly out of date, but it is much better than losing the entire
> contents of the PG.  More specifically, for 8.6ae the latest version was
> 1935986 but the osd.190 is 1935747, about 200 writes in the past.  You'll
> need to fsck the RBD images after this is all done.
>
> I don't think we've tested this recovery scenario, but I think you'll be
> able to recovery with ceph_objectstore_tool, which has an import/export
> function and a delete function.  First, try removing the newer version of
> the pg on osd.117.  First export it for good measure (even tho it's
> empty):
>
> stop the osd
>
> ceph_objectstore_tool --data-path /var/lib/ceph/osd/ceph-117  \
> --journal-path /var/lib/ceph/osd/ceph-117/journal \
> --op export --pgid 8.6ae --file osd.117.8.7ae
>
> ceph_objectstore_tool --data-path /var/lib/ceph/osd/ceph-117  \
> --journal-path /var/lib/ceph/osd/ceph-117/journal \
> --op remove --pgid 8.6ae
>
> and restart.  If that doesn't peer, you can also try exporting the pg from
> osd.190 and importing it into osd.117.  I think just removing the
> newer empty pg on osd.117 will do the trick, though...
>
> sage
>
>
>
>>
>>
>> On Tue, Nov 11, 2014 at 10:37 AM, Matthew Anderson
>> <manderson8787@xxxxxxxxx> wrote:
>> > Hi All,
>> >
>> > We've had a string of very unfortunate failures and need a hand fixing
>> > the incomplete PG's that we're now left with. We're configured with 3
>> > replicas over different hosts with 5 in total.
>> >
>> > The timeline goes -
>> > -1 week  :: A full server goes offline with a failed backplane. Still
>> > not working
>> > -1 day  ::  OSD 190 fails
>> > -1 day + 3 minutes :: OSD 121 fails in a different server fails taking
>> > out several PG's and blocking IO
>> > Today  :: The first failed osd (osd.190) was cloned to a good drive
>> > with xfs_dump | xfs_restore and now boots fine. The last failed osd
>> > (osd.121) is completely unrecoverable and was marked as lost.
>> >
>> > What we're left with now is 2 incomplete PG's that are preventing RBD
>> > images from booting.
>> >
>> > # ceph pg dump_stuck inactive
>> > ok
>> > pg_stat    objects    mip    degr    misp    unf    bytes    log
>> > disklog    state    state_stamp    v    reported    up    up_primary
>> >  acting    acting_primary    last_scrub    scrub_stamp
>> > last_deep_scrub    deep_scrub_stamp
>> > 8.ca    2440    0    0    0    0    10219748864    9205    9205
>> > incomplete    2014-11-11 10:29:04.910512    160435'959618
>> > 161358:6071679    [190,111]    190    [190,111]    190    86417'207324
>> >    2013-09-09 12:58:10.749001    86229'196887    2013-09-02
>> > 12:57:58.162789
>> > 8.6ae    0    0    0    0    0    0    3176    3176    incomplete
>> > 2014-11-11 10:24:07.000373    160931'1935986    161358:267
>> > [117,190]    117    [117,190]    117    86424'389748    2013-09-09
>> > 16:52:58.796650    86424'389748    2013-09-09 16:52:58.796650
>> >
>> > We've tried doing a pg revert but it's saying 'no missing objects'
>> > followed by not doing anything. I've also done the usual scrub,
>> > deep-scrub, pg and osd repairs... so far nothing has helped.
>> >
>> > I think it could be a similar situation to this post [
>> > http://www.spinics.net/lists/ceph-users/msg11461.html ] where one of
>> > the osd's it holding a slightly newer but incomplete version of the PG
>> > which needs to be removed. Is anyone able to shed some light on how I
>> > might be able to use the objectstore tool to check if this is the
>> > case?
>> >
>> > If anyone has any suggestions it would be greatly appreciated.
>> > Likewise if you need any more information about my problem just let me
>> > know
>> >
>> > Thanks all
>> > -Matt
>> _______________________________________________
>> 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




[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux