When I first took over management of a VMware cluster with 8 ESXi hosts at the company, I was monitoring iDRAC/iLO alerts entirely by hand — receiving emails from the vendor’s monitoring system, SSH-ing in to check, then manually vMotioning VMs to another host if something looked wrong. That workflow held up fine until one Friday night. A host had a PSU redundancy failure, and nobody caught the email in time. Standard HA only kicked in after the host had gone completely down — VMs were killed and then restarted on another host, with actual downtime of about 3–4 minutes for everything running on that host.
After that incident, I started seriously looking into Proactive HA — a feature that lets vCenter automatically migrate VMs before a host actually fails, based on hardware health warning signals from the vendor’s own monitoring system.
The Problem with Traditional HA and Manual Prevention
It wasn’t a lack of monitoring — Dell’s iDRAC and HPE’s iLO both alert in great detail: memory module errors, degraded PSUs, high temperatures, NIC errors… The problem lay in the gap between the alert and the action.
- Alert arrives by email → someone has to read it → assess severity → decide whether to vMotion → actually do it
- Outside business hours: alert sent at 2am, team reads it at 8am the next morning
- Degraded hardware (one of two PSUs failed) still runs but the risk is extremely high
Standard vSphere HA only reacts after a host has lost its heartbeat — a timeout of roughly 12 seconds after the host fully goes down. By that point, VMs have already been killed and are only then restarted on another host. For databases or stateful applications without solid reconnect logic, those few minutes of downtime are enough to trigger a cascading failure.
Why Proactive HA Solves This Problem
Proactive HA is an extension of vSphere HA that receives signals directly from the vendor’s Hardware Health Provider — a plugin installed on vCenter that connects to each host’s iDRAC/iLO. When the provider detects a problem, it assesses the severity and sends a signal to vCenter before the host fully fails.
Looking at an actual trigger, the flow goes like this:
- iDRAC/iLO detects a hardware fault and sends an alert to the Hardware Health Provider
- The provider classifies the severity: Moderate (reduce load) or Severe (evacuate immediately)
- vCenter receives the signal → triggers DRS to migrate VMs to healthy hosts
- The host is isolated in Quarantine Mode or Maintenance Mode depending on configuration
- VMs are migrated while still running — zero downtime
The key point: VMs are vMotioned while the host is still alive and stable, not restarted after the host has already died.
Prerequisites Before Configuration
Proactive HA doesn’t require anything beyond what a normal production cluster already has:
- vCenter Server 6.5 or later (Proactive HA was introduced in this version)
- vSphere HA enabled on the cluster
- DRS in Fully Automated or Partially Automated mode
- The appropriate Hardware Health Provider for your hardware installed and registered
- The cluster has sufficient capacity for vMotion (not running tight on resources)
Each vendor has its own plugin:
- Dell: OpenManage Integration for VMware vCenter (OMIVV)
- HPE: HPE OneView for VMware vCenter (OV4VC)
- Lenovo: Lenovo XClarity Integrator for VMware vCenter
Configuring Proactive HA: Step by Step
Step 1: Install the Hardware Health Provider
I’ll use Dell OMIVV as the example here since that’s what I’m running:
- Download the OMIVV appliance OVA from the Dell support site (search by your server model)
- Deploy the OVA to vCenter just like any normal VM deployment
- Access the OMIVV appliance’s web interface to register it with vCenter
- Add iDRAC credentials so OMIVV can poll health data from each ESXi host
Once registered, verify the provider has been recognized using PowerCLI:
# Connect to vCenter
Connect-VIServer -Server vcenter.lab.local -User [email protected]
# List registered Health Providers on the cluster
$cluster = Get-Cluster -Name "Production-Cluster"
$cluster.ExtensionData.ConfigurationEx.ProactiveDrsConfig
# Check host health status via provider
Get-VMHost | Get-View | Select-Object Name, @{N='HealthStatus';E={$_.OverallStatus}}
Step 2: Enable Proactive HA on the Cluster
In the vSphere Client: select the cluster → Configure → vSphere Availability → Edit → Proactive HA tab → enable Proactive HA.
Or use PowerCLI:
# Enable Proactive HA and configure automation level
$cluster = Get-Cluster "Production-Cluster"
$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$proactiveDrs = New-Object VMware.Vim.ClusterProactiveDrsConfigInfo
$proactiveDrs.Enabled = $true
$proactiveDrs.DrsAutomationLevel = "automatedLevel" # or "manualLevel"
$spec.ProactiveDrsConfig = $proactiveDrs
$cluster.ExtensionData.ReconfigureComputeResource_Task($spec, $true)
Write-Host "Proactive HA enabled on cluster: $($cluster.Name)"
Step 3: Choose the Right Remediation Mode
A Moderate alert (hardware degraded but not yet critical) gives you two remediation paths:
- Quarantine Mode: The host keeps running its current VMs but stops receiving new ones from DRS. This gives the team time to handle the hardware without an immediate evacuation.
- Maintenance Mode: vMotions all VMs off the host and puts it into maintenance. Used for Severe alerts.
My configuration: Moderate → Quarantine Mode, Severe → Maintenance Mode. This strikes a balance between safety and avoiding unnecessary vMotions.
Step 4: Test Before Going Automated
Don’t enable Automated mode right away. Run in Manual mode first and observe for a few days to see how the system responds:
# View DRS recommendations after a Proactive HA signal
Get-Cluster "Production-Cluster" | Get-DrsRecommendation |
Where-Object { $_.Reason -match "Proactive" } |
Select-Object VMotionPriority, Reason, @{N='VM';E={$_.VirtualMachine.Name}}
# Monitor Proactive HA events in vCenter
Get-VIEvent -MaxSamples 200 |
Where-Object { $_.FullFormattedMessage -match "Proactive" } |
Select-Object CreatedTime, FullFormattedMessage |
Format-Table -Wrap
The fastest way to test with Dell servers: unplug one of the two redundant PSU cables. The server keeps running fine. iDRAC immediately reports PSU redundancy lost — OMIVV picks up the alert, Proactive HA triggers a recommendation. Observe what DRS recommends, whether the host enters Quarantine Mode, then plug the PSU back in.
Best Practices from Real-World Operations
1. Exclude VMs That Shouldn’t Auto-Migrate
Legacy VMs that don’t handle live migration well, or those currently running backup jobs, should be added to the exception list. Proactive HA will skip these VMs when triggered:
# Add VM to exception list — Proactive HA will not auto-migrate this VM
$vm = Get-VM "legacy-app-01"
$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$vmOverride = New-Object VMware.Vim.ClusterDasVmConfigSpec
$vmOverride.Operation = [VMware.Vim.ArrayUpdateOperation]::add
$vmOverride.Info = New-Object VMware.Vim.ClusterDasVmConfigInfo
$vmOverride.Info.Key = $vm.ExtensionData.MoRef
$vmOverride.Info.DasSettings = New-Object VMware.Vim.ClusterDasVmSettings
$vmOverride.Info.DasSettings.VmToolsMonitoringSettings = New-Object VMware.Vim.ClusterVmToolsMonitoringSettings
$spec.DasVmConfigSpec = @($vmOverride)
(Get-Cluster "Production-Cluster").ExtensionData.ReconfigureComputeResource_Task($spec, $true)
Write-Host "VM override applied for: $($vm.Name)"
2. Keep Admission Control Headroom Generous
On an 8-host cluster, I configure admission control to tolerate 2 host failures — roughly 25% capacity reserved. Proactive HA only works when DRS actually has room to migrate. If the cluster is at full resource utilization, a trigger won’t accomplish anything.
# Check current admission control settings
$cluster = Get-Cluster "Production-Cluster"
$cluster.ExtensionData.ConfigurationEx.DasConfig.AdmissionControlPolicy |
Select-Object FailoverLevel, @{N='Policy';E={$_.GetType().Name}}
3. Create Dedicated Alerts for Proactive HA Actions
A VM migrating safely doesn’t mean the job is done — the host hardware still needs to be repaired. Create an Alarm in vCenter to notify when a Proactive HA event occurs, so the team gets a signal to act promptly regardless of when the trigger fires.
Results After Deploying on an 8-Host Cluster
Since enabling Proactive HA, there have been 3 real hardware alerts on my cluster:
- 2 PSU redundancy failures (Moderate alert): OMIVV sends signal → host enters Quarantine Mode → DRS stops scheduling new VMs on that host → team receives notification and has a full morning to handle the hardware, with zero impact on running VMs
- 1 memory module failure (Severe alert): Proactive HA triggers vMotion of all 12 VMs on the host → completes in about 10 minutes → host enters Maintenance Mode → users notice nothing
If you’re running Dell or HPE and haven’t installed OMIVV/OneView yet, prioritize this over any third-party monitoring tool. It integrates directly into vCenter and handles everything automatically without human intervention — exactly what you need at 2am.

