Ultra light VM just for testing: ttyLinux!!!
Have you ever tried to testing you own Virtualization cluster on top of a virtualization platform?
If you did, yo may know how bad it turns everything, after successfully created your cluster of hypervisor nodes, when it comes to create a VM to test.
Even a barely empty Linux install, with just cli, when it comes from the classic Linux distributions, it includes a lot of packages and ends up eating too much RAM and CPU... specially if you're virtualizing over virtual hypervisors!!!
So, we do have several really lightweight Linux Distributions out there, and mention Damn Small Linux is a must there... but, for the purpose of my tests, I even wanted something even lighter!!!
Since I've being testin PROXMOX 4 cluster of machines (including CEPH storage) over VirtualBox, the tricky thing is as it comes to test High Availability, or VM hot moving from cluster node to cluster node, making live snapshots and things like that.
Basically, I needed an VM instance that basically boots to a very basic bash and has networking capability, in order to ping it.
The idea was to find out a kind of Linux machine that could be the equivalent to CISCO's Packet Tracer test PCs for my labs.
Most Ultra light Linux distros come with a GUI and several utilities on it being too complicated for the intended usage.
My idea was to find something in the fashion of Minix or muLinux since, at the end, testing mainly consists on verifying ICMP echo reply as the VMs are started, stopped, moved, backed up, and so on.
But those distributions were so primitive that I was (and still I'm) skeptic that it would be and easy task to make them run on top of VirtualBox, KVM o QEMU.
So, I found what I was really looking for: ttyLinux.
This distribution runs perfect on top of VirtualBox and PROXMOX, and it is really light:
It would fit on a 64 Mb virtual disk, although I use 128 Mb to give it some margin.
Also, it runs at light speed with just 60% CPU of a single core and 64Mb of RAM (probably it could run with less resources).
It is easy to install, yet there was a problem it took several hours to me to figure out...how to enable networking on the damn thing!!!
So, after some digging on the documentation and the forum, it turns out that it is necessary to add the "enet" parameter at boot prompt:
So, when booting from the CDROM iso, you'll have to type at the prompt "ttylinux enet"
ttyLinux, networking and lilo
The problem is, that after install, you'll end up with a VM, with lilo bootloader, that is very hostile to boot with networking enebled (lilo prompt is invisible here, so you have to type blindly "ttylinux enet" when lilo shows up) and impossible to perform unattended booting with networking enabled.
The solution was to reconfigure lilo, which was a piece of cake:
I just needed to add "params = "enet"" at
Then run lilo on the prompt to apply changes, and that's it!.
So, I thought it would have been much easier if some VM images would have been available to just download and import... So, I decided to make snapshots of ttyLinux in VirtualBox and PROXMOX (KVM) just after fresh install, but including just lilo tweaking so those VMs automatically boot with networking enabled!
So, if someone is interested, here are the images:
VirtualBox .ova image /downloads/ttylinux.ova
Proxmox (KVM) .vma image /downloads/ttylinux.vma.lzo