Re: Corruption by missing blocks

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

 



I'm testing this now, but while going through the logs I saw something
that might have something to do with this:

Apr 23 16:35:28 a1 kernel: [692455.496594] libceph: corrupt inc osdmap
epoch 22146 off 102 (ffff88021e0dc802 of
ffff88021e0dc79c-ffff88021e0dc802)
Apr 23 16:35:28 a1 kernel: [692455.505154] osdmap: 00000000: 05 00 69
17 a0 33 34 39 4f d7 88 db 46 c9 e1 df  ..i..349O...F...
Apr 23 16:35:28 a1 kernel: [692455.505158] osdmap: 00000010: 0d 6e 82
56 00 00 b0 0c 77 51 00 1a 00 22 ff ff  .n.V....wQ..."..
Apr 23 16:35:28 a1 kernel: [692455.505161] osdmap: 00000020: ff ff ff
ff ff ff 00 00 00 00 00 00 00 00 ff ff  ................
Apr 23 16:35:28 a1 kernel: [692455.505163] osdmap: 00000030: ff ff 00
00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Apr 23 16:35:28 a1 kernel: [692455.505166] osdmap: 00000040: 00 00 00
00 00 00 00 00 00 00 01 00 00 00 ff ff  ................
Apr 23 16:35:28 a1 kernel: [692455.505169] osdmap: 00000050: 5c 02 00
00 00 00 03 00 00 00 0c 00 00 00 00 00  \...............
Apr 23 16:35:28 a1 kernel: [692455.505171] osdmap: 00000060: 00 00 02
00 00 00                                ......
Apr 23 16:35:28 a1 kernel: [692455.505174] libceph: osdc handle_map corrupt msg
Apr 23 16:35:28 a1 kernel: [692455.513590] header: 00000000: 90 03 00
00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Apr 23 16:35:28 a1 kernel: [692455.513593] header: 00000010: 29 00 c4
00 01 00 86 00 00 00 00 00 00 00 00 00  )...............
Apr 23 16:35:28 a1 kernel: [692455.513596] header: 00000020: 00 00 00
00 01 00 00 00 00 00 00 00 00 01 00 00  ................
Apr 23 16:35:28 a1 kernel: [692455.513599] header: 00000030: 00 5d 68
c5 e8                                   .]h..
Apr 23 16:35:28 a1 kernel: [692455.513602]  front: 00000000: 69 17 a0
33 34 39 4f d7 88 db 46 c9 e1 df 0d 6e  i..349O...F....n
Apr 23 16:35:28 a1 kernel: [692455.513605]  front: 00000010: 01 00 00
00 82 56 00 00 66 00 00 00 05 00 69 17  .....V..f.....i.
Apr 23 16:35:28 a1 kernel: [692455.513607]  front: 00000020: a0 33 34
39 4f d7 88 db 46 c9 e1 df 0d 6e 82 56  .349O...F....n.V
Apr 23 16:35:28 a1 kernel: [692455.513610]  front: 00000030: 00 00 b0
0c 77 51 00 1a 00 22 ff ff ff ff ff ff  ....wQ..."......
Apr 23 16:35:28 a1 kernel: [692455.513613]  front: 00000040: ff ff 00
00 00 00 00 00 00 00 ff ff ff ff 00 00  ................
Apr 23 16:35:28 a1 kernel: [692455.513616]  front: 00000050: 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00  ................
Apr 23 16:35:28 a1 kernel: [692455.513618]  front: 00000060: 00 00 00
00 00 00 01 00 00 00 ff ff 5c 02 00 00  ............\...
Apr 23 16:35:28 a1 kernel: [692455.513621]  front: 00000070: 00 00 03
00 00 00 0c 00 00 00 00 00 00 00 02 00  ................
Apr 23 16:35:28 a1 kernel: [692455.513624]  front: 00000080: 00 00 00
00 00 00                                ......
Apr 23 16:35:28 a1 kernel: [692455.513627] footer: 00000000: ae ee 1e
d8 00 00 00 00 00 00 00 00 01           .............

