Início > Virtualizacao / Virtual Machine > Como monitorar a placa de rede usada por uma maquina virtual em um ambiente de cluster?

Como monitorar a placa de rede usada por uma maquina virtual em um ambiente de cluster?

 

Se voce usa o Hyper-V em cluster, ja deve ter se deparado com essa situacao. Então, como resolver?

A solucao ideal e’usar NIC Teaming. Mas se seu cenario nao da’suporte a Teaming, entao voce tera de partir para uma "alteranativa", que seria a adicao de um criacao de um cluster resource script no Cluster Group.

Interessado ? A solucao disponibilizada aqui, refere-se ao blog http://blogs.msdn.com/b/robertvi/archive/2008/12/05/howto-monitor-the-nic-used-by-a-virtual-machine-in-a-hyper-v-cluster.aspx

copy and paste the below and save as NicHa.vbs 

‘*******************************************************************************************************************************************************
‘ Nic HA Script. Sample. Please feedback to robertvi at microsoft.com

‘INSTALL INSTRUCTIONS

‘ 1. copy this script to all cluster nodes into %windir%cluster
‘ 2. In Failover Cluster Management Select the VM you wish to add NIC Monitoring
‘ 3. Select "Add a resource" -> Generic Script
‘ 4. Enter %windir%clusternicha.vbs
‘ 5. Next, Finish. Note the name of the created resource (nicha Script)
‘ 6. Run ncpa.cpl
‘ 7. Identfiy the Phyiscl NIC that is used by the Switch for this VM (This NIC should only have the Switch Protocol bound)
‘    Usually something like "Local Area Connection"
‘ 8. Rename this NIC to something like "VM Network 1"
‘ 9. Do steps 6 to 8 on all cluster nodes
‘ 10. Open a Elevated CMD Prompt
‘ 11. Using the names from above, "nicha script", "VM Network 1"’
‘ 12. In cmd prompt, issue the following command: cluster res "nicha Script" /priv NicName="VM Network 1"
‘ 13. Online the Script Resource

‘You may edit the properties of the Virtual Machine Group in Failover Cluster Management to allow more failovers in a given period.
‘The Default of 2 may be reached easily during testing. The script resource will then fail, but the group will not move

‘The availability of the NIC is checked every minute by default.
‘This could be changed in the Advanced Properties of the Script Resource in the "Thorough resource health check interval", if needed



‘*******************************************************************************************************************************************************

‘*******************************************************************************************************************************************************

‘*******************************************************************************************************************************************************
‘Global variables
‘*******************************************************************************************************************************************************
‘Script Version
ScriptVersion = "0.2"

‘*******************************************************************************************************************************************************
‘Open()

‘*******************************************************************************************************************************************************
Function Open()
   
 On Error Resume Next
 Resource.LogInformation("Entering Open() for NIC Monitoring Generic Script Version " & ScriptVersion)

 If Resource.PropertyExists("NicName") = FALSE Then
  Resource.AddProperty("NicName")
  Resource.LogInformation("NICHA: Property NicName not configured")
 End If

Open = 0

End Function

‘*******************************************************************************************************************************************************
‘Online()

 
‘*******************************************************************************************************************************************************
Function Online()

 ‘Check if the NIC is connected, otherwise fail Open

 Online = 1

 strComputer = "."
 strNicName = Resource.NicName
 strquery = "Select * from Win32_NetworkAdapter where NetConnectionID = ‘" & strNicName & "’"

 Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")

 Set colItems = objWMIService.ExecQuery(strquery)

 if colItems.Count = 0 then
  Resource.LogInformation("NICHA: Error – NIC not found")
  set objWMIService = nothing
  Set colItems = nothing
  Exit Function
 end if

 set objItem = colItems.ItemIndex(0)

 if objItem.NetConnectionStatus = 2 then
  Online = 0
 else
   Resource.LogInformation("NICHA: Error – NIC not in connected state")

 end if

 set objWMIService = nothing
 Set colItems = nothing
 set objItem = nothing

End Function

‘*******************************************************************************************************************************************************
‘LooksAlive()

‘Return success
‘*******************************************************************************************************************************************************
Function LooksAlive()
 On Error Resume Next
 LooksAlive = TRUE
End Function

‘*******************************************************************************************************************************************************
‘IsAlive()

‘*******************************************************************************************************************************************************
Function IsAlive()
   
 On Error Resume Next
 IsAlive = FALSE

 strComputer = "."
 strNicName = Resource.NicName
 strquery = "Select * from Win32_NetworkAdapter where NetConnectionID = ‘" & strNicName & "’"

 Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")

 Set colItems = objWMIService.ExecQuery(strquery)

 if colItems.Count = 0 then
  Resource.LogInformation("NICHA: Error – NIC not found")
  set objWMIService = nothing
  Set colItems = nothing
  Exit Function
 end if

 set objItem = colItems.ItemIndex(0)

 if objItem.NetConnectionStatus = 2 then
  IsAlive = TRUE
 else
   Resource.LogInformation("NICHA: Error – NIC not in connected state")

 end if

 set objWMIService = nothing
 Set colItems = nothing
 set objItem = nothing

End Function

‘*******************************************************************************************************************************************************
‘Offline()

‘*******************************************************************************************************************************************************
Function Offline()

 On Error Resume Next
 Offline = 0

End Function

‘*******************************************************************************************************************************************************
‘Terminate()

‘*******************************************************************************************************************************************************
Function Terminate()

 On Error Resume Next
 Terminate = 0

End Function

‘*******************************************************************************************************************************************************
‘Close()

‘Return success
‘*******************************************************************************************************************************************************
Function Close()
 Close = 0
End Function

 

  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: