[hammer][monitor]change ceph tell mon compact command to run asynchronously

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

 



Hi cephers,

I have met a monitor problem with capacity too large in our production
environment.

This logical volume for monitor is 100GB, the capacity can grow to
95GB, and then go down. Sometimes, the monitor process

can not start ,we have to rebuild the monitor.

Then we set a crontab task, every week we compact the monitor at a
assigned point time. The command is "ceph tell mon.xx

compact", While the monitor is compacting(it can last for 80 seconds),
the monitor is down by lease timeout. When the

compact  task complete, the monitors vote again ,the monitor is up and active.

In monitor message dispatch code, while one command is executing , it
must have the dispatch lock. So indeed  all command

are executing synchronously.  If one command is executing for long
time, others command must wait.

So I change the monitor tell compact  command to just add a
task(compact range(0,0)) to the monitor compact thread to

execute the compact  task, so the monitor tell compact command can
execute immediately.

PATCH:
https://github.com/penglaiyxy/ceph/commit/86bcfd2ccb349ccc05512d8df9deaf9b368524db


I have test the patch, no monitor down, no message  block, everything work fine.

Glad to receive any ideas!

Best regards,

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