Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow pools to share a single l2arc cache #9859

Open
adamdmoss opened this issue Jan 19, 2020 · 7 comments
Open

Allow pools to share a single l2arc cache #9859

adamdmoss opened this issue Jan 19, 2020 · 7 comments
Labels
Type: Feature Feature request or new feature

Comments

@adamdmoss
Copy link
Contributor

Describe the problem you're observing

I have multiple pools of spinning disks with varying levels of activity over time, and a cache device on NVME.

The cache is quite effective - especially with #9582 - but manually partitioning the NVME into multiple independent caches is leaving some of the caches cold for long periods while other caches are struggling for space, which is far from ideal for performance/space/expense reasons.

It would be wonderful if multiple pools could point to the same cache device and have l2arc manage their relative needs.

@behlendorf behlendorf added the Type: Feature Feature request or new feature label Jan 21, 2020
@behlendorf
Copy link
Contributor

While probably not impossible. Sharing an l2arc device in this fashion would be exceptionally difficult to implement since it requires associating a single device with multiple pools. This is something which is expressly prohibited by the design. Regardless, I've tagged this issue as a requested feature so it can be tracked.

@richardelling
Copy link
Contributor

We did a design for this a few lives back. The arc.c changes are minor and relatively easy to implement and test. The hard part is managing a new spa type that does not include any data vdevs. Those changes are much more significant and impact many user-facing interfaces. We had the advantage of a restricted and highly automated user interface, so it was feasible for us. That said, it was a strange design decision to tie the cache devices to pools when ARC itself is shared amongst pools, except for cstor where each pool has its own ARC.

@happycouak
Copy link

Any update about this feature request ?

@somebody-somewhere-over-the-rainbow

would also love to have this ... would be awesome!

@shdw
Copy link

shdw commented Mar 25, 2022

Stumbled upon this while searching if this was possible to use the same L2ARC/ZLOG devices for distinct zfs pools. I also have servers that would benefit from this feature being implemented.

Not assiduously counting on it, but still thinking this would be a good idea.

@Ranlvor
Copy link

Ranlvor commented Nov 4, 2022

Pull-Request #14060 is about implementing this.

@Jorsher
Copy link

Jorsher commented Feb 7, 2024

Interested in this. I see the PR appears to have stalled but hopefully gets picked back up. Would be great if L2ARC was similar to ARC and shared between all pools to maximize the benefit and use of capacity. Understood implementation is not as simple, but hope it gets there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature Feature request or new feature
Projects
None yet
Development

No branches or pull requests

8 participants