Exercice - Gérer les paramètres de cache avec PowerShell
Dans l’exercice précédent, nous avons effectué les tâches suivantes à l’aide du portail Azure :
- Afficher l’état du cache du disque du système d’exploitation.
- Changer les paramètres de cache du disque du système d’exploitation.
- Ajouter un disque de données à la machine virtuelle.
- Modifier le type de mise en cache sur un nouveau disque de données.
Mettons ces opérations en pratique à l’aide d’Azure PowerShell.
Notes
Nous allons utiliser Azure PowerShell, mais vous pourriez également utiliser l’interface de ligne de commande Azure, qui fournit des fonctionnalités similaires en tant qu’outil basé sur une console. Il s’exécute sur macOS, Linux et Windows. Si vous souhaitez en savoir plus sur l’interface de ligne de commande Azure, consultez le module Gérer des machines virtuelles avec Azure CLI.
Nous allons utiliser la machine virtuelle que nous avons créée au cours du précédent exercice. Pour effectuer les opérations de ce labo, supposons que :
- Notre machine virtuelle existe sous le nom de fotoshareVM.
- Notre machine virtuelle se trouve dans un groupe de ressources nommé
[nom du groupe de ressources de bac à sable (sandbox)] .
Si vous avez utilisé un autre ensemble de noms, remplacez ces valeurs par les vôtres.
Voici l’état actuel des disques de nos machines virtuelles depuis l’exercice précédent :
Nous avons utilisé le portail pour définir le champ Host caching pour le disque de données et celui du système d’exploitation. Gardez cet état initial en tête au fur et à mesure des étapes à venir.
Définir des variables
Commençons par stocker certains noms de ressources que nous utiliserons ultérieurement.
Exécutez ensuite les commandes PowerShell suivantes dans Azure Cloud Shell à droite :
Notes
Basculez votre session Cloud Shell vers PowerShell avant d’essayer ces commandes, si ce n’est déjà fait.
$myRgName = "<rgn>[sandbox resource group name]</rgn>"
$myVMName = "fotoshareVM"
Conseil
Vous devez redéfinir ces variables si votre session Cloud Shell arrive à expiration. Ainsi, dans la mesure du possible, essayez d’effectuer l’intégralité de ce labo en une seule session.
Obtenir des informations à propos de notre machine virtuelle
Exécutez la commande suivante pour obtenir les propriétés de la machine virtuelle :
$myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
Stockons la réponse dans notre variable
$myVM
. Nous pouvons rediriger la sortie vers l’applet de commandeselect-object
pour limiter l’affichage à des propriétés spécifiques :$myVM | select-object -property ResourceGroupName, Name, Type, Location
Vous devriez obtenir une sortie semblable à la suivante :
ResourceGroupName Name Type Location ----------------- ---- ---- -------- <rgn>[sandbox resource group name]</rgn> fotoshareVM Microsoft.Compute/virtualMachines eastus
Afficher l’état du cache du disque du système d’exploitation
Nous pouvons vérifier le paramètre de mise en cache à travers l’objet StorageProfile
en exécutant la commande suivante :
$myVM.StorageProfile.OsDisk.Caching
ReadOnly
Changeons-le afin qu’il corresponde à la valeur par défaut pour un disque de système d’exploitation, à savoir ReadWrite.
Changer les paramètres du cache du disque du système d’exploitation
Nous pouvons définir la valeur du type de cache à l’aide du même objet
StorageProfile
en exécutant la commande suivante :$myVM.StorageProfile.OsDisk.Caching = "ReadWrite"
Cette commande s’exécute rapidement. Il semblerait que l’opération soit effectuée localement. La commande change uniquement la propriété sur l’objet
myVM
. Si vous actualisez la variable$myVM
en la réattribuant à l’aide de l’applet de commandeGet-AzVM
, la valeur de mise en cache ne change pas sur la machine virtuelle.Pour effectuer la modification sur la machine virtuelle elle-même, appelez
Update-AzVM
en exécutant la commande suivante :Update-AzVM -ResourceGroupName $myRGName -VM $myVM
Notez que cet appel prend un certain temps. En effet, nous mettons à jour la machine virtuelle et Azure la redémarre pour apporter la modification.
RequestId IsSuccessStatusCode StatusCode ReasonPhrase --------- ------------------- ---------- ------------ True OK OK
Si vous actualisez à nouveau la variable
$myVM
en exécutant la commande suivante, vous voyez la modification apportée à l’objet. Si vous examinez le disque dans le portail, vous voyez également la modification.$myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName $myVM.StorageProfile.OsDisk.Caching
ReadWrite
Répertorier les informations sur les disques de données
Pour afficher les disques de données dont nous disposons sur notre machine virtuelle, exécutez la commande suivante :
$myVM.StorageProfile.DataDisks
Name : fotoshareVM-data
DiskSizeGB : 4
Lun : 0
Caching : ReadOnly
CreateOption : Attach
SourceImage :
VirtualHardDisk :
Nous ne disposons que d’un seul disque de données pour l’instant. Le champ Lun
est important. Il s’agit du numéro d'unité logique LUN (Logical Unit Number) unique. Quand nous ajoutons un autre disque de données, nous lui attribuons une valeur Lun
unique.
Ajouter un nouveau disque de données à notre machine virtuelle
Pour des raisons pratiques, stockons notre nouveau nom de disque en exécutant la commande suivante :
$newDiskName = "fotoshareVM-data2"
Exécutez la commande
Add-AzVMDataDisk
suivante pour définir un nouveau disque de données de 1 Go vide :Add-AzVMDataDisk -VM $myVM -Name $newDiskName -LUN 1 -DiskSizeinGB 1 -CreateOption Empty
Vous obtenez une réponse semblable à la suivante :
ResourceGroupName : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxx/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/fotoshareVM VmId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx Name : fotoshareVM Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} DiagnosticsProfile : {BootDiagnostics} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks}
Nous avons attribué à ce disque une valeur
Lun
égale à1
, car elle est libre. Nous avons défini le disque que nous souhaitons créer. Exécutons maintenant la commandeUpdate-AzVM
afin d’effectuer le changement :Update-AzVM -ResourceGroupName $myRGName -VM $myVM
Examinons à nouveau nos informations de disque de données en exécutant la commande suivante :
$myVM.StorageProfile.DataDisks
Name : fotoshareVM-data DiskSizeGB : 4 Lun : 0 Caching : ReadOnly CreateOption : Attach SourceImage : VirtualHardDisk : Name : fotoshareVM-data2 DiskSizeGB : 1 Lun : 1 Caching : None CreateOption : Empty SourceImage : VirtualHardDisk :
Nous disposons maintenant de deux disques. Notre nouveau disque a un Lun
de 1
et la valeur par défaut de Caching
est None
. Changeons cette valeur.
Changer les paramètres de cache du nouveau disque de données
Nous pouvons modifier les propriétés du disque de données d’une machine virtuelle en exécutant la commande
Set-AzVMDataDisk
, comme suit :Set-AzVMDataDisk -VM $myVM -Lun "1" -Caching ReadWrite
Comme toujours, validez les modifications en exécutant la commande
Update-AzVM
:Update-AzVM -ResourceGroupName $myRGName -VM $myVM
Voici une vue du portail montrant les opérations que nous avons réalisées dans cet exercice. Notre machine virtuelle dispose désormais de deux disques de données, et nous avons ajusté tous les paramètres de Mise en cache de l’hôte. Grâce à la puissance d’Azure PowerShell, nous avons fait tout cela avec seulement quelques commandes.