Using vCenter Server with a Raspberry Pi
In part 3 of a series, Tom Fenton shows how to add VMware Tools to a Linux Virtual Machine (VM) running on the Pi, use vCenter Server to manage the device, and then create a Fedora VM and add a USB Gigabit ethernet adapter.
I have written a few articles previously on ESXi on Arm (located here, here and here).
In those articles, I covered everything from going over what you need to install ESXi on a Raspberry Pi 4 B system, to creating a Virtual Machine File System (VMFS) on a USB thumb drive and using it as a datastore, to using the ESXi Host Client and creating a Linux VM on the device. In this article, I will add VMware Tools to a Linux Virtual Machine (VM) running on the Pi, use vCenter Server to manage the device, and then create a Fedora VM and add a USB Gigabit ethernet adapter. But first I want to look at another one of the platforms currently supported for ESXi on Arm, the Lenovo HR350A.
The Lenovo HR350A, unlike the Raspberry Pi, is specifically built to be a datacenter server. It has a 32-core ARMv8 64-bit CPU that runs at 3.3 GHz with Turbo, supports up to 512GB of RAM, and SATA SSDs and NVMe drives. The CPU that this server uses was developed by Ampere and supports up to 42 lanes of PCIe 3.0, and eight PCIe 3.0 controllers. Given its I/O, this is a server designed for those enterprise workloads in need of storage and networking I/O, and memory bandwidth, over core performance. These systems start at $1,665.30.
The ESXi Host Client makes it obvious that VMware Tools is not installed on the VMs running on the system.
Because ESXi on Arm does not include VMware Tools, it needs to be manually compiled and installed on the VMs that are running on it. VMware Tools provides information, such as the IP address of a VM, in both the ESXi Host Client and vCenter Server.
Fortunately, the ESXi on Arm documentation walks you through how to install VMware Tools on a Linux system; the process involves installing the needed packages, copying the source code from a Git repository, building and install it, and then configuring the OS to use it. By following these same instructions, I didn't have any issues installing VMware Tools on my VM.
When compiling Open-VM Tools (OVT), I watched the performance monitor for the ESXi host.
After installing VMware Tools, the host name and IP address were shown in the ESXi Host Client.
William Lam, Senior Staff Solution Architect at VMware, has done an excellent job blogging about ESXi on Arm on his personal website, virtuallyGhetto; in one of his posts, he mentioned that a second NIC can be attached to the Pi through a USB port. He also said that he used the Cable Matters USB to Ethernet Adapter (202013-BLK), so I purchased one for $15. As I already had three flash drives in the four USB ports, I needed to disconnect the keyboard and plug in the NIC. Before doing so, I looked at the network configuration in the ESXi Host Client, which showed only one physical NIC.
After I plugged in the USB NIC, it was displayed in the client as vusb0 and was using the cdce driver, but with a speed of 100, rather than 1,000, Mbps.
I SSHed to the ESXi server and verified this information by entering esxcli network nic list.
VMware has another Fling, USB Network Native Driver for ESXi, that appears to be able to fix this problem.
After installing the VIB, I rebooted the system to complete the installation process.
When the system came back up, the NIC still showed as running at 100 Mbps. After a quick search, I couldn't find an immediate answer, so I ignored it and will revisit this issue when I have more time to investigate.
Managing the ESXi with vCenter Server
ESXi on Arm can be managed using vCenter Server 7 (6.x is not supported, and will not work), but the Fling site also makes it very clear that it is not officially supported -- and should NOT be used for production workloads.
As I didn't want to use my existing vCenter Server, I spun up another, fresh instance of it. I logged in, created a new datacenter (ARM_DC), and added the ESXi on Arm host to it without any issues. After doing so, the VM on it was shown, and all the functionalities seemed to work flawlessly.
The vCenter Server, unlike the ESXi Host Client, allows a VM to be cloned. I was able to do this successfully, but it did take longer than on my x86 ESXi servers.
I then uploaded the Fedora 32 Server Arm installation iso to the server, and created and started a VM using vCenter Server without encountering any problems.
I clicked Switch to New View to explore the new, customizable view in the vSphere 7 client.
Third Party Monitoring
The last thing I wanted to test was how well a third-party management product would work with ESXi on Arm. Since I already had ControlUp installed (you can read my articles on it here and here), I added the vCenter Server that was associated with my ESXi on Arm host to my ControlUp Console.
It attached smoothly and reported the server information correctly.
I could see the VMs running on it by clicking the Machines tab.
Because the ControlUp Agent wasn't installed, I couldn't monitor the internal metrics of the VMs. However, after following the instructions on how to add a Linux Data Collector, which collects information from a Linux system, I was able to see those metrics.
I could see the processes running on the VM by clicking the Processes tab.
Over this series of articles, I took an ESXi on Arm server through a complete lifecycle: from deployment, to creating VMs on it, to managing it using ESXi Host Client and vCenter Server, to running a third-party monitoring product on it. With only 8GB RAM, 4 Cores, and a USB flash drives for storage, it wasn't as speedy as even my oldest x86 ESXi server, but I was still surprised with what I was able to do with it.
The Arm processor seems to be hitting its stride this year -- Apple announced plans to transition away from Intel chips to its own Arm processors, and Arm processors are making inroads with the big cloud providers. Hence, it is no surprise that VMware is expanding into Arm-based system management.
Currently, the most widely used platform for ESXi on Arm is the Raspberry Pi, mainly due to its use case as a very low-cost witness node for vSAN or as a node for home labs. The Raspberry Pi platform is an interesting product, and people are doing fascinating things to it such as adding NVMe drives and expanding its RAM. But the Pi is only one of many Arm platforms that ESXi supports, and more powerful Arm servers to come will undoubtedly open a whole new level of enterprise use cases.