Partager via


Développer des disques durs virtuels sur une machine virtuelle Linux

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Cet article traite du développement des disques de système d’exploitation et des disques de données pour une machine virtuelle Linux. Vous pouvez ajouter des disques de données pour fournir davantage d’espace de stockage, et vous pouvez également développer un disque de données existant. La taille du disque dur virtuel par défaut pour le système d’exploitation est généralement de 30 Go sur une machine virtuelle Linux dans Azure. Cet article décrit l’extension de disques de système d’exploitation ou de disques de données. Vous ne pouvez pas développer la taille des volumes en bandes.

Ce disque du système d’exploitation a une capacité maximale de 4 095 Gio. Cependant, de nombreux systèmes d’exploitation sont partitionnés avec un enregistrement de démarrage principal (MBR) par défaut. Le MBR limite la taille utilisable à 2 Tio. Si vous avez besoin de plus de 2 Tio, envisagez d’attacher des disques de données pour le stockage de données. Si vous devez stocker des données sur le disque du système d’exploitation et exiger un espace supplémentaire, convertissez-les en table de partition GUID (GPT).

Avertissement

Assurez-vous toujours que votre système de fichiers est dans un état sain et que votre type de table de partition de disque (GPT ou MBR) peut prendre en charge la nouvelle taille. Sauvegardez vos données avant d’effectuer des opérations d’extension de disque. Pour plus d’informations, consultez le démarrage rapide de Sauvegarde Azure.

Identifier un objet de disque de données Azure au sein du système d’exploitation

Lorsque vous développez un disque de données comportant plusieurs disques de données sur la machine virtuelle, il peut être difficile de lier les numéros d’unité logique Azure aux appareils Linux. Si le disque du système d’exploitation a besoin d’une extension, il est clairement étiqueté dans le portail Azure comme disque du système d’exploitation.

Commencez par identifier la relation entre l’utilisation du disque, le point de montage et l’appareil, avec la commande df.

df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/sda1                 xfs        97G  1.8G   95G   2% /
<truncated>
/dev/sdd1                 ext4       32G   30G  727M  98% /opt/db/data
/dev/sde1                 ext4       32G   49M   30G   1% /opt/db/log

Ici, vous pouvez voir, par exemple, que le /opt/db/data système de fichiers est presque plein et se trouve sur la /dev/sdd1 partition. La sortie de df indique le chemin d’accès de l’appareil, que le disque soit monté par le chemin d’accès de l’appareil ou par l’UUID (préféré) dans le fstab. Notez la colonne Type, qui indique le format du système de fichiers. Le format est important plus tard.

Localisez maintenant l’unité logique qui correspond à /dev/sdd en examinant le contenu de /dev/disk/azure/scsi1. La sortie de la commande suivante ls indique que l’appareil connu sous le nom /dev/sdd de système d’exploitation Linux se trouve LUN1 lorsque vous regardez dans le portail Azure.

sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep  9 21:54 ./
drwxr-xr-x. 4 root root  80 Sep  9 21:48 ../
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root  13 Sep  9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root  12 Sep  9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root  13 Sep  9 21:54 lun2-part1 -> ../../../sde1

Étendre un disque managé Azure

Étendre sans temps d’arrêt

Vous pouvez étendre vos disques managés sans libérer votre machine virtuelle. Le paramètre de cache hôte de votre disque ne change pas si vous pouvez ou non développer un disque de données sans libérer votre machine virtuelle.

Cette fonctionnalité présente les limitations suivantes.

Important

Cette limitation ne s’applique pas aux disques Ssd Premium v2 ou Ultra.

Si un disque HDD standard, SSD Standard ou Ssd Premium est de 4 Tio ou moins, libérez votre machine virtuelle et détachez le disque avant de l’étendre au-delà de 4 Tio. Si l’un de ces types de disque est déjà supérieur à 4 Tio, vous pouvez l’étendre sans libérer la machine virtuelle ni détacher le disque.

  • Est pris en charge uniquement pour les disques de données.
  • N’est pas pris en charge pour les disques partagés.
  • Doit être installé et utiliser l’une des options suivantes :
  • N’est pas disponible sur certaines machines virtuelles classiques. Utilisez ce script pour obtenir la liste des produits de machine virtuelle classiques qui prennent en charge l’expansion sans temps d’arrêt.

Étendre avec des disques Ultra et des SSD Premium v2

