Uncovering Hidden Power: From the Antikythera Mechanism to VMware ESXi Advanced Settings

In 1901, sponge divers exploring the seabed off the Greek island of Antikythera discovered a shipwreck dating back to the 1st century BCE. Among the recovered artifacts was a heavily corroded chunk of bronze and wood. At first glance, it seemed to be nothing more than debris. But upon closer inspection, it revealed a complex arrangement of gears—an engineering marvel now known as the Antikythera Mechanism.

Believed to have been constructed around 100 BCE, the Antikythera Mechanism is widely regarded as the world’s oldest known analog computer. This intricate device featured at least 30 interlocking bronze gears and was capable of predicting astronomical events, including lunar phases, solar and lunar eclipses, planetary alignments, and even the schedule of the ancient Olympic Games. It employed the 19-year Metonic cycle—a lunisolar calendar—and utilized differential gearing, a concept that wouldn’t reappear in known mechanical devices for over a millennium.

For decades, the true complexity of the mechanism remained obscured by corrosion and the sheer intricacy of its design. It wasn’t until the 21st century, with the advent of advanced imaging technologies like X-ray tomography and 3D CT scanning, that researchers began to fully understand its capabilities.

Modern Parallels: Hidden Capabilities in VMware ESXi

Just as the Antikythera Mechanism concealed its brilliance beneath layers of decay and time, modern software often hides its most powerful features behind advanced configurations. VMware ESXi is a prime example. While its graphical interface offers a wide array of features, some of its most impactful capabilities lie in the lesser-known Advanced System Settings.

In this article, we’ll explore how to uncover and harness these hidden features within ESXi using VMware Cloud Foundation (VCF) Orchestrator.

Getting Started with Advanced System Settings

Advanced Settings in ESXi are stored as key-value pairs. Keys are always strings, while values can be strings, numbers, or even boolean values (also represented as strings). Within VCF Orchestrator, there’s a class called VcOptionValue specifically designed to manage these settings.

To streamline the process, I’ve created a dedicated class called AdvancedSettingsManagement in the vcHostSystemManagement.ts file. This class will encapsulate all host management logic related to advanced settings.

💡 Naming Convention Tip
Use lowercase letters for filenames like vcHostSystemManagement.ts, and capitalize class names like AdvancedSettingsManagement for clarity and consistency.

Use Case: Updating NFS.MaxVolumes

Let’s say we want to update the setting NFS.MaxVolumes to 256. Here’s how we can do that using VCF Orchestrator.

Step 1: Input Validation

Before applying any changes, it’s essential to validate the input parameters:

public validateParameters(key: string, value: any): void {
if (!key) throw “Mandatory parameter ‘advancedSettingKey’ is not defined”;
if (!value) throw “Mandatory parameter ‘advancedSettingValue’ is not defined”;
System.log(“Advanced setting key: ” + key);
System.log(“Advanced setting value: ” + value);
}

Step 2: Creating the Advanced Setting

The value type determines which property of VcOptionValue to use. For instance, if the value is a number, we must use value_IntValue.

public createAdvancedSetting(key: string, value: any): VcOptionValue {
let setting = new VcOptionValue();
try {
setting.key = key;
if (typeof value === “number”) {
setting.value_IntValue = value;
} else {
setting.value_AnyValue = value;
}
return setting;
} catch (e) {
throw “Failed to create advanced setting. ” + e;
}
}

Step 3: Applying the Setting to the Host

Now that we’ve created the setting, we can apply it using the host’s configManager.advancedOption.updateOptions method.

public applyAdvancedSettingsToHost(host: any, settingsArray: VcOptionValue[]): void {
try {
System.log(“Applying advanced settings on host…”);
host.configManager.advancedOption.updateOptions(settingsArray);
System.log(“Advanced settings have been applied”);
} catch (e) {
throw “Failed to add/update host advanced settings. ” + e;
}
}

Testing the Workflow

To test this process, create a new workflow with the required input variables. Within a scriptable task, invoke the AdvancedSettingsManagement class from the vcHostSystemManagement module:

var hostAdvancedSettings = System.getModule(“com.examples.vmware_aria_orchestrator_examples.actions”).vcHostSystemManagement();

hostAdvancedSettings.AdvancedSettingsManagement.prototype.logHostInfo(host);
hostAdvancedSettings.AdvancedSettingsManagement.prototype.validateParameters(advancedSettingKey,

Similar Posts