Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : ✔️ Machines virtuelles Linux ✔️ Ensembles de mise à l'échelle flexibles
Cet article explique comment mettre en forme, monter et conserver des disques managés sur des machines virtuelles Linux Azure. Les disques managés sont un stockage persistant attaché à votre machine virtuelle qui peut utiliser des interfaces SCSI ou NVMe en fonction de la taille de votre machine virtuelle.
Prerequisites
Avant de mettre en forme et de monter un disque de données, assurez-vous d’avoir :
- Identifier le disque approprié pour éviter la perte de données
- Accès SSH à votre machine virtuelle
- Droits racines ou sudo
Avertissement
Vérifiez toujours que vous travaillez avec le disque approprié avant la mise en forme. La mise en forme du disque incorrect peut entraîner une perte de données.
Mettre en forme le disque
Utilisez la dernière version disponible parted pour votre distribution. Si la taille du disque est de 2 tebibytes (Tio) ou supérieure, utilisez le partitionnement GPT. Si la taille du disque est inférieure à 2 Tio, vous pouvez utiliser le partitionnement MBR ou GPT.
Une fois que vous avez identifié le disque approprié (par exemple, /dev/nvme0n2 pour un disque de données), vous pouvez le mettre en forme :
L’exemple suivant utilise parted sur /dev/sdc, c’est-à-dire où le premier disque de données se trouve généralement sur la plupart des machines virtuelles. Remplacez sdc par l’option appropriée pour votre disque. Il met également en forme le disque à l’aide du système de fichiers XFS .
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo partprobe /dev/sdc
sudo mkfs.xfs /dev/sdc1
Utilisez l’utilitaire partprobe pour vous assurer que le noyau est conscient de la nouvelle partition et du système de fichiers. Si vous n’utilisez partprobepas, les blkid commandes et les lsblk commandes ne retournent pas immédiatement l’UUID pour le nouveau système de fichiers.
Monter le disque
À présent, créez un répertoire pour monter le système de fichiers à l’aide de mkdir. L’exemple suivant crée un répertoire sur /datadrive:
sudo mkdir /datadrive
Utilisez mount pour ensuite monter le système de fichiers. L’exemple suivant monte la partition /dev/sdc1 (pour SCSI) ou /dev/nvme0n2p1 (pour NVMe) au point de montage /datadrive :
# Mount the disk identified earlier (replace sdc1 with your identified disk's partition)
sudo mount /dev/sdc1 /datadrive
Vous pouvez également utiliser le chemin d’accès de l’appareil Azure :
sudo mount /dev/disk/azure/scsi1/lun0-part1 /datadrive
Rendre le montage permanent
Pour vous assurer que le disque est monté à nouveau automatiquement après un redémarrage, ajoutez-le au fichier /etc/fstab.
Il est vivement recommandé que l’UUID (Identificateur unique universel) soit utilisé pour /etc/fstab faire référence au lecteur plutôt qu’au chemin d’accès de l’appareil (par exemple, /dev/sdc1). Les chemins d’accès de l’appareil ne sont pas persistants et changent lors du redémarrage. Pour rechercher l’UUID du nouveau lecteur, utilisez l’utilitaire blkid :
sudo blkid
La sortie ressemble à l’exemple suivant :
/dev/sda1: LABEL="cloudimg-rootfs" UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4" PARTUUID="1a1b1c1d-11aa-1234-1a1a1a1a1a1a"
/dev/sda15: LABEL="UEFI" UUID="BCD7-96A6" TYPE="vfat" PARTUUID="1e1g1cg1h-11aa-1234-1u1u1a1a1u1u"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4" TYPE="ext4" PARTUUID="1a2b3c4d-01"
/dev/sda14: PARTUUID="2e2g2cg2h-11aa-1234-1u1u1a1a1u1u"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="xfs" PARTLABEL="xfspart" PARTUUID="c1c2c3c4-1234-cdef-asdf3456ghjk"
Avertissement
La modification incorrecte du /etc/fstab fichier peut entraîner un système indémarrable. Si vous n’êtes pas sûr, consultez la documentation de votre distribution pour plus d’informations sur la façon de modifier correctement ce fichier. Vous devez également créer une sauvegarde du /etc/fstab fichier avant la modification.
Ensuite, ouvrez le /etc/fstab fichier dans un éditeur de texte. Ajoutez une ligne à la fin du fichier, à l’aide de la valeur UUID pour le disque créé aux étapes précédentes et du point de montage de /datadrive. À l’aide de l’exemple de cet article, la nouvelle ligne se présente comme suit :
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,nofail 1 2
Lorsque vous avez terminé de modifier le fichier, enregistrez et fermez l’éditeur.
Vous pouvez également exécuter la commande suivante pour ajouter le disque au /etc/fstab fichier :
# For SCSI disks
UUID=$(sudo blkid -s UUID -o value /dev/sdc1)
echo "UUID=$UUID /datadrive xfs defaults,nofail 1 2" | sudo tee -a /etc/fstab
# For NVMe disks
UID=$(sudo blkid -s UUID -o value /dev/nvme1n1p1)
echo "UUID=$UUID /datadrive xfs defaults,nofail 1 2" | sudo tee -a /etc/fstab
Note
La suppression ultérieure d’un disque de données sans modification de fstab peut entraîner l’échec du démarrage de la machine virtuelle. La plupart des distributions fournissent soit les options nofail fstab, soit nobootwait fstab. Ces options permettent à un système de démarrer même si le disque ne parvient pas à monter au moment du démarrage. Pour plus d’informations sur ces paramètres, consultez la documentation de votre distribution.
L’option nofail garantit que la machine virtuelle démarre même si le système de fichiers est endommagé ou que le disque n’existe pas au moment du démarrage. Sans cette option, vous pouvez rencontrer un comportement comme décrit dans Impossible de ssh vers une machine virtuelle Linux en raison d’erreurs FSTAB
La console sérieelle des machines virtuelles Azure peut être utilisée pour accéder à la console de votre machine virtuelle si la modification de fstab entraîne un échec de démarrage. Vous trouverez plus d’informations dans la documentation de la console série.
Prise en charge de TRIM/UNMAP pour Linux dans Azure
Certains noyaux Linux prennent en charge les opérations TRIM/UNMAP pour ignorer les blocs inutilisés sur le disque. Cette fonctionnalité est principalement utile pour informer Azure que les pages supprimées ne sont plus valides et peuvent être ignorées. Cette fonctionnalité peut économiser de l’argent sur les disques facturés en fonction de la quantité de stockage consommée, comme les disques standard non managés et les captures instantanées de disque.
Il existe deux façons d’activer la prise en charge TRIM dans votre machine virtuelle Linux. Comme d’habitude, consultez votre distribution pour connaître l’approche recommandée :
• Utilisez l’option de montage discard dans /etc/fstab, par exemple :
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive xfs defaults,discard 1 2
• Dans certains cas, l’discard option peut avoir des implications sur les performances. Vous pouvez également exécuter la fstrim commande manuellement à partir de la ligne de commande ou l’ajouter à votre crontab pour s’exécuter régulièrement :
Résolution des problèmes
Lors de l’ajout de disques de données à une machine virtuelle Linux, vous pouvez rencontrer des erreurs si un disque n’existe pas au niveau du numéro d’unité logique 0. Si vous ajoutez un disque manuellement à l’aide de la az vm disk attach -new commande et que vous spécifiez un numéro d’unité logique (--lun) plutôt que d’autoriser la plateforme Azure à déterminer le numéro d’unité logique approprié, veillez à ce qu’un disque existe déjà/ existe à lun 0.
Prenons l’exemple suivant montrant un extrait de code de la sortie à partir de lsscsi:
[5:0:0:0] disk Msft Virtual Disk 1.0 /dev/sdc
[5:0:0:1] disk Msft Virtual Disk 1.0 /dev/sdd
Les deux disques de données se trouvent à LUN 0 et LUN 1 (dans la première colonne des détails de sortie lsscsi[host:channel:target:lun]). Les deux disques doivent être accessibles à partir de la machine virtuelle. Si vous aviez spécifié manuellement le premier disque à ajouter au numéro d’unité logique 1 et au deuxième disque au numéro d’unité logique 2, vous ne verrez peut-être pas les disques correctement à partir de votre machine virtuelle.
Note
La valeur Azure host est 5 dans ces exemples, mais cela peut varier en fonction du type de stockage que vous sélectionnez.
Ce comportement de disque n’est pas un problème Azure, mais la façon dont le noyau Linux suit les spécifications SCSI. Lorsque le noyau Linux analyse le bus SCSI pour les appareils attachés, un appareil doit être trouvé au numéro d’unité logique 0 pour que le système continue à analyser des appareils supplémentaires. Ainsi:
- Passez en revue la sortie de
lsscsiaprès l'ajout d'un disque de données pour vérifier que vous disposez d'un disque à LUN 0. - Si votre disque ne s’affiche pas correctement dans votre machine virtuelle, vérifiez qu’un disque existe au numéro d’unité logique 0.