HOW TO: BOOT VMware vSphere Hypervisor 7.0 (ESXi 7.0 ARM) from an iSCSI LUN for the Raspberry Pi 4

Andrew Hancock (VMware vExpert PRO / EE Fellow)VMware and Virtualization Consultant
CERTIFIED EXPERT
EE Fellow, 2xMVE, Expert of the Year 2017-2011, Scribe 2016-2012, Author of the Year 2018-6,2013-2012 VMware vExpert Pro, vExpert 2020-2011
Published:
Edited by: Andrew Leniart
HOW TO: BOOT VMware vSphere Hypervisor 7.0 (ESXi 7.0 ARM) from an iSCSI LUN for the Raspberry Pi 4, Step by Step Tutorial with screenshots. Setting up the Synology SAN to allow the Raspberry Pi 4 to BOOT ESXi 7.0 ARM edition.
In my previous Experts Exchange Articles, most have featured Basic and Intermediate VMware and Virtualisation Topics.

If you would like to read my Basic VMware articles, they are listed at the end of this article for your convenience. There will be some technical jargon used in this article which I will try and explain throughout this article. You can always ask a related question on Experts Exchange about this article or reach out to me via Twitter or LinkedIn

This article will show you how to configure the Raspberry Pi 4, so you can install VMware vSphere Hypervisor 7.0 for ARM and configure it to BOOT from an iSCSI LUN. VMware vSphere Hypervisor 7.0 is also known as ESXi 7.0, and this is also referred to as ESXi ARM edition.

Please note ESXi ARM edition is not for Production at present (19 October 2020) and is a TECH PREVIEW.

This article builds on two previous articles published at Experts Exchange


The firmware used in the Raspberry Pi 4 is based on the firmware used in many ARM systems called TianoCore, so theoretically this tutorial can be followed for any system based on the later.

1. What is BOOT from SAN?

BOOT from SAN is not a new technology and has been around for many years since SAN (Storage Area Networks) were created. Fibre Channel (FC) and iSCSI SANs allow you to BOOT a computer across the storage area network (Fibre Channel) or ethernet network (iSCSI) from the SAN. VMware vSphere Hypervisor has always had this function. The firmware in the Raspberry Pi 4 has an iSCSI Configuration. The operating system is installed to the iSCSI LUN on the SAN, and when the Raspberry Pi 4 BOOTs it BOOTS and runs the Operating System from the SAN.

Why do we want to BOOT a Raspberry Pi 4 from a SAN ?


Advantages of BOOTing a Raspberry Pi 4 from a SAN

  • No requirement for a local storage device to store the bootable operating system. So there is no need to purchase USB flash drives for your installation of ESXi ARM edition.
  • The computer can BOOT at the speed of the network interface. The Raspberry Pi 4 has a 1GBe network interface, which will boot faster than a USB flash drive.
  • Deployment of a Pi cluster is far easier.
  • With an additional PoE Pi HAT, you can reduce the number of wires to the Raspberry Pi 4 to just a single wire - a network interface cable - PoE - power and BOOT from SAN.

Single wire powered PoE, BOOT from iSCSI SAN Raspberry Pi4 8GB

  • Backup and Restore, Management of the ESXi Operating System on the SAN. LUN Snapshot support.

