VMware: Multi-NIC vMotion Configuration with PowerShell
Changed configuration of numerous VMware clusters to utilize multi-NIC vMotion. As with all my PS, it’s quick & dirty and cobbled from a couple of example scripts. Assumes existing vmkernel port group named “vMotion”
<# .SYNOPSIS Configure multi-NIC vMotion .DESCRIPTION Miklm.com 08/19/2015 Credit to examples from http://www.yellow-bricks.com/2011/09/17/multiple-nic-vmotion-in-vsphere-5/#comment-28153 & http://hostilecoding.blogspot.com/2014/01/vmware-virtual-standard-switch.html #> $viserver = "vCenter.local" $cluster = "CLUSTERNAME" $vswitchName = "vSwitch1" $VMotionVLan = "908" $vSwitch2Nics = "vmnic1","vmnic3" $VMotionPortGroupName1 = "vMotion-01" $VMotionPortGroupName2 = "vMotion-02" Connect-VIServer $viserver Foreach ($esxhost in (Get-Cluster -name $cluster | Get-VMHost)) { $vswitch = Get-VirtualSwitch -VMHost $esxhost -Name $vswitchName # Remove the original "vMotion" VMkernel Port group Remove-VMHostNetworkAdapter -Nic (Get-VMHostNetworkAdapter -VMHost $esxhost | where {$_.PortGroupName -eq "vMotion"}) -Confirm:$false Remove-VirtualPortGroup -VirtualPortGroup (Get-VirtualPortGroup -Name "vMotion" -vmhost $esxhost) -Confirm:$false # Configure virtual switch for Multi-NIC vMotion $vportgroup1 = New-VirtualPortGroup -VirtualSwitch $vswitch -Name $VMotionPortGroupName1 -VLanId $VMotionVLan $vportgroup2 = New-VirtualPortGroup -VirtualSwitch $vswitch -Name $VMotionPortGroupName2 -VLanId $VMotionVLan $vNic1 = New-VMHostNetworkAdapter -VMHost $esxhost -VirtualSwitch $vswitch -PortGroup $vportgroup1 -VMotionEnabled:$true $vNic2 = New-VMHostNetworkAdapter -VMHost $esxhost -VirtualSwitch $vswitch -PortGroup $vportgroup2 -VMotionEnabled:$true $vportgroup1 | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicActive $vSwitch2Nics[0] -MakeNicStandBy $vSwitch2Nics[1] $vportgroup2 | Get-NicTeamingPolicy | Set-NicTeamingPolicy -MakeNicActive $vSwitch2Nics[1] -MakeNicStandBy $vSwitch2Nics[0] }