containers / krunvm

Create microVMs from OCI images
Apache License 2.0
1.41k stars 42 forks source link

How to check vm status? #40

Open makorne opened 1 year ago

makorne commented 1 year ago

Hi! Thank you for awesome project!

krunvm create docker.io/library/alpine:latest --name alpine_16 --mem 16 microVM created with name: alpine_16

krunvm start alpine_16 /bin/ls -- -l /bin/

thread '<unnamed>' panicked at 'Kernel doesn't fit in RAM', src/arch/src/x86_64/mod.rs:77:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Segmentation fault (core dumped)

krunvm list

alpine_16
 CPUs: 1
 RAM (MiB): 16
 DNS server: 1.1.1.1
 Buildah container: alpine-working-container-3
 Workdir: /root
 Mapped volumes: {}
 Mapped ports: {}

But vm is dead.

How to check if vm crashed?

slp commented 1 year ago

Hi! By design, in krunvm the VM's lifetime is tied to the command executed on it, which is usually a shell and, in your example, /bin/ls. Once the command finishes the VM shuts down too. If you execute a second command, a new VM is instantiated (VM start up usually takes less than 100ms).

If your example, the VMM is crashing early on because the amount of RAM configured (16 MiB) is so small that the kernel doesn't fit in.

makorne commented 1 year ago

I know. That just easy crash example. My real containers start program and works endless. While they not crash by some reason. :( So I need check this all times and sometimes restart .

I try to find more stable and less huge by memory variant than standart podman. That important because I need thousants of vms. But looks like for my case microVM has no advantages?