What is a virtualization server? Why would you want to build one? How do I build one? How long does it take? Is it really worth it? Where’s Waldo? These (and many other) questions will be answered in this series… let’s start!
What is a Virtualization Server?
Simply put, a virtualization server is a computer that creates other computers… out of thin air! Magic, right?
Okay, not really out of thin air, but it’s still pretty darn magical. Virtualization is technically the emulation (to imitate or mimic) of hardware (physical components of a computer) via software (a program or set of instructions). In plainer terms, a virtualization server takes its own hardware- the physical parts of itself- and uses portions of it to create an (almost) completely separate computer inside of itself! No- it doesn’t actually move the hardware around to build another physical computer, but it borrows from in-place hardware and creates a virtual environment for those borrowed pieces to function as one cohesive unit, but separately from its own normal operations. This is called a virtual machine (VM for us geekier folks).
To accomplish this, the physical server- called the host– has to not only borrow those basic parts of itself, like CPU cores, RAM and storage (the thinking and remembering parts), but also has to connect those things to make them operate in concert with one another. Since it can’t create a brand new physical motherboard or computer chip out of nothing, it creates a connection through software pretending to be physical hardware. This is virtualized hardware. For instance – this virtualized hardware takes raw computing power in the form of CPU cores from the server and programmatically makes it operate as if it were a completely independent CPU chipset. whenever the virtual machine is “turned on” it basically cuts out a part of its own brain and gives it to the VM!
So a virtual machine is a computer that is imagined by another computer (the host server). A VM is also known as a guest on the host server. It’s a bit like the theory that we are all just slivers of a greater consciousness living in a dream, believing we are all separate individuals, but really belonging to a greater whole – the dreamer. Very meta!
If you want to really blow your mind, think about how we (the dreamed up people) can have our own dreams – so, too, can virtual machines have their own virtual machines!
But that’s a whole other post. Let’s stick to the first layer of mind-boggling-ness that is virtualization…
Why Build One?
So now we know, in a general sense, what a virtual server is and what it does… why would we ever want to build one? What can it do for you?
First and foremost – it can run services! Now that may not be too exciting a statement at first but, imagine if you could-
- Watch a movie from your personal collection anywhere, any time, like your own personal Netflix service.
- Have an entire e-book library complete with thousands of books available to you via a few clicks in a web browser.
- Block a large majority of ads from taking up space on your desktop and mobile devices screens and annoying you with constant pop-ups.
- Have your entire music collection available to you – your very own spotify!
- Save all of your important files in one place and have access to them from virtually any device.
Sound too good to be true? Well, all of the above examples and more I am personally running on my own virtualization server at home.
What’s more is that each of these services are operating in their own VM, which keeps a separation of concerns when it comes to maintenance. For instance, if I just had all of these services running on one computer, if I needed to restart the computer for any reason, all of the various services would have to be restarted. This can have a few consequences. However, thanks to the magic of virtualization I can restart each of the VMs these services are on independently. Also, if something goes awry on a given VM, only that one VM is compromised.
One of the other major benefits for me is space.
While I may long for a server rack full of fancy equipment, tons of RGB LEDs and whirring CPU fans, it’s just not currently realistic. I live in a small townhome with my wife and kids. And I’m not exactly a high roller in the finance department yet, either.
So imagine my joy at being able to put all of these various services into one box – no rack required- and achieve the same results… with room to grow even more machine services without spending extra money or taking up extra space!
If you’re interested in having a “home lab” (a safe place to play and experiment with technology) but have budgetary and space constraints, then welcome – this series is for you!
Ready to dive into building your own home virtualization server? Check out Part 2 of this series!
- Host: The physical server that will provide raw computing resources (CPU cores, RAM, Storage, etc.) to the guest virtual machines.
- Guest: A virtual machine on the host server.
- VM: A virtual machine.
- Virtualization: The emulation of a physical computer by means of software mimicking hardware and its architecture.
- Separation of Concerns: A concept in computer science. In this case it refers to the isolation of services on separate VMs, which creates a more modular and malleable system with regard to maintenance, updates, backups, etc.
- Home Lab: A space to experiment with technology safely. Originally these home labs were largely sought after by IT professionals to experiment with Enterprise level software and infrastructure without risking crashing a business environment, so they re-created a similar environment at home. The term has since grown to include anyone that wants to play with technology on a larger scale than a standard Desktop computer could provide.
Benefits of a Virtualization Server:
- Separation of concerns
- Saves space. An entire rack of equipment can be shrunk down to one physical device.
- Reduces monetary investment while maintaining broad range of capabilities and options (different operating systems, hardware combinations, configurations, etc. become fairly trivial to execute)