home lab

XCP-ng: Home Server Build with Citrix Hypervisor

The possibilities are endless when you consider setting up your own home lab, including using multiple hypervisors and playing around with each feature. From running your own server for web hosting and experimenting with media servers to diving deep into Kubernetes, it’s a journey that’s both exciting and rewarding. Many are familiar with VMware vSphere and open-source hypervisor Proxmox for home labs. However, more are learning about and want to experiment with XCP-ng. I want to take you guys through a few of the basics with XCP-ng and how you can use it for a home lab server build.

Why XCP-ng for Home Labs?

XCP-ng is a great hypervisor for home labs that many may feel is a little closer to a VMware-like experience with the Xen Orchestra interface that allows fairly easy management of your XCP-ng environment.

It allows you to host a virtual machine or many VMs to test Windows, Linux (Ubuntu Server as an example), and other operating systems. XCP-ng offers flexibility and scalability with many enterprise features like cloning, built-in backups, snapshots, XO SAN, etc., and connects these network devices effectively.

Xcp ng is an excellent open source hypervisor
Xcp ng is an excellent open source hypervisor

Home labs are great for testing and having a sandbox environment and running test labs in a contained environment like XCP-ng offers peace of mind. You can experiment without affecting your main production equipment or compromising your internet access.

The software can run on various hardware, from a Raspberry Pi to a high-end server. If you’re starting a Mini PC (often built as a gaming PC) is a great way to have a “server” and low power bills with power efficiency and have fairly easy cable management. Home lab servers running on mini PCs allow you to run a full-blown home lab with multiple VMs, media servers, web servers, and more and have these services available at all times without spending thousands of dollars.

Building the XCP-ng Home Lab: A Cost-Effective Venture

Beyond the initial hardware investment, considerations like power consumption come into play. You can monitor and manage your power bill effectively depending on the server and the number of virtual machines you run. But again, choosing efficient hardware is key to not having exorbitant electricity costs.

You can also download XCP-ng for free, install it on your home lab hardware in a few minutes, and start creating your first virtual machines.

Download XCP-ng from here: XCP-ng – XenServer Based, Community Powered.

With XCP-ng, you can always add more virtual machines, integrate additional network systems, add additional hosts, etc.

XCP-ng Home Lab Tips and Tricks

Let’s go through a few XCP-ng home lab tips and tricks to start building your home lab server.

Installation

Start with downloading the latest stable XCP-ng release. Once you’ve got it on a USB drive, booting up your server and following the instructions will set the core system in place.

Boot from the xcp ng iso
Boot from the xcp ng iso

Here you see that I have an NVMe drive available for installation.

Choose your target storage
Choose your target storage

One of the choices you will be able to make is how you wat to setup your storage. You can choose between LVM and EXT. Note with EXT you can do thin provisioning but it is a little slower.

Use ext for thin provisioning
Use ext for thin provisioning

Setting up your XCP-ng password.

Set and confirm your password
Set and confirm your password

The network configuration screen.

Network configuration options
Network configuration options

Setting XCP-ng to a static IP address.

Setting a static configuration
Setting a static configuration

At the end of the installation and ready to install (Note I haven’t shown every single screen to the last screen but the installation is very intuitive).

Beginning the installation of xcp ng
Beginning the installation of xcp ng

The installation begins.

Xcp ng installation proceeds
Xcp ng installation proceeds

Remove the media and reboot the server to complete the installation.

Xcp ng installation completes successfully
Xcp ng installation completes successfully

Below is a look at the console of the XCP-ng server.

The xcp ng host is booted
The xcp ng host is booted

Creating a Storage Volume

After XCP-ng’s installation, creating a storage volume becomes crucial. Whether you’re storing data for VMs or setting up a media server, ensure you’ve got ample storage.

Thin Provisioning

To maximize storage utilization, thin provisioning is the key. It ensures that virtual machines use only the storage they need, optimizing your resources. As mentioned earlier, you will want to use EXT for thin provisioning.

Choosing ext for thin provisioning
Choosing ext for thin provisioning

Installing Xen Orchestra (XOA)

Xen Orchestra is crucial for managing your XCP-ng setup. The web-based interface provides an easy way to control, monitor, and test your VMs and servers. To install Xen Orchestra, the process is straightforward. Browse to the IP or FQDN of your XCP-ng server and pull up the page. You will see the option for Quick Deploy.

Browse out to the web interface of your xcp ng host
Browse out to the web interface of your xcp ng host

On the Quick Deploy page, set the configuration for the XO VM, including the storage and IP address information.

Configuring the xen orchestra installation
Configuring the xen orchestra installation

Set the user credentials.

Deploying xen orchestra
Deploying xen orchestra

After XO is deployed, you can browse to the login screen.

Xen orchestra installation completes and browsing out to the xo interface
Xen orchestra installation completes and browsing out to the xo interface

Running Xen Orchestra updates

Now we can login to XO and run any updates that are available. After logging into XO, you can navigate to the XOA screen and check for updates. Most likely, it will prompt you for this proactively. ***Note*** you do need to “register” with Xen orchestra to do this. Just follow the prompts to register and update.

Running available xo updates
Running available xo updates

While there isn’t a native dark mode, there are several plugins out in the store that will allow you to effectively be able to do this.

Swapping to dark mode with plugin
Swapping to dark mode with plugin

Creating ISO Storage

Often, you’d need to upload software or OS packages in the form of ISOs. Creating a dedicated storage for this streamlines the process.

