Exercice - Gérer les paramètres de cache avec PowerShell

Effectué

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 :

Screenshot of our OS and data disks, both set to Read-only caching.

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

  1. Exécutez la commande suivante pour obtenir les propriétés de la machine virtuelle :

    $myVM = Get-AzVM -ResourceGroupName $myRgName -VMName $myVmName
    
  2. Stockons la réponse dans notre variable $myVM. Nous pouvons rediriger la sortie vers l’applet de commande select-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

  1. 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 commande Get-AzVM, la valeur de mise en cache ne change pas sur la machine virtuelle.

  2. 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
    
  3. 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

  1. Pour des raisons pratiques, stockons notre nouveau nom de disque en exécutant la commande suivante :

    $newDiskName = "fotoshareVM-data2"
    
  2. 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}
    
  3. 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 commande Update-AzVM afin d’effectuer le changement :

    Update-AzVM -ResourceGroupName $myRGName -VM $myVM
    
  4. 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

  1. 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
    
  2. 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.

Screenshot of the Azure portal showing the Disks section of our VM pane with two data disks.