Exercice : Redimensionner un disque de machine virtuelle

Effectué

Imaginons que vous ayez sous-estimé la taille de certains fichiers chargés et que votre disque de chargement ne dispose plus de suffisamment d’espace. Vous décidez de doubler l’espace en passant de 64 Go à 128 Go.

Ici, vous mettez en pratique le processus que vous avez appris dans les unités précédentes.

Redimensionner le disque de données

Pour redimensionner un disque, vous avez besoin de l’ID ou du nom du disque. Dans ce cas, vous connaissez déjà le nom (*uploadDataDisk1), mais si ce n’est pas le cas ou si quelqu’un d’autre a créé le disque, vous pouvez exécuter az disk list pour rechercher le nom.

  1. Exécutez la commande az disk list pour afficher la liste des disques managés du groupe de ressources. Cette liste peut inclure d’autres disques si plusieurs machines virtuelles se trouvent dans un même groupe de ressources.

    az disk list \
      --query '[*].{Name:name,Gb:diskSizeGb,Tier:sku.tier}' \
      --output table
    

    Vous voyez le disque nommé uploadDataDisk1.

    Name                                                        Tier
    ----------------------------------------------------------  -------
    support-web-vm01_OsDisk_1_a7c59897dfda42dfab2edf4933e713a6  Premium
    uploadDataDisk1                                             Premium
    
  2. Exécutez la commande az vm deallocate suivante pour arrêter et libérer votre machine virtuelle. Cette commande ne supprime pas votre machine virtuelle, mais la place dans un état dans lequel vous pouvez modifier les disques virtuels.

    az vm deallocate --name support-web-vm01
    
  3. Exécutez la commande az disk update pour redimensionner le disque à 128 Go.

    az disk update --name uploadDataDisk1 --size-gb 128
    
  4. Exécutez la commande az vm start pour redémarrer la machine virtuelle.

    az vm start --name support-web-vm01
    

    Nous n’avons pas encore terminé. Le système d’exploitation sur la machine virtuelle ne peut pas encore utiliser l’espace supplémentaire. Nous gérons cette situation dans la section suivante.

Étendre la partition de disque

L’étape finale consiste à informer le système d’exploitation de l’espace disponible. Tout comme lors des étapes de partitionnement et de formatage effectuées précédemment, ce processus est identique à celui de l’extension d’un disque physique local.

  1. Même si vous pouvez réserver une adresse IP publique fixe pour votre machine virtuelle, cette dernière reçoit par défaut une nouvelle adresse IP publique lorsqu’elle est libérée et redémarrée. Exécutez la commande az vm show suivante pour mettre à jour votre variable Bash avec la nouvelle adresse IP publique de votre machine virtuelle.

    ipaddress=$(az vm show --name support-web-vm01 -d --query [publicIps] -o tsv)
    
  2. Comme vous l’avez fait précédemment, exécutez lsblk sur votre machine virtuelle via une connexion SSH pour connaître son état actuel.

    ssh azureuser@$ipaddress lsblk
    

    Vous pouvez constater que le disque sdc/sdc1 a toujours une taille de 64 Go.

    NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0    7G  0 disk 
    └─sdb1    8:17   0    7G  0 part /mnt
    sdc       8:32   0  128G  0 disk 
    └─sdc1    8:33   0   64G  0 part /uploads
    sda       8:0    0   30G  0 disk 
    ├─sda14   8:14   0    4M  0 part 
    ├─sda15   8:15   0  106M  0 part /boot/efi
    └─sda1    8:1    0 29.9G  0 part /
    
  3. Comme vous l’avez fait précédemment pour initialiser votre disque, exécutez la commande az vm extension set suivante pour indiquer au système d’exploitation de la machine virtuelle le nouvel espace disponible en exécutant un script Bash prédéfini que nous avons créé pour vous aider.

    az vm extension set \
      --vm-name support-web-vm01 \
      --name customScript \
      --publisher Microsoft.Azure.Extensions \
      --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/resize-data-disk.sh"]}' \
      --protected-settings '{"commandToExecute": "./resize-data-disk.sh"}'
    

    Pendant l’exécution de la commande, vous pouvez, si vous le souhaitez, examiner le script Bash sous un onglet distinct du navigateur.

    Pour récapituler, le script :

    • Démonte le disque /dev/sdc1.
    • Redimensionne la partition 1 à 128 Go.
    • Vérifie la cohérence de la partition.
    • Redimensionne le système de fichiers.
    • Remontez le lecteur /dev/sdc1 sur le point de montage /uploads.
  4. Pour vérifier la configuration, réexécutez lsblk sur votre machine virtuelle via une connexion SSH.

    ssh azureuser@$ipaddress lsblk
    

    Cette fois-ci, vous pouvez constater que le disque sdc/sdc1 a été étendu et qu’il peut désormais contenir la nouvelle taille de votre disque.

    NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sdb       8:16   0     7G  0 disk 
    └─sdb1    8:17   0     7G  0 part /mnt
    sdc       8:32   0   128G  0 disk 
    └─sdc1    8:33   0 119.2G  0 part /uploads
    sda       8:0    0    30G  0 disk 
    ├─sda14   8:14   0     4M  0 part 
    ├─sda15   8:15   0   106M  0 part /boot/efi
    └─sda1    8:1    0  29.9G  0 part /
    
  5. En guise de vérification finale, exécutez l’utilitaire df de votre système d’exploitation sur votre machine virtuelle via SSH pour vérifier que le système d’exploitation peut le voir correctement.

    ssh azureuser@$ipaddress df -h
    

    Vous voyez que la taille du lecteur est de 128 Go.

    Filesystem      Size  Used Avail Use% Mounted on
    udev            1.7G     0  1.7G   0% /dev
    tmpfs           345M  9.3M  335M   3% /run
    /dev/sda1        29G  1.9G   28G   7% /
    tmpfs           1.7G     0  1.7G   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           1.7G     0  1.7G   0% /sys/fs/cgroup
    /dev/sda15      105M  3.2M  102M   3% /boot/efi
    /dev/sdb1       6.8G   16M  6.4G   1% /mnt
    /dev/sdc1       118G   60M  112G   1% /uploads
    tmpfs           345M     0  345M   0% /run/user/1000