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] Extend to support zfs #144

Open
liyimeng opened this issue Jun 8, 2022 · 6 comments
Open

[feature] Extend to support zfs #144

liyimeng opened this issue Jun 8, 2022 · 6 comments

Comments

@liyimeng
Copy link

liyimeng commented Jun 8, 2022

Why you need it?

openlocal is a general name, while only lvm is covered, extend it to support ZFS seem to make it better deserving the name ;)

lvm is better performance, less resource demanding, but ZFS has some nice features like ensuring data integrity make it still a valid choice in many datacenter.

How it could be?

Providing lvm and zfs is so similar for end user perspective, I am wondering if it is possible to add a ZFS driver side by side, make openlocal support zfs as backend storage option. I see openebs have an option named local-zfs, but it is look pretty messy there. This project, seem providing much neat code. it could be better base to implement a zfs csi driver here. If zfs is included, I believe the project will get much more attention

What do you thinkg @TheBeatles1994

Other related information

@liyimeng liyimeng changed the title Extend to support zfs [feature] Extend to support zfs Jun 8, 2022
@TheBeatles1994
Copy link
Collaborator

Thx for your issue~ And I believe open-local will get more attention if zfs is included. By the way, not only lvm is covered, we are also preparing to integrate spdk.

I am not familiar with zfs, I see that LVM and zfs have many similar features, like storage pool, snapshot, etc. Does zfs can restrict use of volume capacity, similar to a logical volume in LVM?

@liyimeng
Copy link
Author

liyimeng commented Jun 9, 2022

@TheBeatles1994 Absolutely, features wise, zfs is far more completed and advanced than LVM. In ZFS, your can create dataset(vol with fs ready) or zvol (plain block device can used as raw disk), both can be set quota on them. In short, nothing is missing in ZFS if it is available in lvm. LVM is like a poor-man solution of ZFS. If given enough resource, zfs perform far more better than LVM. Most important thing is that zfs ensure your data integrity, no silent bit rot could happen. Keep your data safe and last for a very long time. This is very important for large dataset in big datacenter. And it is why zfs is choosen for most of HPC system.

But, there is always a "But" when something looks so good :), zfs demand more resource, a lot more than LVM. This don't have to be a block for open-local to support ZFS, because if openlocal could support both LVM and ZFS, then it can server both low-end and high end use case, and user have options to choose depend on their available resource, therefore make open local get much wider users base.

@TheBeatles1994
Copy link
Collaborator

I did my research and ZFS is so powerful as you said. I believe open-local can integrate this well. And it would be very grateful if you can help with this feature, we need more great contributors like you~

@liyimeng
Copy link
Author

liyimeng commented Jun 14, 2022

@TheBeatles1994
Sure, I love to help. I can even bring some more ones to join us :)
Being the project establisher, you has the best overall knowledge of the project, especially its architecture. Maybe you could initiate some architecture work first, I then help with adding ZFS blocks or review to start with, what do you think?

for zfs go binding, we could consider https://github.com/mistifyio/go-zfs or https://pkg.go.dev/github.com/bicomsystems/go-libzfs, the second can be too complicated and might have licensing issue. However, we could always swap as needed in the future.

@TheBeatles1994
Copy link
Collaborator

TheBeatles1994 commented Jun 14, 2022

Maybe you could initiate some architecture work first, I then help with adding ZFS blocks or review to start with, what do you think?

Of course, I can do this~ The project needs to do more abstraction to support more local storage types.

@liyimeng
Copy link
Author

@TheBeatles1994 looking forward to seeing that is coming soon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants