Échelle d'un niveau de l'ordinateur (Script)
S'applique à: System Center 2012 R2 Virtual Machine Manager, System Center 2012 - Virtual Machine Manager
Vous pouvez réduire la quantité de ressources utilisées par un service déployé en faisant évoluer dans le service. Pour faire évoluer dans un service, vous pouvez supprimer un ordinateur virtuel à partir d'un niveau d'ordinateur ou modifier l'état de la machine virtuelle. Vous définissez si un niveau d'ordinateur peut être ajusté dans en définissant le InstanceMinimumCount paramètre pour un modèle de niveau ordinateur.
Le script dans cette rubrique comprend deux jeux de paramètres. Les deux jeux de paramètres vous demandent de fournir le niveau de service et l'ordinateur. Toutefois, vous pouvez spécifier que l'ordinateur virtuel est supprimé à l'aide de la RemoveVM basculer ou entreprendre une action sur l'ordinateur virtuel à l'aide de le VMAction paramètre.
Le script suivant vérifie si vous êtes en mesure de mettre à l'échelle d'une couche en s'assurant que la suppression d'un ordinateur virtuel à partir de service n'entraînera pas le service passe sous le nombre d'ordinateurs minimal pour la couche. Puis, le script recherche la machine virtuelle plus récemment créée qui s'exécute dans le niveau d'ordinateur et soit supprime la machine virtuelle, ou place l'ordinateur virtuel dans un choix d'états de non-exécution.
# Description: The script verifies that you are able to scale in a tier and, if so,
# the script locates the most recently created virtual machine running
# on the computer tier and either removes the virtual machine or stops,
# pauses, stores, or saves the state of the virtual machine.
Param (
[parameter(Mandatory=$true,ParameterSetName="RemoveVM")]
[Switch]
$RemoveVM,
[parameter(Mandatory=$true,ParameterSetName="RetainVM")]
[ValidateSet("Stop","Pause","SaveState","Store")]
[String[]]
$VMAction,
[parameter(Mandatory=$true)]
[String]
$Service=$(throw "Please provide the name of a service."),
[parameter(Mandatory=$true)]
[String]
$ComputerTier=$(throw "Please provide the name of a computer tier."),
[parameter(Mandatory=$false,ParameterSetName="RetainVM")]
[String]
$LibraryServer,
[parameter(Mandatory=$false,ParameterSetName="RetainVM")]
[String]
$LibraryPath
)
# Get the service and the computer tier.
$ServiceInstance = Get-SCService -Name $Service
$Tier = Get-SCComputerTier -Service $ServiceInstance | where {$_.Name -eq $ComputerTier}
# Ensure that you are able to scale the tier in.
If ($Tier.VMs.count -le $Tier.InstanceMinimumCount) {throw "You have reached the instance minimum for this tier."}
# Find the most recently created virtual machine in the tier that is running.
$VMs = @(Get-SCVirtualMachine | where {$_.ComputerTier -eq $Tier -and $_.Status -eq "Running"}) | sort -Property CreationTime -Descending
$VM = $VMs[0]
If ($RemoveVM)
{
Stop-SCVirtualMachine -VM $VM -Force
Remove-SCVirtualMachine -VM $VM
}
Else
{
If ($VMAction -eq "Stop")
{
Stop-SCVirtualMachine -VM $VM
}
ElseIf ($VMAction -eq "Pause")
{
Suspend-SCVirtualMachine -VM $VM
}
ElseIf ($VMAction -eq "SaveState")
{
Stop-SCVirtualMachine -VM $VM -SaveState
}
ElseIf ($VMAction -eq "Store")
{
Save-SCVirtualMachine -VM $VM -LibraryServer $LibraryServer -SharePath $LibraryPath
}
Else
{
throw "You did not provide a valid action for the virtual machine."
}
}