In this guide we will walk through how to deploy and configure a Nutanix AHV cluster on 3 bare metal hosts
The guide will focus on a single cluster but will have Prism Central configured to allow you to easily add extra clusters with a central management
There are a few ways you can do this hardware wise, but the bit that does require some thought it around networking
The minimum amount of NICs is 2, this would have a single vSwitch in active/passive or active/active running all traffic in the cluster, these should be at least 10Gb as the Distributed Storage Fabric runs over this
I will be going for a more recommended config using 4 NICs with a pair for management/storage and a second pair for VM traffic to keep them separate and optimise performance
Management/Storage are on the same network as this is handled by the CVM and cannot be changed
The specs of the hosts in use are
3x Dell R640, each host has
- 1x Xeon Gold 6130 – 16c/32t at 2.1GHz base up to 3.7GHz boost
- 192GB RAM per host
- 6 10Gb NICs – 4 Required
- 1x 256GB Dell BOSS card in RAID 1 for AHV Boot
- 1x 960GB SAS SSD for CVM boot
- 1x 1.92TB SAS SSD for the hot tier
- 5x 2.4TB SAS HDD for the cold tier
The CVM by default is configured as the following
- 8 vCPU
- 20GB RAM
- 400GB – This is used from the 960GB CVM boot drive, the rest is used for the HCI storage as the hot tier
We will up the CVM to 24 GB of RAM to better fit the recommendation for data savings, this included compression and deduplication, but not erasure encoding as 4 nodes as a minimum is required for this
For physical hardware this guide assumes you have your IPMI, in my case iDRAC, already configured and a licensed copy of Nutanix with the installer, here we will be using the Community Edition
As this is the community edition the installation for AHV/CVM is a little different as its an ISO installer rather than using foundation and your servers IPMI
The storage is also a little different, in the CE you cant separate management from storage, however this can be done in a full deployment via foundation
The CE is the best way to learn with Nutanix and get familiar with the systems, but it is important to note the process is a little different
Important – By continuing you are agreeing to the disclaimer here
Stage 1 – Setting Up AHV And The CVM
1.1 – Downloading Nutanix CE
Head to the Nutanix Community Edition page here
Click join and download at not cost here

Enter your email here

Fill out the info here, you can really put anything

Then you’ll get 2 emails, look for the one about setting up your My Nutanix account, and set a password

Once thats done, your login is ready

Now look at the other email about your Community Edition being ready and click download

You’ll be put here, click login and use the email and password you just set

From there set a username

Once thats done and you’re all logged in, re click download now from your email, you should get a page like this

You want the top level ISO
1.2 – Installing AHV And The CVM
The hosts here have 1x256GB BOSS card in RAID 1, 1×1.9TB SSD, 1x960GB SSD and 5×2.4TB HDDs, across all 3 nodes
The drives are allocated as follows
- 256GB BOSS – AHV Boot
- 960GB SSD – CVM
- 1.9TB SSD And 2.4TB HDDs Data

The management network is 172.16.2.0/24
Accept the EULA, you need to scroll to the bottom for this

Its worth noting that the default installation lumps all your NICs into one vSwitch
So for management during setup for AHV/CVM only connect your management NICs
In my setup these NICs are using VLAN 2 and the ports are in access mode for VLAN 2 for Dell switches, for other switches, VLAN 2 is set to untagged mode on these ports
1.3 – Changing The AHV Credentials
To access AHV SSH to the AHV IP set during deployment or log into the console
The default account is
root
nutanix/4u
To change the password run
passwd root
1.4 – Initialising The Cluster
SSH into the CVM on Node 1 as the nutanix account, this requires all nodes CVMs to be up and running
The credentials are
nutanix
nutanix/4u
Here we will create a 3 node cluster
Run the following
cluster -s cvm_ip_addrs create
For my cluster my CVM IPs are 172.16.2.121, 172.16.2.122 and 172.16.2.123, so I will run
cluster -s 172.16.2.121,172.16.2.122,172.16.2.123 create
Here you can see it creating the cluster and starting the services

This will likely take a while, do not cancel it
Stage 2 – Configuring Prism
2.1 – Connecting To Prism
Once the cluster is initialised you can connect to prism from a CVM IP on
https://CVM-IP:9440

