Using virtual manager KVM we can make it work by choosing the correct OS Generic or unknown OS. If we chose something else, we get the same problem. So this might be a lead. Is there something equivalent in LXD? Can we specify OS when launching the image?
As @joakimnyman said. Perhaps this might also somehow be related to how and what the image is allowed to do on the disk/device side of things and perhaps modifying permissions/settings would allow us to have the appliance work as expected.
E.g. We would like to figure out what makes the file-config fail for us with the LXD launch vs the QEMU launch above and if we can fix it without surgery.
@tomp we know that we got it to work with virt-install and that the command above mentioned works. Its when we use Generic or unknown OS as @joakimnyman mention above that it works. E.g. we would like to know how we can replicate that behavior with LXD.
@tomp its strange for us aswell. We can’t understand whats going on here.
We are investigating how we can mess with the qemu config for the instances but we would really appreciate some assistance here as its a major blocker for us how to get this working and not have to run a full virt-manager to compensate…
I don’t know as don’t know what that item means.
I would suggest focussing on what errors are occurring inside the appliance that are preventing writes.
This is indeed our conclusion after some further testing. It seems we can get it to work if we set the bus to SATA or IDE, which is why it worked when we used generic or unknown os.
We don’t believe the applicance supports virtio-scsi… BUT - it doesn’t make any sense to us, since the image seems to work “partially”. I mean, the vm shouldn’t be starting at all if this was completely unsupported…
Is there any workaround for this in LXD (while we try to convince the appliance maker - Haproxy - to support it)?
The ALOHA image comes only with a reduced set of Linux drivers. Please use SATA or IDE disk to let Linux attach the proper driver during the PCI bus probing. Same for Ethernet Driver
Once the image has been started, it runs in ram but somehow saves stuff to a /flash directory which is mounted as part of that “config save” command within the image.
The ethernet-driver mentioned in the comment seems to work.
So basically, we had to revert from this since the appliance itself isn’t yet supporting modern device-drivers (virtio-scsi / nvme) and there seems to be no way to tell lxd to use SATA/IDE.
We are stuck in a bad place here.
So, our only way to move forward is to use qemu straight on the bone of the machine. Super awkward but I guess nothing we really can do about it.
We will have a discussion with haproxy about the situation, as their software is really what we like to be able to run. But that has little to do with the situation.
I would however be curious how future support in LXD will take into account that SATA still at least isn’t phased out / legacy.