How to configure rbd-cache logs in ceph
This article mainly introduces how to configure the rbd-cache log in ceph, which has a certain reference value. Interested friends can refer to it. I hope you can learn a lot after reading this article.
1. Configure client ceph.conf#vim / ect/ceph/ceph.conf
Add: in [client]:
Admin socket=/var/run/ceph/rbd-$pid.asoklog file = / var/log/ceph/ceph.client.admin.logrbd cache = truerbd cache size = 134217728
Note: it seems to be turned on by default in ceph0.80.7,rbd-cache.
two。 Define disk.xml
Note: when using rbd-cache, you need to indicate:
Cache='writeback'
To prevent rbd-cache data loss.
3. Hot-plug the device to the virtual machine # virsh attach-device ubuntu device.xml-persistent5. Restart the virtual machine
Find debug information for rbdcache at / tmp/qemu-rbd.log
2015-03-12 09 tx 51.734444 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max) 20134553 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max) 2015-1209 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target) 25165824 max) 2015-03-1209 7fbb2a3c6700 48 tx 54.734796 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max) 2015-03-1209 tx 48 tx 55.734958 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target) 25165824 max) 2015-03-12 09 7fbb296c0700 48 max 56.576418 7fbb296c0700 20 librbd: aio_read 0x7fbb447d5d60 completion 0x7fbad001b280 [0512] 2015-03-12 09 9 aio_read 0x7fbb447d5d60 completion 0x7fbad001b280 56.576476 7fbb296c0700 20 librbd: ictx_check 0x7fbb447d5d602015-03-1209 7fbb296c0700 48 librbd: oid rb.0.dff3.2ae8944a.000000000000 0512 from [0512] 2015-03-1209 7fbb296c0700 10 objectcacher readx extent (rb.0.dff3.2ae8944a.000000000000 (0) in @ 120 rb.0.dff3.2ae8944a.000000000000 512-> [0512]) 201512 03-12 09 7fbb296c0700 48 map_read rb.0.dff3.2ae8944a.000000000000 56.576559 7fbb296c0700 10 objectcacher.object (rb.0.dff3.2ae8944a.000000000000/head) 56.576573 7fbb296c0700 20 objectcacher.object (rb.0.dff3.2ae8944a.000000000000/head) map_read hit bh [0x7fbb447da690 2048 0x7fbb447da400 (2048) v 0 clean firstbyte=88] waiters = {} 2015-03-1209 clean firstbyte=88 48 waiters = 56.576590 7fbb296c0700 10 objectcacher readx hit bh bh [0x7fbb447da690 2048 0x7fbb447da400 (2048) v 0 clean Firstbyte=88] waiters = {} 2015-03-1209 7fbb296c0700 48 objectcacher readx rmap opos 56.576600 7fbb296c0700 10 objectcacher readx rmap opos 0: bh [0x7fbb447da690 06048 0x7fbb447da400 (2048) v 0 clean firstbyte=88] waiters = {} + 0 frag 02512 + 05122015-03-1209 objectcacher readx has all buffers2015 48objectcacher readx has all buffers2015 56.576633 7fbb296c0700 10 objectcacher readx adding buffer len 10 at 02015-03-1209 48 at 56.576641 7fbb296c0700 10 objectcacher readx result is 5122015-03-1209 48 7fbb296c0700 56.576649 0x7fbad0035580 5122015-03-1209 objectcacher trim start 48 objectcacher trim start 56.576667 objectcacher trim start: max 134217728 clean Objects: max 138current 12015-03-1209 current 48 7fbb296c0700 56.576677 7fbb296c0700 10 objectcacher trim finish: max 134217728 clean 2048 Objects: max 138current 12015-03-1209 7fbb296c0700 48 librbd::AioRequest: should_complete 0x7fbad0035440 rb.0.dff3.2ae8944a.000000000000 0512 r = 5122015-03-1209 librbd::AioCompletion 48A 56.576699 7fbb296c0700 10 librbd::AioCompletion: C_AioRead::finish () 0x7fbad001b3e0 r = 5122015-03-1209 librbd::AioCompletion 48A 56.576707 7fbb296c0700 10 librbd::AioCompletion: got {} for [0512] bl 5122015-03-1209 librbd::AioCompletion 4856.576725 7fbb296c0700 20 librbd::AioCompletion: AioCompletion::complete _ request () 0x7fbad001b280 complete_cb=0x7fbb43c94c50 pending 12015-03-12 09 7fbb296c0700 48 librbd::AioCompletion: AioCompletion::finish_adding_requests 0x7fbad001b280 pending 02015-03-12 09 7fbb296c0700 48 librbd::AioCompletion: AioCompletion::finalize () 0x7fbad001b280 rval 512 read_buf 0x7fbad005f400 read_bl 02015-03-1209 librbd::AioCompletion 48 7fbb296c0700 20 librbd::AioCompletion: AioCompletion::finalize () copied resulting 512 bytes to 0x7fbad005f4002015-03-1209 48 bytes to 0x7fbad005f4002015 56.735107 7fbb2a3c6700 11 objectcacher flusher 2048 / 13421 728: 0 tx 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max) 2015-03-12 09 dirty 48 7fbb2a3c6700 57.735222 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max) 2015-03-1209 target 4858.735321 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max) 2015-1209 7fbb2a3c6700 11 objectcacher flusher 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target 25165824 max) 2015-03-1209 objectcacher flusher 49 objectcacher flusher 00.735481 7fbb2a3c6700 11 2048 / 134217728: 0 tx, 0 rx, 2048 clean, 0 dirty (16777216 target, 25165824 max)
It is easy to understand the implementation of rbd-cache by adding source code to the log.
Thank you for reading this article carefully. I hope the article "how to configure rbd-cache logs in ceph" shared by the editor will be helpful to everyone. At the same time, I also hope you will support us and follow the industry information channel. More related knowledge is waiting for you to learn!