ESXi Arm Edition fix /bin/netdbg does not work

I tested ESXi Arm Edition, I found bug /bin/netdbg does not work – Could be fixed with :

export LANG=en_US.UTF-8
[root@localhost:~] netdbg
Traceback (most recent call last):
  File "/bin/netdbg", line 32, in <module>
    RootCommandGroup()
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
FileNotFoundError: [Errno 2] No such file or directory: 'locale'

[root@localhost:~] export LANG=en_US.UTF-8

[root@localhost:~] netdbg
Usage: netdbg [OPTIONS] COMMAND [ARGS]...

  Command line interface to access settings on ESX datapath

Options:
  --help  Show this message and exit.

Commands:
  vswitch

Question is support for:

netdbg vswitch mac-table …
netdbg vswitch mac-learning …

I suppose, that Native MAC Learning is NOT important on ARM, but could be usefull in futute for SmartNICS. Testing is here:

[root@localhost:~] netdbg vswitch instance list
DvsPortset-0 (vDS-LAB)           50 1b 4b 22 14 35 b5 ed-ec 99 d0 13 d2 ca 70 48
Total Ports:2560 Available:2552
  Client                         PortID          DVPortID                             MAC                  Uplink
  Management                     67108867                                             00:00:00:00:00:00    n/a
  vmnic128                       2214592516      26                                   00:00:00:00:00:00
  Shadow of vmnic128             67108869                                             00:50:56:xx:xx:17    n/a
  vmk0                           67108870        14                                   dc:a6:32:xx:xx:4f    vmnic128
  vmk1                           67108871        33                                   00:50:56:xx:xx:df    vmnic128
  vmk2                           67108872        58                                   00:50:56:xx:xx:fc    vmnic128
  ubuntu-01.eth0                 67108874        266                                  00:0c:29:xx:xx:ed    vmnic128

[root@localhost:~] netdbg vswitch mac-learning port get -p 266 -dvs _vmnet_ESXLAB1
Traceback (most recent call last):
  File "/bin/netdbg", line 32, in <module>
    RootCommandGroup()
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 722, in __call__
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 697, in main
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 1071, in invoke
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 1071, in invoke
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 1071, in invoke
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 1071, in invoke
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 898, in invoke
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/core.py", line 535, in invoke
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/click/decorators.py", line 17, in new_func
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys-boot/lib64/python3.5/site-packages/netdbg/vswitch/mac_learning.py", line 49, in MACLearningPortGetCommand
  File "/lib/python3.5/site-packages/net/lib/libvswitch.py", line 5188, in GetPortMACLearning
    raise DVPortFailure('Get MAC learning config', dvs_alias, dvport, status)
net.lib.exceptions.DVPortFailure: _vmnet_ESXLAB1:266:195887107::fail to Get MAC learning config failed

And similar error for:
[root@localhost:~] netdbg vswitch mac-table port get -p 266 -dvs _vmnet_ESXLAB1
-- cut
  File "/lib/python3.5/site-packages/net/lib/libvswitch.py", line 5452, in GetPortMACTable
    raise DVPortFailure('Get MAC table', dvs_alias, dvport, result[0])
net.lib.exceptions.DVPortFailure: _vmnet_ESXLAB1:266:195887107::fail to Get MAC table failed

vSphere Clustering Service (vCLS) Workaround for ESXi-Arm in vSphere 7.0 Update 1

The vSphere Clustering Service (vCLS) is a new capability that is introduced in the vSphere 7 Update 1 release. The issue is that the vCLS VMs are x86 and can not be deployed to an ESXi-Arm Cluster as the CPU architecture is not supported. But We could disable it according documentation:

Putting a Cluster in Retreat Mode

This task explains how to put a cluster in retreat mode.

Procedure

  • Login to the vSphere Client.
  • Navigate to the cluster on which vCLS must be disabled.
  • Copy the cluster domain ID from the URL of the browser. It should be similar to domain-c(number).
  • Navigate to the vCenter Server Configure tab.
  • Under Advanced Settings, click the Edit Settings button.
  • Add new key “config.vcls.clusters.domain-c841.enabled” use the domain ID copied in previous step.
  • For the cluster with the domain ID, set the Value to False.
Check new key “config.vcls.clusters.domain-c841.enabled” – Flase
  • Click Save.

ESXi on ARM

ESXi on ARM was released. Is it possible download from Flings ESXi Arm Edition.

Instalation Fling on Raspberry Pi 4

Preparation

Raspberry PI EEPROM update

Dowload Raspberry Pi OS from https://www.raspberrypi.org/downloads/ and update EEPRON

sudo rpi-eeprom-update -a

Create and setup UEFI on SD card

md SDcard
7z.exe x firmware-master.zip firmware-master\boot\*
xcopy firmware-master\boot\* SDcard\*  /E /H /C /I /Y

del SDcard\kernel*.img

7z.exe x RPi4_UEFI_Firmware_v1.20.zip -oSDcard\* -y
  • For Raspberry PI 4GB only: Append the config.txt file on the SD Card and append gpu_mem=16:
  • Copy directory SDcard to root directory on SD card
  • Boot Raspberry Pi from SD card

UEFI firmware configuration

  • Disable 3GiB memory limit
    • Device Manager / Raspberry Pi Config / Advanced Config / Limit RAM to 3 GB
    • The Raspberry Pi 4 UEFI is configured with a default limit of 3GiB of memory for OS compatibility purposes. It is neccesary to disable it.
  • Console Preference Selection
    • Device Manager / Raspberry Pi Config / Device Manager / Console Prefence Selection / Display Configuration
      • Virtual 800×600 – enable it
      • Virtual 1024×768 – enable it

Install ESXi-Arm

  • Basic instalation ESXi
    • Enable ssh
    • Setup ntp – IMPORTANT make sure that host has clock synchronized
  • Add ESXi ARM host to vCenter
  • Enabling vMotion
  • Create a VM – example Ubuntu for ARM

Known issues

  • JUMBO frame MTU – The ESX driver for Pi4’s NIC on the SoC (genet) currently does not support jumbo frames.
  • Native MAC Learning is not supported ???
  • /bin/netdbg does not work – Could be fixed with
    • https://flings.vmware.com/esxi-arm-edition/bugs/1113
[root@localhost:~] netdbg
Traceback (most recent call last):
  File "/bin/netdbg", line 32, in <module>
    RootCommandGroup()
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
  File "/build/mts/release/bora-16966451/bora/build/esxarm64/release/vmvisor/sys
FileNotFoundError: [Errno 2] No such file or directory: 'locale'

[root@localhost:~] export LANG=en_US.UTF-8
[root@localhost:~] netdbg
Usage: netdbg [OPTIONS] COMMAND [ARGS]...

  Command line interface to access settings on ESX datapath

Options:
  --help  Show this message and exit.

Commands:
  vswitch