Une fois que vous avez créé une machine virtuelle, vous pouvez la mettre à l’échelle en modifiant sa taille. Dans certains cas, vous devez commencer par libérer la machine virtuelle. Une désallocation peut être nécessaire si la nouvelle taille n’est pas disponible sur le cluster matériel qui héberge actuellement la machine virtuelle. Il est important de comprendre que même lorsque la désallocation n’est pas nécessaire, si la machine virtuelle est en cours d’exécution, la modification de sa taille entraîne son redémarrage. Pour cette raison, vous devez considérer la modification de la taille d’une machine virtuelle comme une procédure perturbatrice, en particulier pour les charges de travail avec état hébergées sur cette machine virtuelle.
Si votre machine virtuelle utilise le stockage Premium, assurez-vous de choisir une version s de la taille pour obtenir un support de stockage Premium. Par exemple, choisissez Standard_E4s_v3 au lieu de Standard_E4_v3.
Tapez machines virtuelles dans la zone de recherche. Sous Services, sélectionnez Machines virtuelles.
Dans l'onglet Machines virtuelles, sélectionnez la machine virtuelle à redémarrer.
Dans le menu de gauche, sélectionnez taille. Choisissez une nouvelle taille compatible dans la liste des formats disponibles
Après avoir choisi une taille, sélectionnez Redimensionner.
Remarque
Si la machine virtuelle est en cours d’exécution et que vous modifiez sa taille, elle redémarre.
Si votre machine virtuelle est toujours en cours d’exécution et que vous ne voyez pas la taille que vous voulez dans la liste, l’arrêt de la machine virtuelle peut permettre d’afficher d’autres tailles.
Avertissement
Le fait de libérer la machine virtuelle libère également toutes les adresses IP dynamiques affectées à la machine virtuelle. Les disques de données et du système d’exploitation ne sont pas affectés.
Si vous redimensionnez une machine virtuelle de production, envisagez d’utiliser des réservations de capacité Azure pour réserver la capacité de calcul dans la région.
Définissez les variables relatives au groupe de ressources et au nom de la machine virtuelle. Remplacez les valeurs par les informations de la machine virtuelle que vous souhaitez redimensionner.
Utilisez PowerShell pour redimensionner une machine virtuelle qui ne se trouve pas dans un groupe à haute disponibilité.
Ce script PowerShell Cloud Shell initialise les variables $resourceGroup, $vm et $size avec le nom du groupe de ressources, le nom de la machine virtuelle et la taille de machine virtuelle souhaitée respectivement. Il récupère ensuite l’objet de machine virtuelle à partir d’Azure à l’aide de la cmdlet Get-AzVM. Le script modifie la propriété VmSize du profil matériel de la machine virtuelle à la taille souhaitée. Enfin, il applique ces modifications à la machine virtuelle dans Azure à l’aide de la cmdlet Update-AzVM.
# Set variables
$resourceGroup = 'myResourceGroup'
$vmName = 'myVM'
$size = 'Standard_DS3_v2'
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Change the VM size
$vm.HardwareProfile.VmSize = $size
# Update the VM
Update-AzVM -ResourceGroupName $resourceGroup -VM $vm
En guise d’alternative à l’exécution du script dans Azure Cloud Shell, vous pouvez également l’exécuter localement sur votre machine. Cette version locale du script PowerShell inclut des étapes supplémentaires pour importer le module Azure et authentifier votre compte Azure.
Remarque
PowerShell local peut exiger que la machine virtuelle redémarre pour prendre effet.
# Import the Azure module
Import-Module Az
# Login to your Azure account
Connect-AzAccount
# Set variables
$resourceGroup = 'myResourceGroup'
$vmName = 'myVM'
$size = 'Standard_DS3_v2'
# Select the subscription
Select-AzSubscription -SubscriptionId '<subscriptionID>'
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Change the VM size
$vm.HardwareProfile.VmSize = $size
# Update the VM
Update-AzVM -ResourceGroupName $resourceGroup -VM $vm
Avertissement
Le fait de libérer la machine virtuelle libère également toutes les adresses IP dynamiques affectées à la machine virtuelle. Les disques de données et du système d’exploitation ne sont pas affectés.
Si vous redimensionnez une machine virtuelle de production, envisagez d’utiliser des réservations de capacité Azure pour réserver la capacité de calcul dans la région.
Utilisez PowerShell pour redimensionner une machine virtuelle qui se trouve dans un groupe à haute disponibilité
Si la nouvelle taille d’une machine virtuelle se trouvant dans un groupe à haute disponibilité n’est pas disponible sur le cluster matériel qui l’héberge actuellement, vous devez libérer toutes les machines virtuelles du groupe à haute disponibilité pour redimensionner la machine virtuelle. Vous devrez peut-être mettre à jour la taille des autres machines virtuelles du groupe à haute disponibilité après le redimensionnement d’une des machines virtuelles. Pour redimensionner une machine virtuelle dans un groupe à haute disponibilité, exécutez le script ci-dessous. Vous pouvez remplacer les valeurs de $resourceGroup, $vmName, $newVmSize et $availabilitySetName par les vôtres.
# Set variables
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
$newVmSize = "<newVmSize>"
$availabilitySetName = "<availabilitySetName>"
# Check if the desired VM size is available
$availableSizes = Get-AzVMSize `
-ResourceGroupName $resourceGroup `
-VMName $vmName |
Select-Object -ExpandProperty Name
if ($availableSizes -notcontains $newVmSize) {
# Deallocate all VMs in the availability set
$as = Get-AzAvailabilitySet `
-ResourceGroupName $resourceGroup `
-Name $availabilitySetName
$virtualMachines = $as.VirtualMachinesReferences | Get-AzResource | Get-AzVM
$virtualMachines | Stop-AzVM -Force -NoWait
# Resize and restart the VMs in the availability set
$virtualMachines | Foreach-Object { $_.HardwareProfile.VmSize = $newVmSize }
$virtualMachines | Update-AzVM
$virtualMachines | Start-AzVM
exit
}
# Resize the VM
$vm = Get-AzVM `
-ResourceGroupName $resourceGroup `
-VMName $vmName
$vm.HardwareProfile.VmSize = $newVmSize
Update-AzVM `
-VM $vm `
-ResourceGroupName $resourceGroup
Ce script définit les variables $resourceGroup, $vmName, $newVmSize et $availabilitySetName. Il vérifie ensuite si la taille de machine virtuelle souhaitée est disponible en utilisant Get-AzVMSize et en vérifiant si la sortie contient la taille souhaitée. Si la taille souhaitée n’est pas disponible, le script libère toutes les machines virtuelles du groupe à haute disponibilité, les redimensionne et les redémarre. Si la taille souhaitée est disponible, le script redimensionne la machine virtuelle.
Pour redimensionner une machine virtuelle, vous devez installer la dernière version d’Azure CLI et vous connecter à un compte Azure avec az sign-in.
Le script ci-dessous vérifie si la taille de machine virtuelle souhaitée est disponible avant le redimensionnement. Si la taille souhaitée n’est pas disponible, le script se termine avec un message d’erreur. Si la taille souhaitée est disponible, le script libère la machine virtuelle, la redimensionne et la redémarre. Vous pouvez remplacer les valeurs de resourceGroup, vm et size par les vôtres.
# Set variables
resourceGroup=myResourceGroup
vm=myVM
size=Standard_DS3_v2
# Check if the desired VM size is available
if ! az vm list-vm-resize-options --resource-group $resourceGroup --name $vm --query "[].name" | grep -q $size; then
echo "The desired VM size is not available."
exit 1
fi
# Deallocate the VM
az vm deallocate --resource-group $resourceGroup --name $vm
# Resize the VM
az vm resize --resource-group $resourceGroup --name $vm --size $size
# Start the VM
az vm start --resource-group $resourceGroup --name $vm
Avertissement
Le fait de libérer la machine virtuelle libère également toutes les adresses IP dynamiques affectées à la machine virtuelle. Les disques de données et du système d’exploitation ne sont pas affectés.
Si vous redimensionnez une machine virtuelle de production, envisagez d’utiliser des réservations de capacité Azure pour réserver la capacité de calcul dans la région.
Utilisez Azure CLI pour redimensionner une machine virtuelle dans un groupe à haute disponibilité.
Le script ci-dessous définit les variables resourceGroup, vm et size. Il vérifie ensuite si la taille de machine virtuelle souhaitée est disponible en utilisant az vm list-vm-resize-options et en vérifiant si la sortie contient la taille souhaitée. Si la taille souhaitée n’est pas disponible, le script se termine avec un message d’erreur. Si la taille souhaitée est disponible, le script libère la machine virtuelle, la redimensionne et la redémarre.
# Set variables
resourceGroup="myResourceGroup"
vmName="myVM"
newVmSize="<newVmSize>"
availabilitySetName="<availabilitySetName>"
# Check if the desired VM size is available
availableSizes=$(az vm list-vm-resize-options \
--resource-group $resourceGroup \
--name $vmName \
--query "[].name" \
--output tsv)
if [[ ! $availableSizes =~ $newVmSize ]]; then
# Deallocate all VMs in the availability set
vmIds=$(az vmss list-instances \
--resource-group $resourceGroup \
--name $availabilitySetName \
--query "[].instanceId" \
--output tsv)
az vm deallocate \
--ids $vmIds \
--no-wait
# Resize and restart the VMs in the availability set
az vmss update \
--resource-group $resourceGroup \
--name $availabilitySetName \
--set virtualMachineProfile.hardwareProfile.vmSize=$newVmSize
az vmss start \
--resource-group $resourceGroup \
--name $availabilitySetName \
--instance-ids $vmIds
exit
fi
# Resize the VM
az vm resize \
--resource-group $resourceGroup \
--name $vmName \
--size $newVmSize
Pour redimensionner votre machine virtuelle dans le code Terraform, vous modifiez le paramètre size dans les blocs de ressources azurerm_linux_virtual_machine ou azurerm_windows_virtual_machine à la taille souhaitée et exécutez terraform plan -out main.tfplan pour voir la modification de taille de machine virtuelle qui sera apportée. Exécutez ensuite terraform apply main.tfplan pour appliquer les modifications pour redimensionner la machine virtuelle.
Important
L’exemple Terraform ci-dessous modifie la taille d’une machine virtuelle existante lorsque vous utilisez le fichier d’état qui a créé la machine virtuelle d’origine. Pour obtenir le code Terraform complet, consultez le guide de démarrage rapide Windows Terraform.
Le fait de libérer la machine virtuelle libère également toutes les adresses IP dynamiques affectées à la machine virtuelle. Les disques de données et du système d’exploitation ne sont pas affectés.
Si vous redimensionnez une machine virtuelle de production, envisagez d’utiliser des réservations de capacité Azure pour réserver la capacité de calcul dans la région.
Choisir la référence SKU appropriée
Lors du redimensionnement d’une machine virtuelle, il est important de choisir la référence SKU appropriée en fonction des signaux de la machine virtuelle pour déterminer si vous avez besoin de davantage de processeur, de mémoire ou de capacité de stockage :
Si la machine virtuelle exécute une charge de travail nécessitant beaucoup d’UC, telle qu’un serveur de base de données ou un serveur web avec un trafic élevé, vous devrez peut-être choisir une référence SKU avec plus de cœurs d’UC.
Si la machine virtuelle exécute une charge de travail gourmande en mémoire, telle qu’un modèle Machine Learning ou une application Big Data, vous devrez peut-être choisir une référence SKU avec plus de mémoire.
Si la machine virtuelle manque de capacité de stockage, vous devrez peut-être choisir une référence SKU avec plus de stockage.
Pour plus d’informations sur la sélection d’une référence SKU appropriée, utilisez les ressources suivantes :
Sélecteur de machine virtuelle Azure : cet outil vous aide à trouver la référence SKU de machine virtuelle appropriée en fonction de votre type de charge de travail, de votre système d’exploitation, de vos logiciels et de votre région de déploiement.
Limites
Vous ne pouvez pas redimensionner une machine virtuelle dotée d’un disque temporaire local en lui attribuant la taille d’une machine virtuelle qui n’est pas équipée d’un disque temporaire et vice versa.
Les seules combinaisons autorisées pour le redimensionnement sont les suivantes :
Pour obtenir une solution de contournement, consultez Comment migrer d’une taille de machine virtuelle avec disque temporaire local vers une taille de machine virtuelle sans disque temporaire local ? Vous pouvez utiliser la solution de contournement pour redimensionner une machine virtuelle sans disque temporaire local vers une machine virtuelle avec un disque temporaire local. Vous créez une capture instantanée de la machine virtuelle sans disque temporaire local et créez un disque à partir de la capture instantanée et créez une machine virtuelle à partir du disque avec une taille de machine virtuelle appropriée qui prend en charge des machines virtuelles avec un disque temporaire local.
Étapes suivantes
Pour plus d’évolutivité, exécutez plusieurs instances de machine virtuelle et effectuez un scale-out.
Pour déterminer les tailles de machine virtuelle par type de charge de travail, système d’exploitation, logiciel, ou région de déploiement, consultez Sélecteur de machine virtuelle Azure.