Computers

Install Nutanix Community Edition on a Mini PC

Discover how to install Nutanix Community Edition on a mini PC and learn Nutanix skills for free.

Highlights

  • I will say that running Nutanix Community Edition in the home lab on a mini PC is not without its challenges mainly due to the hardware requirements of the solution.
  • It is a free to download version of Nutanix that allows you to kick the tires on Nutanix in the home lab.
  • With so many enterprise organizations switching from VMware over to Nutanix due to the 10-15x price increase brought about by Broadcom, it is a great idea to start learning Nutanix skills if you don’t have any experience with Nutanix so far.

With so many enterprise organizations switching from VMware over to Nutanix due to the 10-15x price increase brought about by Broadcom, it is a great idea to start learning Nutanix skills if you don’t have any experience with Nutanix so far. Also, many in the home lab are switching over to mini PCs due to the great hardware these now include and the cost savings from an energy consumption standpoint. Let’s look and see how we can install Nutanix Community Edition on a Mini PC and the steps/hurdles involved.

What is Nutanix Community Edition (CE)?

In case you have not heard about it, Nutanix Community Edition (CE) is a great way to start learning Nutanix. It is a free to download version of Nutanix that allows you to kick the tires on Nutanix in the home lab. Also, it has very liberal restrictions. You can run up to a 4 node cluster and there aren’t any limitations that I could find on RAM and CPU, etc.

Just sign up for a free Nutanix account and download the Nutanix Community Edition ISO to get ready to start loading up Nutanix in the home lab.

Hurdles and challenges

I will say that running Nutanix Community Edition in the home lab on a mini PC is not without its challenges mainly due to the hardware requirements of the solution. What I mean by that is that primarily, you need the following:

  • Intel 2.5 G network adapters – The mini PC I am using is equipped with Intel i226v network adapters which don’t have a driver in Nutanix CE. I thought this may be a deal breaker. However, I found a very helpful blog post that already covered this issue and had a workaround by way of a modded .ko file that you can add to your Nutanix CE environment during the installation process.
  • 3 hard disks available – I would say that by in large, most mini PCs have (2) hard disks, some only 1. Some have (2) M.2 slots. Others have (1) M.2 slot and the possibility to add (1) SATA SSD. There are some options like the Minisforum MS-01 that has (3) M.2 slots, which is the best, I believe, on the market right now.
  • What are the 3 disks used for? These are used for the following: (1) for the hypervisor, (1) for the CVM VM, and (1) for data.
  • You need lots of RAM – RAM is needed for the Nutanix solution, especially for the CVM, which consumes 50 GB of RAM out of the box.
  • Hybrid processors – Nutanix makes note that hybrid processors with the performance and efficiency cores are not supported. No hacky way of bypassing this is noted or that I have seen. You will want to turn off your efficiency cores or use a Ryzen-based CPU.

Missing Intel 2.5 G network adapter

the first hurdle is the missing 2.5 G network adapter driver that presents in the following error when you are booting from a Nutanix ISO on your mini PC:

Nutanix community edition install error when booting from iso
Nutanix community edition install error when booting from iso

You will find the links to either build or download the modified .ko file for the Intel network adapter from this blog: Resolve Intel NUC 12th Gen network adapter issue during Nutanix CE installation (svenbergendahl.com).

Once you have the modified .ko file for the Intel 2.5 G network adapter, you will need to mount your USB drive that you have the file on and remove the old module and add the new one.

Quick primer on how to mount a USB drive in Linux

Run the following commands. First, we need to find the USB driveY

lsblk
Find your usb drive
Find your usb drive

Once you identify your USB drive device, run the following to create a mount directory:

mkdir /mnt/usb-drive

Now, mount the USB drive to your mount directory:

mount /dev/sdb1 /mnt/usb-drive

Now, change to your USB mount directory and you should be able to do an ls command to see your files there.

Viewing the modded intel network adapter for nutanix
Viewing the modded intel network adapter for nutanix

Now we will remove the current igc driver and load the new one.

rmmod igc
insmod ./igc-patched.ko
Loading the new driver and checking the status
Loading the new driver and checking the status

Then we run dmesg to see if we see that the Intel adapter is detected, and it is.

Output of the dmesg command we see the intel adapter is found
Output of the dmesg command we see the intel adapter is found

Re-run the installer

After you implement the workaround above, you need to kick the installer off once again. To do that, run the following command:

./ce_installer && screen -r
Rerunning the nutanix community edition installer
Rerunning the nutanix community edition installer
Configuring the disk layout and ip addresses for the nutanix community edition installation
Configuring the disk layout and ip addresses for the nutanix community edition installation

Agree to the Nutanix Community Edition EULA. You will need to page down on this screen through the EULA.

Agree to the eula
Agree to the eula

Something that is super silly is it will let you go past the screen, but then fail on the next installation screen saying you haven’t accepted the EULA.

Scroll to the end of the eula error
Scroll to the end of the eula error
Reboot your nutanix community edition installation by pressing y at the end
Reboot your nutanix community edition installation by pressing y at the end

Adding a third drive

There are ways of course to add a third drive to your mini PC, via an external drive attachment. Currently, I am testing with a simple USB drive that I used to boot my ESXi hosts from. I am waiting on some USB NVMe adapters to plug into my USB-C 10 gig port on the mini PC I am testing with, but will have to wait for a couple of days on those.

So, I am using the following disk layout:

  • CVM – on an SSD
  • Data – on an NVMe drive
  • Hypervisor – on a USB drive

Or, at least the above is what I tried first, and I will explain that statement below.

I am not sure if I needed to, but followed the recommendation on this blog post about modifying the minimum.py file to take out the line referencing isdiskUSB.

Problems after booting

After the installer finished successfully, I thought I was on the home stretch. However, I had to allow the system to boot once and create the default init boot order. Then go in the BIOS and change to this boot device.

Boot from the centos boot device
Boot from the centos boot device

Where I am stuck

I had the error that the AHV firstboot script failed to start.

First boot scripts failed to run
First boot scripts failed to run

I investigated this quite a bit, and made some progress although I don’t think it is the right progress.

The first boot scripts failed due to the fact that the CVM virtual machine wouldn’t start. The reason it wouldn’t start is due to a PCI device that it was complaining about:

error: Hook script execution failed: internal error: Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin /etc/libvirt/hooks/qemu NTNX-10d65799-A-CVM prepare begin -) unexpected exit status 1: Could not detach device : 0000:01:00.0

You can see the CVM powered off or the state it is in with the command:

virsh list --all
Cvm vm is shut off
Cvm vm is shut off

I was able to hack my way around this and get the CVM to power on, by commenting out the following in the CVM config file. However, I am not sure what the ramifications of this are really, or why this is passed through, unless it gives the CVM passthrough access to a physical device. This device is an NVMe drive in the mini PC. The CVM is loaded on another disk, so puzzling still. I know a Nutanix guru could help here.

<!--
<hostdev mode='subsystem' type='pci' managed='yes'>
  <source>
    <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
  </source>
  <alias name='hostdev0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</hostdev>
-->

More to come

While I made quite a bit of progress, the errors and problems are a bit puzzling with the CVM device. I will keep you guys posted on any workarounds I find for this. So far, I can get the CVM powered on, but no connectivity. Also, trying to rerun the first boot scripts manually gives the error that these have already run. So in a catch 22 at the moment. Fun times in the home lab!

Nutanix installation on server hardware

If you want to see the full installation on server hardware and the video, check out my blog and video here:

Blog: Nutanix Community Edition for Home Lab

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, He 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. Also, he goes through the effort of testing and troubleshooting issues, so you don't have to.

Related Articles

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.