Example Firecracker runner with lazy OCI rootfs via virtio-fs - #25
Closed
imjasonh wants to merge 3 commits into
Closed
Example Firecracker runner with lazy OCI rootfs via virtio-fs#25imjasonh wants to merge 3 commits into
imjasonh wants to merge 3 commits into
Conversation
Implement an example stack that serves container image layers on demand via gzip zran-style indexing (dagdotdev explore approach), exposes the merged overlay through virtio-fs using vhost-user-backend, and includes fc-runner to orchestrate Firecracker with the generic vhost-user API. Includes unit tests, vhost-user integration test, and criterion benchmarks. Co-authored-by: Jason Hall <imjasonh@users.noreply.github.com>
- Resolve registry credentials from ~/.docker/config.json via docker_credential (auths, credHelpers, credsStore) - Expose /metrics on fc-vhostfsd with bytes saved, startup time, RSS, cache size - Document VMM frontend options and guest vmlinux requirements Co-authored-by: Jason Hall <imjasonh@users.noreply.github.com>
- Add scripts/ for downloading official Firecracker and building virtio-fs-enabled firecracker + vmlinux via devtool - Expand README with Quickstart, prerequisites, and concrete paths - Ignore .deps/ build artifacts Co-authored-by: Jason Hall <imjasonh@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Example Firecracker VM runner that uses a container image as the guest rootfs, loading files on demand via gzip zran-style seeking + HTTP range requests, served through virtio-fs (
vhost-user-backend+fuse-backend-rs).Crates
fc-oci-fs— OCI registry client, gzip index, tar TOC, read-only overlayFileSystemfc-vhostfsd— vhost-user virtio-fs daemonfc-runner— Spawnsfc-vhostfsdand configures Firecracker (PUT /vhost-user-devices/rootfs)Highlights
indexed_deflate+ tar TOC (dagdotdev explore approach)~/.docker/config.json(cred helpers supported)cargo test,cargo bench -p fc-oci-fs)Host setup (new)
README now includes a Quickstart with concrete steps for downloading/building dependencies:
scripts/download-firecracker.sh.deps/firecracker(official release; block/net only)scripts/build-firecracker-virtiofs.sh.deps/firecracker-virtiofs(PR #5773 generic vhost-user)scripts/build-vmlinux-virtiofs.sh.deps/vmlinux-virtiofs(CONFIG_VIRTIO_FS=y)scripts/setup-host.shImportant: Stock Firecracker CI
vmlinuxfrom S3 does not enable virtio-fs; released Firecracker binaries do not expose virtio-fs via generic vhost-user yet.Test plan
cargo test(unit +vhost_e2eintegration)cargo bench -p fc-oci-fs.deps/artifacts (manual)