Introduction to Virtualized Home Labs and Why You Should Have One

What is a Virtualized Home Lab

A virtualized home lab can give your career a boost by enabling you to learn how to install, configure, operate, and maintain cutting-edge technologies that are in demand in the IT market.

A home lab is combination of hardware and software used to learn how to install, configure, operate, and maintain current technologies for training purposes. A virtualized home lab is similar but uses virtualization technology to keep the hardware, space, and power requirements for the lab to a minimum. Instead of 5 physical servers, a home lab might have 1 physical server, know as the host, running 5 virtual servers, known as virtual machines.

An example of a home lab might be a micro server, network attached storage (NAS) device, and networking equipment running several virtual machines(VM's) on the VMWare ESXI hypervisor platform. The virtual machines could be an Web server, database server, and application server working serving an Web application that the user is training on, or perhaps testing.

Don't worry if this doesn't make sense. Just remember that the home lab lets you try out different hardware and software scenarios on the cheap. ?

Why do you need a virtualized home lab?

Home lab's are helpful in giving your career a boost by letting you learn about technologies that you would otherwise not have the opportunity to work with. While some employers promote professional development by offering on site or offsite training, online course subscriptions, employee-led training, or encourage employees to do regular training on company time, others do not accommodate training at all. How can you advance your career if you are not learning?

Another reason you may want a home lab is to learn about technology that your employer currently doesn't use, but you think will give you a leg up in your current position, or help you move into a different field that you interested in.

The home lab gives you freedom and choices that your employer's network may not. From running rogue software, trying interesting configurations, to crashing systems, the sky is the limit with your home lab.

How do I build a home lab?

There are a mind-boggling number of ways to build your lab. I'll cover the major types, and then I'll show you my setup and why I chose it.

The Physical Lab

HP uServers, switch, and storage makes a lab

This is the original kind of home lab, with a large number of physical machines. These range from server-class systems and network equipment purchased from eBay to second-hand equipment  left over from an employer's  infrastructure upgrade.

This kind of lab can be useful if your focus is on learning how to work on server class system hardware. It's also useful if the devices that you need to work with are not available in a cloud environment, such as a Cisco or F5 hardware appliance.

Intel NUC - I once ran my entire lab on one of these!

Pro's

  • Access to hardware that cannot be virtualized
  • Get hand's on experience with the real deal. You can't learn to rack systems and run cables with VM's.

Con's

  • Requires a lot of space
  • Uses a lot of power
  • Makes a lot of noise
  • Can be expensive to purchase
  • Resource management isn't very flexible. You can move hardware between machines or buy more hardware to meet your resource needs. That's about it.

The Virtualized Lab

This kind of lab minimizes the amount of hardware that you need by having a single physical, or 'bare metal' system host several, sometimes over a hundred, virtual or 'software-defined' systems. This type of lab is good if you are studying virtualization in general or don't need to be familiar with any particular hardware platform. This is currently my favorite because it's low cost and flexibility.

What makes up a virtualized lab

  • Host -- A physical virtual machine host server that will run the  virtualization software.
  • Hypervisor -- the virtualization software that manages the CPU cycles, memory, storage, and network access that the virtual machines need. Examples of hypervisors are Xen, KVM, Proxmon, VMWare ESXI.
  • Data Store -- this is the local, direct attached storage ( DAS ) or network attached storage (NAS ) where Operating System disk images, Virtual Machine files, and other files needed to run the virtual environment live. Examples of data stores could be Drobo 5D(DAS) or a Synology NAS disk array.
  • Network Equipment -- This is the switch and router hardware need to network the other devices together , give them access to the Internet, and to give you access to the virtualization environment.

An example of a virtualization setup is PC host system running VMWare ESXI 6.x hypervisor( free for home use ), a network attached storage (NAS) device to store the virtual machines, and a switch to network the devices together.

Pro's

  • Doesn't require as much space as the physical lab
  • Doesn't use as much power as the physical lab
  • It's easy manage servers since they are software defined. A lot of the management tasks can be completely automated.
  • It's a lot quieter than a physical lab, 100 virtual machines on a host machine are much quieter than 100 physical machines!
  • There is a lot of potential to automate resource management.

Con's

  • Hypervisors can be picky about the hardware that they will run on.
  • Hypervisor's can have a steep software learning curve.
  • Licenses can be expensive, and you may need separate licenses for tech support, backups, and other features.

Intel NUC - I once ran my entire lab on one of these!

## The Cloud based Lab

This option is the next logical progression for home labs. I haven't worked with cloud technology yet. I've take a course at Lynda.com and have created an Amazon Web Services(AWS) account to prepare to learn. I'll go into detail on how to set up and use the technology in another post, after I've actually used it :smiley:.

For now, I'll limit the discussion to what I know.

There are several choices for cloud-based labs, the current king of the hill is Amazon Web Services. Microsoft Azure, Google Cloud, RackSpace. I recommend learning AWS as it will give you the best return on your investment.

Pro's

  • Experience with cloud technologies is in heavy demand, so it looks great on your resume.
  • Doesn't require dedicated equipment. You need Internet access to manage and access your cloud-based machines.
  • Doesn't use any power.
  • It's easy manage servers since they are software defined. A lot of the management tasks can be completely automated.
  • It's extremely quiet since the systems are not in your home!

Con's

  • Requires Internet access. If your Internet connection goes down, you cannot access your lab. If you pay for the data you use, which is normal in many countries, a cloud-based lab will run up your data cost.
  • It can be expensive. the cloud provider charges for storage space.
  • network services, and server time. The estimated cost for a single bare-bones Centos server with AWS is $10/month at the time of this writing. Now imagine the cost of running a dozen servers in your lab!

Running Web Server in AWS

What's Next?

While the cloud-based is a shoe-in to replace the virtualized lab, the cost of operation will need go down before it becomes widely adopted for this purpose. For this reason, I decided to go with a virtualized lab as my primary environment and keep usage of a cloud-based lab to a bare minimum. Despite the cost, cloud-based computing is becoming an essential skill to have for the DevOps Engineer. I'll cover it in a later post.

In the next entry in the Home Lab post, I'll show you how I set up my home lab to give you a leg up with building yours.