Le développement de disques Ultra et de disques SSD Premium v2 sans temps d’arrêt présente les limitations supplémentaires suivantes :

  • Vous ne pouvez pas développer un disque pendant qu’une copie en arrière-plan des données se produit également sur ce disque. Par exemple, lorsqu’un disque est en cours de remplissage à partir d’instantanés.
  • Vous pouvez développer des machines virtuelles à l’aide de contrôleurs NVMe avec des disques Ultra ou des disques SSD Premium v2 sans temps d’arrêt avec cette préversion publique. Étant donné que cette version est une préversion publique, vous devez l’utiliser uniquement pour tester la fonctionnalité de développement sans temps d’arrêt. Ne développez pas les machines virtuelles en production.

Dans les régions suivantes, vous pouvez développer des machines virtuelles qui utilisent des contrôleurs NVMe avec des disques Ultra ou des disques SSD Premium v2 sans temps d’arrêt. Utilisez le portail Azure, Azure CLI ou le module Azure PowerShell :

  • Asie du Sud-Est
  • Brésil Sud
  • Centre du Canada
  • Allemagne Centre-Ouest
  • Inde centrale (actuellement non prise en charge sur les machines virtuelles V6)

Dans les régions suivantes, vous pouvez développer des machines virtuelles qui utilisent des contrôleurs NVMe avec des disques Ultra ou des disques SSD Premium v2 sans temps d’arrêt. Utilisez uniquement Azure CLI ou un module Azure PowerShell. Vous ne pouvez pas utiliser le portail Azure :

  • Asie de l’Est
  • USA Centre-Ouest (actuellement non pris en charge sur les machines virtuelles V6)

Prévoyez jusqu’à dix minutes pour que la taille correcte se reflète dans les machines virtuelles Windows et Linux. Pour les machines virtuelles Linux, vous devez effectuer une fonction de relance d’analyse Linux. Pour une machine virtuelle Windows qui n’a pas de charge de travail, vous devez effectuer une nouvelle analyse Windows. Vous pouvez réanalyser immédiatement, mais si le délai est inférieur à 10 minutes, vous devrez peut-être réanalyser à nouveau pour afficher la taille correcte.

Agrandir un disque Azure managé

Vérifiez que vous avez installé la dernière version d’Azure CLI et que vous êtes connecté à un compte Azure avec la commande az login.

Cet article nécessite une machine virtuelle existante dans Azure avec au moins un disque de données attaché et préparé. Si vous n’avez pas encore de machine virtuelle à utiliser, consultez Créer et préparer une machine virtuelle avec des disques de données.

Dans les exemples suivants, remplacez les noms de paramètres d’espace réservé comme myResourceGroup et myVM par vos propres valeurs.

Important

Si votre disque répond aux exigences de Expand sans temps d’arrêt, vous pouvez ignorer les étapes 1 et 3.

La réduction d’un disque existant n’est pas prise en charge et peut entraîner une perte de données.

Après avoir étendu les disques, étendez le volume dans le système d’exploitation pour tirer parti de l'espace disque supplémentaire.

  1. Il est impossible d’effectuer des opérations sur les disques durs virtuels avec la machine virtuelle en cours d’exécution. Libérez la machine virtuelle avec la commande az vm deallocate. L’exemple suivant libère la machine virtuelle nommée myVM dans le groupe de ressources nommé myResourceGroup :

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    La machine virtuelle doit être libérée pour développer le disque dur virtuel. L’arrêt de la machine virtuelle avec az vm stop ne libère pas les ressources de calcul. Pour publier les ressources de calcul, utilisez az vm deallocate.

  2. Affichez la liste des disques managés dans un groupe de ressources avec la commande az disk list. L’exemple suivant montre une liste de disques managés dans le groupe de ressources nommé myResourceGroup :

    az disk list \
        --resource-group myResourceGroup  \
        --query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \
        --output table
    

    Développez le disque requis avec la commande az disk update. L’exemple ci-après étend la taille du disque managé nommé myDataDisk à 200 Go :

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    Lorsque vous étendez un disque managé, la taille mise à jour est arrondie à la taille de disque managé la plus proche.

  3. Démarrez votre machine virtuelle avec az vm start. L’exemple suivant démarre la machine virtuelle nommée myVM dans le groupe de ressources nommé myResourceGroup :

    az vm start --resource-group myResourceGroup --name myVM
    

Étendre une partition de disque et un système de fichiers