Creating a new iso storage location
Creating a new iso storage location

Uploading an ISO

With storage in place, uploading ISOs, whether it’s for Linux, Windows, or other systems, becomes a straightforward task.

Drag and drop your ISO in the box.

Import an iso image
Import an iso image

You will see the ISO ready to import. Click the Import button.

Clicking import and letting the iso upload
Clicking import and letting the iso upload

The ISOs are now uploaded to the ISOs repository.

Uploaded isos in xcp ng
Uploaded isos in xcp ng

Creating new virtual machines

Below we are creating a new Windows 10 virtual machine.

Creating a new virtual machine
Creating a new virtual machine

LInux VMs are equally as easy. We are using the Ubuntu 22.04 ISO uploaded.

Creating a new ubuntu server virtual machine in xcp ng
Creating a new ubuntu server virtual machine in xcp ng

Installing Ubuntu Server.

Loading ubuntu server in xcp ng
Loading ubuntu server in xcp ng

XCP-ng also has some interesting advanced options when creating new virtual machines. It has the options built into the GUI to create multiple VMs during the new VM creation process.

Creating multiple virtual machines in the create vm wizard
Creating multiple virtual machines in the create vm wizard

Installing XCP-ng Tools

These tools act as a bridge, enhancing the interaction between the host (XCP-ng) and the VMs. They play a critical role in ensuring smooth operations.

Looking at the guest tools in xcp ng
Looking at the guest tools in xcp ng

Flag on the option Manage Citrix PV drivers via Windows Update. This is how you install the drivers in Windows.

Managing xcp ng guest tools in windows
Managing xcp ng guest tools in windows

You will see the info dialog box pop up about using the Windows Update Tools option.

Note about installing guest tools
Note about installing guest tools

Cloning and copying virtual machines

At the top right hand corner, click the double square icon to “copy” a VM. This is essentially cloning.

Cloning or copying a virtual machine
Cloning or copying a virtual machine

Here you can see the copy tasks associated with the operating after clicking the copy button.

Cloning tasks status
Cloning tasks status

Viewing host metrics

You can view the host metrics in the Xen Orchestra dashboard.

Viewing xcp ng host metrics in xen orchestra
Viewing xcp ng host metrics in xen orchestra

Frequently Asked Questions

Can I run XCP-ng on my gaming PC?

Absolutely! XCP-ng is versatile and can be installed on various hardware, from Raspberry Pi devices to enterprise-grade servers. A gaming PC usually has ample resources, making it suitable for running multiple virtual machines. However, always ensure you have a backup of your games and data before diving in.

How does XCP-ng impact power consumption?

Power consumption largely depends on the hardware you use for your home lab. While small devices like Raspberry Pi will hardly make a dent in your power bill, powerful servers can increase it. Monitoring usage and maybe even considering energy-efficient hardware options if running 24/7 is essential.

Is there any benefit in using XCP-ng over VMware for test labs?

Both platforms have their strengths. XCP-ng is open-source, and for many, this is a primary attraction because it offers flexibility and the ability to tweak settings for specific requirements. VMware, on the other hand, is well-established with vast community support. Your choice might depend on your familiarity, budget, and specific use-cases like web hosting or testing out new software packages.

I’ve seen the term “Xen Orchestra.” How does it relate to XCP-ng?

Xen Orchestra (often abbreviated as XOA) is a web-based interface designed to manage XCP-ng installations. It provides a user-friendly environment to control, test, and monitor virtual machines, access data, and much more. Think of it as the command center for your XCP-ng setup.

I’m a beginner and just setting up my home lab. Any advice on managing the network?

Certainly! When setting up a home lab, especially when using XCP-ng for virtualization, network management becomes crucial. Ensure you invest in reliable network devices and emphasize cable management. It not only keeps things tidy but helps troubleshoot connectivity issues faster. Also, explore concepts like VLANs for segmenting traffic and enhancing security in your home lab environment.

With XCP-ng, can I host my own web servers and media servers simultaneously?

Yes, you can. XCP-ng’s virtualization capabilities allow you to run multiple virtual machines, each serving a different purpose. You could have one VM as a web server for web hosting, another dedicated to being a media server, and others for testing various Linux distributions or Windows setups.

How secure is my data when using XCP-ng in a home lab setup?

Data security is paramount, especially when experimenting. While XCP-ng provides robust tools for virtualization, always ensure you have backups, employ best security practices like regular updates, and use firewalls. Consider VPNs and other security layers to keep your data safe if internet access is required.

Wrapping up

You will find that XCP-ng is a very capable and fully-featured open-source hypervisor for testing and running a home lab environment. It has many enterprise features and using Xen Orchestra provides an intuitive interface for operating things.

Building a home lab with XCP-ng is not just about the fun of seeing all the flashing lights or boasting about server racks. It’s a journey into virtualization, testing, and learning. Whether you’re a newbie getting your feet wet or an enterprise professional looking for a playground, XCP-ng is an excellent choice. And with the right tips and tricks, the virtualization world is at your fingertips.

Subscribe to VirtualizationHowto via Email 🔔

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Brandon Lee

Brandon Lee is the Senior Writer, Engineer and owner at Virtualizationhowto.com and has over two decades of experience in Information Technology. Having worked for numerous Fortune 500 companies as well as in various industries, Brandon has extensive experience in various IT segments and is a strong advocate for open source technologies. Brandon holds many industry certifications, loves the outdoors and spending time with family.

Related Articles

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.