Дупликация MAC адреса на хосте VMM; Event 16945 источник - MsLbfoSys
Недавно заметил подобные ивенты на хостах виртуализации.
Спасибо добрым людям, рассказали что к чему. При создании Hyper-V свича через VMM процесс можно изобразить следующим образом
На хосте имеется некоторое количество сетевых карт, Вы создаете свитч через VMM и ставите галочку наследовать настройки от родительской системы
Происходит создание свича
И собственно то самое “сохранение настроек родительской системы”
В результате которого vNIC менеджмент сети получает MAC адрес хоста.
Workaround:
Помните, что в результате изменений настроек vNIC соединение по сети будет разорвано на непродолжительный период (до нескольких минут)
#Получаем MAC пул из VMM
$MACPool = Get-SCMACAddressPool "имя MAC пула"
#Получаем vNIC хоста
$VMHostNIC = Get-SCVirtualNetworkAdapter -VMHost "FQDN хоста" | ? {$_.PortClassification -match "Hоst Management"}
#Смена MAC адреса для vNIC хоста в VMM
$NewMACAddress = (Grant-SCMACAddress -MACAddressPool $macpool -VirtualNetworkAdapter $VMHostNIC).Address
#Присваиваем MAC адрес адаптеру
$AdapterName = $VMHostNIC.Name
Invoke-Command -ComputerName "FQDN хоста" -ScriptBlock {
$MgmtNIC = Get-NetAdapter | where-object {$_.Name -match $USING:AdapterName -and $_.InterfaceDescription -match 'Hyper-V Virtual Ethernet Adapter'}
$MgmtNIC | Set-NetAdapter -MacAddress $USING:NewMACAddress -confirm:$false
}
Runbook для SMA
Workflow Set-MgmtvNICMACAddress
{
param(
[Parameter(Mandatory=$true)]
[STRING]$VMMServer,
[Parameter(Mandatory=$true)]
[STRING]$VMHostName,
[Parameter(Mandatory=$false)]
[STRING]$PortClassification="Host management",
[Parameter(Mandatory=$false)]
[STRING]$MACAddressPool="Default MAC address pool"
)
$HostMgmtCred = Get-AutomationPSCredential -Name "Host Access Account"
$VMMMgmtCred = Get-AutomationPSCredential -Name "SCVMM Access Account"
$NewNICInfo = InlineScript
{
$macpool = Get-SCMACAddressPool $USING:MACAddressPool
$VMHostNIC = Get-SCVirtualNetworkAdapter -VMHost $USING:VMHostName | ? {$_.PortClassification -match "$USING:PortClassification"}
$NewMACAddress = (Grant-SCMACAddress -MACAddressPool $macpool -VirtualNetworkAdapter $VMHostNIC).Address
$NICInfo = New-Object -TypeName PSObject -Property @{
"VMHostNICName" = $VMHostNIC.Name
"NewMACAddress" = $NewMACAddress
}
$NICInfo
} -PSComputerName $SCVMMServer -PSCredential $VMMMgmtCred
InlineScript
{
$AdapterName = ($USING:NewNICInfo).VMHostNICName
$NewMACAddress = ($USING:NewNICInfo).NewMACAddress
$MgmtNIC = Get-NetAdapter | ? {$_.Name -match "$AdapterName" -and $_.InterfaceDescription -match 'Hyper-V Virtual Ethernet Adapter'}
$MgmtNIC | Set-NetAdapter -MacAddress $NewMACAddress -confirm:$false
} -PSComputerName $VMHostName -PSCredential $HostMgmtCred
}
Written on July 14, 2014