Here the default login is
admin
nutanix/4u
Once logged in, you’ll need to change your password

For the Community Edition you’ll need to enter your login

Once you enter those it’ll check everything

Then you’ll get to the dashboard

2.2 – Setting DNS
To do this go to Settings/Network/Name Servers
Then add your DNS server, I have removed the ones for Google that are the default

2.3 – Naming The Cluster/Set A VIP
For a fresh cluster, click on the unnamed part in the top left

Here you can name the cluster, add the FQDN and add a VIP
For the FQDN, your DNS server needs to resolve the cluster VIP address and all CVMs to the same FQDN

2.4 – Rename AHV Hosts
By default Nutanix names the hosts pretty poorly and you’ll likely want to change them
Eg

To do this, SSH into any CVM in the cluster with the admin account
The command to change this is
sudo change_ahv_hostname –host_ip=<AHV-IP> –host_name=<New-Name>
So for my host, 172.16.2.111 which is Host 1 I am running
sudo change_ahv_hostname –host_ip=172.16.2.111 –host_name=R640-AHV01
2.5 – Changing CVM RAM
This can be changed from Settings/General/Configure CVM
This is a one way process

You can use the drop down the edit the RAM, it cannot be decreased, the default is relative to your host specs, my hosts have 192GB, so its defaulted to 20GB, if you had less RAM this may decrease
Here I can change this, I will be using 24GB as I am using compression and dedup

Then click apply

Then yes again, Prism may not be available during this

Its worth noting this cannot be decreased after, 20GB is no longer an option now its expanded

2.6 – Creating User Accounts
You can add Nutanix to AD for login, but I wouldnt recommend that as if AD gets compromised so does your hypervisors
To add a local account go to Settings/Users And Roles/Local User Management
From here we can add a new user

Setup a username, name details, a password and the roles, all fields are required

Stage 3 – Prism Storage
3.1 – Storage Overview
We can check in on the storage tab here to see our storage stats

Here we can see storage containers, you’ll notice mine is 18TB provisionable, vs the 36TB physical, this is because is object storage with a RAID 1 policy on each object, meaning its stored twice for redundancy
When you create a cluster, there will be a default pool created, you shouldnt need more pools for the direct HCI storage

This is showing the Logical storage, which included the replication factor, the default is 2, this means each object has a copy on another node for redundancy

You can change this to physical if you want to see that on the right

Which shows the physical disk usage

3.2 – SSDs Marked As HDDs
Sometime Nutanix cant tell if a SAS SSD is an SSD or a HDD, and you’ll see the disk marked as a HDD is Prism element, if you arent using Nutanix supplied hardware, this is worth checking on
We can check this from Hardware/Table/Disk
Here we can see my 1.6TB SSD is in the HDD tier, and this is consistent on all my nodes

Open up an SSH session a CVM, in my case I will have to repeat this for the SSD on all hosts
In the CVM CLI we need to find the ID of our disk thats not reporting correctly, to do this run
ncli disk ls
Now find your disk, as this is the only ~1.6TB disk in the pool, this shows up very easily
Here it is, and the ID is the field I am interested in
This command will show all drives from all CVMs, so if you have multiple nodes like I do you’ll need to scroll up and find the others

To change this from HDD to SSD we can run
ncli disk update id=<ID> tier-name=SSD-SATA
So in my case I ran
ncli disk update id=00061c40-47a2-a645-46cf-6cfe54075870::63 tier-name=SSD-SATA
Now the CLI shows this is an SSD

Heading back to prism and refreshing the page we can see all the SSDs are now reporting correctly, I have repeated this on the other 2 drives in my cluster

3.3 – Renaming The Default Pool
We can rename the pool from Storage/Table/Storage Pool, buy right clicking and going update

Here you can name the pool

You shouldnt need more than 1 pool for the default HCI storage when you specified disks for data during the installation
3.4 – Creating A Container
From Storage/Table/Storage Containers we can see any containers created
By default the main one has a UUID name and cant be renamed

You can add a new container in the top right

Here we can create a logical container, for say management VMs

If you dig into the advanced settings you can reserve space for it, change the advertised capacity, replication factor cant

