Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Copy-Harddisk op standalone ESX (PowerCLI / PoSh)

Pagina: 1
Acties:

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Copy-Harddisk : 17.06.2015 08:44:44 Copy-HardDisk The VM must be in one of the following states: PoweredOff,Suspended.
Duidelijke error hé.

Omdat dit een standalone ESX is (omwille van Oracle licensing) kan ik geen .clone() doen dus ik heb een heel script geschreven dat de facto hetzelfde doet. Voorwaarde is natuurlijk wel dat Copy-Harddisk werkt :')

De error lijkt er op te wijzen dat het sowieso niet mogelijk zou zijn om de .vmdk van een running VM te kopiëren. Maar: tijdens mijn eerste testen heeft dit wél gewerkt: snapshot nemen zodat er geen activiteit meer is op de .vmdk en die gelocked kan worden voor een copy en dan kopiëren. Ik snap niet goed wat er veranderd is voor de vmdk (...en bij gebrek aan version control kan ik het ook niet meer uitzoeken :))

Als iemand een idee heeft hoor ik het graag. Of een alternatief dat ik in PowerCli kan doen.

Volledigheidshalve, de relevante code en mijn comments:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Param($VM = 'VMNAME', $VMHost = 'HOSTNAME', $DataStore = 'DATASTORENAME' , $User = 'USERNAME', $Password = 'MYTOTALLYNOTENCRYTPEDPASSWORD')
#Add the MVware module to use the cmdlets
Add-PSSnapIn VMware.VimAutomation.Core
#Connect to VM Host
Connect-VIServer $VMHost -User $User -Password $Password | Out-Null
#Get our VM as an object (instead of string)
$VM = Get-VM $VM
#Take a snapshot so the VHDs are no longer in use
$NewSnapShot = $("TempSnapshot-" + $VM.Name)
New-Snapshot -Name $NewSnapShot -VM $VM -Quiesce | Out-Null
#Create a new VM based on the properties of the old one
## I didn't just copy the .vmx as that would give UID problems
$NewVMName = $($VM.Name + "_Backup_" + $(Get-Date -Format yyyyMMddHHmm))
New-VM -Name $NewVMName -VMHost $VMHost -Datastore $DataStore -DiskMB 10 -MemoryMB $VM.MemoryMB -NumCPU $VM.NumCPU -CD -Floppy -GuestId $VM.Guest.GuestID  | Out-Null
#Find full path (this is valid for my environment... hardcoded)
If (Test-Path vmstore:\Company1\$DataStore\$NewVMName){$NewVMPath = "vmstore:\Company1\$DataStore\$NewVMName"}
ElseIf (Test-Path vmstore:\Company2\$DataStore\$NewVMName){$NewVMPath = "vmstore:\Company2\$DataStore\$NewVMName"}
Else {"Dafuq?"; Exit} #To do
#Connect to the VMstore
Push-Location $NewVMPath
#Remove the VHDs from the new VM
Remove-Item *.vmdk | Out-Null
#Get the VHDs from the machine you want to copy and copy them to the directory of the new one
$NewVM = Get-VM $NewVMName
Get-HardDisk $VM | Copy-Harddisk -DestinationPath  $("[" + $DataStore + "] $NewVM") -DestinationStorageFormat Thin
#Adjust the SCSI-Controller so they match
If (!((Get-ScsiController $VM).Type -EQ (Get-ScsiController $NewVMName).Type)){Set-ScsiController -VM $NewVM -Type $(Get-ScsiController $VM).Type -BusSharingMode $(Get-ScsiController $VM).BusSharingMode}
#Some networking: we don't want the clone to cause duplicates on the network, so we turn the NIC off
Get-NetworkAdapter $newVM | Set-NetworkAdapter -StartConnected $False -Confirm $False
#Remove the old snapshot, because we don't need it anymore and we want to be tidy. 
Get-Snapshot $VM | Where-Object {$_.Name -EQ $NewSnapShot} | Remove-Snapshot -Confirm $False 
#Disconnect
Disconnect-VIServer -Confirm:$False
#Back to original run path
Pop-Location
#EOF


PS. Via de console kan ik trouwens ook live kopiëren:

Afbeeldingslocatie: http://static.tweakers.net/ext/f/pTlGTMbOF3GKN38PNE2nwoZz/full.png

