firecracker-microvm / firecracker-containerd

firecracker-containerd enables containerd to manage containers as Firecracker microVMs
Apache License 2.0
2.1k stars 180 forks source link

Error in starting a container on arm64 #395

Open michael2012z opened 4 years ago

michael2012z commented 4 years ago

Although arm64 architecture was not formally claimed supported, it may be worthy to try and to see what's happening there.

I tried to follow the get-started page (https://github.com/firecracker-microvm/firecracker-containerd/blob/master/docs/getting-started.md) on an arm64 server. Everything (building, installing, starting daemon and pulling image) was OK until the last step to start a container.

The kernel and rootfs image mentioned in the page seems x86 specific, so I used files introduced in Firecracker get-started page instead:

The error was:

WARN[2020-02-20T08:50:53.955256915Z] firecracker exited: exit status 1 runtime=aws.firecracker vmID=9e63deea-94c3-46ad-b7d4-136074265861 ERRO[2020-02-20T08:50:54.016395902Z] attempt=5 error="non-temporary vsock dial failure: dial unix firecracker.vsock: connect: connection refused" runtime=aws.firecracker vmID=9e63deea-94c3-46ad-b7d4-136074265861 ERRO[2020-02-20T08:50:54.016551121Z] error="failed to create VM: failed to dial the VM over vsock: non-temporary vsock dial failure: dial unix firecracker.vsock: connect: connection refused" runtime=aws.firecracker vmID=9e63deea-94c3-46ad-b7d4-136074265861 ERRO[2020-02-20T08:50:54.017007519Z] failed to stop vm "9e63deea-94c3-46ad-b7d4-136074265861" error="os: process already finished" runtime=aws.firecracker vmID=9e63deea-94c3-46ad-b7d4-136074265861 ERRO[2020-02-20T08:50:54.017711722Z] error="shim CreateVM returned error: rpc error: code = Unknown desc = failed to create VM: failed to dial the VM over vsock: non-temporary vsock dial failure: dial unix firecracker.vsock: connect: connection refused" DEBU[2020-02-20T08:50:54.023210156Z] shim has been terminated error="signal: killed" vmID=9e63deea-94c3-46ad-b7d4-136074265861

kzys commented 4 years ago

Thanks for reporting the issue. I'm always curious about the ARM64, but haven't tried that by myself.

firecracker-containerd's rootfs must have our own agent. Using Firecracker team's rootfs wouldn't work. Building our rootfs on aarch64 would be the easiest way to go.