cat-scvmm

Hyper-V Cluster Virtual Machine Renaming Script

VIRTUAL MACHINE MANAGER

Wer kennt das nicht, in einem Hyper-V Cluster existieren oftmals Virtual Machines welche in Hyper-V angelegt wurden und nun mit System Center Virtual Machine Manager verwaltet werden. Spricht technisch gesehen nichts dagegen, aber wenn man unter die Haube schaut, dann sieht man da doch einen Unterschied… die Namenskonvention für die Virtual Machine Cluster Ressourcen.

Die Tabelle zeigt die Unterschiede zwischen der Failover Cluster und Virtual Machine Manager Namenskonvention im Detail:

Objekt Failover Cluster Name VMM Name
Cluster Group %MyVM% SCVMM %MyVM% Resources
Virtual Machine Virtual Machine %MyVM% SCVMM %MyVM%
Virtual Machine Configuration Virtual Machine Configuration %MyVM% SCVMM %MyVM% Configuration

Wie man sehen kann, werden bei VMM die Virtual Machines und deren Cluster Objekte, welche durch VMM selbst angelegt wurden, mit einem Präfix “SCVMM” versehen. Im Failover Cluster werden die beiden Namenskonventionen wie folgt dargestellt:

Failover Cluster Naming VMM Naming
 

Wie erwähnt hat dies technisch gesehen keinen negativen Einfluss auf das System – es wäre aber dennoch praktisch alle Virtual Machines mit dem gleichen Schema benannt zu haben. Dies lässt sich mit einem simplen PowerShell Script realisieren, indem sämtliche Virtual Machines auf die VMM Namenskonvention angepasst werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Import-Module FailoverClusters
 
$ClusterName = Read-Host "Please enter cluster name (CNO)"
$MyCluster = Get-Cluster $ClusterName
 
$VMResources = Get-ClusterResource -Cluster $MyCluster  | Where {($_.ResourceType –like "Virtual Machine") –and ($_.Name –notlike "SCVMM*")}
 
ForEach ($VM in $VMResources)
{
	$MyVM = (Split-Path "$VM" -leaf).ToString().Replace("Virtual Machine ", "")
 
	#Rename the cluster group, virtual machine and virtual machine configuration
	$MyCluster | Get-ClusterGroup -Name "$MyVM" | %{ $_.Name = "SCVMM $MyVM Resources" }
	$MyCluster | Get-ClusterResource -Name "$VM" | %{ $_.Name = "SCVMM $MyVM" }
	$MyCluster | Get-ClusterResource -Name "Virtual Machine Configuration $MyVM" | %{ $_.Name = "SCVMM $MyVM Configuration" }
	Write-Host "Successfully renamed $MyVM" -f green
}

Sobald das PowerShell Script abgeschlossen ist, ist die Virtual Machine bereits angepasst:

Wichtig, das Umbenennen von Ressourcen sollte bei einem Standard Hyper-V Cluster keinen Einfluss auf den Betrieb haben, dennoch sollte das Script vor dem Einsatz getestet werden…

Weitere Informationen

Failover Cluster , Hyper-V , SCVMM

, , , , , ,

About the Author

Michel Luescher is a solution architect in the worldwide Datacenter & Cloud Infrastructure Center of Excellence (CoE) at Microsoft Corporation based out of Zurich, Switzerland. Primarily, Michel is focused on hybrid cloud solutions (Hyper-V, System Center and Microsoft Azure). In addition Michel is speaker, blogger and author of several books.

Leave a Reply.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Hyper-V Unterstützung für RHEL 6.x und CentOS 6.x Citrix XenServer Fabric Management in System Center Virtual Machine Manager 2012