Если необходимо организовать нагрузочное тестирование с участием множества однородных виртуальных хостов, можно воспользоваться технологией от
VMware под названием
Linked Clone. Суть её заключается в том, что все клонируемые машины работают используя исходный родительский жесткий диск, а собственными дисками у них являются лишь разницы от реплики. Главный плюс технологии - экономия дискового пространства тома
VMFS, минус - необходимость слежения за свободным местом на томе, поскольку тонкие диски постепенно вырастают по мере их использования.
Чтобы быстро развернуть такую мини лабораторию, воспользуйтесь следующим
PowerCLI скриптом:
########## Change here for your infrastructure
# vCenter Server Name or Ip
$vCenter="vc.mydomain.local"
# vCenter User Name
$vCenterUser="user"
# vCenter User Password
$vCenterUserPassword="yourpassword"
# Source VM for cloning
$SourceName = "SOURCE-VM"
# Names for clones of source VM for example MYVM-01,MYVM-02,MYVM-03 etc.
$ClonePrefix = "MYVM-"
# Specify number of VMs you want to create
$vm_count = "5"
##############################################
# Connect to vCenter
Write-Host "Connecting to vCenter Server $vCenter" -foreground green
Connect-viserver $vCenter -user $vCenterUser -password $vCenterUserPassword -WarningAction 0
$vm = Get-VM $SourceName
# Create temporary snapshot of source VM for clone
Write-Host "Creating new snapshot for clone ..." -foreground green
$sName = Get-Random
$cloneSnap = $vm | New-Snapshot -Name "$sName"
# Get managed object view
$vmView = $vm | Get-View
# Get folder managed object reference
$cloneFolder = $vmView.parent
# Build clone specification
$cloneSpec = New-Object Vmware.Vim.VirtualMachineCloneSpec
$cloneSpec.Snapshot = $vmView.Snapshot.CurrentSnapshot
# Make linked disk specification
$cloneSpec.Location = New-Object Vmware.Vim.VirtualMachineRelocateSpec
$cloneSpec.Location.DiskMoveType = [Vmware.Vim.VirtualMachineRelocateDiskMoveOptions]::createNewChildDiskBacking
# Cycle to create clones of source VM
1..$vm_count | foreach {
$y="{0:D2}" -f $_
$CloneName = $ClonePrefix + $y
Write-Host "Creating VM $cloneName ..." -foreground green
# Create clone
$vmView.CloneVM( $cloneFolder, $cloneName, $cloneSpec )
# Power on new VM
Get-VM $cloneName | Start-VM -RunAsync
}
# End of cycle
# Remove temporary snapshot of source VM
Write-Host "Removing snapshot for clone ..." -foreground green
Remove-Snapshot $cloneSnap -Confirm:$false
# End
Write-Host "Done!" -foreground green
Перед запуском не забудьте поменять данные в начале скрипта на актуальные.
Комментариев нет:
Отправить комментарий