-
Notifications
You must be signed in to change notification settings - Fork 3
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
ZFS Support #3
Comments
Implementation notes
|
Have you looked at https://github.com/jmesmon/rust-libzfs for |
@dsheets yes, I've looked at it. I agree it seems like a reasonable starting point, but, it doesn't seem to be maintained at the moment, and doesn't come with a license. Additionally I'm not really sure I'd want to end up with my own libzfs bindings in-tree. Also, as the libzfs crate on crates.io is https://github.com/whamcloud/rust-libzfs, I think it would probably be the best if that would end up supporting FreeBSD :) |
Probably the first backing file system we want to support.
Spec
State
All calldown datasets shall be under a single base dataset, here denoted by
<base>
<base>/storage
- extract fetched layers here<base>/storage/empty@extracted
- the empty base dataset<base>/storage/<layer_hash>@extracted
- extracted dataset including all sub-datasets<base>/runtime
- clone images here from<base>/storage
and start jails on them<base>/runtime/<container_id>
- root filesystem of a JailOperations
Extract
Extracting an image would basically be something along the lines of the following pseudocode:
Start a Jail
Commit a Jail
After the Jail is stopped, committing
runtime
state creates a newstorage
layer with the current changes.Package
This would be going through all changes between a layer and the layer immediately below it with
zfs diff <base>/storage/<base_layer>@extracted <base>/storage/<layer>@extracted
or similar, and collect the following in a tarball:The text was updated successfully, but these errors were encountered: