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

WIP: Add NodeFreeze/UnfreezeVolumeFilesystem Support #407

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

xing-yang
Copy link
Contributor

@xing-yang xing-yang commented Jan 6, 2020

While it is possible to do filesystem freeze/unfreeze using ExecutionHook when taking a snapshot, it requires elevated privileges on the pod. We are considering adding new NodeFreeze/UnfreezeVolumeFilesystem Node PRCs because node plugin already has those privileges.

Some history about this PR:
This PR was prepared a year ago (need a rebase) and discussed at the sig-storage meetup at KubeCon [1]. We also discussed this at the sig-storage Volume Snapshot WG meeting on 12/17/2018 [2]. It was put on hold after we decided to work on ExecutionHook first [3]. There was discussion in the recent sig-storage meeting to add this support in CSI again [4].

References:
[1] https://docs.google.com/document/d/1Z_jM7LWkeGqO06iaoJB40ZGETgedsG706up_EOSdQko/edit# (meeting notes on snapshot) [2] https://docs.google.com/document/d/1qdfvAj5O-tTAZzqJyz3B-yczLLxOiQd-XKpJmTEMazs/edit# (meeting notes on 12/17/2018)
[3] https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/20190120-execution-hook-design.md
[4] https://docs.google.com/document/d/1-8KEG8AjAgKznS9NFm3qWqkGyCHmvU6HVl0sk5hwoAE/edit# (meeting notes on 1/2/2020)

Mark it as WIP as we still need to figure out lots of details before proposing it formally. We need to figure out how these calls can be triggered by Kubernetes and how to coordinate between these CSI fsfreeze calls and quiesce calls from ExecutionHook when both are used. We also need to take into consideration the current status and future plans of ExecutionHook.

@jdef
Copy link
Member

jdef commented Jan 11, 2020

Freeze/unfreeze is only related to snapshots, yes? Or are there other use cases that we're thinking about? If it's just for snapshotting, why can't freeze/unfreeze implementation be built in to the CreateSnapshot RPC itself?

If there are other, high level use cases related to freeze then please enumerate them here for the benefit of everyone reviewing this PR. Asking people to review a series of gdocs to dig out relevant threads of conversation is .. probably asking too much.

@xing-yang
Copy link
Contributor Author

xing-yang commented Jan 14, 2020

CreateSnapshot is a controller RPC while filesystem freeze/unfreeze proposed here will be in the node PRCs. It is possible to do filesystem freeze/unfreeze using ExecutionHook without these new node PRCs but the concern is the elevated privileges required on the pod for that to happen.

We still need to figure out lots of details before formally proposing this. I modified the description section on top. You don't need to go through the Google docs.

@jdef
Copy link
Member

jdef commented Feb 24, 2020

once #417 lands, this PR should mark up API additions w/ "alpha" annotations

@xing-yang
Copy link
Contributor Author

Sure.

@xujianhai666
Copy link

what is the progress status for this proposal @xing-yang

@xujianhai666
Copy link

I found I need nodeserver freeze as same as u

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

Successfully merging this pull request may close these issues.

3 participants