Repository navigation
microvm: support Microsoft Hypervisor devices - #1207
Martin Heberling (Bickor) wants to merge 1 commit into
Conversation
|
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
|
Hey Benjamin Elder (@BenTheElder) I was planning on leaving this as draft, but if you're interested in merging I'm happy to do any improvements you suggest! The PR was made in the context of this linkedin post. |
|
So I've been working on #1254 which we can probably build on top of :-) I need to learn more about the mshv requirement. |
|
Martin Heberling (@Bickor) What's the status of this PR? Are you still working on it? Benjamin Elder (@BenTheElder) Is it a GA blocker for Azure support? If yes, I can help with this; I have access to AKS. |
#1207 is in, we should look at how to handle this now. Feel free to take a look, there are other more pressing microsoft blockers though, azure even with gvisor has #1827 in particular. I've been in discussions about those. |
|
This was just a prototype. Closing in favor of Anish's efforts: #2689 |
Summary
/dev/kvmas the default MicroVM hypervisor deviceate-controllerto generate workers using/dev/mshvhostPathmountsWhy
AKS
KataVmIsolationnodes use an Azure Linux Microsoft Hypervisor root-partition image. These nodes expose/dev/mshv, not/dev/kvm, so the existing hard-coded KVM worker pod cannot start even though Cloud Hypervisor is built with MSHV support.The new controller setting is available as either:
Only
/dev/kvmand/dev/mshvare accepted. MSHV workers also require:AKS validation
Validated on:
Standard_D8s_v5KataVmIsolationAKSAzureLinux-V3katagen2-202608.06.16.6.137.mshv2-1.azl3Using the real
ateom-microvmimage and native gRPC API, the following succeeded through/dev/mshv:RunWorkloadCheckpointWorkloadRestoreWorkloadThe checkpoint contained
base-id,config.json,memory-ranges,rootfs-upper.tar, andstate.json. An in-memory counter returned1before checkpoint and2after restore, confirming memory continuity.This did not use the host's Kata containerd shim. The outer worker remained a normal
runcpod;ateom-microvmlaunched Cloud Hypervisor and drove snapshot/restore directly.Current AKS limitation
This PR only addresses the MicroVM hypervisor device. A complete stock Substrate deployment is still blocked on managed AKS because Substrate currently requires the
PodCertificateRequestandClusterTrustBundleAPIs for internal mTLS, and AKS 1.35/1.36 do not expose them. AKS integration also needs dedicated storage, registry-auth, DNS, and deployment overlays.Compatibility
Hypervisor selection is currently controller-wide. KVM and MSHV pools or snapshots must not be mixed, and the setting should not be changed while snapshots exist. Snapshot portability across the backends is not guaranteed.
Testing
go test -short ./...go test -race ./cmd/atecontroller-racego test ./cmd/ateom-microvm/...go vet ./cmd/atecontroller/...hack/verify/go-generate.shhack/verify/gofmt.shhack/verify/golangci-lint.sh