On Tue, Apr 23, 2013 at 4:41 PM, Gregory Farnum <greg@xxxxxxxxxxx> wrote:
> On Tue, Apr 23, 2013 at 3:37 PM, Bryan Stillwell
> <bstillwell@xxxxxxxxxxxxxxx> wrote:
>> I'm using the kernel client that's built into precise & quantal.
>>
>> I could give the ceph-fuse client a try and see if it has the same
>> issue.  I haven't used it before, so I'll have to do some reading
>> first.
>
> If you've got the time that would be a good data point, and make
> debugging easier if it reproduces. There's not a ton to learn — you
> install the ceph-fuse package (I think it's packaged separately,
> anyway) and then instead of "mount" you run "ceph-fuse -c <ceph.conf
> file> --name client.<name> --keyring <keyring_file>" or similar. :)
> -Greg
> Software Engineer #42 @ http://inktank.com | http://ceph.com
>
>
>>
>> Bryan
>>
>> On Tue, Apr 23, 2013 at 4:04 PM, Gregory Farnum <greg@xxxxxxxxxxx> wrote:
>>> Sorry, I meant kernel client or ceph-fuse? Client logs would be enough
>>> to start with, I suppose — "debug client = 20" and "debug ms = 1" if
>>> using ceph-fuse; if using the kernel client things get tricker; I'd
>>> have to look at what logging is available without the debugfs stuff
>>> being enabled. :/
>>> -Greg
>>> Software Engineer #42 @ http://inktank.com | http://ceph.com
>>>
>>>
>>> On Tue, Apr 23, 2013 at 3:00 PM, Bryan Stillwell
>>> <bstillwell@xxxxxxxxxxxxxxx> wrote:
>>>> I've tried a few different ones:
>>>>
>>>> 1. cp to cephfs mounted filesystem on Ubuntu 12.10 (quantal)
>>>> 2. rsync over ssh to cephfs mounted filesystem on Ubuntu 12.04.2 (precise)
>>>> 3. scp to cephfs mounted filesystem on Ubuntu 12.04.2 (precise)
>>>>
>>>> It's fairly reproducible, so I can collect logs for you.  Which ones
>>>> would you be interested in?
>>>>
>>>> The cluster has been in a couple states during testing (during
>>>> expansion/rebalancing and during an all active+clean state).
>>>>
>>>> BTW, all the nodes are running with the 0.56.4-1precise packages.
>>>>
>>>> Bryan
>>>>
>>>> On Tue, Apr 23, 2013 at 12:56 PM, Gregory Farnum <greg@xxxxxxxxxxx> wrote:
>>>>> On Tue, Apr 23, 2013 at 11:38 AM, Bryan Stillwell
>>>>> <bstillwell@xxxxxxxxxxxxxxx> wrote:
>>>>>> I've run into an issue where after copying a file to my cephfs cluster
>>>>>> the md5sums no longer match.  I believe I've tracked it down to some
>>>>>> parts of the file which are missing:
>>>>>>
>>>>>> $ obj_name=$(cephfs "title1.mkv" show_location -l 0 | grep object_name
>>>>>> | sed -e "s/.*:\W*\([0-9a-f]*\)\.[0-9a-f]*/\1/")
>>>>>> $ echo "Object name: $obj_name"
>>>>>> Object name: 10000001120
>>>>>>
>>>>>> $ file_size=$(stat "title1.mkv" | grep Size | awk '{ print $2 }')
>>>>>> $ printf "File size: %d MiB (%d Bytes)\n" $(($file_size/1048576)) $file_size
>>>>>> File size: 20074 MiB (21049178117 Bytes)
>>>>>>
>>>>>> $ blocks=$((file_size/4194304+1))
>>>>>> $ printf "Blocks: %d\n" $blocks
>>>>>> Blocks: 5019
>>>>>>
>>>>>> $ for b in `seq 0 $(($blocks-1))`; do rados -p data stat
>>>>>> ${obj_name}.`printf '%8.8x\n' $b` | grep "error"; done
>>>>>>  error stat-ing data/10000001120.00001076: No such file or directory
>>>>>>  error stat-ing data/10000001120.000011c7: No such file or directory
>>>>>>  error stat-ing data/10000001120.0000129c: No such file or directory
>>>>>>  error stat-ing data/10000001120.000012f4: No such file or directory
>>>>>>  error stat-ing data/10000001120.00001307: No such file or directory
>>>>>>
>>>>>>
>>>>>> Any ideas where to look to investigate what caused these blocks to not
>>>>>> be written?
>>>>>
>>>>> What client are you using to write this? Is it fairly reproducible (so
>>>>> you could collect logs of it happening)?
>>>>>
>>>>> Usually the only times I've seen anything like this were when either
>>>>> the file data was supposed to go into a pool which the client didn't
>>>>> have write permissions on, or when the RADOS cluster was in bad shape
>>>>> and so the data never got flushed to disk. Has your cluster been
>>>>> healthy since you started writing the file out?
>>>>> -Greg
>>>>> Software Engineer #42 @ http://inktank.com | http://ceph.com
>>>>>
>>>>>
>>>>>>
>>>>>> Here's the current state of the cluster:
>>>>>>
>>>>>> ceph -s
>>>>>>    health HEALTH_OK
>>>>>>    monmap e1: 1 mons at {a=172.24.88.50:6789/0}, election epoch 1, quorum 0 a
>>>>>>    osdmap e22059: 24 osds: 24 up, 24 in
>>>>>>     pgmap v1783615: 1920 pgs: 1917 active+clean, 3
>>>>>> active+clean+scrubbing+deep; 4667 GB data, 9381 GB used, 4210 GB /
>>>>>> 13592 GB avail
>>>>>>    mdsmap e437: 1/1/1 up {0=a=up:active}
>>>>>>
>>>>>> Here's my current crushmap:
>>>>>>
>>>>>> # begin crush map
>>>>>>
>>>>>> # devices
>>>>>> device 0 osd.0
>>>>>> device 1 osd.1
>>>>>> device 2 osd.2
>>>>>> device 3 osd.3
>>>>>> device 4 osd.4
>>>>>> device 5 osd.5
>>>>>> device 6 osd.6
>>>>>> device 7 osd.7
>>>>>> device 8 osd.8
>>>>>> device 9 osd.9
>>>>>> device 10 osd.10
>>>>>> device 11 osd.11
>>>>>> device 12 osd.12
>>>>>> device 13 osd.13
>>>>>> device 14 osd.14
>>>>>> device 15 osd.15
>>>>>> device 16 osd.16
>>>>>> device 17 osd.17
>>>>>> device 18 osd.18
>>>>>> device 19 osd.19
>>>>>> device 20 osd.20
>>>>>> device 21 osd.21
>>>>>> device 22 osd.22
>>>>>> device 23 osd.23
>>>>>>
>>>>>> # types
>>>>>> type 0 osd
>>>>>> type 1 host
>>>>>> type 2 rack
>>>>>> type 3 row
>>>>>> type 4 room
>>>>>> type 5 datacenter
>>>>>> type 6 pool
>>>>>>
>>>>>> # buckets
>>>>>> host b1 {
>>>>>>         id -2           # do not change unnecessarily
>>>>>>         # weight 2.980
>>>>>>         alg straw
>>>>>>         hash 0  # rjenkins1
>>>>>>         item osd.0 weight 0.500
>>>>>>         item osd.1 weight 0.500
>>>>>>         item osd.2 weight 0.500
>>>>>>         item osd.3 weight 0.500
>>>>>>         item osd.4 weight 0.500
>>>>>>         item osd.20 weight 0.480
>>>>>> }
>>>>>> host b2 {
>>>>>>         id -4           # do not change unnecessarily
>>>>>>         # weight 4.680
>>>>>>         alg straw
>>>>>>         hash 0  # rjenkins1
>>>>>>         item osd.5 weight 0.500
>>>>>>         item osd.6 weight 0.500
>>>>>>         item osd.7 weight 2.200
>>>>>>         item osd.8 weight 0.500
>>>>>>         item osd.9 weight 0.500
>>>>>>         item osd.21 weight 0.480
>>>>>> }
>>>>>> host b3 {
>>>>>>         id -5           # do not change unnecessarily
>>>>>>         # weight 3.480
>>>>>>         alg straw
>>>>>>         hash 0  # rjenkins1
>>>>>>         item osd.10 weight 0.500
>>>>>>         item osd.11 weight 0.500
>>>>>>         item osd.12 weight 1.000
>>>>>>         item osd.13 weight 0.500
>>>>>>         item osd.14 weight 0.500
>>>>>>         item osd.22 weight 0.480
>>>>>> }
>>>>>> host b4 {
>>>>>>         id -6           # do not change unnecessarily
>>>>>>         # weight 3.480
>>>>>>         alg straw
>>>>>>         hash 0  # rjenkins1
>>>>>>         item osd.15 weight 0.500
>>>>>>         item osd.16 weight 1.000
>>>>>>         item osd.17 weight 0.500
>>>>>>         item osd.18 weight 0.500
>>>>>>         item osd.19 weight 0.500
>>>>>>         item osd.23 weight 0.480
>>>>>> }
>>>>>> pool default {
>>>>>>         id -1           # do not change unnecessarily
>>>>>>         # weight 14.620
>>>>>>         alg straw
>>>>>>         hash 0  # rjenkins1
>>>>>>         item b1 weight 2.980
>>>>>>         item b2 weight 4.680
>>>>>>         item b3 weight 3.480
>>>>>>         item b4 weight 3.480
>>>>>> }
>>>>>>
>>>>>> # rules
>>>>>> rule data {
>>>>>>         ruleset 0
>>>>>>         type replicated
>>>>>>         min_size 2
>>>>>>         max_size 10
>>>>>>         step take default
>>>>>>         step chooseleaf firstn 0 type host
>>>>>>         step emit
>>>>>> }
>>>>>> rule metadata {
>>>>>>         ruleset 1
>>>>>>         type replicated
>>>>>>         min_size 2
>>>>>>         max_size 10
>>>>>>         step take default
>>>>>>         step chooseleaf firstn 0 type host
>>>>>>         step emit
>>>>>> }
>>>>>> rule rbd {
>>>>>>         ruleset 2
>>>>>>         type replicated
>>>>>>         min_size 1
>>>>>>         max_size 10
>>>>>>         step take default
>>>>>>         step chooseleaf firstn 0 type host
>>>>>>         step emit
>>>>>> }
>>>>>>
>>>>>> # end crush map
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Bryan
>>>>>> _______________________________________________
>>>>>> ceph-users mailing list
>>>>>> ceph-users@xxxxxxxxxxxxxx
>>>>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
>>
>>
>>
>> --
>>
>>
>> Bryan Stillwell
>> SENIOR SYSTEM ADMINISTRATOR
>>
>> E: bstillwell@xxxxxxxxxxxxxxx
>> O: 303.228.5109
>> M: 970.310.6085



--


Bryan Stillwell
SENIOR SYSTEM ADMINISTRATOR

E: bstillwell@xxxxxxxxxxxxxxx
O: 303.228.5109
M: 970.310.6085
_______________________________________________
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]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux