Re: OSD not coming back up again

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

 



On 11-8-2016 13:44, Wido den Hollander wrote:
> 
>> Op 11 augustus 2016 om 13:39 schreef Willem Jan Withagen <wjw@xxxxxxxxxxx>:
>>
>>
>> On 11-8-2016 08:26, Wido den Hollander wrote:
>>>
>>>> Op 11 augustus 2016 om 2:40 schreef Willem Jan Withagen <wjw@xxxxxxxxxxx>:
>>>>
>>>>
>>>> Hi
>>>>
>>>> During testing with cephtool-test-mon.sh
>>>>
>>>> 3 OSDs are started, and then the code executes:
>>>> ====
>>>>   ceph osd set noup
>>>>   ceph osd down 0
>>>>   ceph osd dump | grep 'osd.0 down'
>>>>   ceph osd unset noup
>>>> ====
>>>>
>>>> And in 1000 secs osd.0 is not coming back up.
>>>>
>>>> Below some details, but where should I start looking?
>>>>
>>> Can you use the admin socket to query osd.0?
>>>
>>> ceph daemon osd.0 status
>>>
>>> What does that tell you?
>>>
>>> Maybe try debug_osd = 20
>>
>> Hi Wido,
>>
>> Thanx for the help.
>>
>> Below is a full cycle in the osd.0.log which seems to be stuck at 178
>> But osd.1 has:
>> {
>>     "cluster_fsid": "4c57b34a-263a-41b0-a3b9-0e494ab840f5",
>>     "osd_fsid": "99296090-9d6f-44be-9fdc-9c1266f12325",
>>     "whoami": 1,
>>     "state": "active",
>>     "oldest_map": 1,
>>     "newest_map": 179,
>>     "num_pgs": 8
>> }
>> Which is also what the cluster thinks:
>>
>>     cluster 4c57b34a-263a-41b0-a3b9-0e494ab840f5
>>      health HEALTH_WARN
>>             8 pgs degraded
>>             8 pgs stuck unclean
>>             8 pgs undersized
>>      monmap e1: 3 mons at
>> {a=127.0.0.1:7202/0,b=127.0.0.1:7203/0,c=127.0.0.1:7204/0}
>>             election epoch 6, quorum 0,1,2 a,b,c
>>      osdmap e179: 3 osds: 2 up, 2 in; 8 remapped pgs
>>             flags sortbitwise,require_jewel_osds,require_kraken_osds
>>       pgmap v494: 8 pgs, 1 pools, 0 bytes data, 0 objects
>>             248 GB used, 188 GB / 437 GB avail
>>                    8 active+undersized+degraded
>>
>> So one way or another the down OSD does not receive the last pgmap?
>>
>> How does the pgmap update work?
>> The OSD asks the/any mon for the last pgmap?
>> The MONs are listening on 7202/7203/7204
>>
>> Now if I look in the sockets table I seed osd.1 and osd.2 connected to
>> each other each with 2 connections.
>> But osd.0 has sockets registered to osd.1 and osd.2.
>> But osd.1 and osd.2 do not have these sockets in their table.
>>
>> So could it be that OSD.0 has not correctly reset the links? Because i
>> understood that down/up will go thru a full disconnect?
>>
> 
> Could be, but the log line which is interesting:
> 
> 2016-08-11 12:06:16.473351 b69c480 10 osd.0 178 handle_osd_ping osd.2
> 127.0.0.1:6811/13222 says i am down in 178
> 
> It sees that he is down in map 178, but it should then present a 'marked me down incorrectly' and mark itself up.

6811 is a port of osd.2, so one way or another there is some
communication with osd.2. So that suggests that a socket has opened.
Wierd part is that osd.2 then actually closes it again. And the socket
in osd.0 goes into TIME_WAIT. I think with SO_REUSEADDR in the options,
so that port could fast reused.

Would this happen even though it is still behind on pgmaps?
Or does it have to be up first, and then start fetching new maps, and
get in line with the other OSDs?

I think you are refering to:
./src/osd/OSD.cc:6943:                 << " wrongly marked me down";

Going to dig into that area what is going there.

Thanx
--WjW


>> --WjW
>>
>> # sockstat | grep 13193
>> wjw      ceph-osd   13193 5  tcp4   *:6800                *:*
>> wjw      ceph-osd   13193 6  tcp4   *:6801                *:*
>> wjw      ceph-osd   13193 7  tcp4   *:6802                *:*
>> wjw      ceph-osd   13193 8  tcp4   *:6803                *:*
>> wjw      ceph-osd   13193 12 stream
>> /usr/srcs/Ceph/work/ceph/build/src/test/testdir/test-7202/out/osd.0.asok
>> wjw      ceph-osd   13193 22 tcp4   127.0.0.1:60710       127.0.0.1:7204
>> wjw      ceph-osd   13193 23 tcp4   127.0.0.1:30934       127.0.0.1:6808
>> wjw      ceph-osd   13193 33 tcp4   127.0.0.1:15437       127.0.0.1:6805
>> wjw      ceph-osd   13193 35 tcp4   127.0.0.1:15438       127.0.0.1:6807
>> wjw      ceph-osd   13193 46 tcp4   127.0.0.1:15439       127.0.0.1:6806
>> wjw      ceph-osd   13193 51 tcp4   127.0.0.1:15443       127.0.0.1:6809
>> wjw      ceph-osd   13193 55 tcp4   127.0.0.1:15450       127.0.0.1:6810
>> wjw      ceph-osd   13193 56 tcp4   127.0.0.1:15451       127.0.0.1:6811
>>
>> # sockstat | grep 13208
>> wjw      ceph-osd   13208 5  tcp4   *:6804                *:*
>> wjw      ceph-osd   13208 6  tcp4   *:6805                *:*
>> wjw      ceph-osd   13208 7  tcp4   *:6806                *:*
>> wjw      ceph-osd   13208 8  tcp4   *:6807                *:*
>> wjw      ceph-osd   13208 12 stream
>> /usr/srcs/Ceph/work/ceph/build/src/test/testdir/test-7202/out/osd.1.asok
>> wjw      ceph-osd   13208 23 tcp4   127.0.0.1:15433      127.0.0.1:7204
>> wjw      ceph-osd   13208 37 tcp4   127.0.0.1:45954      127.0.0.1:6808
>> wjw      ceph-osd   13208 38 tcp4   127.0.0.1:6807       127.0.0.1:15438
>> wjw      ceph-osd   13208 40 tcp4   127.0.0.1:6806        127.0.0.1:15439
>> wjw      ceph-osd   13208 42 tcp4   127.0.0.1:35939      127.0.0.1:6804
>> wjw      ceph-osd   13208 43 tcp4   127.0.0.1:6804       127.0.0.1:35939
>> wjw      ceph-osd   13208 48 tcp4   127.0.0.1:15453      127.0.0.1:6810
>> wjw      ceph-osd   13208 49 tcp4   127.0.0.1:6807       127.0.0.1:15444
>> wjw      ceph-osd   13208 50 tcp4   127.0.0.1:6806       127.0.0.1:15445
>> wjw      ceph-osd   13208 52 tcp4   127.0.0.1:15449      127.0.0.1:6809
>> wjw      ceph-osd   13208 53 tcp4   127.0.0.1:15452      127.0.0.1:6811
>>
>> 2016-08-11 12:06:14.567881 b0afa80 10 osd.0.objecter tick
>> 2016-08-11 12:06:14.756007 b2fcd00 20 osd.0 175 update_osd_stat
>> osd_stat(124 GB used, 96486 MB avail, 218 GB total, peers [1,2]/[] op
>> hist [])
>> 2016-08-11 12:06:14.756027 b2fcd00  5 osd.0 178 heartbeat: osd_stat(124
>> GB used, 96486 MB avail, 218 GB total, peers [1,2]/[] op hist [])
>> 2016-08-11 12:06:14.756045 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6806/13207 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:14.756036) v2 -- ?+0 0xb74e400 con 0xb4eb3a0
>> 2016-08-11 12:06:14.756109 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6807/13207 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:14.756036) v2 -- ?+0 0xb6f9e00 con 0xb4eb480
>> 2016-08-11 12:06:14.756170 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6810/13222 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:14.756036) v2 -- ?+0 0xb6faa00 con 0xb6c02a0
>> 2016-08-11 12:06:14.756203 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6811/13222 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:14.756036) v2 -- ?+0 0xb6fb000 con 0xb6c0380
>> 2016-08-11 12:06:14.756227 b2fcd00 25 osd.0 178 heartbeat_check osd.1
>> first_tx 2016-08-11 12:01:25.367701 last_tx 2016-08-11 12:06:14.756036
>> last_rx_back 2016-08-11 12:06:11.194593 last_rx_front 2016-08-11
>> 12:06:11.194593
>> 2016-08-11 12:06:14.756251 b2fcd00 25 osd.0 178 heartbeat_check osd.2
>> first_tx 2016-08-11 12:01:27.704062 last_tx 2016-08-11 12:06:14.756036
>> last_rx_back 2016-08-11 12:06:11.194593 last_rx_front 2016-08-11
>> 12:06:11.194593
>> 2016-08-11 12:06:14.756413 b54a480  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6806/13207 125 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (2065282926 0 0) 0xb5d5200 con 0xb4eb3a0
>> 2016-08-11 12:06:14.756456 b54a480 25 osd.0 178 handle_osd_ping got
>> reply from osd.1 first_tx 2016-08-11 12:01:25.367701 last_tx 2016-08-11
>> 12:06:14.756036 last_rx_back 2016-08-11 12:06:11.194593 -> 2016-08-11
>> 12:06:14.756036 last_rx_front 2016-08-11 12:06:11.194593
>> 2016-08-11 12:06:14.756500 b69c900  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6810/13222 124 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (2065282926 0 0) 0xb6a8800 con 0xb6c02a0
>> 2016-08-11 12:06:14.756539 b69c900 25 osd.0 178 handle_osd_ping got
>> reply from osd.2 first_tx 2016-08-11 12:01:27.704062 last_tx 2016-08-11
>> 12:06:14.756036 last_rx_back 2016-08-11 12:06:11.194593 -> 2016-08-11
>> 12:06:14.756036 last_rx_front 2016-08-11 12:06:11.194593
>> 2016-08-11 12:06:14.756548 b54a480  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6806/13207 126 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (936251703 0 0) 0xb5d5200 con 0xb4eb3a0
>> 2016-08-11 12:06:14.756579 b54a000  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6807/13207 125 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (2065282926 0 0) 0xb5d5400 con 0xb4eb480
>> 2016-08-11 12:06:14.756599 b54a480 10 osd.0 178 handle_osd_ping osd.1
>> 127.0.0.1:6806/13207 says i am down in 178
>> 2016-08-11 12:06:14.756659 b69c480  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6811/13222 124 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (2065282926 0 0) 0xb6ab200 con 0xb6c0380
>> 2016-08-11 12:06:14.756701 b54a000 25 osd.0 178 handle_osd_ping got
>> reply from osd.1 first_tx 2016-08-11 12:01:25.367701 last_tx 2016-08-11
>> 12:06:14.756036 last_rx_back 2016-08-11 12:06:14.756036 last_rx_front
>> 2016-08-11 12:06:11.194593 -> 2016-08-11 12:06:14.756036
>> 2016-08-11 12:06:14.756718 b69c900  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6810/13222 125 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (936251703 0 0) 0xb6a8800 con 0xb6c02a0
>> 2016-08-11 12:06:14.756752 b69c480 25 osd.0 178 handle_osd_ping got
>> reply from osd.2 first_tx 2016-08-11 12:01:27.704062 last_tx 2016-08-11
>> 12:06:14.756036 last_rx_back 2016-08-11 12:06:14.756036 last_rx_front
>> 2016-08-11 12:06:11.194593 -> 2016-08-11 12:06:14.756036
>> 2016-08-11 12:06:14.756786 b54a000  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6807/13207 126 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (936251703 0 0) 0xb5d5400 con 0xb4eb480
>> 2016-08-11 12:06:14.756810 b69c900 10 osd.0 178 handle_osd_ping osd.2
>> 127.0.0.1:6810/13222 says i am down in 178
>> 2016-08-11 12:06:14.756835 b69c480  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6811/13222 125 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:14.756036) v2 ==== 47+0+0 (936251703 0 0) 0xb6ab200 con 0xb6c0380
>> 2016-08-11 12:06:14.756859 b54a000 10 osd.0 178 handle_osd_ping osd.1
>> 127.0.0.1:6807/13207 says i am down in 178
>> 2016-08-11 12:06:14.756889 b69c480 10 osd.0 178 handle_osd_ping osd.2
>> 127.0.0.1:6811/13222 says i am down in 178
>> 2016-08-11 12:06:16.472456 b2fcd00 20 osd.0 175 update_osd_stat
>> osd_stat(124 GB used, 96486 MB avail, 218 GB total, peers [1,2]/[] op
>> hist [])
>> 2016-08-11 12:06:16.472484 b2fcd00  5 osd.0 178 heartbeat: osd_stat(124
>> GB used, 96486 MB avail, 218 GB total, peers [1,2]/[] op hist [])
>> 2016-08-11 12:06:16.472504 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6806/13207 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:16.472495) v2 -- ?+0 0xb6f8c00 con 0xb4eb3a0
>> 2016-08-11 12:06:16.472543 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6807/13207 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:16.472495) v2 -- ?+0 0xb6fb800 con 0xb4eb480
>> 2016-08-11 12:06:16.472569 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6810/13222 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:16.472495) v2 -- ?+0 0xb6fa200 con 0xb6c02a0
>> 2016-08-11 12:06:16.472649 b2fcd00  1 -- 127.0.0.1:0/13192 -->
>> 127.0.0.1:6811/13222 -- osd_ping(ping e175 stamp 2016-08-11
>> 12:06:16.472495) v2 -- ?+0 0xb6fac00 con 0xb6c0380
>> 2016-08-11 12:06:16.472700 b2fcd00 25 osd.0 178 heartbeat_check osd.1
>> first_tx 2016-08-11 12:01:25.367701 last_tx 2016-08-11 12:06:16.472495
>> last_rx_back 2016-08-11 12:06:14.756036 last_rx_front 2016-08-11
>> 12:06:14.756036
>> 2016-08-11 12:06:16.472735 b2fcd00 25 osd.0 178 heartbeat_check osd.2
>> first_tx 2016-08-11 12:01:27.704062 last_tx 2016-08-11 12:06:16.472495
>> last_rx_back 2016-08-11 12:06:14.756036 last_rx_front 2016-08-11
>> 12:06:14.756036
>> 2016-08-11 12:06:16.472852 b54a480  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6806/13207 127 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (2323295095 0 0) 0xb5d5200 con 0xb4eb3a0
>> 2016-08-11 12:06:16.472924 b54a480 25 osd.0 178 handle_osd_ping got
>> reply from osd.1 first_tx 2016-08-11 12:01:25.367701 last_tx 2016-08-11
>> 12:06:16.472495 last_rx_back 2016-08-11 12:06:14.756036 -> 2016-08-11
>> 12:06:16.472495 last_rx_front 2016-08-11 12:06:14.756036
>> 2016-08-11 12:06:16.472936 b54a000  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6807/13207 127 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (2323295095 0 0) 0xb5d5400 con 0xb4eb480
>> 2016-08-11 12:06:16.472987 b69c900  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6810/13222 126 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (2323295095 0 0) 0xb6a8800 con 0xb6c02a0
>> 2016-08-11 12:06:16.472995 b54a000 25 osd.0 178 handle_osd_ping got
>> reply from osd.1 first_tx 2016-08-11 12:01:25.367701 last_tx 2016-08-11
>> 12:06:16.472495 last_rx_back 2016-08-11 12:06:16.472495 last_rx_front
>> 2016-08-11 12:06:14.756036 -> 2016-08-11 12:06:16.472495
>> 2016-08-11 12:06:16.473030 b54a480  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6806/13207 128 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (3333229870 0 0) 0xb5d5200 con 0xb4eb3a0
>> 2016-08-11 12:06:16.473095 b54a000  1 -- 127.0.0.1:0/13192 <== osd.1
>> 127.0.0.1:6807/13207 128 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (3333229870 0 0) 0xb5d5400 con 0xb4eb480
>> 2016-08-11 12:06:16.473103 b69c900 25 osd.0 178 handle_osd_ping got
>> reply from osd.2 first_tx 2016-08-11 12:01:27.704062 last_tx 2016-08-11
>> 12:06:16.472495 last_rx_back 2016-08-11 12:06:14.756036 -> 2016-08-11
>> 12:06:16.472495 last_rx_front 2016-08-11 12:06:14.756036
>> 2016-08-11 12:06:16.473119 b69c480  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6811/13222 126 ==== osd_ping(ping_reply e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (2323295095 0 0) 0xb6ab200 con 0xb6c0380
>> 2016-08-11 12:06:16.473164 b69c480 25 osd.0 178 handle_osd_ping got
>> reply from osd.2 first_tx 2016-08-11 12:01:27.704062 last_tx 2016-08-11
>> 12:06:16.472495 last_rx_back 2016-08-11 12:06:16.472495 last_rx_front
>> 2016-08-11 12:06:14.756036 -> 2016-08-11 12:06:16.472495
>> 2016-08-11 12:06:16.473189 b69c900  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6810/13222 127 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (3333229870 0 0) 0xb6a8800 con 0xb6c02a0
>> 2016-08-11 12:06:16.473206 b54a000 10 osd.0 178 handle_osd_ping osd.1
>> 127.0.0.1:6807/13207 says i am down in 178
>> 2016-08-11 12:06:16.473240 b54a480 10 osd.0 178 handle_osd_ping osd.1
>> 127.0.0.1:6806/13207 says i am down in 178
>> 2016-08-11 12:06:16.473273 b69c900 10 osd.0 178 handle_osd_ping osd.2
>> 127.0.0.1:6810/13222 says i am down in 178
>> 2016-08-11 12:06:16.473286 b69c480  1 -- 127.0.0.1:0/13192 <== osd.2
>> 127.0.0.1:6811/13222 127 ==== osd_ping(you_died e178 stamp 2016-08-11
>> 12:06:16.472495) v2 ==== 47+0+0 (3333229870 0 0) 0xb6ab200 con 0xb6c0380
>> 2016-08-11 12:06:16.473351 b69c480 10 osd.0 178 handle_osd_ping osd.2
>> 127.0.0.1:6811/13222 says i am down in 178
>> 2016-08-11 12:06:17.050885 b2f8400 10 monclient: tick
>> 2016-08-11 12:06:17.050921 b2f8400 10 monclient: _check_auth_rotating
>> have uptodate secrets (they expire after 2016-08-11 12:05:47.050916)
>> 2016-08-11 12:06:18.020807 b267600 20
>> filestore(/usr/srcs/Ceph/work/ceph/build/src/test/testdir/test-7202/dev/osd0)
>> sync_entry woke after 5.173601
>> 2016-08-11 12:06:18.020836 b267600 10 journal commit_start
>> max_applied_seq 633, open_ops 0
>> 2016-08-11 12:06:18.020841 b267600 10 journal commit_start blocked, all
>> open_ops have completed
>> 2016-08-11 12:06:18.020845 b267600 10 journal commit_start nothing to do
>> 2016-08-11 12:06:18.020850 b267600 10 journal commit_start
>> 2016-08-11 12:06:18.020865 b267600 20
>> filestore(/usr/srcs/Ceph/work/ceph/build/src/test/testdir/test-7202/dev/osd0)
>> sync_entry waiting for max_interval 5.000000
>> 2016-08-11 12:06:19.582028 b0afa80 10 osd.0.objecter tick
>>

--
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




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux