Finally problem solved.

First, I set noscrub, nodeep-scrub, norebalance, nobackfill, norecover, noup 
and nodown flags. Then I restarted the OSD which has problem.
When OSD daemon started, blocked requests increased (up to 100) and some 
misplaced PGs appeared. Then I unset flags in order to noup, nodown, norecover, 
nobackfill, norebalance.
In a little while, all misplaced PGs repaired. Then I unset noscrub and 
nodeep-scrub flags. And finally: HEALTH_OK.

Thanks for your helps,
Ramazan

> On 22 Aug 2017, at 20:46, Ranjan Ghosh <gh...@pw6.de> wrote:
> 
> Hm. That's quite weird. On our cluster, when I set "noscrub", "nodeep-scrub", 
> scrubbing will always stop pretty quickly (a few minutes). I wonder why this 
> doesnt happen on your cluster. When exactly did you set the flag? Perhaps it 
> just needs some more time... Or there might be a disk problem why the 
> scrubbing never finishes. Perhaps it's really a good idea, just like you 
> proposed, to shutdown the corresponding OSDs. But that's just my thoughts. 
> Perhaps some Ceph pro can shed some light on the possible reasons, why a 
> scrubbing might get stuck and how to resolve this.
> 
> 
> Am 22.08.2017 um 18:58 schrieb Ramazan Terzi:
>> Hi Ranjan,
>> 
>> Thanks for your reply. I did set scrub and nodeep-scrub flags. But active 
>> scrubbing operation can’t working properly. Scrubbing operation always in 
>> same pg (20.1e).
>> 
>> $ ceph pg dump | grep scrub
>> dumped all in format plain
>> 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
>> 20.1e        25189   0       0       0       0       98359116362     3048    
>> 3048    active+clean+scrubbing  2017-08-21 04:55:13.354379      
>> 6930'23966663   6930:20949058   [29,31,3]       29      [29,31,3]       29   
>>    6712'22950171   2017-08-20 04:46:59.208792      6712'22950171   
>> 2017-08-20 04:46:59.208792
>> 
>> 
>> $ ceph -s
>>     cluster ****
>>      health HEALTH_WARN
>>             33 requests are blocked > 32 sec
>>             noscrub,nodeep-scrub flag(s) set
>>      monmap e9: 3 mons at 
>> {ceph-mon01=**:6789/0,ceph-mon02=**:6789/0,ceph-mon03=**:6789/0}
>>             election epoch 84, quorum 0,1,2 ceph-mon01,ceph-mon02,ceph-mon03
>>      osdmap e6930: 36 osds: 36 up, 36 in
>>             flags noscrub,nodeep-scrub,sortbitwise,require_jewel_osds
>>       pgmap v17667617: 1408 pgs, 5 pools, 24779 GB data, 6494 kobjects
>>             70497 GB used, 127 TB / 196 TB avail
>>                 1407 active+clean
>>                    1 active+clean+scrubbing
>> 
>> 
>> Thanks,
>> Ramazan
>> 
>> 
>>> On 22 Aug 2017, at 18:52, Ranjan Ghosh <gh...@pw6.de> wrote:
>>> 
>>> Hi Ramazan,
>>> 
>>> I'm no Ceph expert, but what I can say from my experience using Ceph is:
>>> 
>>> 1) During "Scrubbing", Ceph can be extremely slow. This is probably where 
>>> your "blocked requests" are coming from. BTW: Perhaps you can even find out 
>>> which processes are currently blocking with: ps aux | grep "D". You might 
>>> even want to kill some of those and/or shutdown services in order to 
>>> relieve some stress from the machine until it recovers.
>>> 
>>> 2) I usually have the following in my ceph.conf. This lets the scrubbing 
>>> only run between midnight and 6 AM (hopefully the time of least demand; 
>>> adjust as necessary)  - and with the lowest priority.
>>> 
>>> #Reduce impact of scrub.
>>> osd_disk_thread_ioprio_priority = 7
>>> osd_disk_thread_ioprio_class = "idle"
>>> osd_scrub_end_hour = 6
>>> 
>>> 3) The Scrubbing begin and end hour will always work. The low priority 
>>> mode, however, works (AFAIK!) only with CFQ I/O Scheduler. Show your 
>>> current scheduler like this (replace sda with your device):
>>> 
>>> cat /sys/block/sda/queue/scheduler
>>> 
>>> You can also echo to this file to set a different scheduler.
>>> 
>>> 
>>> With these settings you can perhaps alleviate the problem so far, that the 
>>> scrubbing runs over many nights until it finished. Again, AFAIK, it doesnt 
>>> have to finish in one night. It will continue the next night and so on.
>>> 
>>> The Ceph experts say scrubbing is important. Don't know why, but I just 
>>> believe them. They've built this complex stuff after all :-)
>>> 
>>> Thus, you can use "noscrub"/"nodeepscrub" to quickly get a hung server back 
>>> to work, but you should not let it run like this forever and a day.
>>> 
>>> Hope this helps at least a bit.
>>> 
>>> BR,
>>> 
>>> Ranjan
>>> 
>>> 
>>> Am 22.08.2017 um 15:20 schrieb Ramazan Terzi:
>>>> Hello,
>>>> 
>>>> I have a Ceph Cluster with specifications below:
>>>> 3 x Monitor node
>>>> 6 x Storage Node (6 disk per Storage Node, 6TB SATA Disks, all disks have 
>>>> SSD journals)
>>>> Distributed public and private networks. All NICs are 10Gbit/s
>>>> osd pool default size = 3
>>>> osd pool default min size = 2
>>>> 
>>>> Ceph version is Jewel 10.2.6.
>>>> 
>>>> My cluster is active and a lot of virtual machines running on it (Linux 
>>>> and Windows VM's, database clusters, web servers etc).
>>>> 
>>>> During normal use, cluster slowly went into a state of blocked requests. 
>>>> Blocked requests periodically incrementing. All OSD's seems healthy. 
>>>> Benchmark, iowait, network tests, all of them succeed.
>>>> 
>>>> Yerterday, 08:00:
>>>> $ ceph health detail
>>>> HEALTH_WARN 3 requests are blocked > 32 sec; 3 osds have slow requests
>>>> 1 ops are blocked > 134218 sec on osd.31
>>>> 1 ops are blocked > 134218 sec on osd.3
>>>> 1 ops are blocked > 8388.61 sec on osd.29
>>>> 3 osds have slow requests
>>>> 
>>>> Todat, 16:05:
>>>> $ ceph health detail
>>>> HEALTH_WARN 32 requests are blocked > 32 sec; 3 osds have slow requests
>>>> 1 ops are blocked > 134218 sec on osd.31
>>>> 1 ops are blocked > 134218 sec on osd.3
>>>> 16 ops are blocked > 134218 sec on osd.29
>>>> 11 ops are blocked > 67108.9 sec on osd.29
>>>> 2 ops are blocked > 16777.2 sec on osd.29
>>>> 1 ops are blocked > 8388.61 sec on osd.29
>>>> 3 osds have slow requests
>>>> 
>>>> $ ceph pg dump | grep scrub
>>>> dumped all in format plain
>>>> 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
>>>> 20.1e      25183   0       0       0       0       98332537930     3066    
>>>> 3066    active+clean+scrubbing  2017-08-21 04:55:13.354379      
>>>> 6930'23908781   6930:20905696   [29,31,3]       29      [29,31,3]       29 
>>>>      6712'22950171   2017-08-20 04:46:59.208792      6712'22950171   
>>>> 2017-08-20 04:46:59.208792
>>>> 
>>>> Active scrub does not finish (about 24 hours). I did not restart any OSD 
>>>> meanwhile.
>>>> I'm thinking set noscrub, noscrub-deep, norebalance, nobackfill, and 
>>>> norecover flags and restart 3,29,31th OSDs. Is this solve my problem? Or 
>>>> anyone has suggestion about this problem?
>>>> 
>>>> Thanks,
>>>> Ramazan
>>>> _______________________________________________
>>>> ceph-users mailing list
>>>> ceph-users@lists.ceph.com
>>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> 

_______________________________________________
ceph-users mailing list
ceph-users@lists.ceph.com
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

Reply via email to