Re: PG repair failing when object missing

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

 



I also created a ticket to try and handle this particular instance of bad behavior:
http://tracker.ceph.com/issues/6629
-Greg
Software Engineer #42 @ http://inktank.com | http://ceph.com

On October 24, 2013 at 1:22:54 PM, Greg Farnum (gregory.farnum@xxxxxxxxxxx) wrote:
>
>I was also able to reproduce this, guys, but I believe it’s specific to the mode of testing rather than to anything being wrong with the OSD. In particular, after restarting the OSD whose file I removed and running repair, it did so successfully.
>The OSD has an “fd cacher” which caches open file handles, and we believe this is what causes the observed behavior: if the removed object is among the most recent objects touched, the FileStore (an OSD subsystem) has an open fd cached, so when manually deleting the file the FileStore now has a deleted file open. When the repair happens, it finds that open file descriptor and applies the repair to it — which of course doesn’t help put it back into place!
>-Greg
>Software Engineer #42 @ http://inktank.com | http://ceph.com
>
>On October 24, 2013 at 2:52:54 AM, Matt Thompson (wateringcan@xxxxxxxxx) wrote:
>>
>>Hi Harry,
>>
>>I was able to replicate this.
>>
>>What does appear to work (for me) is to do an osd scrub followed by a pg
>>repair. I've tried this 2x now and in each case the deleted file gets
>>copied over to the OSD from where it was removed. However, I've tried a
>>few pg scrub / pg repairs after manually deleting a file and have yet to
>>see the file get copied back to the OSD on which it was deleted. Like you
>>said, the pg repair sets the health of the PG back to active+clean, but
>>then re-running the pg scrub detects the file as missing again and sets it
>>back to active+clean+inconsistent.
>>
>>Regards,
>>Matt
>>
>>
>>On Wed, Oct 23, 2013 at 3:45 PM, Harry Harrington wrote:
>>
>>> Hi,
>>>
>>> I've been taking a look at the repair functionality in ceph. As I
>>> understand it the osds should try to copy an object from another member of
>>> the pg if it is missing. I have been attempting to test this by manually
>>> removing a file from one of the osds however each time the repair
>>> completes the the file has not been restored. If I run another scrub on the
>>> pg it gets flagged as inconsistent. See below for the output from my
>>> testing. I assume I'm missing something obvious, any insight into this
>>> process would be greatly appreciated.
>>>
>>> Thanks,
>>> Harry
>>>
>>> # ceph --version
>>> ceph version 0.67.4 (ad85b8bfafea6232d64cb7ba76a8b6e8252fa0c7)
>>> # ceph status
>>> cluster a4e417fe-0386-46a5-4475-ca7e10294273
>>> health HEALTH_OK
>>> monmap e1: 1 mons at {ceph1=1.2.3.4:6789/0}, election epoch 2, quorum
>>> 0 ceph1
>>> osdmap e13: 3 osds: 3 up, 3 in
>>> pgmap v232: 192 pgs: 192 active+clean; 44 bytes data, 15465 MB used,
>>> 164 GB / 179 GB avail
>>> mdsmap e1: 0/0/1 up
>>>
>>> file removed from osd.2
>>>
>>> # ceph pg scrub 0.b
>>> instructing pg 0.b on osd.1 to scrub
>>>
>>> # ceph status
>>> cluster a4e417fe-0386-46a5-4475-ca7e10294273
>>> health HEALTH_ERR 1 pgs inconsistent; 1 scrub errors
>>> monmap e1: 1 mons at {ceph1=1.2.3.4:6789/0}, election epoch 2, quorum
>>> 0 ceph1
>>> osdmap e13: 3 osds: 3 up, 3 in
>>> pgmap v233: 192 pgs: 191 active+clean, 1 active+clean+inconsistent; 44
>>> bytes data, 15465 MB used, 164 GB / 179 GB avail
>>> mdsmap e1: 0/0/1 up
>>>
>>> # ceph pg repair 0.b
>>> instructing pg 0.b on osd.1 to repair
>>>
>>> # ceph status
>>> cluster a4e417fe-0386-46a5-4475-ca7e10294273
>>> health HEALTH_OK
>>> monmap e1: 1 mons at {ceph1=1.2.3.4:6789/0}, election epoch 2, quorum
>>> 0 ceph1
>>> osdmap e13: 3 osds: 3 up, 3 in
>>> pgmap v234: 192 pgs: 192 active+clean; 44 bytes data, 15465 MB used,
>>> 164 GB / 179 GB avail
>>> mdsmap e1: 0/0/1 up
>>>
>>> # ceph pg scrub 0.b
>>> instructing pg 0.b on osd.1 to scrub
>>>
>>> # ceph status
>>> cluster a4e417fe-0386-46a5-4475-ca7e10294273
>>> health HEALTH_ERR 1 pgs inconsistent; 1 scrub errors
>>> monmap e1: 1 mons at {ceph1=1.2.3.4:6789/0}, election epoch 2, quorum
>>> 0 ceph1
>>> osdmap e13: 3 osds: 3 up, 3 in
>>> pgmap v236: 192 pgs: 191 active+clean, 1 active+clean+inconsistent; 44
>>> bytes data, 15465 MB used, 164 GB / 179 GB avail
>>> mdsmap e1: 0/0/1 up
>>>
>>>
>>>
>>> The logs from osd.1:
>>> 2013-10-23 14:12:31.188281 7f02a5161700 0 log [ERR] : 0.b osd.2 missing
>>> 3a643fcb/testfile1/head//0
>>> 2013-10-23 14:12:31.188312 7f02a5161700 0 log [ERR] : 0.b scrub 1
>>> missing, 0 inconsistent objects
>>> 2013-10-23 14:12:31.188319 7f02a5161700 0 log [ERR] : 0.b scrub 1 errors
>>> 2013-10-23 14:13:03.197802 7f02a5161700 0 log [ERR] : 0.b osd.2 missing
>>> 3a643fcb/testfile1/head//0
>>> 2013-10-23 14:13:03.197837 7f02a5161700 0 log [ERR] : 0.b repair 1
>>> missing, 0 inconsistent objects
>>> 2013-10-23 14:13:03.197850 7f02a5161700 0 log [ERR] : 0.b repair 1
>>> errors, 1 fixed
>>> 2013-10-23 14:14:47.232953 7f02a5161700 0 log [ERR] : 0.b osd.2 missing
>>> 3a643fcb/testfile1/head//0
>>> 2013-10-23 14:14:47.232985 7f02a5161700 0 log [ERR] : 0.b scrub 1
>>> missing, 0 inconsistent objects
>>> 2013-10-23 14:14:47.232991 7f02a5161700 0 log [ERR] : 0.b scrub 1 errors
>>> _______________________________________________
>>> 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





[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