会社でESXiホスト8台のVMwareクラスターを引き継いだ当初、iDRAC/iLOの警告監視は完全に手動でした——ベンダーの監視システムからメールを受け取り、SSHで確認し、問題があると判断した場合は手動でVMを別のホストにvMotionする、という流れです。その手順はある金曜の夜まではうまく機能していました。あるホストでPSU redundancyの障害が発生し、誰もメールをタイムリーに受信できませんでした。Standard HAがホストが完全にダウンしてから起動し、VMが落ちてから別のホストで再起動されました——そのホスト上の全ワークロードで実際のダウンタイムは約3〜4分でした。
その障害をきっかけに、Proactive HAについて本格的に調べ始めました——vCenterがホストが実際に障害を起こす前にVMを自動的に移行できる機能で、ベンダー自身の監視システムからのハードウェアヘルス警告シグナルに基づいて動作します。
従来のHAと手動による予防措置の問題点
監視が不足していたわけではありません——DellのiDRACやHPEのiLOは非常に詳細な警告を出します:メモリモジュール障害、PSU劣化、高温、NICエラーなど。問題は警告から行動までの間のギャップにあります。
- メールで警告を受信 → 誰かが読む → 深刻度を評価 → vMotionするか判断 → 実行
- 業務時間外:午前2時に警告が送信され、チームが読むのは翌朝8時
- ハードウェアが劣化状態(PSU 1/2が障害)でも動作は続くが、リスクは非常に高い
標準のvSphere HAはホストがハートビートを失った後にしか反応しません——完全にダウンしてから約12秒のタイムアウトです。その時点でVMはすでにkillされており、別のホストで再起動されます。適切な再接続メカニズムを持たないデータベースやステートフルアプリケーションにとって、数分のダウンタイムは連鎖障害を引き起こすには十分です。
Proactive HAがこの問題を解決できる理由
Proactive HAはvSphere HAの拡張機能で、ベンダーのHardware Health Providerから直接シグナルを受け取ります——vCenterにインストールされたプラグインで、各ホストのiDRAC/iLOと接続します。Providerが問題を検出すると、重大度を評価し、ホストが完全に障害を起こす前にvCenterにシグナルを送信します。
実際のトリガーを見ると、フローは次のようになります:
- iDRAC/iLOがハードウェア障害を検知し、Hardware Health Providerに警告を送信
- Providerが重大度を分類:Moderate(負荷軽減)またはSevere(即時退避)
- vCenterがシグナルを受信 → DRSがVMを正常なホストに移行するようトリガー
- ホストは設定に応じてQuarantine ModeまたはMaintenance Modeに隔離される
- VMは実行状態のまま移行される——ダウンタイムなし
重要なポイント:VMはホストがまだ生きて安定している間にvMotionされます——ホストが死んでから再起動されるのではありません。
設定前の前提条件
Proactive HAは通常の本番クラスターが既に持っているもの以外に特別なものを要求しません:
- vCenter Server 6.5以降(Proactive HAはこのバージョンから利用可能)
- クラスターでvSphere HAが有効になっていること
- DRSがFully AutomatedまたはPartially Automatedモードであること
- ハードウェアに対応するHardware Health Providerがインストールおよび登録されていること
- クラスターにvMotion可能な十分なキャパシティがあること(リソースがタイトでないこと)
各ベンダーには専用のプラグインがあります:
- Dell: OpenManage Integration for VMware vCenter (OMIVV)
- HPE: HPE OneView for VMware vCenter (OV4VC)
- Lenovo: Lenovo XClarity Integrator for VMware vCenter
Proactive HAの設定手順
ステップ1:Hardware Health Providerのインストール
Dell環境を運用しているため、以下ではDell OMIVVを例として使用します:
- DellサポートサイトからアプライアンスのOVAをダウンロード(お使いのサーバーモデルで検索)
- 通常のVM展開と同様にvCenterにOVAをデプロイ
- OMIVVアプライアンスのWeb UIにアクセスしてvCenterに登録
- iDRACの認証情報を追加してOMIVVが各ESXiホストからヘルスデータをポーリングできるようにする
登録後、PowerCLIでProviderが認識されているか確認します:
# vCenterに接続
Connect-VIServer -Server vcenter.lab.local -User [email protected]
# クラスターに登録済みのHealth Providerの一覧を表示
$cluster = Get-Cluster -Name "Production-Cluster"
$cluster.ExtensionData.ConfigurationEx.ProactiveDrsConfig
# プロバイダー経由でホストのヘルスステータスを確認
Get-VMHost | Get-View | Select-Object Name, @{N='HealthStatus';E={$_.OverallStatus}}
ステップ2:クラスターでProactive HAを有効化
vSphere Clientで:クラスターを選択 → Configure → vSphere Availability → Edit → Proactive HAタブ → Enable Proactive HAをオン
またはPowerCLIを使用:
# Proactive HAを有効化してオートメーションレベルを設定
$cluster = Get-Cluster "Production-Cluster"
$spec = New-Object VMware.Vim.ClusterConfigSpecEx
$proactiveDrs = New-Object VMware.Vim.ClusterProactiveDrsConfigInfo
$proactiveDrs.Enabled = $true
$proactiveDrs.DrsAutomationLevel = "automatedLevel" # または "manualLevel"
$spec.ProactiveDrsConfig = $proactiveDrs
$cluster.ExtensionData.ReconfigureComputeResource_Task($spec, $true)
Write-Host "Proactive HA enabled on cluster: $($cluster.Name)"
ステップ3:適切なRemediation Modeの選択
Moderateアラート(ハードウェアが劣化しているが重大ではない状態)では2つの対処方法があります:
- Quarantine Mode:ホストは現在のVMを引き続き実行しますが、DRSからの新しいVMは受け付けません。チームはすぐに退避せずにハードウェアを対処する時間があります。
- Maintenance Mode:ホストからすべてのVMをvMotionし、ホストをメンテナンス状態にします。Severeアラートに使用します。
私の設定:Moderate → Quarantine Mode、Severe → Maintenance Mode。この方法は安全性と不要なvMotionを避けることのバランスを取ります。
ステップ4:Automatedにする前のテスト
すぐにAutomatedにしないでください。まずManualモードで実行し、システムがどのように反応するか数日間観察します:
# Proactive HAシグナル後のDRS推奨事項を確認
Get-Cluster "Production-Cluster" | Get-DrsRecommendation |
Where-Object { $_.Reason -match "Proactive" } |
Select-Object VMotionPriority, Reason, @{N='VM';E={$_.VirtualMachine.Name}}
# vCenterのProactive HAイベントを監視
Get-VIEvent -MaxSamples 200 |
Where-Object { $_.FullFormattedMessage -match "Proactive" } |
Select-Object CreatedTime, FullFormattedMessage |
Format-Table -Wrap
Dellサーバーで最も素早くテストする方法:冗長PSUケーブルの1本を抜きます。サーバーは正常に動作し続けます。iDRACがすぐにPSU redundancy lostを報告——OMIVVがアラートを受信し、Proactive HAが推奨事項をトリガーします。DRSが何を提案するか、ホストがQuarantine Modeに入るかどうかを観察し、その後PSUを接続し直します。
実際の運用経験からのベストプラクティス設定
1. 自動移行すべきでないVMを除外する
ライブマイグレーションをうまくサポートしないレガシーVMやバックアップジョブを実行中のVMは、例外リストに追加する必要があります。Proactive HAはトリガー時にこれらのVMをスキップします:
# VMを例外リストに追加 - Proactive HAはこの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. Admission controlを十分に広く保つ
8ホストのクラスターでは、admission controlを2ホスト障害に対応できるように設定しています——25%のキャパシティを予約することと同等です。Proactive HAはDRSが実際に移行する空きがある場合にのみ機能します。クラスターのリソースが満杯の場合、トリガーされても何もできません。
# 現在のadmission controlを確認
$cluster = Get-Cluster "Production-Cluster"
$cluster.ExtensionData.ConfigurationEx.DasConfig.AdmissionControlPolicy |
Select-Object FailoverLevel, @{N='Policy';E={$_.GetType().Name}}
3. Proactive HAアクション用の専用アラートを作成する
VMが安全に移行されたからといって作業完了ではありません——ホストのハードウェアはまだ修理が必要です。vCenterにAlarmを作成してProactive HAイベント発生時に通知し、トリガーがいつ発生してもチームがタイムリーに対処できるシグナルを確保します。
8ホストクラスターでの展開後の結果
Proactive HAを有効にして以来、私のクラスターで3回の実際のハードウェアアラートがありました:
- PSU redundancy障害2回(Moderateアラート):OMIVVがシグナルを送信 → ホストがQuarantine Modeに入る → DRSがそのホストに新しいVMをスケジュールしない → チームが通知を受け取り、午前中をかけてハードウェアを対処、実行中のVMには一切影響なし
- メモリモジュール障害1回(Severeアラート):Proactive HAがホスト上の12台のVM全てのvMotionをトリガー → 約10分で完了 → ホストがMaintenance Modeに入る → ユーザーは何も気づかず
DellまたはHPEを運用していてOMIVV/OneViewをまだインストールしていない場合は、サードパーティの監視ツールよりも先にこれをセットアップすることを優先すべきです。vCenterに直接統合され、人手を必要とせず自動で対処します——午前2時に必要なまさにそれです。

