S’applique à : ✔️ Machines virtuelles Linux ✔️ Machines virtuelles Windows ✔️ Groupes identiques flexibles
Cet article vous montre comment modifier la taille de machine virtuelle d’une machine virtuelle existante.
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.
Changer de taille de VM
- Ouvrez le portail Azure.
- 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.
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
Liste les tailles de machines virtuelles qui sont disponibles sur le cluster matériel sur lequel la machine virtuelle est hébergée.
Get-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
Redimensionnez la machine virtuelle.
$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "<newAv2VMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
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
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 :
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 :
- Machine virtuelle (avec disque temporaire local) -> machine virtuelle (avec disque temporaire local) ; et
- machine virtuelle (sans disque temporaire local) -> machine virtuelle (sans disque temporaire local).
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