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

[FEATURE] Enable OpenCAS support for V2 engine #10292

Open
liyimeng opened this issue Jan 24, 2025 · 3 comments · May be fixed by longhorn/longhorn-spdk-engine#311
Open

[FEATURE] Enable OpenCAS support for V2 engine #10292

liyimeng opened this issue Jan 24, 2025 · 3 comments · May be fixed by longhorn/longhorn-spdk-engine#311
Labels
area/performance System, volume performance area/v2-data-engine v2 data engine (SPDK) kind/feature Feature request, new feature require/auto-e2e-test Require adding/updating auto e2e test cases if they can be automated require/doc Require updating the longhorn.io documentation require/lep Require adding/updating enhancement proposal require/manual-test-plan Require adding/updating manual test cases if they can't be automated require/performance-benchmark Require performance benchmark
Milestone

Comments

@liyimeng
Copy link

liyimeng commented Jan 24, 2025

Is your feature request related to a problem? Please describe (👍 if you like this request)

Right now, longhorn dose not support any caching, which make it not suitable for high perform system with low profile hardware, like HDD.

Describe the solution you'd like

Let's introduce [opencas] (https://open-cas.com/getting_started_spdk.html) as cache engine for longhorn.

Describe alternatives you've considered

No response

Additional context

I personal think this is like a low hanging fruit for longhorn to reach a much big use case.

Refs:

@liyimeng liyimeng added kind/feature Feature request, new feature require/auto-e2e-test Require adding/updating auto e2e test cases if they can be automated require/doc Require updating the longhorn.io documentation require/lep Require adding/updating enhancement proposal require/manual-test-plan Require adding/updating manual test cases if they can't be automated labels Jan 24, 2025
@github-project-automation github-project-automation bot moved this to New Issues in Longhorn Sprint Jan 24, 2025
@derekbit derekbit added area/performance System, volume performance area/v2-data-engine v2 data engine (SPDK) require/performance-benchmark Require performance benchmark labels Jan 24, 2025
@derekbit derekbit added this to the Backlog milestone Jan 24, 2025
liyimeng pushed a commit to liyimeng/longhorn-spdk-engine that referenced this issue Jan 24, 2025
Enable OCF https://github.com/Open-CAS, prepare to add caching to V2 data engine
partially fix longhorn/longhorn#10292

Signed-off-by: Liyi Meng <[email protected]>
liyimeng pushed a commit to liyimeng/longhorn-spdk-engine that referenced this issue Jan 24, 2025
Enable OCF https://github.com/Open-CAS, prepare to add caching to V2 data engine
partially fix longhorn/longhorn#10292

Signed-off-by: Liyi Meng <[email protected]>
@liyimeng
Copy link
Author

OK, it is no as simple as I claimed. Some other things I have missed:

  1. Update CRD for longhorn disk to include cache info. Might need another CRD for cache device?
  2. Update https://github.com/longhorn/types to allow cache operations over RPC
  3. Update https://github.com/longhorn/go-common-libs to add a new disk driver?
  4. Update https://github.com/longhorn/go-spdk-helper to add a function to manipulate OCF bdev
  5. Update https://github.com/longhorn/longhorn-spdk-engine to create OCF bdev in a proper way.

@longhorn-io-github-bot longhorn-io-github-bot moved this from New to In Progress in Community Review Sprint Jan 24, 2025
@PhanLe1010
Copy link
Contributor

PhanLe1010 commented Jan 25, 2025

Thanks @liyimeng

Do you have some benchmark number to show the perf difference of with and without caching?

You can use kbench to test https://github.com/longhorn/kbench

@liyimeng
Copy link
Author

@PhanLe1010 thanks for attention! I have not got enough resource to test it out yet. In theory, it should increase the hdd performance to ssd level. I tried similar technique using zfs cache for v1 engine early. The number come to 5k iops (vs ssd 10k iops) However, ZFS caching does not allow write back cache because it values data integrity over performance. This is unnecessary for longhorn since we run replicas. So my bet is that it worth a try.

A simple test could start with kernel version of opencas, but not going pure spdk right from start. I need to wait for a while to have resource though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/performance System, volume performance area/v2-data-engine v2 data engine (SPDK) kind/feature Feature request, new feature require/auto-e2e-test Require adding/updating auto e2e test cases if they can be automated require/doc Require updating the longhorn.io documentation require/lep Require adding/updating enhancement proposal require/manual-test-plan Require adding/updating manual test cases if they can't be automated require/performance-benchmark Require performance benchmark
Projects
Status: In Progress
Status: New Issues
Development

Successfully merging a pull request may close this issue.

3 participants