After the latest test-cycle for NethServer-arm 7.7.1908 I started dreaming of a test environment in wich you can run and snapshot armhfp (32bit) and aarch64 (64bit) virtual machines. Full emulated-virtualization on x86_64 is to slow to be practicable.
However after some reading it may be feasible to run aarch64 hypervisor. No emulation for arm32 is needed as armv8 (which includes aarch64) is backward compatible with armv7.
Moreover a first exploration proves it is worthwhile to pursuit. (1)
Problem is i’m a complete noob is these matters. Still trying to grasp how kvm, kvm-qemu, libvirt and virtsh work together in my first prove of concept
Has somebody setup hyporvisor / VM-enviorment before from scratch? (I mean from the command-line using general availible packges) - if so:
Which dirsto? ATM in considering debian/ubuntu or arch linux arm because of matured arm support. - and:
Which tools/packages ?
what is the preferred disk format, ATM using qcow2 (ZFS is out of the question on a tiny arm SBC… could LVM2 be a solution?
Any info/ directions / further-reading are welcome !
Played around with my - i do not completely understand how it works - VirtualMachine.
It works like a charm ! Excuses for my excitement but running a arm 32bit VM with Nethserver installed running a DC in a container on a arm64 bit Raspberry PI … is cool.
Has no use case other than testing , still amazingly cool.
QEMU can actually “emulate” CPUs, AFAIK even a PPC based CPU would be possible. Albeit REALLY slow, to slow for certain timing operations (timeouts, etc). How much of that would work within KVM, which uses QEMU, is beyond my knowledge.
With virt-manager you are surely headless. You install virt-manager where you install the browser (i.e. on your laptop). It then connects the hypervisor host with SSH.
To run commands directly on the hypervisor host console, there is virsh for start/stop/snapshot operations. However it is a bit difficult to edit those xml files directly for more advanced tasks like creating and configuring a new VM.
I’m a hardware guy, a (virtual ) serial-console works too - needs a argument in the kernel command line but that is common stuff for the hardware guy’s -
Basically with the direction of @davidep i’v got what i need: can clone and snapshot.
The virt-manager makes it supper easy to point to those external kernels and initramfs’s, it is not worth perusing booting the kernel inside the image.
Now to a “production” state: make rpi4 el8 less experimental and installing the lot fresh on a (usb3) UAS attached ssd.