I'm aware of the differences between a cachepool and cachevol.

Cachepool separates the cache data and metadata into two separate volumes, whereas a Cachevol uses a single volume for both.

My question is, what is the benefit of using a cachepool instead of just using a cachevol? The only scenario I can think of that it would make the most sense would be if you wanted to dedicate a single device (or single set of devices) to the cache's metadata, and a separate device (or set of devices) for the actual cache data. But that seems like a very specific scenario, and it also doesn't address the question of Why?

Why do most people default to using a cachepool instead of a cachevol, esp. when one device is used for caching?

What is the motivation/pros-cons to using a cachepool vs cachevol?

EDIT For context, the motivation behind this question comes from an assumption that cachepool is used in conservative setups (like home servers and desktops) simply because the guides and tutorials that people follow have trickled down from Enterprise use-cases.

Outside of tooling support, and based solely on the merits of cachepool vs cachevol, is there any concrete reason (performance, implementation, etc...) that motivates people to advocate for cachepool instead? Or is it simply a victim of an Enterprise trickle-down phenomenon?

If the latter is true, it may justify more conservative setups considering cachevol instead of cachepool if they don't need the flexibility and complexity of a cachepool setup.

2 Answers 2


A concrete reason to use a cachepool instead of a cachevol, is that, as of early 2024, the maintenance tools for dm-cache do not understand cachevols. lvconvert --repair on a damaged cachevol will print a bizarre error message about not knowing what to do with a "linear" LV, and the lower-level programs from thin-provisioning-tools insist on being given separate data and metadata devices.

  • Third-party tools like thin-provisioning-tools are typically built to target the most common use cases. My question is specifically related to the technology and the implementation. My assumption is that the reason why cachepool is used more often than cachevol is simply because it is more applicable to enterprise use-cases, and that's why most tutorials and guides steer their users in that direction; And that, realistically, it's likely that cachevol was just created as a convenience tool, potentially for more conservative applications (like home use) that no one really uses.
    – Swivel
    Jan 16 at 22:36
  • There isn't really any out there advocating for cachevol over cachepool on its merits. My question is "why?", very specifically based on the merits of cachevol over cachepool. It very well could be the victim of the same phenomenon that produces third-party tools that don't really support cachevol: Enterprises primarily used it, and so people with more conservative uses have just adopted those enterprise solutions in their home setups, and no one has really questioned it.
    – Swivel
    Jan 16 at 22:40
  • @Swivel The thin-provisioning-tools are the official maintenance tools developed by the same people who wrote dm-cache. The lvm utilities just call them. The fact that there is currently no way to repair a damaged cachevol is exactly what you were looking for, IMHO: a concrete reason to prefer a cachepool over a cachevol, for any use.
    – zwol
    Jan 20 at 2:56

From my limited perspective, there really isn't a reason for everyone to be using a cachepool, and it's the result of blindly following enterprise tutorials for the sake of it.

Outside of using a separate physical drive for metadata and a separate physical drive for data, for the sake of improving throughput, I can't find much justification for using a cachepool. If you're only using a single SSD for caching (which, I would assume is the vast majority of desktop users), it seems that a cachevol is more than sufficient.

And, it potentially maximizes your caching ability. Rather than having a reduced cache size for data in order to allow room for the metadata, you can leave that up to LVM and allocate the entire device as a cachevol.

It seems like the only reason for a cachepool is for caching using two or more SSDs.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .