Description of problem: With the default config option of 'rbd_cache_writethrough_until_flush' set to true, librbd waits for a flush request before enabling the writeback cache. However, librbd is not enabling the writeback cache even after a flush is received. This results in a several performance penalty for librbd-backed VMs. Version-Release number of selected component (if applicable): How reproducible: 100% Steps to Reproduce: 1. Compare IOPS between a VM configured with 'rbd_cache_writethrough_until_flush=false' and one with 'rbd_cache_writethrough_until_flush=true' Actual results: VM tests using 'rbd_cache_writethrough_until_flush=false' will have substantially higher random write IOPS compared to without due to the fact that the cache is stuck in writethrough mode. Expected results: Writeback cache should be enabled after first flush is received. Additional info:
Upstream pull request: https://github.com/ceph/ceph/pull/10762
I can also add one system level test in fio with and without that option.
Verified(sanity only)
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2016-1898.html