ふと VM を vSphere HA 無効のクラスタの ESXi から vSphere HA 有効のクラスタの ESXi に vMotion したら
本当に HA での保護は有効になるのか? とおもったので、実際に確認してみました。
今回は、PowerCLI で確認してみます。
使用した PowerCLI のバージョンです。
PowerCLI C:\> (Get-PowerCLIVersion).UserFriendlyVersion
VMware PowerCLI 6.5 Release 1 build 4624819
vCenter 6.5 に接続しています。
PowerCLI C:\> $global:DefaultVIServers | fl Name,ProductLine,Version,Build
Name : vc-sv01.go-lab.jp
ProductLine : vpx
Version : 6.5
Build : 4944578
「vm01」という名前の VM を vMotion してみます。
PowerCLI C:\> Get-VM vm01 | fl Name,PowerState,@{N="vmx_os_type";E={$_.ExtensionData.Config.GuestFullName}}
Name : vm01
PowerState : PoweredOn
vmx_os_type : VMware Photon OS (64-bit)
クラスタを 2つ用意しています。
- vsan-cluster-01: vSphere HA 有効
- vsan-cluster-02: vSphere HA 無効
PowerCLI C:\> Get-Cluster vsan-cluster-* | select Name,HAEnabled
Name HAEnabled
---- ---------
vsan-cluster-01 False
vsan-cluster-02 True
現状では、vm01 は vsan-cluster-01 にいて、vSphere HA で保護されていません。
保護されている場合は、VM の ExtensionData.Runtime.DasVmProtection.DasProtected が true になります。
(今回は vHAProtected と表示しています)
PowerCLI C:\> Get-VM vm01 | fl Name,PowerState,VMHost,@{N="Parent";E={$_.VMHost.Parent}},@{N="vHAProtected";E={($_.ExtensionData.Runtime.DasVmProtection).DasProtected}}
Name : vm01
PowerState : PoweredOn
VMHost : hv-i21.go-lab.jp
Parent : vsan-cluster-01
vHAProtected :
vSphere HA が有効な、vsan-cluster-02 の ESXi に vMotion してみます。
クラスタには 3台の ESXi が含まれています。
PowerCLI C:\> Get-Cluster vsan-cluster-02 | Get-VMHost | select Name,Version,Build
Name Version Build
---- ------- -----
hv-i26.go-lab.jp 6.5.0 4887370
hv-i24.go-lab.jp 6.5.0 4887370
hv-i25.go-lab.jp 6.5.0 4887370
それでは hv-i24.go-lab.jp という ESXi に vMotion します。
PoweredOn の VM に Move-VM を実行すると、vMotion になります。
PowerCLI C:\> Get-VM vm01 | Move-VM -Destination hv-i24.go-lab.jp -Datastore vsanDatastore-02
Name PowerState Num CPUs MemoryGB
---- ---------- -------- --------
vm01 PoweredOn 1 2.000
vsan-cluster-02 に含まれるホストに vMotion した vm01 は、vSphere HA で保護されました。
PowerCLI C:\> Get-VM vm01 | fl Name,PowerState,VMHost,@{N="Parent";E={$_.VMHost.Parent}},@{N="vHAProtected";E={($_.ExtensionData.Runtime.DasVmProtection).DasProtected}}
Name : vm01
PowerState : PoweredOn
VMHost : hv-i24.go-lab.jp
Parent : vsan-cluster-02
vHAProtected : True
vCenter の イベント でも、VM が保護されたことが分かります。
PowerCLI C:\> Get-VM vm01 | Get-VIEvent -MaxSamples 7 | fl CreatedTime,FullFormattedMessage
CreatedTime : 2017/04/07 8:42:08
FullFormattedMessage : Alarm 'Virtual machine memory usage' on vm01 changed fro
m Gray to Green
CreatedTime : 2017/04/07 8:42:08
FullFormattedMessage : Alarm 'Virtual machine CPU usage' on vm01 changed from G
ray to Green
CreatedTime : 2017/04/07 8:41:19
FullFormattedMessage : Virtual machine vm01 in cluster vsan-cluster-02 in dc01
is vSphere HA Protected and HA will attempt to restart i
t after a failure.
CreatedTime : 2017/04/07 8:41:06
FullFormattedMessage : Migration of virtual machine vm01 from hv-i21.go-lab.jp,
vsanDatastore-01 to hv-i24.go-lab.jp, vsanDatastore-02
completed
CreatedTime : 2017/04/07 8:40:47
FullFormattedMessage : Migrating vm01 off host hv-i21.go-lab.jp in dc01
CreatedTime : 2017/04/07 8:40:46
FullFormattedMessage : Hot migrating vm01 from hv-i21.go-lab.jp, vsanDatastore-
01 in dc01 to hv-i24.go-lab.jp, vsanDatastore-02 in dc01
with encryption
CreatedTime : 2017/04/07 8:40:45
FullFormattedMessage : Task: Relocate virtual machine
以上、vSphere HA についての素朴な疑問を実機確認してみる話でした。