-
Notifications
You must be signed in to change notification settings - Fork 120
Add support for readonly FLAT/ZERO VMDK format #474
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
c961c4c to
0f2bd53
Compare
Currently, it's mainly used for EROFS to merge hundreds of sub-blobs (container image layers) into one block device to avoid having too many block devices (and it would even be impossible for virtio-mmio since legacy IRQs is much limited in libkrun). Why VMDK is useful? Since it seems to be the only standard and simple way to support one-single block device that consists of a collection of multiple file parts among popular virtualization products such as QEMU and VirtualBox. Update the `krun_add_disk2` API to specify the VMDK format: - KRUN_DISK_FORMAT_VMDK Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
| polly = { path = "../polly" } | ||
| rutabaga_gfx = { path = "../rutabaga_gfx", features = ["virgl_renderer", "virgl_renderer_next"], optional = true } | ||
| imago = { version = "0.1.5", features = ["sync-wrappers", "vm-memory"] } | ||
| imago = { features = ["sync-wrappers", "vm-memory"], git = "https://gitlab.com/hreitz/imago.git", branch = "main" } |
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.
We can only consume dependencies published on crates.io. The stable branch of imago doesn't have vmdk support, so we need to wait a bit for 0.2.0 to be released.
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.
Currently nerdbox will directly rely on this but libkrun doesn't support virtio-pci so the total number of virtio-blk device is much limited (even support it still ineffencient compared to this way.
BTW, vmdk support is much seperate from the main raw and qcow2 support, I wonder if it might be fine for 0.1.x? or is there some timeline to release 0.2.0? Cc @XanClic
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’m working on 0.2.0, it should be doable by next week. If I can’t get it done, I’ll make at least an 0.1.7 with 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.
That is awesome, Thank you all!
Also see: containerd/nerdbox#30
Currently, it's mainly used for EROFS to merge hundreds of sub-blobs (container image layers) into one block device to avoid having too many block devices (and it would even be impossible for virtio-mmio since legacy IRQs is much limited in libkrun).
Why VMDK is useful? Since it seems to be the only standard and simple way to support one-single block device that consists of a collection of multiple file parts among popular virtualization products such as QEMU and VirtualBox.
Update the
krun_add_disk2API to specify the VMDK format: