If you are a seasoned veteran in the world of networking, servers, and home labs, then Virtualization or Virtual Machines (VMs) are nothing new. But if you are new to this exotic new digital world, then here are some introductory uses for Virtualization. We're focusing on servers since Virtualization is optimal for servers – they are designed modularly with the capacity to upgrade their processors (you'll see why that's important). But Virtualization is not limited to servers and can be implemented on any high-performing hardware system.
What exactly is Virtualization
In the simplest terms, think of Virtualization, or a Virtual Machine, as a computer within a computer. If you think of a traditional desktop or laptop, it runs on a single Operating System, and that OS is tied to the system's hardware resources. In Virtualization, a type of software called a Virtual Host Machine allows you to create a new virtual computer within that host computer with all the same features as any computer, e.g., network IP, its own OS (which can be different from the host OS), etc. These VM Host applications allow you to map the hardware resources of your system to the virtual machine emulator.
As you can imagine, having a "computer inside a computer" allows you to do things – and take risks – that you would typically not want to do with a system running a single OS. For example, as we'll see, if you experience a system crash in a virtual environment, the consequences are minimal compared to if your laptop's OS crashed (Spoiler Alert: the latter would be Game Over).
Four General Things You Can Do with VM's
While this is by no means an exhaustive list, here are our four buckets of interesting opportunities in using a VM.
A chance to experiment with trial & error (and the 'error' part is ok because when things break and crash, it's contained in the VM!)
Perhaps the most significant advantage to utilizing VMs – especially for home lab users – is the chance to tinker and play without the fear of doing damage to your primary system. For example, have you ever wanted to give Linux a try but don't want to impact your main tasks while familiarizing a new OS? Create a VM and install Linux there – done! You can learn and experiment with Linux without having any impact on your host OS.
Use older Apps or Different versions of Apps
Do you have a legacy program that will only run on a 32-bit OS? You can create a VM running that 32-bit OS and run your program there.
Additionally, many software manufacturers do not allow different versions of their applications to be installed simultaneously. By having a virtual environment, you can run the latest version of a particular application in one VM and then an older version in another.
Backups
Since a VM is a fully contained OS, you can create backups, snapshots, or clones of other machines or images in a secure and isolated virtual format. Just be sure to follow backup best practices.
For the small business owners: you can get additional mileage out of older equipment by converting them into Thin Clients
A Thin Client is a specific type of computer that runs not off of the OS saved on its local drive but rather off a server. This server does most of the Thin Client's work, and it needs only a reliable network connection to the host server. Since the server is doing most of the work, the Thin Clients' hardware requirements are minimal, and you can get extra life out of older equipment that might otherwise not have the horsepower to run as a standalone host machine.
Tips for running VMs
- Make sure your licensing is in order! Especially with Windows, each VM you spin up and install Windows on it, that software needs to be licensed. There is no difference between a physical and virtual box! On the hosting-side, if you utilize Microsoft Server, keep in mind it is licensed by cores.
- Make sure you have enough cores for however many VM's you plan to create. Each VM requires, at minimum, a dedicated core to run. For example, if you have a 2-processor system and each processor has eight cores: that is a total of 16 VMs you can create.
- Don't skimp on RAM. While you don't want to over-allocate RAM to a specific VM, at the same time, virtualization machines should be loaded with significant RAM when creating the build.
- Refurbished servers are an excellent means for Virtualization. You can get the cores and RAM needed to run the VMs but at a fraction of the cost of buying new.
Are you building a server to host a bunch of VMs? Unsure of requirements and specs? That's why we're here! Please email us at info@techmikeny.com, and one of our techs will get back to you on suggested builds!
1 comment
Great post! As you start learning about virtualization a few terms that may come in handy: Host – the physical server and the OS that physical server will boot from (Windows Server, VMWare ESX, or Hyper-V server are the bigger names out there)
Guest – the virtualized instance of an OS, can be Windows, UNIX, LINUX, or any operating system running in your virtual machine server.
Virtualization engine or virtual machine server – The thing your physical server loads or the OS your physical server loads to allow the creation of shared resource pools that you can share out to your virtual machines. Also called a virtual machine server. Can be an OS as in the case of VMWare ESX or Microsoft Hyper-V server, or it can be an application server running on your physical host OS as in the case of a Windows 2016 Server running Hyper-V services.
Virtual server – a server-based OS running within your virtual machine server :-)
Virtual machine – any configured bootable operating system used by your virtual machine server to boot an OS kernel. Windows 10, Ubuntu, pretty much anything you can boot a computer with, you can virtualize.
You can also uses virtualization tools like VMWare ESX to boot on Apple hardware and then you can create virtual machines with Apple OS X versions. Only works on the Intel based Macs, not the Apple A5 CPU.
Now I’ll wait for Mike to start a blog post on data virtualization because that’s where the fun gets going, LOL.