Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

PowerCLI 5.1 - VMDK online convert THICK to THIN

Alles zum Virtualisierungsmanagement und Servermanagement, was nicht direkt in ein festes Version-Schema paßt.

Moderatoren: irix, Dayworker

Member
Beiträge: 11
Registriert: 11.12.2011, 21:59

PowerCLI 5.1 - VMDK online convert THICK to THIN

Beitragvon rapster » 23.12.2012, 17:55

Hab ein kleines PowerCLI Script geschrieben welches alle THICK Festplatten online (ohne VM auszuschalten) nach THIN convertiert.
Die Zeile "ForEach ($VM in Get-VM) {" kann durch "ForEach ($VM in Get-VM "VMNAME") {" ersetzt werden um nur eine bestimmte VM zu bearbeiten.
Hierfür wird ein zweiter Datastore benötigt, die VMDKs liegen am Ende wieder am selben Ort wie vor dem Convert (Auch wenn die VM HDDs auf verschiedenen Datastores hat).

Viel Spaß damit, hoffe es hilft dem ein oder anderen...

Code: Alles auswählen

$TempDatastore = "MySecondDatastoreName"

$ProgressPreference = "SilentlyContinue"
$WarningPreference = "Continue"
$ConfirmPreference = "None"
$ErrorActionPreference = "Continue"

ForEach ($VM in Get-VM) {
   $WriteVM=$true
   $VMDK_Name = @()
   $VMDK_Path = @{}
   ForEach ($HDD in $VM.HardDisks | ?{$_.StorageFormat -ne "Thin"}) {
      If($WriteVM) { $WriteVM=$false; Write-Host -fore magenta "`nProcessing VM '$VM' ..."; }
      $OriginalDatastore = $HDD.Filename -Replace '\[(.+)\].*',"`$1"
      if ($OriginalDatastore -notmatch $TempDatastore) {
         $VMDK = $HDD.Filename -Replace '.+/(.+)$',"`$1"
         $VMDK_Name += $VMDK
         $VMDK_Path.Add($VMDK,$OriginalDatastore)
         Write-Host -fore yellow "Moving '$($HDD.Filename)' temporarily to '$TempDatastore' ..."
            Move-HardDisk -HardDisk $HDD -Datastore $TempDatastore -StorageFormat thin
      }
   }
   $VM = Get-VM $VM
   ForEach ($HDD in $VM.HardDisks) {
      $VMDK = $HDD.Filename -Replace '.+/(.+)$',"`$1"
      if( $VMDK_Name -contains $VMDK ) {
         $OriginalDatastore = $VMDK_Path.Get_Item($VMDK)
         Write-Host -fore green "Moving '$($HDD.Filename)' back to '$OriginalDatastore' ..."
            Move-HardDisk -HardDisk $HDD -Datastore $OriginalDatastore -StorageFormat thin
      }
   }
}

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 23.12.2012, 21:39

Benötigt das Storage vMotion Lizenz ?

King of the Hill
Beiträge: 13010
Registriert: 02.08.2008, 15:06
Wohnort: Hannover/Wuerzburg
Kontaktdaten:

Beitragvon irix » 23.12.2012, 21:44

Ja natuerlich.

Gruss
Joerg

Member
Beiträge: 11
Registriert: 11.12.2011, 21:59

Beitragvon rapster » 23.12.2012, 21:54

Ja, "vSphere Storage vMotion" wird benötigt.

Zu erwähnen ist ebenfalls dass das benötigte cmdlet "Move-HardDisk" erst in vSphere 5.1 eingeführt wurde.
In früheren vSphere Versionen lässt sich ein Script mit dem cmdlet "Move-VM" erstellen, welches allerdings nicht auf VM's mit Festplatten auf verschiedenen Datastores anwendbar ist.

Experte
Beiträge: 1006
Registriert: 30.10.2004, 12:41

Beitragvon mbreidenbach » 24.12.2012, 14:31

rapster hat geschrieben:Ja, "vSphere Storage vMotion" wird benötigt.


Dachte ich mir ja irgendwie schon ^^


Zurück zu „vCenter / VMware VirtualCenter“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste