aurae-runtime / aurae

Distributed systems runtime daemon written in Rust.
https://aurae.io
Apache License 2.0
1.83k stars 89 forks source link

Implement VM Service with Cloud Hypervisor #506

Open mccormickt opened 2 weeks ago

mccormickt commented 2 weeks ago

This PR builds off of the foundations by @JeroenSoeters in #451. Instead of requiring the cloud-hypervisor binary running externally and using the client, this implementation uses the vmm crate for CH to manage aurae VirtualMachines. We also leave configuring TAP devices up to Cloud Hypervisor instead of creating them out of band.

Using Cloud Hypervisor's VMM like this has a few nice properties:

The tests implemented should allow you to run virtual machines with an Auraed as PID 1 after running the below copying the kernel and disk image to proper paths under /var/lib/aurae:

sudo make /opt/aurae/cloud-hypervisor/cloud-hypervisor
sudo make build-guest-kernel
sudo make prepare-image

Also cleans up some old make targets and libvirt POC config within auraed/hack.