Add iSCSI Shared Storage to VMware ESXi-Arm

One of the exciting things in the home lab as of late is the ESXi-ARM fling that I have installed on my Raspberry Pi 4 test box. After installing the ESXi-ARM Fling on the Raspberry Pi 4, of course, I wanted to run some workloads, including Ubuntu Arm. As of yet, I don’t have an NVMe to USB enclosure to work with the Raspberry Pi 4 (one coming soon). I wanted to connect VMware ESXi-Arm to iSCSI shared storage and use it as data to run some workloads with ESXi-Arm. Let’s take a look at how to add iSCSI shared storage to VMware ESXi-Arm easily.

Provision TrueNAS or FreeNAS iSCSI Target

In a lab environment, I have been using FreeNAS for years. Not long ago, I decided to provision TrueNAS as well. Both are produced by IX Systems. FreeNAS is the community-supported edition, while TrueNAS is for enterprise systems. To get a better understanding of the differences between the two, check out the comparison post here.

So, with that being said, I actually have both stood up in the home lab and have experimented with both for iSCSI targets for testing and other purposes and both seem to work great. You won’t see a lot of differences between the two, even in the interface. However, I will be showing the steps in TrueNAS.

Loading a virtual machine for TrueNAS and adding disks

Let me briefly detail the TrueNAS VM configuration for installing TrueNAS and adding disks for use as an iSCSI target.

  • FreeBSD 11 64-bit virtual machine
  • 8 GB of RAM
  • Added a 16 GB disk for installing TrueNAS and a 100 GB disk to act as the LUN for the iSCSI target
  • Latest TrueNAS ISO downloaded and uploaded to the datastore and mounted to the TrueNAS VM

After installing the TrueNAS distribution, you will need to configure the network settings you want from the VM console. There is a text-based menu that you can use to select network configuration and provide the normal network parameters for use with your TrueNAS VM.

Configuring TrueNAS iSCSI target for ESXi-Arm

After you have the network configured and you are able to connect to the TrueNAS appliance via a browser pointed to the IP, login, and navigate to the Services menu.

Here you want to flip the toggle for the iSCSI service and set this to start automatically.

Enable the iSCSI service in TrueNAS

After you have started the iSCSI service, to begin setting up the iSCSI target, navigate to Sharing > Block Services (iSCSI). With TrueNAS, they provide a wizard to set up your iSCSI target, which FreeNAS doesn’t have. However, I found a few settings I wanted to tweak that the wizard didn’t cover. One of which is for the VMFS 6 capability that I will detail below.

You can though go through the wizard and then revisit your LUN to add settings which is what I did.

Beginning the Sharing Block Shares iSCSI configuration

Here, I am configuring the block device. TrueNAS has a VMware option for the Sharing Platform that is preconfigured with settings ideal for VMware, however, not including the setting for VMFS 6.

Creating and choosing a block device

On the portal configuration page of the wizard, you add a Portal IP address for communication from your ESXi host.

Setting up an iSCSI portal

You can configure authorized networks if you want. However, for my lab, I am leaving things wide open.

Setting up authorized networks

Confirm your options to complete the wizard.

Confirming the iSCSI options

There is a setting here that I want to detail. When I simply went through the wizard, the setting below is not checked for VMware. If you attempt to add storage and format the file system for the LUN with VMFS 6, you will get an error “Unable to format file system” error.

The resolution to this issue is the below setting:

  • Disable Physical Block Size Reporting
Disable physical block size reporting

Add iSCSI Shared Storage to VMware ESXi-Arm

The process to add iSCSI shared storage to VMware ESXi-Arm is no different than any other ESXi host. However, let’s take a run through this as a refresher.

As a note here, I am not setting up MPIO or a separate VLAN for iSCSI traffic as I only have a single NIC in the Raspberry Pi 4, so I am bandwidth limited with the single NIC. So, I am simply adding a separate VMkernel adapter on the same NIC. You will also see I have the management interface on the same network, but I created a separate interface for posterity.

Also, I am not setting up any kind of MPIO since I only have a single adapter on the Raspberry Pi 4 device.

Adding an iSCSI VMkernel port

After adding the iSCSI Software adapter, let’s add the Network Port Binding.

Adding a network port binding for iSCSI

Next, choose the VMkernel adapter for the iSCSI binding.

Choose the VMkernel adapter for iSCSI

The network port binding is added successfully.

Network port binding for iSCSI added successfully

Now, let’s use the Dynamic Discovery to point to the iSCSI target on the TrueNAS installation.

Adding a dynamic discover of an iSCSI target

Here, I am adding the TrueNAS iSCSI Portal IP address.

Adding Send Target Server

After adding the dynamic discovery IP address, I can now see an Active path to the TrueNAS appliance.

Active path present after adding the iSCSI target

Also, I properly see the TrueNAS device and size displayed.

TrueNAS iSCSI device added to the ESXi-Arm server

After going through the normal Add storage wizard, I now have an iSCSI datastore assigned to my ESXi-Arm host.

New iSCSI datastore added to ESXi-Arm server

Wrapping Up

As shown, you can easily Add iSCSI Shared Storage to VMware ESXi-Arm installations in the same manner that you have added iSCSI in the past. Using TrueNAS or FreeNAS you can easily present a shared iSCSI target that you can assign to your ESXi-Arm installation for using as shared storage. Stay tuned for seeing the process to install Ubuntu Arm on ESXi-Arm using the iSCSI LUN.

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 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.

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.