Edit
Ho, ik denk het gesnapt te hebben: Get-Harddisk geeft de verkeerde (althans voor mijn doeleinden) vmdk terug: de -000001-versies van het snapshot.

[ Voor 4% gewijzigd door YellowOnline op 17-06-2015 11:23 ]


  • Question Mark
  • Registratie: Mei 2003
  • Laatst online: 28-11 16:59

Question Mark

Moderator SSC/WOS

F7 - Nee - Ja

Welke versie VSphere gebruik je? Dat scheelt nogal namelijk in opties.

Wat bedoel je verder met Standalone ESX? Niet gemanaged door VCenter, of wel gemanaged maar niet opgenomen in een cluster? Ik gok overigens dat je met de gratis variant draait, waardoor de benodigde storage-api's voor het clonen niet beschikbaar zijn.

Moet het persé via Powershell? Anders zou je nog eens kunnen kijken of je niet simpelweg een kopie van je VM kunt maken met de vwmare converter. Met converter-cli.exe is die ook nog wel gescript aan te sturen. (ik heb dit overigens nog nooit getest).

MCSE NT4/2K/2K3, MCTS, MCITP, CCA, CCEA, CCEE, CCIA, CCNA, CCDA, CCNP, CCDP, VCP, CEH + zwemdiploma A & B


  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Question Mark schreef op woensdag 17 juni 2015 @ 11:25:
Welke versie VSphere gebruik je? Dat scheelt nogal namelijk in opties.

Wat bedoel je verder met Standalone ESX? Niet gemanaged door VCenter, of wel gemanaged maar niet opgenomen in een cluster? Ik gok overigens dat je met de gratis variant draait, waardoor de benodigde storage-api's voor het clonen niet beschikbaar zijn.

Moet het persé via Powershell? Anders zou je nog eens kunnen kijken of je niet simpelweg een kopie van je VM kunt maken met de vwmare converter. Met converter-cli.exe is die ook nog wel gescript aan te sturen. (ik heb dit overigens nog nooit getest).
vSphere 5.0 en zeker en vast niet gratis :) Met standalone bedoel ik inderdaad niet gemanaged door een vCenter: Oracle licensing valt ontzettend duur uit blijkbaar zodra de Oracle VMs collocated zijn.

Omdat het de bedoeling is een en ander te automatiseren en te laten rapporteren aan SCOM is PoSh inderdaad een vereiste. Maareuh, het werkt intussen: ik moet met PowerCLI een array bouwen van vmdks alvorens een snapshot te nemen, anders geeft het commando de delta-vmdks terug.

  • Dennism
  • Registratie: September 1999
  • Laatst online: 00:39
YellowOnline schreef op woensdag 17 juni 2015 @ 11:37:
[...]


vSphere 5.0 en zeker en vast niet gratis :) Met standalone bedoel ik inderdaad niet gemanaged door een vCenter: Oracle licensing valt ontzettend duur uit blijkbaar zodra de Oracle VMs collocated zijn.

Omdat het de bedoeling is een en ander te automatiseren en te laten rapporteren aan SCOM is PoSh inderdaad een vereiste. Maareuh, het werkt intussen: ik moet met PowerCLI een array bouwen van vmdks alvorens een snapshot te nemen, anders geeft het commando de delta-vmdks terug.
Je mag in principe je host best laten managen door een vCenter als dat een voorwaarde is voor je backup pakket bijvoorbeeld, wat echter van Oracle niet mag in een standaard licentie overeenkomt is de host opnemen in een cluster zonder dat je op dat moment alle hosts in dat cluster gaat voorzien van licenties, iets wat inderdaad vrij duur kan uitvallen. Er zijn echter gevallen bekend waarbij deze beperking uit het contract is gehaald of in aangepast vorm in het contract gezet is na uitonderhandelen waardoor de klant meer rechten heeft, dit zijn echter geen zaken die een "kleine" klant kan doen.

Nu zijn de geleerden er nog niet uit of Oracle die voorwaarde juridisch hard kan maken. Er zijn ook experts op gebied van licensing die claimen dat in principe het inrichten van een oracle server in een cluster met DRS en het gebruik van host affinity rules en / of de luns met de Oracle software alleen beschikbaar maken aan hosts met licentie dekking met een goede audit trail gewoon binnen de standaard licentie overeenkomst past. Een Oracle top man schijnt dit ook ooit eens bevestigd te hebben in een interview, echter heeft Oracle dat interview later offline laten halen.