-
-
Notifications
You must be signed in to change notification settings - Fork 344
feat: support NFS storage pools #2025
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
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Morten Linderud <[email protected]>
@stgraber if you have any opinions or pointers to the checkboxes feel free to look over and I can investigate a bit. I suspect some research needs to be done to figure out how we should interact with the uid/gid and squashing behavior of NFS mounts. |
Hi! Is this PR stalled? Do you need help? |
OptimizedImages: false, | ||
PreservesInodes: false, | ||
Remote: n.isRemote(), | ||
VolumeTypes: []VolumeType{VolumeTypeBucket, VolumeTypeCustom, VolumeTypeImage, VolumeTypeContainer, VolumeTypeVM}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So initially my thought was to only allow VolumeTypeCustom
on there, so only allowing NFS to be used for additional storage to instances either stored on local storage or stored on a proper block shared storage solution (clustered LVM, Ceph or Linstor).
I think we should at least exclude VolumeTypeBucket
and VolumeTypeImage
.
Container and VM, we'd need to see how well they work. My gut feeling given NFS locking is "not well", the question is then whether we still allow it but document that it's really not recommended or we plain not allow it and only keep custom volumes on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well it depends on the amount of work required. 4 hours of work that could potentially go to the trash is ok. 4 days, not so much.
RunningCopyFreeze: false, | ||
DirectIO: true, | ||
MountedRoot: true, | ||
Buckets: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that should be set to false given above.
VolumeMultiNode: n.isRemote(), | ||
BlockBacking: false, | ||
RunningCopyFreeze: false, | ||
DirectIO: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about that one, does NFS handle O_DIRECT?
Ah, I just left a few comments in the Info function now. |
Well now you’re served :þ I can help review, fix stuff, and even write tests, don’t hesitate to ping me. I’d actually be happy to see it working pretty soon. |
@bensmrs thanks! I'll probably not touch this in July, and there is a hackercamp and work stuff happening in August on my end that might not allow me a lot of energy to pick this up after hours. I'd appreciate some pointers on the id remapping incus does and how that should play with the ID squashing NFS does. I think there should be some guidance and testing there to make sure it behaves as expected. It also takes a bunch of time which might not be needed if nfs reassings UID/GID anyway. If you have time to write tests and stuff I'd be happy to give you access to my fork. |
I don't believe that VFS idmap works on top of NFS at this point, so we'd be dealing with traditional shifting where Incus rewrites all the uid/gid as needed. What you want to ensure is that NFS is mounted the same way on all machines and that no uid/gid squashing is performed, then that should work fine. |
Should we call the driver |
I think we should stick to Exactly what kind of server version and configuration we can handle is probably something that's best addressed through the documentation for the driver. |
NFS would be SO nice. Just an interested party! |
WIP draft PR for the feature. So far it works, a bit slow on my machine due to the id remapping which should probably be investigated.
vers=4.2
, should be fine?source
Info
array needs some QA. Not sure I understand all of it.nfs
can't supportxattr
, do we need to handle this in other places than migrate?Fixes: #1311