We can also do inline compression and deduplication
Capacity here for post process duplication recommends a CVM with 24 GB of RAM as a minimum
It also needs a Cloud Infrastructure (NCI) Starter or higher license
Cache is for the SSD tier, capacity is for the HDD tier

As well as erasure encoding, though this requires at least 4 hosts

Stage 4 – Prism Networking
4.1 – Unbind Interfaces From Default Bond
When you first setup Nutanix, it will setup a default bond over all interfaces
To remove interfaces from it you need to edit the default vSwitch, vs0
This can be found under Settings/Network/Network Configuration/Virtual Switches

Click the pencil on the vSwitch

Click next here

Make sure all hosts is selected here

Expand the drop down on the host

And uncheck the NICs you want to remove

4.2 – Create A New vSwitch
To create a new vSwitch go to Settings/Network/Network Configuration/Virtual Switch

Then click create VS

Give it a name

Set the bond type, I am using active standby for this switch

You can choose to only show NICs that are connected or a certain speed

Expand the hosts

And select the NICs

Then hit create
4.3 – Creating A Subnet
To be able to assign a VM to a network you need to define a subnet for the network and the VLAN tag associated with it
To do this go to Settings/Network/network Configuration
Then click create a subnet

We dont need Nutanix to do any IP provisioning so I will name it, for my management network for management VMs, select the vSwitch to bind it to and the VLAN ID


Stage 5 – Setting Some VMs Up (Single Cluster)
5.1 – Adding ISOs
To add an ISO to Nutanix we need to upload an image
To do this go to Settings/General/Image Compliance
Then upload an image

Give the ISO a name, select the image type as ISO, choose a container, I have one just for ISOs, and upload a file

Then hit save
Once the file is uploaded you’ll see the image available in the list

5.2 – Adding The IO Drivers ISO
Some servers like Windows wont see the Nutanix virtual disk, to change this, add an image configuration for the IO drivers IO
The URL for this is
http://download.nutanix.com/mobility/1.1.4/Nutanix-VirtIO-1.1.4.iso

5.3 – Creating A VM
To create a VM we need to go to Vms/Table and click create VM in the right


Give the VM a name and set the timezone

Set the CPU/RAM you need and the BIOS config, I am using UEFI as the OS is new

By default you have 1 CD drive and no disks, add a new disk

Add a Type Disk, add it to the SCSI or SATA bus, add your storage container, I am using one for my Management VMs, and the size

If you are using Windows for the VM add another disk, you need have the IO driver added to the image repo
Add a new CD-ROM and clone from the image service, select the SATA bus, and select the image you created for the Nutanix IO Drivers

Click the pencil to edit the default CD drive, at the top

Select cone from image service and change the Bus type to SATA, the select the image for the ISO you want to install, here I am installing Windows Server 2022

Now we are ready to install Windows with 1 C drive

Add a new NIC

Select the subnet

Now hit save

For windows, as we have added the IO Drivers, we need to install them for the installer to be able to see the disk
When you get to select the install disk you’ll find it isnt there, this is where we need to click Load Driver

Click browse

Then expand the IO drive, find your windows server version, use 2016 for 2016 or newer version of windows server, and select the amd64 folder and hit ok

Select all three drivers and hit next and wait for it to install

Now the disk is available for you to install the OS to

5.4 – Installing Guest Tools – Windows
Right click your VM and click Manage Guest Tools

Click enable Guest Tools

Click mount Nutanix Guest Tools, if your VM DVD drive is full, click unmount current ISO
Then submit

On the guest VM, double click the tools DVD Drive

This should then run the setup wizard, if it drops you into the CD files, run the setup

Agree to the EULA and install

5.5 – Installing Guest Tools – Linux (Ubuntu)
Right click your VM and click Manage Guest Tools

Enabled the guest tools

Switch to the root account, you will need sudo for Ubuntu for example with
sudo -i
Mount the CD to /mnt with
sudo mount /dev/sr0 /mnt
You can check this is ok by running
ls -l /mnt

Run the installer with
python3 /mnt/installer/linux/install_ngt.py
You should get something like this

You can check the status with
systemctl status ngt_guest_agent.service

You can then further check with by accessing the CVM by SSH and running
ncli ngt list vm-names=
Eg

5.6 – VM Screen Stuck On Resolution
For UEFI VMs, this is set in the BIOS of the VM, reboot it from the console and mash F2 to enter the VM BIOS
This can be done from the top right on the console with the power button

Then guest shutdown

From the BIOS go to Device Manager

Then OVMF Platform Configuration

From there change the preferred resolution, then click commit changes and exit

Press escape to go back to the main menu and reset the VM

Stage 6 – Prism Central Deployment (Multi Cluster)
Next lets setup prism central, this is handy for some extra management over the cluster, but is really only needed for managing multiple clusters, as Prism Element, what manages our existing cluster, can only manage its own cluster
Stage 6.1 – Prism Central Deployment
As a pre requisite, you’ll need the Cluster and Data Services IP are set
Click on the cluster and ensure these are filled out


From the home page on your Prism cluster, on the left, you can register or create a new Prism Central server

To setup a new prism interface click that link, then deploy for a new interface

Select a version, I am going with the latest

Then I will be using a single VM, only consider the scale out if you need greater than 12500 VMs or if you really need the redundancy

Select a size, again, this should be relevant for your environment, XL is larger but supports the same number of VMs due to having full feature support across multiple Nutanix clusters
From there, select your network, this should be a defined subnet in Prism, pop the subnet it, gateway, DNS server, NTP and select a storage container

Then scroll down, give the VM and name and IP address

I would leave this at stock as its on the internet network

Stage 6.2 – Getting Logged In
Once the deployment is showing as complete go to the IP or FQDN you set in your DNS server for the Prism Central on port 9440
https://fqdn:9440
https://ip:9440
You’ll get this screen, if not ensure its finished deploying and not waiting at 99%
Login with
admin
Nutanix/4u

Change your password

Enter your details and accept the EULA

Continue with Pulse enabled

Stage 6.3 – Adding A Cluster
By default there is no clusters in Prism Central
So lets head back over to the local Prism Element for our R640 cluster
Where we deployed Prism Central from we can now register

Then click connect this time

Moving forward some features will need to be done via Prism Central

Enter the details for you Prism Central Appliance

Now this shows as connect

In prism Central we can see the cluster from Hardware/Clusters as well

Stage 6.4 – Adding Users
You can add more user accounts from the admin center, the drop down is on the top left

You can fund users under IAM/Users and add a new user from IAM/Settings/Local User Management

From there you can add a new user

Fill out their details and set their roles

Stage 6.5 – Adding ISOs
Its worth noting that ISOs setup in Prism Element dont dhow up in Prism Central
To add new ISOs, go to Compute & Storage/Images

Add an image on the left

Add a file and select your ISO

Then hit next

Select the placement method, if you have a few clusters, the default will be fine, then hit save

Adding the IO drivers can is needed for Windows guests and can be added like so using a URL
http://download.nutanix.com/mobility/1.1.4/Nutanix-VirtIO-1.1.4.iso

Stage 6.6 – Deploying A VM
To deploy a VM, head to Compute & Storage/VMs and click create a VM on the left

Give the VM a name, select the cluster, the number of VMs, likely 1, and assign CPU/RAM resources

Next we need to attach some disks

A CD ROM for our boot media like so

Now attach another

This time you’ll want a disk, for the boot media, select Disk, the cluster container and size

If you are using a Windows guest, add another CD drive with the IO drivers else you cant install the OS

Then attach it to a subnet, this would be from Prism Element earlier

Select your subnet

Now hit next, you can define tags, time zone and customisation here, but for now, we are going to leave this

Review and create the VM

Then power your VM on and install
For windows, as we have added the IO Drivers, we need to install them for the installer to be able to see the disk
When you get to select the install disk you’ll find it isnt there, this is where we need to click Load Driver

Click browse

Then expand the IO drive, find your windows server version, use 2016 for 2016 or newer version of windows server, and select the amd64 folder and hit ok

Select all three drivers and hit next and wait for it to install

Now the disk is available for you to install the OS to

You’ll want to install the Guest Tools, for this see sections 5.4 and 5.5
Stage 6.7 – Creating New Subnets
To create a new subnet for your cluster go to Network & Security and click Create Subnet

Here we can name the network, select a cluster and add a tag, then add it to a vSwitch, overlay is for Flow networking which we will get into later
