Getting older, not necessarily wiser!
Current events have caused me to build a virtual home compute network. This is mainly due to delaying a move (for a variety of reasons) to a new location, after shipping much of my current equipment. This means I am severely limited in the number of toys available. I am not sure when the move will take place, but I found myself in need of an alternate setup.
My solution was to create a virtual network. This type of setup doses work, with a couple of advantage and disadvantages. I am taking some time to document my experiences and observations.
One of the first, and obvious insights, was virtualization is never going to be as good as having actual hardware. The computer I am using doe shave options in the BIOS for virtualization, even though the system is several years old. With my current hardware, I found I could run several virtual machines at once. However there were some performance issues. Performance could be improved by assigning more resources to each virtual machine, pulling resources away form the host.
In the terminology of the virtualization software I am using, host is the computer and operating system itself, and client is the virtual machine running on that system.
On the system I currently use, I found that best and least expensive way to improve virtual performance was to increase physical RAM.
For example, if you are running Windows 10, it requires two gigabytes of RAM as a minimum. Four gigabytes would probably be the minimum you want for smooth operations. Linux with a GUI can run in two gigabytes with no issue.
Lets say you are running a virtual system on a Windows 10 based computer (4GB). Lets say this virtual system consist of a Unix router client (1GB), A Linux Desktop Client (2 GB), and a Windows Desktop Client (4GB). This would total to 11GB, meaning you would need 16 GB of physical memory.
Available processor cores is another factor. My current CPU runs four cores and is hyper threaded. So I can assign one or two cores to several virtual clients, and still have enough cores for the host to use.
One big advantage I found to virtualization is the amount of space I am saving, and how much cleaner my work area looks.
Currently I have four virtual machines and a virtual router setup, and running on one computer. I have my primary computer and my virtualization computer sitting side by side, instead of having a computer for each virtual machine. That’s two computers versus six computers, with the corresponding reduction in cabling.
Deployment is another interesting advantage of virtualization. I have several base builds that I normally do not run. Instead, when I need a new virtual machine for a specific purpose, I clone a base build and then modify it. This saves an hour or two of time not having to rebuild a base system each time I want to build an additional computer.
Currently I am using Virtual Box, a type 2 Hypervisor. This means I need an operating system running, and taking up resources, on the host computer. I am making a note to myself to try a type 1 Hypervisor the next chance I get. A type 1 Hypervisor is a bare metal emulator for virtualization, reducing the resource demands of the host operating system.
While virtualization will never replace actual hardware for raw performance, it is a viable option in most cases. Just remember, your hardware has to have enough power to support virtualization.
If you have a multi core threaded CPU and lots of RAM, I highly recommend giving virtualization a test drive.
I plan on writing a future post on my current setup using Virtual Box. And I plan to setup a Hypervisor for testing once I get moved, and have access to the rest of my hardware.