Vous pouvez utiliser de nombreux outils pour effectuer le redimensionnement de partition. Les outils détaillés dans le reste de cet article sont les mêmes que certains processus automatisés utilisent, tels que cloud-init. Comme décrit ici, l’outil growpart avec le gdisk package fournit une compatibilité universelle avec les disques GPT, car les versions antérieures de certains outils comme fdisk n’ont pas pris en charge GPT.

Détecter une taille de disque modifiée

Si vous avez utilisé la procédure mentionnée précédemment pour développer un disque de données sans temps d’arrêt, la taille du disque signalée ne change pas tant que l’appareil n’est pas rescanné. La nouvelle analyse se produit normalement uniquement pendant le processus de démarrage. Pour appeler cette nouvelle analyse à la demande, utilisez la procédure suivante. Lorsque vous utilisez les méthodes de cet article, notez que dans cet exemple, le disque de données est actuellement /dev/sda et a été redimensionné de 256 Gio à 512 Gio.

  1. Identifier la taille actuellement reconnue sur la première ligne de sortie à partir de fdisk -l /dev/sda :

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    
  2. Insérez un caractère 1 dans le fichier de réanalyse de cet appareil. Notez la référence à sda dans l’exemple. L’identificateur de disque change si un autre appareil disque est redimensionné.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. Vérifiez que la nouvelle taille de disque est désormais reconnue.

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    

Le reste de cet article utilise le disque du système d’exploitation pour obtenir des exemples de procédure afin d’augmenter la taille d’un volume au niveau du système d’exploitation. Si le disque développé est un disque de données, utilisez les instructions précédentes pour identifier l’appareil de disque de données. Suivez ces instructions en tant que recommandations. Remplacez l’appareil de disque de données (par exemple, /dev/sda), les numéros de partition, les noms de volumes, les points de montage et les formats de système de fichiers, le cas échéant.

Considérez toutes les instructions de système d’exploitation Linux comme génériques et qu’elle peut s’appliquer à n’importe quelle distribution, mais elle correspond généralement aux conventions de l’éditeur de la Place de marché nommée. Consultez la documentation Red Hat pour connaître les exigences du package sur toute distribution basée sur Red Hat ou qui prétend la compatibilité red Hat.

Augmenter la taille du disque du système d’exploitation

Les instructions suivantes s’appliquent aux distributions Linux approuvées.

Avant de continuer, effectuez une copie complète de sauvegarde de votre machine virtuelle ou, au minimum, prenez un instantané de votre disque de système d’exploitation.

Sur Ubuntu 16.x et versions ultérieures, la partition racine du disque du système d’exploitation et des systèmes de fichiers est automatiquement développée pour utiliser tous les espaces contigus libres sur le disque racine par cloud-init. Une petite quantité d’espace libre doit être disponible pour l’opération de redimensionnement. Dans ce cas, la séquence doit :

  1. Augmentez la taille du disque du système d’exploitation comme décrit précédemment.
  2. Redémarrez la machine virtuelle, puis accédez à la machine virtuelle à l’aide du compte d’utilisateur racine .
  3. Vérifiez que le disque du système d’exploitation affiche désormais une taille de système de fichiers accrue.

Comme indiqué dans l’exemple suivant, le disque du système d’exploitation a été redimensionné à 100 Go depuis le portail. Le /dev/sda1 système de fichiers monté sur / affiche désormais 97 Go.

df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  314M     0  314M   0% /dev
tmpfs          tmpfs      65M  2.3M   63M   4% /run
/dev/sda1      ext4       97G  1.8G   95G   2% /
tmpfs          tmpfs     324M     0  324M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     324M     0  324M   0% /sys/fs/cgroup
/dev/sda15     vfat      105M  3.6M  101M   4% /boot/efi
/dev/sdb1      ext4       20G   44M   19G   1% /mnt
tmpfs          tmpfs      65M     0   65M   0% /run/user/1000
user@ubuntu:~#

Étendre sans temps d’arrêt de la prise en charge de la référence SKU de machine virtuelle classique

Si vous utilisez une référence SKU de machine virtuelle classique, elle peut ne pas prendre en charge le développement de disques sans temps d’arrêt.

Utilisez le script PowerShell suivant pour déterminer les références SKU de machine virtuelle disponibles :

Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}

foreach($vmSize in $vmSizes){
    foreach($capability in $vmSize.Capabilities)
    {
       if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
        {
            $vmSize.Name
       }
   }
}