It's 2012 and virtualization technology is rampant in clouds and admins are choosing to use this option. As such,I did an investigation on the exact differences and check if there really are any performance gains.
I used these results to end up using the "Install a minimal virtual machine" option and have been since Jan 2012 without any issues.
Lab
I just setup two vms (one optimized the other not) using 10.04.4 in Parallels to investigate.
At least as early as Ubuntu 8 (I'm not 100% sure), the Ubuntu installation there allows the administrator to use F4 and select from a number of options some of which are,
- Normal
- Install a minimal system
- Install a minimal virtual machine
According to the Ubuntu FAQ,
The virtual kernel only includes the necessary drivers to run inside popular virtualization technologies such as KVM, Xen, and VMWare. The server kernel in contrast contains the necessary drivers to work with a wide range of hardware, and should be installed directly on host systems. Other than that, all other options are identical between the server and the virtual kernel.
Note though, that it is still a minimal install so the "Basic Ubuntu server" task packages are missing.
So in theory, the minimal virtual machine option should be used if you are using virtualization technology. The gains would be a faster kernel without the bloat of consideration for many types of drivers. This is because the hardware list in virtual machines is much smaller.
Conceptually this is similar to the Stripped Solaris approach I refined from Tony Bates back in 2008. Since 2013 Gogole others have taken this idea further (CoreOS, Ubuntu Snappy, Redhat Atomic) with the concept of core operating systems with the key benefits (again some borrowed from Solaris),
- Operating system upgrade supports transactional upgrade/rollback | Solari had this from way back.
- Traditional package managers replaced by new simplified systems (Snappy), or custom image builds (Atomic) | Yeah we did the same.
- Security enhanced through isolation.
- systemd for system/service management
Results
Here are the differences between a minimal virtual machine, minimal and normal all with ssh during initial setup. The following commands were used,
dpkg --get-selections | wc -1 # how many packages installed free -h # how much memory used ps aux | wc -l # how many processes (including the two to run this command) df -h | grep root # how much disk used (not going to bother counting the small 30MB for boot
Ubuntu 10.04.4
Attribute | Minimal Virtual Machine | Minimal | Normal | Recently Ubuntu Snappy 15.04 | Stripped Solari 10 (Just for Fun) |
---|---|---|---|---|---|
Packages | 213 | 313 | 356 | 2 core packages containing minimal utilities | |
Tasks | 84 | 85 | 87 | 174 | |
Memory on Initial Boot | 73,980k | 86,584k | 171,392k | 167,051 | |
Disk Space | 557M | 791M | 851M | 639M | |
Key Advantage | Reduced fat due to uniformity of virtual machines. | Minimal to run a normal Server. | Upgrade core OS as 1 package and revert btw OS upgrades quickly. Made for pure Cloud. |
Ubuntu 16.04.1
Attribute | Minimal Virtual Machine | Minimal | Normal | Standard | Microsoft Azure Default Image |
---|---|---|---|---|---|
Packages | 247 | 439 | |||
Memory on Initial Boot | 39 MB | 113 MB | |||
Tasks | 164 - 2 (to run the command) = 162 | 154 -2 = 152 | |||
Disk Space | 757 MB | 1.9 GB (need to double-check this on a fresh install) | |||
Key Advantage | Reduced fat due to uniformity of virtual machines. | Minimal to run a normal Server. |
References
Provided what the differences between the installs are - http://askubuntu.com/questions/57336/minimal-system-or-minimal-virtual-machine-on-install