MiniOne and LXC Setup. Unable To Boot LXC Container

I’m currently new to OpenNebula and just started with MiniOne. I was able to deploy mini one successfully and attach an LXC (LXD) node. Knowing that LXD is being deprecated I didn’t install any of the node packages for lxd. I did however install LXC packages and everything so far is swimmingly.

However, I still can’t instantiate an LXC container. Based on the errors I’m getting from oned.log. It looks to be a storage error… maybe.

Command execution fail: cat << EOT | /var/tmp/one/vmm/lxc/deploy ‘/var/lib/one//datastores/0/14/deployment.0’ ‘thehub.home.local’ 14 thehub.home.local
Wed Jul 7 19:33:02 2021 [Z0][VMM][E]: deploy: Cannot detect block device from /var/lib/one/datastores/0/14/mapper/disk.0
Wed Jul 7 19:33:02 2021 [Z0][VMM][E]: deploy: Cannot detect block device from /var/lib/one/datastores/0/14/mapper/disk.1
Wed Jul 7 19:33:02 2021 [Z0][VMM][I]: lxc-destroy: one-14: tools/lxc_destroy.c: main: 242 Container is not defined
Wed Jul 7 19:33:02 2021 [Z0][VMM][I]: mount: /var/lib/one/datastores/0/14/mapper/disk.0: wrong fs type, bad option, bad superblock on /dev/nbd0, missing codepage or helper program, or other error.

Like mentioned before, I’m brand new to this game so I didn’t set up any other storage backends… I also couldn’t find anything that indicated I needed to.

I did see this in LXC Driver page, but I’m not sure what this means.
Datablocks require formatting with a file system in order to be attached to a container.

Versions of the related components and OS (frontend, hypervisors, VMs):
Running on Ubuntu 20.04 in Node lxc and 18.04 for Minione

I’m sure I’m just missing something.

Hi @a_v,

Which image are you using for deploying the container? How did you create the image?

Hey @cgonzalez,

I’m using the ubuntu_hirsute - LXD image from the Linux containers market place. Are we supposed to build our own images for LXC?

Thank you.

Hi @a_v,

I think there’s a problem with the image, could you get the image location: oneimage show <img_id> | grep -i source and mount it somewhere to check the content? Once it’s mounted it would be useful if you can share the output of ls -l in the directory where the image is mounted.

Meantime if you want to try with other images maybe you can try one from another compatible marketplace (e.g DockerHub). You can found a tutorial for a simple nginx image here: Running Containers — OpenNebula 6.0.2 documentation

Hey @cgonzalez Ran through the tutorial documentation and the same problem exists. So I’m not thinking it’s not the image so much as there is something that I didn’t configure or might not have right? I’m also using this on a physical machine that is not was not provisioned by FireEdge if that helps.

It feels like it should just work right out of the box.

Thank you,
Adrean Vianna

Looks like I got it working. I was trying many diffrent “Virtualization” technologies on this one host. It looks like I ended up removing the node package for lxc along with the others. Once I rebooted the box and added lxc node package I was able to run DockerHub images. I can’t seem to run any other lxd ones though, but I would imagine that’s because those images must have some magic that open nebula must not like.

Well anyways thank you!