Disadvantages

  • SAN or SAN software required. Many lower-priced NAS support iSCSI SAN functions, e.g. Synology, Qnap, Western Digital, Buffalo Technology. Some operating systems now include iSCSI storage software, called an iSCSI Target.
  • Can be complex to set up and get working correctly. (don't I know it! - Synology!) - but based on this article will be simple for you!

What is iSCSI?

I not going to explain what the acronym means, you can Google that, that's boring. The important thing to understand it allows SCSI commands to be sent over the ethernet TCP/IP network, over long distances. Those SCSI command things are what are used to communicate with block devices - SCSI hard disks. A SAN is a block device.

A very long external SCSI cable!

The problem with long SCSI cables is they had a limited length before the electrical signal degraded so badly, the SCSI devices were no longer detected.  6m/25m length I believe is the maximum length.

We do not have this issue with iSCSI.

In this article, I'm going to show how to BOOT from a Synology NAS/SAN. The principle can be applied to any SAN system providing you follow some simple guidelines below.

2. How to Create an iSCSI LUN on a Synology NAS


What is a LUN?

A storage LUN is a portion of a group of storage devices or disks. I like cake! so in terms of a cake, if you imagine the entire group of disks to be the cake, and a slice of cake to be the LUN.



Login to your Synology NAS (login to DSM using a web browser). Enter your Administrator name and password.



From the Main Menu select iSCSI Manager.



Select Target.



Select Create.



I'm going to leave the defaults, but if you want to change the Target Name and IQN then feel free to do so.

My Target Name is - Target-1 and Target Initiator (what Synology above calls - IQN) is iqn.2000-01.com.synology:CyrusMEGANAS2.Target-1.208a9e9535. You will need to record this Target Initiator value, because we will be using it later, and it's very important to get it typed correctly. You may want to change this value to make it simpler to type!

Click Next to proceed.



Select Create a new iSCSI LUN, followed by Next to continue.



I have left the name of the LUN as LUN-1, and specified size of 32GB for the LUN, Thick Provisioned to provide a better performance, and I have left the default advanced settings.

Click Next to Continue.



Click Apply to create the LUN.



The "keen-eyed" amongst you you may have noticed, I have not set up any CHAP Authentication for the LUN, to keep it simple, if this was a production environment we would recommend setting up Authentication and LUN ACLs.



Check the configuration is correct, and record the IQN, if you did not previously record above.

3. Configuring the Raspberry Pi4 to BOOT from iSCSI LUN.


Please refer to this previous article

Part 19: HOW TO: Install and Configure VMware vSphere Hypervisor 7.0 (ESXi 7.0 ARM) on a Raspberry Pi 4

Power On the Raspberry Pi 4.  



The Pi will boot displaying a Raspberry Pi logo, press escape to enter the "UEFI BIOS".



Select Device Manager



Select iSCSI Configuration by hitting Enter.



We need to enter an iSCSI Initiator IQN name. Hit enter on the iSCSI Initiator Name. The IQN needs to be in a specific IQN format,

Following is the format for IQN-type node names:

iqn.yyyy-mm.reverse_domain_name:any

So we've just made up -

 iqn.2010-10.uk.co.consultants-cyrus:esxi003-arm

dashed are allowed, underscores are not!



Enter your Initiator Name for your RPi4.



Your iSCSI Initiator Name should be recorded. Now we need to add an Attempt. This is the connection information to connect to the Synology iSCSI SAN target initiator.



Select your MAC address for the network interface you will be using. The RPI4 only has a single network interface on the motherboard.



Ensure iSCSI Mode is set to ENABLED.
Enable DHCP ON (X) in the Box.

Scroll down to complete the reset of the information.



Enter the Target Name which you recorded in the previous step

iqn.2000-01.com.synology:CyrusMEGANAS2.Target-1.208a9e9535 

and enter the IP Address of the Synology NAS and leave the other values as default and save the attempt.

Andy's Golden Nugget!!!

However, and this is specific to Synology NAS users, I have discovered that if the BOOT LUN is left at zero (0) the default which is normal for most SAN, confirmed with NetApp and Dell Equallogic it does not BOOT, so use 1.



Save the Attempt.



Press Escape and return to the main menu, and select BOOT Manager.



If all is well and your configuration is correct



You should see a UEFI entry UEFI SYNOLOGY iSCSI Storage option, which is the remote LUN that the RPi4 has connected to.

For troubleshooting check the Synology iSCSI Manager Overview.



Connected is GOOD!

It may also help if you check iSCSI logs via SSH. You should see the errors in the log

2020-10-19T16:11:11+01:00 CyrusMEGANAS2 kernel: [597576.395108] iSCSI_F:iscsi_target_login.c:831:iscsi_post_login_handler Login - I[iqn.2020-10.uk.co.consultants-cyrus:esxi003-arm][192.168.136.54:1029], T[iqn.2000-01.com.synology:CyrusMEGANAS2.Target-1.208a9e9535][192.168.138.236:3260], P[iSCSI/TCP]

If you do not get a connection, repeat the above steps, taking extra special care with the Target IQN Initiator name.

4. Installing VMware vSphere Hypervisor 7.0 (ESXi 7.0) for ARM. 


Please follow these articles


Except, when selecting a disk to install the ESXi OS, you will have the following option.



Select the SYNOLOGY iSCSI Storage LUN to complete the installation, and continue with the procedure outlined above.

One final tweak, when the server has restarted, select the SYNOLOGY iSCSI STORAGE LUN as the default BOOT option in the Change BOOT order options.





Congratulations you have successfully installed VMware vSphere Hypervisor 7.0 for ARM and configured it to BOOT from an iSCSI LUN.

Basic VMware Articles Series:

These articles are also applicable to VMware vSphere Hypervisor ESXi 5.0, 5.5, 6.0.
             
These articles are applicable to VMware vSphere Hypervisor 6.5.










These articles are applicable to VMware vSphere Hypervisor 6.7.









Previous articles in this VMware vSphere 7.0 series are here.











 










If you found this tutorial helpful, please do click the Thumbs-Up icon below. This lets me know what is valuable for EE members and provides direction for future articles. If you have a related question based on this article, please click here.

Thank you very much!

Regards, Andy
1
932 Views
Andrew Hancock (VMware vExpert PRO / EE Fellow)VMware and Virtualization Consultant
CERTIFIED EXPERT
EE Fellow, 2xMVE, Expert of the Year 2017-2011, Scribe 2016-2012, Author of the Year 2018-6,2013-2012 VMware vExpert Pro, vExpert 2020-2011

Comments (2)

Excellent article - I wish I hadn't had to spend a few hours yesterday to actually figure this out. One note: the LUN # starts with 1, so if you have just one LUN, that's indeed the number to use. But if you have multiple LUNs in your target, you can see the correct LUN to use in the UEFI attempt in the left column with the table of LUNs when looking at the Target that you created in the Synology DSM.

Andrew Hancock (VMware vExpert PRO / EE Fellow)VMware and Virtualization Consultant
CERTIFIED EXPERT
Fellow
Expert of the Year 2017

Author

Commented:
Only a few hours, I've spent about 50 hours!!!!

but it is odd, even if 0!

It works and then does not work!

where technically, it should not even connect, or ESXi find a LUN to install to!

Thanks for your kind words!

Andy

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.

Get access with a 7-day free trial.
You Belong in the World's Smartest IT Community